diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2020-09-24 01:12:49 -0500 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2020-09-24 01:12:49 -0500 |
commit | e41b0b6a35a6aaca01e47597d9a04012df9d2362 (patch) | |
tree | 284c1683db29660c1141415fef86414f84423c33 | |
parent | cd050a5e7d66e28485a5b4e57ecdfb3d8c5f1e3c (diff) |
finally found the personality test stuff. now I can work on some of that now
-rw-r--r-- | asm/code_8012A18.s | 43754 | ||||
-rw-r--r-- | asm/code_803D110.s | 43716 | ||||
-rw-r--r-- | data/personality_test.inc | 8 | ||||
-rwxr-xr-x | ld_script.txt | 2 | ||||
-rw-r--r-- | src/code_8012A18.c | 25 |
5 files changed, 43749 insertions, 43756 deletions
diff --git a/asm/code_8012A18.s b/asm/code_8012A18.s index 2588ea3..655d6c8 100644 --- a/asm/code_8012A18.s +++ b/asm/code_8012A18.s @@ -84284,7 +84284,7 @@ sub_803C870: b _0803C8F8 .align 2, 0 _0803C8A4: .4byte gUnknown_203B400 -_0803C8A8: .4byte gUnknown_80F273C +_0803C8A8: .4byte gGenderText _0803C8AC: .4byte gUnknown_80F275C _0803C8B0: .4byte 0x00000101 _0803C8B4: @@ -84538,7 +84538,7 @@ _0803CA7A: pop {r0} bx r0 .align 2, 0 -_0803CA80: .4byte gUnknown_80F27C4 +_0803CA80: .4byte gStarterReveal _0803CA84: .4byte 0x00000101 _0803CA88: .4byte gUnknown_203B400 thumb_func_end sub_803CA54 @@ -85355,43754 +85355,4 @@ _0803D0D0: .4byte gUnknown_203B404 _0803D0D4: .4byte gPartners thumb_func_end sub_803D030 - thumb_func_start sub_803D0D8 -sub_803D0D8: - ldr r0, _0803D0E0 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0803D0E0: .4byte gUnknown_203B408 - thumb_func_end sub_803D0D8 - - thumb_func_start sub_803D0E4 -sub_803D0E4: - ldr r1, _0803D0EC - strb r0, [r1] - bx lr - .align 2, 0 -_0803D0EC: .4byte gUnknown_203B408 - thumb_func_end sub_803D0E4 - - thumb_func_start sub_803D0F0 -sub_803D0F0: - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0803D0FC - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0803D0FC: .4byte gUnknown_80F42F0 - thumb_func_end sub_803D0F0 - - thumb_func_start sub_803D100 -sub_803D100: - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0803D10C - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0803D10C: .4byte gUnknown_80F42D0 - thumb_func_end sub_803D100 - - thumb_func_start sub_803D110 -sub_803D110: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x6C - adds r6, r0, 0 - mov r9, r1 - adds r5, r2, 0 - add r7, sp, 0x48 - adds r2, r7, 0 - movs r1, 0 - mov r0, sp - adds r0, 0x69 -_0803D12A: - strb r1, [r0] - subs r0, 0x1 - cmp r0, r2 - bge _0803D12A - movs r4, 0 - cmp r4, r5 - bge _0803D158 -_0803D138: - ldrb r0, [r6] - bl sub_803D0F0 - add r1, sp, 0x10 - adds r1, r4 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0803D150 - movs r0, 0 - b _0803D19A -_0803D150: - adds r6, 0x1 - adds r4, 0x1 - cmp r4, r5 - blt _0803D138 -_0803D158: - lsls r0, r5, 2 - adds r0, r5 - adds r2, r0, 0x5 - cmp r2, 0 - bge _0803D164 - adds r2, 0x7 -_0803D164: - asrs r2, 3 - mov r8, r2 - mov r0, sp - adds r1, r7, 0 - bl sub_809486C - movs r4, 0 - cmp r4, r5 - bge _0803D188 - add r6, sp, 0x10 -_0803D178: - adds r1, r6, r4 - mov r0, sp - movs r2, 0x5 - bl sub_809488C - adds r4, 0x1 - cmp r4, r5 - blt _0803D178 -_0803D188: - mov r0, sp - bl nullsub_102 - mov r0, r9 - adds r1, r7, 0 - mov r2, r8 - bl MemoryCopy8 - movs r0, 0x1 -_0803D19A: - add sp, 0x6C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_803D110 - - thumb_func_start sub_803D1A8 -sub_803D1A8: - push {r4-r7,lr} - sub sp, 0x48 - adds r7, r0, 0 - adds r5, r2, 0 - lsls r0, r5, 2 - adds r0, r5 - adds r2, r0, 0x5 - cmp r2, 0 - bge _0803D1BC - adds r2, 0x7 -_0803D1BC: - asrs r2, 3 - mov r0, sp - bl sub_809485C - movs r4, 0 - cmp r4, r5 - bge _0803D1DC - add r6, sp, 0x10 -_0803D1CC: - adds r1, r6, r4 - mov r0, sp - movs r2, 0x5 - bl sub_8094924 - adds r4, 0x1 - cmp r4, r5 - blt _0803D1CC -_0803D1DC: - mov r0, sp - bl nullsub_102 - movs r4, 0 - cmp r4, r5 - bge _0803D1FC - add r6, sp, 0x10 -_0803D1EA: - adds r0, r6, r4 - ldrb r0, [r0] - bl sub_803D100 - strb r0, [r7] - adds r7, 0x1 - adds r4, 0x1 - cmp r4, r5 - blt _0803D1EA -_0803D1FC: - add sp, 0x48 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_803D1A8 - - thumb_func_start sub_803D204 -sub_803D204: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xA4 - adds r2, r0, 0 - mov r9, r1 - movs r6, 0 - add r4, sp, 0x5C - adds r0, r4, 0 - adds r1, r2, 0 - movs r2, 0x36 - bl MemoryCopy8 - movs r2, 0 - mov r8, r4 - add r5, sp, 0x24 - ldr r4, _0803D2A8 - mov r12, r4 - mov r10, r5 -_0803D22E: - movs r1, 0 - mov r3, r12 - adds r0, r2, r3 - adds r3, r2, 0x1 - ldrb r0, [r0] - cmp r1, r0 - beq _0803D24A - adds r0, r2, r4 -_0803D23E: - adds r1, 0x1 - cmp r1, 0x35 - bgt _0803D24A - ldrb r7, [r0] - cmp r1, r7 - bne _0803D23E -_0803D24A: - mov r7, r10 - adds r0, r7, r2 - add r1, r8 - ldrb r1, [r1] - strb r1, [r0] - adds r2, r3, 0 - cmp r2, 0x35 - ble _0803D22E - adds r0, r5, 0 - mov r1, sp - movs r2, 0x36 - bl sub_803D110 - lsls r0, 24 - cmp r0, 0 - beq _0803D2AC - movs r2, 0x1 -_0803D26C: - mov r1, sp - adds r0, r1, r2 - ldrb r0, [r0] - adds r0, r2 - adds r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - adds r2, 0x1 - cmp r2, 0x21 - ble _0803D26C - mov r0, sp - ldrb r0, [r0] - cmp r0, r6 - bne _0803D2AC - add r4, sp, 0x94 - adds r1, 0x1 - adds r0, r4, 0 - movs r2, 0x21 - bl sub_809485C - adds r0, r4, 0 - mov r1, r9 - bl sub_8095774 - adds r0, r4, 0 - bl nullsub_102 - movs r0, 0x1 - b _0803D2AE - .align 2, 0 -_0803D2A8: .4byte gUnknown_80F43F0 -_0803D2AC: - movs r0, 0 -_0803D2AE: - add sp, 0xA4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_803D204 - - thumb_func_start sub_803D2C0 -sub_803D2C0: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xA4 - mov r9, r0 - adds r6, r1, 0 - movs r5, 0 - add r4, sp, 0x94 - mov r1, sp - adds r1, 0x1 - add r7, sp, 0x24 - add r0, sp, 0x5C - mov r8, r0 - movs r2, 0 - mov r0, sp - adds r0, 0x21 -_0803D2E2: - strb r2, [r0] - subs r0, 0x1 - cmp r0, sp - bge _0803D2E2 - adds r0, r4, 0 - movs r2, 0x21 - bl sub_809486C - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8095824 - adds r0, r4, 0 - bl nullsub_102 - movs r2, 0x1 -_0803D302: - mov r1, sp - adds r0, r1, r2 - ldrb r0, [r0] - adds r0, r2 - adds r0, r5, r0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, 0x1 - cmp r2, 0x21 - ble _0803D302 - mov r0, sp - strb r5, [r0] - adds r0, r7, 0 - movs r2, 0x36 - bl sub_803D1A8 - movs r2, 0 - mov r4, r8 - ldr r5, _0803D354 - adds r3, r7, 0 -_0803D32A: - adds r0, r2, r5 - ldrb r1, [r0] - adds r1, r4, r1 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x35 - ble _0803D32A - mov r0, r9 - mov r1, r8 - movs r2, 0x36 - bl MemoryCopy8 - add sp, 0xA4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803D354: .4byte gUnknown_80F43F0 - thumb_func_end sub_803D2C0 - - thumb_func_start sub_803D358 -sub_803D358: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x50 - adds r2, r0, 0 - mov r9, r1 - movs r6, 0 - add r4, sp, 0x28 - adds r0, r4, 0 - adds r1, r2, 0 - movs r2, 0x18 - bl MemoryCopy8 - movs r2, 0 - mov r8, r4 - add r5, sp, 0x10 - ldr r4, _0803D3FC - mov r12, r4 - mov r10, r5 -_0803D382: - movs r1, 0 - mov r3, r12 - adds r0, r2, r3 - adds r3, r2, 0x1 - ldrb r0, [r0] - cmp r1, r0 - beq _0803D39E - adds r0, r2, r4 -_0803D392: - adds r1, 0x1 - cmp r1, 0x17 - bgt _0803D39E - ldrb r7, [r0] - cmp r1, r7 - bne _0803D392 -_0803D39E: - mov r7, r10 - adds r0, r7, r2 - add r1, r8 - ldrb r1, [r1] - strb r1, [r0] - adds r2, r3, 0 - cmp r2, 0x17 - ble _0803D382 - adds r0, r5, 0 - mov r1, sp - movs r2, 0x18 - bl sub_803D110 - lsls r0, 24 - cmp r0, 0 - beq _0803D400 - movs r2, 0x1 -_0803D3C0: - mov r1, sp - adds r0, r1, r2 - ldrb r0, [r0] - adds r0, r2 - adds r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 - adds r2, 0x1 - cmp r2, 0xE - ble _0803D3C0 - mov r0, sp - ldrb r0, [r0] - cmp r0, r6 - bne _0803D400 - add r4, sp, 0x40 - adds r1, 0x1 - adds r0, r4, 0 - movs r2, 0xC - bl sub_809485C - adds r0, r4, 0 - mov r1, r9 - bl sub_80971EC - adds r0, r4, 0 - bl nullsub_102 - movs r0, 0x1 - b _0803D402 - .align 2, 0 -_0803D3FC: .4byte gUnknown_80F4426 -_0803D400: - movs r0, 0 -_0803D402: - add sp, 0x50 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_803D358 - - thumb_func_start sub_803D414 -sub_803D414: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x50 - mov r9, r0 - adds r6, r1, 0 - movs r5, 0 - add r4, sp, 0x40 - mov r1, sp - adds r1, 0x1 - add r7, sp, 0x10 - add r0, sp, 0x28 - mov r8, r0 - movs r2, 0 - mov r0, sp - adds r0, 0xE -_0803D436: - strb r2, [r0] - subs r0, 0x1 - cmp r0, sp - bge _0803D436 - adds r0, r4, 0 - movs r2, 0xC - bl sub_809486C - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8097270 - adds r0, r4, 0 - bl nullsub_102 - movs r2, 0x1 -_0803D456: - mov r1, sp - adds r0, r1, r2 - ldrb r0, [r0] - adds r0, r2 - adds r0, r5, r0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, 0x1 - cmp r2, 0xE - ble _0803D456 - mov r0, sp - strb r5, [r0] - adds r0, r7, 0 - movs r2, 0x18 - bl sub_803D1A8 - movs r2, 0 - mov r4, r8 - ldr r5, _0803D4A8 - adds r3, r7, 0 -_0803D47E: - adds r0, r2, r5 - ldrb r1, [r0] - adds r1, r4, r1 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x17 - ble _0803D47E - mov r0, r9 - mov r1, r8 - movs r2, 0x18 - bl MemoryCopy8 - add sp, 0x50 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803D4A8: .4byte gUnknown_80F4426 - thumb_func_end sub_803D414 - - thumb_func_start sub_803D4AC -sub_803D4AC: - ldr r2, _0803D4C4 - ldr r0, [r2] - ldr r1, _0803D4C8 - adds r0, r1 - movs r1, 0x63 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _0803D4CC - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - bx lr - .align 2, 0 -_0803D4C4: .4byte gUnknown_203B418 -_0803D4C8: .4byte 0x0001c570 -_0803D4CC: .4byte 0x0001c571 - thumb_func_end sub_803D4AC - - thumb_func_start sub_803D4D0 -sub_803D4D0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1FC - ldr r6, _0803D654 - ldr r1, [r6] - movs r4, 0xC9 - lsls r4, 3 - adds r0, r1, r4 - ldr r2, _0803D658 - adds r1, r2 - bl sub_80901D8 - ldr r0, [r6] - ldr r3, _0803D65C - adds r2, r0, r3 - adds r1, r0, r4 - ldrh r0, [r2] - ldrh r4, [r1] - cmp r0, r4 - bne _0803D500 - b _0803D6E0 -_0803D500: - ldr r0, [r1] - str r0, [r2] - ldr r0, _0803D660 - ldr r1, _0803D664 - bl OpenFileAndGetFileDataPtr - mov r9, r0 - ldr r3, [r0, 0x4] - ldr r2, [r6] - ldr r7, _0803D65C - adds r0, r2, r7 - ldrb r1, [r0] - ldr r0, [r3] - lsls r1, 2 - adds r1, r0 - ldr r3, _0803D668 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, 4 - ldr r1, [r1] - adds r1, r0 - mov r8, r1 - ldr r4, _0803D658 - adds r2, r4 - ldrb r0, [r2] - bl sub_8090298 - ldr r1, [r6] - ldr r7, _0803D66C - adds r1, r7 - strb r0, [r1] - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - bl sub_80902C8 - ldr r1, [r6] - strh r0, [r1, 0x14] - mov r2, r9 - ldr r0, [r2, 0x4] - mov r3, r8 - movs r4, 0 - ldrsh r2, [r3, r4] - ldr r3, [r0, 0x4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - ldr r7, _0803D670 - adds r1, r7 - adds r0, r3 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldr r0, [r0] - str r0, [r1] - movs r5, 0 - mov r10, r6 - ldr r4, _0803D674 -_0803D576: - mov r6, r10 - ldr r2, [r6] - lsls r3, r5, 1 - adds r2, r4 - adds r2, r3 - mov r7, r9 - ldr r1, [r7, 0x4] - mov r6, r8 - movs r7, 0x4 - ldrsh r0, [r6, r7] - ldr r1, [r1, 0x10] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - adds r3, r0 - ldrh r0, [r3] - strh r0, [r2] - adds r5, 0x1 - cmp r5, 0x13 - ble _0803D576 - movs r5, 0 - adds r6, 0x6 - str r6, [sp, 0x1F8] - ldr r6, _0803D678 - mov r10, r6 -_0803D5A8: - ldr r1, _0803D654 - ldr r0, [r1] - lsls r3, r5, 3 - mov r2, r10 - adds r4, r0, r2 - adds r4, r3 - mov r12, r4 - mov r4, r9 - ldr r2, [r4, 0x4] - mov r7, r8 - movs r4, 0x2 - ldrsh r1, [r7, r4] - ldr r2, [r2, 0xC] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - adds r3, r1 - ldr r1, [r3] - ldr r2, [r3, 0x4] - mov r7, r12 - str r1, [r7] - str r2, [r7, 0x4] - adds r0, r6 - bl sub_808E9B8 - lsls r0, 16 - cmp r0, 0 - beq _0803D5E8 - adds r6, 0x8 - adds r5, 0x1 - cmp r5, 0x1E - ble _0803D5A8 -_0803D5E8: - cmp r5, 0x1F - bgt _0803D606 - ldr r6, _0803D654 - lsls r0, r5, 3 - ldr r1, _0803D678 - adds r4, r0, r1 -_0803D5F4: - ldr r0, [r6] - adds r0, r4 - movs r1, 0 - bl sub_808E9C4 - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0x1F - ble _0803D5F4 -_0803D606: - movs r5, 0 - ldr r2, _0803D67C - mov r10, r2 -_0803D60C: - mov r3, r9 - ldr r1, [r3, 0x4] - lsls r0, r5, 1 - ldr r4, [sp, 0x1F8] - adds r0, r4, r0 - movs r6, 0 - ldrsh r0, [r0, r6] - ldr r1, [r1, 0x8] - lsls r0, 2 - adds r0, r1 - movs r4, 0 - adds r7, r5, 0x1 - mov r8, r7 - lsls r1, r5, 6 - mov r12, r1 - ldr r3, [r0] - mov r2, sp -_0803D62E: - ldrh r0, [r3] - cmp r0, r10 - bls _0803D684 - ldrh r0, [r3] - ldr r6, _0803D680 - adds r1, r0, r6 - cmp r1, 0 - beq _0803D68A - movs r6, 0 - lsls r0, r4, 1 - add r0, sp -_0803D644: - strh r6, [r0] - adds r0, 0x2 - adds r2, 0x2 - adds r4, 0x1 - subs r1, 0x1 - cmp r1, 0 - bne _0803D644 - b _0803D68A - .align 2, 0 -_0803D654: .4byte gUnknown_203B418 -_0803D658: .4byte 0x00000644 -_0803D65C: .4byte 0x0001c570 -_0803D660: .4byte gUnknown_80F4D8C -_0803D664: .4byte gUnknown_83B0000 -_0803D668: .4byte 0x0001c571 -_0803D66C: .4byte 0x0001cec8 -_0803D670: .4byte 0x0001c574 -_0803D674: .4byte 0x0001cd70 -_0803D678: .4byte 0x0001cd98 -_0803D67C: .4byte 0x0000752f -_0803D680: .4byte 0xffff8ad0 -_0803D684: - strh r0, [r2] - adds r2, 0x2 - adds r4, 0x1 -_0803D68A: - adds r3, 0x2 - cmp r4, 0xFB - ble _0803D62E - ldr r7, _0803D6F0 - mov r1, r12 - subs r0, r1, r5 - movs r4, 0xB - mov r3, sp - lsls r2, r0, 3 - ldr r6, _0803D6F4 -_0803D69E: - ldr r0, [r7] - adds r0, r6 - adds r0, r2 - ldrh r1, [r3] - strh r1, [r0] - adds r3, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _0803D69E - ldr r6, _0803D6F0 - mov r2, r12 - subs r0, r2, r5 - lsls r3, r0, 3 - add r2, sp, 0x18 - ldr r5, _0803D6F8 - movs r4, 0xEF -_0803D6C0: - ldr r0, [r6] - adds r0, r5 - adds r0, r3 - ldrh r1, [r2] - strh r1, [r0] - adds r2, 0x2 - adds r3, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _0803D6C0 - mov r5, r8 - cmp r5, 0x3 - ble _0803D60C - mov r0, r9 - bl CloseFile -_0803D6E0: - add sp, 0x1FC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803D6F0: .4byte gUnknown_203B418 -_0803D6F4: .4byte 0x0001c590 -_0803D6F8: .4byte 0x0001c5a8 - thumb_func_end sub_803D4D0 - - thumb_func_start sub_803D6FC -sub_803D6FC: - push {r4,lr} - ldr r0, _0803D720 - bl sub_8084100 - adds r3, r0, 0 - movs r2, 0 - ldr r0, _0803D724 - ldr r0, [r0] - ldr r4, _0803D728 - adds r1, r0, r4 -_0803D710: - ldrh r0, [r1] - cmp r0, 0 - beq _0803D72C - cmp r0, r3 - blt _0803D72C - lsls r0, r2, 24 - lsrs r0, 24 - b _0803D736 - .align 2, 0 -_0803D720: .4byte 0x00002710 -_0803D724: .4byte gUnknown_203B418 -_0803D728: .4byte 0x0001cd70 -_0803D72C: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x13 - ble _0803D710 - movs r0, 0x10 -_0803D736: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_803D6FC - - thumb_func_start sub_803D73C -sub_803D73C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, _0803D784 - bl sub_8084100 - adds r7, r0, 0 - movs r0, 0xC - mov r8, r0 - movs r6, 0 - ldr r0, _0803D788 - ldr r2, [r0] - lsls r1, r4, 6 - subs r0, r1, r4 - adds r5, r1, 0 - lsls r0, 3 - ldr r1, _0803D78C - adds r2, r1 - adds r1, r0, r2 -_0803D766: - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0803D772 - cmp r0, r7 - bge _0803D790 -_0803D772: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0xB - ble _0803D766 -_0803D77A: - mov r0, r8 - cmp r0, 0xC - bne _0803D79C - b _0803D7EC - .align 2, 0 -_0803D784: .4byte 0x00002710 -_0803D788: .4byte gUnknown_203B418 -_0803D78C: .4byte 0x0001c590 -_0803D790: - lsls r0, r6, 24 - lsrs r0, 24 - mov r8, r0 - b _0803D77A -_0803D798: - adds r0, r5, 0 - b _0803D7EE -_0803D79C: - ldr r0, _0803D7FC - bl sub_8084100 - adds r7, r0, 0 - movs r6, 0 - ldr r2, _0803D800 - subs r0, r5, r4 - ldr r1, _0803D804 - lsls r4, r0, 3 -_0803D7AE: - ldr r0, [r2] - adds r0, r1 - adds r0, r4 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - beq _0803D7E4 - lsls r0, r6, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - str r1, [sp] - str r2, [sp, 0x4] - bl sub_8090BD0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - ldr r2, [sp, 0x4] - cmp r0, r8 - bne _0803D7E4 - ldr r0, [r2] - adds r0, r1 - adds r0, r4 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, r7 - bge _0803D798 -_0803D7E4: - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0xEF - ble _0803D7AE -_0803D7EC: - movs r0, 0x69 -_0803D7EE: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0803D7FC: .4byte 0x00002710 -_0803D800: .4byte gUnknown_203B418 -_0803D804: .4byte 0x0001c5a8 - thumb_func_end sub_803D73C - - thumb_func_start sub_803D808 -sub_803D808: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r1, 0 - movs r6, 0 - ldr r2, _0803D820 - lsls r1, r7, 3 - adds r1, r0 - mov r8, r1 - b _0803D840 - .align 2, 0 -_0803D820: .4byte 0x0001cd98 -_0803D824: - ldr r0, [r5] - ldr r1, _0803D868 - adds r0, r1 - adds r0, r4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - mov r3, r8 - adds r3, 0x8 - mov r8, r3 - subs r3, 0x8 - stm r3!, {r0,r1} - adds r7, 0x1 - adds r2, 0x8 - adds r6, 0x1 -_0803D840: - cmp r6, 0x1F - bgt _0803D85A - ldr r5, _0803D86C - lsls r4, r6, 3 - ldr r0, [r5] - adds r0, r2 - str r2, [sp] - bl sub_808E9B8 - lsls r0, 16 - ldr r2, [sp] - cmp r0, 0 - bne _0803D824 -_0803D85A: - adds r0, r7, 0 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0803D868: .4byte 0x0001cd98 -_0803D86C: .4byte gUnknown_203B418 - thumb_func_end sub_803D808 - - thumb_func_start sub_803D870 -sub_803D870: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r1, 0 - movs r5, 0 - lsls r1, r6, 3 - adds r1, r0 - mov r9, r1 - b _0803D8B8 -_0803D884: - bl sub_808DACC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0803D8B6 - ldr r1, [r7] - adds r0, r1, r4 - ldr r2, _0803D8E4 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _0803D8B6 - mov r2, r8 - adds r0, r1, r2 - adds r0, r4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - mov r2, r9 - adds r2, 0x8 - mov r9, r2 - subs r2, 0x8 - stm r2!, {r0,r1} - adds r6, 0x1 -_0803D8B6: - adds r5, 0x1 -_0803D8B8: - cmp r5, 0x1F - bgt _0803D8D6 - ldr r7, _0803D8E8 - lsls r4, r5, 3 - ldr r0, _0803D8EC - mov r8, r0 - adds r1, r4, r0 - ldr r0, [r7] - adds r0, r1 - bl sub_808E9B8 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _0803D884 -_0803D8D6: - adds r0, r6, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0803D8E4: .4byte 0x0001cd9a -_0803D8E8: .4byte gUnknown_203B418 -_0803D8EC: .4byte 0x0001cd98 - thumb_func_end sub_803D870 - - thumb_func_start sub_803D8F0 -sub_803D8F0: - push {r4,lr} - ldr r4, _0803D920 - ldr r0, [r4] - ldr r2, _0803D924 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - bne _0803D918 - movs r0, 0x1 - strb r0, [r1] - ldr r0, [r4] - ldr r1, _0803D928 - adds r0, r1 - movs r1, 0 - bl sub_803D808 - ldr r1, [r4] - ldr r2, _0803D92C - adds r1, r2 - str r0, [r1] -_0803D918: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803D920: .4byte gUnknown_203B418 -_0803D924: .4byte 0x000037ec -_0803D928: .4byte 0x0000343c -_0803D92C: .4byte 0x000037e4 - thumb_func_end sub_803D8F0 - - thumb_func_start sub_803D930 -sub_803D930: - push {r4-r7,lr} - lsls r0, 16 - asrs r6, r0, 16 - movs r5, 0 - ldr r7, _0803D940 - ldr r4, _0803D944 - b _0803D954 - .align 2, 0 -_0803D940: .4byte gUnknown_203B418 -_0803D944: .4byte 0x0001cd98 -_0803D948: - cmp r0, r6 - bne _0803D950 - movs r0, 0x1 - b _0803D96A -_0803D950: - adds r4, 0x8 - adds r5, 0x1 -_0803D954: - cmp r5, 0x1F - bgt _0803D968 - ldr r0, [r7] - adds r0, r4 - bl sub_808E9B8 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _0803D948 -_0803D968: - movs r0, 0 -_0803D96A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_803D930 - - thumb_func_start sub_803D970 -sub_803D970: - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _0803D9EC - bl sub_8084100 - adds r6, r0, 0 - movs r3, 0 - ldr r1, _0803D9F0 - ldr r0, [r1] - ldr r2, _0803D9F4 - adds r0, r2 - ldr r0, [r0] - cmp r3, r0 - bge _0803D9BA - ldr r4, _0803D9F8 -_0803D98E: - ldr r2, [r1] - lsls r1, r5, 1 - lsls r0, r3, 3 - adds r1, r0 - ldr r7, _0803D9FC - adds r0, r2, r7 - adds r1, r0, r1 - movs r7, 0 - ldrsh r0, [r1, r7] - cmp r0, 0 - beq _0803D9A8 - cmp r0, r6 - bge _0803D9E0 -_0803D9A8: - adds r4, 0x8 - adds r3, 0x1 - ldr r1, _0803D9F0 - ldr r0, [r1] - ldr r2, _0803D9F4 - adds r0, r2 - ldr r0, [r0] - cmp r3, r0 - blt _0803D98E -_0803D9BA: - movs r3, 0 - ldr r0, _0803D9F0 - ldr r1, [r0] - ldr r7, _0803D9F4 - adds r1, r7 - ldr r1, [r1] - adds r6, r0, 0 - cmp r3, r1 - bge _0803DA10 - ldr r4, _0803D9F8 - lsls r1, r5, 1 -_0803D9D0: - ldr r2, [r6] - ldr r5, _0803D9FC - adds r0, r2, r5 - adds r0, r1 - movs r7, 0 - ldrsh r0, [r0, r7] - cmp r0, 0 - beq _0803DA00 -_0803D9E0: - adds r0, r2, r4 - bl sub_808E9B8 - lsls r0, 16 - asrs r0, 16 - b _0803DA14 - .align 2, 0 -_0803D9EC: .4byte 0x00002710 -_0803D9F0: .4byte gUnknown_203B418 -_0803D9F4: .4byte 0x000037e4 -_0803D9F8: .4byte 0x0000343c -_0803D9FC: .4byte 0x0000343e -_0803DA00: - adds r4, 0x8 - adds r1, 0x8 - adds r3, 0x1 - ldr r5, _0803DA1C - adds r0, r2, r5 - ldr r0, [r0] - cmp r3, r0 - blt _0803D9D0 -_0803DA10: - movs r0, 0xBE - lsls r0, 1 -_0803DA14: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0803DA1C: .4byte 0x000037e4 - thumb_func_end sub_803D970 - - thumb_func_start sub_803DA20 -sub_803DA20: - push {r4-r7,lr} - lsls r0, 16 - asrs r7, r0, 16 - movs r5, 0 - ldr r1, _0803DA54 - ldr r0, [r1] - ldr r2, _0803DA58 - adds r0, r2 - ldr r0, [r0] - cmp r5, r0 - bge _0803DA70 - adds r6, r1, 0 - ldr r4, _0803DA5C -_0803DA3A: - ldr r0, [r6] - adds r0, r4 - bl sub_808E9B8 - lsls r0, 16 - asrs r0, 16 - cmp r0, r7 - bne _0803DA60 - ldr r0, [r6] - adds r0, r4 - bl sub_808E9E4 - b _0803DA72 - .align 2, 0 -_0803DA54: .4byte gUnknown_203B418 -_0803DA58: .4byte 0x000037e4 -_0803DA5C: .4byte 0x0000343c -_0803DA60: - adds r4, 0x8 - adds r5, 0x1 - ldr r0, [r6] - ldr r1, _0803DA78 - adds r0, r1 - ldr r0, [r0] - cmp r5, r0 - blt _0803DA3A -_0803DA70: - movs r0, 0x1 -_0803DA72: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0803DA78: .4byte 0x000037e4 - thumb_func_end sub_803DA20 - - thumb_func_start ShowDungeonNameBanner -ShowDungeonNameBanner: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x68 - ldr r0, _0803DB84 - ldr r4, _0803DB88 - adds r1, r4, 0 - bl OpenFileAndGetFileDataPtr - ldr r5, _0803DB8C - str r0, [r5] - ldr r0, _0803DB90 - adds r1, r4, 0 - bl OpenFileAndGetFileDataPtr - ldr r1, _0803DB94 - str r0, [r1] - ldr r1, _0803DB98 - ldr r0, [r0, 0x4] - ldr r0, [r0, 0x4] - str r0, [r1] - movs r4, 0 -_0803DAAA: - adds r0, r4, 0 - adds r0, 0xE0 - ldr r1, [r5] - lsls r2, r4, 2 - ldr r1, [r1, 0x4] - adds r1, r2 - bl SetBGPaletteBufferColorArray - adds r4, 0x1 - cmp r4, 0xF - ble _0803DAAA - ldr r0, _0803DB9C - movs r1, 0xE0 - lsls r1, 5 - bl CpuClear - bl sub_80848EC - lsls r0, 24 - cmp r0, 0 - bne _0803DAD6 - b _0803DBEA -_0803DAD6: - ldr r0, _0803DBA0 - ldr r0, [r0] - ldr r1, _0803DBA4 - adds r2, r0, r1 - movs r3, 0x14 - ldrsh r1, [r0, r3] - ldrb r2, [r2] - adds r2, r1 - mov r8, r2 - ldr r1, _0803DBA8 - adds r0, r1 - ldrb r0, [r0] - bl GetDungeonName2 - mov r9, r0 - movs r5, 0xA - movs r0, 0 -_0803DAF8: - movs r4, 0 - adds r6, r0, 0x4 - adds r7, r0, 0x1 -_0803DAFE: - adds r4, 0x1 - ldr r3, _0803DBAC - adds r0, r3, 0 - adds r2, r5, 0 - orrs r2, r0 - lsls r2, 16 - lsrs r2, 16 - adds r0, r4, 0 - adds r1, r6, 0 - movs r3, 0 - bl sub_8008DC8 - adds r5, 0x1 - cmp r4, 0x1B - ble _0803DAFE - adds r0, r7, 0 - cmp r0, 0x7 - ble _0803DAF8 - mov r0, r9 - bl CalcStringWidth - movs r1, 0xE0 - subs r1, r0 - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - mov r0, r9 - movs r2, 0 - bl sub_803DC14 - adds r7, r0, 0 - ldr r0, _0803DBA0 - ldr r0, [r0] - ldr r1, _0803DBA8 - adds r0, r1 - ldrb r0, [r0] - bl GetStairDirection - lsls r0, 24 - ldr r6, _0803DBB0 - cmp r0, 0 - beq _0803DB54 - ldr r6, _0803DBB4 -_0803DB54: - mov r3, r8 - cmp r3, 0x9 - ble _0803DBBC - ldr r5, _0803DBB8 - mov r0, r8 - movs r1, 0xA - bl __divsi3 - adds r4, r0, 0 - adds r4, 0x30 - mov r0, r8 - movs r1, 0xA - bl __modsi3 - adds r0, 0x30 - str r0, [sp] - add r0, sp, 0x4 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_800D158 - b _0803DBCA - .align 2, 0 -_0803DB84: .4byte gUnknown_80F60F8 -_0803DB88: .4byte gUnknown_83B0000 -_0803DB8C: .4byte gDungeonNameBannerPalette -_0803DB90: .4byte gUnknown_80F6100 -_0803DB94: .4byte gDungeonNameBannerFontFile -_0803DB98: .4byte gDungeonNameBannerFont -_0803DB9C: .4byte 0x06000140 -_0803DBA0: .4byte gUnknown_203B418 -_0803DBA4: .4byte 0x00000645 -_0803DBA8: .4byte 0x00000644 -_0803DBAC: .4byte 0xffffe000 -_0803DBB0: .4byte gUnknown_80F610C -_0803DBB4: .4byte gUnknown_80F6108 -_0803DBB8: .4byte gUnknown_80F6110 -_0803DBBC: - ldr r1, _0803DC08 - mov r3, r8 - adds r3, 0x30 - add r0, sp, 0x4 - adds r2, r6, 0 - bl sub_800D158 -_0803DBCA: - add r0, sp, 0x4 - bl CalcStringWidth - movs r1, 0xE0 - subs r1, r0 - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - adds r2, r7, 0 - adds r2, 0x20 - add r0, sp, 0x4 - bl sub_803DC14 - ldr r1, _0803DC0C - movs r0, 0x1 - strb r0, [r1] -_0803DBEA: - ldr r0, _0803DC10 - ldr r0, [r0] - bl CloseFile - movs r0, 0x2 - bl sub_803E46C - add sp, 0x68 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803DC08: .4byte gUnknown_80F6118 -_0803DC0C: .4byte gUnknown_20274A5 -_0803DC10: .4byte gDungeonNameBannerFontFile - thumb_func_end ShowDungeonNameBanner - - thumb_func_start sub_803DC14 -sub_803DC14: - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - b _0803DC5C -_0803DC1E: - ldrb r1, [r4] - adds r4, 0x1 - cmp r1, 0x2F - bne _0803DC2C - movs r5, 0 - adds r6, 0x18 - b _0803DC5C -_0803DC2C: - cmp r1, 0x23 - bne _0803DC34 - adds r5, 0x8 - b _0803DC5C -_0803DC34: - cmp r1, 0x20 - bne _0803DC3C - adds r5, 0xC - b _0803DC5C -_0803DC3C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0803DC50 - ldrb r0, [r4] - cmp r0, 0 - beq _0803DC50 - lsls r1, 8 - orrs r1, r0 - adds r4, 0x1 -_0803DC50: - adds r0, r1, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_803DC6C - adds r5, r0 -_0803DC5C: - ldrb r0, [r4] - cmp r0, 0 - bne _0803DC1E - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_803DC14 - - thumb_func_start sub_803DC6C -sub_803DC6C: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x120 - adds r7, r1, 0 - adds r5, r2, 0 - bl sub_803DEC8 - adds r4, r0, 0 - ldr r0, [r4] - mov r1, sp - bl sub_803DD30 - ldrb r4, [r4, 0x6] - mov r9, r4 - mov r6, sp - adds r0, r5, 0 - cmp r5, 0 - bge _0803DC96 - adds r0, r5, 0x7 -_0803DC96: - asrs r0, 3 - lsls r3, r0, 3 - subs r0, r3, r0 - lsls r0, 2 - adds r1, r7, 0 - cmp r7, 0 - bge _0803DCA6 - adds r1, r7, 0x7 -_0803DCA6: - asrs r1, 3 - adds r0, r1 - lsls r0, 5 - ldr r4, _0803DD28 - adds r2, r0, r4 - subs r0, r5, r3 - lsls r0, 2 - adds r2, r0 - lsls r1, 3 - subs r1, r7, r1 - lsls r1, 4 - ldr r0, _0803DD2C - adds r4, r1, r0 - movs r0, 0 -_0803DCC2: - adds r3, r2, 0 - adds r7, r3, 0x4 - adds r5, 0x1 - mov r12, r5 - adds r0, 0x1 - mov r8, r0 - movs r5, 0x2 -_0803DCD0: - ldr r2, [r6] - cmp r2, 0 - beq _0803DCF6 - ldr r1, [r4] - ands r1, r2 - ldr r0, [r4, 0x8] - lsls r1, r0 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - adds r3, 0x20 - ldr r0, [r4, 0x4] - ands r2, r0 - ldr r0, [r4, 0xC] - lsrs r2, r0 - ldr r0, [r3] - orrs r0, r2 - str r0, [r3] - subs r3, 0x20 -_0803DCF6: - adds r6, 0x4 - adds r3, 0x20 - subs r5, 0x1 - cmp r5, 0 - bge _0803DCD0 - adds r2, r7, 0 - mov r5, r12 - movs r0, 0x7 - ands r0, r5 - cmp r0, 0 - bne _0803DD12 - movs r0, 0xD8 - lsls r0, 2 - adds r2, r7, r0 -_0803DD12: - mov r0, r8 - cmp r0, 0x17 - ble _0803DCC2 - mov r0, r9 - add sp, 0x120 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0803DD28: .4byte 0x06000140 -_0803DD2C: .4byte gUnknown_80F6120 - thumb_func_end sub_803DC6C - - thumb_func_start sub_803DD30 -sub_803DD30: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _0803DDBC - add sp, r4 - adds r4, r0, 0 - mov r10, r1 - movs r3, 0 - movs r5, 0 - ldr r0, _0803DDC0 - mov r8, r0 - movs r6, 0xF - movs r7, 0xF - mov r2, sp -_0803DD50: - ldrb r0, [r4] - lsrs r1, r0, 4 - ands r1, r6 - strb r1, [r2] - adds r1, r7, 0 - ands r1, r0 - strb r1, [r2, 0x1] - adds r4, 0x1 - adds r2, 0x2 - adds r5, 0x2 - cmp r5, r8 - ble _0803DD50 - ldr r1, _0803DDC0 - cmp r3, r1 - bgt _0803DDF8 - movs r0, 0x90 - lsls r0, 2 - mov r2, sp - adds r2, r0 - mov r12, r2 - mov r8, r1 - mov r2, sp - mov r9, r0 -_0803DD7E: - ldrb r1, [r2] - adds r2, 0x1 - movs r6, 0x7 - ands r6, r1 - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _0803DDC4 - ldrb r1, [r2] - adds r2, 0x1 - movs r4, 0 - cmp r4, r6 - bge _0803DDF4 - mov r5, r12 - adds r0, r5, r3 - strb r1, [r0] - adds r3, 0x1 - cmp r3, r8 - bgt _0803DDF8 - mov r5, sp - add r5, r9 - ldr r7, _0803DDC0 -_0803DDAA: - adds r4, 0x1 - cmp r4, r6 - bge _0803DDF4 - adds r0, r5, r3 - strb r1, [r0] - adds r3, 0x1 - cmp r3, r7 - ble _0803DDAA - b _0803DDF4 - .align 2, 0 -_0803DDBC: .4byte 0xfffffb80 -_0803DDC0: .4byte 0x0000023f -_0803DDC4: - movs r4, 0 - cmp r4, r6 - bge _0803DDF4 - ldrb r1, [r2] - adds r2, 0x1 - mov r5, r12 - adds r0, r5, r3 - strb r1, [r0] - adds r3, 0x1 - cmp r3, r8 - bgt _0803DDF8 - mov r5, sp - add r5, r9 - ldr r7, _0803DE78 -_0803DDE0: - adds r4, 0x1 - cmp r4, r6 - bge _0803DDF4 - ldrb r1, [r2] - adds r2, 0x1 - adds r0, r5, r3 - strb r1, [r0] - adds r3, 0x1 - cmp r3, r7 - ble _0803DDE0 -_0803DDF4: - cmp r3, r8 - ble _0803DD7E -_0803DDF8: - movs r5, 0 - ldr r4, _0803DE78 - add r3, sp, 0x240 -_0803DDFE: - ldrb r2, [r3, 0x7] - lsls r2, 28 - ldrb r0, [r3, 0x6] - lsls r0, 24 - movs r1, 0xF0 - lsls r1, 20 - ands r0, r1 - orrs r2, r0 - ldrb r0, [r3, 0x5] - lsls r0, 20 - movs r1, 0xF0 - lsls r1, 16 - ands r0, r1 - orrs r2, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - movs r1, 0xF0 - lsls r1, 12 - ands r0, r1 - orrs r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 12 - movs r1, 0xF0 - lsls r1, 8 - ands r0, r1 - orrs r2, r0 - ldrb r0, [r3, 0x2] - lsls r0, 8 - movs r1, 0xF0 - lsls r1, 4 - ands r0, r1 - orrs r2, r0 - ldrb r0, [r3, 0x1] - lsls r0, 4 - movs r1, 0xF0 - ands r0, r1 - orrs r2, r0 - ldrb r1, [r3] - movs r0, 0xF - ands r0, r1 - orrs r2, r0 - mov r0, r10 - adds r0, 0x4 - mov r10, r0 - subs r0, 0x4 - stm r0!, {r2} - adds r3, 0x8 - adds r5, 0x8 - cmp r5, r4 - ble _0803DDFE - movs r3, 0x90 - lsls r3, 3 - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803DE78: .4byte 0x0000023f - thumb_func_end sub_803DD30 - - thumb_func_start CalcStringWidth -CalcStringWidth: - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - b _0803DEBA -_0803DE84: - ldrb r1, [r4] - adds r4, 0x1 - cmp r1, 0x23 - bne _0803DE90 - adds r5, 0x8 - b _0803DEBA -_0803DE90: - cmp r1, 0x20 - bne _0803DE98 - adds r5, 0xC - b _0803DEBA -_0803DE98: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0803DEAC - ldrb r0, [r4] - cmp r0, 0 - beq _0803DEAC - lsls r1, 8 - orrs r1, r0 - adds r4, 0x1 -_0803DEAC: - adds r0, r1, 0 - bl sub_803DEC8 - cmp r0, 0 - beq _0803DEBA - ldrb r0, [r0, 0x6] - adds r5, r0 -_0803DEBA: - ldrb r0, [r4] - cmp r0, 0 - bne _0803DE84 - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end CalcStringWidth - - thumb_func_start sub_803DEC8 -sub_803DEC8: - push {r4,r5,lr} - adds r3, r0, 0 - ldr r0, _0803DEFC - ldr r0, [r0] - ldr r0, [r0, 0x4] - ldr r5, [r0] - ldr r0, _0803DF00 - adds r1, r3, r0 - ldr r0, _0803DF04 - cmp r1, r0 - bhi _0803DF08 - movs r2, 0xFF - ands r2, r3 - movs r1, 0xFF - lsls r1, 8 - ands r1, r3 - asrs r1, 8 - subs r2, 0x20 - subs r1, 0xF8 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 5 - adds r0, r2 - lsls r0, 3 - adds r1, r5, r0 - b _0803DF56 - .align 2, 0 -_0803DEFC: .4byte gDungeonNameBannerFontFile -_0803DF00: .4byte 0xffff0800 -_0803DF04: .4byte 0x000007fe -_0803DF08: - movs r4, 0 - ldr r0, _0803DF1C - ldr r0, [r0] - subs r2, r0, 0x1 - cmp r4, r2 - bge _0803DF48 - lsrs r0, r2, 31 - adds r0, r2, r0 - b _0803DF3A - .align 2, 0 -_0803DF1C: .4byte gDungeonNameBannerFont -_0803DF20: - lsls r0, r1, 3 - adds r0, r5 - ldrh r0, [r0, 0x4] - cmp r0, r3 - bge _0803DF2E - adds r4, r1, 0x1 - b _0803DF30 -_0803DF2E: - adds r2, r1, 0 -_0803DF30: - cmp r4, r2 - bge _0803DF48 - adds r0, r4, r2 - lsrs r1, r0, 31 - adds r0, r1 -_0803DF3A: - asrs r1, r0, 1 - lsls r0, r1, 3 - adds r0, r5 - ldrh r0, [r0, 0x4] - cmp r0, r3 - bne _0803DF20 - adds r4, r1, 0 -_0803DF48: - lsls r0, r4, 3 - adds r1, r5, r0 - ldrh r0, [r1, 0x4] - cmp r0, r3 - beq _0803DF56 - adds r1, r5, 0 - adds r1, 0x8 -_0803DF56: - adds r0, r1, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_803DEC8 - - thumb_func_start sub_803DF60 -sub_803DF60: - push {r4-r7,lr} - ldr r0, _0803DFF8 - ldr r1, _0803DFFC - bl OpenFileAndGetFileDataPtr - adds r7, r0, 0 - ldr r0, [r7, 0x4] - ldr r5, [r0] - ldm r5!, {r4} - ldr r6, _0803E000 - cmp r4, 0 - beq _0803DF8C -_0803DF78: - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x20 - bl CpuCopy - adds r6, 0x20 - adds r5, 0x20 - subs r4, 0x1 - cmp r4, 0 - bne _0803DF78 -_0803DF8C: - adds r0, r7, 0 - bl CloseFile - ldr r0, _0803E004 - ldr r1, _0803DFFC - bl OpenFileAndGetFileDataPtr - adds r7, r0, 0 - ldr r5, [r7, 0x4] - ldm r5!, {r4} - ldr r6, _0803E008 - cmp r4, 0 - beq _0803DFBA -_0803DFA6: - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x20 - bl CpuCopy - adds r6, 0x20 - adds r5, 0x20 - subs r4, 0x1 - cmp r4, 0 - bne _0803DFA6 -_0803DFBA: - adds r0, r7, 0 - bl CloseFile - ldr r0, _0803E00C - ldr r4, _0803DFFC - adds r1, r4, 0 - bl OpenFileAndGetFileDataPtr - ldr r1, _0803E010 - str r0, [r1] - ldr r0, _0803E014 - adds r1, r4, 0 - bl OpenFileAndGetFileDataPtr - ldr r1, _0803E018 - str r0, [r1] - ldr r0, _0803E01C - adds r1, r4, 0 - bl OpenFileAndGetFileDataPtr - ldr r1, _0803E020 - str r0, [r1] - ldr r0, _0803E024 - adds r1, r4, 0 - bl OpenFileAndGetFileDataPtr - ldr r1, _0803E028 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803DFF8: .4byte gUnknown_80F61A8 -_0803DFFC: .4byte gUnknown_83B0000 -_0803E000: .4byte 0x06013400 -_0803E004: .4byte gUnknown_80F61B0 -_0803E008: .4byte 0x06014000 -_0803E00C: .4byte gUnknown_80F61B8 -_0803E010: .4byte gUnknown_202EC94 -_0803E014: .4byte gUnknown_80F61C4 -_0803E018: .4byte gUnknown_202EC98 -_0803E01C: .4byte gUnknown_80F61CC -_0803E020: .4byte gUnknown_202EC9C -_0803E024: .4byte gUnknown_80F61D4 -_0803E028: .4byte gUnknown_202ECA0 - thumb_func_end sub_803DF60 - - thumb_func_start sub_803E02C -sub_803E02C: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - bl sub_803E13C - mov r1, sp - ldr r0, _0803E118 - ldm r0!, {r2,r3} - stm r1!, {r2,r3} - ldr r1, _0803E11C - mov r0, sp - bl OpenFileAndGetFileDataPtr - adds r7, r0, 0 - ldr r0, [r7, 0x4] - ldr r5, [r0] - ldm r5!, {r4} - ldr r6, _0803E120 - cmp r4, 0 - beq _0803E06C -_0803E058: - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x20 - bl CpuCopy - adds r6, 0x20 - adds r5, 0x20 - subs r4, 0x1 - cmp r4, 0 - bne _0803E058 -_0803E06C: - ldr r0, _0803E124 - ldr r1, [r7, 0x4] - ldr r1, [r1, 0x4] - movs r2, 0x80 - bl CpuCopy - adds r0, r7, 0 - bl CloseFile - movs r6, 0x80 - lsls r6, 2 - movs r4, 0 - ldr r0, _0803E128 - mov r9, r0 - ldr r1, _0803E12C - mov r12, r1 - movs r7, 0 - ldr r2, _0803E130 - mov r8, r2 -_0803E092: - mov r3, r12 - ldrh r0, [r3] - lsls r5, r0, 12 - adds r2, r7, 0 - movs r3, 0x8 -_0803E09C: - mov r0, r9 - ldr r1, [r0] - add r1, r8 - adds r1, r2 - adds r0, r5, 0 - orrs r0, r6 - strh r0, [r1] - adds r6, 0x1 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _0803E09C - movs r1, 0x2 - add r12, r1 - adds r7, 0x12 - adds r4, 0x1 - cmp r4, 0x1C - ble _0803E092 - movs r4, 0 - ldr r5, _0803E128 - ldr r3, _0803E134 - movs r2, 0xC0 - lsls r2, 8 -_0803E0CA: - ldr r0, [r5] - lsls r1, r4, 1 - adds r0, r3 - adds r0, r1 - strh r2, [r0] - adds r4, 0x1 - cmp r4, 0x8 - ble _0803E0CA - movs r4, 0 - ldr r2, _0803E128 - movs r6, 0xBE - lsls r6, 1 - ldr r5, _0803E138 - movs r3, 0xBF - lsls r3, 1 -_0803E0E8: - ldr r0, [r2] - lsls r1, r4, 2 - adds r0, r1 - adds r0, r6 - strb r4, [r0] - ldr r0, [r2] - adds r0, r1 - adds r0, r5 - strb r4, [r0] - ldr r0, [r2] - adds r0, r1 - adds r0, r3 - strb r4, [r0] - adds r4, 0x1 - cmp r4, 0xFF - ble _0803E0E8 - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803E118: .4byte gUnknown_80F61DC -_0803E11C: .4byte gUnknown_83B0000 -_0803E120: .4byte 0x0600c000 -_0803E124: .4byte gUnknown_202ECA4 -_0803E128: .4byte gUnknown_203B418 -_0803E12C: .4byte gUnknown_80F5F70 -_0803E130: .4byte 0x00012a18 -_0803E134: .4byte 0x00013554 -_0803E138: .4byte 0x0000017d - thumb_func_end sub_803E02C - - thumb_func_start sub_803E13C -sub_803E13C: - push {r4,r5,lr} - bl sub_8094C14 - ldr r0, _0803E170 - ldr r0, [r0] - ldrb r0, [r0, 0xB] - ldr r5, _0803E174 - cmp r0, 0 - beq _0803E154 - movs r0, 0x80 - lsls r0, 1 - adds r5, r0 -_0803E154: - movs r4, 0 -_0803E156: - adds r0, r4, 0 - adds r0, 0xF0 - adds r1, r5, 0 - bl SetBGPaletteBufferColorArray - adds r5, 0x4 - adds r4, 0x1 - cmp r4, 0xF - ble _0803E156 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803E170: .4byte gUnknown_203B46C -_0803E174: .4byte gUnknown_202D038 - thumb_func_end sub_803E13C - - thumb_func_start sub_803E178 -sub_803E178: - push {r4,lr} - bl sub_8043D10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0803E1E0 - ldr r0, _0803E1AC - ldr r2, [r0] - ldr r3, _0803E1B0 - adds r1, r2, r3 - ldrb r1, [r1] - adds r3, r0, 0 - cmp r1, 0x15 - bne _0803E1BC - ldr r1, _0803E1B4 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0803E1BC - ldr r3, _0803E1B8 - adds r1, r2, r3 - movs r0, 0x1C - strh r0, [r1] - b _0803E204 - .align 2, 0 -_0803E1AC: .4byte gUnknown_203B418 -_0803E1B0: .4byte 0x00000644 -_0803E1B4: .4byte 0x000037fe -_0803E1B8: .4byte 0x00003a12 -_0803E1BC: - ldr r4, [r3] - ldr r1, _0803E1D8 - adds r0, r4, r1 - ldrb r0, [r0] - bl GetStairDirection - lsls r0, 24 - movs r1, 0x16 - cmp r0, 0 - beq _0803E1D2 - movs r1, 0x17 -_0803E1D2: - ldr r2, _0803E1DC - adds r0, r4, r2 - b _0803E202 - .align 2, 0 -_0803E1D8: .4byte 0x00000644 -_0803E1DC: .4byte 0x00003a12 -_0803E1E0: - cmp r0, 0x1 - bne _0803E1F8 - ldr r0, _0803E1F0 - ldr r0, [r0] - ldr r3, _0803E1F4 - adds r0, r3 - movs r1, 0x6 - b _0803E202 - .align 2, 0 -_0803E1F0: .4byte gUnknown_203B418 -_0803E1F4: .4byte 0x00003a12 -_0803E1F8: - ldr r0, _0803E20C - ldr r0, [r0] - ldr r1, _0803E210 - adds r0, r1 - movs r1, 0x18 -_0803E202: - strh r1, [r0] -_0803E204: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803E20C: .4byte gUnknown_203B418 -_0803E210: .4byte 0x00003a12 - thumb_func_end sub_803E178 - - thumb_func_start sub_803E214 -sub_803E214: - push {lr} - ldr r0, _0803E23C - ldr r0, [r0] - bl CloseFile - ldr r0, _0803E240 - ldr r0, [r0] - bl CloseFile - ldr r0, _0803E244 - ldr r0, [r0] - bl CloseFile - ldr r0, _0803E248 - ldr r0, [r0] - bl CloseFile - pop {r0} - bx r0 - .align 2, 0 -_0803E23C: .4byte gUnknown_202EC94 -_0803E240: .4byte gUnknown_202EC98 -_0803E244: .4byte gUnknown_202EC9C -_0803E248: .4byte gUnknown_202ECA0 - thumb_func_end sub_803E214 - - thumb_func_start nullsub_56 -nullsub_56: - bx lr - thumb_func_end nullsub_56 - - thumb_func_start sub_803E250 -sub_803E250: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r1, _0803E3FC - ldr r0, _0803E400 - str r0, [r1] - ldr r0, _0803E404 - movs r1, 0 - str r1, [r0] - ldr r0, _0803E408 - strb r1, [r0] - ldr r0, _0803E40C - strh r1, [r0] - ldr r5, _0803E410 - ldrh r0, [r5, 0x6] - movs r3, 0xF - adds r2, r3, 0 - ands r2, r0 - ldrh r4, [r5] - ldr r1, _0803E414 - adds r0, r1, 0 - ands r0, r4 - ldr r4, _0803E418 - ands r0, r4 - ldr r6, _0803E41C - ands r0, r6 - ldr r7, _0803E420 - ands r0, r7 - ldr r4, _0803E424 - mov r12, r4 - ands r0, r4 - ldr r4, _0803E428 - ands r0, r4 - strh r0, [r5] - movs r0, 0x80 - lsls r0, 7 - strh r0, [r5, 0x2] - movs r0, 0 - strh r0, [r5, 0x4] - ldr r0, _0803E42C - mov r10, r0 - ands r2, r0 - subs r0, 0x1 - mov r9, r0 - ands r2, r0 - subs r0, 0x2 - mov r8, r0 - ands r2, r0 - strh r2, [r5, 0x6] - ldr r2, _0803E430 - ldrh r0, [r2, 0x6] - ands r3, r0 - ldrh r0, [r2] - ands r1, r0 - ldr r0, _0803E418 - ands r1, r0 - ands r1, r6 - ands r1, r7 - mov r7, r12 - ands r1, r7 - ands r1, r4 - strh r1, [r2] - movs r0, 0 - strh r0, [r2, 0x2] - movs r0, 0xB8 - lsls r0, 7 - strh r0, [r2, 0x4] - mov r0, r10 - ands r3, r0 - mov r1, r9 - ands r3, r1 - mov r7, r8 - ands r3, r7 - strh r3, [r2, 0x6] - movs r0, 0 - mov r8, r0 -_0803E2EE: - movs r1, 0 - mov r9, r1 - mov r2, r8 - lsls r0, r2, 3 - lsls r2, 1 - mov r12, r2 - mov r3, r8 - adds r3, 0x1 - str r3, [sp] - mov r10, r1 - add r0, r8 - lsls r5, r0, 3 - ldr r4, _0803E434 - adds r4, r5, r4 - str r4, [sp, 0x4] - ldr r7, _0803E438 - adds r6, r5, r7 - ldr r0, _0803E43C - adds r3, r5, r0 - ldr r1, _0803E440 - adds r4, r5, r1 -_0803E318: - mov r7, r10 - adds r2, r5, r7 - ldrh r1, [r3] - ldr r0, _0803E414 - ands r0, r1 - ldr r1, _0803E418 - ands r0, r1 - ldr r1, _0803E41C - ands r0, r1 - ldr r1, _0803E420 - ands r0, r1 - ldr r1, _0803E424 - ands r0, r1 - strh r0, [r3] - ldr r1, [r4] - movs r7, 0x3 - ands r1, r7 - lsls r1, 14 - ldr r7, _0803E428 - ands r0, r7 - orrs r0, r1 - strh r0, [r3] - ldrh r1, [r3, 0x2] - ldr r0, _0803E444 - ands r0, r1 - strh r0, [r3, 0x2] - ldr r1, _0803E440 - adds r1, 0x4 - adds r2, r1 - ldr r1, [r2] - movs r2, 0x3 - ands r1, r2 - lsls r1, 14 - ands r0, r7 - orrs r0, r1 - strh r0, [r3, 0x2] - ldr r1, [r6] - ldr r0, _0803E448 - ands r1, r0 - ldrh r2, [r3, 0x4] - movs r0, 0xFC - lsls r0, 8 - ands r0, r2 - orrs r0, r1 - ldr r7, _0803E41C - ands r0, r7 - movs r1, 0xC0 - lsls r1, 4 - orrs r0, r1 - movs r2, 0 - orrs r0, r2 - ldr r1, _0803E44C - ands r0, r1 - strh r0, [r3, 0x4] - ldrh r1, [r3, 0x6] - ldr r0, _0803E42C - ands r0, r1 - ldr r1, _0803E450 - ands r0, r1 - strh r0, [r3, 0x6] - mov r7, r9 - lsls r1, r7, 2 - mov r0, r12 - add r0, r8 - lsls r0, 3 - adds r1, r0 - ldr r0, _0803E454 - adds r1, r0, r1 - ldr r0, [r1] - ldr r1, [sp, 0x4] - str r0, [r1] - adds r1, 0xC - str r1, [sp, 0x4] - adds r6, 0xC - adds r3, 0xC - adds r4, 0xC - movs r2, 0xC - add r10, r2 - movs r7, 0x1 - add r9, r7 - mov r0, r9 - cmp r0, 0x5 - ble _0803E318 - ldr r1, [sp] - mov r8, r1 - cmp r1, 0x1 - ble _0803E2EE - movs r2, 0 - ldr r3, _0803E458 - ldr r0, [r3] - ldr r4, _0803E45C - adds r0, r4 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r3] - ldr r7, _0803E460 - adds r0, r7 - strb r1, [r0] - ldr r0, _0803E464 - str r2, [r0] - movs r0, 0xF8 - ldr r1, _0803E468 - movs r3, 0 - bl SetBGPaletteBufferColorRGB - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803E3FC: .4byte gUnknown_202EDD0 -_0803E400: .4byte 0x000003e7 -_0803E404: .4byte gUnknown_202EDD4 -_0803E408: .4byte gUnknown_203B40D -_0803E40C: .4byte gUnknown_202EDE8 -_0803E410: .4byte gUnknown_202EDC0 -_0803E414: .4byte 0x0000feff -_0803E418: .4byte 0x0000fdff -_0803E41C: .4byte 0x0000f3ff -_0803E420: .4byte 0x0000efff -_0803E424: .4byte 0x0000dfff -_0803E428: .4byte 0x00003fff -_0803E42C: .4byte 0x0000fffe -_0803E430: .4byte gUnknown_202EDB8 -_0803E434: .4byte gUnknown_202ED30 -_0803E438: .4byte gUnknown_80F6224 -_0803E43C: .4byte gUnknown_202ED28 -_0803E440: .4byte gUnknown_80F621C -_0803E444: .4byte 0x0000c1ff -_0803E448: .4byte 0x000003ff -_0803E44C: .4byte 0x00000fff -_0803E450: .4byte 0x0000fffd -_0803E454: .4byte gUnknown_80F61EC -_0803E458: .4byte gUnknown_203B418 -_0803E45C: .4byte 0x00018217 -_0803E460: .4byte 0x00018218 -_0803E464: .4byte gUnknown_202EDC8 -_0803E468: .4byte gUnknown_202D058 - thumb_func_end sub_803E250 - - thumb_func_start sub_803E46C -sub_803E46C: - push {lr} - adds r1, r0, 0 - ldr r0, _0803E480 - ldrb r0, [r0] - cmp r0, 0 - beq _0803E484 - adds r0, r1, 0 - bl sub_803E490 - b _0803E48A - .align 2, 0 -_0803E480: .4byte gUnknown_203B40C -_0803E484: - adds r0, r1, 0 - bl sub_803E668 -_0803E48A: - pop {r0} - bx r0 - thumb_func_end sub_803E46C - - thumb_func_start sub_803E490 -sub_803E490: - push {r4,r5,lr} - sub sp, 0x8 - ldr r1, _0803E4D8 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bl xxx_draw_string_80524F0 - bl sub_8085F78 - movs r0, 0x1 - bl sub_803F580 - ldr r2, _0803E4DC - ldr r1, [r2] - ldr r3, _0803E4E0 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _0803E4EC - ldr r4, _0803E4E4 - adds r1, r4 - movs r0, 0x2 - strb r0, [r1] - ldr r1, [r2] - ldr r2, _0803E4E8 - adds r0, r1, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - subs r4, 0x16 - adds r1, r4 - movs r2, 0 - ldrsh r1, [r1, r2] - bl sub_800CCA0 - b _0803E4FC - .align 2, 0 -_0803E4D8: .4byte gUnknown_202EDD4 -_0803E4DC: .4byte gUnknown_203B418 -_0803E4E0: .4byte 0x0001821a -_0803E4E4: .4byte 0x00018208 -_0803E4E8: .4byte 0x000181f0 -_0803E4EC: - ldr r3, _0803E628 - adds r1, r3 - movs r0, 0x3 - strb r0, [r1] - movs r0, 0 - movs r1, 0 - bl sub_800CCA0 -_0803E4FC: - ldr r4, _0803E62C - ldr r2, [r4] - ldr r5, _0803E630 - adds r0, r2, r5 - movs r1, 0 - ldrsh r0, [r0, r1] - ldr r3, _0803E634 - adds r1, r2, r3 - movs r3, 0 - ldrsh r1, [r1, r3] - ldr r3, _0803E638 - adds r2, r3 - ldr r2, [r2] - subs r1, r2 - bl sub_800CCAC - bl sub_806CC10 - bl sub_804522C - bl sub_803F9CC - ldr r0, [r4] - adds r0, r5 - bl sub_800F7D0 - ldr r1, [r4] - ldrh r2, [r1, 0x12] - movs r3, 0x12 - ldrsh r0, [r1, r3] - cmp r0, 0x63 - bgt _0803E540 - adds r0, r2, 0x1 - strh r0, [r1, 0x12] -_0803E540: - ldr r0, [r4] - adds r0, r5 - bl sub_800E90C - bl sub_8042E5C - ldr r0, _0803E63C - ldr r0, [r0] - cmp r0, 0 - beq _0803E562 - cmp r0, 0x3 - beq _0803E562 - ldr r0, _0803E640 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - bne _0803E566 -_0803E562: - bl sub_8040894 -_0803E566: - bl sub_803ECE0 - bl sub_803EDF0 - ldr r0, _0803E62C - ldr r3, [r0] - ldr r4, _0803E644 - adds r0, r3, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0803E5A2 - ldr r1, _0803E648 - adds r0, r3, r1 - ldr r0, [r0] - cmp r0, 0x3 - beq _0803E5A2 - ldr r0, _0803E64C - ldrb r0, [r0] - ldr r1, _0803E650 - ldr r2, _0803E654 - ldr r2, [r2] - str r2, [sp] - movs r4, 0xBE - lsls r4, 1 - adds r2, r3, r4 - str r2, [sp, 0x4] - movs r2, 0xA0 - movs r3, 0x20 - bl sub_8004AF0 -_0803E5A2: - ldr r0, _0803E640 - ldr r0, [r0] - ldrb r0, [r0, 0xA] - bl nullsub_8 - bl sub_8005180 - bl nullsub_12 - bl sub_80060EC - ldr r1, _0803E658 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, _0803E65C - ldr r0, [r0] - bl sub_8094FB4 - bl sub_800CB20 - bl sub_800485C - bl CopySpritesToOam - bl nullsub_13 - bl sub_8005304 - bl nullsub_14 - bl TransferBGPaletteBuffer - bl sub_8009908 - bl xxx_call_update_bg_vram - bl sub_8040788 - bl xxx_call_update_bg_sound_input - ldr r0, _0803E62C - ldr r0, [r0] - ldr r1, _0803E660 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bl sub_8083F58 - bl sub_8011860 - bl sub_8040B60 - movs r0, 0 - bl ResetSprites - movs r0, 0 - bl nullsub_10 - ldr r1, _0803E664 - ldr r0, [r1] - subs r0, 0x1 - str r0, [r1] - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803E628: .4byte 0x00018208 -_0803E62C: .4byte gUnknown_203B418 -_0803E630: .4byte 0x000181f0 -_0803E634: .4byte 0x000181f2 -_0803E638: .4byte 0x000181fc -_0803E63C: .4byte gUnknown_202EDD0 -_0803E640: .4byte gUnknown_203B46C -_0803E644: .4byte 0x00018215 -_0803E648: .4byte 0x0001c06c -_0803E64C: .4byte gUnknown_203B40D -_0803E650: .4byte gUnknown_202EE8C -_0803E654: .4byte gUnknown_202EDC8 -_0803E658: .4byte gUnknown_202EDCC -_0803E65C: .4byte gUnknown_203B47C -_0803E660: .4byte 0x00018213 -_0803E664: .4byte gUnknown_202EDD4 - thumb_func_end sub_803E490 - - thumb_func_start sub_803E668 -sub_803E668: - push {r4,lr} - ldr r4, _0803E6F0 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - ldr r0, _0803E6F4 - ldr r0, [r0] - ldrb r0, [r0, 0xA] - bl nullsub_8 - bl sub_8005180 - bl nullsub_12 - movs r0, 0 - movs r1, 0 - bl sub_8005838 - bl sub_80060EC - ldr r1, _0803E6F8 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, _0803E6FC - ldr r0, [r0] - bl sub_8094FB4 - bl sub_800CB20 - bl sub_800485C - bl CopySpritesToOam - bl nullsub_13 - bl sub_8005304 - bl nullsub_14 - bl TransferBGPaletteBuffer - bl sub_8009908 - bl xxx_call_update_bg_vram - bl xxx_call_update_bg_sound_input - ldr r0, _0803E700 - ldr r0, [r0] - ldr r1, _0803E704 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bl sub_8011860 - movs r0, 0 - bl ResetSprites - movs r0, 0 - bl nullsub_10 - ldr r0, [r4] - subs r0, 0x1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803E6F0: .4byte gUnknown_202EDD4 -_0803E6F4: .4byte gUnknown_203B46C -_0803E6F8: .4byte gUnknown_202EDCC -_0803E6FC: .4byte gUnknown_203B47C -_0803E700: .4byte gUnknown_203B418 -_0803E704: .4byte 0x00018213 - thumb_func_end sub_803E668 - - thumb_func_start sub_803E708 -sub_803E708: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - cmp r4, 0 - beq _0803E71E -_0803E712: - adds r0, r5, 0 - bl sub_803E46C - subs r4, 0x1 - cmp r4, 0 - bne _0803E712 -_0803E71E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_803E708 - - thumb_func_start sub_803E724 -sub_803E724: - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _0803E744 - movs r6, 0xF0 -_0803E72C: - adds r0, r4, 0 - bl sub_803E46C - ldrh r1, [r5] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _0803E72C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803E744: .4byte gUnknown_20255F0 - thumb_func_end sub_803E724 - - thumb_func_start sub_803E748 -sub_803E748: - push {r4,r5,lr} - movs r5, 0x1F - ldr r1, _0803E7B8 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _0803E7BC - movs r0, 0 - str r0, [r1] - movs r0, 0x1 - movs r1, 0x1F - bl sub_803E874 - movs r4, 0 -_0803E762: - cmp r4, 0x1F - bgt _0803E780 - subs r5, 0x2 - cmp r5, 0 - bgt _0803E780 - movs r5, 0 - movs r0, 0x1 - movs r1, 0 - bl sub_803EAF0 - ldr r0, _0803E7C0 - ldr r0, [r0] - ldr r1, _0803E7C4 - adds r0, r1 - strb r5, [r0] -_0803E780: - cmp r4, 0xB - ble _0803E790 - ldr r1, _0803E7BC - ldr r0, [r1] - cmp r0, 0x1E - bgt _0803E790 - adds r0, 0x1 - str r0, [r1] -_0803E790: - movs r0, 0x1 - adds r1, r5, 0 - bl sub_803E874 - movs r0, 0x5 - bl sub_803E46C - adds r4, 0x1 - cmp r4, 0x2B - ble _0803E762 - ldr r1, _0803E7B8 - movs r0, 0 - strb r0, [r1] - ldr r1, _0803E7BC - movs r0, 0x1F - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803E7B8: .4byte gUnknown_203B40D -_0803E7BC: .4byte gUnknown_202EDC8 -_0803E7C0: .4byte gUnknown_203B418 -_0803E7C4: .4byte 0x00018217 - thumb_func_end sub_803E748 - - thumb_func_start sub_803E7C8 -sub_803E7C8: - push {r4,r5,lr} - movs r4, 0x1F - ldr r1, _0803E820 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _0803E824 - movs r0, 0 - str r0, [r1] - movs r0, 0x5 - bl sub_803E46C - movs r5, 0 -_0803E7E0: - movs r0, 0x1 - adds r1, r4, 0 - bl sub_803E874 - cmp r5, 0x1F - bgt _0803E806 - subs r4, 0x2 - cmp r4, 0 - bgt _0803E806 - movs r4, 0 - movs r0, 0x1 - movs r1, 0 - bl sub_803EAF0 - ldr r0, _0803E828 - ldr r0, [r0] - ldr r1, _0803E82C - adds r0, r1 - strb r4, [r0] -_0803E806: - movs r0, 0x5 - bl sub_803E46C - adds r5, 0x1 - cmp r5, 0x2B - ble _0803E7E0 - ldr r1, _0803E820 - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803E820: .4byte gUnknown_203B40D -_0803E824: .4byte gUnknown_202EDC8 -_0803E828: .4byte gUnknown_203B418 -_0803E82C: .4byte 0x00018217 - thumb_func_end sub_803E7C8 - - thumb_func_start sub_803E830 -sub_803E830: - push {r4,r5,lr} - ldr r1, _0803E86C - movs r0, 0x1 - strb r0, [r1] - ldr r5, _0803E870 - movs r4, 0x1F -_0803E83C: - movs r0, 0 - movs r1, 0 - bl sub_803E874 - movs r0, 0x5 - bl sub_803E46C - ldr r0, [r5] - cmp r0, 0 - ble _0803E854 - subs r0, 0x1 - str r0, [r5] -_0803E854: - subs r4, 0x1 - cmp r4, 0 - bge _0803E83C - ldr r0, _0803E870 - movs r1, 0 - str r1, [r0] - ldr r0, _0803E86C - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803E86C: .4byte gUnknown_203B40D -_0803E870: .4byte gUnknown_202EDC8 - thumb_func_end sub_803E830 - - thumb_func_start sub_803E874 -sub_803E874: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r9, r1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _0803E9A4 - ldr r0, [r0] - ldr r5, [r0, 0x4] - ldr r1, _0803E9A8 - ldr r0, _0803E9AC - ldr r2, [r0] - ldr r0, _0803E9B0 - ldr r3, [r0] - movs r0, 0xBE - lsls r0, 1 - adds r3, r0 - movs r0, 0 - bl SetBGPaletteBufferColorRGB - adds r5, 0x4 - movs r6, 0x1 - movs r4, 0x9F -_0803E8AA: - ldr r1, _0803E9AC - mov r8, r1 - ldr r2, [r1] - ldr r7, _0803E9B0 - ldr r3, [r7] - movs r0, 0xBE - lsls r0, 1 - adds r3, r0 - adds r0, r6, 0 - adds r1, r5, 0 - bl SetBGPaletteBufferColorRGB - adds r5, 0x4 - adds r6, 0x1 - subs r4, 0x1 - cmp r4, 0 - bne _0803E8AA - ldr r3, [r7] - ldr r1, _0803E9B4 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0803E8E2 - ldr r2, _0803E9B8 - adds r0, r3, r2 - ldr r0, [r0] - cmp r0, 0x3 - bne _0803E8FC -_0803E8E2: - ldr r1, _0803E9BC - mov r2, r8 - ldr r0, [r2] - str r0, [sp] - movs r2, 0xBE - lsls r2, 1 - adds r0, r3, r2 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0xA0 - movs r3, 0x20 - bl sub_8004AF0 -_0803E8FC: - adds r6, 0x20 - ldr r5, _0803E9C0 - movs r4, 0x20 -_0803E902: - ldr r0, _0803E9AC - ldr r2, [r0] - ldr r0, _0803E9B0 - ldr r3, [r0] - movs r0, 0xBE - lsls r0, 1 - adds r3, r0 - adds r0, r6, 0 - adds r1, r5, 0 - bl SetBGPaletteBufferColorRGB - adds r5, 0x4 - adds r6, 0x1 - subs r4, 0x1 - cmp r4, 0 - bne _0803E902 - mov r1, r10 - cmp r1, 0 - beq _0803E948 - movs r6, 0xE0 - ldr r0, _0803E9C4 - ldr r0, [r0] - ldr r5, [r0, 0x4] - movs r4, 0x10 -_0803E932: - adds r0, r6, 0 - adds r1, r5, 0 - mov r2, r9 - movs r3, 0 - bl SetBGPaletteBufferColorRGB - adds r5, 0x4 - adds r6, 0x1 - subs r4, 0x1 - cmp r4, 0 - bne _0803E932 -_0803E948: - ldr r1, _0803E9C8 - ldr r4, _0803E9AC - ldr r2, [r4] - movs r0, 0xF8 - movs r3, 0 - bl SetBGPaletteBufferColorRGB - ldr r0, _0803E9B0 - ldr r0, [r0] - ldr r2, _0803E9CC - adds r0, r2 - ldr r0, [r0] - ldr r5, [r0, 0x4] - movs r6, 0x80 - lsls r6, 1 - adds r7, r4, 0 - movs r4, 0xD0 -_0803E96A: - ldr r2, [r7] - ldr r0, _0803E9B0 - ldr r3, [r0] - movs r0, 0xBE - lsls r0, 1 - adds r3, r0 - adds r0, r6, 0 - adds r1, r5, 0 - bl SetBGPaletteBufferColorRGB - ldr r2, [r7] - adds r0, r6, 0 - adds r1, r5, 0 - movs r3, 0 - bl nullsub_4 - adds r5, 0x4 - adds r6, 0x1 - subs r4, 0x1 - cmp r4, 0 - bne _0803E96A - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803E9A4: .4byte gUnknown_202EE88 -_0803E9A8: .4byte gUnknown_80F62AC -_0803E9AC: .4byte gUnknown_202EDC8 -_0803E9B0: .4byte gUnknown_203B418 -_0803E9B4: .4byte 0x00018215 -_0803E9B8: .4byte 0x0001c06c -_0803E9BC: .4byte gUnknown_202EE8C -_0803E9C0: .4byte gUnknown_202ECA4 -_0803E9C4: .4byte gDungeonNameBannerPalette -_0803E9C8: .4byte gUnknown_202D058 -_0803E9CC: .4byte 0x000181e4 - thumb_func_end sub_803E874 - - thumb_func_start sub_803E9D0 -sub_803E9D0: - push {r4-r7,lr} - ldr r0, _0803EA04 - ldr r0, [r0] - ldr r1, _0803EA08 - adds r0, r1 - ldr r0, [r0] - ldr r4, [r0, 0x4] - movs r6, 0x80 - lsls r6, 1 - ldr r7, _0803EA0C - movs r5, 0xD0 -_0803E9E6: - ldr r2, [r7] - adds r0, r6, 0 - adds r1, r4, 0 - movs r3, 0 - bl nullsub_4 - adds r4, 0x4 - adds r6, 0x1 - subs r5, 0x1 - cmp r5, 0 - bne _0803E9E6 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803EA04: .4byte gUnknown_203B418 -_0803EA08: .4byte 0x000181e4 -_0803EA0C: .4byte gUnknown_202EDC8 - thumb_func_end sub_803E9D0 - - thumb_func_start sub_803EA10 -sub_803EA10: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - ldr r0, _0803EACC - ldr r0, [r0] - ldr r4, [r0, 0x4] - ldr r1, _0803EAD0 - ldr r0, _0803EAD4 - ldr r2, [r0] - ldr r0, _0803EAD8 - ldr r3, [r0] - movs r0, 0xBE - lsls r0, 1 - adds r3, r0 - movs r0, 0 - bl SetBGPaletteBufferColorRGB - adds r4, 0x4 - movs r6, 0x1 - movs r5, 0x9F -_0803EA3A: - ldr r1, _0803EAD4 - mov r8, r1 - ldr r2, [r1] - ldr r7, _0803EAD8 - ldr r3, [r7] - movs r0, 0xBE - lsls r0, 1 - adds r3, r0 - adds r0, r6, 0 - adds r1, r4, 0 - bl SetBGPaletteBufferColorRGB - adds r4, 0x4 - adds r6, 0x1 - subs r5, 0x1 - cmp r5, 0 - bne _0803EA3A - ldr r3, [r7] - ldr r1, _0803EADC - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0803EA72 - ldr r2, _0803EAE0 - adds r0, r3, r2 - ldr r0, [r0] - cmp r0, 0x3 - bne _0803EA8C -_0803EA72: - ldr r1, _0803EAE4 - mov r2, r8 - ldr r0, [r2] - str r0, [sp] - movs r2, 0xBE - lsls r2, 1 - adds r0, r3, r2 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0xA0 - movs r3, 0x20 - bl sub_8004AF0 -_0803EA8C: - adds r6, 0x20 - ldr r4, _0803EAE8 - movs r5, 0x20 -_0803EA92: - ldr r7, _0803EAD4 - ldr r2, [r7] - ldr r0, _0803EAD8 - ldr r3, [r0] - movs r0, 0xBE - lsls r0, 1 - adds r3, r0 - adds r0, r6, 0 - adds r1, r4, 0 - bl SetBGPaletteBufferColorRGB - adds r4, 0x4 - adds r6, 0x1 - subs r5, 0x1 - cmp r5, 0 - bne _0803EA92 - ldr r1, _0803EAEC - ldr r2, [r7] - movs r0, 0xF8 - movs r3, 0 - bl SetBGPaletteBufferColorRGB - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803EACC: .4byte gUnknown_202EE88 -_0803EAD0: .4byte gUnknown_80F62AC -_0803EAD4: .4byte gUnknown_202EDC8 -_0803EAD8: .4byte gUnknown_203B418 -_0803EADC: .4byte 0x00018215 -_0803EAE0: .4byte 0x0001c06c -_0803EAE4: .4byte gUnknown_202EE8C -_0803EAE8: .4byte gUnknown_202ECA4 -_0803EAEC: .4byte gUnknown_202D058 - thumb_func_end sub_803EA10 - - thumb_func_start sub_803EAF0 -sub_803EAF0: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, _0803EB20 - ldr r0, [r0] - cmp r4, r0 - bne _0803EB00 - b _0803EC88 -_0803EB00: - cmp r4, 0x5 - bne _0803EB06 - b _0803EC1C -_0803EB06: - cmp r4, 0x5 - bhi _0803EB2E - cmp r4, 0x2 - bne _0803EB10 - b _0803EBFC -_0803EB10: - cmp r4, 0x2 - bhi _0803EB24 - cmp r4, 0 - beq _0803EB70 - cmp r4, 0x1 - beq _0803EB50 - b _0803EC84 - .align 2, 0 -_0803EB20: .4byte gUnknown_202EDD0 -_0803EB24: - cmp r4, 0x3 - beq _0803EB98 - cmp r4, 0x4 - beq _0803EBFC - b _0803EC84 -_0803EB2E: - cmp r4, 0x8 - bne _0803EB34 - b _0803EC34 -_0803EB34: - cmp r4, 0x8 - bhi _0803EB42 - cmp r4, 0x6 - beq _0803EBBC - cmp r4, 0x7 - beq _0803EBDC - b _0803EC84 -_0803EB42: - cmp r4, 0xA - bne _0803EB48 - b _0803EC80 -_0803EB48: - cmp r4, 0xA - bcs _0803EB4E - b _0803EC54 -_0803EB4E: - b _0803EC84 -_0803EB50: - ldr r0, _0803EB6C - ldrb r0, [r0] - cmp r0, 0 - beq _0803EB5E - movs r0, 0 - bl sub_8052210 -_0803EB5E: - bl sub_8004914 - bl sub_803EC94 - movs r0, 0 - movs r1, 0x1 - b _0803EC6E - .align 2, 0 -_0803EB6C: .4byte gUnknown_203B40C -_0803EB70: - bl sub_803EC94 - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, _0803EB94 - ldrb r0, [r0] - cmp r0, 0 - bne _0803EB88 - b _0803EC84 -_0803EB88: - bl sub_8040A84 - movs r0, 0 - bl sub_8040ABC - b _0803EC84 - .align 2, 0 -_0803EB94: .4byte gUnknown_203B40C -_0803EB98: - ldr r0, _0803EBB4 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, _0803EBB8 - ldrb r0, [r0] - cmp r0, 0 - beq _0803EC84 - movs r0, 0x1 - bl sub_8040ABC - b _0803EC84 - .align 2, 0 -_0803EBB4: .4byte gUnknown_80F62B0 -_0803EBB8: .4byte gUnknown_203B40C -_0803EBBC: - ldr r0, _0803EBD4 - ldrb r0, [r0] - cmp r0, 0 - beq _0803EBCA - movs r0, 0 - bl sub_8052210 -_0803EBCA: - bl sub_8004914 - ldr r0, _0803EBD8 - movs r1, 0x1 - b _0803EC6E - .align 2, 0 -_0803EBD4: .4byte gUnknown_203B40C -_0803EBD8: .4byte gUnknown_80F6310 -_0803EBDC: - ldr r0, _0803EBF4 - ldrb r0, [r0] - cmp r0, 0 - beq _0803EBEA - movs r0, 0 - bl sub_8052210 -_0803EBEA: - bl sub_8004914 - ldr r0, _0803EBF8 - movs r1, 0x1 - b _0803EC6E - .align 2, 0 -_0803EBF4: .4byte gUnknown_203B40C -_0803EBF8: .4byte gUnknown_80F6370 -_0803EBFC: - ldr r0, _0803EC18 - ldrb r0, [r0] - cmp r0, 0 - beq _0803EC0A - movs r0, 0 - bl sub_8052210 -_0803EC0A: - bl sub_8004914 - bl sub_803EC94 - movs r0, 0 - movs r1, 0x1 - b _0803EC6E - .align 2, 0 -_0803EC18: .4byte gUnknown_203B40C -_0803EC1C: - ldr r0, _0803EC30 - ldrb r0, [r0] - cmp r0, 0 - beq _0803EC2A - movs r0, 0 - bl sub_8052210 -_0803EC2A: - movs r0, 0 - movs r1, 0x1 - b _0803EC6E - .align 2, 0 -_0803EC30: .4byte gUnknown_203B40C -_0803EC34: - ldr r0, _0803EC50 - ldrb r0, [r0] - cmp r0, 0 - beq _0803EC46 - bl sub_8083D44 - movs r0, 0 - bl sub_8052210 -_0803EC46: - movs r0, 0x2 - adds r1, r5, 0 - bl sub_801602C - b _0803EC84 - .align 2, 0 -_0803EC50: .4byte gUnknown_203B40C -_0803EC54: - ldr r0, _0803EC78 - ldrb r0, [r0] - cmp r0, 0 - beq _0803EC66 - movs r0, 0 - bl sub_8052210 - bl sub_8083D44 -_0803EC66: - bl sub_8004914 - ldr r0, _0803EC7C - movs r1, 0 -_0803EC6E: - movs r2, 0x1 - bl sub_800641C - b _0803EC84 - .align 2, 0 -_0803EC78: .4byte gUnknown_203B40C -_0803EC7C: .4byte gUnknown_80F63D0 -_0803EC80: - bl sub_8083D44 -_0803EC84: - ldr r0, _0803EC90 - str r4, [r0] -_0803EC88: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803EC90: .4byte gUnknown_202EDD0 - thumb_func_end sub_803EAF0 - - thumb_func_start sub_803EC94 -sub_803EC94: - push {lr} - ldr r0, _0803ECB0 - movs r1, 0 - strh r1, [r0, 0x1E] - strh r1, [r0, 0x20] - strh r1, [r0, 0xC] - strh r1, [r0, 0xE] - strh r1, [r0, 0x14] - adds r0, 0x28 - bl sub_801317C - pop {r0} - bx r0 - .align 2, 0 -_0803ECB0: .4byte gUnknown_202EE10 - thumb_func_end sub_803EC94 - - thumb_func_start sub_803ECB4 -sub_803ECB4: - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r1, _0803ECDC - movs r0, 0xA - str r0, [r1] - movs r0, 0 - bl sub_8052210 - bl sub_8004914 - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl sub_800641C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803ECDC: .4byte gUnknown_202EDD0 - thumb_func_end sub_803ECB4 - - thumb_func_start sub_803ECE0 -sub_803ECE0: - push {lr} - ldr r1, _0803ED24 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0 - bge _0803ECF2 - movs r0, 0 - str r0, [r1] -_0803ECF2: - ldr r0, [r1] - cmp r0, 0xB - ble _0803ECFC - movs r0, 0 - str r0, [r1] -_0803ECFC: - ldr r0, _0803ED28 - ldr r2, [r0] - ldr r0, [r1] - cmp r0, 0 - bge _0803ED08 - adds r0, 0x3 -_0803ED08: - asrs r1, r0, 2 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 6 - ldr r1, [r2, 0x4] - adds r1, r0 - movs r2, 0x90 - lsls r2, 2 - ldr r0, _0803ED2C - bl sub_80098BC - pop {r0} - bx r0 - .align 2, 0 -_0803ED24: .4byte gUnknown_202EDD8 -_0803ED28: .4byte gUnknown_202EC94 -_0803ED2C: .4byte 0x06014400 - thumb_func_end sub_803ECE0 - - thumb_func_start sub_803ED30 -sub_803ED30: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - adds r7, r1, 0 - mov r9, r3 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - cmp r5, 0 - beq _0803EDDA - ldr r0, _0803EDAC - ldr r0, [r0] - ldr r1, _0803EDB0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0803EDDA - movs r4, 0 - ldr r1, _0803EDB4 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0803ED78 - adds r6, r1, 0 -_0803ED64: - movs r0, 0x29 - bl sub_803E46C - adds r4, 0x1 - cmp r4, 0x13 - bgt _0803ED78 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _0803ED64 -_0803ED78: - adds r0, r5, 0 - mov r1, r8 - bl sub_803EF90 - ldr r3, _0803EDB4 - movs r2, 0 - movs r1, 0x3C - strh r1, [r3] - str r7, [r3, 0x4] - ldrh r1, [r7, 0x26] - str r1, [r3, 0x8] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 8 - negs r1, r1 - str r1, [r3, 0xC] - str r2, [r3, 0x10] - mov r2, r9 - cmp r2, 0 - bge _0803EDC8 - ldr r0, _0803EDB8 - cmp r5, r0 - bge _0803EDBC - movs r0, 0x6 - b _0803EDCA - .align 2, 0 -_0803EDAC: .4byte gUnknown_203B418 -_0803EDB0: .4byte 0x0001820a -_0803EDB4: .4byte gUnknown_202EDE8 -_0803EDB8: .4byte 0xfffffc19 -_0803EDBC: - cmp r5, 0 - blt _0803EDC4 - movs r0, 0xA - b _0803EDCA -_0803EDC4: - movs r0, 0x3 - b _0803EDCA -_0803EDC8: - mov r0, r9 -_0803EDCA: - strh r0, [r3, 0x2] - ldr r0, _0803EDE8 - ldr r1, _0803EDEC - ldr r1, [r1] - adds r1, 0x18 - movs r2, 0x80 - bl sub_80098BC -_0803EDDA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803EDE8: .4byte 0x060142c0 -_0803EDEC: .4byte gUnknown_203B418 - thumb_func_end sub_803ED30 - - thumb_func_start sub_803EDF0 -sub_803EDF0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r6, _0803EE18 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _0803EE06 - b _0803EF42 -_0803EE06: - ldr r0, [r6, 0x4] - bl sub_80450E0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0803EE1C - strh r0, [r6] - b _0803EF42 - .align 2, 0 -_0803EE18: .4byte gUnknown_202EDE8 -_0803EE1C: - ldr r1, [r6, 0x4] - ldr r0, [r6, 0x8] - ldrh r2, [r1, 0x26] - cmp r0, r2 - beq _0803EE2C - movs r0, 0 - strh r0, [r6] - b _0803EF42 -_0803EE2C: - ldrh r0, [r6] - subs r0, 0x1 - strh r0, [r6] - ldr r4, [r6, 0x10] - adds r3, r4, 0 - subs r3, 0x2E - str r3, [r6, 0x10] - ldr r2, [r1, 0x70] - movs r5, 0xB8 - lsls r5, 1 - adds r0, r2, r5 - movs r1, 0 - ldrsh r0, [r0, r1] - ldr r1, [r6, 0xC] - cmp r1, 0 - bge _0803EE4E - adds r1, 0xFF -_0803EE4E: - asrs r1, 8 - adds r1, r0, r1 - ldr r0, _0803EF50 - ldr r0, [r0] - mov r12, r0 - ldr r0, _0803EF54 - add r0, r12 - movs r5, 0 - ldrsh r0, [r0, r5] - subs r7, r1, r0 - movs r1, 0xB9 - lsls r1, 1 - adds r0, r2, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r1, r3, 0 - cmp r1, 0 - bge _0803EE76 - adds r1, r4, 0 - adds r1, 0xD1 -_0803EE76: - asrs r1, 8 - adds r1, r0, r1 - ldr r0, _0803EF58 - add r0, r12 - movs r3, 0 - ldrsh r0, [r0, r3] - adds r0, 0x18 - subs r2, r1, r0 - movs r0, 0x20 - negs r0, r0 - cmp r7, r0 - blt _0803EF42 - adds r0, 0x18 - cmp r2, r0 - blt _0803EF42 - cmp r7, 0xEF - bgt _0803EF42 - cmp r2, 0x9F - bgt _0803EF42 - ldr r1, _0803EF5C - ands r1, r2 - lsls r1, 4 - ldr r0, _0803EF60 - ldrh r2, [r0, 0x6] - movs r4, 0xF - mov r8, r4 - mov r3, r8 - ands r3, r2 - orrs r3, r1 - strh r3, [r0, 0x6] - ldrh r2, [r0] - ldr r1, _0803EF64 - ands r1, r2 - ldr r2, _0803EF68 - ands r1, r2 - movs r5, 0x3 - mov r9, r5 - ldr r2, _0803EF6C - mov r10, r2 - ands r1, r2 - ldr r2, _0803EF70 - ands r1, r2 - ldr r2, _0803EF74 - ands r1, r2 - movs r5, 0x80 - lsls r5, 7 - ldr r4, _0803EF78 - ands r1, r4 - orrs r1, r5 - strh r1, [r0] - ldr r1, _0803EF7C - ands r7, r1 - ldrh r2, [r0, 0x2] - movs r1, 0xFE - lsls r1, 8 - ands r1, r2 - orrs r1, r7 - ldr r2, _0803EF80 - ands r1, r2 - ands r1, r4 - orrs r1, r5 - strh r1, [r0, 0x2] - ldr r4, _0803EF84 - ldrh r2, [r0, 0x4] - movs r1, 0xFC - lsls r1, 8 - ands r1, r2 - orrs r1, r4 - movs r2, 0 - orrs r1, r2 - strh r1, [r0, 0x4] - ldr r2, _0803EF88 - add r2, r12 - ldrb r2, [r2] - mov r4, r9 - ands r2, r4 - lsls r2, 10 - mov r5, r10 - ands r1, r5 - orrs r1, r2 - movs r4, 0x2 - ldrsh r2, [r6, r4] - mov r5, r8 - ands r2, r5 - lsls r2, 12 - ldr r4, _0803EF5C - ands r1, r4 - orrs r1, r2 - strh r1, [r0, 0x4] - ldr r1, _0803EF8C - ands r3, r1 - subs r1, 0x1 - ands r3, r1 - subs r1, 0x2 - ands r3, r1 - strh r3, [r0, 0x6] - movs r1, 0x80 - lsls r1, 1 - movs r2, 0 - movs r3, 0 - bl AddSprite -_0803EF42: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803EF50: .4byte gUnknown_203B418 -_0803EF54: .4byte 0x000181f0 -_0803EF58: .4byte 0x000181f2 -_0803EF5C: .4byte 0x00000fff -_0803EF60: .4byte gUnknown_202EDDC -_0803EF64: .4byte 0x0000feff -_0803EF68: .4byte 0x0000fdff -_0803EF6C: .4byte 0x0000f3ff -_0803EF70: .4byte 0x0000efff -_0803EF74: .4byte 0x0000dfff -_0803EF78: .4byte 0x00003fff -_0803EF7C: .4byte 0x000001ff -_0803EF80: .4byte 0x0000c1ff -_0803EF84: .4byte 0x00000216 -_0803EF88: .4byte 0x00018208 -_0803EF8C: .4byte 0x0000fffe - thumb_func_end sub_803EDF0 - - thumb_func_start sub_803EF90 -sub_803EF90: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - str r0, [sp, 0x48] - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _0803F060 - ldr r0, [r0] - adds r0, 0x18 - mov r8, r0 - ldr r0, _0803F064 - ldr r1, [r0] - ldr r0, [r1, 0x4] - movs r2, 0x92 - lsls r2, 1 - adds r0, r2 - str r0, [sp, 0x24] - ldr r0, [r1, 0x4] - movs r3, 0x82 - lsls r3, 1 - adds r0, r3 - str r0, [sp, 0x28] - ldr r0, [r1, 0x4] - adds r0, 0xE4 - str r0, [sp, 0x2C] - ldr r0, [r1, 0x4] - adds r0, 0xC4 - str r0, [sp, 0x30] - ldr r0, [r1, 0x4] - adds r0, 0xA4 - str r0, [sp, 0x34] - ldr r0, [r1, 0x4] - adds r0, 0x84 - str r0, [sp, 0x38] - ldr r0, [r1, 0x4] - adds r0, 0x64 - str r0, [sp, 0x3C] - ldr r0, [r1, 0x4] - adds r0, 0x44 - str r0, [sp, 0x40] - ldr r0, [r1, 0x4] - adds r0, 0x24 - str r0, [sp, 0x44] - add r4, sp, 0x24 - mov r0, sp - adds r1, r4, 0 - movs r2, 0x24 - bl memcpy - movs r1, 0 - movs r6, 0x3 - mov r0, r8 -_0803EFFE: - stm r0!, {r1} - stm r0!, {r1} - stm r0!, {r1} - stm r0!, {r1} - stm r0!, {r1} - stm r0!, {r1} - stm r0!, {r1} - stm r0!, {r1} - subs r6, 0x1 - cmp r6, 0 - bge _0803EFFE - ldr r0, _0803F068 - ldr r1, [sp, 0x48] - cmp r1, r0 - bne _0803F0A6 - adds r0, r4, 0 - ldr r1, _0803F06C - ldm r1!, {r2,r3,r5} - stm r0!, {r2,r3,r5} - ldr r1, [r1] - str r1, [r0] - movs r5, 0 - movs r2, 0 - mov r12, r4 - movs r0, 0x20 - mov r10, r0 -_0803F032: - mov r3, r8 - ldr r0, _0803F064 - ldr r1, [r0] - lsls r0, r2, 2 - add r0, r12 - ldr r0, [r0] - lsls r0, 5 - adds r0, 0x4 - ldr r1, [r1, 0x4] - adds r4, r1, r0 - movs r1, 0x18 - adds r1, r5 - mov r9, r1 - adds r2, 0x1 - str r2, [sp, 0x54] - mov r2, r10 - subs r7, r2, r5 - movs r6, 0x7 -_0803F056: - cmp r5, 0 - bne _0803F070 - movs r1, 0 - ldr r2, [r4] - b _0803F07A - .align 2, 0 -_0803F060: .4byte gUnknown_203B418 -_0803F064: .4byte gUnknown_202EC9C -_0803F068: .4byte 0x0000270f -_0803F06C: .4byte gUnknown_80F6478 -_0803F070: - ldr r0, [r4] - adds r1, r0, 0 - lsrs r1, r7 - adds r2, r0, 0 - lsls r2, r5 -_0803F07A: - adds r4, 0x4 - ldr r0, [r3] - orrs r0, r2 - str r0, [r3] - ldr r0, [r3, 0x20] - orrs r0, r1 - str r0, [r3, 0x20] - adds r3, 0x4 - subs r6, 0x1 - cmp r6, 0 - bge _0803F056 - mov r5, r9 - cmp r5, 0x1F - ble _0803F09C - subs r5, 0x20 - movs r3, 0x20 - add r8, r3 -_0803F09C: - ldr r2, [sp, 0x54] - cmp r2, 0x3 - ble _0803F032 - movs r0, 0x4 - b _0803F26A -_0803F0A6: - ldr r0, _0803F0D8 - ldr r1, [sp, 0x48] - cmp r1, r0 - ble _0803F0B0 - str r0, [sp, 0x48] -_0803F0B0: - ldr r0, _0803F0DC - ldr r2, [sp, 0x48] - cmp r2, r0 - bge _0803F0BA - str r0, [sp, 0x48] -_0803F0BA: - ldr r1, _0803F0E0 - ldr r0, [r1] - ldr r0, [r0, 0x4] - movs r3, 0xC2 - lsls r3, 1 - adds r2, r0, r3 - cmp r5, 0 - beq _0803F0F4 - ldr r5, [sp, 0x48] - cmp r5, 0 - ble _0803F0E4 - movs r1, 0xA2 - lsls r1, 1 - adds r2, r0, r1 - b _0803F0F4 - .align 2, 0 -_0803F0D8: .4byte 0x000003e7 -_0803F0DC: .4byte 0xfffffc19 -_0803F0E0: .4byte gUnknown_202EC9C -_0803F0E4: - ldr r3, [sp, 0x48] - cmp r3, 0 - bge _0803F0F4 - movs r5, 0xB2 - lsls r5, 1 - adds r2, r0, r5 - negs r3, r3 - str r3, [sp, 0x48] -_0803F0F4: - ldm r2!, {r0} - mov r1, r8 - str r0, [r1] - ldm r2!, {r0} - str r0, [r1, 0x4] - ldm r2!, {r0} - str r0, [r1, 0x8] - ldm r2!, {r0} - str r0, [r1, 0xC] - ldm r2!, {r0} - str r0, [r1, 0x10] - ldm r2!, {r0} - str r0, [r1, 0x14] - ldm r2!, {r0} - str r0, [r1, 0x18] - ldr r0, [r2] - str r0, [r1, 0x1C] - movs r5, 0x18 - movs r2, 0x1 - str r2, [sp, 0x4C] - movs r3, 0 - str r3, [sp, 0x50] - movs r2, 0 -_0803F122: - movs r0, 0 - mov r10, r0 - adds r1, r2, 0x1 - str r1, [sp, 0x54] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - mov r1, sp - ldr r2, _0803F15C - adds r7, r0, r2 -_0803F136: - ldr r0, [r7] - ldr r3, [sp, 0x48] - cmp r0, r3 - bgt _0803F1A2 - ldr r4, [r1] - mov r2, r8 - movs r0, 0x18 - adds r0, r5 - mov r9, r0 - movs r1, 0x20 - subs r1, r5 - mov r12, r1 - movs r6, 0x7 -_0803F150: - cmp r5, 0 - bne _0803F160 - movs r3, 0 - ldr r1, [r4] - b _0803F16C - .align 2, 0 -_0803F15C: .4byte gUnknown_80F6430 -_0803F160: - ldr r0, [r4] - adds r3, r0, 0 - mov r1, r12 - lsrs r3, r1 - adds r1, r0, 0 - lsls r1, r5 -_0803F16C: - adds r4, 0x4 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r0, [r2, 0x20] - orrs r0, r3 - str r0, [r2, 0x20] - adds r2, 0x4 - movs r3, 0x1 - str r3, [sp, 0x50] - subs r6, 0x1 - cmp r6, 0 - bge _0803F150 - mov r5, r9 - cmp r5, 0x1F - ble _0803F192 - subs r5, 0x20 - movs r0, 0x20 - add r8, r0 -_0803F192: - ldr r0, [r7] - ldr r1, [sp, 0x48] - subs r1, r0 - str r1, [sp, 0x48] - ldr r2, [sp, 0x4C] - adds r2, 0x1 - str r2, [sp, 0x4C] - b _0803F1B0 -_0803F1A2: - adds r1, 0x4 - adds r7, 0x4 - movs r3, 0x1 - add r10, r3 - mov r0, r10 - cmp r0, 0x8 - ble _0803F136 -_0803F1B0: - mov r1, r10 - cmp r1, 0x9 - bne _0803F212 - ldr r2, [sp, 0x50] - cmp r2, 0 - beq _0803F212 - ldr r3, _0803F1DC - ldr r0, [r3] - ldr r0, [r0, 0x4] - adds r4, r0, 0x4 - mov r2, r8 - movs r0, 0x18 - adds r0, r5 - mov r9, r0 - movs r1, 0x20 - subs r7, r1, r5 - movs r6, 0x7 -_0803F1D2: - cmp r5, 0 - bne _0803F1E0 - movs r3, 0 - ldr r1, [r4] - b _0803F1EA - .align 2, 0 -_0803F1DC: .4byte gUnknown_202EC9C -_0803F1E0: - ldr r0, [r4] - adds r3, r0, 0 - lsrs r3, r7 - adds r1, r0, 0 - lsls r1, r5 -_0803F1EA: - adds r4, 0x4 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r0, [r2, 0x20] - orrs r0, r3 - str r0, [r2, 0x20] - adds r2, 0x4 - subs r6, 0x1 - cmp r6, 0 - bge _0803F1D2 - mov r5, r9 - cmp r5, 0x1F - ble _0803F20C - subs r5, 0x20 - movs r2, 0x20 - add r8, r2 -_0803F20C: - ldr r3, [sp, 0x4C] - adds r3, 0x1 - str r3, [sp, 0x4C] -_0803F212: - ldr r2, [sp, 0x54] - cmp r2, 0x1 - ble _0803F122 - ldr r0, _0803F240 - ldr r1, [r0] - ldr r2, [sp, 0x48] - lsls r0, r2, 5 - adds r0, 0x4 - ldr r1, [r1, 0x4] - adds r1, r0 - mov r3, r8 - ldr r0, [sp, 0x4C] - adds r0, 0x1 - mov r8, r0 - movs r0, 0x20 - subs r7, r0, r5 - movs r6, 0x7 -_0803F234: - cmp r5, 0 - bne _0803F244 - movs r4, 0 - ldr r2, [r1] - b _0803F24E - .align 2, 0 -_0803F240: .4byte gUnknown_202EC9C -_0803F244: - ldr r0, [r1] - adds r4, r0, 0 - lsrs r4, r7 - adds r2, r0, 0 - lsls r2, r5 -_0803F24E: - adds r1, 0x4 - ldr r0, [r3] - orrs r0, r2 - str r0, [r3] - ldr r0, [r3, 0x20] - orrs r0, r4 - str r0, [r3, 0x20] - adds r3, 0x4 - subs r6, 0x1 - cmp r6, 0 - bge _0803F234 - mov r1, r8 - str r1, [sp, 0x4C] - adds r0, r1, 0 -_0803F26A: - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_803EF90 - - thumb_func_start sub_803F27C -sub_803F27C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - adds r7, r0, 0 - ldr r0, _0803F360 - mov r8, r0 - ldr r4, [r0] - ldr r2, _0803F364 - adds r1, r4, r2 - movs r2, 0 - movs r3, 0 - strh r3, [r1, 0x8] - strh r3, [r1, 0xA] - strh r3, [r1] - strh r3, [r1, 0x2] - strh r3, [r1, 0xC] - strh r3, [r1, 0xE] - strh r3, [r1, 0x4] - strh r3, [r1, 0x6] - str r3, [r1, 0x14] - ldr r5, _0803F368 - adds r0, r4, r5 - strb r2, [r0] - ldr r6, _0803F36C - adds r0, r4, r6 - movs r5, 0x1 - strb r5, [r0] - adds r6, 0x1 - adds r0, r4, r6 - strb r5, [r0] - adds r6, 0x1 - adds r0, r4, r6 - strb r2, [r0] - str r3, [r1, 0x18] - str r3, [r1, 0x1C] - cmp r7, 0 - bne _0803F2FA - subs r6, 0xF - adds r0, r4, r6 - strb r2, [r0] - adds r6, 0x6 - adds r0, r4, r6 - strb r2, [r0] - subs r6, 0x1 - adds r0, r4, r6 - strb r2, [r0] - subs r6, 0x2 - adds r0, r4, r6 - strb r2, [r0] - adds r6, 0x4 - adds r0, r4, r6 - strb r2, [r0] - subs r6, 0x3 - adds r0, r4, r6 - strb r2, [r0] - subs r6, 0x3 - adds r0, r4, r6 - strb r2, [r0] - adds r6, 0x1 - adds r0, r4, r6 - strb r2, [r0] -_0803F2FA: - str r3, [r1, 0x10] - ldr r1, _0803F370 - adds r0, r4, r1 - movs r6, 0x3 - strb r6, [r0] - adds r1, 0x12 - adds r0, r4, r1 - strb r2, [r0] - subs r1, 0x8 - adds r0, r4, r1 - strb r2, [r0] - adds r1, 0x9 - adds r0, r4, r1 - strb r2, [r0] - adds r1, 0x1 - adds r0, r4, r1 - strb r2, [r0] - subs r1, 0x8 - adds r0, r4, r1 - strb r2, [r0] - ldr r2, _0803F374 - adds r0, r4, r2 - strb r5, [r0] - bl sub_803F38C - ldr r1, _0803F378 - ldr r0, _0803F37C - str r0, [r1] - cmp r7, 0 - bne _0803F354 - mov r1, r8 - ldr r0, [r1] - ldr r2, _0803F380 - adds r0, r2 - ldrb r1, [r0] - adds r0, r6, 0 - ands r0, r1 - ldr r6, _0803F384 - adds r1, r4, r6 - strb r0, [r1] - cmp r0, 0 - bne _0803F354 - ldr r1, _0803F388 - adds r0, r4, r1 - strb r5, [r0] -_0803F354: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803F360: .4byte gUnknown_203B418 -_0803F364: .4byte 0x000181e8 -_0803F368: .4byte 0x00018216 -_0803F36C: .4byte 0x00018217 -_0803F370: .4byte 0x00018208 -_0803F374: .4byte 0x00018215 -_0803F378: .4byte gUnknown_202EDFC -_0803F37C: .4byte 0x0000ffff -_0803F380: .4byte 0x0001c58a -_0803F384: .4byte 0x00018209 -_0803F388: .4byte 0x0001820c - thumb_func_end sub_803F27C - - thumb_func_start sub_803F38C -sub_803F38C: - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, _0803F410 - ldr r1, [r0] - ldr r0, _0803F414 - adds r2, r1, r0 - ldr r0, _0803F418 - strh r0, [r2, 0x3A] - movs r0, 0x1 - negs r0, r0 - strh r0, [r2, 0x3C] - strh r0, [r2, 0x3E] - ldr r0, _0803F41C - adds r1, r0 - movs r0, 0x1 - negs r0, r0 - strh r0, [r1] - strh r0, [r2, 0x36] - strh r0, [r2, 0x38] - ldr r0, _0803F420 - ldr r0, [r0] - ldrb r0, [r0, 0xB] - negs r4, r0 - orrs r4, r0 - asrs r4, 31 - movs r0, 0x80 - lsls r0, 1 - ands r4, r0 - ldr r5, _0803F424 - adds r0, r4, r5 - mov r8, r0 - movs r0, 0xFD - mov r1, r8 - bl SetBGPaletteBufferColorArray - adds r6, r5, 0x4 - adds r6, r4, r6 - movs r0, 0xFE - adds r1, r6, 0 - bl SetBGPaletteBufferColorArray - adds r5, 0x8 - adds r4, r5 - movs r0, 0xFF - adds r1, r4, 0 - bl SetBGPaletteBufferColorArray - movs r0, 0xFD - mov r1, r8 - bl nullsub_5 - movs r0, 0xFE - adds r1, r6, 0 - bl nullsub_5 - movs r0, 0xFF - adds r1, r4, 0 - bl nullsub_5 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803F410: .4byte gUnknown_203B418 -_0803F414: .4byte 0x000181e8 -_0803F418: .4byte 0x0000ffff -_0803F41C: .4byte 0x00018228 -_0803F420: .4byte gUnknown_203B46C -_0803F424: .4byte gUnknown_202D06C - thumb_func_end sub_803F38C - - thumb_func_start sub_803F428 -sub_803F428: - push {r4-r6,lr} - adds r4, r0, 0 - ldr r0, _0803F484 - ldr r3, [r0] - ldr r0, _0803F488 - adds r2, r3, r0 - ldr r5, [r2, 0x10] - movs r6, 0 - ldrsh r1, [r2, r6] - movs r6, 0 - ldrsh r0, [r4, r6] - subs r1, r0 - cmp r1, 0 - bge _0803F446 - negs r1, r1 -_0803F446: - cmp r1, 0x6 - bgt _0803F498 - movs r0, 0x2 - ldrsh r1, [r2, r0] - movs r6, 0x2 - ldrsh r0, [r4, r6] - subs r1, r0 - cmp r1, 0 - bge _0803F45A - negs r1, r1 -_0803F45A: - cmp r1, 0x5 - bgt _0803F498 - ldr r1, _0803F48C - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0803F494 - ldr r6, _0803F490 - adds r0, r3, r6 - ldrb r0, [r0] - cmp r0, 0 - bne _0803F494 - cmp r5, 0 - beq _0803F494 - adds r0, r2, 0 - adds r1, r4, 0 - bl sub_8083294 - lsls r0, 24 - lsrs r0, 24 - b _0803F49A - .align 2, 0 -_0803F484: .4byte gUnknown_203B418 -_0803F488: .4byte 0x000181e8 -_0803F48C: .4byte 0x0001820b -_0803F490: .4byte 0x0001820c -_0803F494: - movs r0, 0x1 - b _0803F49A -_0803F498: - movs r0, 0 -_0803F49A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_803F428 - - thumb_func_start sub_803F4A0 -sub_803F4A0: - push {lr} - adds r2, r0, 0 - ldr r0, _0803F4B8 - ldr r1, [r0] - ldr r3, _0803F4BC - adds r0, r1, r3 - str r2, [r0, 0x10] - cmp r2, 0 - bne _0803F4C0 - adds r3, 0x2E - b _0803F4CA - .align 2, 0 -_0803F4B8: .4byte gUnknown_203B418 -_0803F4BC: .4byte 0x000181e8 -_0803F4C0: - ldr r0, [r2, 0x70] - ldrb r2, [r0, 0x7] - cmp r2, 0 - bne _0803F4D4 - ldr r3, _0803F4D0 -_0803F4CA: - adds r0, r1, r3 - strb r2, [r0] - b _0803F4DC - .align 2, 0 -_0803F4D0: .4byte 0x00018216 -_0803F4D4: - ldr r0, _0803F4FC - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] -_0803F4DC: - movs r0, 0 - bl sub_803F580 - bl sub_803F38C - ldr r0, _0803F500 - ldr r0, [r0] - ldr r1, _0803F504 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0803F4F8 - bl sub_806CD90 -_0803F4F8: - pop {r0} - bx r0 - .align 2, 0 -_0803F4FC: .4byte 0x00018216 -_0803F500: .4byte gUnknown_203B418 -_0803F504: .4byte 0x0001356c - thumb_func_end sub_803F4A0 - - thumb_func_start sub_803F508 -sub_803F508: - push {r4,r5,lr} - adds r3, r0, 0 - ldr r0, _0803F520 - ldr r1, [r0] - ldr r0, _0803F524 - adds r4, r1, r0 - cmp r3, 0 - bne _0803F52C - ldr r2, _0803F528 - adds r0, r1, r2 - strb r3, [r0] - b _0803F548 - .align 2, 0 -_0803F520: .4byte gUnknown_203B418 -_0803F524: .4byte 0x000181e8 -_0803F528: .4byte 0x00018216 -_0803F52C: - ldr r0, [r3, 0x70] - ldrb r2, [r0, 0x7] - cmp r2, 0 - bne _0803F540 - ldr r5, _0803F53C - adds r0, r1, r5 - strb r2, [r0] - b _0803F548 - .align 2, 0 -_0803F53C: .4byte 0x00018216 -_0803F540: - ldr r0, _0803F574 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] -_0803F548: - str r3, [r4, 0x10] - movs r0, 0 - bl sub_803F580 - bl sub_803F38C - ldr r0, _0803F578 - ldr r0, [r0] - ldr r1, _0803F57C - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0803F566 - bl sub_806CD90 -_0803F566: - bl sub_8049ED4 - bl sub_8040A84 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803F574: .4byte 0x00018216 -_0803F578: .4byte gUnknown_203B418 -_0803F57C: .4byte 0x0001356c - thumb_func_end sub_803F508 - - thumb_func_start sub_803F580 -sub_803F580: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _0803F600 - ldr r4, [r0] - ldr r0, _0803F604 - adds r5, r4, r0 - ldr r6, [r5, 0x10] - cmp r6, 0 - bne _0803F59E - b _0803F7A0 -_0803F59E: - adds r0, r6, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - bne _0803F5AC - b _0803F7A0 -_0803F5AC: - ldr r7, [r6, 0x70] - ldr r0, [r5, 0x8] - str r0, [r5, 0xC] - ldr r0, [r5] - str r0, [r5, 0x4] - ldrh r0, [r6, 0x4] - strh r0, [r5] - ldrh r0, [r6, 0x6] - strh r0, [r5, 0x2] - ldr r0, [r6, 0xC] - cmp r0, 0 - bge _0803F5C6 - adds r0, 0xFF -_0803F5C6: - asrs r0, 8 - subs r0, 0x78 - strh r0, [r5, 0x8] - ldr r0, [r6, 0x10] - cmp r0, 0 - bge _0803F5D4 - adds r0, 0xFF -_0803F5D4: - asrs r0, 8 - subs r0, 0x60 - strh r0, [r5, 0xA] - adds r0, r6, 0 - movs r1, 0x11 - bl sub_8046CB0 - lsls r0, 24 - cmp r0, 0 - beq _0803F610 - ldrb r0, [r7, 0x7] - cmp r0, 0 - beq _0803F610 - ldr r1, _0803F608 - adds r0, r4, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r2, _0803F60C - adds r0, r4, r2 - strb r1, [r0] - b _0803F626 - .align 2, 0 -_0803F600: .4byte gUnknown_203B418 -_0803F604: .4byte 0x000181e8 -_0803F608: .4byte 0x0001820d -_0803F60C: .4byte 0x0001820e -_0803F610: - adds r0, r7, 0 - adds r0, 0xF0 - ldrb r0, [r0] - adds r1, r5, 0 - adds r1, 0x25 - strb r0, [r1] - adds r0, r7, 0 - adds r0, 0xF1 - ldrb r0, [r0] - adds r1, 0x1 - strb r0, [r1] -_0803F626: - adds r0, r7, 0 - adds r0, 0xF2 - ldrb r0, [r0] - adds r1, r5, 0 - adds r1, 0x29 - strb r0, [r1] - subs r1, 0x7 - ldrb r0, [r1] - mov r8, r0 - adds r0, r5, 0 - adds r0, 0x2C - ldrb r2, [r0] - adds r4, r1, 0 - cmp r2, 0 - bne _0803F670 - adds r0, r7, 0 - adds r0, 0xE8 - ldrb r1, [r0] - adds r7, r0, 0 - cmp r1, 0x1 - bne _0803F656 - strb r1, [r4] - movs r1, 0xE - b _0803F65A -_0803F656: - strb r2, [r4] - movs r1, 0 -_0803F65A: - ldr r2, _0803F66C - ldr r0, [r2] - cmp r0, r1 - beq _0803F678 - str r1, [r2] - adds r0, r1, 0 - bl SetBGOBJEnableFlags - b _0803F678 - .align 2, 0 -_0803F66C: .4byte gUnknown_202EDFC -_0803F670: - ldr r1, _0803F698 - ldr r0, _0803F69C - str r0, [r1] - adds r7, 0xE8 -_0803F678: - ldrb r4, [r4] - cmp r8, r4 - beq _0803F684 - movs r0, 0 - bl sub_8041888 -_0803F684: - adds r0, r5, 0 - adds r0, 0x28 - ldrb r1, [r0] - mov r8, r1 - ldrb r1, [r7] - adds r2, r0, 0 - cmp r1, 0x2 - bne _0803F6A0 - movs r0, 0x1 - b _0803F6A2 - .align 2, 0 -_0803F698: .4byte gUnknown_202EDFC -_0803F69C: .4byte 0x0000ffff -_0803F6A0: - movs r0, 0 -_0803F6A2: - strb r0, [r2] - ldrb r2, [r2] - cmp r8, r2 - beq _0803F6B4 - bl sub_806CC70 - movs r0, 0 - bl sub_8041888 -_0803F6B4: - adds r4, r5, 0 - adds r4, 0x27 - ldrb r2, [r4] - mov r8, r2 - adds r0, r6, 0 - bl sub_8071884 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0803F6CC - movs r0, 0x1 -_0803F6CC: - strb r0, [r4] - ldrb r4, [r4] - cmp r8, r4 - beq _0803F6E2 - bl sub_8049ED4 - bl sub_8040A84 - movs r0, 0 - bl sub_8041888 -_0803F6E2: - mov r0, r9 - cmp r0, 0 - beq _0803F76A - adds r0, r5, 0 - adds r0, 0x2B - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0 - bne _0803F76A - movs r2, 0xC - ldrsh r1, [r5, r2] - movs r2, 0x8 - ldrsh r0, [r5, r2] - subs r1, r0 - cmp r1, 0 - bge _0803F704 - negs r1, r1 -_0803F704: - cmp r1, 0x7 - bgt _0803F71C - movs r0, 0xE - ldrsh r1, [r5, r0] - movs r2, 0xA - ldrsh r0, [r5, r2] - subs r1, r0 - cmp r1, 0 - bge _0803F718 - negs r1, r1 -_0803F718: - cmp r1, 0x7 - ble _0803F726 -_0803F71C: - bl sub_8049ED4 - movs r0, 0x1 - strb r0, [r4] - b _0803F76A -_0803F726: - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r2, 0x8 - ldrsh r0, [r5, r2] - cmp r1, r0 - bge _0803F73C - movs r0, 0xF0 - movs r1, 0 - bl sub_804A1F0 - b _0803F748 -_0803F73C: - cmp r1, r0 - ble _0803F748 - movs r0, 0 - movs r1, 0 - bl sub_804A1F0 -_0803F748: - movs r0, 0xE - ldrsh r1, [r5, r0] - movs r2, 0xA - ldrsh r0, [r5, r2] - cmp r1, r0 - bge _0803F75E - movs r0, 0 - movs r1, 0xA0 - bl sub_804A49C - b _0803F76A -_0803F75E: - cmp r1, r0 - ble _0803F76A - movs r0, 0 - movs r1, 0 - bl sub_804A49C -_0803F76A: - ldr r1, [r5] - ldr r0, [r5, 0x4] - cmp r1, r0 - beq _0803F7A0 - movs r5, 0 -_0803F774: - ldr r0, _0803F7B4 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _0803F7B8 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _0803F79A - movs r1, 0x4 - ldrsh r0, [r4, r1] - movs r2, 0x6 - ldrsh r1, [r4, r2] - bl sub_80402AC -_0803F79A: - adds r5, 0x1 - cmp r5, 0x13 - ble _0803F774 -_0803F7A0: - bl sub_80400D4 - bl sub_803F7BC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803F7B4: .4byte gUnknown_203B418 -_0803F7B8: .4byte 0x000135cc - thumb_func_end sub_803F580 - - thumb_func_start sub_803F7BC -sub_803F7BC: - push {r4-r6,lr} - sub sp, 0x10 - ldr r6, _0803F800 - ldr r4, [r6] - ldr r0, _0803F804 - adds r5, r4, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r2, 0x2 - ldrsh r1, [r5, r2] - bl sub_804954C - ldrb r1, [r0, 0x9] - ldr r2, _0803F808 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0803F7F4 - adds r2, 0x1 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0803F7F4 - adds r2, 0xB - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0803F80C -_0803F7F4: - movs r0, 0 - movs r1, 0 - bl sub_8005838 - b _0803F86A - .align 2, 0 -_0803F800: .4byte gUnknown_203B418 -_0803F804: .4byte 0x000181e8 -_0803F808: .4byte 0x0001820b -_0803F80C: - cmp r1, 0xFF - bne _0803F82C - ldr r1, _0803F828 - adds r0, r4, r1 - ldrb r0, [r0] - movs r1, 0x2 - cmp r0, 0x2 - bne _0803F81E - movs r1, 0x1 -_0803F81E: - movs r0, 0 - bl sub_8005838 - b _0803F86A - .align 2, 0 -_0803F828: .4byte 0x00018209 -_0803F82C: - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r2, _0803F874 - adds r0, r2 - ldr r2, [r6] - adds r2, r0 - movs r0, 0x8 - ldrsh r1, [r5, r0] - ldr r0, [r2, 0xC] - subs r0, r1 - str r0, [sp] - movs r0, 0xA - ldrsh r1, [r5, r0] - ldr r0, [r2, 0x10] - subs r0, r1 - str r0, [sp, 0x4] - movs r0, 0x8 - ldrsh r1, [r5, r0] - ldr r0, [r2, 0x14] - subs r0, r1 - str r0, [sp, 0x8] - movs r0, 0xA - ldrsh r1, [r5, r0] - ldr r0, [r2, 0x18] - subs r0, r1 - str r0, [sp, 0xC] - mov r0, sp - movs r1, 0x3 - bl sub_8005838 -_0803F86A: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803F874: .4byte 0x000104c4 - thumb_func_end sub_803F7BC - - thumb_func_start sub_803F878 -sub_803F878: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r2, r0, 0 - adds r6, r1, 0 - ldr r0, _0803F92C - ldr r7, [r0] - ldr r0, _0803F930 - adds r5, r7, r0 - ldr r0, [r5, 0x8] - str r0, [r5, 0xC] - ldr r0, [r5] - str r0, [r5, 0x4] - adds r0, r2, 0 - cmp r2, 0 - bge _0803F89A - adds r0, 0xFF -_0803F89A: - asrs r0, 8 - subs r0, 0x78 - movs r1, 0 - mov r8, r1 - strh r0, [r5, 0x8] - adds r0, r6, 0 - cmp r6, 0 - bge _0803F8AC - adds r0, 0xFF -_0803F8AC: - asrs r0, 8 - subs r0, 0x60 - strh r0, [r5, 0xA] - movs r4, 0xC0 - lsls r4, 5 - adds r0, r2, 0 - adds r1, r4, 0 - bl __divsi3 - strh r0, [r5] - adds r0, r6, 0 - adds r1, r4, 0 - bl __divsi3 - strh r0, [r5, 0x2] - ldr r2, _0803F934 - adds r0, r7, r2 - mov r1, r8 - strb r1, [r0] - adds r2, 0x1 - adds r0, r7, r2 - strb r1, [r0] - ldr r1, _0803F938 - adds r0, r7, r1 - mov r2, r8 - strb r2, [r0] - adds r1, 0x5 - adds r0, r7, r1 - strb r2, [r0] - ldr r1, _0803F93C - ldr r0, [r1] - cmp r0, 0 - beq _0803F8F6 - movs r0, 0 - str r0, [r1] - bl SetBGOBJEnableFlags -_0803F8F6: - movs r2, 0xC - ldrsh r1, [r5, r2] - movs r2, 0x8 - ldrsh r0, [r5, r2] - subs r1, r0 - cmp r1, 0 - bge _0803F906 - negs r1, r1 -_0803F906: - cmp r1, 0x7 - bgt _0803F91E - movs r0, 0xE - ldrsh r1, [r5, r0] - movs r2, 0xA - ldrsh r0, [r5, r2] - subs r1, r0 - cmp r1, 0 - bge _0803F91A - negs r1, r1 -_0803F91A: - cmp r1, 0x7 - ble _0803F940 -_0803F91E: - bl sub_8049ED4 - adds r1, r5, 0 - adds r1, 0x2B - movs r0, 0x1 - strb r0, [r1] - b _0803F984 - .align 2, 0 -_0803F92C: .4byte gUnknown_203B418 -_0803F930: .4byte 0x000181e8 -_0803F934: .4byte 0x0001820d -_0803F938: .4byte 0x00018211 -_0803F93C: .4byte gUnknown_202EDFC -_0803F940: - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r2, 0x8 - ldrsh r0, [r5, r2] - cmp r1, r0 - bge _0803F956 - movs r0, 0xF0 - movs r1, 0 - bl sub_804A1F0 - b _0803F962 -_0803F956: - cmp r1, r0 - ble _0803F962 - movs r0, 0 - movs r1, 0 - bl sub_804A1F0 -_0803F962: - movs r0, 0xE - ldrsh r1, [r5, r0] - movs r2, 0xA - ldrsh r0, [r5, r2] - cmp r1, r0 - bge _0803F978 - movs r0, 0 - movs r1, 0xA0 - bl sub_804A49C - b _0803F984 -_0803F978: - cmp r1, r0 - ble _0803F984 - movs r0, 0 - movs r1, 0 - bl sub_804A49C -_0803F984: - bl sub_803F7BC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_803F878 - - thumb_func_start sub_803F994 -sub_803F994: - ldr r0, _0803F9A8 - ldr r0, [r0] - ldr r1, _0803F9AC - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - adds r0, 0x78 - lsls r0, 8 - bx lr - .align 2, 0 -_0803F9A8: .4byte gUnknown_203B418 -_0803F9AC: .4byte 0x000181e8 - thumb_func_end sub_803F994 - - thumb_func_start sub_803F9B0 -sub_803F9B0: - ldr r0, _0803F9C4 - ldr r0, [r0] - ldr r1, _0803F9C8 - adds r0, r1 - movs r1, 0xA - ldrsh r0, [r0, r1] - adds r0, 0x60 - lsls r0, 8 - bx lr - .align 2, 0 -_0803F9C4: .4byte gUnknown_203B418 -_0803F9C8: .4byte 0x000181e8 - thumb_func_end sub_803F9B0 - - thumb_func_start sub_803F9CC -sub_803F9CC: - push {r4,r5,lr} - ldr r0, _0803FA24 - ldr r1, [r0] - ldr r2, _0803FA28 - adds r0, r1, r2 - ldr r4, [r0] - movs r5, 0 - ldr r2, _0803FA2C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0803FA0C - ldr r2, _0803FA30 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0803FA0C - bl sub_800EC74 - lsls r0, 24 - cmp r0, 0 - bne _0803FA0C - cmp r4, 0 - beq _0803FA08 - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0x1 - bne _0803FA08 - movs r5, 0x1 -_0803FA08: - cmp r5, 0 - bne _0803FA38 -_0803FA0C: - ldr r0, _0803FA34 - movs r2, 0 - adds r0, 0x2 - movs r1, 0x1C -_0803FA14: - strh r2, [r0] - adds r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _0803FA14 - bl sub_803F38C - b _0803FA3C - .align 2, 0 -_0803FA24: .4byte gUnknown_203B418 -_0803FA28: .4byte 0x000181f8 -_0803FA2C: .4byte 0x0001356c -_0803FA30: .4byte 0x00018218 -_0803FA34: .4byte gUnknown_202B038 -_0803FA38: - bl sub_803FB74 -_0803FA3C: - ldr r1, _0803FA48 - movs r0, 0x1 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803FA48: .4byte gUnknown_20274A5 - thumb_func_end sub_803F9CC - - thumb_func_start sub_803FA4C -sub_803FA4C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - adds r4, r0, 0 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - mov r12, r2 - ldr r0, _0803FB4C - ldr r3, [r0] - ldr r0, _0803FB50 - adds r0, r3, r0 - str r0, [sp, 0x24] - ldr r7, _0803FB54 - mov r1, sp - ldr r0, _0803FB58 - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - ldm r0!, {r2,r5,r6} - stm r1!, {r2,r5,r6} - ldr r0, _0803FB5C - mov r10, r0 - ldr r1, _0803FB60 - mov r9, r1 - ldr r2, [sp, 0x24] - movs r5, 0x3E - ldrsh r0, [r2, r5] - cmp r4, r0 - bne _0803FA9C - ldr r6, _0803FB64 - adds r0, r3, r6 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r8, r0 - beq _0803FB3A -_0803FA9C: - mov r2, r12 - cmp r2, 0 - bne _0803FAA6 - ldr r5, _0803FB68 - mov r9, r5 -_0803FAA6: - ldr r6, [sp, 0x24] - strh r4, [r6, 0x3E] - ldr r1, _0803FB64 - adds r0, r3, r1 - mov r2, r8 - strh r2, [r0] - mov r5, r8 - cmp r5, 0x5F - ble _0803FAC8 - movs r5, 0x60 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 5 - mov r1, r8 - bl __divsi3 - adds r4, r0, 0 -_0803FAC8: - movs r3, 0 - mov r8, r3 - movs r6, 0x58 - mov r12, r6 -_0803FAD0: - ldr r6, _0803FB6C - adds r2, r4, 0 - adds r0, r5, 0 - cmp r4, 0x7 - ble _0803FADC - movs r2, 0x8 -_0803FADC: - cmp r5, 0x7 - ble _0803FAE2 - movs r0, 0x8 -_0803FAE2: - lsls r0, 2 - mov r3, sp - adds r1, r3, r0 - lsls r0, r2, 2 - add r0, sp - ldr r2, [r0] - ldr r3, [r1] - adds r1, r3, 0 - bics r1, r2 - mov r0, r10 - ands r1, r0 - mov r0, r9 - ands r0, r2 - orrs r0, r1 - ands r6, r3 - mov r1, r8 - stm r7!, {r1} - stm r7!, {r6} - stm r7!, {r0} - stm r7!, {r0} - stm r7!, {r0} - stm r7!, {r0} - stm r7!, {r6} - stm r7!, {r1} - subs r4, 0x8 - subs r5, 0x8 - cmp r4, 0 - bge _0803FB1C - movs r4, 0 -_0803FB1C: - cmp r5, 0 - bge _0803FB22 - movs r5, 0 -_0803FB22: - movs r2, 0x8 - negs r2, r2 - add r12, r2 - mov r3, r12 - cmp r3, 0 - bge _0803FAD0 - ldr r0, _0803FB70 - movs r2, 0xC0 - lsls r2, 1 - ldr r1, _0803FB54 - bl sub_80098BC -_0803FB3A: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803FB4C: .4byte gUnknown_203B418 -_0803FB50: .4byte 0x000181e8 -_0803FB54: .4byte gUnknown_3001018 -_0803FB58: .4byte gUnknown_80F6490 -_0803FB5C: .4byte 0x22222222 -_0803FB60: .4byte 0x44444444 -_0803FB64: .4byte 0x00018228 -_0803FB68: .4byte 0x55555555 -_0803FB6C: .4byte 0x77777777 -_0803FB70: .4byte 0x06005980 - thumb_func_end sub_803FA4C - - thumb_func_start sub_803FB74 -sub_803FB74: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _0803FBE8 - ldr r0, [r0] - ldr r1, _0803FBEC - adds r7, r0, r1 - movs r4, 0 - movs r2, 0 - str r2, [sp] - ldr r0, [r7, 0x10] - ldr r0, [r0, 0x70] - movs r1, 0xE - ldrsh r3, [r0, r1] - mov r9, r3 - movs r3, 0x10 - ldrsh r2, [r0, r3] - mov r8, r2 - ldrb r1, [r0, 0x9] - mov r10, r1 - movs r2, 0xE - ldrsh r1, [r0, r2] - cmp r1, 0 - ble _0803FBBA - mov r0, r8 - cmp r0, 0 - bge _0803FBB2 - adds r0, 0x3 -_0803FBB2: - asrs r0, 2 - cmp r1, r0 - bgt _0803FBBA - movs r4, 0x1 -_0803FBBA: - ldr r0, [r7, 0x10] - ldr r0, [r0, 0x70] - movs r3, 0x9E - lsls r3, 1 - adds r0, r3 - ldr r0, [r0] - bl sub_8094450 - cmp r0, 0 - bne _0803FBD2 - movs r0, 0x1 - str r0, [sp] -_0803FBD2: - cmp r4, 0 - beq _0803FBF4 - ldr r0, _0803FBF0 - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0803FBF4 - movs r5, 0x20 - movs r6, 0x20 - b _0803FBF8 - .align 2, 0 -_0803FBE8: .4byte gUnknown_203B418 -_0803FBEC: .4byte 0x000181e8 -_0803FBF0: .4byte gUnknown_202EDCC -_0803FBF4: - movs r5, 0 - movs r6, 0 -_0803FBF8: - ldr r1, [sp] - cmp r1, 0 - beq _0803FC0E - ldr r0, _0803FC20 - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0803FC0E - movs r5, 0x30 - movs r6, 0x30 -_0803FC0E: - cmp r5, 0 - bne _0803FC30 - adds r0, r7, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, 0 - beq _0803FC24 - movs r5, 0x60 - b _0803FC30 - .align 2, 0 -_0803FC20: .4byte gUnknown_202EDCC -_0803FC24: - ldr r0, _0803FCE4 - ldr r0, [r0] - ldrb r0, [r0, 0xB] - cmp r0, 0 - beq _0803FC30 - movs r5, 0x40 -_0803FC30: - cmp r6, 0 - bne _0803FC40 - ldr r0, _0803FCE4 - ldr r0, [r0] - ldrb r0, [r0, 0xB] - cmp r0, 0 - beq _0803FC40 - movs r6, 0x40 -_0803FC40: - movs r2, 0x36 - ldrsh r0, [r7, r2] - cmp r0, r5 - beq _0803FC78 - strh r5, [r7, 0x36] - lsls r5, 2 - ldr r4, _0803FCE8 - adds r1, r5, r4 - movs r0, 0xFC - bl SetBGPaletteBufferColorArray - adds r1, r4, 0x4 - adds r1, r5, r1 - movs r0, 0xFD - bl SetBGPaletteBufferColorArray - adds r1, r4, 0 - adds r1, 0x8 - adds r1, r5, r1 - movs r0, 0xFE - bl SetBGPaletteBufferColorArray - adds r4, 0xC - adds r5, r4 - movs r0, 0xFF - adds r1, r5, 0 - bl SetBGPaletteBufferColorArray -_0803FC78: - movs r3, 0x38 - ldrsh r0, [r7, r3] - cmp r0, r6 - beq _0803FCB0 - strh r6, [r7, 0x38] - lsls r5, r6, 2 - ldr r4, _0803FCE8 - adds r1, r5, r4 - movs r0, 0xFC - bl nullsub_5 - adds r1, r4, 0x4 - adds r1, r5, r1 - movs r0, 0xFD - bl nullsub_5 - adds r1, r4, 0 - adds r1, 0x8 - adds r1, r5, r1 - movs r0, 0xFE - bl nullsub_5 - adds r4, 0xC - adds r5, r4 - movs r0, 0xFF - adds r1, r5, 0 - bl nullsub_5 -_0803FCB0: - ldr r5, _0803FCEC - ldr r0, _0803FCF0 - ldr r2, [r0] - ldr r0, _0803FCF4 - adds r1, r2, r0 - movs r3, 0x14 - ldrsh r0, [r2, r3] - ldrb r1, [r1] - adds r6, r0, r1 - movs r1, 0x3A - ldrsh r0, [r7, r1] - adds r4, r7, 0 - adds r4, 0x2E - cmp r0, r6 - beq _0803FD3E - strh r6, [r7, 0x3A] - ldr r3, _0803FCF8 - adds r0, r2, r3 - ldrb r0, [r0] - bl GetStairDirection - lsls r0, 24 - cmp r0, 0 - beq _0803FCFC - movs r0, 0 - b _0803FD00 - .align 2, 0 -_0803FCE4: .4byte gUnknown_203B46C -_0803FCE8: .4byte gUnknown_202D068 -_0803FCEC: .4byte gUnknown_202B038 -_0803FCF0: .4byte gUnknown_203B418 -_0803FCF4: .4byte 0x00000645 -_0803FCF8: .4byte 0x00000644 -_0803FCFC: - ldr r1, _0803FD20 - adds r0, r1, 0 -_0803FD00: - strh r0, [r5, 0x2] - cmp r6, 0x9 - bgt _0803FD28 - adds r1, r5, 0x4 - adds r4, r7, 0 - adds r4, 0x2E - ldrb r2, [r4] - adds r0, r6, 0 - movs r3, 0x1 - bl sub_803FE30 - ldr r2, _0803FD24 - adds r0, r2, 0 - strh r0, [r5, 0x6] - b _0803FD3E - .align 2, 0 -_0803FD20: .4byte 0x0000f2be -_0803FD24: .4byte 0x0000f2b8 -_0803FD28: - adds r1, r5, 0x4 - adds r4, r7, 0 - adds r4, 0x2E - ldrb r2, [r4] - adds r0, r6, 0 - movs r3, 0 - bl sub_803FE30 - ldr r3, _0803FE10 - adds r0, r3, 0 - strh r0, [r5, 0x8] -_0803FD3E: - movs r1, 0x3C - ldrsh r0, [r7, r1] - cmp r0, r10 - beq _0803FD64 - mov r2, r10 - strh r2, [r7, 0x3C] - ldr r3, _0803FE14 - adds r0, r3, 0 - strh r0, [r5, 0xA] - ldr r1, _0803FE18 - adds r0, r1, 0 - strh r0, [r5, 0xC] - adds r1, r5, 0 - adds r1, 0xE - ldrb r2, [r4] - mov r0, r10 - movs r3, 0 - bl sub_803FE30 -_0803FD64: - movs r2, 0x3E - ldrsh r0, [r7, r2] - cmp r0, r9 - beq _0803FD84 - ldr r3, _0803FE1C - adds r0, r3, 0 - strh r0, [r5, 0x12] - ldr r1, _0803FE20 - adds r0, r1, 0 - strh r0, [r5, 0x14] - adds r1, r5, 0 - adds r1, 0x16 - ldrb r2, [r4] - mov r0, r9 - bl sub_803FF18 -_0803FD84: - adds r6, r7, 0 - adds r6, 0x40 - movs r2, 0 - ldrsh r0, [r6, r2] - cmp r0, r8 - beq _0803FDA2 - ldr r3, _0803FE24 - adds r0, r3, 0 - strh r0, [r5, 0x1C] - adds r1, r5, 0 - adds r1, 0x1E - ldrb r2, [r4] - mov r0, r8 - bl sub_803FF18 -_0803FDA2: - ldrb r2, [r4] - mov r0, r9 - mov r1, r8 - bl sub_803FA4C - mov r0, r8 - strh r0, [r6] - mov r1, r9 - strh r1, [r7, 0x3E] - mov r0, r8 - cmp r0, 0 - bge _0803FDBC - adds r0, 0x7 -_0803FDBC: - asrs r1, r0, 3 - adds r4, r7, 0 - adds r4, 0x42 - strh r1, [r4] - movs r0, 0x7 - mov r2, r8 - ands r2, r0 - cmp r2, 0 - beq _0803FDD2 - adds r0, r1, 0x1 - strh r0, [r4] -_0803FDD2: - movs r3, 0 - ldrsh r0, [r4, r3] - cmp r0, 0xB - ble _0803FDDE - movs r0, 0xC - strh r0, [r4] -_0803FDDE: - movs r1, 0 - ldr r0, _0803FE28 - movs r2, 0xB3 - lsls r2, 2 - adds r4, r2, 0 - ldr r2, _0803FE2C - adds r3, r2, 0 - adds r2, r0, 0 - adds r2, 0x24 -_0803FDF0: - adds r0, r1, r4 - orrs r0, r3 - strh r0, [r2] - adds r2, 0x2 - adds r1, 0x1 - cmp r1, 0xB - ble _0803FDF0 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803FE10: .4byte 0x0000f2b8 -_0803FE14: .4byte 0x0000f2b9 -_0803FE18: .4byte 0x0000f2ba -_0803FE1C: .4byte 0x0000f2bb -_0803FE20: .4byte 0x0000f2bc -_0803FE24: .4byte 0x0000f2bd -_0803FE28: .4byte gUnknown_202B038 -_0803FE2C: .4byte 0xfffff000 - thumb_func_end sub_803FB74 - - thumb_func_start sub_803FE30 -sub_803FE30: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r2, 24 - lsrs r2, 24 - adds r1, r2, 0 - lsls r3, 24 - lsrs r3, 24 - mov r12, r3 - movs r0, 0 - cmp r2, 0 - bne _0803FE4E - movs r0, 0x37 -_0803FE4E: - cmp r5, 0x64 - ble _0803FE70 - cmp r2, 0 - beq _0803FE60 - ldr r1, _0803FE5C - adds r0, r1, 0 - b _0803FE64 - .align 2, 0 -_0803FE5C: .4byte 0x0000f291 -_0803FE60: - ldr r2, _0803FE6C - adds r0, r2, 0 -_0803FE64: - strh r0, [r4] - strh r0, [r4, 0x2] - b _0803FF00 - .align 2, 0 -_0803FE6C: .4byte 0x0000f2c8 -_0803FE70: - cmp r5, 0x64 - bne _0803FEBC - ldr r1, _0803FE84 - adds r0, r1, 0 - strh r0, [r4] - ldr r2, _0803FE88 - adds r0, r2, 0 - strh r0, [r4, 0x2] - b _0803FF00 - .align 2, 0 -_0803FE84: .4byte 0x0000f294 -_0803FE88: .4byte 0x0000f295 -_0803FE8C: - ldr r1, _0803FEB4 - lsls r0, r6, 3 - adds r0, r6 - adds r0, r2 - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4] - subs r0, r5, r3 - adds r0, r7 - movs r1, 0x96 - lsls r1, 2 - adds r0, r1 - ldr r2, _0803FEB8 - adds r1, r2, 0 - orrs r0, r1 - mov r1, r8 - strh r0, [r1] - b _0803FF00 - .align 2, 0 -_0803FEB4: .4byte gUnknown_80F64D8 -_0803FEB8: .4byte 0xfffff000 -_0803FEBC: - adds r2, r4, 0x2 - mov r8, r2 - adds r7, r0, 0 - adds r7, 0x30 - cmp r5, 0x9 - ble _0803FEE2 - movs r6, 0 - cmp r1, 0 - bne _0803FED0 - movs r6, 0x1 -_0803FED0: - movs r2, 0 - ldr r0, _0803FF0C -_0803FED4: - ldr r3, [r0] - cmp r3, r5 - ble _0803FE8C - adds r0, 0x4 - adds r2, 0x1 - cmp r2, 0x8 - ble _0803FED4 -_0803FEE2: - mov r0, r12 - cmp r0, 0 - bne _0803FEF0 - ldr r1, _0803FF10 - adds r0, r1, 0 - strh r0, [r4] - adds r4, 0x2 -_0803FEF0: - adds r0, r5, r7 - movs r2, 0x96 - lsls r2, 2 - adds r0, r2 - ldr r2, _0803FF14 - adds r1, r2, 0 - orrs r0, r1 - strh r0, [r4] -_0803FF00: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803FF0C: .4byte gUnknown_80F64B4 -_0803FF10: .4byte 0x0000f278 -_0803FF14: .4byte 0xfffff000 - thumb_func_end sub_803FE30 - - thumb_func_start sub_803FF18 -sub_803FF18: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r3, r1, 0 - lsls r2, 24 - lsrs r2, 24 - movs r6, 0 - cmp r2, 0 - bne _0803FF2E - movs r6, 0x1 -_0803FF2E: - movs r1, 0 - cmp r2, 0 - bne _0803FF36 - movs r1, 0x37 -_0803FF36: - ldr r0, _0803FF54 - cmp r5, r0 - ble _0803FF7C - ldr r0, _0803FF58 - lsls r1, r6, 3 - adds r1, r6 - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r3] - adds r3, 0x2 - strh r0, [r3] - strh r0, [r3, 0x2] - b _0804001A - .align 2, 0 -_0803FF54: .4byte 0x000003e7 -_0803FF58: .4byte gUnknown_80F6544 -_0803FF5C: - ldr r1, _0803FF78 - lsls r0, r6, 3 - adds r0, r6 - adds r0, r4 - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3] - adds r3, 0x2 - subs r5, r2 - mov r1, r8 - lsls r0, r1, 24 - lsrs r7, r0, 24 - b _0803FF98 - .align 2, 0 -_0803FF78: .4byte gUnknown_80F6544 -_0803FF7C: - movs r7, 0x20 - movs r4, 0 - adds r1, 0x30 - mov r8, r1 - ldr r2, _0803FFC0 - mov r12, r2 - ldr r0, _0803FFC4 -_0803FF8A: - ldr r2, [r0] - cmp r2, r5 - ble _0803FF5C - adds r0, 0x4 - adds r4, 0x1 - cmp r4, 0x8 - ble _0803FF8A -_0803FF98: - cmp r4, 0x9 - bne _0803FFAC - movs r1, 0x96 - lsls r1, 2 - adds r0, r7, r1 - ldr r2, _0803FFC8 - adds r1, r2, 0 - orrs r0, r1 - strh r0, [r3] - adds r3, 0x2 -_0803FFAC: - movs r4, 0 - mov r0, r12 - ldr r2, [r0] - cmp r2, r5 - bgt _0803FFD0 - ldr r0, _0803FFCC - lsls r1, r6, 3 - adds r1, r6 - b _0803FFE8 - .align 2, 0 -_0803FFC0: .4byte gUnknown_80F6520 -_0803FFC4: .4byte gUnknown_80F64FC -_0803FFC8: .4byte 0xfffff000 -_0803FFCC: .4byte gUnknown_80F6544 -_0803FFD0: - adds r4, 0x1 - cmp r4, 0x8 - bgt _0803FFF4 - lsls r0, r4, 2 - add r0, r12 - ldr r2, [r0] - cmp r2, r5 - bgt _0803FFD0 - ldr r0, _08040024 - lsls r1, r6, 3 - adds r1, r6 - adds r1, r4 -_0803FFE8: - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r3] - adds r3, 0x2 - subs r5, r2 -_0803FFF4: - cmp r4, 0x9 - bne _08040008 - movs r1, 0x96 - lsls r1, 2 - adds r0, r7, r1 - ldr r2, _08040028 - adds r1, r2, 0 - orrs r0, r1 - strh r0, [r3] - adds r3, 0x2 -_08040008: - mov r1, r8 - adds r0, r5, r1 - movs r2, 0x96 - lsls r2, 2 - adds r0, r2 - ldr r2, _08040028 - adds r1, r2, 0 - orrs r0, r1 - strh r0, [r3] -_0804001A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08040024: .4byte gUnknown_80F6544 -_08040028: .4byte 0xfffff000 - thumb_func_end sub_803FF18 - - thumb_func_start sub_804002C -sub_804002C: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r0 - ldr r0, _08040088 - ldr r0, [r0] - ldr r1, _0804008C - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - movs r5, 0 - movs r7, 0x1 -_08040046: - movs r4, 0 - adds r6, r5, 0x1 -_0804004A: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8049590 - ldrh r1, [r0, 0x4] - orrs r1, r7 - strh r1, [r0, 0x4] - adds r4, 0x1 - cmp r4, 0x37 - ble _0804004A - adds r5, r6, 0 - cmp r5, 0x1F - ble _08040046 - movs r0, 0 - bl sub_803F580 - bl sub_8049ED4 - bl sub_8040A84 - ldr r0, _08040090 - ldr r1, [r0] - mov r0, r8 - bl sub_80522A8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08040088: .4byte gUnknown_203B418 -_0804008C: .4byte 0x0001820b -_08040090: .4byte gUnknown_80FD040 - thumb_func_end sub_804002C - - thumb_func_start sub_8040094 -sub_8040094: - push {lr} - ldr r1, _080400C8 - ldr r1, [r1] - ldr r2, _080400CC - adds r1, r2 - strb r0, [r1] - bl sub_803F7BC - bl sub_80060EC - ldr r0, _080400D0 - ldr r0, [r0] - bl sub_8094FB4 - bl sub_800CB20 - bl sub_800485C - bl xxx_call_update_bg_sound_input - bl sub_8083F58 - bl sub_8011860 - pop {r0} - bx r0 - .align 2, 0 -_080400C8: .4byte gUnknown_203B418 -_080400CC: .4byte 0x00018217 -_080400D0: .4byte gUnknown_203B47C - thumb_func_end sub_8040094 - - thumb_func_start sub_80400D4 -sub_80400D4: - push {r4,lr} - ldr r0, _08040114 - ldr r4, [r0] - movs r0, 0xC1 - lsls r0, 9 - adds r3, r4, r0 - ldr r0, [r3] - cmp r0, 0 - beq _0804010C - cmp r0, 0x1E - ble _080400EC - movs r0, 0x1F -_080400EC: - ldr r1, _08040118 - adds r2, r4, r1 - ldr r1, _0804011C - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - ldr r0, [r3] - subs r0, 0x1 - str r0, [r3] - cmp r0, 0 - bne _0804010C - ldr r1, _08040120 - adds r0, r4, r1 - ldr r0, [r0] - str r0, [r3] -_0804010C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08040114: .4byte gUnknown_203B418 -_08040118: .4byte 0x000181fc -_0804011C: .4byte gUnknown_80F6568 -_08040120: .4byte 0x00018204 - thumb_func_end sub_80400D4 - - thumb_func_start sub_8040124 -sub_8040124: - ldr r1, _0804012C - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0804012C: .4byte gUnknown_202EE01 - thumb_func_end sub_8040124 - - thumb_func_start sub_8040130 -sub_8040130: - push {lr} - ldr r0, _08040144 - ldr r1, _08040148 - bl OpenFileAndGetFileDataPtr - ldr r1, _0804014C - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08040144: .4byte gUnknown_80F6604 -_08040148: .4byte gUnknown_83B0000 -_0804014C: .4byte gUnknown_202EE04 - thumb_func_end sub_8040130 - - thumb_func_start sub_8040150 -sub_8040150: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r0, 0 - ldr r2, _080401EC -_08040164: - movs r4, 0 - lsls r1, r0, 3 - adds r3, r0, 0x1 - mov r8, r3 - subs r1, r0 - lsls r0, r1, 7 - ldr r3, _080401F0 - adds r6, r0, r3 - lsls r5, r1, 2 -_08040176: - ldr r0, [r2] - adds r0, r6 - lsls r1, r4, 5 - adds r0, r1 - movs r1, 0x20 - str r2, [sp] - bl CpuClear - ldr r2, [sp] - ldr r0, [r2] - adds r1, r4, r5 - ldr r3, _080401F4 - adds r0, r3 - adds r0, r1 - movs r7, 0 - strb r7, [r0] - adds r4, 0x1 - cmp r4, 0x1B - ble _08040176 - mov r0, r8 - cmp r0, 0xF - ble _08040164 - mov r0, r9 - cmp r0, 0 - bne _080401B0 - ldr r1, _080401F8 - movs r0, 0x64 - strh r0, [r1] - strh r0, [r1, 0x2] -_080401B0: - ldr r3, _080401EC - ldr r0, [r3] - ldr r2, _080401FC - adds r1, r0, r2 - str r7, [r1] - ldr r1, _08040200 - adds r0, r1 - movs r2, 0x1 - strb r2, [r0] - ldr r0, [r3] - ldr r3, _08040204 - adds r0, r3 - strb r7, [r0] - ldr r0, _08040208 - strb r2, [r0] - ldr r1, _0804020C - ldr r0, _08040210 - str r0, [r1] - ldr r0, _08040214 - strb r2, [r0] - bl sub_8040238 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080401EC: .4byte gUnknown_203B418 -_080401F0: .4byte 0x0001822c -_080401F4: .4byte 0x0001ba2c -_080401F8: .4byte gUnknown_203B410 -_080401FC: .4byte 0x0001bdcc -_08040200: .4byte 0x0001bdd0 -_08040204: .4byte 0x0001bdd2 -_08040208: .4byte gUnknown_202EE00 -_0804020C: .4byte gUnknown_202EE08 -_08040210: .4byte 0x06001700 -_08040214: .4byte gUnknown_202EE01 - thumb_func_end sub_8040150 - - thumb_func_start sub_8040218 -sub_8040218: - push {lr} - ldr r0, _08040230 - ldr r0, [r0] - cmp r0, 0 - beq _08040226 - bl CloseFile -_08040226: - bl sub_8040124 - pop {r0} - bx r0 - .align 2, 0 -_08040230: .4byte gUnknown_202EE04 - thumb_func_end sub_8040218 - - thumb_func_start nullsub_203 -nullsub_203: - bx lr - thumb_func_end nullsub_203 - - thumb_func_start sub_8040238 -sub_8040238: - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _0804026C - ldr r0, [r1] - cmp r0, 0 - beq _080402A0 - ldr r0, _08040270 - ldrb r0, [r0] - cmp r0, 0 - beq _080402A0 - movs r6, 0 - ldr r0, _08040274 - mov r8, r0 - adds r7, r1, 0 -_08040256: - cmp r6, 0xE - bne _08040278 - movs r0, 0xEE - mov r1, r8 - bl SetBGPaletteBufferColorArray - movs r0, 0xEE - mov r1, r8 - bl nullsub_5 - b _0804029A - .align 2, 0 -_0804026C: .4byte gUnknown_202EE04 -_08040270: .4byte gUnknown_202EE01 -_08040274: .4byte gUnknown_202D03C -_08040278: - adds r5, r6, 0 - adds r5, 0xE0 - ldr r0, [r7] - ldr r0, [r0, 0x4] - lsls r4, r6, 2 - ldr r1, [r0, 0x4] - adds r1, r4 - adds r0, r5, 0 - bl SetBGPaletteBufferColorArray - ldr r0, [r7] - ldr r0, [r0, 0x4] - ldr r1, [r0, 0x4] - adds r1, r4 - adds r0, r5, 0 - bl nullsub_5 -_0804029A: - adds r6, 0x1 - cmp r6, 0xF - ble _08040256 -_080402A0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8040238 - - thumb_func_start sub_80402AC -sub_80402AC: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - mov r8, r0 - str r1, [sp] - ldr r4, _0804034C - ldr r0, [r4] - str r0, [sp, 0x4] - movs r1, 0x1 - mov r10, r1 - ldr r0, _08040350 - ldr r0, [r0] - cmp r0, 0 - bne _080402D0 - b _08040776 -_080402D0: - ldr r0, _08040354 - ldrb r0, [r0] - cmp r0, 0 - bne _080402DA - b _08040776 -_080402DA: - bl sub_800EC74 - lsls r0, 24 - cmp r0, 0 - beq _080402E6 - b _08040776 -_080402E6: - mov r2, r8 - cmp r2, 0 - bge _080402EE - b _08040776 -_080402EE: - ldr r3, [sp] - cmp r3, 0x1 - bgt _080402F6 - b _08040776 -_080402F6: - cmp r2, 0x37 - ble _080402FC - b _08040776 -_080402FC: - cmp r3, 0x1E - ble _08040302 - b _08040776 -_08040302: - mov r0, r8 - adds r1, r3, 0 - bl sub_804954C - mov r9, r0 - ldrh r0, [r0] - movs r5, 0x3 - ands r5, r0 - str r5, [sp, 0x8] - ldr r0, [r4] - ldr r7, _08040358 - adds r1, r0, r7 - ldrb r1, [r1] - str r1, [sp, 0xC] - ldr r2, _0804035C - adds r1, r0, r2 - ldrb r5, [r1] - ldr r3, _08040360 - adds r1, r0, r3 - ldrb r1, [r1] - str r1, [sp, 0x14] - subs r7, 0x2 - adds r1, r0, r7 - ldrb r1, [r1] - str r1, [sp, 0x10] - ldr r1, _08040364 - adds r0, r1 - ldrb r0, [r0] - cmp r5, 0 - beq _08040368 - mov r2, r9 - ldrb r0, [r2, 0x4] - mov r7, r10 - ands r7, r0 - movs r3, 0 - str r3, [sp, 0x18] - b _0804039C - .align 2, 0 -_0804034C: .4byte gUnknown_203B418 -_08040350: .4byte gUnknown_202EE04 -_08040354: .4byte gUnknown_202EE01 -_08040358: .4byte 0x00018210 -_0804035C: .4byte 0x0001820a -_08040360: .4byte 0x0001820f -_08040364: .4byte 0x0001820b -_08040368: - cmp r0, 0 - beq _08040370 - movs r7, 0x1 - b _08040378 -_08040370: - mov r7, r9 - ldrb r0, [r7, 0x4] - mov r7, r10 - ands r7, r0 -_08040378: - bl sub_8043D10 - lsls r0, 24 - cmp r0, 0 - bne _08040398 - ldr r0, _08040390 - ldr r0, [r0] - ldr r1, _08040394 - adds r0, r1 - ldrb r0, [r0] - str r0, [sp, 0x18] - b _0804039C - .align 2, 0 -_08040390: .4byte gUnknown_203B418 -_08040394: .4byte 0x00018211 -_08040398: - movs r2, 0 - str r2, [sp, 0x18] -_0804039C: - bl sub_8094C48 - lsls r0, 24 - cmp r0, 0 - bne _080403A8 - b _08040632 -_080403A8: - ldr r0, _080403FC - ldr r0, [r0] - ldr r3, _08040400 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _080403B8 - b _08040632 -_080403B8: - movs r6, 0 - cmp r5, 0 - bne _0804045E - mov r0, r9 - ldr r4, [r0, 0x10] - cmp r4, 0 - beq _0804045E - adds r0, r4, 0 - bl sub_80450F8 - adds r1, r0, 0 - ldr r0, _08040404 - ldrb r0, [r0] - cmp r0, 0 - beq _0804045E - cmp r1, 0x1 - bne _0804045E - adds r0, r4, 0 - bl sub_8045804 - lsls r0, 24 - cmp r0, 0 - beq _0804045E - ldr r1, [r4, 0x70] - adds r0, r1, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - beq _080403F6 - cmp r0, 0x47 - bne _08040408 -_080403F6: - movs r0, 0x1 - b _0804040A - .align 2, 0 -_080403FC: .4byte gUnknown_203B418 -_08040400: .4byte 0x0001356c -_08040404: .4byte gUnknown_202EE00 -_08040408: - movs r0, 0 -_0804040A: - cmp r0, 0 - bne _08040458 - adds r0, r1, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08040458 - cmp r0, 0x4 - beq _08040458 - ldrb r0, [r1, 0x6] - cmp r0, 0 - beq _08040426 - movs r6, 0x2 - b _0804045A -_08040426: - ldrb r0, [r1, 0x7] - cmp r0, 0 - beq _08040458 - ldr r0, _0804044C - mov r1, r8 - strh r1, [r0] - mov r2, sp - ldrh r2, [r2] - strh r2, [r0, 0x2] - ldr r0, _08040450 - ldr r0, [r0] - ldr r3, _08040454 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _0804045A - movs r6, 0x8 - b _0804045A - .align 2, 0 -_0804044C: .4byte gUnknown_203B410 -_08040450: .4byte gUnknown_203B418 -_08040454: .4byte 0x00018214 -_08040458: - movs r6, 0xA -_0804045A: - movs r0, 0 - mov r10, r0 -_0804045E: - mov r1, r10 - cmp r1, 0 - beq _0804054E - cmp r5, 0 - bne _08040548 - mov r2, r9 - ldr r4, [r2, 0x14] - cmp r4, 0 - beq _08040500 - adds r0, r4, 0 - bl sub_80450F8 - adds r5, r0, 0 - cmp r7, 0 - bne _0804049E - movs r6, 0 - cmp r5, 0x3 - bne _0804054E - ldr r3, [sp, 0x10] - cmp r3, 0 - bne _08040494 - mov r5, r9 - ldrh r1, [r5, 0x4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804054E -_08040494: - ldr r0, [sp, 0x8] - cmp r0, 0 - beq _0804054E - movs r6, 0x3 - b _0804054E -_0804049E: - cmp r5, 0x2 - bne _080404C4 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - bne _080404B2 - ldr r1, [sp, 0x14] - cmp r1, 0 - beq _080404C4 -_080404B2: - adds r0, r4, 0 - bl sub_8045104 - ldr r1, _080404FC - ldrb r0, [r0] - adds r0, r1 - ldrb r6, [r0] - movs r2, 0 - mov r10, r2 -_080404C4: - mov r3, r10 - cmp r3, 0 - beq _0804054E - cmp r5, 0x3 - bne _080404EC - ldr r5, [sp, 0x10] - cmp r5, 0 - bne _080404E0 - mov r0, r9 - ldrh r1, [r0, 0x4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080404EC -_080404E0: - ldr r1, [sp, 0x8] - cmp r1, 0 - beq _080404EC - movs r6, 0x3 - movs r2, 0 - mov r10, r2 -_080404EC: - mov r3, r10 - cmp r3, 0 - beq _0804054E - ldr r5, [sp, 0x8] - cmp r5, 0x1 - beq _08040548 - movs r6, 0 - b _0804054E - .align 2, 0 -_080404FC: .4byte gUnknown_80F65F0 -_08040500: - cmp r7, 0 - bne _08040528 - ldr r0, [sp, 0x18] - cmp r0, 0 - beq _08040548 - mov r2, r9 - ldrh r1, [r2] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _08040548 - bl sub_8043D10 - lsls r0, 24 - movs r6, 0x5 - cmp r0, 0 - bne _0804054E - movs r6, 0x6 - b _0804054E -_08040528: - mov r3, r9 - ldrh r1, [r3] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _08040548 - bl sub_8043D10 - lsls r0, 24 - movs r6, 0x5 - cmp r0, 0 - bne _08040544 - movs r6, 0x6 -_08040544: - movs r5, 0 - mov r10, r5 -_08040548: - mov r0, r10 - cmp r0, 0 - bne _0804055A -_0804054E: - ldr r1, [sp, 0xC] - cmp r1, 0 - beq _0804055A - cmp r6, 0 - beq _0804055E - movs r6, 0xB -_0804055A: - cmp r6, 0 - bne _08040606 -_0804055E: - cmp r7, 0 - beq _08040568 - ldr r2, [sp, 0x8] - cmp r2, 0x1 - beq _0804056C -_08040568: - movs r6, 0x1 - b _08040606 -_0804056C: - movs r4, 0xF - ldr r3, [sp] - cmp r3, 0x1E - bgt _0804058A - adds r1, r3, 0 - adds r1, 0x1 - mov r0, r8 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _0804058A - movs r4, 0xE -_0804058A: - ldr r5, [sp] - cmp r5, 0 - ble _080405AA - adds r1, r5, 0 - subs r1, 0x1 - mov r0, r8 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _080405AA - movs r0, 0x5 - negs r0, r0 - ands r4, r0 -_080405AA: - mov r7, r8 - cmp r7, 0x36 - bgt _080405CA - mov r0, r8 - adds r0, 0x1 - ldr r1, [sp] - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _080405CA - movs r0, 0x3 - negs r0, r0 - ands r4, r0 -_080405CA: - mov r0, r8 - cmp r0, 0 - ble _080405E8 - subs r0, 0x1 - ldr r1, [sp] - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _080405E8 - movs r0, 0x9 - negs r0, r0 - ands r4, r0 -_080405E8: - lsls r0, r4, 16 - asrs r6, r0, 16 - mov r2, r9 - ldrh r1, [r2, 0x4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080405FE - adds r0, r6, 0 - adds r0, 0x10 - b _08040602 -_080405FE: - adds r0, r6, 0 - adds r0, 0x20 -_08040602: - lsls r0, 16 - asrs r6, r0, 16 -_08040606: - ldr r0, _08040618 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - bne _0804061C - adds r0, r6, 0 - adds r0, 0x80 - b _0804062C - .align 2, 0 -_08040618: .4byte gUnknown_203B46C -_0804061C: - bl sub_8094C68 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0804063A - adds r0, r6, 0 - adds r0, 0x40 -_0804062C: - lsls r0, 16 - asrs r6, r0, 16 - b _0804063A -_08040632: - movs r6, 0x1 - ldr r1, _0804074C - movs r0, 0x64 - strh r0, [r1] -_0804063A: - mov r3, r8 - lsrs r0, r3, 31 - add r0, r8 - asrs r0, 1 - mov r9, r0 - ldr r0, [sp] - subs r0, 0x2 - lsrs r1, r0, 31 - adds r1, r0, r1 - asrs r1, 1 - mov r5, r9 - lsls r3, r5, 1 - mov r7, r8 - subs r3, r7, r3 - lsls r2, r1, 1 - subs r0, r2 - lsls r0, 1 - adds r3, r0 - lsls r0, r1, 3 - subs r5, r0, r1 - lsls r0, r5, 7 - ldr r1, _08040750 - adds r0, r1 - ldr r2, [sp, 0x4] - adds r0, r2, r0 - mov r7, r9 - lsls r1, r7, 5 - adds r4, r0, r1 - ldr r0, _08040754 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r6, 2 - adds r0, r3 - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - ldr r0, [r4] - ldr r1, [r2] - ands r0, r1 - ldr r1, [r2, 0x4] - orrs r0, r1 - str r0, [r4] - ldr r0, [r4, 0x4] - ldr r1, [r2, 0x8] - ands r0, r1 - ldr r1, [r2, 0xC] - orrs r0, r1 - str r0, [r4, 0x4] - ldr r0, [r4, 0x8] - ldr r1, [r2, 0x10] - ands r0, r1 - ldr r1, [r2, 0x14] - orrs r0, r1 - str r0, [r4, 0x8] - ldr r0, [r4, 0xC] - ldr r1, [r2, 0x18] - ands r0, r1 - ldr r1, [r2, 0x1C] - orrs r0, r1 - str r0, [r4, 0xC] - ldr r0, [r4, 0x10] - ldr r1, [r2, 0x20] - ands r0, r1 - ldr r1, [r2, 0x24] - orrs r0, r1 - str r0, [r4, 0x10] - ldr r0, [r4, 0x14] - ldr r1, [r2, 0x28] - ands r0, r1 - ldr r1, [r2, 0x2C] - orrs r0, r1 - str r0, [r4, 0x14] - ldr r0, [r4, 0x18] - ldr r1, [r2, 0x30] - ands r0, r1 - ldr r1, [r2, 0x34] - orrs r0, r1 - str r0, [r4, 0x18] - ldr r0, [r4, 0x1C] - ldr r1, [r2, 0x38] - ands r0, r1 - ldr r1, [r2, 0x3C] - orrs r0, r1 - str r0, [r4, 0x1C] - ldr r0, [sp, 0x4] - ldr r1, _08040758 - adds r2, r0, r1 - ldrb r0, [r2] - cmp r0, 0 - bne _08040776 - lsls r5, 2 - mov r10, r5 - mov r3, r9 - add r3, r10 - ldr r5, _0804075C - mov r8, r5 - ldr r0, [sp, 0x4] - add r0, r8 - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, 0 - bne _08040776 - movs r0, 0x1 - strb r0, [r1] - ldr r7, [sp, 0x4] - ldr r1, _08040760 - adds r6, r7, r1 - ldr r5, [r6] - cmp r5, 0x27 - bgt _08040774 - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - ldr r0, _08040764 - adds r2, r7, r0 - adds r2, r1 - ldr r0, _08040768 - lsls r3, 5 - ldr r0, [r0] - adds r0, r3 - str r0, [r2] - ldr r2, _0804076C - adds r0, r7, r2 - adds r0, r1 - str r4, [r0] - ldr r3, _08040770 - adds r2, r7, r3 - adds r2, r1 - mov r0, r10 - add r0, r8 - adds r0, r7, r0 - add r0, r9 - str r0, [r2] - adds r0, r5, 0x1 - str r0, [r6] - b _08040776 - .align 2, 0 -_0804074C: .4byte gUnknown_203B410 -_08040750: .4byte 0x0001822c -_08040754: .4byte gUnknown_202EE04 -_08040758: .4byte 0x0001bdd1 -_0804075C: .4byte 0x0001ba2c -_08040760: .4byte 0x0001bdcc -_08040764: .4byte 0x0001bbec -_08040768: .4byte gUnknown_202EE08 -_0804076C: .4byte 0x0001bbf0 -_08040770: .4byte 0x0001bbf4 -_08040774: - strb r0, [r2] -_08040776: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80402AC - - thumb_func_start sub_8040788 -sub_8040788: - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08040814 - ldr r0, [r0] - mov r8, r0 - cmp r0, 0 - beq _08040870 - ldr r0, _08040818 - add r0, r8 - ldrb r0, [r0] - cmp r0, 0 - beq _08040870 - bl sub_800EC74 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _08040870 - ldr r1, _0804081C - add r1, r8 - ldrb r0, [r1] - cmp r0, 0 - bne _0804082C - movs r6, 0 - ldr r1, _08040820 - add r1, r8 - ldr r0, [r1] - cmp r6, r0 - bge _08040868 - adds r5, r1, 0 - movs r4, 0 -_080407C8: - ldr r1, _08040824 - adds r0, r4, r1 - mov r1, r8 - adds r3, r1, r0 - ldr r1, [r3, 0x4] - ldr r2, [r3] - ldr r0, _08040828 - ldr r0, [r0] - cmp r0, 0 - beq _080407E0 - cmp r0, 0x3 - bne _08040800 -_080407E0: - ldm r1!, {r0} - stm r2!, {r0} - ldm r1!, {r0} - stm r2!, {r0} - ldm r1!, {r0} - stm r2!, {r0} - ldm r1!, {r0} - stm r2!, {r0} - ldm r1!, {r0} - stm r2!, {r0} - ldm r1!, {r0} - stm r2!, {r0} - ldm r1!, {r0} - stm r2!, {r0} - ldr r0, [r1] - str r0, [r2] -_08040800: - ldr r0, [r3, 0x8] - movs r1, 0 - strb r1, [r0] - adds r4, 0xC - adds r6, 0x1 - ldr r0, [r5] - cmp r6, r0 - blt _080407C8 - b _08040868 - .align 2, 0 -_08040814: .4byte gUnknown_203B418 -_08040818: .4byte 0x0001bdd0 -_0804081C: .4byte 0x0001bdd1 -_08040820: .4byte 0x0001bdcc -_08040824: .4byte 0x0001bbec -_08040828: .4byte gUnknown_202EDD0 -_0804082C: - strb r2, [r1] - ldr r0, _0804087C - ldr r5, [r0] - ldr r4, _08040880 - add r4, r8 - movs r6, 0 - movs r7, 0x80 - lsls r7, 1 -_0804083C: - ldr r0, _08040884 - ldr r0, [r0] - cmp r0, 0 - beq _08040848 - cmp r0, 0x3 - bne _08040854 -_08040848: - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x80 - lsls r2, 1 - bl CpuCopy -_08040854: - adds r5, r7 - adds r4, r7 - adds r6, 0x8 - ldr r0, _08040888 - cmp r6, r0 - ble _0804083C - ldr r1, _0804088C - add r1, r8 - movs r0, 0x1 - strb r0, [r1] -_08040868: - ldr r1, _08040890 - add r1, r8 - movs r0, 0 - str r0, [r1] -_08040870: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804087C: .4byte gUnknown_202EE08 -_08040880: .4byte 0x0001822c -_08040884: .4byte gUnknown_202EDD0 -_08040888: .4byte 0x000001bf -_0804088C: .4byte 0x0001bdd2 -_08040890: .4byte 0x0001bdcc - thumb_func_end sub_8040788 - - thumb_func_start sub_8040894 -sub_8040894: - push {r4-r7,lr} - sub sp, 0x8 - ldr r0, _080409F4 - ldr r1, [r0] - ldr r2, _080409F8 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080408A8 - b _08040A6A -_080408A8: - adds r2, 0x5 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080408B4 - b _08040A6A -_080408B4: - ldr r7, _080409FC - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, 0x63 - ble _080408C0 - b _08040A6A -_080408C0: - ldr r0, _08040A00 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _080408D2 - b _08040A6A -_080408D2: - movs r0, 0 - movs r1, 0 - str r0, [sp] - str r1, [sp, 0x4] - mov r0, sp - ldrh r0, [r0] - ldr r1, _08040A04 - ands r1, r0 - ldr r3, _08040A08 - ldr r0, [sp] - ands r0, r3 - orrs r0, r1 - str r0, [sp] - mov r1, sp - ldrh r1, [r1] - adds r2, r3, 0 - ands r2, r0 - orrs r2, r1 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _08040A0C - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r5, _08040A10 - adds r0, r5, 0 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _08040A14 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _08040A18 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r4, _08040A1C - adds r0, r4, 0 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - ands r3, r1 - orrs r3, r0 - str r3, [sp] - mov r3, sp - ldrh r0, [r3, 0x2] - ldr r6, _08040A20 - ands r6, r0 - ands r6, r4 - strh r6, [r3, 0x2] - ldr r2, _08040A24 - ldrh r1, [r3, 0x4] - movs r0, 0xFC - lsls r0, 8 - ands r0, r1 - orrs r0, r2 - ands r0, r5 - movs r5, 0xF - lsls r1, r5, 12 - ldr r4, _08040A28 - ands r0, r4 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r3, 0x6] - ldr r2, _08040A2C - ands r2, r0 - ldr r0, _08040A30 - ands r2, r0 - strh r2, [r3, 0x6] - ldr r0, _08040A34 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - bne _08040A3C - movs r1, 0 - ldrsh r0, [r7, r1] - lsls r0, 2 - adds r0, 0x10 - ldr r1, _08040A38 - ands r0, r1 - strh r0, [r3, 0x2] - movs r1, 0x2 - ldrsh r0, [r7, r1] - adds r0, 0x1 - lsls r0, 2 - ands r0, r4 - lsls r0, 4 - adds r1, r2, 0 - ands r1, r5 - orrs r1, r0 - strh r1, [r3, 0x6] - movs r1, 0x80 - lsls r1, 1 - mov r0, sp - movs r2, 0 - movs r3, 0 - bl nullsub_11 - b _08040A6A - .align 2, 0 -_080409F4: .4byte gUnknown_203B418 -_080409F8: .4byte 0x00018214 -_080409FC: .4byte gUnknown_203B410 -_08040A00: .4byte gUnknown_202EE02 -_08040A04: .4byte 0x0000feff -_08040A08: .4byte 0xffff0000 -_08040A0C: .4byte 0x0000fdff -_08040A10: .4byte 0x0000f3ff -_08040A14: .4byte 0x0000efff -_08040A18: .4byte 0x0000dfff -_08040A1C: .4byte 0x00003fff -_08040A20: .4byte 0x0000c1ff -_08040A24: .4byte 0x00000215 -_08040A28: .4byte 0x00000fff -_08040A2C: .4byte 0x0000fffe -_08040A30: .4byte 0x0000fffd -_08040A34: .4byte gUnknown_203B46C -_08040A38: .4byte 0x000001ff -_08040A3C: - movs r1, 0 - ldrsh r0, [r7, r1] - lsls r0, 2 - adds r0, 0x8 - ldr r1, _08040A74 - ands r0, r1 - strh r0, [r3, 0x2] - movs r1, 0x2 - ldrsh r0, [r7, r1] - lsls r0, 2 - ands r0, r4 - lsls r0, 4 - adds r1, r2, 0 - ands r1, r5 - orrs r1, r0 - strh r1, [r3, 0x6] - movs r1, 0x80 - lsls r1, 1 - mov r0, sp - movs r2, 0 - movs r3, 0 - bl AddSprite -_08040A6A: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08040A74: .4byte 0x000001ff - thumb_func_end sub_8040894 - - thumb_func_start sub_8040A78 -sub_8040A78: - ldr r1, _08040A80 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_08040A80: .4byte gUnknown_202EE02 - thumb_func_end sub_8040A78 - - thumb_func_start sub_8040A84 -sub_8040A84: - push {r4-r6,lr} - ldr r0, _08040AB4 - ldr r0, [r0] - ldr r1, _08040AB8 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - movs r5, 0 -_08040A94: - movs r4, 0 - adds r6, r5, 0x1 -_08040A98: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80402AC - adds r4, 0x1 - cmp r4, 0x37 - ble _08040A98 - adds r5, r6, 0 - cmp r5, 0x1F - ble _08040A94 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08040AB4: .4byte gUnknown_203B418 -_08040AB8: .4byte 0x0001bdd1 - thumb_func_end sub_8040A84 - - thumb_func_start sub_8040ABC -sub_8040ABC: - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _08040AD8 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - bne _08040ADC - movs r7, 0xF - movs r0, 0 - b _08040AEC - .align 2, 0 -_08040AD8: .4byte gUnknown_203B46C -_08040ADC: - cmp r1, 0 - beq _08040AE8 - movs r7, 0xE - movs r4, 0 - mov r8, r4 - b _08040AEE -_08040AE8: - movs r7, 0x10 - movs r0, 0x3 -_08040AEC: - mov r8, r0 -_08040AEE: - ldr r6, _08040B58 - movs r2, 0x1 - movs r1, 0 - cmp r1, r7 - bge _08040B22 - ldr r4, _08040B5C - mov r12, r4 -_08040AFC: - lsls r0, r2, 6 - mov r4, r12 - adds r3, r0, r4 - adds r4, r2, 0x1 - adds r5, r1, 0x1 - movs r2, 0x1B -_08040B08: - adds r1, r6, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - strh r1, [r3] - adds r3, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _08040B08 - adds r2, r4, 0 - adds r1, r5, 0 - cmp r1, r7 - blt _08040AFC -_08040B22: - movs r1, 0 - cmp r1, r8 - bge _08040B4C - ldr r6, _08040B5C - movs r0, 0xE0 - lsls r0, 8 - adds r3, r0, 0 -_08040B30: - lsls r0, r2, 6 - adds r0, r6 - adds r4, r2, 0x1 - adds r5, r1, 0x1 - movs r2, 0x1B -_08040B3A: - strh r3, [r0] - adds r0, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _08040B3A - adds r2, r4, 0 - adds r1, r5, 0 - cmp r1, r8 - blt _08040B30 -_08040B4C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08040B58: .4byte 0x0000e0b8 -_08040B5C: .4byte gUnknown_202B03A - thumb_func_end sub_8040ABC - - thumb_func_start sub_8040B60 -sub_8040B60: - push {r4,r5,lr} - ldr r0, _08040BA4 - ldr r3, [r0] - ldr r1, _08040BA8 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08040B9E - movs r1, 0 - ldr r2, _08040BAC - adds r5, r3, r2 - movs r4, 0 -_08040B78: - lsls r0, r1, 3 - adds r2, r1, 0x1 - subs r0, r1 - movs r1, 0x37 - lsls r0, 2 - adds r0, r5 - adds r0, 0x37 -_08040B86: - strb r4, [r0] - subs r0, 0x1 - subs r1, 0x1 - cmp r1, 0 - bge _08040B86 - adds r1, r2, 0 - cmp r1, 0x1F - ble _08040B78 - movs r1, 0 - ldr r2, _08040BA8 - adds r0, r3, r2 - strb r1, [r0] -_08040B9E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08040BA4: .4byte gUnknown_203B418 -_08040BA8: .4byte 0x0001bdd2 -_08040BAC: .4byte 0x0001ba2c - thumb_func_end sub_8040B60 - - thumb_func_start sub_8040BB0 -sub_8040BB0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r6, r0, 0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - bl sub_804143C - mov r8, r0 - ldrh r4, [r7, 0x2] - adds r0, r6, 0 - bl sub_807E580 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - mov r2, r8 - bl sub_804141C - lsls r0, 24 - lsrs r5, r0, 24 - mov r9, r5 - ldrh r4, [r7, 0x2] - adds r0, r6, 0 - bl sub_807E580 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - mov r2, r8 - bl sub_80412E0 - lsls r0, 16 - lsrs r0, 16 - bl sub_800ECB8 - movs r1, 0 - ldrsh r4, [r0, r1] - adds r0, r6, 0 - bl sub_8042768 - lsls r0, 24 - cmp r0, 0 - beq _08040C28 - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_80414C0 - lsls r0, 24 - cmp r0, 0 - bne _08040C28 - mov r0, r10 - cmp r0, 0 - bne _08040C2C -_08040C28: - adds r0, r5, 0 - b _08040C3C -_08040C2C: - cmp r4, 0 - beq _08040C3A - adds r0, r6, 0 - adds r1, r7, 0 - mov r2, r8 - bl sub_8040C4C -_08040C3A: - mov r0, r9 -_08040C3C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8040BB0 - - thumb_func_start sub_8040C4C -sub_8040C4C: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - adds r7, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - ldrh r5, [r4, 0x2] - bl sub_807E580 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - adds r2, r6, 0 - bl sub_80412E0 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldr r6, [r7, 0x70] - ldrh r0, [r4, 0x2] - bl sub_800EC94 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x4 - ldrsh r5, [r6, r0] - ldrh r4, [r4, 0x2] - adds r0, r7, 0 - bl sub_807E580 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - movs r2, 0x1 - bl sub_80412E0 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_800E710 - adds r2, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _08040CC4 - add r0, sp, 0x8 - adds r1, r7, 0 - adds r1, 0x28 - lsls r2, 24 - lsrs r2, 24 - bl sub_800569C - b _08040CC8 -_08040CC4: - movs r0, 0 - str r0, [sp, 0x8] -_08040CC8: - mov r0, sp - mov r1, r9 - strh r1, [r0] - mov r1, sp - ldrh r0, [r6, 0x4] - strh r0, [r1, 0x2] - ldr r0, [r7, 0xC] - cmp r0, 0 - bge _08040CDC - adds r0, 0xFF -_08040CDC: - asrs r0, 8 - strh r0, [r1, 0x4] - mov r1, sp - ldr r0, [r7, 0x10] - cmp r0, 0 - bge _08040CEA - adds r0, 0xFF -_08040CEA: - asrs r0, 8 - strh r0, [r1, 0x6] - adds r0, r6, 0 - adds r0, 0x46 - ldrb r0, [r0] - str r0, [sp, 0xC] - movs r0, 0 - str r0, [sp, 0x10] - mov r0, sp - bl sub_8041500 - mov r0, r9 - bl sub_800EEC8 - bl sub_800EF64 - movs r0, 0x58 - bl sub_803E46C - mov r0, sp - bl sub_800EA84 - adds r4, r0, 0 - adds r1, r7, 0 - movs r2, 0x5 - bl sub_8042DD4 - ldr r0, _08040D28 - ldrb r5, [r0] - ldr r6, _08040D2C - b _08040D78 - .align 2, 0 -_08040D28: .4byte gUnknown_203B40D -_08040D2C: .4byte 0x00001010 -_08040D30: - ldr r0, _08040D58 - movs r1, 0x1 - strb r1, [r0] - ldr r1, _08040D5C - ldrh r2, [r1] - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, r6 - beq _08040D48 - ldr r3, _08040D60 - adds r0, r2, r3 - strh r0, [r1] -_08040D48: - ldr r1, _08040D64 - ldr r0, [r1] - cmp r0, 0x4 - ble _08040D68 - subs r0, 0x4 - str r0, [r1] - b _08040D6E - .align 2, 0 -_08040D58: .4byte gUnknown_203B40D -_08040D5C: .4byte gUnknown_2026E4E -_08040D60: .4byte 0x00000101 -_08040D64: .4byte gUnknown_202EDC8 -_08040D68: - movs r0, 0 - str r0, [r1] - mov r8, r0 -_08040D6E: - bl sub_803EA10 - movs r0, 0x26 - bl sub_803E46C -_08040D78: - adds r0, r4, 0 - bl sub_800E9A8 - lsls r0, 24 - cmp r0, 0 - beq _08040D8A - mov r0, r8 - cmp r0, 0 - bne _08040D30 -_08040D8A: - ldr r0, _08040D9C - strb r5, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08040D9C: .4byte gUnknown_203B40D - thumb_func_end sub_8040C4C - - thumb_func_start sub_8040DA0 -sub_8040DA0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r7, r0, 0 - mov r8, r1 - bl sub_804143C - mov r9, r0 - movs r0, 0 - str r0, [sp, 0x14] - ldr r1, [r7, 0x70] - mov r10, r1 - movs r0, 0x4 - ldrsh r5, [r1, r0] - mov r1, r8 - ldrh r4, [r1, 0x2] - adds r0, r7, 0 - bl sub_807E580 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - mov r2, r9 - bl sub_80412E0 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_800EA44 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - mov r0, sp - adds r1, r7, 0 - mov r2, r8 - mov r3, r9 - bl sub_8041038 - mov r0, sp - movs r1, 0x1 - bl sub_800E838 - lsls r0, 24 - cmp r0, 0 - bne _08040E0E - mov r1, r8 - ldrh r0, [r1, 0x2] - cmp r0, 0x52 - bne _08040E24 -_08040E0E: - ldr r0, _08040E1C - ldr r0, [r0] - ldr r1, _08040E20 - adds r0, r1 - ldr r6, [r0] - b _08040E26 - .align 2, 0 -_08040E1C: .4byte gUnknown_203B418 -_08040E20: .4byte 0x000181f8 -_08040E24: - adds r6, r7, 0 -_08040E26: - adds r0, r6, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - bne _08040E34 - adds r6, r7, 0 -_08040E34: - mov r1, sp - ldr r0, [r6, 0xC] - cmp r0, 0 - bge _08040E3E - adds r0, 0xFF -_08040E3E: - asrs r0, 8 - strh r0, [r1, 0x4] - mov r1, sp - ldr r0, [r6, 0x10] - cmp r0, 0 - bge _08040E4C - adds r0, 0xFF -_08040E4C: - asrs r0, 8 - strh r0, [r1, 0x6] - adds r0, r6, 0 - bl sub_8042768 - lsls r0, 24 - cmp r0, 0 - bne _08040E5E - b _08041026 -_08040E5E: - adds r0, r7, 0 - mov r1, r8 - bl sub_80414C0 - lsls r0, 24 - cmp r0, 0 - beq _08040E6E - b _08041026 -_08040E6E: - mov r0, r8 - ldrh r1, [r0, 0x2] - movs r0, 0x94 - lsls r0, 1 - cmp r1, r0 - bne _08040ED0 - movs r0, 0x7 - bl sub_8084100 - ldr r1, _08040EB8 - str r0, [r1] - ldr r1, _08040EBC - ldr r2, [r1] - ldr r1, _08040EC0 - adds r4, r2, r1 - subs r1, 0x4 - adds r2, r1 - ldr r3, _08040EC4 - lsls r1, r0, 2 - adds r1, r3 - ldr r1, [r1] - str r1, [r2] - str r1, [r4] - ldr r1, _08040EC8 - adds r0, 0x4 - str r0, [r1] - ldr r0, _08040ECC - ldr r1, [r0] - adds r0, r6, 0 - bl sub_80522A8 - movs r1, 0xD2 - lsls r1, 1 - adds r0, r6, 0 - bl sub_80421C0 - b _08040EF0 - .align 2, 0 -_08040EB8: .4byte gUnknown_202F224 -_08040EBC: .4byte gUnknown_203B418 -_08040EC0: .4byte 0x00018204 -_08040EC4: .4byte gUnknown_8106A8C -_08040EC8: .4byte gUnknown_202DE30 -_08040ECC: .4byte gUnknown_8100224 -_08040ED0: - cmp r1, 0x76 - bne _08040EF0 - ldr r0, _08040F70 - ldr r0, [r0] - ldr r1, _08040F74 - adds r2, r0, r1 - subs r1, 0x4 - adds r0, r1 - movs r1, 0xC - str r1, [r0] - str r1, [r2] - movs r1, 0xD2 - lsls r1, 1 - adds r0, r6, 0 - bl sub_80421C0 -_08040EF0: - mov r0, r10 - movs r1, 0x4 - ldrsh r5, [r0, r1] - mov r0, r8 - ldrh r4, [r0, 0x2] - adds r0, r7, 0 - bl sub_807E580 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - mov r2, r9 - bl sub_80412E0 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_800E790 - adds r1, r0, 0 - ldr r0, _08040F78 - cmp r1, r0 - beq _08040F2A - lsls r0, r1, 16 - lsrs r0, 16 - bl sub_8083E38 -_08040F2A: - ldr r1, [sp, 0x18] - cmp r1, 0x63 - bne _08040F7C - adds r0, r6, 0 - bl sub_8042768 - lsls r0, 24 - cmp r0, 0 - beq _08041026 - mov r0, r10 - adds r0, 0x46 - ldrb r4, [r0] - mov r0, sp - adds r1, r7, 0 - mov r2, r8 - mov r3, r9 - bl sub_8041108 - movs r6, 0x7 - movs r5, 0x7 -_08040F52: - subs r4, 0x1 - ands r4, r6 - adds r0, r7, 0 - movs r1, 0 - adds r2, r4, 0 - bl sub_806CDD4 - movs r0, 0x2 - movs r1, 0x15 - bl sub_803E708 - subs r5, 0x1 - cmp r5, 0 - bge _08040F52 - b _08041026 - .align 2, 0 -_08040F70: .4byte gUnknown_203B418 -_08040F74: .4byte 0x00018204 -_08040F78: .4byte 0x000003e5 -_08040F7C: - ldr r0, [sp, 0x18] - cmp r0, 0x62 - bne _08040FC2 - adds r0, r6, 0 - bl sub_8042768 - lsls r0, 24 - cmp r0, 0 - beq _08041026 - mov r0, r10 - adds r0, 0x46 - ldrb r4, [r0] - mov r0, sp - adds r1, r7, 0 - mov r2, r8 - mov r3, r9 - bl sub_8041108 - movs r6, 0x7 - movs r5, 0x8 -_08040FA4: - ands r4, r6 - adds r0, r7, 0 - movs r1, 0 - adds r2, r4, 0 - bl sub_806CDD4 - movs r0, 0x2 - movs r1, 0x15 - bl sub_803E708 - adds r4, 0x1 - subs r5, 0x1 - cmp r5, 0 - bge _08040FA4 - b _08041026 -_08040FC2: - mov r0, r10 - adds r0, 0x46 - ldrb r2, [r0] - adds r0, r7, 0 - ldr r1, [sp, 0x18] - bl sub_806CDD4 - adds r0, r7, 0 - adds r0, 0x21 - movs r1, 0 - strb r1, [r0] - movs r5, 0 - adds r6, r0, 0 - b _08040FE6 -_08040FDE: - ldrb r0, [r6] - cmp r0, 0 - bne _08041022 - adds r5, 0x1 -_08040FE6: - cmp r5, 0x77 - bgt _08041022 - movs r0, 0x59 - bl sub_803E46C - ldr r4, [r7, 0x40] - ldr r1, [sp, 0x18] - cmp r1, 0x9 - bne _08040FFC - movs r0, 0x2 - orrs r4, r0 -_08040FFC: - movs r0, 0x2 - ands r0, r4 - cmp r0, 0 - beq _0804101A - ldr r0, [sp, 0x14] - cmp r0, 0 - bne _0804101A - mov r0, sp - adds r1, r7, 0 - mov r2, r8 - mov r3, r9 - bl sub_8041108 - movs r1, 0x1 - str r1, [sp, 0x14] -_0804101A: - movs r0, 0x1 - ands r4, r0 - cmp r4, 0 - beq _08040FDE -_08041022: - movs r0, 0 - strb r0, [r6] -_08041026: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8040DA0 - - thumb_func_start sub_8041038 -sub_8041038: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r0, 0 - adds r7, r1, 0 - mov r8, r2 - mov r10, r3 - ldr r0, [r7, 0x70] - mov r9, r0 - ldrh r4, [r2, 0x2] - adds r0, r7, 0 - bl sub_807E580 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - mov r2, r10 - bl sub_80412E0 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - bl sub_800ECB8 - movs r1, 0x2 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080410F4 - mov r0, r9 - movs r1, 0x4 - ldrsh r5, [r0, r1] - mov r0, r8 - ldrh r4, [r0, 0x2] - adds r0, r7, 0 - bl sub_807E580 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - mov r2, r10 - bl sub_80412E0 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_800E710 - adds r2, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _080410BE - adds r0, r6, 0 - adds r0, 0x8 - adds r1, r7, 0 - adds r1, 0x28 - lsls r2, 24 - lsrs r2, 24 - bl sub_800569C - b _080410C2 -_080410BE: - movs r0, 0 - str r0, [r6, 0x8] -_080410C2: - mov r1, sp - ldrh r1, [r1] - strh r1, [r6] - mov r1, r9 - ldrh r0, [r1, 0x4] - strh r0, [r6, 0x2] - ldr r0, [r7, 0xC] - cmp r0, 0 - bge _080410D6 - adds r0, 0xFF -_080410D6: - asrs r0, 8 - strh r0, [r6, 0x4] - ldr r0, [r7, 0x10] - cmp r0, 0 - bge _080410E2 - adds r0, 0xFF -_080410E2: - asrs r0, 8 - strh r0, [r6, 0x6] - mov r0, r9 - adds r0, 0x46 - ldrb r0, [r0] - str r0, [r6, 0xC] - movs r0, 0 - str r0, [r6, 0x10] - b _080410F6 -_080410F4: - strh r0, [r6] -_080410F6: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8041038 - - thumb_func_start sub_8041108 -sub_8041108: - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - adds r5, r3, 0 - ldrh r4, [r2, 0x2] - adds r0, r7, 0 - bl sub_807E580 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - adds r2, r5, 0 - bl sub_80412E0 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_800ECB8 - movs r2, 0x2 - ldrsh r1, [r0, r2] - ldrh r0, [r6] - cmp r0, 0 - beq _08041162 - cmp r1, 0 - beq _08041162 - adds r0, r6, 0 - bl sub_8041500 - adds r0, r4, 0 - bl sub_800EEF8 - bl sub_800EF64 - movs r0, 0x5A - bl sub_803E46C - adds r0, r6, 0 - bl sub_800E52C - adds r1, r7, 0 - movs r2, 0x1 - bl sub_8042DD4 -_08041162: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8041108 - - thumb_func_start sub_8041168 -sub_8041168: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - mov r8, r0 - adds r6, r1, 0 - adds r7, r2, 0 - mov r9, r3 - adds r1, r7, 0 - bl sub_804143C - adds r5, r0, 0 - cmp r5, 0 - beq _0804118A - movs r5, 0x1 -_0804118A: - ldrh r4, [r7, 0x2] - mov r0, r8 - bl sub_807E580 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - adds r2, r5, 0 - bl sub_80412E0 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - bl sub_800ECB8 - movs r1, 0x4 - ldrsh r5, [r0, r1] - movs r2, 0 - str r2, [sp, 0x14] - adds r0, r6, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080411CA - ldr r0, [r6, 0x70] - str r0, [sp, 0x14] - adds r0, r6, 0 - bl sub_8042768 - b _080411D0 -_080411CA: - mov r0, r9 - bl sub_803F428 -_080411D0: - lsls r0, 24 - cmp r0, 0 - beq _080412CE - mov r0, r8 - adds r1, r7, 0 - bl sub_80414C0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080412CE - cmp r5, 0 - beq _080412CE - adds r0, r5, 0 - bl sub_800ECA4 - ldr r5, [r0, 0x1C] - movs r0, 0x1 - negs r0, r0 - cmp r5, r0 - beq _08041216 - adds r0, r6, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08041216 - add r0, sp, 0x8 - adds r1, r6, 0 - adds r1, 0x28 - lsls r2, r5, 24 - lsrs r2, 24 - bl sub_800569C - b _08041218 -_08041216: - str r4, [sp, 0x8] -_08041218: - mov r0, sp - mov r1, r10 - strh r1, [r0] - ldr r2, [sp, 0x14] - cmp r2, 0 - beq _08041248 - mov r1, sp - ldrh r0, [r2, 0x4] - strh r0, [r1, 0x2] - ldr r0, [r6, 0xC] - cmp r0, 0 - bge _08041232 - adds r0, 0xFF -_08041232: - asrs r0, 8 - strh r0, [r1, 0x4] - mov r1, sp - ldr r0, [r6, 0x10] - cmp r0, 0 - bge _08041240 - adds r0, 0xFF -_08041240: - asrs r0, 8 - strh r0, [r1, 0x6] - movs r0, 0 - b _0804128C -_08041248: - mov r1, sp - movs r0, 0x1 - strh r0, [r1, 0x2] - mov r0, r9 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - mov r1, sp - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2 - cmp r0, 0 - bge _08041268 - adds r0, 0xFF -_08041268: - asrs r0, 8 - strh r0, [r1, 0x4] - mov r0, r9 - movs r2, 0x2 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - mov r1, sp - movs r2, 0x80 - lsls r2, 5 - adds r0, r2 - cmp r0, 0 - bge _08041286 - adds r0, 0xFF -_08041286: - asrs r0, 8 - strh r0, [r1, 0x6] - ldr r0, [sp, 0x14] -_0804128C: - str r0, [sp, 0xC] - movs r0, 0 - str r0, [sp, 0x10] - mov r0, sp - bl sub_8041500 - mov r0, r10 - bl sub_800EEE0 - bl sub_800EF64 - mov r0, sp - bl sub_800EBC8 - adds r4, r0, 0 - movs r0, 0x5B - bl sub_803E46C - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x6 - bl sub_8042DD4 - b _080412C2 -_080412BC: - movs r0, 0x28 - bl sub_803E46C -_080412C2: - adds r0, r4, 0 - bl sub_800E9A8 - lsls r0, 24 - cmp r0, 0 - bne _080412BC -_080412CE: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8041168 - - thumb_func_start sub_80412E0 -sub_80412E0: - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r0, r1, 24 - adds r3, r4, 0 - cmp r3, 0x1F - bne _08041344 - cmp r0, 0x7 - bls _080412F6 - b _080413F6 -_080412F6: - lsls r0, 2 - ldr r1, _08041300 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08041300: .4byte _08041304 - .align 2, 0 -_08041304: - .4byte _080413F4 - .4byte _08041324 - .4byte _0804132A - .4byte _080413F4 - .4byte _08041334 - .4byte _0804133A - .4byte _080413F4 - .4byte _0804133A -_08041324: - movs r3, 0xCF - lsls r3, 1 - b _080413F6 -_0804132A: - ldr r3, _08041330 - b _080413F6 - .align 2, 0 -_08041330: .4byte 0x000001a1 -_08041334: - movs r3, 0xD0 - lsls r3, 1 - b _080413F6 -_0804133A: - ldr r3, _08041340 - b _080413F6 - .align 2, 0 -_08041340: .4byte 0x0000019f -_08041344: - cmp r2, 0 - beq _080413F6 - cmp r3, 0x97 - beq _080413B4 - cmp r3, 0x97 - bgt _0804136C - cmp r3, 0x3C - beq _0804139C - cmp r3, 0x3C - bgt _08041362 - cmp r3, 0x8 - beq _08041396 - cmp r3, 0x19 - beq _080413E4 - b _080413F4 -_08041362: - cmp r3, 0x4B - beq _080413A4 - cmp r3, 0x64 - beq _080413AA - b _080413F4 -_0804136C: - cmp r3, 0xCD - beq _080413CA - cmp r3, 0xCD - bgt _0804137E - cmp r3, 0x99 - beq _080413BA - cmp r3, 0x9C - beq _080413C4 - b _080413F4 -_0804137E: - cmp r3, 0xED - beq _080413DA - cmp r3, 0xED - bgt _0804138C - cmp r3, 0xE3 - beq _080413EA - b _080413F4 -_0804138C: - movs r0, 0xAE - lsls r0, 1 - cmp r3, r0 - beq _080413D4 - b _080413F4 -_08041396: - movs r3, 0xD1 - lsls r3, 1 - b _080413F6 -_0804139C: - ldr r3, _080413A0 - b _080413F6 - .align 2, 0 -_080413A0: .4byte 0x000001a3 -_080413A4: - movs r3, 0xD2 - lsls r3, 1 - b _080413F6 -_080413AA: - ldr r3, _080413B0 - b _080413F6 - .align 2, 0 -_080413B0: .4byte 0x000001a5 -_080413B4: - movs r3, 0xD3 - lsls r3, 1 - b _080413F6 -_080413BA: - ldr r3, _080413C0 - b _080413F6 - .align 2, 0 -_080413C0: .4byte 0x000001a7 -_080413C4: - movs r3, 0xD4 - lsls r3, 1 - b _080413F6 -_080413CA: - ldr r3, _080413D0 - b _080413F6 - .align 2, 0 -_080413D0: .4byte 0x000001a9 -_080413D4: - movs r3, 0xD5 - lsls r3, 1 - b _080413F6 -_080413DA: - ldr r3, _080413E0 - b _080413F6 - .align 2, 0 -_080413E0: .4byte 0x000001ab -_080413E4: - movs r3, 0xD6 - lsls r3, 1 - b _080413F6 -_080413EA: - ldr r3, _080413F0 - b _080413F6 - .align 2, 0 -_080413F0: .4byte 0x000001ad -_080413F4: - adds r3, r4, 0 -_080413F6: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80412E0 - - thumb_func_start sub_8041400 -sub_8041400: - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r1, 24 - bl sub_80412E0 - lsls r0, 16 - lsrs r0, 16 - bl sub_800ED20 - pop {r1} - bx r1 - thumb_func_end sub_8041400 - - thumb_func_start sub_804141C -sub_804141C: - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r1, 24 - bl sub_80412E0 - lsls r0, 16 - lsrs r0, 16 - bl sub_800EC84 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_804141C - - thumb_func_start sub_804143C -sub_804143C: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrh r0, [r5, 0x2] - cmp r0, 0xED - bne _08041476 - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080414A4 - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0x1 - bne _080414A4 - ldr r1, [r4, 0x70] - adds r0, r1, 0 - adds r0, 0x5C - ldrb r0, [r0] - cmp r0, 0xE - beq _080414A0 - adds r0, r1, 0 - adds r0, 0x5D - ldrb r0, [r0] - cmp r0, 0xE - beq _080414A0 - b _0804148A -_08041476: - cmp r0, 0x19 - beq _0804147E - cmp r0, 0xE3 - bne _0804148E -_0804147E: - adds r0, r4, 0 - bl sub_8070B28 - lsls r0, 24 - cmp r0, 0 - beq _080414A0 -_0804148A: - movs r0, 0 - b _080414B8 -_0804148E: - cmp r0, 0x97 - bne _080414A4 - adds r0, r4, 0 - bl sub_807E580 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080414A4 -_080414A0: - movs r0, 0x1 - b _080414B8 -_080414A4: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80570AC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_080414B8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_804143C - - thumb_func_start sub_80414C0 -sub_80414C0: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldrh r0, [r4, 0x2] - cmp r0, 0x9C - bne _080414DC - adds r0, r5, 0 - bl sub_8045128 - bl sub_804AF20 - lsls r0, 24 - cmp r0, 0 - bne _080414F2 -_080414DC: - ldrh r0, [r4, 0x2] - cmp r0, 0x8 - bne _080414F6 - adds r0, r5, 0 - bl sub_8045128 - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - beq _080414F6 -_080414F2: - movs r0, 0x1 - b _080414F8 -_080414F6: - movs r0, 0 -_080414F8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80414C0 - - thumb_func_start sub_8041500 -sub_8041500: - push {lr} - bl sub_800E7D0 - lsls r0, 24 - cmp r0, 0 - beq _08041518 - movs r0, 0x5C - bl sub_803E46C - movs r0, 0x5D - bl sub_8052740 -_08041518: - pop {r0} - bx r0 - thumb_func_end sub_8041500 - - thumb_func_start sub_804151C -sub_804151C: - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r5, r1, 0 - lsls r4, r2, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl sub_800DC9C - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8041550 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_804151C - - thumb_func_start sub_8041550 -sub_8041550: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - adds r7, r0, 0 - mov r10, r1 - ldr r0, [sp, 0x54] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x2C] - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _0804159C - ldr r0, [r7, 0x70] - mov r8, r0 - adds r0, r7, 0 - bl sub_8042768 - lsls r0, 24 - cmp r0, 0 - beq _0804159C - cmp r6, 0 - bne _080415A2 - mov r0, r8 - adds r0, 0xFF - ldrb r0, [r0] - cmp r0, 0x2 - bne _080415A2 -_0804159C: - movs r0, 0x1 - negs r0, r0 - b _08041692 -_080415A2: - ldr r1, [sp, 0x50] - cmp r1, 0 - beq _080415B4 - movs r0, 0 - cmp r1, 0x2 - bne _080415B0 - movs r0, 0x1 -_080415B0: - bl sub_804178C -_080415B4: - add r6, sp, 0x28 - adds r1, r7, 0 - adds r1, 0x28 - adds r0, r6, 0 - mov r2, r9 - bl sub_800569C - movs r2, 0 - ldrsh r0, [r6, r2] - cmp r0, 0x63 - beq _080415F2 - ldrh r0, [r6, 0x2] - cmp r0, 0x63 - beq _080415F2 - movs r1, 0 - ldrsh r0, [r6, r1] - lsls r0, 8 - ldr r1, [r7, 0xC] - adds r4, r1, r0 - movs r2, 0x2 - ldrsh r0, [r6, r2] - lsls r0, 8 - ldr r2, [r7, 0x10] - adds r0, r2, r0 - movs r1, 0xBA - lsls r1, 1 - add r1, r8 - ldr r1, [r1] - subs r5, r0, r1 - adds r1, r2, 0 - b _08041600 -_080415F2: - ldr r4, [r7, 0xC] - movs r0, 0xBA - lsls r0, 1 - add r0, r8 - ldr r1, [r7, 0x10] - ldr r0, [r0] - subs r5, r1, r0 -_08041600: - cmp r1, 0 - bge _08041606 - adds r1, 0xFF -_08041606: - asrs r1, 8 - ldr r0, _0804166C - ldr r0, [r0] - ldr r2, _08041670 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - subs r1, r0 - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r1, r0, 1 - adds r1, 0x1 - mov r0, r10 - str r0, [sp] - movs r3, 0 - str r3, [sp, 0x4] - movs r6, 0x1 - negs r6, r6 - str r6, [sp, 0x8] - mov r2, sp - adds r0, r4, 0 - cmp r4, 0 - bge _08041636 - adds r0, 0xFF -_08041636: - asrs r0, 8 - strh r0, [r2, 0xC] - mov r2, sp - adds r0, r5, 0 - cmp r0, 0 - bge _08041644 - adds r0, 0xFF -_08041644: - asrs r0, 8 - strh r0, [r2, 0xE] - str r6, [sp, 0x14] - mov r0, sp - strh r3, [r0, 0x10] - strh r3, [r0, 0x12] - str r1, [sp, 0x18] - add r0, sp, 0x1C - bl sub_8004E8C - mov r0, sp - movs r1, 0 - bl sub_8041764 - adds r4, r0, 0 - ldr r1, [sp, 0x2C] - cmp r1, 0 - beq _08041690 - movs r5, 0 - b _0804167C - .align 2, 0 -_0804166C: .4byte gUnknown_203B418 -_08041670: .4byte 0x000181f2 -_08041674: - movs r0, 0x42 - bl sub_803E46C - adds r5, 0x1 -_0804167C: - cmp r5, 0x63 - bgt _0804168C - adds r0, r4, 0 - bl sub_800E9A8 - lsls r0, 24 - cmp r0, 0 - bne _08041674 -_0804168C: - movs r4, 0x1 - negs r4, r4 -_08041690: - adds r0, r4, 0 -_08041692: - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8041550 - - thumb_func_start sub_80416A4 -sub_80416A4: - push {r4,lr} - sub sp, 0x8 - lsls r2, 24 - lsrs r2, 24 - movs r3, 0 - ldrsh r4, [r0, r3] - lsls r3, r4, 1 - adds r3, r4 - lsls r3, 11 - movs r4, 0xC0 - lsls r4, 4 - adds r3, r4 - str r3, [sp] - movs r4, 0x2 - ldrsh r3, [r0, r4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 11 - movs r3, 0x80 - lsls r3, 5 - adds r0, r3 - str r0, [sp, 0x4] - mov r0, sp - bl sub_80416E0 - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80416A4 - - thumb_func_start sub_80416E0 -sub_80416E0: - push {r4,r5,lr} - sub sp, 0x28 - adds r3, r0, 0 - lsls r2, 24 - lsrs r5, r2, 24 - str r1, [sp] - movs r2, 0 - str r2, [sp, 0x4] - movs r4, 0x1 - negs r4, r4 - str r4, [sp, 0x8] - mov r1, sp - ldr r0, [r3] - cmp r0, 0 - bge _08041700 - adds r0, 0xFF -_08041700: - asrs r0, 8 - strh r0, [r1, 0xC] - mov r1, sp - ldr r0, [r3, 0x4] - cmp r0, 0 - bge _0804170E - adds r0, 0xFF -_0804170E: - asrs r0, 8 - strh r0, [r1, 0xE] - str r4, [sp, 0x14] - mov r0, sp - strh r2, [r0, 0x10] - strh r2, [r0, 0x12] - ldr r0, _08041738 - str r0, [sp, 0x18] - add r0, sp, 0x1C - bl sub_8004E8C - mov r0, sp - movs r1, 0 - bl sub_8041764 - adds r4, r0, 0 - cmp r5, 0 - beq _08041758 - movs r5, 0 - b _08041744 - .align 2, 0 -_08041738: .4byte 0x0000ffff -_0804173C: - movs r0, 0x42 - bl sub_803E46C - adds r5, 0x1 -_08041744: - cmp r5, 0x63 - bgt _08041754 - adds r0, r4, 0 - bl sub_800E9A8 - lsls r0, 24 - cmp r0, 0 - bne _0804173C -_08041754: - movs r4, 0x1 - negs r4, r4 -_08041758: - adds r0, r4, 0 - add sp, 0x28 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80416E0 - - thumb_func_start sub_8041764 -sub_8041764: - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r0, [r5] - bl sub_800EE5C - bl sub_800EF64 - cmp r4, 0 - beq _08041780 - movs r0, 0x42 - bl sub_803E46C -_08041780: - adds r0, r5, 0 - bl sub_800E890 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8041764 - - thumb_func_start sub_804178C -sub_804178C: - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080417B0 - ldr r0, [r0] - ldr r1, _080417B4 - adds r0, r1 - str r4, [r0] - adds r0, r5, 0 - bl sub_800E9FC - lsls r0, 24 - cmp r0, 0 - beq _080417E0 - ldr r6, _080417B8 - b _080417C4 - .align 2, 0 -_080417B0: .4byte gUnknown_203B418 -_080417B4: .4byte 0x00018204 -_080417B8: .4byte 0x000003e7 -_080417BC: - movs r0, 0x4A - bl sub_803E46C - adds r4, 0x1 -_080417C4: - cmp r4, r6 - bgt _080417D4 - adds r0, r5, 0 - bl sub_800E9FC - lsls r0, 24 - cmp r0, 0 - bne _080417BC -_080417D4: - movs r0, 0x4A - bl sub_803E46C - movs r0, 0x4A - bl sub_803E46C -_080417E0: - movs r0, 0xFA - lsls r0, 2 - cmp r4, r0 - beq _080417EC - cmp r5, 0 - beq _080417F0 -_080417EC: - bl sub_800DBBC -_080417F0: - ldr r2, _08041824 - ldr r0, [r2] - cmp r0, 0x1E - bgt _08041860 - ldr r1, _08041828 - ldrb r7, [r1] - movs r0, 0x1 - strb r0, [r1] - movs r4, 0 - adds r5, r2, 0 - ldr r6, _0804182C -_08041806: - ldr r0, [r5] - cmp r0, 0x1E - bgt _08041838 - adds r0, 0x4 - str r0, [r5] - ldr r1, _08041830 - ldrh r2, [r1] - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, r6 - beq _0804183C - ldr r3, _08041834 - adds r0, r2, r3 - strh r0, [r1] - b _0804183C - .align 2, 0 -_08041824: .4byte gUnknown_202EDC8 -_08041828: .4byte gUnknown_203B40D -_0804182C: .4byte 0x00000808 -_08041830: .4byte gUnknown_2026E4E -_08041834: .4byte 0xfffffeff -_08041838: - movs r0, 0x1F - str r0, [r5] -_0804183C: - bl sub_803EA10 - movs r0, 0x4A - bl sub_803E46C - ldr r0, [r5] - cmp r0, 0x1F - beq _08041854 - adds r4, 0x1 - ldr r0, _0804186C - cmp r4, r0 - ble _08041806 -_08041854: - ldr r0, _08041870 - ldr r2, _08041874 - adds r1, r2, 0 - strh r1, [r0] - ldr r0, _08041878 - strb r7, [r0] -_08041860: - bl sub_8042E98 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804186C: .4byte 0x000003e7 -_08041870: .4byte gUnknown_2026E4E -_08041874: .4byte 0x00000808 -_08041878: .4byte gUnknown_203B40D - thumb_func_end sub_804178C - - thumb_func_start sub_804187C -sub_804187C: - ldr r0, [r0, 0x70] - movs r1, 0x80 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - bx lr - thumb_func_end sub_804187C - - thumb_func_start sub_8041888 -sub_8041888: - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 -_08041890: - ldr r0, _080418CC - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _080418D0 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080418C0 - ldr r1, [r4, 0x70] - cmp r6, 0 - beq _080418BA - movs r0, 0xA6 - lsls r0, 1 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] -_080418BA: - adds r0, r4, 0 - bl sub_80418D4 -_080418C0: - adds r5, 0x1 - cmp r5, 0x13 - ble _08041890 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080418CC: .4byte gUnknown_203B418 -_080418D0: .4byte 0x000135cc - thumb_func_end sub_8041888 - - thumb_func_start sub_80418D4 -sub_80418D4: - push {r4,lr} - adds r4, r0, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - bne _080418E4 - b _08041A8C -_080418E4: - ldr r2, [r4, 0x70] - movs r3, 0 - movs r1, 0x1 - movs r4, 0x2 - ldrsh r0, [r2, r4] - cmp r0, 0xB9 - bne _08041902 - adds r0, r2, 0 - adds r0, 0xA9 - ldrb r0, [r0] - movs r1, 0x7F - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 -_08041902: - cmp r1, 0 - beq _08041914 - ldr r1, _08041A94 - adds r0, r2, 0 - adds r0, 0xA8 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r3, [r0] -_08041914: - ldr r1, _08041A98 - adds r0, r2, 0 - adds r0, 0xAC - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r3, r0 - ldr r1, _08041A9C - adds r0, r2, 0 - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r3, r0 - ldr r1, _08041AA0 - adds r0, r2, 0 - adds r0, 0xBC - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r3, r0 - ldr r1, _08041AA4 - adds r0, r2, 0 - adds r0, 0xC0 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r3, r0 - ldr r1, _08041AA8 - adds r0, r2, 0 - adds r0, 0xC4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r3, r0 - ldr r1, _08041AAC - adds r0, r2, 0 - adds r0, 0xC8 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r3, r0 - ldr r1, _08041AB0 - adds r0, r2, 0 - adds r0, 0xD0 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r3, r0 - ldr r1, _08041AB4 - adds r0, r2, 0 - adds r0, 0xDC - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r3, r0 - ldr r1, _08041AB8 - adds r0, r2, 0 - adds r0, 0xE0 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r3, r0 - ldr r1, _08041ABC - adds r0, r2, 0 - adds r0, 0xE4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r3, r0 - ldr r1, _08041AC0 - adds r0, r2, 0 - adds r0, 0xE8 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r3, r0 - ldr r1, _08041AC4 - adds r0, r2, 0 - adds r0, 0xEC - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r3, r0 - adds r0, r2, 0 - adds r0, 0xF4 - ldrb r0, [r0] - cmp r0, 0 - beq _080419E4 - movs r0, 0x80 - lsls r0, 17 - orrs r3, r0 -_080419E4: - adds r0, r2, 0 - adds r0, 0xF5 - ldrb r0, [r0] - cmp r0, 0 - beq _080419F4 - movs r0, 0x80 - lsls r0, 18 - orrs r3, r0 -_080419F4: - ldrb r0, [r2, 0x6] - cmp r0, 0 - bne _08041A14 - movs r0, 0x10 - ldrsh r1, [r2, r0] - cmp r1, 0 - bge _08041A04 - adds r1, 0x3 -_08041A04: - asrs r1, 2 - movs r4, 0xE - ldrsh r0, [r2, r4] - cmp r1, r0 - ble _08041A14 - movs r0, 0x80 - lsls r0, 6 - orrs r3, r0 -_08041A14: - ldr r0, _08041AC8 - ldr r0, [r0] - ldr r1, _08041ACC - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08041A36 - adds r0, r2, 0 - adds r0, 0x60 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08041A36 - movs r0, 0x80 - lsls r0, 6 - orrs r3, r0 -_08041A36: - ldr r0, [r2, 0x2C] - cmp r0, 0xFF - ble _08041A7E - ldr r0, [r2, 0x30] - cmp r0, 0xFF - ble _08041A7E - ldr r0, [r2, 0x34] - cmp r0, 0xFF - ble _08041A7E - ldr r0, [r2, 0x38] - cmp r0, 0xFF - ble _08041A7E - movs r4, 0x1C - ldrsh r0, [r2, r4] - cmp r0, 0x9 - ble _08041A7E - movs r1, 0x1E - ldrsh r0, [r2, r1] - cmp r0, 0x9 - ble _08041A7E - movs r4, 0x20 - ldrsh r0, [r2, r4] - cmp r0, 0x9 - ble _08041A7E - movs r1, 0x22 - ldrsh r0, [r2, r1] - cmp r0, 0x9 - ble _08041A7E - movs r4, 0x24 - ldrsh r0, [r2, r4] - cmp r0, 0x9 - ble _08041A7E - movs r1, 0x26 - ldrsh r0, [r2, r1] - cmp r0, 0x9 - bgt _08041A84 -_08041A7E: - movs r0, 0x80 - lsls r0, 20 - orrs r3, r0 -_08041A84: - movs r4, 0x80 - lsls r4, 2 - adds r0, r2, r4 - str r3, [r0] -_08041A8C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08041A94: .4byte gUnknown_80F669C -_08041A98: .4byte gUnknown_80F66B4 -_08041A9C: .4byte gUnknown_80F66C8 -_08041AA0: .4byte gUnknown_80F66E8 -_08041AA4: .4byte gUnknown_80F6708 -_08041AA8: .4byte gUnknown_80F673C -_08041AAC: .4byte gUnknown_80F6778 -_08041AB0: .4byte gUnknown_80F6788 -_08041AB4: .4byte gUnknown_80F6794 -_08041AB8: .4byte gUnknown_80F67A8 -_08041ABC: .4byte gUnknown_80F67B4 -_08041AC0: .4byte gUnknown_80F67C4 -_08041AC4: .4byte gUnknown_80F67D4 -_08041AC8: .4byte gUnknown_203B418 -_08041ACC: .4byte 0x00000676 - thumb_func_end sub_80418D4 - - thumb_func_start sub_8041AD0 -sub_8041AD0: - push {lr} - movs r1, 0xA2 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041AD0 - - thumb_func_start sub_8041AE0 -sub_8041AE0: - push {lr} - ldr r1, _08041AF0 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041AF0: .4byte 0x00000143 - thumb_func_end sub_8041AE0 - - thumb_func_start sub_8041AF4 -sub_8041AF4: - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x25 - movs r2, 0x1 - bl sub_804151C - ldr r1, _08041B10 - adds r0, r4, 0 - bl sub_80421C0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08041B10: .4byte 0x00000197 - thumb_func_end sub_8041AF4 - - thumb_func_start nullsub_57 -nullsub_57: - bx lr - thumb_func_end nullsub_57 - - thumb_func_start sub_8041B18 -sub_8041B18: - push {lr} - ldr r1, _08041B28 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041B28: .4byte 0x00000141 - thumb_func_end sub_8041B18 - - thumb_func_start nullsub_58 -nullsub_58: - bx lr - thumb_func_end nullsub_58 - - thumb_func_start nullsub_59 -nullsub_59: - bx lr - thumb_func_end nullsub_59 - - thumb_func_start sub_8041B34 -sub_8041B34: - push {lr} - movs r1, 0x7 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041B34 - - thumb_func_start nullsub_60 -nullsub_60: - bx lr - thumb_func_end nullsub_60 - - thumb_func_start sub_8041B48 -sub_8041B48: - push {lr} - movs r1, 0x4 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041B48 - - thumb_func_start nullsub_61 -nullsub_61: - bx lr - thumb_func_end nullsub_61 - - thumb_func_start sub_8041B5C -sub_8041B5C: - push {lr} - ldr r1, _08041B6C - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041B6C: .4byte 0x00000171 - thumb_func_end sub_8041B5C - - thumb_func_start nullsub_62 -nullsub_62: - bx lr - thumb_func_end nullsub_62 - - thumb_func_start sub_8041B74 -sub_8041B74: - push {lr} - ldr r1, _08041B84 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041B84: .4byte 0x00000171 - thumb_func_end sub_8041B74 - - thumb_func_start nullsub_63 -nullsub_63: - bx lr - thumb_func_end nullsub_63 - - thumb_func_start nullsub_64 -nullsub_64: - bx lr - thumb_func_end nullsub_64 - - thumb_func_start sub_8041B90 -sub_8041B90: - push {lr} - movs r1, 0xD6 - lsls r1, 1 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041B90 - - thumb_func_start nullsub_65 -nullsub_65: - bx lr - thumb_func_end nullsub_65 - - thumb_func_start nullsub_66 -nullsub_66: - bx lr - thumb_func_end nullsub_66 - - thumb_func_start sub_8041BA8 -sub_8041BA8: - push {lr} - movs r1, 0x4 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041BA8 - - thumb_func_start nullsub_67 -nullsub_67: - bx lr - thumb_func_end nullsub_67 - - thumb_func_start sub_8041BBC -sub_8041BBC: - push {lr} - movs r1, 0xD4 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041BBC - - thumb_func_start nullsub_68 -nullsub_68: - bx lr - thumb_func_end nullsub_68 - - thumb_func_start sub_8041BD0 -sub_8041BD0: - push {lr} - lsls r1, 24 - cmp r1, 0 - beq _08041BDE - ldr r1, _08041BE4 - bl sub_80421C0 -_08041BDE: - pop {r0} - bx r0 - .align 2, 0 -_08041BE4: .4byte 0x000001a5 - thumb_func_end sub_8041BD0 - - thumb_func_start sub_8041BE8 -sub_8041BE8: - push {lr} - movs r1, 0xCB - lsls r1, 1 - bl sub_80421C0 - pop {r0} - bx r0 - thumb_func_end sub_8041BE8 - - thumb_func_start sub_8041BF8 -sub_8041BF8: - push {lr} - movs r1, 0xA - movs r2, 0x8 - bl sub_806CDD4 - pop {r0} - bx r0 - thumb_func_end sub_8041BF8 - - thumb_func_start sub_8041C08 -sub_8041C08: - push {lr} - ldr r1, _08041C18 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041C18: .4byte 0x000001a7 - thumb_func_end sub_8041C08 - - thumb_func_start sub_8041C1C -sub_8041C1C: - push {lr} - ldr r1, _08041C2C - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041C2C: .4byte 0x000001a7 - thumb_func_end sub_8041C1C - - thumb_func_start nullsub_69 -nullsub_69: - bx lr - thumb_func_end nullsub_69 - - thumb_func_start sub_8041C34 -sub_8041C34: - push {lr} - movs r1, 0x4C - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041C34 - - thumb_func_start nullsub_70 -nullsub_70: - bx lr - thumb_func_end nullsub_70 - - thumb_func_start nullsub_71 -nullsub_71: - bx lr - thumb_func_end nullsub_71 - - thumb_func_start sub_8041C4C -sub_8041C4C: - push {lr} - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041C4C - - thumb_func_start sub_8041C58 -sub_8041C58: - push {lr} - ldr r1, _08041C68 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041C68: .4byte 0x000001a9 - thumb_func_end sub_8041C58 - - thumb_func_start sub_8041C6C -sub_8041C6C: - push {lr} - movs r1, 0x9D - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041C6C - - thumb_func_start sub_8041C7C -sub_8041C7C: - push {lr} - movs r1, 0x9D - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041C7C - - thumb_func_start nullsub_72 -nullsub_72: - bx lr - thumb_func_end nullsub_72 - - thumb_func_start nullsub_73 -nullsub_73: - bx lr - thumb_func_end nullsub_73 - - thumb_func_start sub_8041C94 -sub_8041C94: - push {lr} - ldr r1, _08041CA4 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041CA4: .4byte 0x00000171 - thumb_func_end sub_8041C94 - - thumb_func_start sub_8041CA8 -sub_8041CA8: - push {lr} - movs r1, 0x7 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041CA8 - - thumb_func_start sub_8041CB8 -sub_8041CB8: - push {lr} - ldr r1, _08041CC8 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041CC8: .4byte 0x0000018b - thumb_func_end sub_8041CB8 - - thumb_func_start sub_8041CCC -sub_8041CCC: - push {lr} - movs r1, 0xC5 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041CCC - - thumb_func_start sub_8041CDC -sub_8041CDC: - push {lr} - movs r1, 0x5 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041CDC - - thumb_func_start sub_8041CEC -sub_8041CEC: - push {lr} - ldr r1, _08041CF8 - bl sub_80421C0 - pop {r0} - bx r0 - .align 2, 0 -_08041CF8: .4byte 0x0000019d - thumb_func_end sub_8041CEC - - thumb_func_start nullsub_74 -nullsub_74: - bx lr - thumb_func_end nullsub_74 - - thumb_func_start sub_8041D00 -sub_8041D00: - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - movs r1, 0x2F - movs r2, 0x1 - bl sub_804151C - adds r0, r4, 0 - movs r1, 0x30 - movs r2, 0x1 - bl sub_804151C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8041D00 - - thumb_func_start nullsub_75 -nullsub_75: - bx lr - thumb_func_end nullsub_75 - - thumb_func_start nullsub_76 -nullsub_76: - bx lr - thumb_func_end nullsub_76 - - thumb_func_start nullsub_77 -nullsub_77: - bx lr - thumb_func_end nullsub_77 - - thumb_func_start nullsub_78 -nullsub_78: - bx lr - thumb_func_end nullsub_78 - - thumb_func_start nullsub_79 -nullsub_79: - bx lr - thumb_func_end nullsub_79 - - thumb_func_start nullsub_80 -nullsub_80: - bx lr - thumb_func_end nullsub_80 - - thumb_func_start sub_8041D38 -sub_8041D38: - push {lr} - movs r1, 0x21 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041D38 - - thumb_func_start sub_8041D48 -sub_8041D48: - push {lr} - ldr r1, _08041D54 - bl sub_80421C0 - pop {r0} - bx r0 - .align 2, 0 -_08041D54: .4byte 0x00000191 - thumb_func_end sub_8041D48 - - thumb_func_start nullsub_81 -nullsub_81: - bx lr - thumb_func_end nullsub_81 - - thumb_func_start sub_8041D5C -sub_8041D5C: - push {r4,lr} - adds r4, r0, 0 - bl sub_8042768 - lsls r0, 24 - cmp r0, 0 - beq _08041D7E - ldr r0, [r4, 0x70] - movs r1, 0x89 - lsls r1, 1 - adds r0, r1 - ldrb r0, [r0] - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0xB - bl sub_803ED30 -_08041D7E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8041D5C - - thumb_func_start sub_8041D84 -sub_8041D84: - push {lr} - ldr r1, _08041D90 - bl sub_80421C0 - pop {r0} - bx r0 - .align 2, 0 -_08041D90: .4byte 0x0000019f - thumb_func_end sub_8041D84 - - thumb_func_start nullsub_82 -nullsub_82: - bx lr - thumb_func_end nullsub_82 - - thumb_func_start nullsub_83 -nullsub_83: - bx lr - thumb_func_end nullsub_83 - - thumb_func_start sub_8041D9C -sub_8041D9C: - push {lr} - ldr r1, _08041DAC - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041DAC: .4byte 0x00000131 - thumb_func_end sub_8041D9C - - thumb_func_start sub_8041DB0 -sub_8041DB0: - push {lr} - movs r1, 0x30 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041DB0 - - thumb_func_start nullsub_84 -nullsub_84: - bx lr - thumb_func_end nullsub_84 - - thumb_func_start nullsub_85 -nullsub_85: - bx lr - thumb_func_end nullsub_85 - - thumb_func_start nullsub_204 -nullsub_204: - bx lr - thumb_func_end nullsub_204 - - thumb_func_start nullsub_86 -nullsub_86: - bx lr - thumb_func_end nullsub_86 - - thumb_func_start nullsub_87 -nullsub_87: - bx lr - thumb_func_end nullsub_87 - - thumb_func_start nullsub_88 -nullsub_88: - bx lr - thumb_func_end nullsub_88 - - thumb_func_start sub_8041DD8 -sub_8041DD8: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 16 - asrs r5, r1, 16 - movs r1, 0xE - bl sub_8071858 - lsls r0, 24 - cmp r0, 0 - beq _08041DF8 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_804151C - b _08041E02 -_08041DF8: - adds r0, r4, 0 - movs r1, 0xE - movs r2, 0x1 - bl sub_804151C -_08041E02: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8041DD8 - - thumb_func_start nullsub_89 -nullsub_89: - bx lr - thumb_func_end nullsub_89 - - thumb_func_start sub_8041E0C -sub_8041E0C: - push {lr} - movs r1, 0x41 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041E0C - - thumb_func_start sub_8041E1C -sub_8041E1C: - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x8F - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - movs r1, 0xCE - lsls r1, 1 - adds r0, r4, 0 - bl sub_80421C0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8041E1C - - thumb_func_start sub_8041E3C -sub_8041E3C: - push {lr} - movs r1, 0xD7 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041E3C - - thumb_func_start sub_8041E4C -sub_8041E4C: - push {lr} - ldr r1, _08041E5C - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041E5C: .4byte 0x000001b1 - thumb_func_end sub_8041E4C - - thumb_func_start sub_8041E60 -sub_8041E60: - push {lr} - ldr r1, _08041E70 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041E70: .4byte 0x000001a9 - thumb_func_end sub_8041E60 - - thumb_func_start sub_8041E74 -sub_8041E74: - push {lr} - movs r1, 0xC9 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041E74 - - thumb_func_start sub_8041E84 -sub_8041E84: - push {lr} - movs r1, 0xC7 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041E84 - - thumb_func_start sub_8041E94 -sub_8041E94: - push {lr} - movs r1, 0xC8 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041E94 - - thumb_func_start sub_8041EA4 -sub_8041EA4: - push {lr} - movs r1, 0x15 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041EA4 - - thumb_func_start sub_8041EB4 -sub_8041EB4: - push {lr} - ldr r1, _08041EC4 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08041EC4: .4byte 0x00000171 - thumb_func_end sub_8041EB4 - - thumb_func_start sub_8041EC8 -sub_8041EC8: - push {lr} - ldr r1, _08041ED4 - bl sub_80421C0 - pop {r0} - bx r0 - .align 2, 0 -_08041ED4: .4byte 0x00000197 - thumb_func_end sub_8041EC8 - - thumb_func_start sub_8041ED8 -sub_8041ED8: - push {lr} - ldr r1, _08041EE4 - bl sub_80421C0 - pop {r0} - bx r0 - .align 2, 0 -_08041EE4: .4byte 0x00000197 - thumb_func_end sub_8041ED8 - - thumb_func_start sub_8041EE8 -sub_8041EE8: - push {lr} - movs r1, 0x15 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041EE8 - - thumb_func_start sub_8041EF8 -sub_8041EF8: - push {lr} - movs r1, 0xF - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8041EF8 - - thumb_func_start sub_8041F08 -sub_8041F08: - push {lr} - sub sp, 0x8 - movs r1, 0x2 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x15 - movs r2, 0x1 - movs r3, 0x3 - bl sub_8041550 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_8041F08 - - thumb_func_start nullsub_90 -nullsub_90: - bx lr - thumb_func_end nullsub_90 - - thumb_func_start sub_8041F28 -sub_8041F28: - push {lr} - cmp r1, 0 - bne _08041F3A - movs r1, 0xCA - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - b _08041F42 -_08041F3A: - ldr r1, _08041F48 - movs r2, 0x1 - bl sub_804151C -_08041F42: - pop {r0} - bx r0 - .align 2, 0 -_08041F48: .4byte 0x00000193 - thumb_func_end sub_8041F28 - - thumb_func_start sub_8041F4C -sub_8041F4C: - push {lr} - cmp r1, 0 - bne _08041F60 - ldr r1, _08041F5C - movs r2, 0x1 - bl sub_804151C - b _08041F68 - .align 2, 0 -_08041F5C: .4byte 0x0000018f -_08041F60: - ldr r1, _08041F6C - movs r2, 0x1 - bl sub_804151C -_08041F68: - pop {r0} - bx r0 - .align 2, 0 -_08041F6C: .4byte 0x00000191 - thumb_func_end sub_8041F4C - - thumb_func_start sub_8041F70 -sub_8041F70: - push {lr} - cmp r1, 0 - bne _08041F84 - ldr r1, _08041F80 - movs r2, 0x1 - bl sub_804151C - b _08041F8E - .align 2, 0 -_08041F80: .4byte 0x000001a9 -_08041F84: - movs r1, 0xC9 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C -_08041F8E: - pop {r0} - bx r0 - thumb_func_end sub_8041F70 - - thumb_func_start sub_8041F94 -sub_8041F94: - push {lr} - cmp r1, 0 - bne _08041FA6 - movs r1, 0xC7 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - b _08041FB0 -_08041FA6: - movs r1, 0xC8 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C -_08041FB0: - pop {r0} - bx r0 - thumb_func_end sub_8041F94 - - thumb_func_start sub_8041FB4 -sub_8041FB4: - push {lr} - cmp r1, 0 - bne _08041FC8 - ldr r1, _08041FC4 - movs r2, 0x1 - bl sub_804151C - b _08041FD2 - .align 2, 0 -_08041FC4: .4byte 0x000001a9 -_08041FC8: - movs r1, 0xC9 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C -_08041FD2: - pop {r0} - bx r0 - thumb_func_end sub_8041FB4 - - thumb_func_start sub_8041FD8 -sub_8041FD8: - push {lr} - cmp r1, 0 - bne _08041FEA - movs r1, 0xCA - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - b _08041FF2 -_08041FEA: - ldr r1, _08041FF8 - movs r2, 0x1 - bl sub_804151C -_08041FF2: - pop {r0} - bx r0 - .align 2, 0 -_08041FF8: .4byte 0x00000193 - thumb_func_end sub_8041FD8 - - thumb_func_start sub_8041FFC -sub_8041FFC: - push {lr} - cmp r1, 0 - bne _0804200E - movs r1, 0xC7 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - b _08042018 -_0804200E: - movs r1, 0xC8 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C -_08042018: - pop {r0} - bx r0 - thumb_func_end sub_8041FFC - - thumb_func_start sub_804201C -sub_804201C: - push {lr} - cmp r1, 0 - bne _08042030 - ldr r1, _0804202C - movs r2, 0x1 - bl sub_804151C - b _08042038 - .align 2, 0 -_0804202C: .4byte 0x0000018f -_08042030: - ldr r1, _0804203C - movs r2, 0x1 - bl sub_804151C -_08042038: - pop {r0} - bx r0 - .align 2, 0 -_0804203C: .4byte 0x00000191 - thumb_func_end sub_804201C - - thumb_func_start sub_8042040 -sub_8042040: - push {lr} - cmp r1, 0 - bne _08042052 - movs r1, 0xC6 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - b _0804205A -_08042052: - movs r1, 0xD - movs r2, 0x1 - bl sub_804151C -_0804205A: - pop {r0} - bx r0 - thumb_func_end sub_8042040 - - thumb_func_start sub_8042060 -sub_8042060: - push {lr} - cmp r1, 0 - bne _08042074 - ldr r1, _08042070 - movs r2, 0x1 - bl sub_804151C - b _0804207C - .align 2, 0 -_08042070: .4byte 0x0000018d -_08042074: - movs r1, 0xE - movs r2, 0x1 - bl sub_804151C -_0804207C: - pop {r0} - bx r0 - thumb_func_end sub_8042060 - - thumb_func_start sub_8042080 -sub_8042080: - push {lr} - cmp r1, 0 - bne _08042092 - movs r1, 0xC6 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - b _0804209A -_08042092: - movs r1, 0xD - movs r2, 0x1 - bl sub_804151C -_0804209A: - pop {r0} - bx r0 - thumb_func_end sub_8042080 - - thumb_func_start sub_80420A0 -sub_80420A0: - push {lr} - ldr r1, _080420B0 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_080420B0: .4byte 0x00000143 - thumb_func_end sub_80420A0 - - thumb_func_start nullsub_91 -nullsub_91: - bx lr - thumb_func_end nullsub_91 - - thumb_func_start sub_80420B8 -sub_80420B8: - push {lr} - movs r1, 0x19 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_80420B8 - - thumb_func_start sub_80420C8 -sub_80420C8: - push {lr} - sub sp, 0x8 - movs r1, 0x2 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x15 - movs r2, 0x1 - movs r3, 0x3 - bl sub_8041550 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_80420C8 - - thumb_func_start nullsub_92 -nullsub_92: - bx lr - thumb_func_end nullsub_92 - - thumb_func_start sub_80420E8 -sub_80420E8: - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, [r1, 0x8] - ldr r0, _0804211C - ldr r0, [r0] - ldr r2, _08042120 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08042106 - adds r0, r1, 0 - bl sub_806F62C - adds r1, r0, 0 -_08042106: - cmp r1, 0x1 - beq _08042124 - cmp r1, 0x1 - bcc _08042116 - cmp r1, 0x2 - beq _08042128 - cmp r1, 0x3 - beq _0804212C -_08042116: - movs r1, 0x8 - b _0804212E - .align 2, 0 -_0804211C: .4byte gUnknown_203B418 -_08042120: .4byte 0x0000016d -_08042124: - movs r1, 0x9 - b _0804212E -_08042128: - movs r1, 0xA - b _0804212E -_0804212C: - movs r1, 0xB -_0804212E: - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl sub_8041550 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80420E8 - - thumb_func_start sub_8042148 -sub_8042148: - push {r4,lr} - adds r4, r0, 0 - ldr r1, _08042164 - bl sub_80421C0 - movs r1, 0x9F - lsls r1, 1 - adds r0, r4, 0 - movs r2, 0x1 - bl sub_804151C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08042164: .4byte 0x000001a7 - thumb_func_end sub_8042148 - - thumb_func_start nullsub_93 -nullsub_93: - bx lr - thumb_func_end nullsub_93 - - thumb_func_start sub_804216C -sub_804216C: - push {lr} - adds r0, r1, 0 - cmp r2, 0x1 - bne _0804217E - movs r1, 0xF8 - movs r2, 0x1 - bl sub_804151C - b _08042186 -_0804217E: - movs r1, 0xF9 - movs r2, 0x1 - bl sub_804151C -_08042186: - pop {r0} - bx r0 - thumb_func_end sub_804216C - - thumb_func_start sub_804218C -sub_804218C: - push {lr} - adds r0, r1, 0 - movs r1, 0x2A - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_804218C - - thumb_func_start sub_804219C -sub_804219C: - push {lr} - movs r1, 0x90 - movs r2, 0x1 - bl sub_80416E0 - pop {r0} - bx r0 - thumb_func_end sub_804219C - - thumb_func_start sub_80421AC -sub_80421AC: - push {lr} - adds r0, r1, 0 - ldr r1, _080421BC - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_080421BC: .4byte 0x00000167 - thumb_func_end sub_80421AC - - thumb_func_start sub_80421C0 -sub_80421C0: - push {r4,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r0, r1, 16 - adds r4, r0, 0 - cmp r2, 0 - bne _080421D4 - bl sub_8083E38 - b _080421E6 -_080421D4: - adds r0, r2, 0 - bl sub_8042768 - lsls r0, 24 - cmp r0, 0 - beq _080421E6 - adds r0, r4, 0 - bl sub_8083E38 -_080421E6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80421C0 - - thumb_func_start sub_80421EC -sub_80421EC: - push {r4,lr} - lsls r1, 16 - lsrs r4, r1, 16 - bl sub_803F428 - lsls r0, 24 - cmp r0, 0 - beq _08042202 - adds r0, r4, 0 - bl sub_8083E38 -_08042202: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80421EC - - thumb_func_start sub_8042208 -sub_8042208: - push {lr} - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - bne _0804221C - movs r0, 0xA9 - lsls r0, 1 - bl sub_8083E38 - b _08042234 -_0804221C: - cmp r1, 0x1 - bne _0804222C - ldr r0, _08042228 - bl sub_8083E38 - b _08042234 - .align 2, 0 -_08042228: .4byte 0x00000151 -_0804222C: - movs r0, 0xA8 - lsls r0, 1 - bl sub_8083E38 -_08042234: - pop {r0} - bx r0 - thumb_func_end sub_8042208 - - thumb_func_start sub_8042238 -sub_8042238: - push {lr} - ldr r0, [r1, 0x70] - ldrb r0, [r0, 0x6] - cmp r0, 0 - beq _08042250 - ldr r0, _0804224C - bl sub_8083E38 - b _08042258 - .align 2, 0 -_0804224C: .4byte 0x00000157 -_08042250: - movs r0, 0xAB - lsls r0, 1 - bl sub_8083E38 -_08042258: - pop {r0} - bx r0 - thumb_func_end sub_8042238 - - thumb_func_start sub_804225C -sub_804225C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r4, r2, 24 - adds r7, r4, 0 - cmp r4, 0x11 - bne _08042274 - b _08042384 -_08042274: - adds r0, r5, 0 - bl sub_803F428 - lsls r0, 24 - cmp r0, 0 - bne _08042282 - b _08042384 -_08042282: - adds r0, r4, 0 - bl sub_800EF28 - bl sub_800EF64 - movs r0, 0x4 - movs r1, 0x42 - bl sub_803E708 - movs r0, 0 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1 - cmp r0, 0 - bge _080422AA - adds r0, 0xFF -_080422AA: - lsls r0, 8 - lsrs r0, 16 - ldr r1, _080422FC - ldr r2, [sp] - ands r2, r1 - orrs r2, r0 - str r2, [sp] - movs r0, 0x2 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - movs r1, 0x80 - lsls r1, 5 - adds r0, r1 - cmp r0, 0 - bge _080422CE - adds r0, 0xFF -_080422CE: - lsls r0, 8 - lsrs r0, 16 - lsls r0, 16 - ldr r1, _08042300 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - adds r0, r4, 0 - mov r1, sp - bl sub_800E448 - adds r6, r0, 0 - cmp r4, 0x4 - bne _08042308 - ldr r1, _08042304 - movs r0, 0 - bl sub_80421C0 - movs r0, 0x28 - movs r1, 0x33 - bl sub_803E708 - b _08042360 - .align 2, 0 -_080422FC: .4byte 0xffff0000 -_08042300: .4byte 0x0000ffff -_08042304: .4byte 0x00000193 -_08042308: - cmp r7, 0x8 - bne _08042358 - mov r0, r8 - ldr r7, [r0, 0x70] - adds r0, r7, 0 - adds r0, 0x46 - ldrb r4, [r0] - movs r5, 0 - b _0804231C -_0804231A: - adds r5, 0x2 -_0804231C: - ldr r0, _08042354 - cmp r5, r0 - bgt _08042346 - subs r4, 0x1 - movs r0, 0x7 - ands r4, r0 - mov r0, r8 - movs r1, 0 - adds r2, r4, 0 - bl sub_806CDD4 - movs r0, 0x2 - movs r1, 0x33 - bl sub_803E708 - adds r0, r6, 0 - bl sub_800E9A8 - lsls r0, 24 - cmp r0, 0 - bne _0804231A -_08042346: - movs r0, 0x7 - ands r4, r0 - adds r0, r7, 0 - adds r0, 0x46 - strb r4, [r0] - b _08042360 - .align 2, 0 -_08042354: .4byte 0x000003e7 -_08042358: - movs r0, 0x28 - movs r1, 0x33 - bl sub_803E708 -_08042360: - movs r5, 0 - ldr r4, _08042368 - b _0804236E - .align 2, 0 -_08042368: .4byte 0x000003e7 -_0804236C: - adds r5, 0x1 -_0804236E: - cmp r5, r4 - bgt _08042384 - movs r0, 0x42 - bl sub_803E46C - adds r0, r6, 0 - bl sub_800E9A8 - lsls r0, 24 - cmp r0, 0 - bne _0804236C -_08042384: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804225C - - thumb_func_start sub_8042390 -sub_8042390: - push {r4-r6,lr} - sub sp, 0x18 - adds r5, r0, 0 - adds r4, r1, 0 - bl sub_8042768 - lsls r0, 24 - cmp r0, 0 - beq _08042454 - ldrb r1, [r4] - movs r0, 0x8 - ands r0, r1 - movs r6, 0 - cmp r0, 0 - bne _080423B0 - ldrb r6, [r4, 0x2] -_080423B0: - adds r0, r6, 0 - movs r1, 0 - bl sub_800EF40 - bl sub_800EF64 - movs r0, 0x4 - movs r1, 0x42 - bl sub_803E708 - ldr r0, [r5, 0xC] - cmp r0, 0 - bge _080423CC - adds r0, 0xFF -_080423CC: - lsls r0, 8 - lsrs r0, 16 - ldr r1, _08042428 - ldr r2, [sp, 0x14] - ands r2, r1 - orrs r2, r0 - str r2, [sp, 0x14] - ldr r0, [r5, 0x10] - cmp r0, 0 - bge _080423E2 - adds r0, 0xFF -_080423E2: - lsls r0, 8 - lsrs r0, 16 - lsls r0, 16 - ldr r4, _0804242C - ands r4, r2 - orrs r4, r0 - str r4, [sp, 0x14] - asrs r4, 16 - ldr r0, _08042430 - ldr r0, [r0] - ldr r1, _08042434 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - subs r4, r0 - lsrs r0, r4, 31 - adds r4, r0 - asrs r4, 1 - adds r4, 0x1 - adds r1, r5, 0 - adds r1, 0x28 - add r0, sp, 0x4 - bl sub_8005700 - add r1, sp, 0x14 - str r4, [sp] - adds r0, r6, 0 - add r2, sp, 0x4 - movs r3, 0 - bl sub_800E49C - adds r5, r0, 0 - movs r4, 0 - ldr r6, _08042438 - b _0804243E - .align 2, 0 -_08042428: .4byte 0xffff0000 -_0804242C: .4byte 0x0000ffff -_08042430: .4byte gUnknown_203B418 -_08042434: .4byte 0x000181f2 -_08042438: .4byte 0x000003e7 -_0804243C: - adds r4, 0x1 -_0804243E: - cmp r4, r6 - bgt _08042454 - movs r0, 0x42 - bl sub_803E46C - adds r0, r5, 0 - bl sub_800E9A8 - lsls r0, 24 - cmp r0, 0 - bne _0804243C -_08042454: - add sp, 0x18 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8042390 - - thumb_func_start sub_804245C -sub_804245C: - push {r4-r6,lr} - sub sp, 0x18 - adds r5, r0, 0 - adds r4, r1, 0 - bl sub_8042768 - lsls r0, 24 - cmp r0, 0 - beq _08042518 - ldrb r1, [r4] - movs r0, 0x8 - ands r0, r1 - movs r6, 0 - cmp r0, 0 - bne _0804247C - ldrb r6, [r4, 0x2] -_0804247C: - bl sub_800EF64 - movs r0, 0x4 - movs r1, 0x42 - bl sub_803E708 - ldr r0, [r5, 0xC] - cmp r0, 0 - bge _08042490 - adds r0, 0xFF -_08042490: - lsls r0, 8 - lsrs r0, 16 - ldr r1, _080424EC - ldr r2, [sp, 0x14] - ands r2, r1 - orrs r2, r0 - str r2, [sp, 0x14] - ldr r0, [r5, 0x10] - cmp r0, 0 - bge _080424A6 - adds r0, 0xFF -_080424A6: - lsls r0, 8 - lsrs r0, 16 - lsls r0, 16 - ldr r4, _080424F0 - ands r4, r2 - orrs r4, r0 - str r4, [sp, 0x14] - asrs r4, 16 - ldr r0, _080424F4 - ldr r0, [r0] - ldr r1, _080424F8 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - subs r4, r0 - lsrs r0, r4, 31 - adds r4, r0 - asrs r4, 1 - adds r4, 0x1 - adds r1, r5, 0 - adds r1, 0x28 - add r0, sp, 0x4 - bl sub_8005700 - add r1, sp, 0x14 - str r4, [sp] - adds r0, r6, 0 - add r2, sp, 0x4 - movs r3, 0x1 - bl sub_800E49C - adds r5, r0, 0 - movs r4, 0 - ldr r6, _080424FC - b _08042502 - .align 2, 0 -_080424EC: .4byte 0xffff0000 -_080424F0: .4byte 0x0000ffff -_080424F4: .4byte gUnknown_203B418 -_080424F8: .4byte 0x000181f2 -_080424FC: .4byte 0x000003e7 -_08042500: - adds r4, 0x1 -_08042502: - cmp r4, r6 - bgt _08042518 - movs r0, 0x42 - bl sub_803E46C - adds r0, r5, 0 - bl sub_800E9A8 - lsls r0, 24 - cmp r0, 0 - bne _08042500 -_08042518: - add sp, 0x18 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_804245C - - thumb_func_start sub_8042520 -sub_8042520: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - adds r4, r0, 0 - bl sub_8045888 - lsls r0, 24 - cmp r0, 0 - bne _0804253A - b _08042664 -_0804253A: - ldr r0, [r4, 0x70] - adds r0, 0x46 - ldrb r5, [r0] - ldr r0, [r4, 0xC] - cmp r0, 0 - bge _08042548 - adds r0, 0xFF -_08042548: - lsls r0, 8 - lsrs r0, 16 - ldr r1, _0804264C - ldr r2, [sp, 0x2C] - ands r2, r1 - orrs r2, r0 - str r2, [sp, 0x2C] - ldr r0, [r4, 0x10] - cmp r0, 0 - bge _0804255E - adds r0, 0xFF -_0804255E: - lsls r0, 8 - lsrs r0, 16 - lsls r0, 16 - ldr r1, _08042650 - ands r1, r2 - orrs r1, r0 - str r1, [sp, 0x2C] - asrs r1, 16 - ldr r0, _08042654 - ldr r0, [r0] - ldr r2, _08042658 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - subs r1, r0 - lsrs r0, r1, 31 - adds r1, r0 - asrs r7, r1, 1 - ldr r0, _0804265C - str r0, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - str r5, [sp, 0xC] - add r1, sp, 0x4 - add r4, sp, 0x2C - ldrh r0, [r4] - strh r0, [r1, 0xC] - ldr r0, [sp, 0x2C] - asrs r0, 16 - strh r0, [r1, 0xE] - adds r0, r1, 0 - strh r2, [r0, 0x10] - strh r2, [r0, 0x12] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0x18] - str r7, [sp, 0x1C] - add r0, sp, 0x20 - bl sub_8004E8C - add r0, sp, 0x4 - movs r1, 0 - bl sub_8041764 - adds r6, r0, 0 - mov r10, r4 - lsls r1, r5, 2 - mov r0, sp - adds r0, 0x30 - str r0, [sp, 0x38] - ldr r0, _08042660 - adds r5, r1, r0 - movs r1, 0x5 - mov r8, r1 - mov r9, r10 -_080425CC: - movs r0, 0 - str r0, [sp] - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0 - adds r3, r7, 0 - bl sub_800E8AC - movs r0, 0x42 - bl sub_803E46C - movs r2, 0 - ldrsh r0, [r5, r2] - lsls r0, 2 - mov r1, r9 - ldrh r1, [r1] - adds r0, r1 - mov r2, r9 - strh r0, [r2] - movs r0, 0x2 - ldrsh r1, [r5, r0] - lsls r1, 2 - ldrh r0, [r4, 0x2] - adds r0, r1 - strh r0, [r4, 0x2] - movs r2, 0x2 - ldrsh r1, [r4, r2] - ldr r0, _08042654 - ldr r0, [r0] - ldr r2, _08042658 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - subs r1, r0 - lsrs r0, r1, 31 - adds r1, r0 - asrs r7, r1, 1 - movs r0, 0x1 - negs r0, r0 - add r8, r0 - mov r1, r8 - cmp r1, 0 - bge _080425CC - bl sub_800DBBC - mov r2, r10 - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r0, 8 - str r0, [sp, 0x30] - add r0, sp, 0x2C - movs r2, 0x2 - ldrsh r0, [r0, r2] - lsls r0, 8 - ldr r1, [sp, 0x38] - str r0, [r1, 0x4] - movs r1, 0xD0 - lsls r1, 1 - ldr r0, [sp, 0x38] - movs r2, 0x1 - bl sub_80416E0 - adds r6, r0, 0 - b _08042668 - .align 2, 0 -_0804264C: .4byte 0xffff0000 -_08042650: .4byte 0x0000ffff -_08042654: .4byte gUnknown_203B418 -_08042658: .4byte 0x000181f2 -_0804265C: .4byte 0x00000165 -_08042660: .4byte gUnknown_80F4448 -_08042664: - movs r6, 0x1 - negs r6, r6 -_08042668: - adds r0, r6, 0 - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8042520 - - thumb_func_start sub_804267C -sub_804267C: - push {r4,lr} - ldr r4, _080426B8 - bl sub_8043D10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08042694 - cmp r0, 0 - blt _08042694 - cmp r0, 0x2 - ble _080426AC -_08042694: - ldr r0, _080426BC - ldr r0, [r0] - ldr r1, _080426C0 - adds r0, r1 - ldrb r0, [r0] - bl GetStairDirection - lsls r0, 24 - ldr r4, _080426C4 - cmp r0, 0 - beq _080426AC - subs r4, 0x1 -_080426AC: - adds r0, r4, 0 - bl sub_8083E38 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080426B8: .4byte 0x000003e5 -_080426BC: .4byte gUnknown_203B418 -_080426C0: .4byte 0x00000644 -_080426C4: .4byte 0x00000155 - thumb_func_end sub_804267C - - thumb_func_start sub_80426C8 -sub_80426C8: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - cmp r4, 0x3 - bne _080426D8 - movs r0, 0 - bl sub_8083E88 -_080426D8: - cmp r5, 0x4 - beq _080426F0 - ldr r0, _080426EC - lsls r1, r4, 1 - adds r1, r0 - ldrh r0, [r1] - bl sub_8083E38 - b _080426FC - .align 2, 0 -_080426EC: .4byte gUnknown_80F67DC -_080426F0: - ldr r0, _08042708 - lsls r1, r4, 1 - adds r1, r0 - ldrh r0, [r1] - bl sub_8083E38 -_080426FC: - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x80 - bl sub_8042B34 - b _08042712 - .align 2, 0 -_08042708: .4byte gUnknown_80F67E4 -_0804270C: - movs r0, 0x46 - bl sub_803E46C -_08042712: - bl sub_8042CC0 - lsls r0, 24 - cmp r0, 0 - bne _0804270C - bl sub_8042D7C - bl sub_8040238 - movs r0, 0x1 - bl sub_8052210 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80426C8 - - thumb_func_start sub_8042730 -sub_8042730: - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x8 - movs r2, 0x8 - bl sub_806CDD4 - movs r5, 0 - b _08042742 -_08042740: - adds r5, 0x1 -_08042742: - cmp r5, 0x63 - bgt _08042760 - movs r0, 0x51 - bl sub_803E46C - ldr r0, [r4, 0x40] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08042760 - adds r0, r4, 0 - adds r0, 0x6B - ldrb r0, [r0] - cmp r0, 0x8 - beq _08042740 -_08042760: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8042730 - - thumb_func_start sub_8042768 -sub_8042768: - push {lr} - adds r1, r0, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - bne _08042778 -_08042774: - movs r0, 0 - b _080427A6 -_08042778: - ldr r0, _08042794 - ldr r2, [r0] - ldr r3, _08042798 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _0804279C - subs r3, 0x12 - adds r0, r2, r3 - ldr r0, [r0] - cmp r0, r1 - bne _08042774 - movs r0, 0x1 - b _080427A6 - .align 2, 0 -_08042794: .4byte gUnknown_203B418 -_08042798: .4byte 0x0001820a -_0804279C: - adds r0, r1, 0 - bl sub_8045888 - lsls r0, 24 - lsrs r0, 24 -_080427A6: - pop {r1} - bx r1 - thumb_func_end sub_8042768 - - thumb_func_start sub_80427AC -sub_80427AC: - push {r4-r6,lr} - movs r6, 0 -_080427B0: - ldr r0, _08042808 - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _0804280C - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080427FA - ldr r5, [r4, 0x70] - adds r1, r5, 0 - adds r1, 0xF3 - ldrb r0, [r1] - cmp r0, 0 - beq _080427FA - movs r0, 0 - strb r0, [r1] - adds r0, r4, 0 - bl sub_80429A0 - ldrb r0, [r5, 0x6] - cmp r0, 0 - bne _080427FA - ldr r0, _08042810 - adds r1, r4, 0 - movs r2, 0 - bl sub_8045B94 - ldr r0, _08042814 - ldr r1, [r0] - adds r0, r4, 0 - bl sub_805239C -_080427FA: - adds r6, 0x1 - cmp r6, 0x13 - ble _080427B0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08042808: .4byte gUnknown_203B418 -_0804280C: .4byte 0x000135cc -_08042810: .4byte gUnknown_202DF98 -_08042814: .4byte gUnknown_8100270 - thumb_func_end sub_80427AC - - thumb_func_start sub_8042818 -sub_8042818: - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _08042874 - ldr r0, [r0] - ldr r1, _08042878 - adds r0, r1 - ldr r4, [r0] - cmp r4, 0 - bne _08042836 - bl sub_8083600 - adds r4, r0, 0 -_08042836: - ldr r1, _0804287C - lsls r0, r5, 1 - adds r2, r0, r1 - ldrh r1, [r2] - ldr r0, _08042880 - cmp r1, r0 - beq _0804284A - adds r0, r4, 0 - bl sub_80421C0 -_0804284A: - ldr r0, _08042884 - lsls r1, r5, 2 - adds r0, r1, r0 - ldr r5, [r0] - adds r6, r1, 0 - cmp r5, 0 - blt _08042896 - cmp r7, 0 - beq _08042888 - bl sub_80441BC - lsls r0, 24 - cmp r0, 0 - bne _08042888 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl sub_804151C - b _08042896 - .align 2, 0 -_08042874: .4byte gUnknown_203B418 -_08042878: .4byte 0x000181f8 -_0804287C: .4byte gUnknown_80F682C -_08042880: .4byte 0x000003e5 -_08042884: .4byte gUnknown_80F67EC -_08042888: - ldr r0, _0804289C - adds r0, r6, r0 - ldr r1, [r0] - adds r0, r4, 0 - movs r2, 0 - bl sub_804151C -_08042896: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804289C: .4byte gUnknown_80F680C - thumb_func_end sub_8042818 - - thumb_func_start sub_80428A0 -sub_80428A0: - push {lr} - movs r1, 0x29 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_80428A0 - - thumb_func_start sub_80428B0 -sub_80428B0: - push {lr} - ldr r1, _080428C0 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_080428C0: .4byte 0x000001a9 - thumb_func_end sub_80428B0 - - thumb_func_start sub_80428C4 -sub_80428C4: - push {lr} - ldr r1, _080428D4 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_080428D4: .4byte 0x000001a9 - thumb_func_end sub_80428C4 - - thumb_func_start sub_80428D8 -sub_80428D8: - push {lr} - ldr r1, _080428E8 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_080428E8: .4byte 0x000001a9 - thumb_func_end sub_80428D8 - - thumb_func_start sub_80428EC -sub_80428EC: - push {lr} - ldr r1, _080428FC - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_080428FC: .4byte 0x000001a9 - thumb_func_end sub_80428EC - - thumb_func_start sub_8042900 -sub_8042900: - push {lr} - movs r1, 0xD4 - lsls r1, 1 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8042900 - - thumb_func_start sub_8042910 -sub_8042910: - push {lr} - movs r1, 0x29 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8042910 - - thumb_func_start sub_8042920 -sub_8042920: - push {lr} - movs r1, 0x48 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8042920 - - thumb_func_start sub_8042930 -sub_8042930: - push {lr} - movs r1, 0xD3 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8042930 - - thumb_func_start sub_8042940 -sub_8042940: - push {lr} - movs r1, 0xC7 - lsls r1, 1 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8042940 - - thumb_func_start sub_8042950 -sub_8042950: - push {lr} - movs r1, 0xD8 - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - movs r0, 0xA - movs r1, 0x42 - bl sub_803E708 - pop {r0} - bx r0 - thumb_func_end sub_8042950 - - thumb_func_start sub_8042968 -sub_8042968: - push {lr} - movs r1, 0xD4 - lsls r1, 1 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8042968 - - thumb_func_start sub_8042978 -sub_8042978: - push {lr} - ldr r1, _08042988 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_08042988: .4byte 0x000001a9 - thumb_func_end sub_8042978 - - thumb_func_start sub_804298C -sub_804298C: - push {lr} - ldr r1, _0804299C - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_0804299C: .4byte 0x000001a9 - thumb_func_end sub_804298C - - thumb_func_start sub_80429A0 -sub_80429A0: - push {lr} - ldr r1, _080429B0 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_080429B0: .4byte 0x00000199 - thumb_func_end sub_80429A0 - - thumb_func_start sub_80429B4 -sub_80429B4: - push {lr} - ldr r1, _080429C4 - movs r2, 0 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_080429C4: .4byte 0x000001ab - thumb_func_end sub_80429B4 - - thumb_func_start sub_80429C8 -sub_80429C8: - push {lr} - movs r1, 0x4 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_80429C8 - - thumb_func_start sub_80429D8 -sub_80429D8: - push {lr} - movs r1, 0x8F - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_80429D8 - - thumb_func_start sub_80429E8 -sub_80429E8: - push {lr} - ldr r1, _080429F8 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - .align 2, 0 -_080429F8: .4byte 0x0000011d - thumb_func_end sub_80429E8 - - thumb_func_start sub_80429FC -sub_80429FC: - push {lr} - movs r1, 0xCF - lsls r1, 1 - movs r2, 0x1 - bl sub_80416A4 - movs r0, 0 - movs r1, 0xD4 - bl sub_80421C0 - pop {r0} - bx r0 - thumb_func_end sub_80429FC - - thumb_func_start sub_8042A14 -sub_8042A14: - push {lr} - movs r1, 0x36 - movs r2, 0x1 - bl sub_80416A4 - pop {r0} - bx r0 - thumb_func_end sub_8042A14 - - thumb_func_start sub_8042A24 -sub_8042A24: - push {lr} - movs r1, 0x15 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8042A24 - - thumb_func_start sub_8042A34 -sub_8042A34: - push {lr} - movs r1, 0x9F - lsls r1, 1 - movs r2, 0 - bl sub_80416A4 - pop {r0} - bx r0 - thumb_func_end sub_8042A34 - - thumb_func_start sub_8042A44 -sub_8042A44: - push {lr} - movs r1, 0xDA - lsls r1, 1 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8042A44 - - thumb_func_start sub_8042A54 -sub_8042A54: - push {lr} - movs r1, 0x37 - movs r2, 0x1 - bl sub_80416A4 - pop {r0} - bx r0 - thumb_func_end sub_8042A54 - - thumb_func_start sub_8042A64 -sub_8042A64: - push {lr} - movs r1, 0x29 - movs r2, 0x1 - bl sub_80416A4 - pop {r0} - bx r0 - thumb_func_end sub_8042A64 - - thumb_func_start sub_8042A74 -sub_8042A74: - push {lr} - movs r1, 0x18 - movs r2, 0x1 - bl sub_804151C - pop {r0} - bx r0 - thumb_func_end sub_8042A74 - - thumb_func_start sub_8042A84 -sub_8042A84: - push {r4-r7,lr} - adds r4, r1, 0 - adds r7, r2, 0 - lsls r0, 16 - asrs r5, r0, 16 - movs r6, 0x80 - lsls r6, 2 - adds r0, r4, 0 - bl sub_8042768 - lsls r0, 24 - cmp r0, 0 - beq _08042AF8 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl sub_804151C - adds r0, r7, 0 - movs r1, 0x42 - bl sub_803E708 - adds r5, r4, 0 - adds r5, 0x20 -_08042AB4: - ldr r1, [r4, 0x1C] - ldr r0, _08042B00 - cmp r1, r0 - bgt _08042AF0 - movs r0, 0x42 - bl sub_803E46C - ldr r1, [r4, 0x1C] - adds r1, r6 - str r1, [r4, 0x1C] - movs r0, 0x80 - lsls r0, 1 - adds r6, r0 - ldr r0, [r4, 0x10] - subs r0, r1 - cmp r0, 0 - bge _08042AD8 - adds r0, 0xFF -_08042AD8: - asrs r1, r0, 8 - ldr r0, _08042B04 - ldr r0, [r0] - ldr r2, _08042B08 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - subs r1, r0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - bge _08042AB4 -_08042AF0: - movs r0, 0 - strb r0, [r5] - bl sub_804178C -_08042AF8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08042B00: .4byte 0x0000c7ff -_08042B04: .4byte gUnknown_203B418 -_08042B08: .4byte 0x000181f2 - thumb_func_end sub_8042A84 - - thumb_func_start sub_8042B0C -sub_8042B0C: - push {lr} - adds r1, r0, 0 - movs r0, 0x9F - lsls r0, 1 - movs r2, 0x5 - bl sub_8042A84 - pop {r0} - bx r0 - thumb_func_end sub_8042B0C - - thumb_func_start sub_8042B20 -sub_8042B20: - push {lr} - adds r1, r0, 0 - movs r0, 0xDE - lsls r0, 1 - movs r2, 0xE - bl sub_8042A84 - pop {r0} - bx r0 - thumb_func_end sub_8042B20 - - thumb_func_start sub_8042B34 -sub_8042B34: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - movs r0, 0 - mov r8, r0 - bl sub_8085480 - mov r10, r0 - ldr r7, _08042CB0 - movs r0, 0xCC - movs r1, 0x7 - bl MemoryAlloc - str r0, [r7] - str r5, [r0] - adds r4, 0x1 - lsls r4, 2 - str r4, [r0, 0x8] - ldr r4, _08042CB4 - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 3 - adds r0, r4 - movs r1, 0 - ldrsh r0, [r0, r1] - bl sub_800EE5C - bl sub_800EF64 - movs r0, 0x46 - bl sub_803E46C - ldr r0, [r7] - str r6, [r0, 0x4] - movs r5, 0 - ldr r0, [r0, 0x8] - cmp r5, r0 - blt _08042B8E - b _08042C9E -_08042B8E: - mov r9, sp -_08042B90: - mov r2, r8 - lsls r6, r2, 3 - ldr r0, [r7] - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, r6, r0 - ldr r3, _08042CB4 - adds r0, r3 - movs r1, 0 - ldrsh r0, [r0, r1] - str r0, [sp] - str r5, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - mov r2, r10 - ldr r0, [r2, 0xC] - cmp r0, 0 - bge _08042BBA - adds r0, 0xFF -_08042BBA: - asrs r0, 8 - mov r3, r9 - strh r0, [r3, 0xC] - mov r1, sp - mov r2, r10 - ldr r0, [r2, 0x10] - cmp r0, 0 - bge _08042BCC - adds r0, 0xFF -_08042BCC: - asrs r0, 8 - strh r0, [r1, 0xE] - movs r0, 0x2 - bl RandomCapped - ldr r1, [r7] - lsls r4, r5, 2 - adds r3, r1, 0 - adds r3, 0x4C - adds r3, r4 - ldr r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r1, r6, r1 - ldr r2, _08042CB4 - adds r2, 0x4 - adds r1, r2 - ldr r1, [r1] - lsls r1, 1 - adds r1, r0 - str r1, [r3] - movs r0, 0xF0 - bl RandomCapped - ldr r1, [r7] - adds r1, r4 - adds r0, 0x98 - adds r1, 0x8C - strh r0, [r1] - lsls r0, r5, 1 - adds r0, 0x8 - bl RandomCapped - ldr r1, [r7] - adds r2, r1, r4 - adds r3, r0, 0 - adds r3, 0x18 - adds r1, r5, 0 - cmp r5, 0 - bge _08042C20 - adds r1, r5, 0x3 -_08042C20: - asrs r1, 2 - lsls r1, 2 - subs r1, r5, r1 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - subs r0, r3, r0 - adds r1, r2, 0 - adds r1, 0x8E - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x8C - ldrh r0, [r0] - mov r3, r9 - strh r0, [r3, 0x10] - ldrh r0, [r1] - strh r0, [r3, 0x12] - movs r0, 0x4 - str r0, [sp, 0x14] - ldr r0, _08042CB8 - str r0, [sp, 0x18] - add r1, sp, 0x1C - ldr r0, _08042CBC - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - mov r0, sp - bl sub_800E890 - ldr r2, [r7] - adds r1, r2, 0 - adds r1, 0xC - adds r1, r4 - str r0, [r1] - movs r6, 0x1 - add r8, r6 - mov r0, r8 - cmp r0, 0x2 - bgt _08042C82 - ldr r0, [r2] - lsls r1, r0, 1 - adds r1, r0 - add r1, r8 - lsls r1, 3 - ldr r2, _08042CB4 - adds r1, r2 - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _08042C86 -_08042C82: - movs r6, 0 - mov r8, r6 -_08042C86: - ldr r0, [sp] - bl sub_800ECA4 - ldr r0, [r0, 0x4] - bl sub_800F15C - adds r5, 0x1 - ldr r0, [r7] - ldr r0, [r0, 0x8] - cmp r5, r0 - bge _08042C9E - b _08042B90 -_08042C9E: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08042CB0: .4byte gUnknown_203B414 -_08042CB4: .4byte gUnknown_80F6624 -_08042CB8: .4byte 0x0000ffff -_08042CBC: .4byte gUnknown_80F683C - thumb_func_end sub_8042B34 - - thumb_func_start sub_8042CC0 -sub_8042CC0: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r7, 0 - ldr r2, _08042D20 - ldr r1, [r2] - ldr r0, [r1, 0x4] - cmp r0, 0 - beq _08042CDC - movs r7, 0x1 - subs r0, 0x1 - str r0, [r1, 0x4] -_08042CDC: - movs r5, 0 - ldr r0, [r2] - ldr r0, [r0, 0x8] - cmp r5, r0 - bge _08042D56 - adds r6, r2, 0 - movs r0, 0x98 - negs r0, r0 - mov r9, r0 - movs r4, 0 - ldr r1, _08042D24 - mov r8, r1 -_08042CF4: - ldr r3, [r6] - adds r0, r3, r4 - adds r2, r0, 0 - adds r2, 0x8C - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r4 - ldr r1, [r0] - ldrh r0, [r2] - subs r0, r1 - strh r0, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, r9 - bgt _08042D2E - ldr r0, [r3, 0x4] - cmp r0, 0 - ble _08042D28 - movs r0, 0x98 - strh r0, [r2] - b _08042D30 - .align 2, 0 -_08042D20: .4byte gUnknown_203B414 -_08042D24: .4byte 0x0000ff68 -_08042D28: - mov r0, r8 - strh r0, [r2] - b _08042D30 -_08042D2E: - movs r7, 0x1 -_08042D30: - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0xC - adds r0, r4 - ldr r0, [r0] - adds r1, r4, 0 - adds r1, 0x8C - adds r2, r1 - movs r1, 0 - str r1, [sp] - movs r3, 0 - bl sub_800E8AC - adds r4, 0x4 - adds r5, 0x1 - ldr r0, [r6] - ldr r0, [r0, 0x8] - cmp r5, r0 - blt _08042CF4 -_08042D56: - ldr r0, _08042D74 - ldr r0, [r0] - ldr r1, _08042D78 - adds r0, r1 - bl sub_800E90C - adds r0, r7, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08042D74: .4byte gUnknown_203B418 -_08042D78: .4byte 0x000181f0 - thumb_func_end sub_8042CC0 - - thumb_func_start sub_8042D7C -sub_8042D7C: - push {r4-r6,lr} - ldr r1, _08042DD0 - ldr r0, [r1] - cmp r0, 0 - beq _08042DCA - movs r5, 0 - ldr r0, [r0, 0x8] - cmp r5, r0 - bge _08042DBA - adds r6, r1, 0 -_08042D90: - ldr r0, [r6] - lsls r4, r5, 2 - adds r0, 0xC - adds r0, r4 - ldr r0, [r0] - bl sub_800E9A8 - lsls r0, 24 - cmp r0, 0 - beq _08042DB0 - ldr r0, [r6] - adds r0, 0xC - adds r0, r4 - ldr r0, [r0] - bl sub_800DC14 -_08042DB0: - adds r5, 0x1 - ldr r0, [r6] - ldr r0, [r0, 0x8] - cmp r5, r0 - blt _08042D90 -_08042DBA: - bl sub_800DBBC - ldr r4, _08042DD0 - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_08042DCA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08042DD0: .4byte gUnknown_203B414 - thumb_func_end sub_8042D7C - - thumb_func_start sub_8042DD4 -sub_8042DD4: - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - adds r7, r2, 0 - movs r2, 0 - ldr r0, _08042E04 - mov r12, r0 - ldr r3, _08042E08 -_08042DE4: - mov r1, r12 - ldr r0, [r1] - adds r4, r0, r3 - ldr r1, [r4] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _08042E0C - str r5, [r4] - str r6, [r4, 0xC] - str r7, [r4, 0x4] - adds r0, r5, 0 - bl sub_800E6D8 - str r0, [r4, 0x8] - b _08042E14 - .align 2, 0 -_08042E04: .4byte gUnknown_203B418 -_08042E08: .4byte 0x000005c4 -_08042E0C: - adds r3, 0x10 - adds r2, 0x1 - cmp r2, 0x2 - ble _08042DE4 -_08042E14: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8042DD4 - - thumb_func_start sub_8042E1C -sub_8042E1C: - push {r4-r6,lr} - movs r5, 0 - ldr r6, _08042E44 - ldr r4, _08042E48 -_08042E24: - ldr r0, [r6] - adds r0, r4 - ldr r1, [r0] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08042E4C - adds r0, r1, 0 - bl sub_800E9A8 - lsls r0, 24 - cmp r0, 0 - beq _08042E4C - movs r0, 0x1 - b _08042E56 - .align 2, 0 -_08042E44: .4byte gUnknown_203B418 -_08042E48: .4byte 0x000005c4 -_08042E4C: - adds r4, 0x10 - adds r5, 0x1 - cmp r5, 0x2 - ble _08042E24 - movs r0, 0 -_08042E56: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8042E1C - - thumb_func_start sub_8042E5C -sub_8042E5C: - push {r4-r7,lr} - ldr r7, _08042E90 - ldr r6, _08042E94 - movs r5, 0x2 -_08042E64: - ldr r0, [r7] - adds r4, r0, r6 - ldr r0, [r4] - cmp r0, 0 - blt _08042E82 - bl sub_800E9A8 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08042E82 - movs r0, 0x1 - negs r0, r0 - str r0, [r4] - str r1, [r4, 0xC] -_08042E82: - adds r6, 0x10 - subs r5, 0x1 - cmp r5, 0 - bge _08042E64 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08042E90: .4byte gUnknown_203B418 -_08042E94: .4byte 0x000005c4 - thumb_func_end sub_8042E5C - - thumb_func_start sub_8042E98 -sub_8042E98: - push {r4,r5,lr} - ldr r5, _08042EC0 - movs r4, 0x1 - negs r4, r4 - movs r3, 0 - ldr r2, _08042EC4 - movs r1, 0x2 -_08042EA6: - ldr r0, [r5] - adds r0, r2 - str r4, [r0] - str r3, [r0, 0x4] - str r3, [r0, 0xC] - adds r2, 0x10 - subs r1, 0x1 - cmp r1, 0 - bge _08042EA6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08042EC0: .4byte gUnknown_203B418 -_08042EC4: .4byte 0x000005c4 - thumb_func_end sub_8042E98 - - thumb_func_start sub_8042EC8 -sub_8042EC8: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r6, r0, 0 - mov r8, r1 - movs r7, 0 -_08042ED6: - ldr r1, _08042F5C - lsls r0, r7, 4 - ldr r2, _08042F60 - adds r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - ldr r0, [r4] - cmp r0, 0 - blt _08042F4A - ldr r0, [r4, 0xC] - cmp r0, r6 - bne _08042F4A - ldr r0, [r6, 0xC] - cmp r0, 0 - bge _08042EF6 - adds r0, 0xFF -_08042EF6: - lsls r0, 8 - lsrs r0, 16 - ldr r1, _08042F64 - ldr r2, [sp, 0x8] - ands r2, r1 - orrs r2, r0 - str r2, [sp, 0x8] - ldr r1, [r6, 0x10] - cmp r1, 0 - bge _08042F0C - adds r1, 0xFF -_08042F0C: - lsls r1, 8 - lsrs r1, 16 - lsls r1, 16 - ldr r0, _08042F68 - ands r2, r0 - orrs r2, r1 - str r2, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0x4] - ldr r5, [r6, 0x70] - ldr r2, [r4, 0x8] - subs r0, 0x1 - cmp r2, r0 - beq _08042F36 - lsls r2, 24 - lsrs r2, 24 - add r0, sp, 0x4 - adds r1, r6, 0 - adds r1, 0x28 - bl sub_800569C -_08042F36: - ldr r0, [r4] - adds r1, r5, 0 - adds r1, 0x46 - ldrb r1, [r1] - str r1, [sp] - add r1, sp, 0x8 - add r2, sp, 0x4 - mov r3, r8 - bl sub_800EB24 -_08042F4A: - adds r7, 0x1 - cmp r7, 0x2 - ble _08042ED6 - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08042F5C: .4byte gUnknown_203B418 -_08042F60: .4byte 0x000005c4 -_08042F64: .4byte 0xffff0000 -_08042F68: .4byte 0x0000ffff - thumb_func_end sub_8042EC8 - - thumb_func_start xxx_dungeon_8042F6C -xxx_dungeon_8042F6C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r8, r0 - ldr r1, _0804310C - movs r0, 0 - strb r0, [r1] - mov r0, r8 - ldrb r6, [r0, 0x8] - ldrb r1, [r0, 0x11] - mov r9, r1 - ldrb r2, [r0, 0x10] - mov r10, r2 - ldr r0, _08043110 - mov r3, r8 - ldr r1, [r3, 0x74] - str r1, [r0] - ldr r2, _08043114 - ldr r0, [r3, 0x78] - str r0, [r2] - cmp r6, 0 - bne _08042FA0 - strb r6, [r1] -_08042FA0: - ldr r2, [r2] - movs r1, 0 - ldr r4, _08043118 - ldr r5, _0804311C - mov r0, sp - adds r0, 0x4 - str r0, [sp, 0x8] - mov r3, r8 - adds r3, 0x7C - str r3, [sp, 0xC] - movs r3, 0 -_08042FB6: - adds r0, r2, r1 - strb r3, [r0] - adds r1, 0x1 - cmp r1, r4 - bls _08042FB6 - movs r7, 0 - movs r0, 0x64 - strh r0, [r5] - cmp r6, 0 - bne _0804300C - ldr r4, _08043114 - ldr r0, [r4] - mov r5, r8 - ldrb r1, [r5, 0xF] - movs r2, 0xCF - lsls r2, 3 - adds r0, r2 - strb r1, [r0] - ldr r2, [r4] - ldr r3, _08043120 - adds r2, r3 - ldr r0, [r5, 0x14] - ldr r1, [r5, 0x18] - str r0, [r2] - str r1, [r2, 0x4] - ldrb r0, [r5, 0x4] - bl GetUnkC - ldr r1, [r4] - ldr r5, _08043124 - adds r2, r1, r5 - strh r0, [r2] - ldr r0, _08043128 - adds r1, r0 - strb r7, [r1] - mov r1, r8 - ldrb r0, [r1, 0x4] - bl GetUnk3 - ldr r1, [r4] - ldr r2, _0804312C - adds r1, r2 - strb r0, [r1] -_0804300C: - ldr r4, _08043114 - ldr r0, [r4] - movs r3, 0xD3 - lsls r3, 3 - adds r0, r3 - strb r7, [r0] - ldr r0, [r4] - ldr r5, _08043130 - adds r0, r5 - strb r7, [r0] - ldr r0, [r4] - mov r2, r8 - ldrb r1, [r2, 0x9] - subs r3, 0x3C - adds r0, r3 - strb r1, [r0] - ldr r0, [r4] - ldrb r1, [r2, 0xC] - subs r5, 0x3F - adds r0, r5 - strb r1, [r0] - ldr r0, [r4] - ldrb r1, [r2, 0xA] - movs r2, 0xCB - lsls r2, 3 - adds r0, r2 - strb r1, [r0] - ldr r0, [r4] - mov r3, r8 - ldrb r1, [r3, 0xB] - subs r5, 0x1 - adds r0, r5 - strb r1, [r0] - ldr r0, [r4] - ldrb r1, [r3, 0xD] - adds r2, 0x3 - adds r0, r2 - strb r1, [r0] - ldr r0, [r4] - ldrb r1, [r3, 0xE] - ldr r3, _08043134 - adds r0, r3 - strb r1, [r0] - bl sub_8083F34 - bl sub_803D4AC - bl sub_804513C - bl sub_8043CD8 - bl sub_80495E4 - bl sub_803E250 - bl sub_8040130 - bl sub_8040124 - movs r0, 0x1 - bl sub_803F27C - ldr r1, _08043138 - ldr r5, _0804313C - adds r0, r5, 0 - strh r0, [r1] - movs r0, 0x1 - movs r1, 0x14 - bl sub_80095CC - movs r0, 0 - bl sub_800DAC0 - movs r0, 0x1 - bl xxx_update_some_bg_tiles - bl sub_803DF60 - bl sub_803E02C - bl sub_8042E98 - ldr r0, _08043140 - strb r7, [r0] - cmp r6, 0 - beq _080430C8 - ldr r0, _08043110 - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 7 - bl sub_8081BF4 - bl sub_8049840 -_080430C8: - mov r0, r9 - cmp r0, 0 - beq _080430D2 - bl sub_8043D60 -_080430D2: - cmp r6, 0 - beq _080430D8 - b _080431DC -_080430D8: - ldr r0, [r4] - ldr r1, _08043144 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r4] - ldr r2, _08043148 - adds r0, r2 - strb r1, [r0] - ldr r2, [r4] - movs r3, 0xCF - lsls r3, 3 - adds r0, r2, r3 - ldrb r3, [r0] - cmp r3, 0x1 - bne _08043154 - mov r5, r8 - ldrb r1, [r5, 0x14] - ldr r5, _0804314C - adds r0, r2, r5 - strb r1, [r0] - ldr r0, [r4] - ldr r1, _08043150 - adds r0, r1 - strb r3, [r0] - b _0804315E - .align 2, 0 -_0804310C: .4byte gUnknown_203B40C -_08043110: .4byte gUnknown_203B41C -_08043114: .4byte gUnknown_203B418 -_08043118: .4byte 0x0001cedb -_0804311C: .4byte gUnknown_203B410 -_08043120: .4byte 0x0000064c -_08043124: .4byte 0x00000666 -_08043128: .4byte 0x0000067a -_0804312C: .4byte 0x0000067b -_08043130: .4byte 0x00000699 -_08043134: .4byte 0x0000065d -_08043138: .4byte gUnknown_2026E4E -_0804313C: .4byte 0x00000808 -_08043140: .4byte gUnknown_202F32C -_08043144: .4byte 0x0001820b -_08043148: .4byte 0x0001820c -_0804314C: .4byte 0x00000644 -_08043150: .4byte 0x00000645 -_08043154: - ldr r3, _0804318C - adds r1, r2, r3 - mov r5, r8 - ldr r0, [r5, 0x4] - str r0, [r1] -_0804315E: - ldr r4, _08043190 - ldr r0, [r4] - ldr r1, _08043194 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - bl sub_8044124 - cmp r6, 0 - bne _080431DC - ldr r1, [r4] - movs r2, 0xCF - lsls r2, 3 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0804319C - ldr r3, _08043198 - adds r1, r3 - mov r5, r8 - ldr r0, [r5, 0x18] - str r0, [r1] - b _080431AC - .align 2, 0 -_0804318C: .4byte 0x00000644 -_08043190: .4byte gUnknown_203B418 -_08043194: .4byte 0x00000674 -_08043198: .4byte 0x0000067c -_0804319C: - bl Random - ldr r2, [r4] - ldr r1, _08043208 - adds r2, r1 - ldr r1, _0804320C - ands r1, r0 - str r1, [r2] -_080431AC: - ldr r4, _08043210 - ldr r0, [r4] - ldr r2, _08043208 - adds r0, r2 - ldr r0, [r0] - bl sub_808408C - cmp r6, 0 - bne _080431DC - bl sub_80980A4 - lsls r0, 24 - cmp r0, 0 - bne _080431D8 - ldr r0, [r4] - ldr r3, _08043214 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _080431D8 - bl sub_8043FD0 -_080431D8: - bl sub_806890C -_080431DC: - mov r5, r9 - cmp r5, 0 - beq _08043230 - ldr r1, _08043218 - ldr r0, _08043210 - ldr r0, [r0] - ldr r2, _0804321C - adds r0, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - str r0, [r1] - cmp r0, 0 - beq _08043224 - ldr r0, _08043220 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - b _08043230 - .align 2, 0 -_08043208: .4byte 0x0000067c -_0804320C: .4byte 0x00ffffff -_08043210: .4byte gUnknown_203B418 -_08043214: .4byte 0x00000644 -_08043218: .4byte gUnknown_202DE30 -_0804321C: .4byte 0x0000067b -_08043220: .4byte gUnknown_80FEC48 -_08043224: - ldr r0, _080432B4 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage -_08043230: - mov r3, r10 - cmp r3, 0 - beq _0804326A - mov r1, r8 - adds r1, 0x44 - movs r0, 0 - strb r0, [r1] - ldr r0, _080432B8 - ldr r0, [r0] - ldr r5, _080432BC - adds r0, r5 - ldrb r0, [r0] - bl GetLevelCondition - lsls r0, 24 - mov r4, r8 - adds r4, 0x1C - cmp r0, 0 - beq _0804325C - adds r0, r4, 0 - bl sub_808D0D8 -_0804325C: - adds r0, r4, 0 - bl sub_8068A84 - cmp r6, 0 - beq _0804326A - bl sub_806B404 -_0804326A: - bl sub_8068614 - cmp r6, 0 - bne _080432F4 - ldr r0, _080432B8 - ldr r0, [r0] - movs r1, 0xCF - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080432F4 - mov r0, sp - bl sub_8099394 - lsls r0, 24 - cmp r0, 0 - beq _080432F4 - mov r0, sp - ldrb r0, [r0] - bl sub_8095228 - adds r2, r0, 0 - adds r2, 0x2C - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - beq _080432E8 - ldr r1, _080432C0 - str r0, [r1] - ldr r0, _080432C4 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - b _080432F4 - .align 2, 0 -_080432B4: .4byte gUnknown_80FEC7C -_080432B8: .4byte gUnknown_203B418 -_080432BC: .4byte 0x00000644 -_080432C0: .4byte gUnknown_202DE30 -_080432C4: .4byte gUnknown_81002B8 -_080432C8: - ldr r4, _080432CC - b _080432D2 - .align 2, 0 -_080432CC: .4byte 0x00000226 -_080432D0: - ldr r4, _080432E4 -_080432D2: - bl sub_8083600 - adds r2, r0, 0 - adds r0, r4, 0 - movs r1, 0 - bl sub_8083AB0 - bl _08043AF4 - .align 2, 0 -_080432E4: .4byte 0x00000227 -_080432E8: - ldr r0, _080434B8 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage -_080432F4: - movs r2, 0 - mov r10, r2 - movs r3, 0 - mov r9, r3 -_080432FC: - bl sub_8098080 - bl nullsub_16 - bl sub_80521D0 - bl sub_80531A8 - bl sub_800F690 - cmp r6, 0 - bne _08043318 - bl sub_804513C -_08043318: - ldr r0, _080434BC - movs r5, 0 - str r5, [r0] - ldr r4, _080434C0 - ldr r0, [r4] - strb r5, [r0] - cmp r6, 0 - bne _08043346 - bl sub_80840A4 - ldr r1, [r4] - movs r3, 0xD0 - lsls r3, 3 - adds r2, r1, r3 - str r0, [r2] - movs r0, 0xCD - lsls r0, 3 - adds r1, r0 - movs r0, 0xA - strh r0, [r1] - ldr r0, [r2] - bl sub_80840D8 -_08043346: - ldr r0, [r4] - ldr r1, _080434C4 - adds r0, r1 - strb r5, [r0] - cmp r6, 0 - bne _08043390 - ldr r0, [r4] - ldr r2, _080434C8 - adds r0, r2 - strb r6, [r0] - movs r0, 0x4 - bl sub_8084100 - ldr r1, [r4] - ldr r3, _080434CC - adds r1, r3 - strb r6, [r1] - ldr r1, [r4] - ldr r2, _080434D0 - adds r1, r2 - strb r6, [r1] - ldr r2, [r4] - ldr r1, _080434D4 - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - adds r3, 0x3 - adds r0, r2, r3 - strh r1, [r0] - ldr r0, _080434D8 - adds r2, r0 - mov r1, r10 - strb r1, [r2] - ldr r0, [r4] - ldr r2, _080434DC - adds r0, r2 - strb r1, [r0] -_08043390: - bl sub_803D4D0 - ldr r0, [r4] - strb r5, [r0, 0x1] - ldr r0, [r4] - strb r5, [r0, 0x10] - ldr r0, [r4] - strb r5, [r0, 0x2] - ldr r0, [r4] - strb r5, [r0, 0x4] - ldr r0, [r4] - strb r5, [r0, 0x11] - ldr r0, [r4] - strb r5, [r0, 0x8] - ldr r0, [r4] - strb r5, [r0, 0x3] - ldr r0, [r4] - strb r5, [r0, 0x6] - ldr r0, [r4] - strb r5, [r0, 0xF] - ldr r2, [r4] - movs r3, 0xB8 - lsls r3, 3 - adds r1, r2, r3 - movs r0, 0x1 - negs r0, r0 - str r0, [r1] - strb r5, [r2, 0x7] - ldr r0, [r4] - strb r5, [r0, 0x9] - ldr r0, [r4] - strb r5, [r0, 0xA] - ldr r0, [r4] - movs r1, 0x1 - strb r1, [r0, 0xB] - ldr r0, [r4] - strb r1, [r0, 0xD] - ldr r0, [r4] - strb r5, [r0, 0xE] - ldr r0, [r4] - ldr r2, _080434E0 - adds r0, r2 - strb r5, [r0] - cmp r6, 0 - bne _080434A6 - ldr r0, [r4] - adds r3, 0xB9 - adds r0, r3 - strb r6, [r0] - ldr r1, [r4] - ldr r5, _080434E4 - adds r0, r1, r5 - str r6, [r0] - movs r2, 0xD2 - lsls r2, 3 - adds r0, r1, r2 - str r6, [r0] - adds r3, 0x1B - adds r0, r1, r3 - str r6, [r0] - subs r5, 0x2C - adds r0, r1, r5 - strh r6, [r0] - subs r2, 0x2E - adds r0, r1, r2 - strh r6, [r0] - subs r3, 0x26 - adds r1, r3 - mov r5, r10 - strb r5, [r1] - ldr r0, [r4] - ldr r1, _080434E8 - adds r0, r1 - strb r5, [r0] - ldr r0, [r4] - adds r2, 0xE - adds r0, r2 - strb r5, [r0] - ldr r0, [r4] - adds r3, 0x8 - adds r0, r3 - strb r5, [r0] - ldr r0, [r4] - ldr r5, _080434EC - adds r0, r5 - mov r1, r10 - strb r1, [r0] - ldr r0, [r4] - adds r2, 0x2 - adds r0, r2 - strb r1, [r0] - ldr r1, [r4] - subs r3, 0xC - adds r2, r1, r3 - ldr r0, _080434F0 - strh r0, [r2] - adds r5, 0x17 - adds r0, r1, r5 - strh r6, [r0] - ldr r0, _080434F4 - adds r1, r0 - mov r2, r10 - strb r2, [r1] - ldr r1, [r4] - adds r3, 0x1A - adds r0, r1, r3 - movs r2, 0x63 - strh r2, [r0] - subs r5, 0x2 - adds r0, r1, r5 - strh r2, [r0] - ldr r0, _080434F8 - adds r1, r0 - mov r2, r10 - strb r2, [r1] - ldr r1, [r4] - ldr r3, _080434FC - adds r0, r1, r3 - ldrb r2, [r0] - ldr r5, _08043500 - adds r0, r1, r5 - strh r2, [r0] - ldr r2, _08043504 - adds r0, r1, r2 - ldrb r2, [r0] - ldr r3, _08043508 - adds r0, r1, r3 - strh r2, [r0] - ldr r5, _0804350C - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _08043510 - adds r1, r2 - strh r0, [r1] - movs r0, 0 - bl sub_807E5E4 - bl sub_80842F0 -_080434A6: - bl sub_803D8F0 - bl sub_8068658 - cmp r6, 0 - bne _08043514 - bl sub_80687AC - b _0804351C - .align 2, 0 -_080434B8: .4byte gUnknown_81002D8 -_080434BC: .4byte gUnknown_203B450 -_080434C0: .4byte gUnknown_203B418 -_080434C4: .4byte 0x000037ec -_080434C8: .4byte 0x000037fc -_080434CC: .4byte 0x000037fd -_080434D0: .4byte 0x000037fe -_080434D4: .4byte gUnknown_80F6850 -_080434D8: .4byte 0x000037ff -_080434DC: .4byte 0x00000675 -_080434E0: .4byte 0x0001c05e -_080434E4: .4byte 0x0000068c -_080434E8: .4byte 0x0000066f -_080434EC: .4byte 0x00000671 -_080434F0: .4byte 0x000003e7 -_080434F4: .4byte 0x0000068a -_080434F8: .4byte 0x0000e264 -_080434FC: .4byte 0x0001c576 -_08043500: .4byte 0x00003a0e -_08043504: .4byte 0x0001c577 -_08043508: .4byte 0x00003a10 -_0804350C: .4byte 0x0001c586 -_08043510: .4byte 0x00003a14 -_08043514: - bl sub_8068768 - bl sub_8082B40 -_0804351C: - bl sub_806C42C - bl sub_806AD3C - cmp r6, 0 - bne _08043544 - ldr r1, _080435B4 - ldr r3, _080435B8 - ldr r0, [r3] - ldr r5, _080435BC - adds r0, r5 - movs r2, 0 - ldrsh r0, [r0, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - bl sub_8083E88 - bl sub_80847D4 -_08043544: - bl sub_8049840 - bl sub_803E178 - ldr r0, _080435C0 - mov r3, r9 - str r3, [r0] - bl sub_8040124 - movs r0, 0x4 - movs r1, 0 - bl sub_803EAF0 - movs r0, 0 - bl sub_8052210 - adds r0, r6, 0 - bl sub_803F27C - bl ShowDungeonNameBanner - cmp r6, 0 - bne _08043594 - bl sub_804AFAC - ldr r5, _080435B8 - ldr r0, [r5] - ldr r1, _080435C4 - adds r0, r1 - ldrb r0, [r0] - bl GetUnkC - ldr r2, [r5] - ldr r3, _080435C8 - adds r1, r2, r3 - strh r0, [r1] - ldr r5, _080435CC - adds r2, r5 - mov r0, r10 - strb r0, [r2] -_08043594: - bl sub_804AAD4 - bl sub_8049B8C - bl sub_804966C - cmp r6, 0 - bne _080435D0 - bl sub_806B168 - bl sub_806C3C0 - bl sub_806B6C4 - b _080435D4 - .align 2, 0 -_080435B4: .4byte gUnknown_80F5668 -_080435B8: .4byte gUnknown_203B418 -_080435BC: .4byte 0x00003a10 -_080435C0: .4byte gUnknown_202EDC8 -_080435C4: .4byte 0x00000644 -_080435C8: .4byte 0x00000666 -_080435CC: .4byte 0x0000067a -_080435D0: - bl sub_806B678 -_080435D4: - ldr r4, _0804362C - ldr r1, [r4] - ldr r2, _08043630 - adds r0, r1, r2 - mov r3, r9 - str r3, [r0] - ldr r5, _08043634 - adds r0, r1, r5 - str r3, [r0] - adds r2, 0x4 - adds r0, r1, r2 - str r3, [r0] - ldr r3, _08043638 - adds r0, r1, r3 - mov r5, r9 - str r5, [r0] - adds r2, 0x4 - adds r0, r1, r2 - str r5, [r0] - adds r3, 0x4 - adds r1, r3 - str r5, [r1] - cmp r6, 0 - bne _08043644 - bl sub_807FA18 - bl sub_8045CB0 - ldr r1, [r4] - ldr r5, _0804363C - adds r2, r1, r5 - ldr r3, _08043640 - adds r0, r1, r3 - ldr r0, [r0] - str r0, [r2] - subs r5, 0x4 - adds r1, r5 - str r6, [r1] - bl sub_8051E3C - bl sub_804AAAC - b _08043648 - .align 2, 0 -_0804362C: .4byte gUnknown_203B418 -_08043630: .4byte 0x00017b2c -_08043634: .4byte 0x00017b38 -_08043638: .4byte 0x00017b3c -_0804363C: .4byte 0x00000694 -_08043640: .4byte 0x0000068c -_08043644: - bl sub_806A338 -_08043648: - bl sub_8068F80 - bl sub_8049884 - bl sub_8049ED4 - cmp r6, 0 - bne _08043664 - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl sub_806A914 - b _0804366C -_08043664: - bl sub_806CF60 - bl sub_806A974 -_0804366C: - movs r0, 0x1 - bl sub_8041888 - cmp r6, 0 - bne _0804367E - bl sub_80848F0 - bl sub_8097890 -_0804367E: - ldr r0, _080436A0 - movs r1, 0x1 - strb r1, [r0] - cmp r6, 0 - beq _08043690 - bl sub_807E88C - bl sub_806AB2C -_08043690: - ldr r2, _080436A4 - ldr r0, [r2] - ldrb r0, [r0, 0x7] - cmp r0, 0 - bne _080436A8 - bl sub_803E748 - b _080436AC - .align 2, 0 -_080436A0: .4byte gUnknown_203B40C -_080436A4: .4byte gUnknown_203B418 -_080436A8: - bl sub_803E7C8 -_080436AC: - movs r0, 0 - bl sub_8040094 - movs r0, 0 - movs r1, 0 - bl sub_803EAF0 - adds r0, r6, 0 - bl sub_8040150 - bl sub_8040A84 - ldr r4, _08043730 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xB8 - mov r3, r9 - str r3, [r0] - ldr r5, _08043734 - adds r1, r5 - strb r3, [r1] - ldr r0, [r4] - ldr r1, _08043738 - adds r0, r1 - mov r2, r9 - strb r2, [r0] - ldr r1, [r4] - movs r5, 0 - movs r0, 0x63 - strh r0, [r1, 0x12] - movs r3, 0x1 - strb r3, [r1] - cmp r6, 0 - bne _08043706 - bl sub_8052DD0 - ldr r1, [r4] - ldrb r0, [r1, 0x9] - cmp r0, 0 - beq _08043706 - strb r5, [r1, 0x9] - bl sub_8083D68 - bl sub_8052F80 -_08043706: - ldr r0, _0804373C - mov r5, r9 - str r5, [r0] - ldr r4, _08043730 - ldr r0, [r4] - strb r5, [r0, 0x5] - cmp r6, 0 - bne _08043778 - bl sub_8084B64 - ldr r1, [r4] - ldrb r0, [r1, 0x4] - cmp r0, 0 - bne _08043728 - ldrb r0, [r1, 0x2] - cmp r0, 0 - beq _08043740 -_08043728: - movs r0, 0x1 - strb r0, [r1, 0x5] - b _0804374C - .align 2, 0 -_08043730: .4byte gUnknown_203B418 -_08043734: .4byte 0x0000066c -_08043738: .4byte 0x0000066d -_0804373C: .4byte gUnknown_203B450 -_08043740: - bl sub_8083600 - bl sub_803F4A0 - bl sub_8040A84 -_0804374C: - cmp r6, 0 - bne _08043778 - ldr r1, _08043774 - ldr r0, [r1] - ldrb r0, [r0, 0x5] - cmp r0, 0 - bne _0804377C - bl sub_807E5AC - movs r0, 0 - bl sub_807E580 - lsls r0, 24 - cmp r0, 0 - beq _0804377C - movs r0, 0x1 - bl sub_807E7FC - b _0804377C - .align 2, 0 -_08043774: .4byte gUnknown_203B418 -_08043778: - bl sub_8069E8C -_0804377C: - cmp r6, 0 - beq _08043784 - movs r6, 0 - b _080437A2 -_08043784: - bl sub_80427AC - bl sub_8083600 - ldr r2, _08043960 - ldr r1, [r2] - ldr r3, _08043964 - adds r1, r3 - ldrb r1, [r1] - bl sub_8075900 - movs r0, 0x1 - movs r1, 0 - bl sub_807EAA0 -_080437A2: - bl nullsub_16 - ldr r2, _08043960 - ldr r0, [r2] - ldrb r1, [r0, 0x5] - cmp r1, 0 - bne _080437DA - movs r4, 0x1 - ldr r5, _08043968 - adds r0, r5 - strb r1, [r0] - ldr r0, [r2] - ldr r3, _0804396C - adds r0, r3 - strb r1, [r0] - ldr r0, [r2] - ldr r5, _08043970 - adds r0, r5 - strb r4, [r0] -_080437C8: - adds r0, r4, 0 - bl RunDungeon - movs r4, 0 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _080437C8 -_080437DA: - bl sub_8083600 - adds r4, r0, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080437F0 - adds r0, r4, 0 - bl sub_8071DA4 -_080437F0: - ldr r5, _08043960 - ldr r0, [r5] - ldr r4, _08043968 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08043822 - movs r0, 0x1 - bl sub_8043ED0 - lsls r0, 24 - cmp r0, 0 - beq _08043812 - ldr r0, [r5] - adds r0, r4 - movs r1, 0x1 - strb r1, [r0] -_08043812: - ldr r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08043822 - ldrb r0, [r1, 0x11] - cmp r0, 0 - beq _08043830 -_08043822: - ldr r2, _08043960 - ldr r0, [r2] - ldrb r0, [r0, 0x6] - cmp r0, 0 - bne _08043830 - bl sub_806AA70 -_08043830: - bl sub_8083600 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _0804384A - movs r0, 0x4F - bl sub_80526D0 - movs r0, 0x4F - bl sub_8052740 -_0804384A: - bl sub_8040124 - movs r0, 0x1 - movs r1, 0 - bl sub_803EAF0 - ldr r3, _08043960 - ldr r0, [r3] - ldr r5, _08043970 - adds r0, r5 - mov r1, r9 - strb r1, [r0] - ldr r0, [r3] - ldr r2, _0804396C - adds r0, r2 - movs r3, 0x1 - strb r3, [r0] - ldr r5, _08043960 - ldr r1, [r5] - ldrb r0, [r1, 0x3] - cmp r0, 0 - bne _08043896 - ldrb r0, [r1, 0x6] - cmp r0, 0 - bne _08043896 - ldr r2, _08043974 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, 0x72 - bne _08043896 - ldr r3, _08043978 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0x1B - bne _08043896 - movs r0, 0x3C - bl sub_8083ED8 -_08043896: - movs r0, 0x4 - movs r1, 0x4F - bl sub_803E708 - ldr r5, _08043960 - ldr r0, [r5] - ldrb r0, [r0, 0x7] - cmp r0, 0 - bne _080438AC - bl sub_803E830 -_080438AC: - movs r0, 0 - bl SetBGOBJEnableFlags - ldr r1, _0804397C - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0x60 - orrs r0, r1 - ldr r1, _08043980 - ands r0, r1 - movs r1, 0x80 - lsls r1, 8 - orrs r0, r1 - ldr r1, _08043984 - ands r0, r1 - movs r1, 0xF8 - lsls r1, 16 - orrs r0, r1 - str r0, [sp, 0x4] - ldr r0, _08043988 - ldr r2, [r0] - movs r0, 0xFD - ldr r1, [sp, 0x8] - movs r3, 0 - bl SetBGPaletteBufferColorRGB - movs r0, 0x1 - bl sub_8040094 - ldr r0, [r5] - ldr r1, _0804396C - adds r0, r1 - movs r7, 0 - movs r2, 0x1 - strb r2, [r0] - ldr r1, [r5] - ldrb r0, [r1, 0x10] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08043926 - ldrb r0, [r1, 0x6] - cmp r0, 0 - beq _08043926 - bl sub_8083600 - adds r4, r0, 0 - ldr r0, _0804398C - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - ldr r0, [r5] - strb r7, [r0, 0x6] - ldr r0, _08043990 - adds r1, r4, 0 - adds r2, r4, 0 - bl sub_8083AB0 -_08043926: - bl sub_80688CC - bl sub_8049820 - ldr r0, _08043994 - ldr r0, [r0] - bl CloseFile - bl sub_800F740 - ldr r0, _08043998 - mov r3, r10 - strb r3, [r0] - ldr r4, _08043960 - ldr r1, [r4] - ldrb r0, [r1, 0x3] - cmp r0, 0 - beq _0804394C - b _08043BFC -_0804394C: - ldrb r0, [r1, 0x6] - cmp r0, 0 - beq _080439A0 - ldr r0, _0804399C - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 7 - bl sub_8080B30 - b _080439A6 - .align 2, 0 -_08043960: .4byte gUnknown_203B418 -_08043964: .4byte 0x00003a08 -_08043968: .4byte 0x00000654 -_0804396C: .4byte 0x00018218 -_08043970: .4byte 0x00018219 -_08043974: .4byte 0x0001ceda -_08043978: .4byte 0x00000644 -_0804397C: .4byte 0xffffff00 -_08043980: .4byte 0xffff00ff -_08043984: .4byte 0xff00ffff -_08043988: .4byte gUnknown_202EDC8 -_0804398C: .4byte gUnknown_81006A4 -_08043990: .4byte 0x00000222 -_08043994: .4byte gDungeonNameBannerPalette -_08043998: .4byte gUnknown_203B40C -_0804399C: .4byte gUnknown_203B41C -_080439A0: - movs r0, 0x2 - bl sub_8046F84 -_080439A6: - bl sub_806C1D8 - ldr r4, _080439CC - ldr r1, [r4] - ldr r5, _080439D0 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080439D4 - adds r5, 0x1A - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _080439C4 - b _08043AF4 -_080439C4: - bl sub_804700C - b _08043AF4 - .align 2, 0 -_080439CC: .4byte gUnknown_203B418 -_080439D0: .4byte 0x00000654 -_080439D4: - ldrb r0, [r1, 0x11] - cmp r0, 0x1 - bne _080439DC - b _080432C8 -_080439DC: - cmp r0, 0x2 - bne _08043A00 - bl sub_8083600 - adds r2, r0, 0 - ldr r0, _080439F8 - movs r1, 0 - bl sub_8083AB0 - ldr r0, [r4] - ldr r1, _080439FC - adds r0, r1 - b _08043A62 - .align 2, 0 -_080439F8: .4byte 0x00000229 -_080439FC: .4byte 0x0000066e -_08043A00: - cmp r0, 0x3 - bne _08043A24 - bl sub_8083600 - adds r2, r0, 0 - ldr r0, _08043A1C - movs r1, 0 - bl sub_8083AB0 - ldr r0, [r4] - ldr r2, _08043A20 - adds r0, r2 - b _08043A62 - .align 2, 0 -_08043A1C: .4byte 0x0000022a -_08043A20: .4byte 0x0000066e -_08043A24: - cmp r0, 0x4 - bne _08043A2A - b _080432D0 -_08043A2A: - movs r3, 0xCF - lsls r3, 3 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08043A74 - bl sub_8043D10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08043A74 - ldr r0, [r4] - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x2 - bne _08043A74 - bl sub_8083600 - adds r2, r0, 0 - movs r0, 0x8A - lsls r0, 2 - movs r1, 0 - bl sub_8083AB0 - ldr r0, [r4] - ldr r5, _08043A70 - adds r0, r5 -_08043A62: - ldrb r0, [r0] - cmp r0, 0 - beq _08043AF4 - bl sub_8097810 - b _08043AF4 - .align 2, 0 -_08043A70: .4byte 0x0000066e -_08043A74: - ldr r4, _08043ACC - ldr r0, [r4] - ldr r1, _08043AD0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08043A86 - bl sub_8097810 -_08043A86: - ldr r1, [r4] - ldr r3, _08043AD4 - adds r2, r1, r3 - ldrb r0, [r2] - adds r0, 0x1 - ldr r5, _08043AD8 - adds r1, r5 - ldrb r1, [r1] - cmp r0, r1 - bge _08043AE4 - strb r0, [r2] - ldr r0, [r4] - ldr r1, _08043ADC - adds r0, r1 - ldrh r1, [r0] - ldr r0, _08043AE0 - cmp r1, r0 - beq _08043AAC - b _080432FC -_08043AAC: - movs r0, 0x1F - bl sub_8098100 - lsls r0, 24 - cmp r0, 0 - beq _08043ABA - b _080432FC -_08043ABA: - movs r0, 0x1F - bl sub_8097FA8 - bl sub_8086130 - bl sub_8097FF8 - b _080432FC - .align 2, 0 -_08043ACC: .4byte gUnknown_203B418 -_08043AD0: .4byte 0x0000066e -_08043AD4: .4byte 0x00000645 -_08043AD8: .4byte 0x0001cec8 -_08043ADC: .4byte 0x00000644 -_08043AE0: .4byte 0x0000060b -_08043AE4: - ldr r4, _08043B80 - bl sub_8083600 - adds r2, r0, 0 - adds r0, r4, 0 - movs r1, 0 - bl sub_8083AB0 -_08043AF4: - ldr r1, _08043B84 - movs r0, 0 - strb r0, [r1] - mov r4, r8 - adds r4, 0x7E - movs r0, 0 - strb r0, [r4] - bl sub_8097FF8 - movs r0, 0x1 - movs r1, 0x14 - bl sub_80095CC - bl sub_803E13C - movs r0, 0x4 - bl sub_800CDA8 - ldr r0, _08043B88 - ldr r1, [r0] - ldrb r0, [r1, 0x6] - cmp r0, 0 - bne _08043B38 - movs r2, 0xCF - lsls r2, 3 - adds r0, r1, r2 - ldrb r0, [r0] - bl sub_8083C88 - lsls r0, 24 - cmp r0, 0 - beq _08043B38 - bl sub_80841EC -_08043B38: - bl sub_8083C24 - lsls r0, 24 - cmp r0, 0 - beq _08043BA4 - ldr r5, _08043B88 - ldr r0, [r5] - ldrb r0, [r0, 0x6] - cmp r0, 0 - beq _08043B98 - ldr r0, _08043B8C - ldr r3, [sp, 0xC] - strh r0, [r3] - mov r4, r8 - adds r4, 0x84 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x8 - bl memset - mov r3, r8 - adds r3, 0x80 - ldr r1, [r5] - ldr r5, _08043B90 - adds r2, r1, r5 - ldr r0, [r2] - str r0, [r3] - ldr r0, [r2] - str r0, [r4] - mov r2, r8 - adds r2, 0x88 - ldr r0, _08043B94 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - b _08043C32 - .align 2, 0 -_08043B80: .4byte 0x00000227 -_08043B84: .4byte gUnknown_203B40C -_08043B88: .4byte gUnknown_203B418 -_08043B8C: .4byte 0x0000fffe -_08043B90: .4byte 0x00000644 -_08043B94: .4byte 0x0000067c -_08043B98: - ldr r0, _08043BA0 - ldr r1, [sp, 0xC] - strh r0, [r1] - b _08043C32 - .align 2, 0 -_08043BA0: .4byte 0x0000ffff -_08043BA4: - bl sub_8083C50 - lsls r0, 24 - cmp r0, 0 - beq _08043C28 - ldr r0, _08043BC8 - ldr r0, [r0] - movs r2, 0xCF - lsls r2, 3 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08043BCC - movs r0, 0x4 - ldr r3, [sp, 0xC] - strh r0, [r3] - b _08043BE6 - .align 2, 0 -_08043BC8: .4byte gUnknown_203B418 -_08043BCC: - cmp r0, 0 - bne _08043BDC - movs r0, 0x1 - ldr r5, [sp, 0xC] - strh r0, [r5] - bl sub_8084424 - b _08043BE6 -_08043BDC: - movs r0, 0x1 - ldr r1, [sp, 0xC] - strh r0, [r1] - bl sub_8084424 -_08043BE6: - ldr r0, _08043BF4 - ldr r0, [r0] - ldr r2, _08043BF8 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r4] - b _08043C32 - .align 2, 0 -_08043BF4: .4byte gUnknown_203B418 -_08043BF8: .4byte 0x00000674 -_08043BFC: - ldr r0, _08043C20 - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 7 - bl sub_8080B30 - movs r0, 0x3 - ldr r3, [sp, 0xC] - strh r0, [r3] - mov r1, r8 - adds r1, 0x80 - ldr r0, [r4] - ldr r5, _08043C24 - adds r0, r5 - ldr r0, [r0] - str r0, [r1] - b _08043C32 - .align 2, 0 -_08043C20: .4byte gUnknown_203B41C -_08043C24: .4byte 0x00000644 -_08043C28: - movs r0, 0x2 - ldr r1, [sp, 0xC] - strh r0, [r1] - bl sub_8084424 -_08043C32: - bl sub_806863C - bl sub_803E214 - bl nullsub_56 - bl sub_8040218 - ldr r2, [sp, 0xC] - movs r3, 0 - ldrsh r0, [r2, r3] - cmp r0, 0x1 - beq _08043C54 - cmp r0, 0x4 - beq _08043C54 - cmp r0, 0x2 - bne _08043C58 -_08043C54: - bl sub_8047104 -_08043C58: - ldr r5, [sp, 0xC] - movs r0, 0 - ldrsh r1, [r5, r0] - cmp r1, 0x1 - beq _08043C8A - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08043C78 - cmp r1, 0x4 - beq _08043C78 - adds r0, 0x1 - cmp r1, r0 - beq _08043C78 - cmp r1, 0x2 - bne _08043CAC -_08043C78: - ldr r2, [sp, 0xC] - movs r3, 0 - ldrsh r1, [r2, r3] - cmp r1, 0x1 - beq _08043C8A - cmp r1, 0x4 - beq _08043C8A - cmp r1, 0x2 - bne _08043C92 -_08043C8A: - movs r0, 0x1 - bl sub_8068BDC - b _08043CAC -_08043C92: - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - bne _08043CA2 - movs r0, 0 - bl sub_8068BDC - b _08043CAC -_08043CA2: - bl sub_8068F28 - movs r0, 0 - bl sub_8068BDC -_08043CAC: - bl sub_800DB7C - ldr r0, _08043CD0 - movs r1, 0 - str r1, [r0] - ldr r0, _08043CD4 - str r1, [r0] - bl nullsub_16 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08043CD0: .4byte gUnknown_203B418 -_08043CD4: .4byte gUnknown_203B41C - thumb_func_end xxx_dungeon_8042F6C - - thumb_func_start sub_8043CD8 -sub_8043CD8: - push {lr} - bl sub_8009804 - pop {r0} - bx r0 - thumb_func_end sub_8043CD8 - - thumb_func_start sub_8043CE4 -sub_8043CE4: - push {lr} - adds r1, r0, 0 - ldr r0, _08043CF4 - ldrb r0, [r0] - cmp r0, 0 - beq _08043CF8 - movs r0, 0x1 - b _08043D08 - .align 2, 0 -_08043CF4: .4byte gUnknown_202F1A8 -_08043CF8: - movs r2, 0 - ldr r0, _08043D0C - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0x2 - bne _08043D06 - movs r2, 0x1 -_08043D06: - adds r0, r2, 0 -_08043D08: - pop {r1} - bx r1 - .align 2, 0 -_08043D0C: .4byte gUnknown_810ACC0 - thumb_func_end sub_8043CE4 - - thumb_func_start sub_8043D10 -sub_8043D10: - push {lr} - ldr r0, _08043D38 - ldr r1, [r0] - movs r2, 0xCF - lsls r2, 3 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08043D3C - subs r2, 0x2B - adds r0, r1, r2 - subs r2, 0x8 - adds r1, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _08043D3C - movs r0, 0x2 - b _08043D4C - .align 2, 0 -_08043D38: .4byte gUnknown_203B418 -_08043D3C: - bl sub_80441BC - lsls r0, 24 - cmp r0, 0 - bne _08043D4A - movs r0, 0 - b _08043D4C -_08043D4A: - movs r0, 0x1 -_08043D4C: - pop {r1} - bx r1 - thumb_func_end sub_8043D10 - - thumb_func_start sub_8043D50 -sub_8043D50: - ldr r2, _08043D5C - str r2, [r1] - movs r1, 0x90 - lsls r1, 7 - str r1, [r0] - bx lr - .align 2, 0 -_08043D5C: .4byte 0x0001cedc - thumb_func_end sub_8043D50 - - thumb_func_start sub_8043D60 -sub_8043D60: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r5, 0 -_08043D6A: - ldr r0, _08043DA4 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _08043DA8 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08043DCE - ldr r2, [r4, 0x70] - movs r1, 0x1 - ldrb r0, [r2, 0x8] - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - adds r0, r2, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - beq _08043DA0 - cmp r0, 0x47 - bne _08043DAC -_08043DA0: - movs r0, 0x1 - b _08043DAE - .align 2, 0 -_08043DA4: .4byte gUnknown_203B418 -_08043DA8: .4byte 0x0001358c -_08043DAC: - movs r0, 0 -_08043DAE: - cmp r0, 0 - beq _08043DB4 - movs r1, 0 -_08043DB4: - adds r0, r2, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08043DC0 - movs r1, 0 -_08043DC0: - cmp r1, 0 - beq _08043DCE - adds r0, r4, 0 - ldr r1, _08043EC0 - adds r2, r4, 0 - bl sub_8068FE0 -_08043DCE: - adds r5, 0x1 - cmp r5, 0xF - ble _08043D6A - movs r5, 0 - ldr r0, _08043EC4 - mov r9, r0 - mov r8, r5 -_08043DDC: - mov r1, r9 - ldr r0, [r1] - lsls r1, r5, 2 - ldr r2, _08043EC8 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - adds r7, r5, 0x1 - cmp r0, 0 - beq _08043E62 - adds r0, r4, 0 - adds r0, 0x22 - mov r1, r8 - strb r1, [r0] - adds r1, r4, 0 - adds r1, 0x20 - movs r0, 0x1 - strb r0, [r1] - ldr r4, [r4, 0x70] - ldrh r0, [r4, 0x10] - strh r0, [r4, 0xE] - movs r2, 0x9E - lsls r2, 1 - adds r1, r4, r2 - adds r2, 0x4 - adds r0, r4, r2 - ldr r0, [r0] - str r0, [r1] - mov r1, r9 - ldr r0, [r1] - ldr r2, _08043ECC - adds r0, r2 - mov r1, r8 - strb r1, [r0] - adds r0, r4, 0 - movs r1, 0 - bl sub_806BFC0 - ldrh r0, [r4, 0x2] - strh r0, [r4, 0x4] - adds r0, r4, 0 - adds r0, 0xFD - mov r2, r8 - strb r2, [r0] - movs r0, 0x8C - lsls r0, 1 - adds r5, r4, r0 - adds r4, r5, 0 - movs r6, 0x3 -_08043E46: - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08043E58 - adds r0, r5, 0 - bl sub_8092BF4 - strb r0, [r4, 0x4] -_08043E58: - adds r4, 0x8 - adds r5, 0x8 - subs r6, 0x1 - cmp r6, 0 - bge _08043E46 -_08043E62: - adds r5, r7, 0 - cmp r5, 0x3 - ble _08043DDC - movs r6, 0 -_08043E6A: - movs r5, 0 - adds r7, r6, 0x1 -_08043E6E: - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8049590 - ldr r4, [r0, 0x14] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08043EA0 - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0x2 - bne _08043EA0 - adds r0, r4, 0 - bl sub_8045104 - adds r1, r0, 0 - ldrb r0, [r1] - cmp r0, 0x1B - bne _08043EA0 - movs r0, 0x5 - strb r0, [r1] -_08043EA0: - adds r5, 0x1 - cmp r5, 0x37 - ble _08043E6E - adds r6, r7, 0 - cmp r6, 0x1F - ble _08043E6A - movs r0, 0x2 - bl sub_8046F84 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08043EC0: .4byte 0x00000207 -_08043EC4: .4byte gUnknown_203B418 -_08043EC8: .4byte 0x0001357c -_08043ECC: .4byte 0x00000676 - thumb_func_end sub_8043D60 - - thumb_func_start sub_8043ED0 -sub_8043ED0: - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r7, 0 - cmp r5, 0 - bne _08043EEA - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08043EEA - movs r0, 0 - b _08043FB8 -_08043EEA: - ldr r6, _08043F2C - ldr r0, [r6] - ldrb r0, [r0, 0x10] - cmp r0, 0x1 - bne _08043F40 - bl sub_8083600 - adds r4, r0, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08043FB6 - cmp r5, 0 - bne _08043F20 - ldr r0, _08043F30 - ldr r1, [r6] - ldr r2, _08043F34 - adds r1, r2 - bl strcpy - ldr r0, _08043F38 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage -_08043F20: - adds r0, r4, 0 - bl sub_8042B0C - ldr r1, _08043F3C - b _08043FAC - .align 2, 0 -_08043F2C: .4byte gUnknown_203B418 -_08043F30: .4byte gUnknown_202DF98 -_08043F34: .4byte 0x000005f4 -_08043F38: .4byte gUnknown_80F89B4 -_08043F3C: .4byte 0x0000021f -_08043F40: - cmp r0, 0x2 - bne _08043F74 - bl sub_8083600 - adds r4, r0, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08043FB6 - cmp r5, 0 - bne _08043FA4 - ldr r0, _08043F68 - ldr r1, [r6] - ldr r2, _08043F6C - adds r1, r2 - bl strcpy - ldr r0, _08043F70 - b _08043F9A - .align 2, 0 -_08043F68: .4byte gUnknown_202DF98 -_08043F6C: .4byte 0x000005f4 -_08043F70: .4byte gUnknown_80F89D4 -_08043F74: - cmp r0, 0x3 - bne _08043FB6 - bl sub_8083600 - adds r4, r0, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08043FB6 - cmp r5, 0 - bne _08043FA4 - ldr r0, _08043FC0 - ldr r1, [r6] - ldr r2, _08043FC4 - adds r1, r2 - bl strcpy - ldr r0, _08043FC8 -_08043F9A: - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage -_08043FA4: - adds r0, r4, 0 - bl sub_8042B0C - ldr r1, _08043FCC -_08043FAC: - adds r0, r4, 0 - adds r2, r4, 0 - bl sub_8068FE0 - movs r7, 0x1 -_08043FB6: - adds r0, r7, 0 -_08043FB8: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08043FC0: .4byte gUnknown_202DF98 -_08043FC4: .4byte 0x000005f4 -_08043FC8: .4byte gUnknown_80F89D8 -_08043FCC: .4byte 0x00000222 - thumb_func_end sub_8043ED0 - - thumb_func_start sub_8043FD0 -sub_8043FD0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x44 - movs r0, 0x2 - mov r9, r0 - movs r1, 0x1 - mov r10, r1 - movs r0, 0xFF - mov r8, r0 -_08043FE8: - movs r3, 0 - mov r1, r9 - adds r1, 0x1 - str r1, [sp, 0x3C] -_08043FF0: - ldr r2, _080440E4 - movs r0, 0x58 - adds r1, r3, 0 - muls r1, r0 - ldr r0, [r2] - adds r4, r0, r1 - ldrh r1, [r4] - mov r0, r10 - ands r0, r1 - adds r3, 0x1 - str r3, [sp, 0x40] - cmp r0, 0 - beq _080440FE - lsrs r0, r1, 1 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - beq _080440FE - add r5, sp, 0x20 - movs r0, 0x8 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - mov r2, r9 - bl sub_808E010 - mov r1, r9 - strb r1, [r4, 0x3] - ldr r0, [sp, 0x20] - str r0, [r4, 0x1C] - ldrh r0, [r5, 0x4] - ldrh r1, [r4, 0x16] - adds r0, r1 - movs r2, 0 - strh r0, [r4, 0x16] - lsls r0, 16 - ldr r1, _080440E8 - cmp r0, r1 - ble _08044040 - ldr r0, _080440EC - strh r0, [r4, 0x16] -_08044040: - ldrb r0, [r4, 0x18] - str r0, [sp, 0x2C] - ldrb r0, [r4, 0x19] - str r0, [sp, 0x30] - ldrb r0, [r4, 0x1A] - str r0, [sp, 0x34] - ldrb r0, [r4, 0x1B] - str r0, [sp, 0x38] - ldrb r1, [r5, 0x6] - ldr r0, [sp, 0x2C] - adds r0, r1 - str r0, [sp, 0x2C] - ldrb r1, [r5, 0x7] - ldr r0, [sp, 0x30] - adds r0, r1 - str r0, [sp, 0x30] - ldrb r1, [r5, 0x8] - ldr r0, [sp, 0x34] - adds r0, r1 - str r0, [sp, 0x34] - ldrb r1, [r5, 0x9] - ldr r0, [sp, 0x38] - adds r0, r1 - str r0, [sp, 0x38] - ldr r0, [sp, 0x2C] - cmp r0, 0xFE - ble _0804407A - mov r0, r8 - str r0, [sp, 0x2C] -_0804407A: - ldr r0, [sp, 0x30] - cmp r0, 0xFE - ble _08044084 - mov r1, r8 - str r1, [sp, 0x30] -_08044084: - ldr r0, [sp, 0x34] - cmp r0, 0xFE - ble _0804408E - mov r0, r8 - str r0, [sp, 0x34] -_0804408E: - ldr r0, [sp, 0x38] - cmp r0, 0xFE - ble _08044098 - mov r1, r8 - str r1, [sp, 0x38] -_08044098: - ldr r0, [sp, 0x2C] - strb r0, [r4, 0x18] - ldr r0, [sp, 0x30] - strb r0, [r4, 0x19] - ldr r0, [sp, 0x34] - strb r0, [r4, 0x1A] - ldr r0, [sp, 0x38] - strb r0, [r4, 0x1B] - movs r0, 0x8 - ldrsh r1, [r4, r0] - ldrb r2, [r4, 0x3] - mov r0, sp - ldr r3, _080440EC - bl sub_808E0AC - adds r6, r0, 0 - cmp r6, 0 - beq _080440FE - movs r0, 0 - cmp r0, r6 - bge _080440FE -_080440C2: - movs r3, 0 - adds r7, r0, 0x1 - lsls r0, 1 - mov r1, sp - adds r5, r1, r0 - adds r2, r4, 0 - adds r2, 0x2C -_080440D0: - ldrb r1, [r2] - mov r0, r10 - ands r0, r1 - cmp r0, 0 - bne _080440F0 - ldrh r1, [r5] - adds r0, r2, 0 - bl sub_8092AD4 - b _080440F8 - .align 2, 0 -_080440E4: .4byte gUnknown_203B45C -_080440E8: .4byte 0x03e60000 -_080440EC: .4byte 0x000003e7 -_080440F0: - adds r2, 0x8 - adds r3, 0x1 - cmp r3, 0x3 - ble _080440D0 -_080440F8: - adds r0, r7, 0 - cmp r0, r6 - blt _080440C2 -_080440FE: - ldr r3, [sp, 0x40] - movs r0, 0xCE - lsls r0, 1 - cmp r3, r0 - bgt _0804410A - b _08043FF0 -_0804410A: - ldr r0, [sp, 0x3C] - mov r9, r0 - cmp r0, 0x5 - bgt _08044114 - b _08043FE8 -_08044114: - add sp, 0x44 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8043FD0 - - thumb_func_start sub_8044124 -sub_8044124: - push {r4,r5,lr} - ldr r0, _080441AC - ldr r0, [r0] - ldr r1, _080441B0 - adds r0, r1 - ldrb r0, [r0] - bl GetMaxItemCount - cmp r0, 0 - bne _08044182 - movs r3, 0 - ldr r4, _080441B4 - movs r2, 0 -_0804413E: - lsls r1, r3, 2 - ldr r0, [r4] - adds r1, r0 - strb r2, [r1, 0x2] - strb r2, [r1, 0x1] - strb r2, [r1] - adds r3, 0x1 - cmp r3, 0x13 - ble _0804413E - movs r3, 0 - ldr r5, _080441B8 - movs r4, 0x1 -_08044156: - movs r0, 0x58 - adds r1, r3, 0 - muls r1, r0 - ldr r0, [r5] - adds r1, r0, r1 - ldrh r2, [r1] - adds r0, r4, 0 - ands r0, r2 - cmp r0, 0 - beq _08044178 - lsrs r0, r2, 1 - ands r0, r4 - cmp r0, 0 - beq _08044178 - adds r1, 0x28 - movs r0, 0 - strb r0, [r1] -_08044178: - adds r3, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r3, r0 - ble _08044156 -_08044182: - ldr r0, _080441AC - ldr r0, [r0] - ldr r2, _080441B0 - adds r0, r2 - ldrb r0, [r0] - bl GetMoneyCondition - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080441A4 - ldr r0, _080441B4 - ldr r0, [r0] - movs r2, 0x98 - lsls r2, 2 - adds r0, r2 - str r1, [r0] -_080441A4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080441AC: .4byte gUnknown_203B418 -_080441B0: .4byte 0x00000644 -_080441B4: .4byte gUnknown_203B460 -_080441B8: .4byte gUnknown_203B45C - thumb_func_end sub_8044124 - - thumb_func_start sub_80441BC -sub_80441BC: - push {lr} - ldr r0, _080441D8 - ldr r0, [r0] - ldr r1, _080441DC - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080441E0 - cmp r0, 0x31 - bgt _080441E0 - movs r0, 0x1 - b _080441E2 - .align 2, 0 -_080441D8: .4byte gUnknown_203B418 -_080441DC: .4byte 0x00003a14 -_080441E0: - movs r0, 0 -_080441E2: - pop {r1} - bx r1 - thumb_func_end sub_80441BC - - thumb_func_start sub_80441E8 -sub_80441E8: - push {lr} - ldr r0, _08044200 - ldr r0, [r0] - ldr r1, _08044204 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x3F - bgt _08044208 - movs r0, 0 - b _0804420A - .align 2, 0 -_08044200: .4byte gUnknown_203B418 -_08044204: .4byte 0x00003a0e -_08044208: - movs r0, 0x1 -_0804420A: - pop {r1} - bx r1 - thumb_func_end sub_80441E8 - - thumb_func_start sub_8044210 -sub_8044210: - push {lr} - ldr r0, _0804422C - ldr r0, [r0] - ldr r1, _08044230 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x16 - bls _08044234 - movs r0, 0 - b _08044236 - .align 2, 0 -_0804422C: .4byte gUnknown_203B418 -_08044230: .4byte 0x00000644 -_08044234: - movs r0, 0x1 -_08044236: - pop {r1} - bx r1 - thumb_func_end sub_8044210 - - thumb_func_start RunDungeon -RunDungeon: - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _080442C6 - bl sub_8044994 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _080442C6 - adds r0, r4, 0 - bl xxx_dungeon_80442D0 - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _080442C6 - cmp r4, 0 - beq _08044280 - bl sub_807E378 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _080442C6 -_08044280: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _080442C6 - bl sub_8044574 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _080442C6 - bl sub_8044820 - bl sub_8044B28 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080442C6 - bl sub_8044AB4 - ldr r0, _080442CC - ldr r0, [r0] - movs r2, 0xCC - lsls r2, 3 - adds r1, r0, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - bne _080442C6 - strh r4, [r1] -_080442C6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080442CC: .4byte gUnknown_203B418 - thumb_func_end RunDungeon - - thumb_func_start xxx_dungeon_80442D0 -xxx_dungeon_80442D0: - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - bl sub_8083600 - adds r5, r0, 0 - cmp r5, 0 - beq _0804431A - bl sub_8069E8C - adds r0, r5, 0 - bl sub_8070774 - ldr r3, _08044320 - ldr r1, _08044324 - ldr r1, [r1] - movs r2, 0xCC - lsls r2, 3 - adds r1, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - lsls r1, 1 - movs r2, 0x32 - muls r0, r2 - adds r1, r0 - adds r1, r3 - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0804431A - ldr r0, [r5, 0x70] - movs r1, 0xA4 - lsls r1, 1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08044328 -_0804431A: - movs r0, 0 - b _0804444E - .align 2, 0 -_08044320: .4byte gUnknown_80F6860 -_08044324: .4byte gUnknown_203B418 -_08044328: - bl sub_8083600 - adds r5, r0, 0 - cmp r5, 0 - beq _0804431A - movs r0, 0 - bl sub_807520C - lsls r0, 24 - cmp r0, 0 - bne _0804435C - ldr r0, _08044388 - ldr r1, [r0] - ldr r2, _0804438C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _08044356 - ldr r3, _08044390 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _0804435C -_08044356: - movs r0, 0xC - bl sub_803E46C -_0804435C: - ldr r0, [r5, 0x70] - adds r0, 0xF8 - movs r1, 0 - strb r1, [r0] - bl sub_8044B28 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _0804431A - ldr r0, _08044388 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xB8 - str r5, [r0] - adds r1, 0xBC - str r2, [r1] - cmp r7, 0 - beq _08044394 - movs r7, 0 - b _0804439A - .align 2, 0 -_08044388: .4byte gUnknown_203B418 -_0804438C: .4byte 0x0000066c -_08044390: .4byte 0x00000673 -_08044394: - adds r0, r5, 0 - bl sub_8074B54 -_0804439A: - bl sub_8044B28 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0804431A - adds r0, r5, 0 - bl sub_8071DA4 - ldr r6, _08044434 - ldr r1, [r6] - movs r0, 0x1 - strb r0, [r1, 0xF] - bl sub_805D8C8 - ldr r0, [r6] - strb r4, [r0, 0xF] - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _0804444C - adds r0, r5, 0 - bl sub_8072CF4 - bl sub_8086AC0 - movs r0, 0 - bl sub_8043ED0 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _0804444C - ldr r2, [r5, 0x70] - ldrh r1, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08044400 - subs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - movs r3, 0x80 - lsls r3, 7 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] -_08044400: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _0804444C - bl sub_8044454 - bl sub_8044B28 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0804444C - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0xBC - ldr r1, [r0] - cmp r1, 0 - beq _08044438 - bl sub_805F02C - ldr r0, [r6] - adds r0, 0xBC - str r4, [r0] - movs r7, 0x1 - b _08044328 - .align 2, 0 -_08044434: .4byte gUnknown_203B418 -_08044438: - ldr r0, [r5, 0x70] - adds r0, 0xF8 - ldrb r0, [r0] - cmp r0, 0 - beq _0804444C - movs r3, 0xCC - lsls r3, 3 - adds r0, r2, r3 - strh r1, [r0] - b _08044328 -_0804444C: - movs r0, 0x1 -_0804444E: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end xxx_dungeon_80442D0 - - thumb_func_start sub_8044454 -sub_8044454: - push {r4-r6,lr} - ldr r0, _080444E8 - ldr r1, [r0] - ldrb r0, [r1, 0xE] - cmp r0, 0 - beq _080444E2 - movs r0, 0 - strb r0, [r1, 0xE] - movs r6, 0 -_08044466: - ldr r0, _080444E8 - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _080444EC - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080444DC - ldr r5, [r4, 0x70] - ldrh r0, [r5] - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080444DC - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _080444E2 - adds r0, r4, 0 - bl sub_8074B54 - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080444DC - adds r0, r4, 0 - bl sub_8071DA4 - adds r0, r4, 0 - movs r1, 0 - bl sub_8075990 - adds r0, r4, 0 - bl sub_8072CF4 - bl sub_8086AC0 - movs r0, 0 - bl sub_8043ED0 - ldrh r0, [r5] - ldr r2, _080444F0 - adds r1, r2, 0 - ands r0, r1 - movs r2, 0x80 - lsls r2, 7 - adds r1, r2, 0 - orrs r0, r1 - strh r0, [r5] -_080444DC: - adds r6, 0x1 - cmp r6, 0x13 - ble _08044466 -_080444E2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080444E8: .4byte gUnknown_203B418 -_080444EC: .4byte 0x000135cc -_080444F0: .4byte 0x00007fff - thumb_func_end sub_8044454 - - thumb_func_start sub_80444F4 -sub_80444F4: - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_8083600 - cmp r6, r0 - bne _08044566 - ldr r0, _0804456C - ldr r1, [r0] - ldrb r0, [r1, 0xE] - cmp r0, 0 - beq _08044566 - movs r0, 0 - strb r0, [r1, 0xE] - movs r5, 0 -_08044510: - ldr r0, _0804456C - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _08044570 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08044560 - cmp r6, r4 - beq _08044560 - ldr r0, [r4, 0x70] - ldrh r0, [r0] - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08044560 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _08044566 - adds r0, r4, 0 - movs r1, 0 - bl sub_8075990 - adds r0, r4, 0 - bl sub_8072CF4 - bl sub_8086AC0 - movs r0, 0 - bl sub_8043ED0 -_08044560: - adds r5, 0x1 - cmp r5, 0x13 - ble _08044510 -_08044566: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804456C: .4byte gUnknown_203B418 -_08044570: .4byte 0x000135cc - thumb_func_end sub_80444F4 - - thumb_func_start sub_8044574 -sub_8044574: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x44 - bl sub_8083600 - mov r10, r0 - movs r7, 0 - mov r0, sp - adds r0, 0x4 - str r0, [sp, 0x40] - ldr r1, _08044634 - mov r9, r1 -_08044592: - mov r2, r9 - ldr r0, [r2] - lsls r1, r7, 2 - ldr r3, _08044638 - adds r0, r3 - adds r0, r1 - ldr r5, [r0] - adds r0, r5, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080446A4 - ldr r6, [r5, 0x70] - mov r8, r6 - ldrb r0, [r6, 0x7] - cmp r0, 0 - bne _080446A4 - bl sub_8044B28 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080446AC - mov r1, r9 - ldr r0, [r1] - adds r0, 0xB8 - str r5, [r0] - bl sub_8069E8C - movs r2, 0xA2 - lsls r2, 1 - adds r0, r6, r2 - strb r4, [r0] - adds r0, r5, 0 - bl sub_8070774 - mov r3, r9 - ldr r1, [r3] - movs r2, 0xCC - lsls r2, 3 - adds r1, r2 - movs r3, 0 - ldrsh r1, [r1, r3] - lsls r1, 1 - movs r2, 0x32 - muls r0, r2 - adds r1, r0 - ldr r0, _0804463C - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080446A4 - movs r3, 0xA4 - lsls r3, 1 - adds r0, r6, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _080446A4 - ldrh r1, [r6] - movs r2, 0x80 - lsls r2, 8 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080446A4 - movs r3, 0x80 - lsls r3, 7 - adds r0, r3, 0 - ands r0, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _08044644 - ldr r2, _08044640 - adds r0, r2, 0 - ands r0, r1 - strh r0, [r6] - b _080446A4 - .align 2, 0 -_08044634: .4byte gUnknown_203B418 -_08044638: .4byte 0x0001357c -_0804463C: .4byte gUnknown_80F6860 -_08044640: .4byte 0x0000bfff -_08044644: - ldr r1, _08044668 - add r1, r8 - strb r0, [r1] - adds r0, r5, 0 - bl sub_8074B54 - adds r0, r5, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080446A4 - adds r0, r5, 0 - bl sub_8071DA4 - movs r4, 0 - b _0804466E - .align 2, 0 -_08044668: .4byte 0x00000145 -_0804466C: - adds r4, 0x1 -_0804466E: - cmp r4, 0x2 - bgt _080446A4 - adds r0, r5, 0 - movs r1, 0 - bl sub_8075990 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _080446A4 - adds r0, r5, 0 - bl sub_8072CF4 - lsls r0, 24 - cmp r0, 0 - beq _080446A4 - bl sub_8086AC0 - movs r0, 0 - bl sub_8043ED0 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _0804466C -_080446A4: - adds r7, 0x1 - cmp r7, 0x3 - bgt _080446AC - b _08044592 -_080446AC: - movs r0, 0 - mov r8, r0 -_080446B0: - adds r0, 0x1 - mov r9, r0 - add r2, sp, 0x8 - ldr r1, [sp, 0x40] - mov r0, sp - movs r7, 0x2 -_080446BC: - mov r3, r8 - str r3, [r0] - str r2, [r1] - adds r2, 0x8 - adds r1, 0x8 - adds r0, 0x8 - subs r7, 0x1 - cmp r7, 0 - bge _080446BC - str r3, [sp, 0x18] - str r3, [sp, 0x1C] - movs r7, 0 -_080446D4: - ldr r0, _08044710 - ldr r0, [r0] - lsls r1, r7, 2 - ldr r2, _08044714 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08044760 - ldr r1, [r4, 0x70] - movs r3, 0xA2 - lsls r3, 1 - adds r2, r1, r3 - ldrb r0, [r2] - cmp r0, 0 - beq _08044760 - ldrb r0, [r1, 0x7] - cmp r0, 0 - beq _08044718 - adds r3, 0x1 - adds r0, r1, r3 - mov r1, r8 - strb r1, [r0] - strb r1, [r2] - b _08044760 - .align 2, 0 -_08044710: .4byte gUnknown_203B418 -_08044714: .4byte 0x0001357c -_08044718: - mov r2, r10 - movs r3, 0x4 - ldrsh r1, [r2, r3] - movs r2, 0x4 - ldrsh r0, [r4, r2] - subs r2, r1, r0 - cmp r2, 0 - bge _0804472A - negs r2, r2 -_0804472A: - mov r3, r10 - movs r0, 0x6 - ldrsh r1, [r3, r0] - movs r3, 0x6 - ldrsh r0, [r4, r3] - subs r1, r0 - cmp r1, 0 - bge _0804473C - negs r1, r1 -_0804473C: - cmp r1, r2 - bge _08044742 - adds r1, r2, 0 -_08044742: - cmp r1, 0x2 - ble _08044748 - movs r1, 0x2 -_08044748: - add r3, sp, 0x20 - lsls r0, r7, 3 - adds r3, r0 - str r4, [r3] - add r2, sp, 0x24 - adds r2, r0 - lsls r1, 3 - ldr r0, [sp, 0x40] - adds r1, r0, r1 - ldr r0, [r1] - str r0, [r2] - str r3, [r1] -_08044760: - adds r7, 0x1 - cmp r7, 0x3 - ble _080446D4 - mov r5, sp - movs r6, 0 -_0804476A: - ldr r4, [r5] - cmp r4, 0 - beq _080447A0 - ldr r1, [r4, 0x70] - ldr r3, _08044814 - adds r2, r1, r3 - movs r0, 0x1 - strb r0, [r2] - movs r2, 0xA2 - lsls r2, 1 - adds r0, r1, r2 - strb r6, [r0] - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8075990 - adds r0, r4, 0 - bl sub_8072CF4 - bl sub_8086AC0 - movs r0, 0 - bl sub_8043ED0 - adds r0, r4, 0 - bl sub_80450E0 -_080447A0: - ldr r5, [r5, 0x4] - cmp r5, 0 - bne _0804476A - mov r0, r9 - cmp r0, 0x2 - ble _080446B0 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _08044802 - movs r7, 0 -_080447B8: - ldr r0, _08044818 - ldr r0, [r0] - lsls r1, r7, 2 - ldr r3, _0804481C - adds r0, r3 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080447FC - ldr r0, [r4, 0x70] - movs r1, 0xA2 - lsls r1, 1 - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, 0 - beq _080447FC - adds r0, r4, 0 - bl sub_8074094 - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080447FC - adds r0, r4, 0 - bl sub_8071DA4 - movs r0, 0 - strb r0, [r5] -_080447FC: - adds r7, 0x1 - cmp r7, 0x3 - ble _080447B8 -_08044802: - add sp, 0x44 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08044814: .4byte 0x00000145 -_08044818: .4byte gUnknown_203B418 -_0804481C: .4byte 0x0001357c - thumb_func_end sub_8044574 - - thumb_func_start sub_8044820 -sub_8044820: - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r7, 0 - ldr r0, _08044830 - mov r8, r0 - b _080448FC - .align 2, 0 -_08044830: .4byte gUnknown_80F6860 -_08044834: - ldr r4, [r5, 0x70] - ldr r0, [r6] - adds r0, 0xB8 - str r5, [r0] - bl sub_8069E8C - ldrh r2, [r4] - movs r1, 0x80 - lsls r1, 8 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - bne _080448FA - movs r1, 0x80 - lsls r1, 7 - adds r0, r1, 0 - ands r0, r2 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0804486C - ldr r1, _08044868 - adds r0, r1, 0 - ands r0, r2 - strh r0, [r4] - b _080448FA - .align 2, 0 -_08044868: .4byte 0x0000bfff -_0804486C: - movs r2, 0xA2 - lsls r2, 1 - adds r0, r4, r2 - strb r1, [r0] - adds r0, r5, 0 - bl sub_8070774 - ldr r1, [r6] - movs r2, 0xCC - lsls r2, 3 - adds r1, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - lsls r1, 1 - movs r2, 0x32 - muls r0, r2 - adds r1, r0 - add r1, r8 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080448FA - movs r1, 0xA4 - lsls r1, 1 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080448FA - ldrh r1, [r4] - ldr r2, _08044984 - adds r0, r2, 0 - ands r1, r0 - movs r0, 0 - strh r1, [r4] - ldr r2, _08044988 - adds r1, r4, r2 - strb r0, [r1] - adds r0, r5, 0 - bl sub_8074B54 - adds r0, r5, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080448FA - adds r0, r5, 0 - bl sub_8071DA4 - adds r0, r5, 0 - movs r1, 0 - bl sub_8075990 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _08044924 - adds r0, r5, 0 - bl sub_8072CF4 - bl sub_8086AC0 - movs r0, 0 - bl sub_8043ED0 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _08044924 -_080448FA: - adds r7, 0x1 -_080448FC: - cmp r7, 0xF - bgt _08044924 - ldr r6, _0804498C - ldr r0, [r6] - lsls r1, r7, 2 - ldr r2, _08044990 - adds r0, r2 - adds r0, r1 - ldr r5, [r0] - adds r0, r5, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080448FA - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _08044834 -_08044924: - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _0804497A - movs r7, 0 -_08044930: - ldr r0, _0804498C - ldr r0, [r0] - lsls r1, r7, 2 - ldr r2, _08044990 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08044974 - ldr r0, [r4, 0x70] - movs r1, 0xA2 - lsls r1, 1 - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, 0 - beq _08044974 - adds r0, r4, 0 - bl sub_8074094 - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08044974 - adds r0, r4, 0 - bl sub_8071DA4 - movs r0, 0 - strb r0, [r5] -_08044974: - adds r7, 0x1 - cmp r7, 0xF - ble _08044930 -_0804497A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08044984: .4byte 0x00003fff -_08044988: .4byte 0x00000145 -_0804498C: .4byte gUnknown_203B418 -_08044990: .4byte 0x0001358c - thumb_func_end sub_8044820 - - thumb_func_start sub_8044994 -sub_8044994: - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _08044A94 - ldr r4, _08044A98 - ldr r0, [r4] - movs r2, 0xCC - lsls r2, 3 - adds r0, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - lsls r0, 1 - adds r1, 0x32 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08044A8A - bl sub_8071B48 - ldr r0, [r4] - ldr r2, _08044A9C - adds r0, r2 - movs r2, 0 - strb r2, [r0] - ldr r0, [r4] - ldr r3, _08044AA0 - adds r0, r3 - strb r2, [r0] - ldr r0, [r4] - ldr r1, _08044AA4 - adds r0, r1 - strb r2, [r0] - ldr r0, [r4] - adds r3, 0x2 - adds r0, r3 - strb r2, [r0] - ldr r0, [r4] - ldr r3, _08044AA8 - adds r1, r0, r3 - str r2, [r1] - ldr r1, _08044AAC - adds r0, r1 - movs r1, 0x2 - str r1, [r0] - mov r8, r2 - adds r7, r4, 0 -_080449F2: - ldr r0, [r7] - mov r2, r8 - lsls r1, r2, 2 - ldr r3, _08044AB0 - adds r0, r3 - adds r0, r1 - ldr r5, [r0] - adds r0, r5, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08044A7A - ldr r0, [r5, 0x70] - adds r4, r0, 0 - movs r0, 0xA4 - lsls r0, 1 - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - ldrb r0, [r4, 0x6] - movs r6, 0x1 - cmp r0, 0 - beq _08044A24 - movs r6, 0 -_08044A24: - adds r0, r5, 0 - movs r1, 0x32 - bl sub_8071824 - lsls r0, 24 - cmp r0, 0 - beq _08044A46 - ldr r1, [r7] - ldr r2, _08044AA8 - adds r0, r1, r2 - str r5, [r0] - ldr r3, _08044AAC - adds r1, r3 - adds r0, r4, 0 - adds r0, 0x98 - ldr r0, [r0] - str r0, [r1] -_08044A46: - adds r0, r5, 0 - movs r1, 0x3F - bl sub_8071824 - lsls r0, 24 - cmp r0, 0 - beq _08044A60 - ldr r0, [r7] - ldr r1, _08044AA4 - adds r0, r1 - adds r0, r6 - movs r1, 0x1 - strb r1, [r0] -_08044A60: - adds r0, r5, 0 - movs r1, 0x38 - bl sub_8071824 - lsls r0, 24 - cmp r0, 0 - beq _08044A7A - ldr r0, [r7] - ldr r2, _08044A9C - adds r0, r2 - adds r0, r6 - movs r1, 0x1 - strb r1, [r0] -_08044A7A: - movs r3, 0x1 - add r8, r3 - mov r0, r8 - cmp r0, 0x13 - ble _080449F2 - movs r0, 0 - bl sub_8043ED0 -_08044A8A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08044A94: .4byte gUnknown_80F6860 -_08044A98: .4byte gUnknown_203B418 -_08044A9C: .4byte 0x000037f8 -_08044AA0: .4byte 0x000037f9 -_08044AA4: .4byte 0x000037fa -_08044AA8: .4byte 0x00017b2c -_08044AAC: .4byte 0x00017b38 -_08044AB0: .4byte 0x000135cc - thumb_func_end sub_8044994 - - thumb_func_start sub_8044AB4 -sub_8044AB4: - push {r4,lr} - ldr r1, _08044ADC - ldr r0, _08044AE0 - ldr r0, [r0] - movs r2, 0xCC - lsls r2, 3 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r0, 0x1 - lsls r0, 1 - adds r1, 0x32 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08044B1A - movs r4, 0 - b _08044AE6 - .align 2, 0 -_08044ADC: .4byte gUnknown_80F6860 -_08044AE0: .4byte gUnknown_203B418 -_08044AE4: - adds r4, 0x1 -_08044AE6: - cmp r4, 0x13 - bgt _08044B08 - ldr r0, _08044B20 - ldr r0, [r0] - lsls r1, r4, 2 - ldr r2, _08044B24 - adds r0, r2 - adds r0, r1 - ldr r0, [r0] - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08044AE4 - movs r0, 0 - bl sub_807520C -_08044B08: - movs r0, 0x1 - movs r1, 0 - bl sub_807EAA0 - bl sub_8086AC0 - movs r0, 0 - bl sub_8043ED0 -_08044B1A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08044B20: .4byte gUnknown_203B418 -_08044B24: .4byte 0x000135cc - thumb_func_end sub_8044AB4 - - thumb_func_start sub_8044B28 -sub_8044B28: - push {r4,lr} - ldr r4, _08044B48 - ldr r0, [r4] - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _08044B76 - bl sub_8083600 - cmp r0, 0 - bne _08044B50 - ldr r0, [r4] - ldr r1, _08044B4C - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _08044B76 - .align 2, 0 -_08044B48: .4byte gUnknown_203B418 -_08044B4C: .4byte 0x00000654 -_08044B50: - ldr r0, [r4] - ldrb r2, [r0, 0x2] - cmp r2, 0x1 - bne _08044B68 - ldr r2, _08044B64 - adds r1, r0, r2 - movs r0, 0x2 - strb r0, [r1] - b _08044B76 - .align 2, 0 -_08044B64: .4byte 0x00000654 -_08044B68: - cmp r2, 0x2 - beq _08044B70 - movs r0, 0 - b _08044B78 -_08044B70: - ldr r1, _08044B80 - adds r0, r1 - strb r2, [r0] -_08044B76: - movs r0, 0x1 -_08044B78: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08044B80: .4byte 0x00000654 - thumb_func_end sub_8044B28 - - thumb_func_start sub_8044B84 -sub_8044B84: - push {lr} - ldr r0, _08044B9C - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0 - bne _08044BA0 - bl sub_8044B28 - lsls r0, 24 - lsrs r0, 24 - b _08044BA2 - .align 2, 0 -_08044B9C: .4byte gUnknown_203B418 -_08044BA0: - movs r0, 0x1 -_08044BA2: - pop {r1} - bx r1 - thumb_func_end sub_8044B84 - - thumb_func_start sub_8044BA8 -sub_8044BA8: - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r4, 0x26 - bne _08044BCC - bl sub_8043D10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08044BCC - ldr r0, _08044BC8 - b _08044C02 - .align 2, 0 -_08044BC8: .4byte gUnknown_80F91EC -_08044BCC: - ldr r1, _08044BEC - lsls r0, r4, 3 - adds r4, r0, r1 - ldr r0, [r4] - ldr r1, _08044BF0 - bl strcmp - cmp r0, 0 - beq _08044BE0 - movs r0, 0x1 -_08044BE0: - lsls r0, 24 - cmp r0, 0 - beq _08044BF4 - ldr r0, [r4] - b _08044C04 - .align 2, 0 -_08044BEC: .4byte gUnknown_80F7C50 -_08044BF0: .4byte gUnknown_80F697C -_08044BF4: - ldr r4, _08044C0C - adds r0, r5, 0 - bl sub_8090D6C - lsls r0, 3 - adds r4, 0x4 - adds r0, r4 -_08044C02: - ldr r0, [r0] -_08044C04: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08044C0C: .4byte gUnknown_80F7B14 - thumb_func_end sub_8044BA8 - - thumb_func_start sub_8044C10 -sub_8044C10: - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8083654 - adds r2, r0, 0 - adds r1, r2, 0 - adds r1, 0x44 - movs r3, 0 - movs r0, 0 - strh r0, [r1] - cmp r4, 0 - beq _08044C44 - adds r0, r2, 0 - adds r0, 0x48 - strb r3, [r0] - adds r0, 0x8 - strb r3, [r0] - adds r1, 0x14 - ldr r0, _08044C4C - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1 - negs r0, r0 - strh r0, [r1] -_08044C44: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08044C4C: .4byte 0x0000ffff - thumb_func_end sub_8044C10 - - thumb_func_start sub_8044C50 -sub_8044C50: - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_8083654 - adds r2, r0, 0 - adds r0, 0x44 - movs r1, 0 - strh r4, [r0] - adds r0, 0x4 - strb r1, [r0] - adds r0, 0x8 - strb r1, [r0] - adds r1, r2, 0 - adds r1, 0x58 - ldr r0, _08044C84 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1 - negs r0, r0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08044C84: .4byte 0x0000ffff - thumb_func_end sub_8044C50 - - thumb_func_start sub_8044C88 -sub_8044C88: - movs r2, 0 - movs r1, 0 - strh r1, [r0] - strb r2, [r0, 0x4] - strb r2, [r0, 0xC] - bx lr - thumb_func_end sub_8044C88 - - thumb_func_start sub_8044C94 -sub_8044C94: - movs r2, 0 - strh r1, [r0] - strb r2, [r0, 0x4] - strb r2, [r0, 0xC] - bx lr - thumb_func_end sub_8044C94 - - thumb_func_start sub_8044CA0 -sub_8044CA0: - push {r4,lr} - adds r4, r0, 0 - lsls r0, r1, 16 - asrs r0, 16 - bl sub_808DB48 - lsls r0, 24 - cmp r0, 0 - beq _08044CB6 - movs r0, 0x2 - b _08044CB8 -_08044CB6: - movs r0, 0x1 -_08044CB8: - strh r0, [r4] - movs r0, 0 - strb r0, [r4, 0x4] - strb r0, [r4, 0xC] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8044CA0 - - thumb_func_start sub_8044CC8 -sub_8044CC8: - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldrb r1, [r2] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _08044CEC - ldr r0, _08044CE8 - ldrb r1, [r2] - lsls r1, 2 - subs r1, 0x4 - ldr r0, [r0] - adds r0, r1 - b _08044D34 - .align 2, 0 -_08044CE8: .4byte gUnknown_203B460 -_08044CEC: - adds r0, r1, 0 - cmp r0, 0x80 - bne _08044D06 - movs r1, 0x4 - ldrsh r0, [r2, r1] - movs r3, 0x6 - ldrsh r1, [r2, r3] - bl sub_804954C - ldr r0, [r0, 0x14] - bl sub_8045108 - b _08044D34 -_08044D06: - cmp r0, 0x81 - bne _08044D0E - ldr r0, [r3, 0x70] - b _08044D32 -_08044D0E: - adds r0, r1, 0 - adds r0, 0x70 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _08044D1E - movs r0, 0 - b _08044D34 -_08044D1E: - ldr r0, _08044D38 - ldr r1, [r0] - ldrb r0, [r2] - subs r0, 0x90 - lsls r0, 2 - ldr r2, _08044D3C - adds r1, r2 - adds r1, r0 - ldr r0, [r1] - ldr r0, [r0, 0x70] -_08044D32: - adds r0, 0x60 -_08044D34: - pop {r1} - bx r1 - .align 2, 0 -_08044D38: .4byte gUnknown_203B418 -_08044D3C: .4byte 0x0001357c - thumb_func_end sub_8044CC8 - - thumb_func_start sub_8044D40 -sub_8044D40: - push {lr} - lsls r1, 3 - adds r1, 0x4 - adds r2, r0, r1 - ldrb r1, [r2] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _08044D74 - ldr r1, _08044D70 - ldrb r0, [r2] - lsls r0, 2 - subs r0, 0x4 - ldr r1, [r1] - adds r1, r0 - movs r0, 0 - strb r0, [r1, 0x2] - strb r0, [r1, 0x1] - strb r0, [r1] - bl sub_80910B4 - b _08044D88 - .align 2, 0 -_08044D70: .4byte gUnknown_203B460 -_08044D74: - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, 0x80 - beq _08044D80 - movs r0, 0 - b _08044D8A -_08044D80: - adds r0, r2, 0x4 - movs r1, 0x1 - bl sub_80461C8 -_08044D88: - movs r0, 0x1 -_08044D8A: - pop {r1} - bx r1 - thumb_func_end sub_8044D40 - - thumb_func_start sub_8044D90 -sub_8044D90: - push {lr} - ldr r3, [r0, 0x70] - lsls r1, 3 - adds r1, 0x48 - adds r3, r1 - adds r1, r3, 0 - bl sub_8044CC8 - pop {r1} - bx r1 - thumb_func_end sub_8044D90 - - thumb_func_start sub_8044DA4 -sub_8044DA4: - ldr r0, [r0, 0x70] - ldr r2, _08044DC0 - ldr r2, [r2] - lsls r1, 3 - adds r0, r1 - adds r0, 0x48 - ldrb r0, [r0] - lsls r0, 2 - ldr r1, _08044DC4 - adds r2, r1 - adds r2, r0 - ldr r0, [r2] - bx lr - .align 2, 0 -_08044DC0: .4byte gUnknown_203B418 -_08044DC4: .4byte 0x0001357c - thumb_func_end sub_8044DA4 - - thumb_func_start sub_8044DC8 -sub_8044DC8: - push {r4,lr} - adds r1, r0, 0 - ldrb r0, [r1, 0x2] - cmp r0, 0xE9 - beq _08044DE8 - ldr r4, _08044DE4 - bl sub_8090BD0 - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r0, [r0] - b _08044DEA - .align 2, 0 -_08044DE4: .4byte gUnknown_80F6964 -_08044DE8: - movs r0, 0x35 -_08044DEA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8044DC8 - - thumb_func_start sub_8044DF0 -sub_8044DF0: - push {r4,lr} - ldr r4, [r0, 0x70] - bl sub_8044D90 - adds r1, r0, 0 - adds r0, r4, 0 - adds r0, 0x48 - ldrb r0, [r0] - cmp r0, 0x80 - bne _08044E10 - adds r0, r4, 0 - adds r0, 0x4C - movs r1, 0x1 - bl sub_80461C8 - b _08044E1C -_08044E10: - movs r0, 0 - strb r0, [r1, 0x2] - strb r0, [r1, 0x1] - strb r0, [r1] - bl sub_80910B4 -_08044E1C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8044DF0 - - thumb_func_start sub_8044E24 -sub_8044E24: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r1, 0 - adds r7, r2, 0 - bl sub_8044D90 - adds r5, r0, 0 - ldr r0, [r4, 0x70] - mov r8, r0 - ldrb r0, [r5, 0x2] - bl sub_80915A0 - lsls r0, 24 - cmp r0, 0 - bne _08044EBA - ldrb r0, [r5, 0x2] - bl sub_8090BD0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _08044EB0 - lsls r1, r6, 3 - mov r2, r8 - adds r0, r2, r1 - adds r0, 0x48 - ldrb r0, [r0] - cmp r0, 0x80 - bne _08044EA4 - ldr r0, [r5] - str r0, [sp] - adds r4, r1, r2 - adds r4, 0x4C - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80461C8 - ldrb r1, [r5, 0x2] - subs r1, 0x7D - lsls r1, 24 - lsrs r1, 16 - ldr r2, _08044E9C - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - ldr r1, _08044EA0 - ands r0, r1 - movs r1, 0xF8 - lsls r1, 15 - orrs r0, r1 - str r0, [sp] - adds r0, r4, 0 - mov r1, sp - movs r2, 0x1 - bl sub_80460F8 - b _08044EBA - .align 2, 0 -_08044E9C: .4byte 0xffff00ff -_08044EA0: .4byte 0xff00ffff -_08044EA4: - ldrb r0, [r5, 0x2] - subs r0, 0x7D - strb r0, [r5, 0x1] - movs r0, 0x7C - strb r0, [r5, 0x2] - b _08044EBA -_08044EB0: - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r7, 0 - bl sub_8044DF0 -_08044EBA: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8044E24 - - thumb_func_start sub_8044EC8 -sub_8044EC8: - push {r4,r5,lr} - adds r5, r0, 0 - ldr r1, _08044EE8 - lsls r0, r5, 2 - adds r0, r1 - ldrh r4, [r0] - cmp r4, 0x26 - bne _08044EF0 - bl sub_8043D10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08044EF0 - ldr r0, _08044EEC - b _08044F2C - .align 2, 0 -_08044EE8: .4byte gUnknown_202EE44 -_08044EEC: .4byte gUnknown_80F91EC -_08044EF0: - ldr r1, _08044F10 - lsls r0, r4, 3 - adds r4, r0, r1 - ldr r0, [r4] - ldr r1, _08044F14 - bl strcmp - cmp r0, 0 - beq _08044F04 - movs r0, 0x1 -_08044F04: - lsls r0, 24 - cmp r0, 0 - beq _08044F18 - ldr r0, [r4] - b _08044F2E - .align 2, 0 -_08044F10: .4byte gUnknown_80F7C50 -_08044F14: .4byte gUnknown_80F697C -_08044F18: - ldr r4, _08044F34 - ldr r1, _08044F38 - lsls r0, r5, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - bl sub_8090D6C - lsls r0, 3 - adds r4, 0x4 - adds r0, r4 -_08044F2C: - ldr r0, [r0] -_08044F2E: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08044F34: .4byte gUnknown_80F7B14 -_08044F38: .4byte gUnknown_202EE44 - thumb_func_end sub_8044EC8 - - thumb_func_start sub_8044F3C -sub_8044F3C: - push {lr} - adds r1, r0, 0 - cmp r1, 0 - blt _08044F54 - ldr r0, _08044F50 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x3] - b _08044F56 - .align 2, 0 -_08044F50: .4byte gUnknown_202EE44 -_08044F54: - movs r0, 0 -_08044F56: - pop {r1} - bx r1 - thumb_func_end sub_8044F3C - - thumb_func_start sub_8044F5C -sub_8044F5C: - push {r4-r7,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _08044FAC - ldr r2, [r0] - adds r6, r0, 0 - cmp r2, 0x9 - bgt _08044FA4 - movs r3, 0 - ldr r5, _08044FB0 - cmp r3, r2 - bge _08044F8A - adds r1, r2, 0 - adds r2, r5, 0 -_08044F7C: - ldrh r0, [r2] - cmp r0, r4 - beq _08044FA4 - adds r2, 0x4 - adds r3, 0x1 - cmp r3, r1 - blt _08044F7C -_08044F8A: - ldr r0, [r6] - lsls r0, 2 - adds r0, r5 - strh r4, [r0] - strb r7, [r0, 0x2] - ldr r0, [r6] - lsls r0, 2 - adds r0, r5 - movs r1, 0x1 - strb r1, [r0, 0x3] - ldr r0, [r6] - adds r0, 0x1 - str r0, [r6] -_08044FA4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08044FAC: .4byte gUnknown_202EE6C -_08044FB0: .4byte gUnknown_202EE44 - thumb_func_end sub_8044F5C - - thumb_func_start sub_8044FB4 -sub_8044FB4: - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - movs r1, 0 - ldr r0, _08044FD4 - ldr r0, [r0] - cmp r1, r0 - bge _08044FE4 - adds r3, r0, 0 - ldr r2, _08044FD8 -_08044FC8: - ldrh r0, [r2] - cmp r0, r4 - bne _08044FDC - adds r0, r1, 0 - b _08044FE8 - .align 2, 0 -_08044FD4: .4byte gUnknown_202EE6C -_08044FD8: .4byte gUnknown_202EE44 -_08044FDC: - adds r2, 0x4 - adds r1, 0x1 - cmp r1, r3 - blt _08044FC8 -_08044FE4: - movs r0, 0x1 - negs r0, r0 -_08044FE8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8044FB4 - - thumb_func_start sub_8044FF0 -sub_8044FF0: - push {r4,r5,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r1, _08045010 - ldr r0, [r1] - cmp r2, r0 - bge _08045022 - movs r5, 0 - adds r4, r1, 0 - ldr r1, _08045014 -_08045006: - ldrh r0, [r1] - cmp r0, r3 - bne _08045018 - strb r5, [r1, 0x3] - b _08045022 - .align 2, 0 -_08045010: .4byte gUnknown_202EE6C -_08045014: .4byte gUnknown_202EE44 -_08045018: - adds r1, 0x4 - adds r2, 0x1 - ldr r0, [r4] - cmp r2, r0 - blt _08045006 -_08045022: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8044FF0 - - thumb_func_start sub_8045028 -sub_8045028: - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - ldr r0, [r2, 0x70] - adds r4, r0, 0 - adds r4, 0x44 - cmp r1, 0 - beq _08045044 - adds r0, r2, 0 - bl sub_8045888 - lsls r0, 24 - cmp r0, 0 - beq _0804505A -_08045044: - ldrh r0, [r4] - cmp r0, 0 - beq _0804505A - cmp r0, 0x2 - beq _0804505A - cmp r0, 0x1 - beq _0804505A - cmp r0, 0x5 - beq _0804505A - movs r0, 0 - b _0804505C -_0804505A: - movs r0, 0x1 -_0804505C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8045028 - - thumb_func_start sub_8045064 -sub_8045064: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r1, 0 - ldr r0, _080450D4 - mov r8, r0 - ldr r0, [r0] - cmp r1, r0 - bge _080450C8 - mov r7, r8 - ldr r2, _080450D8 - mov r9, r2 - ldr r0, _080450DC - mov r12, r0 -_08045082: - adds r4, r1, 0x1 - ldr r0, [r7] - adds r5, r4, 0 - cmp r5, r0 - bge _080450BE - lsls r0, r1, 2 - mov r1, r12 - adds r3, r0, r1 - mov r6, r9 - lsls r0, r5, 2 - adds r2, r0, r1 -_08045098: - ldrh r1, [r3] - lsls r1, 3 - adds r1, r6 - ldrh r0, [r2] - lsls r0, 3 - adds r0, r6 - ldr r1, [r1] - ldr r0, [r0] - cmp r1, r0 - ble _080450B4 - ldr r1, [r3] - ldr r0, [r2] - str r0, [r3] - str r1, [r2] -_080450B4: - adds r2, 0x4 - adds r4, 0x1 - ldr r0, [r7] - cmp r4, r0 - blt _08045098 -_080450BE: - adds r1, r5, 0 - mov r2, r8 - ldr r0, [r2] - cmp r1, r0 - blt _08045082 -_080450C8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080450D4: .4byte gUnknown_202EE6C -_080450D8: .4byte gUnknown_80F7C54 -_080450DC: .4byte gUnknown_202EE44 - thumb_func_end sub_8045064 - - thumb_func_start sub_80450E0 -sub_80450E0: - push {lr} - cmp r0, 0 - bne _080450EA - movs r0, 0 - b _080450F2 -_080450EA: - ldr r0, [r0] - cmp r0, 0 - beq _080450F2 - movs r0, 0x1 -_080450F2: - pop {r1} - bx r1 - thumb_func_end sub_80450E0 - - thumb_func_start sub_80450F8 -sub_80450F8: - ldr r0, [r0] - bx lr - thumb_func_end sub_80450F8 - - thumb_func_start sub_80450FC -sub_80450FC: - adds r0, 0x25 - ldrb r0, [r0] - bx lr - thumb_func_end sub_80450FC - - thumb_func_start sub_8045104 -sub_8045104: - ldr r0, [r0, 0x70] - bx lr - thumb_func_end sub_8045104 - - thumb_func_start sub_8045108 -sub_8045108: - ldr r0, [r0, 0x70] - bx lr - thumb_func_end sub_8045108 - - thumb_func_start sub_804510C -sub_804510C: - ldr r0, [r0, 0x70] - bx lr - thumb_func_end sub_804510C - - thumb_func_start sub_8045110 -sub_8045110: - ldr r0, [r0, 0x70] - bx lr - thumb_func_end sub_8045110 - - thumb_func_start sub_8045114 -sub_8045114: - push {lr} - movs r1, 0x4 - ldrsh r2, [r0, r1] - movs r3, 0x6 - ldrsh r1, [r0, r3] - adds r0, r2, 0 - bl sub_804954C - pop {r1} - bx r1 - thumb_func_end sub_8045114 - - thumb_func_start sub_8045128 -sub_8045128: - push {lr} - movs r1, 0x4 - ldrsh r2, [r0, r1] - movs r3, 0x6 - ldrsh r1, [r0, r3] - adds r0, r2, 0 - bl sub_8049590 - pop {r1} - bx r1 - thumb_func_end sub_8045128 - - thumb_func_start sub_804513C -sub_804513C: - push {r4-r7,lr} - movs r3, 0 - ldr r7, _080451FC - ldr r6, _08045200 - ldr r4, _08045204 - movs r5, 0 -_08045148: - ldr r0, [r7] - lsls r2, r3, 2 - adds r1, r0, r6 - adds r1, r2 - adds r0, r4 - str r0, [r1] - str r5, [r0] - adds r4, 0x74 - adds r3, 0x1 - cmp r3, 0x3 - ble _08045148 - ldr r1, _08045208 - movs r2, 0 - adds r0, r1, 0x5 -_08045164: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08045164 - movs r3, 0 - ldr r7, _080451FC - ldr r6, _0804520C - ldr r4, _08045210 - movs r5, 0 -_08045176: - ldr r0, [r7] - lsls r2, r3, 2 - adds r1, r0, r6 - adds r1, r2 - adds r0, r4 - str r0, [r1] - str r5, [r0] - adds r4, 0x74 - adds r3, 0x1 - cmp r3, 0xF - ble _08045176 - ldr r1, _08045214 - movs r2, 0 - adds r0, r1, 0 - adds r0, 0xF -_08045194: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08045194 - movs r3, 0 - ldr r5, _080451FC - ldr r4, _08045218 - movs r2, 0 -_080451A4: - ldr r0, [r5] - lsls r1, r3, 2 - adds r0, r4 - adds r0, r1 - str r2, [r0] - adds r3, 0x1 - cmp r3, 0x13 - ble _080451A4 - movs r3, 0 - ldr r7, _080451FC - ldr r6, _0804521C - ldr r4, _08045220 - movs r5, 0 -_080451BE: - ldr r0, [r7] - lsls r2, r3, 2 - adds r1, r0, r6 - adds r1, r2 - adds r0, r4 - str r0, [r1] - str r5, [r0] - adds r4, 0x74 - adds r3, 0x1 - cmp r3, 0x3F - ble _080451BE - movs r3, 0 - ldr r7, _080451FC - ldr r6, _08045224 - ldr r4, _08045228 - movs r5, 0 -_080451DE: - ldr r0, [r7] - lsls r2, r3, 2 - adds r1, r0, r6 - adds r1, r2 - adds r0, r4 - str r0, [r1] - str r5, [r0] - adds r4, 0x74 - adds r3, 0x1 - cmp r3, 0x3F - ble _080451DE - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080451FC: .4byte gUnknown_203B418 -_08045200: .4byte 0x0001357c -_08045204: .4byte 0x0001381c -_08045208: .4byte gUnknown_202EE70 -_0804520C: .4byte 0x0001358c -_08045210: .4byte 0x000139ec -_08045214: .4byte gUnknown_202EE76 -_08045218: .4byte 0x000135cc -_0804521C: .4byte 0x0001361c -_08045220: .4byte 0x0001412c -_08045224: .4byte 0x0001371c -_08045228: .4byte 0x00015e2c - thumb_func_end sub_804513C - - thumb_func_start sub_804522C -sub_804522C: - push {r4-r7,lr} - sub sp, 0x4 - ldr r2, _08045274 - ldr r0, [r2] - ldr r3, _08045278 - adds r1, r0, r3 - ldrb r7, [r1] - ldr r1, _0804527C - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080452AA - movs r6, 0 - adds r7, r2, 0 -_08045248: - ldr r0, [r7] - lsls r1, r6, 2 - ldr r2, _08045280 - adds r0, r2 - adds r0, r1 - ldr r5, [r0] - adds r0, r5, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080452A2 - ldr r0, [r7] - ldr r3, _08045284 - adds r0, r3 - ldr r0, [r0] - cmp r5, r0 - bne _08045288 - adds r0, r5, 0 - bl sub_806C51C - b _080452A2 - .align 2, 0 -_08045274: .4byte gUnknown_203B418 -_08045278: .4byte 0x00018210 -_0804527C: .4byte 0x0001820a -_08045280: .4byte 0x000135cc -_08045284: .4byte 0x000181f8 -_08045288: - ldr r4, [r5, 0x70] - adds r0, r5, 0 - bl sub_804187C - adds r2, r0, 0 - adds r0, r4, 0 - adds r0, 0x98 - ldr r0, [r0] - movs r3, 0x4 - ldrsh r1, [r4, r3] - movs r3, 0 - bl sub_800F75C -_080452A2: - adds r6, 0x1 - cmp r6, 0x13 - ble _08045248 - b _0804533E -_080452AA: - movs r6, 0 -_080452AC: - ldr r0, _08045348 - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _0804534C - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080452CC - adds r0, r4, 0 - bl sub_806C51C -_080452CC: - adds r6, 0x1 - cmp r6, 0x3 - ble _080452AC - movs r6, 0 -_080452D4: - ldr r5, _08045348 - ldr r0, [r5] - lsls r1, r6, 2 - ldr r3, _08045350 - adds r0, r3 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080452F4 - adds r0, r4, 0 - bl sub_806C51C -_080452F4: - adds r6, 0x1 - cmp r6, 0xF - ble _080452D4 - movs r6, 0 - ldr r0, [r5] - ldr r1, _08045354 - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r6, r0 - bge _08045336 - adds r4, r5, 0 -_0804530C: - ldr r0, [r4] - lsls r1, r6, 2 - ldr r3, _08045358 - adds r0, r3 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - str r1, [sp] - adds r1, r7, 0 - movs r2, 0x1 - movs r3, 0xFF - bl sub_80462AC - adds r6, 0x1 - ldr r0, [r4] - ldr r1, _08045354 - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r6, r0 - blt _0804530C -_08045336: - cmp r7, 0 - beq _0804533E - bl sub_807FA9C -_0804533E: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045348: .4byte gUnknown_203B418 -_0804534C: .4byte 0x0001357c -_08045350: .4byte 0x0001358c -_08045354: .4byte 0x00003904 -_08045358: .4byte 0x0001361c - thumb_func_end sub_804522C - - thumb_func_start sub_804535C -sub_804535C: - push {lr} - adds r2, r0, 0 - cmp r1, 0 - beq _0804536C - ldr r0, [r1] - str r0, [r2, 0xC] - ldr r0, [r1, 0x4] - b _0804538E -_0804536C: - movs r0, 0x4 - ldrsh r1, [r2, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1 - str r0, [r2, 0xC] - movs r0, 0x6 - ldrsh r1, [r2, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - movs r1, 0x80 - lsls r1, 5 - adds r0, r1 -_0804538E: - str r0, [r2, 0x10] - pop {r0} - bx r0 - thumb_func_end sub_804535C - - thumb_func_start sub_8045394 -sub_8045394: - str r1, [r0, 0xC] - str r2, [r0, 0x10] - bx lr - thumb_func_end sub_8045394 - - thumb_func_start sub_804539C -sub_804539C: - ldr r3, [r0, 0xC] - adds r3, r1 - str r3, [r0, 0xC] - ldr r1, [r0, 0x10] - adds r1, r2 - str r1, [r0, 0x10] - bx lr - thumb_func_end sub_804539C - - thumb_func_start sub_80453AC -sub_80453AC: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - asrs r0, 16 - mov r8, r0 - movs r0, 0x1 - negs r0, r0 - mov r9, r0 - mov r0, r8 - bl sub_808DACC - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - movs r0, 0x6 - subs r3, r0, r6 - ldr r4, _080453D8 - b _080453DE - .align 2, 0 -_080453D8: .4byte gUnknown_202EE70 -_080453DC: - adds r5, 0x1 -_080453DE: - cmp r5, r3 - bgt _08045400 - movs r2, 0 - cmp r2, r6 - bge _080453FA - adds r1, r5, r4 - b _080453F4 -_080453EC: - adds r1, 0x1 - adds r2, 0x1 - cmp r2, r6 - bge _080453FA -_080453F4: - ldrb r0, [r1] - cmp r0, 0 - beq _080453EC -_080453FA: - cmp r2, r6 - bne _080453DC - mov r9, r5 -_08045400: - movs r0, 0x1 - negs r0, r0 - cmp r9, r0 - beq _080454FC - movs r5, 0 - ldr r7, _080454DC -_0804540C: - ldr r1, _080454E0 - ldr r0, [r1] - lsls r1, r5, 2 - ldr r2, _080454E4 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0 - bne _080454F0 - movs r0, 0x1 - str r0, [r4] - adds r0, r4, 0 - adds r0, 0x24 - strb r5, [r0] - ldr r1, _080454E0 - ldr r0, [r1] - adds r0, r7 - str r0, [r4, 0x70] - mov r2, r8 - strh r2, [r0, 0x2] - movs r0, 0 - mov r1, r8 - bl sub_8069F54 - ldr r1, [r4, 0x70] - strh r0, [r1, 0x4] - ldr r0, [r4, 0x70] - movs r5, 0 - strb r5, [r0, 0x6] - movs r0, 0 - mov r1, r8 - bl sub_8069F54 - lsls r0, 16 - asrs r0, 16 - bl sub_80687D0 - str r0, [r4, 0x64] - mov r1, r9 - lsls r0, r1, 4 - adds r0, 0x40 - adds r1, r4, 0 - adds r1, 0x68 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x7 - strb r0, [r1] - adds r0, r4, 0 - adds r0, 0x6C - movs r2, 0 - strb r2, [r0] - adds r1, 0x1 - movs r0, 0xFF - strb r0, [r1] - adds r0, r4, 0 - adds r0, 0x6D - movs r5, 0x1 - strb r5, [r0] - adds r0, 0x2 - strb r5, [r0] - mov r0, r10 - str r0, [r4, 0x1C] - bl sub_8045ACC - ldr r0, [r4, 0x70] - ldr r1, _080454E8 - adds r0, r1 - mov r2, r9 - strb r2, [r0] - ldr r0, [r4, 0x70] - movs r5, 0xB4 - lsls r5, 1 - adds r0, r5 - strb r6, [r0] - cmp r6, 0 - beq _080454C6 - ldr r3, _080454EC - movs r2, 0x1 - adds r1, r6, 0 -_080454B6: - mov r5, r9 - adds r0, r5, r3 - strb r2, [r0] - movs r0, 0x1 - add r9, r0 - subs r1, 0x1 - cmp r1, 0 - bne _080454B6 -_080454C6: - ldr r1, _080454E0 - ldr r0, [r1] - movs r2, 0xCD - lsls r2, 3 - adds r0, r2 - ldrh r2, [r0] - adds r1, r2, 0x1 - strh r1, [r0] - strh r2, [r4, 0x26] - adds r0, r4, 0 - b _080454FE - .align 2, 0 -_080454DC: .4byte 0x0000069c -_080454E0: .4byte gUnknown_203B418 -_080454E4: .4byte 0x0001357c -_080454E8: .4byte 0x00000167 -_080454EC: .4byte gUnknown_202EE70 -_080454F0: - movs r0, 0x82 - lsls r0, 2 - adds r7, r0 - adds r5, 0x1 - cmp r5, 0x3 - ble _0804540C -_080454FC: - movs r0, 0 -_080454FE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80453AC - - thumb_func_start sub_804550C -sub_804550C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 16 - asrs r0, 16 - mov r8, r0 - movs r0, 0x1 - negs r0, r0 - mov r9, r0 - mov r0, r8 - bl sub_808DACC - lsls r0, 24 - lsrs r7, r0, 24 - movs r5, 0 - movs r0, 0x10 - subs r3, r0, r7 - ldr r4, _08045538 - b _0804553E - .align 2, 0 -_08045538: .4byte gUnknown_202EE76 -_0804553C: - adds r5, 0x1 -_0804553E: - cmp r5, r3 - bgt _08045560 - movs r2, 0 - cmp r2, r7 - bge _0804555A - adds r1, r5, r4 - b _08045554 -_0804554C: - adds r1, 0x1 - adds r2, 0x1 - cmp r2, r7 - bge _0804555A -_08045554: - ldrb r0, [r1] - cmp r0, 0 - beq _0804554C -_0804555A: - cmp r2, r7 - bne _0804553C - mov r9, r5 -_08045560: - movs r0, 0x1 - negs r0, r0 - cmp r9, r0 - bne _0804556A - b _08045670 -_0804556A: - movs r5, 0 - movs r1, 0x1 - mov r10, r1 - ldr r2, _08045650 - mov r3, r9 - lsls r0, r3, 4 - adds r0, 0xA0 - str r0, [sp] -_0804557A: - ldr r1, _08045654 - ldr r0, [r1] - lsls r1, r5, 2 - ldr r3, _08045658 - adds r0, r3 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - str r2, [sp, 0x4] - bl sub_80450E0 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, [sp, 0x4] - cmp r6, 0 - bne _08045664 - mov r0, r10 - str r0, [r4] - adds r0, r4, 0 - adds r0, 0x24 - strb r5, [r0] - subs r0, 0x2 - strb r6, [r0] - ldr r1, _08045654 - ldr r0, [r1] - adds r0, r2 - str r0, [r4, 0x70] - mov r2, r8 - strh r2, [r0, 0x2] - movs r0, 0 - mov r1, r8 - bl sub_8069F54 - ldr r1, [r4, 0x70] - strh r0, [r1, 0x4] - ldr r0, [r4, 0x70] - mov r3, r10 - strb r3, [r0, 0x6] - movs r0, 0 - mov r1, r8 - bl sub_8069F54 - lsls r0, 16 - asrs r0, 16 - bl sub_80687D0 - str r0, [r4, 0x64] - adds r0, r4, 0 - adds r0, 0x68 - mov r5, sp - ldrh r5, [r5] - strh r5, [r0] - adds r1, r4, 0 - adds r1, 0x6A - movs r0, 0x7 - strb r0, [r1] - adds r0, r4, 0 - adds r0, 0x6C - movs r1, 0 - strb r1, [r0] - adds r1, r4, 0 - adds r1, 0x6B - movs r0, 0xFF - strb r0, [r1] - adds r0, r4, 0 - adds r0, 0x6D - mov r2, r10 - strb r2, [r0] - adds r0, 0x2 - strb r2, [r0] - str r6, [r4, 0x1C] - ldr r0, [r4, 0x70] - ldr r3, _0804565C - adds r0, r3 - mov r5, r9 - strb r5, [r0] - ldr r0, [r4, 0x70] - movs r1, 0xB4 - lsls r1, 1 - adds r0, r1 - strb r7, [r0] - cmp r7, 0 - beq _08045636 - ldr r3, _08045660 - movs r2, 0x1 - adds r1, r7, 0 -_08045626: - mov r5, r9 - adds r0, r5, r3 - strb r2, [r0] - movs r0, 0x1 - add r9, r0 - subs r1, 0x1 - cmp r1, 0 - bne _08045626 -_08045636: - bl sub_8045ACC - ldr r1, _08045654 - ldr r0, [r1] - movs r2, 0xCD - lsls r2, 3 - adds r0, r2 - ldrh r2, [r0] - adds r1, r2, 0x1 - strh r1, [r0] - strh r2, [r4, 0x26] - adds r0, r4, 0 - b _08045672 - .align 2, 0 -_08045650: .4byte 0x00000ebc -_08045654: .4byte gUnknown_203B418 -_08045658: .4byte 0x0001358c -_0804565C: .4byte 0x00000167 -_08045660: .4byte gUnknown_202EE76 -_08045664: - movs r3, 0x82 - lsls r3, 2 - adds r2, r3 - adds r5, 0x1 - cmp r5, 0xF - ble _0804557A -_08045670: - movs r0, 0 -_08045672: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_804550C - - thumb_func_start sub_8045684 -sub_8045684: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - movs r5, 0 - ldr r7, _080456E4 - ldr r6, _080456E8 -_080456A2: - ldr r0, [r7] - lsls r1, r5, 2 - ldr r2, _080456EC - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080456F0 - movs r0, 0x2 - str r0, [r4] - ldr r0, [r7] - adds r0, r6 - str r0, [r4, 0x70] - mov r2, r8 - strb r2, [r0] - ldr r0, [r4, 0x70] - mov r2, r9 - strb r2, [r0, 0x1] - str r1, [r4, 0x1C] - adds r0, r4, 0 - adds r0, 0x22 - strb r1, [r0] - mov r2, r10 - ldr r0, [r2] - str r0, [r4, 0x4] - strh r1, [r4, 0x26] - adds r0, r4, 0 - b _080456FA - .align 2, 0 -_080456E4: .4byte gUnknown_203B418 -_080456E8: .4byte 0x00003908 -_080456EC: .4byte 0x0001371c -_080456F0: - adds r6, 0x4 - adds r5, 0x1 - cmp r5, 0x3F - ble _080456A2 - movs r0, 0 -_080456FA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8045684 - - thumb_func_start sub_8045708 -sub_8045708: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r0 - ldr r1, _08045744 - ldr r0, _08045748 - ldr r0, [r0] - ldr r2, _0804574C - adds r0, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0804579C - mov r1, r8 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r3, 0x2 - ldrsh r1, [r1, r3] - bl sub_8049590 - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - bne _0804579C - b _080457C4 - .align 2, 0 -_08045744: .4byte gUnknown_810ACC0 -_08045748: .4byte gUnknown_203B418 -_0804574C: .4byte 0x00003a0e -_08045750: - movs r0, 0x3 - str r0, [r4] - ldr r0, _08045798 - adds r1, r6, r0 - mov r2, r9 - ldr r0, [r2] - adds r0, r1 - str r0, [r4, 0x70] - mov r3, r8 - ldr r0, [r3] - str r0, [r4, 0x4] - movs r1, 0 - ldrsh r0, [r3, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x4 - lsls r1, 8 - movs r2, 0x2 - ldrsh r0, [r3, r2] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 3 - adds r2, 0x4 - lsls r2, 8 - adds r0, r4, 0 - bl sub_8045394 - movs r0, 0 - strh r7, [r4, 0x26] - adds r1, r4, 0 - adds r1, 0x22 - strb r0, [r1] - str r7, [r4, 0x1C] - adds r0, r4, 0 - b _080457C6 - .align 2, 0 -_08045798: .4byte 0x00003804 -_0804579C: - movs r5, 0 - ldr r3, _080457D4 - mov r9, r3 -_080457A2: - mov r1, r9 - ldr r0, [r1] - lsls r6, r5, 2 - ldr r2, _080457D8 - adds r0, r2 - adds r0, r6 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - beq _08045750 - adds r5, 0x1 - cmp r5, 0x3F - ble _080457A2 -_080457C4: - movs r0, 0 -_080457C6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080457D4: .4byte gUnknown_203B418 -_080457D8: .4byte 0x0001361c - thumb_func_end sub_8045708 - - thumb_func_start sub_80457DC -sub_80457DC: - push {r4-r6,lr} - adds r4, r0, 0 - movs r0, 0x5 - str r0, [r4] - movs r6, 0 - movs r5, 0 - strh r5, [r4, 0x4] - strh r5, [r4, 0x6] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl sub_8045394 - strh r5, [r4, 0x26] - adds r4, 0x22 - strb r6, [r4] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80457DC - - thumb_func_start sub_8045804 -sub_8045804: - push {r4-r6,lr} - adds r4, r0, 0 - bl sub_80450F8 - cmp r0, 0x1 - beq _0804581C - cmp r0, 0x1 - bcc _08045880 - cmp r0, 0x5 - beq _08045880 -_08045818: - movs r0, 0x1 - b _08045882 -_0804581C: - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08045880 - ldr r0, _08045874 - ldr r1, [r0] - ldr r0, _08045878 - adds r2, r1, r0 - ldr r5, [r2, 0x10] - ldr r3, [r4, 0x70] - ldrb r0, [r3, 0x6] - cmp r0, 0 - beq _08045818 - ldr r6, _0804587C - adds r0, r1, r6 - ldrb r0, [r0] - cmp r0, 0 - bne _0804584C - adds r0, r3, 0 - adds r0, 0xE4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08045880 -_0804584C: - adds r0, r2, 0 - adds r0, 0x23 - ldrb r0, [r0] - cmp r0, 0 - bne _08045818 - adds r0, r2, 0 - adds r0, 0x25 - ldrb r0, [r0] - cmp r0, 0 - bne _08045818 - cmp r5, 0 - beq _08045880 - adds r1, r4, 0x4 - adds r0, r2, 0 - bl sub_8083294 - lsls r0, 24 - lsrs r0, 24 - b _08045882 - .align 2, 0 -_08045874: .4byte gUnknown_203B418 -_08045878: .4byte 0x000181e8 -_0804587C: .4byte 0x0001820f -_08045880: - movs r0, 0 -_08045882: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8045804 - - thumb_func_start sub_8045888 -sub_8045888: - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08045988 - ldr r1, [r4, 0xC] - cmp r1, 0 - bge _0804589C - adds r1, 0xFF -_0804589C: - asrs r1, 8 - ldr r0, _080458F0 - ldr r2, [r0] - ldr r3, _080458F4 - adds r0, r2, r3 - movs r5, 0 - ldrsh r0, [r0, r5] - subs r3, r1, r0 - ldr r0, [r4, 0x10] - cmp r0, 0 - bge _080458B4 - adds r0, 0xFF -_080458B4: - asrs r0, 8 - ldr r5, _080458F8 - adds r1, r2, r5 - movs r5, 0 - ldrsh r1, [r1, r5] - subs r1, r0, r1 - movs r0, 0x20 - negs r0, r0 - cmp r3, r0 - blt _08045988 - cmp r1, r0 - blt _08045988 - movs r0, 0x88 - lsls r0, 1 - cmp r3, r0 - bgt _08045988 - cmp r1, 0xC0 - bgt _08045988 - ldr r0, _080458FC - adds r5, r2, r0 - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0x5 - bhi _08045984 - lsls r0, 2 - ldr r1, _08045900 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080458F0: .4byte gUnknown_203B418 -_080458F4: .4byte 0x000181f0 -_080458F8: .4byte 0x000181f2 -_080458FC: .4byte 0x000181e8 -_08045900: .4byte _08045904 - .align 2, 0 -_08045904: - .4byte _08045988 - .4byte _08045934 - .4byte _08045964 - .4byte _0804591C - .4byte _08045984 - .4byte _08045988 -_0804591C: - adds r0, r5, 0 - adds r0, 0x26 -_08045920: - ldrb r0, [r0] - cmp r0, 0 - bne _08045984 - adds r0, r4, 0x4 - bl sub_803F428 - lsls r0, 24 -_0804592E: - cmp r0, 0 - bne _08045984 - b _08045988 -_08045934: - ldr r1, [r4, 0x70] - ldrb r0, [r1, 0x6] - cmp r0, 0 - beq _08045984 - ldr r0, _0804595C - ldr r0, [r0] - ldr r2, _08045960 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _08045954 - adds r0, r1, 0 - adds r0, 0xE4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08045988 -_08045954: - adds r0, r5, 0 - adds r0, 0x25 - b _08045920 - .align 2, 0 -_0804595C: .4byte gUnknown_203B418 -_08045960: .4byte 0x0001820f -_08045964: - ldr r0, _0804597C - ldr r0, [r0] - ldr r3, _08045980 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _08045984 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - b _0804592E - .align 2, 0 -_0804597C: .4byte gUnknown_203B418 -_08045980: .4byte 0x0001820f -_08045984: - movs r0, 0x1 - b _0804598A -_08045988: - movs r0, 0 -_0804598A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8045888 - - thumb_func_start sub_8045990 -sub_8045990: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080459E8 - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080459E8 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _080459E8 - ldr r0, [r4] - cmp r0, 0x1 - bne _080459EC - ldr r0, [r5] - cmp r0, 0x1 - bne _080459DE - adds r0, r5, 0 - bl sub_8071884 - lsls r0, 24 - cmp r0, 0 - bne _080459D8 - ldr r0, [r4, 0x70] - adds r0, 0xE4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080459E8 -_080459D8: - ldr r0, [r5, 0x70] - adds r0, 0xE8 - b _080459E2 -_080459DE: - ldr r0, [r4, 0x70] - adds r0, 0xE4 -_080459E2: - ldrb r0, [r0] - cmp r0, 0x1 - bne _080459EC -_080459E8: - movs r0, 0 - b _080459F8 -_080459EC: - adds r0, r5, 0x4 - adds r1, r4, 0x4 - bl sub_8083294 - lsls r0, 24 - lsrs r0, 24 -_080459F8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8045990 - - thumb_func_start sub_8045A00 -sub_8045A00: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08045A58 - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08045A58 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08045A58 - ldr r0, [r4] - cmp r0, 0x1 - bne _08045A5C - ldr r0, [r5] - cmp r0, 0x1 - bne _08045A4E - adds r0, r5, 0 - bl sub_8071884 - lsls r0, 24 - cmp r0, 0 - bne _08045A48 - ldr r0, [r4, 0x70] - adds r0, 0xE4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08045A58 -_08045A48: - ldr r0, [r5, 0x70] - adds r0, 0xE8 - b _08045A52 -_08045A4E: - ldr r0, [r4, 0x70] - adds r0, 0xE4 -_08045A52: - ldrb r0, [r0] - cmp r0, 0x1 - bne _08045A5C -_08045A58: - movs r0, 0 - b _08045A68 -_08045A5C: - adds r0, r5, 0x4 - adds r1, r4, 0x4 - bl sub_808333C - lsls r0, 24 - lsrs r0, 24 -_08045A68: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8045A00 - - thumb_func_start sub_8045A70 -sub_8045A70: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08045AA4 - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08045AA4 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08045AA4 - adds r0, r5, 0x4 - adds r1, r4, 0x4 - bl sub_8083294 - lsls r0, 24 - lsrs r0, 24 - b _08045AA6 -_08045AA4: - movs r0, 0 -_08045AA6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8045A70 - - thumb_func_start sub_8045AAC -sub_8045AAC: - push {lr} - adds r0, 0x4 - bl sub_8083294 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8045AAC - - thumb_func_start sub_8045ABC -sub_8045ABC: - push {lr} - adds r0, 0x4 - bl sub_808333C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8045ABC - - thumb_func_start sub_8045ACC -sub_8045ACC: - push {r4-r7,lr} - movs r6, 0 - movs r5, 0 - ldr r7, _08045B50 -_08045AD4: - ldr r0, [r7] - lsls r1, r5, 2 - ldr r2, _08045B54 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08045AFA - ldr r0, [r7] - lsls r1, r6, 2 - ldr r2, _08045B58 - adds r0, r2 - adds r0, r1 - str r4, [r0] - adds r6, 0x1 -_08045AFA: - adds r5, 0x1 - cmp r5, 0x3 - ble _08045AD4 - movs r5, 0 - ldr r7, _08045B50 -_08045B04: - ldr r0, [r7] - lsls r1, r5, 2 - ldr r2, _08045B5C - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08045B2A - ldr r0, [r7] - lsls r1, r6, 2 - ldr r2, _08045B58 - adds r0, r2 - adds r0, r1 - str r4, [r0] - adds r6, 0x1 -_08045B2A: - adds r5, 0x1 - cmp r5, 0xF - ble _08045B04 - cmp r6, 0x13 - bgt _08045B4A - ldr r4, _08045B50 - ldr r3, _08045B58 - movs r2, 0 -_08045B3A: - ldr r0, [r4] - lsls r1, r6, 2 - adds r0, r3 - adds r0, r1 - str r2, [r0] - adds r6, 0x1 - cmp r6, 0x13 - ble _08045B3A -_08045B4A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045B50: .4byte gUnknown_203B418 -_08045B54: .4byte 0x0001357c -_08045B58: .4byte 0x000135cc -_08045B5C: .4byte 0x0001358c - thumb_func_end sub_8045ACC - - thumb_func_start sub_8045B60 -sub_8045B60: - push {r4,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r0, _08045B78 - ldr r0, [r0] - ldr r4, _08045B7C - adds r1, r0, r4 -_08045B6E: - ldr r0, [r1] - cmp r3, r0 - bne _08045B80 - adds r0, r2, 0 - b _08045B8C - .align 2, 0 -_08045B78: .4byte gUnknown_203B418 -_08045B7C: .4byte 0x0001357c -_08045B80: - adds r1, 0x4 - adds r2, 0x1 - cmp r2, 0x3 - ble _08045B6E - movs r0, 0x1 - negs r0, r0 -_08045B8C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8045B60 - - thumb_func_start sub_8045B94 -sub_8045B94: - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0x2 - beq _08045BD2 - cmp r0, 0x2 - bhi _08045BB0 - cmp r0, 0x1 - beq _08045BB6 - b _08045BE2 -_08045BB0: - cmp r0, 0x3 - beq _08045BC2 - b _08045BE2 -_08045BB6: - ldr r1, [r4, 0x70] - adds r0, r5, 0 - adds r2, r6, 0 - bl sub_80708B4 - b _08045BEC -_08045BC2: - adds r0, r4, 0 - bl sub_8045110 - adds r1, r0, 0 - adds r0, r5, 0 - bl sub_8045BF8 - b _08045BEC -_08045BD2: - adds r0, r4, 0 - bl sub_804510C - ldrb r1, [r0] - adds r0, r5, 0 - bl sub_807FE84 - b _08045BEC -_08045BE2: - ldr r0, _08045BF4 - ldr r1, [r0] - adds r0, r5, 0 - bl strcpy -_08045BEC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08045BF4: .4byte gUnknown_80FE6F4 - thumb_func_end sub_8045B94 - - thumb_func_start sub_8045BF8 -sub_8045BF8: - push {lr} - ldr r2, _08045C04 - bl sub_8090E14 - pop {r0} - bx r0 - .align 2, 0 -_08045C04: .4byte gUnknown_80F699C - thumb_func_end sub_8045BF8 - - thumb_func_start sub_8045C08 -sub_8045C08: - push {lr} - ldr r2, _08045C14 - bl sub_8090E14 - pop {r0} - bx r0 - .align 2, 0 -_08045C14: .4byte gUnknown_80F69A8 - thumb_func_end sub_8045C08 - - thumb_func_start sub_8045C18 -sub_8045C18: - push {lr} - ldr r2, _08045C24 - bl sub_8090E14 - pop {r0} - bx r0 - .align 2, 0 -_08045C24: .4byte gUnknown_80F6990 - thumb_func_end sub_8045C18 - - thumb_func_start sub_8045C28 -sub_8045C28: - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r2, 0 - lsls r1, 24 - lsrs r4, r1, 24 - adds r1, r4, 0 - movs r2, 0 - bl sub_8090A8C - movs r7, 0 - adds r0, r4, 0 - bl sub_8091544 - lsls r0, 24 - cmp r0, 0 - beq _08045C72 - cmp r6, 0 - bne _08045C6C - movs r0, 0x64 - bl sub_8084100 - ldr r1, _08045C64 - ldr r1, [r1] - ldr r2, _08045C68 - adds r1, r2 - ldrb r1, [r1] - cmp r0, r1 - bge _08045C72 - b _08045C76 - .align 2, 0 -_08045C64: .4byte gUnknown_203B418 -_08045C68: .4byte 0x0001c57e -_08045C6C: - cmp r6, 0x1 - bne _08045C72 - movs r7, 0x1 -_08045C72: - cmp r7, 0 - beq _08045C7E -_08045C76: - ldrb r1, [r5] - movs r0, 0x8 - orrs r0, r1 - strb r0, [r5] -_08045C7E: - adds r0, r4, 0 - bl sub_8090BD0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _08045CA2 - ldr r0, _08045CA8 - ldr r0, [r0] - ldr r1, _08045CAC - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r0, r5, 0 - bl sub_8046CE4 -_08045CA2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045CA8: .4byte gUnknown_203B418 -_08045CAC: .4byte 0x0001c58b - thumb_func_end sub_8045C28 - - thumb_func_start sub_8045CB0 -sub_8045CB0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0x38 - bl sub_8084100 - adds r5, r0, 0 - movs r0, 0x20 - bl sub_8084100 - adds r6, r0, 0 - ldr r0, _08045D34 - ldr r0, [r0] - ldr r1, _08045D38 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - movs r0, 0 -_08045CDA: - adds r6, 0x1 - cmp r6, 0x20 - bne _08045CE2 - movs r6, 0 -_08045CE2: - adds r0, 0x1 - mov r10, r0 - movs r3, 0x2 - mov r9, r3 - movs r0, 0x37 - mov r8, r0 -_08045CEE: - adds r5, 0x1 - cmp r5, 0x38 - bne _08045CF6 - movs r5, 0 -_08045CF6: - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_804954C - adds r2, r0, 0 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 2 - adds r1, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _08045D92 - ldrh r1, [r2, 0x4] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - beq _08045D92 - movs r7, 0 - lsls r0, r5, 16 - lsls r1, r6, 16 - lsrs r0, 16 - orrs r0, r1 - str r0, [sp, 0x4] - ldrh r1, [r2] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08045D3C - movs r7, 0x1 - movs r0, 0x1 - b _08045D58 - .align 2, 0 -_08045D34: .4byte gUnknown_203B418 -_08045D38: .4byte 0x00003904 -_08045D3C: - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08045D48 - movs r0, 0x3 - b _08045D58 -_08045D48: - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r0, 16 - negs r0, r0 - asrs r0, 31 - mov r1, r9 - ands r0, r1 -_08045D58: - bl sub_803D73C - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - bl sub_80914E4 - lsls r0, 24 - cmp r0, 0 - bne _08045D6E - movs r7, 0 -_08045D6E: - mov r0, sp - adds r1, r4, 0 - movs r2, 0 - bl sub_8045C28 - cmp r7, 0 - beq _08045D88 - mov r0, sp - ldrb r1, [r0] - mov r0, r9 - orrs r0, r1 - mov r1, sp - strb r0, [r1] -_08045D88: - add r0, sp, 0x4 - mov r1, sp - movs r2, 0x1 - bl sub_80460F8 -_08045D92: - movs r3, 0x1 - negs r3, r3 - add r8, r3 - mov r0, r8 - cmp r0, 0 - bge _08045CEE - mov r0, r10 - cmp r0, 0x1F - ble _08045CDA - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8045CB0 - - thumb_func_start sub_8045DB4 -sub_8045DB4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xB8 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0xA8] - bl sub_8083600 - adds r7, r0, 0 - ldr r0, [r7, 0x70] - str r0, [sp, 0xAC] - mov r1, r10 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r3, 0x2 - ldrsh r1, [r1, r3] - bl sub_804954C - ldr r4, [r0, 0x14] - cmp r4, 0 - bne _08045DE8 - b _080460E0 -_08045DE8: - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0x3 - beq _08045DF4 - b _080460E0 -_08045DF4: - adds r0, r4, 0 - bl sub_8045108 - adds r5, r0, 0 - ldr r0, [sp, 0xAC] - adds r0, 0x48 - ldrb r0, [r0] - cmp r0, 0 - bne _08045E08 - b _0804602E -_08045E08: - adds r0, r7, 0 - movs r1, 0x1 - bl sub_8071518 - lsls r0, 24 - cmp r0, 0 - beq _08045E40 - ldr r0, [sp, 0xA8] - cmp r0, 0 - bne _08045E1E - b _080460E0 -_08045E1E: - ldr r0, _08045E34 - adds r1, r5, 0 - bl sub_8045BF8 - ldr r0, _08045E38 - adds r1, r7, 0 - movs r2, 0 - bl sub_8045B94 - ldr r0, _08045E3C - b _08046048 - .align 2, 0 -_08045E34: .4byte gUnknown_202DE58 -_08045E38: .4byte gUnknown_202DF98 -_08045E3C: .4byte gUnknown_80F8F88 -_08045E40: - ldrb r0, [r5, 0x2] - bl sub_8090BD0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _08045E7C - movs r0, 0xA6 - lsls r0, 1 - bl sub_8083E38 - adds r0, r5, 0 - bl sub_80915D4 - bl sub_80913A0 - ldr r0, _08045E74 - adds r1, r5, 0 - bl sub_8045BF8 - mov r0, r10 - movs r1, 0x1 - bl sub_80461C8 - ldr r0, _08045E78 - b _08045FD0 - .align 2, 0 -_08045E74: .4byte gUnknown_202DE58 -_08045E78: .4byte gUnknown_80F8FFC -_08045E7C: - ldr r0, _08045EA8 - ldr r0, [r0] - ldr r1, _08045EAC - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08045EB4 - movs r4, 0 - ldr r0, _08045EB0 - mov r2, sp - ldr r0, [r0] - add r1, sp, 0x54 -_08045E94: - stm r1!, {r0} - stm r2!, {r4} - adds r0, 0x4 - adds r4, 0x1 - cmp r4, 0x13 - ble _08045E94 - movs r2, 0x14 - mov r8, r2 - b _08045EC4 - .align 2, 0 -_08045EA8: .4byte gUnknown_203B418 -_08045EAC: .4byte 0x0000065b -_08045EB0: .4byte gUnknown_203B460 -_08045EB4: - ldr r0, [sp, 0xAC] - adds r0, 0x60 - str r0, [sp, 0x54] - movs r0, 0x1 - negs r0, r0 - str r0, [sp] - movs r3, 0x1 - mov r8, r3 -_08045EC4: - ldrb r0, [r5, 0x2] - add r6, sp, 0xB0 - strb r0, [r6] - cmp r0, 0x8 - bls _08045ED0 - b _08046000 -_08045ED0: - ldrb r1, [r5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08045EDC - b _08046000 -_08045EDC: - movs r1, 0x1 - negs r1, r1 - mov r12, r1 - mov r2, r12 - str r2, [sp, 0xB4] - movs r4, 0 - cmp r4, r8 - bge _08045F2C - ldr r3, _08045FDC - mov r9, r3 - add r3, sp, 0x54 -_08045EF2: - ldr r2, [r3] - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08045F24 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08045F24 - ldr r1, [r5] - mov r6, r9 - ands r1, r6 - ldr r0, [r2] - ands r0, r6 - cmp r1, r0 - bne _08045F24 - ldrb r0, [r2, 0x1] - cmp r0, 0x63 - beq _08045F24 - ldr r1, [sp, 0xB4] - cmp r1, r0 - bge _08045F24 - str r0, [sp, 0xB4] - mov r12, r4 -_08045F24: - adds r3, 0x4 - adds r4, 0x1 - cmp r4, r8 - blt _08045EF2 -_08045F2C: - movs r0, 0x1 - negs r0, r0 - cmp r12, r0 - bne _08045F80 - mov r2, r12 - str r2, [sp, 0xB4] - movs r4, 0 - cmp r4, r8 - bge _08045F78 - add r3, sp, 0xB0 - ldrb r3, [r3] - mov r9, r3 - add r3, sp, 0x54 -_08045F46: - ldr r2, [r3] - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08045F70 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08045F70 - ldrb r6, [r2, 0x2] - cmp r9, r6 - bne _08045F70 - ldrb r0, [r2, 0x1] - cmp r0, 0x63 - beq _08045F70 - ldr r1, [sp, 0xB4] - cmp r1, r0 - bge _08045F70 - str r0, [sp, 0xB4] - mov r12, r4 -_08045F70: - adds r3, 0x4 - adds r4, 0x1 - cmp r4, r8 - blt _08045F46 -_08045F78: - movs r0, 0x1 - negs r0, r0 - cmp r12, r0 - beq _08046000 -_08045F80: - add r0, sp, 0x54 - mov r2, r12 - lsls r4, r2, 2 - adds r3, r0, r4 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r5, 0x1] - adds r1, r0 - cmp r1, 0x62 - ble _08045F96 - movs r1, 0x63 -_08045F96: - strb r1, [r2, 0x1] - ldrb r1, [r5] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08045FAC - ldr r0, [r3] - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_08045FAC: - ldr r0, _08045FE0 - adds r1, r5, 0 - bl sub_8045BF8 - mov r0, r10 - movs r1, 0x1 - bl sub_80461C8 - movs r0, 0xA5 - lsls r0, 1 - bl sub_8083E38 - mov r3, sp - adds r0, r3, r4 - ldr r0, [r0] - cmp r0, 0 - bge _08045FE8 - ldr r0, _08045FE4 -_08045FD0: - ldr r1, [r0] - adds r0, r7, 0 - bl sub_80522A8 - b _08045FF2 - .align 2, 0 -_08045FDC: .4byte 0x00ff0008 -_08045FE0: .4byte gUnknown_202DE58 -_08045FE4: .4byte gUnknown_80F8FC4 -_08045FE8: - ldr r0, _08045FFC - ldr r1, [r0] - adds r0, r7, 0 - bl sub_80522A8 -_08045FF2: - ldrb r0, [r5, 0x2] - bl sub_8052EC0 - b _080460E0 - .align 2, 0 -_08045FFC: .4byte gUnknown_80F8FF8 -_08046000: - movs r4, 0 - cmp r4, r8 - bge _0804602A - ldr r0, [sp, 0x54] - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804602A - movs r3, 0x1 - add r2, sp, 0x54 -_08046016: - adds r2, 0x4 - adds r4, 0x1 - cmp r4, r8 - bge _0804602A - ldr r0, [r2] - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _08046016 -_0804602A: - cmp r4, r8 - bne _08046060 -_0804602E: - ldr r6, [sp, 0xA8] - cmp r6, 0 - beq _080460E0 - ldr r0, _08046054 - adds r1, r5, 0 - bl sub_8045BF8 - ldr r0, _08046058 - adds r1, r7, 0 - movs r2, 0 - bl sub_8045B94 - ldr r0, _0804605C -_08046048: - ldr r1, [r0] - adds r0, r7, 0 - bl sub_80522A8 - b _080460E0 - .align 2, 0 -_08046054: .4byte gUnknown_202DE58 -_08046058: .4byte gUnknown_202DF98 -_0804605C: .4byte gUnknown_80F8F54 -_08046060: - movs r0, 0xA5 - lsls r0, 1 - bl sub_8083E38 - lsls r0, r4, 2 - add r0, sp - ldr r0, [r0] - cmp r0, 0 - bge _08046094 - ldr r0, [r5] - ldr r1, [sp, 0xAC] - str r0, [r1, 0x60] - ldr r0, _0804608C - adds r1, r5, 0 - bl sub_8045BF8 - mov r0, r10 - movs r1, 0x1 - bl sub_80461C8 - ldr r0, _08046090 - b _080460AC - .align 2, 0 -_0804608C: .4byte gUnknown_202DE58 -_08046090: .4byte gUnknown_80F8FC4 -_08046094: - adds r0, r5, 0 - bl sub_8091290 - lsls r0, 24 - cmp r0, 0 - beq _080460C0 - ldr r0, _080460B8 - adds r1, r7, 0 - movs r2, 0 - bl sub_8045B94 - ldr r0, _080460BC -_080460AC: - ldr r1, [r0] - adds r0, r7, 0 - bl sub_80522A8 - b _080460DA - .align 2, 0 -_080460B8: .4byte gUnknown_202DF98 -_080460BC: .4byte gUnknown_80F8FAC -_080460C0: - ldr r0, _080460F0 - adds r1, r5, 0 - bl sub_8045BF8 - mov r0, r10 - movs r1, 0x1 - bl sub_80461C8 - ldr r0, _080460F4 - ldr r1, [r0] - adds r0, r7, 0 - bl sub_80522A8 -_080460DA: - ldrb r0, [r5, 0x2] - bl sub_8052EC0 -_080460E0: - add sp, 0xB8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080460F0: .4byte gUnknown_202DE58 -_080460F4: .4byte gUnknown_80F8FF8 - thumb_func_end sub_8045DB4 - - thumb_func_start sub_80460F8 -sub_80460F8: - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - lsls r2, 24 - lsrs r7, r2, 24 - bl sub_8045708 - adds r4, r0, 0 - cmp r4, 0 - bne _08046110 - movs r0, 0 - b _080461B6 -_08046110: - ldr r1, [r4, 0x70] - ldr r0, [r6] - str r0, [r1] - ldr r2, [r4, 0x70] - ldrb r1, [r2] - movs r0, 0xEF - ands r0, r1 - strb r0, [r2] - adds r1, r4, 0 - adds r1, 0x20 - movs r0, 0x1 - strb r0, [r1] - movs r1, 0 - ldrsh r0, [r5, r1] - movs r2, 0x2 - ldrsh r1, [r5, r2] - bl sub_8049590 - str r4, [r0, 0x14] - ldrh r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08046186 - ldrb r0, [r6, 0x2] - bl sub_80914E4 - lsls r0, 24 - cmp r0, 0 - beq _08046186 - ldrb r1, [r6] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08046170 - cmp r7, 0 - beq _08046186 - adds r0, r6, 0 - bl sub_8090C7C - ldr r1, _08046168 - ldr r2, [r1] - ldr r1, _0804616C - b _0804617E - .align 2, 0 -_08046168: .4byte gUnknown_203B418 -_0804616C: .4byte 0x0000068c -_08046170: - adds r0, r6, 0 - bl sub_8090CCC - ldr r1, _080461BC - ldr r2, [r1] - movs r1, 0xD2 - lsls r1, 3 -_0804617E: - adds r2, r1 - ldr r1, [r2] - adds r1, r0 - str r1, [r2] -_08046186: - movs r6, 0 - movs r4, 0 -_0804618A: - ldr r5, _080461BC - ldr r0, [r5] - lsls r1, r4, 2 - ldr r2, _080461C0 - adds r0, r2 - adds r0, r1 - ldr r0, [r0] - bl sub_80450E0 - lsls r0, 24 - adds r1, r4, 0x1 - cmp r0, 0 - beq _080461A6 - adds r6, r1, 0 -_080461A6: - adds r4, r1, 0 - cmp r4, 0x3F - ble _0804618A - ldr r0, [r5] - ldr r1, _080461C4 - adds r0, r1 - strh r6, [r0] - movs r0, 0x1 -_080461B6: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080461BC: .4byte gUnknown_203B418 -_080461C0: .4byte 0x0001361c -_080461C4: .4byte 0x00003904 - thumb_func_end sub_80460F8 - - thumb_func_start sub_80461C8 -sub_80461C8: - push {r4-r7,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - movs r1, 0 - ldrsh r0, [r2, r1] - movs r3, 0x2 - ldrsh r1, [r2, r3] - bl sub_8049590 - adds r6, r0, 0 - ldr r5, [r6, 0x14] - cmp r5, 0 - beq _080461EE - adds r0, r5, 0 - bl sub_80450F8 - cmp r0, 0x3 - beq _080461F2 -_080461EE: - movs r0, 0 - b _08046284 -_080461F2: - adds r0, r5, 0 - bl sub_8045108 - adds r4, r0, 0 - ldrh r1, [r6] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0804624E - ldrb r0, [r4, 0x2] - bl sub_80914E4 - lsls r0, 24 - cmp r0, 0 - beq _0804624E - ldrb r1, [r4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08046238 - cmp r7, 0 - beq _0804624E - adds r0, r4, 0 - bl sub_8090C7C - ldr r1, _08046230 - ldr r2, [r1] - ldr r1, _08046234 - adds r2, r1 - b _08046248 - .align 2, 0 -_08046230: .4byte gUnknown_203B418 -_08046234: .4byte 0x0000068c -_08046238: - adds r0, r4, 0 - bl sub_8090CCC - ldr r1, _0804628C - ldr r2, [r1] - movs r3, 0xD2 - lsls r3, 3 - adds r2, r3 -_08046248: - ldr r1, [r2] - subs r1, r0 - str r1, [r2] -_0804624E: - movs r0, 0 - str r0, [r6, 0x14] - str r0, [r5] - movs r6, 0 - movs r4, 0 -_08046258: - ldr r5, _0804628C - ldr r0, [r5] - lsls r1, r4, 2 - ldr r2, _08046290 - adds r0, r2 - adds r0, r1 - ldr r0, [r0] - bl sub_80450E0 - lsls r0, 24 - adds r1, r4, 0x1 - cmp r0, 0 - beq _08046274 - adds r6, r1, 0 -_08046274: - adds r4, r1, 0 - cmp r4, 0x3F - ble _08046258 - ldr r0, [r5] - ldr r3, _08046294 - adds r0, r3 - strh r6, [r0] - movs r0, 0x1 -_08046284: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0804628C: .4byte gUnknown_203B418 -_08046290: .4byte 0x0001361c -_08046294: .4byte 0x00003904 - thumb_func_end sub_80461C8 - - thumb_func_start sub_8046298 -sub_8046298: - ldrb r0, [r0, 0x2] - ldr r1, _080462A8 - ldr r1, [r1] - lsls r0, 5 - adds r0, r1 - ldrb r0, [r0, 0xD] - bx lr - .align 2, 0 -_080462A8: .4byte gItemParametersFile + 4 - thumb_func_end sub_8046298 - - thumb_func_start sub_80462AC -sub_80462AC: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [sp, 0x28] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - bne _080462E4 - b _08046498 -_080462E4: - cmp r5, 0 - beq _08046316 - movs r1, 0x4 - ldrsh r0, [r4, r1] - movs r2, 0x6 - ldrsh r1, [r4, r2] - bl sub_804954C - ldrh r0, [r0] - movs r1, 0x3 - ands r1, r0 - cmp r1, 0 - bne _08046300 - b _08046498 -_08046300: - cmp r1, 0x2 - bne _08046308 - movs r3, 0x1 - str r3, [sp, 0x4] -_08046308: - adds r0, r4, 0 - bl sub_8045888 - lsls r0, 24 - cmp r0, 0 - bne _08046316 - b _08046498 -_08046316: - ldr r1, [r4, 0xC] - cmp r1, 0 - bge _0804631E - adds r1, 0xFF -_0804631E: - asrs r1, 8 - ldr r0, _080463A4 - ldr r2, [r0] - ldr r5, _080463A8 - adds r0, r2, r5 - movs r3, 0 - ldrsh r0, [r0, r3] - subs r6, r1, r0 - ldr r3, [r4, 0x10] - ldr r0, [r4, 0x1C] - subs r1, r3, r0 - cmp r1, 0 - bge _0804633A - adds r1, 0xFF -_0804633A: - asrs r1, 8 - ldr r5, _080463AC - adds r0, r2, r5 - movs r5, 0 - ldrsh r2, [r0, r5] - subs r1, r2 - mov r8, r1 - adds r0, r3, 0 - cmp r0, 0 - bge _08046350 - adds r0, 0xFF -_08046350: - asrs r0, 8 - subs r0, r2 - adds r7, r0, 0 - adds r7, 0x8 - lsrs r0, r7, 31 - adds r0, r7, r0 - asrs r7, r0, 1 - movs r0, 0x20 - negs r0, r0 - cmp r6, r0 - bge _08046368 - b _08046498 -_08046368: - cmp r8, r0 - bge _0804636E - b _08046498 -_0804636E: - movs r0, 0x88 - lsls r0, 1 - cmp r6, r0 - ble _08046378 - b _08046498 -_08046378: - mov r0, r8 - cmp r0, 0xC0 - ble _08046380 - b _08046498 -_08046380: - ldr r5, _080463B0 - ldrh r1, [r5, 0x2] - ldr r0, _080463B4 - ands r0, r1 - strh r0, [r5, 0x2] - mov r1, r10 - cmp r1, 0 - beq _080463BC - movs r2, 0x17 - mov r10, r2 - movs r2, 0xA0 - lsls r2, 8 - ldrh r1, [r5, 0x4] - ldr r0, _080463B8 - ands r0, r1 - orrs r0, r2 - strh r0, [r5, 0x4] - b _08046408 - .align 2, 0 -_080463A4: .4byte gUnknown_203B418 -_080463A8: .4byte 0x000181f0 -_080463AC: .4byte 0x000181f2 -_080463B0: .4byte gUnknown_202EDC0 -_080463B4: .4byte 0x0000c1ff -_080463B8: .4byte 0x00000fff -_080463BC: - ldr r0, [r4, 0x70] - bl sub_8046298 - mov r10, r0 - mov r3, r9 - cmp r3, 0xFF - beq _080463EE - cmp r0, 0 - bne _080463EE - ldr r0, _08046478 - add r0, r9 - ldrb r0, [r0] - mov r10, r0 - ldr r0, _0804647C - add r0, r9 - ldrb r1, [r0] - lsls r1, 3 - movs r0, 0x1F - ands r1, r0 - lsls r1, 9 - ldrh r2, [r5, 0x2] - ldr r0, _08046480 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x2] -_080463EE: - ldr r0, [r4, 0x70] - ldrb r0, [r0, 0x2] - bl sub_8090D58 - movs r1, 0xF - ands r0, r1 - lsls r0, 12 - ldr r3, _08046484 - ldrh r2, [r3, 0x4] - ldr r1, _08046488 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x4] -_08046408: - ldr r1, _08046488 - mov r5, r8 - ands r1, r5 - lsls r1, 4 - ldr r4, _08046484 - ldrh r2, [r4, 0x6] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x6] - ldr r0, _0804648C - ands r6, r0 - ldrh r1, [r4, 0x2] - movs r0, 0xFE - lsls r0, 8 - ands r0, r1 - orrs r0, r6 - strh r0, [r4, 0x2] - ldr r0, [sp, 0x4] - lsls r3, r0, 10 - ldrh r2, [r4] - ldr r1, _08046490 - adds r0, r1, 0 - ands r0, r2 - orrs r0, r3 - strh r0, [r4] - movs r2, 0xC0 - lsls r2, 4 - ldrh r0, [r4, 0x4] - ands r1, r0 - orrs r1, r2 - mov r2, r10 - lsls r0, r2, 2 - movs r3, 0xD0 - lsls r3, 1 - adds r0, r3 - ldr r2, _08046494 - ands r0, r2 - movs r2, 0xFC - lsls r2, 8 - ands r1, r2 - orrs r1, r0 - strh r1, [r4, 0x4] - ldr r5, [sp] - cmp r5, 0 - bne _08046466 - movs r7, 0x1 -_08046466: - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0 - movs r3, 0 - bl AddSprite - movs r0, 0x1 - b _0804649A - .align 2, 0 -_08046478: .4byte gUnknown_203B420 -_0804647C: .4byte gUnknown_203B428 -_08046480: .4byte 0x0000c1ff -_08046484: .4byte gUnknown_202EDC0 -_08046488: .4byte 0x00000fff -_0804648C: .4byte 0x000001ff -_08046490: .4byte 0x0000f3ff -_08046494: .4byte 0x000003ff -_08046498: - movs r0, 0 -_0804649A: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80462AC - - thumb_func_start sub_80464AC -sub_80464AC: - push {r4,lr} - ldr r4, _080464C4 - ldrb r0, [r0, 0x2] - bl sub_8090D6C - lsls r0, 3 - adds r0, r4 - ldr r0, [r0] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080464C4: .4byte gUnknown_80F7B14 - thumb_func_end sub_80464AC - - thumb_func_start sub_80464C8 -sub_80464C8: - push {r4-r6,lr} - sub sp, 0x78 - adds r6, r0, 0 - adds r3, r1, 0 - adds r5, r2, 0 - movs r0, 0x3 - str r0, [sp, 0x4] - add r0, sp, 0x28 - movs r4, 0 - strb r4, [r0] - add r1, sp, 0x24 - movs r0, 0x1 - strb r0, [r1] - mov r0, sp - adds r0, 0x26 - strb r4, [r0] - str r5, [sp, 0x74] - ldr r0, [r3] - str r0, [sp, 0x8] - movs r1, 0 - ldrsh r0, [r3, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x4 - lsls r1, 8 - movs r2, 0x2 - ldrsh r0, [r3, r2] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 3 - adds r2, 0x4 - lsls r2, 8 - add r0, sp, 0x4 - bl sub_8045394 - add r0, sp, 0x4 - strh r4, [r0, 0x26] - str r4, [sp] - adds r0, r6, 0 - add r1, sp, 0x4 - adds r2, r5, 0 - movs r3, 0x1 - bl sub_804652C - add sp, 0x78 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80464C8 - - thumb_func_start sub_804652C -sub_804652C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r10, r0 - adds r5, r1, 0 - mov r9, r2 - lsls r3, 24 - lsrs r6, r3, 24 - movs r1, 0x4 - ldrsh r0, [r5, r1] - movs r2, 0x6 - ldrsh r1, [r5, r2] - bl sub_804954C - adds r4, r0, 0 - ldr r0, [r4, 0x14] - movs r3, 0 - str r3, [sp, 0xC] - cmp r0, 0 - beq _0804658C - bl sub_80450F8 - cmp r0, 0x2 - bne _0804658C - adds r4, r5, 0x4 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8046734 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_807FE44 - ldr r0, _080465A4 - ldr r1, [r0] - mov r0, r10 - bl sub_80522A8 - mov r0, r9 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0804658C - b _0804671E -_0804658C: - ldrh r1, [r5, 0x6] - lsls r1, 16 - ldrh r0, [r5, 0x4] - orrs r0, r1 - str r0, [sp] - mov r8, r0 - movs r7, 0x1 - cmp r6, 0 - beq _08046632 - movs r7, 0 - b _08046632 - .align 2, 0 -_080465A4: .4byte gUnknown_80FED30 -_080465A8: - lsls r3, r7, 2 - adds r3, r0 - ldrh r0, [r3] - ldrh r1, [r5, 0x4] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08046628 - ldr r2, [sp] - ands r2, r1 - orrs r2, r0 - str r2, [sp] - ldrh r0, [r3, 0x2] - ldrh r3, [r5, 0x6] - adds r0, r3 - lsls r0, 16 - ldr r1, _0804662C - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - asrs r1, 16 - bl sub_804954C - adds r4, r0, 0 - ldrh r1, [r4] - movs r6, 0x3 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08046630 - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _08046630 - ldr r0, [r4, 0x14] - cmp r0, 0 - bne _08046630 - adds r0, r5, 0 - mov r1, sp - bl sub_8046734 - ldr r3, [sp] - mov r8, r3 - ldrh r1, [r4] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0x3 - beq _08046620 - mov r0, sp - mov r1, r9 - movs r2, 0x1 - bl sub_80460F8 - lsls r0, 24 - cmp r0, 0 - beq _08046644 -_08046620: - movs r0, 0x1 - str r0, [sp, 0xC] - b _08046644 - .align 2, 0 -_08046628: .4byte 0xffff0000 -_0804662C: .4byte 0x0000ffff -_08046630: - adds r7, 0x1 -_08046632: - ldr r0, _08046688 - lsls r1, r7, 2 - adds r1, r0 - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r1, 0x63 - bne _080465A8 - movs r3, 0 - str r3, [sp, 0xC] -_08046644: - ldr r0, _0804668C - mov r1, r9 - bl sub_8045BF8 - ldr r0, [sp, 0xC] - cmp r0, 0 - beq _080466C8 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - mov r4, sp - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl sub_80402AC - mov r0, sp - movs r3, 0 - ldrsh r0, [r0, r3] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl sub_804954C - ldrh r0, [r0] - movs r1, 0x3 - ands r1, r0 - adds r0, r1, 0 - cmp r1, 0x1 - beq _0804669A - cmp r1, 0x1 - bgt _08046690 - cmp r1, 0 - beq _080466AC - b _0804671E - .align 2, 0 -_08046688: .4byte gUnknown_80F4468 -_0804668C: .4byte gUnknown_202DE58 -_08046690: - cmp r0, 0x2 - beq _080466A4 - cmp r0, 0x3 - beq _080466B4 - b _0804671E -_0804669A: - ldr r0, _080466A0 - b _080466B6 - .align 2, 0 -_080466A0: .4byte gUnknown_80F93E8 -_080466A4: - ldr r0, _080466A8 - b _080466B6 - .align 2, 0 -_080466A8: .4byte gUnknown_80F9408 -_080466AC: - ldr r0, _080466B0 - b _080466B6 - .align 2, 0 -_080466B0: .4byte gUnknown_80F9424 -_080466B4: - ldr r0, _080466C4 -_080466B6: - ldr r2, [r0] - mov r0, r10 - mov r1, sp - bl sub_8052364 - b _0804671E - .align 2, 0 -_080466C4: .4byte gUnknown_80F949C -_080466C8: - mov r3, r8 - lsls r1, r3, 16 - asrs r1, 16 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1 - str r0, [sp, 0x4] - asrs r1, r3, 16 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - movs r2, 0xC0 - lsls r2, 4 - adds r0, r2 - add r2, sp, 0x4 - str r0, [r2, 0x4] - ldr r3, [sp, 0x30] - cmp r3, 0 - beq _0804670C - movs r1, 0 - ldrsh r0, [r3, r1] - lsls r0, 8 - ldr r1, [sp, 0x4] - adds r0, r1 - str r0, [sp, 0x4] - movs r1, 0x2 - ldrsh r0, [r3, r1] - lsls r0, 8 - ldr r1, [r2, 0x4] - adds r0, r1 - str r0, [r2, 0x4] -_0804670C: - adds r0, r2, 0 - bl sub_804219C - ldr r0, _08046730 - ldr r2, [r0] - mov r0, r10 - mov r1, sp - bl sub_8052364 -_0804671E: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046730: .4byte gUnknown_80F943C - thumb_func_end sub_804652C - - thumb_func_start sub_8046734 -sub_8046734: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - mov r8, r0 - ldr r0, _08046858 - ldr r0, [r0] - ldr r2, _0804685C - adds r0, r2 - ldrb r0, [r0] - str r0, [sp, 0xC] - movs r0, 0 - ldrsh r2, [r1, r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r0, 0x4 - lsls r4, r0, 8 - movs r2, 0x2 - ldrsh r1, [r1, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x4 - lsls r5, r0, 8 - mov r1, r8 - ldr r0, [r1, 0xC] - subs r0, r4 - cmp r0, 0 - bge _08046776 - negs r0, r0 -_08046776: - mov r2, r8 - ldr r2, [r2, 0x10] - mov r9, r2 - cmp r0, 0xB - bgt _0804678C - subs r0, r2, r5 - cmp r0, 0 - bge _08046788 - negs r0, r0 -_08046788: - cmp r0, 0xB - ble _08046822 -_0804678C: - movs r0, 0 - mov r10, r0 - movs r1, 0 - str r1, [sp, 0x10] - mov r2, r8 - ldr r0, [r2, 0xC] - str r0, [sp, 0x4] - mov r1, r9 - str r1, [sp, 0x8] - subs r0, r4, r0 - movs r1, 0x18 - bl __divsi3 - adds r6, r0, 0 - mov r2, r9 - subs r0, r5, r2 - movs r1, 0x18 - bl __divsi3 - adds r7, r0, 0 - movs r0, 0 - mov r9, r0 - mov r1, sp - adds r1, 0x4 - str r1, [sp, 0x14] -_080467BE: - ldr r0, [sp, 0x4] - adds r0, r6 - str r0, [sp, 0x4] - ldr r2, [sp, 0x14] - ldr r0, [r2, 0x4] - adds r0, r7 - str r0, [r2, 0x4] - ldr r0, [sp, 0x10] - bl sub_8009C7C - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - mov r0, r8 - str r1, [r0, 0x1C] - add r1, sp, 0x4 - bl sub_804535C - mov r1, r10 - lsls r3, r1, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - mov r0, r8 - ldr r1, [sp, 0xC] - movs r2, 0 - bl sub_80462AC - movs r0, 0x13 - bl sub_803E46C - ldr r2, [sp, 0x10] - adds r2, 0x55 - str r2, [sp, 0x10] - movs r0, 0x3 - mov r1, r9 - ands r0, r1 - cmp r0, 0 - bne _08046810 - movs r2, 0x1 - add r10, r2 -_08046810: - movs r0, 0x7 - mov r1, r10 - ands r1, r0 - mov r10, r1 - movs r2, 0x1 - add r9, r2 - mov r0, r9 - cmp r0, 0x17 - ble _080467BE -_08046822: - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8045394 - movs r0, 0 - mov r1, r8 - str r0, [r1, 0x1C] - str r0, [sp] - mov r0, r8 - ldr r1, [sp, 0xC] - movs r2, 0x1 - movs r3, 0xFF - bl sub_80462AC - movs r0, 0x13 - bl sub_803E46C - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046858: .4byte gUnknown_203B418 -_0804685C: .4byte 0x00018210 - thumb_func_end sub_8046734 - - thumb_func_start sub_8046860 -sub_8046860: - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r1, 0 - adds r5, r2, 0 - str r3, [sp] - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_804687C - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8046860 - - thumb_func_start sub_804687C -sub_804687C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _08046970 - add sp, r4 - ldr r5, _08046974 - add r5, sp - str r0, [r5] - movs r0, 0xA5 - lsls r0, 3 - add r0, sp - str r1, [r0] - mov r8, r2 - ldr r1, _08046978 - add r1, sp - str r3, [r1] - movs r1, 0 - movs r7, 0x1D - ldr r0, _0804697C - add r0, sp -_080468A8: - strb r1, [r0] - subs r0, 0x1 - subs r7, 0x1 - cmp r7, 0 - bge _080468A8 - movs r7, 0 - movs r2, 0xAD - lsls r2, 3 - add r2, sp - ldr r2, [r2] - cmp r7, r2 - blt _080468C2 - b _080469DE -_080468C2: - ldr r3, _08046980 - mov r9, r3 - ldr r5, _08046984 - movs r0, 0 - ldrsh r5, [r5, r0] - ldr r0, _08046988 - add r0, sp - str r5, [r0] -_080468D2: - mov r1, r8 - ldrh r0, [r1] - ldr r1, _0804698C - ands r4, r1 - orrs r4, r0 - mov r2, r8 - ldrh r0, [r2, 0x2] - lsls r0, 16 - mov r3, r9 - ands r4, r3 - orrs r4, r0 - movs r5, 0 - adds r0, r7, 0x1 - mov r10, r0 - ldr r1, _08046984 - ldr r2, _08046988 - add r2, sp - ldr r2, [r2] - cmp r2, 0x63 - beq _080469B0 - ldr r3, _08046990 - add r3, sp - ldr r0, _08046994 - add r0, sp - str r3, [r0] -_08046904: - ldr r0, _08046998 - add r0, sp - adds r6, r0, r5 - ldrb r0, [r6] - cmp r0, 0 - bne _0804699C - lsls r2, r5, 2 - adds r2, r1 - ldrh r0, [r2] - mov r1, r8 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0804698C - ands r4, r1 - orrs r4, r0 - ldrh r0, [r2, 0x2] - mov r2, r8 - ldrh r2, [r2, 0x2] - adds r0, r2 - lsls r0, 16 - mov r3, r9 - ands r4, r3 - orrs r4, r0 - lsls r0, r4, 16 - asrs r0, 16 - asrs r1, r4, 16 - bl sub_804954C - adds r2, r0, 0 - ldrh r1, [r2] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0804699C - movs r3, 0x80 - lsls r3, 2 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0804699C - ldr r0, [r2, 0x14] - cmp r0, 0 - bne _0804699C - lsls r0, r7, 2 - ldr r5, _08046994 - add r5, sp - ldr r5, [r5] - adds r0, r5, r0 - str r4, [r0] - movs r0, 0x1 - strb r0, [r6] - b _080469CE - .align 2, 0 -_08046970: .4byte 0xfffffab8 -_08046974: .4byte 0x00000524 -_08046978: .4byte 0x0000052c -_0804697C: .4byte 0x00000521 -_08046980: .4byte 0x0000ffff -_08046984: .4byte gUnknown_80F4468 -_08046988: .4byte 0x00000534 -_0804698C: .4byte 0xffff0000 -_08046990: .4byte 0x0000048c -_08046994: .4byte 0x00000544 -_08046998: .4byte 0x00000504 -_0804699C: - adds r5, 0x1 - cmp r5, 0x1D - bgt _080469B0 - lsls r0, r5, 2 - ldr r1, _08046A18 - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0x63 - bne _08046904 -_080469B0: - movs r3, 0 - cmp r3, 0 - bne _080469CE - ldr r1, _08046A1C - add r1, sp - lsls r0, r7, 2 - adds r1, r0 - ldrh r2, [r1] - mov r0, r9 - orrs r0, r2 - strh r0, [r1] - ldrh r2, [r1, 0x2] - mov r0, r9 - orrs r0, r2 - strh r0, [r1, 0x2] -_080469CE: - mov r7, r10 - movs r5, 0xAD - lsls r5, 3 - add r5, sp - ldr r5, [r5] - cmp r7, r5 - bge _080469DE - b _080468D2 -_080469DE: - movs r1, 0 - mov r9, r1 - movs r7, 0 - movs r0, 0xAD - lsls r0, 3 - add r0, sp - ldr r0, [r0] - cmp r7, r0 - blt _080469F2 - b _08046B0A -_080469F2: - movs r2, 0 - mov r8, r2 -_080469F6: - ldr r0, _08046A1C - add r0, sp - lsls r2, r7, 2 - adds r3, r0, r2 - movs r4, 0 - ldrsh r0, [r3, r4] - cmp r0, 0 - bge _08046A20 - movs r0, 0x74 - muls r0, r7 - add r0, sp - adds r0, 0x4 - mov r5, r8 - str r5, [r0] - movs r0, 0x1 - mov r9, r0 - b _08046AFA - .align 2, 0 -_08046A18: .4byte gUnknown_80F4468 -_08046A1C: .4byte 0x0000048c -_08046A20: - movs r0, 0x74 - adds r6, r7, 0 - muls r6, r0 - mov r4, sp - adds r4, r6 - adds r4, 0x4 - movs r0, 0x3 - str r0, [r4] - adds r0, r4, 0 - adds r0, 0x24 - mov r1, r8 - strb r1, [r0] - adds r1, r4, 0 - adds r1, 0x20 - movs r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - adds r0, 0x22 - mov r5, r8 - strb r5, [r0] - add r0, sp, 0x74 - adds r0, r6 - ldr r1, _08046B2C - add r1, sp - ldr r1, [r1] - adds r2, r1, r2 - str r2, [r0] - add r0, sp, 0x8 - adds r0, r6 - ldr r1, [r3] - str r1, [r0] - movs r2, 0xA5 - lsls r2, 3 - add r2, sp - ldr r2, [r2] - movs r5, 0 - ldrsh r0, [r2, r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x4 - lsls r1, 8 - movs r5, 0x2 - ldrsh r0, [r2, r5] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 3 - adds r2, 0x4 - lsls r2, 8 - adds r0, r4, 0 - movs r5, 0xA8 - lsls r5, 3 - add r5, sp - str r3, [r5] - bl sub_8045394 - mov r0, r8 - strh r0, [r4, 0x26] - ldr r4, _08046B30 - add r4, sp - lsls r5, r7, 3 - adds r4, r5 - movs r1, 0xA8 - lsls r1, 3 - add r1, sp - ldr r3, [r1] - movs r2, 0 - ldrsh r1, [r3, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x4 - lsls r0, 8 - add r1, sp, 0x10 - adds r1, r6 - ldr r1, [r1] - subs r0, r1 - movs r1, 0x18 - movs r2, 0xA8 - lsls r2, 3 - add r2, sp - str r3, [r2] - bl __divsi3 - str r0, [r4] - movs r4, 0x97 - lsls r4, 3 - add r4, sp - adds r4, r5 - movs r5, 0xA8 - lsls r5, 3 - add r5, sp - ldr r3, [r5] - movs r0, 0x2 - ldrsh r1, [r3, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x4 - lsls r0, 8 - add r1, sp, 0x14 - adds r1, r6 - ldr r1, [r1] - subs r0, r1 - movs r1, 0x18 - bl __divsi3 - str r0, [r4] - movs r1, 0x1 -_08046AFA: - adds r7, 0x1 - movs r2, 0xAD - lsls r2, 3 - add r2, sp - ldr r2, [r2] - cmp r7, r2 - bge _08046B0A - b _080469F6 -_08046B0A: - cmp r1, 0 - bne _08046B54 - movs r3, 0xAD - lsls r3, 3 - add r3, sp - ldr r3, [r3] - cmp r3, 0x1 - ble _08046B3C - ldr r0, _08046B34 - ldr r1, [r0] - ldr r4, _08046B38 - add r4, sp - ldr r0, [r4] - bl sub_80522A8 - b _08046C7C - .align 2, 0 -_08046B2C: .4byte 0x0000052c -_08046B30: .4byte 0x000004b4 -_08046B34: .4byte gUnknown_80F945C -_08046B38: .4byte 0x00000524 -_08046B3C: - ldr r0, _08046B4C - ldr r1, [r0] - ldr r5, _08046B50 - add r5, sp - ldr r0, [r5] - bl sub_80522A8 - b _08046C7C - .align 2, 0 -_08046B4C: .4byte gUnknown_80F943C -_08046B50: .4byte 0x00000524 -_08046B54: - mov r0, r9 - cmp r0, 0 - beq _08046B68 - ldr r0, _08046C90 - ldr r1, [r0] - ldr r2, _08046C94 - add r2, sp - ldr r0, [r2] - bl sub_80522A8 -_08046B68: - movs r3, 0 - mov r9, r3 - ldr r0, _08046C98 - ldr r0, [r0] - ldr r4, _08046C9C - adds r0, r4 - ldrb r0, [r0] - movs r5, 0xA6 - lsls r5, 3 - add r5, sp - str r0, [r5] - mov r10, r3 - movs r6, 0 -_08046B82: - movs r7, 0 - mov r0, r10 - adds r0, 0x55 - movs r1, 0xA7 - lsls r1, 3 - add r1, sp - str r0, [r1] - adds r2, r6, 0x1 - ldr r3, _08046CA0 - add r3, sp - str r2, [r3] - movs r4, 0xAD - lsls r4, 3 - add r4, sp - ldr r4, [r4] - cmp r7, r4 - bge _08046C14 - mov r5, r9 - lsls r5, 24 - mov r8, r5 -_08046BAA: - movs r0, 0x74 - adds r5, r7, 0 - muls r5, r0 - mov r4, sp - adds r4, r5 - adds r4, 0x4 - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08046C06 - ldr r0, _08046CA4 - add r0, sp - lsls r2, r7, 3 - adds r0, r2 - ldr r1, [r0] - movs r0, 0x97 - lsls r0, 3 - add r0, sp - adds r0, r2 - ldr r2, [r0] - adds r0, r4, 0 - bl sub_804539C - mov r0, r10 - bl sub_8009C7C - add r2, sp, 0x20 - adds r2, r5 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - str r1, [r2] - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0xA6 - lsls r2, 3 - add r2, sp - ldr r1, [r2] - movs r2, 0x1 - mov r4, r8 - lsrs r3, r4, 24 - bl sub_80462AC -_08046C06: - adds r7, 0x1 - movs r5, 0xAD - lsls r5, 3 - add r5, sp - ldr r5, [r5] - cmp r7, r5 - blt _08046BAA -_08046C14: - movs r0, 0x13 - bl sub_803E46C - movs r0, 0xA7 - lsls r0, 3 - add r0, sp - ldr r0, [r0] - mov r10, r0 - movs r0, 0x3 - ands r0, r6 - cmp r0, 0 - bne _08046C30 - movs r1, 0x1 - add r9, r1 -_08046C30: - movs r0, 0x7 - mov r2, r9 - ands r2, r0 - mov r9, r2 - ldr r3, _08046CA0 - add r3, sp - ldr r6, [r3] - cmp r6, 0x17 - ble _08046B82 - movs r4, 0xAD - lsls r4, 3 - add r4, sp - ldr r4, [r4] - cmp r4, 0 - ble _08046C7C - ldr r0, _08046CA8 - add r0, sp - ldr r5, [r0] - ldr r4, _08046CAC - add r4, sp - movs r1, 0xAD - lsls r1, 3 - add r1, sp - ldr r7, [r1] -_08046C60: - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0 - blt _08046C72 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_80460F8 -_08046C72: - adds r5, 0x4 - adds r4, 0x4 - subs r7, 0x1 - cmp r7, 0 - bne _08046C60 -_08046C7C: - movs r3, 0xA9 - lsls r3, 3 - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046C90: .4byte gUnknown_80F947C -_08046C94: .4byte 0x00000524 -_08046C98: .4byte gUnknown_203B418 -_08046C9C: .4byte 0x00018210 -_08046CA0: .4byte 0x0000053c -_08046CA4: .4byte 0x000004b4 -_08046CA8: .4byte 0x0000052c -_08046CAC: .4byte 0x0000048c - thumb_func_end sub_804687C - - thumb_func_start sub_8046CB0 -sub_8046CB0: - push {lr} - lsls r1, 24 - lsrs r1, 24 - ldr r0, [r0, 0x70] - adds r3, r0, 0 - adds r0, 0x60 - ldrb r2, [r0] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _08046CDC - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - bne _08046CDC - adds r0, r3, 0 - adds r0, 0x62 - ldrb r0, [r0] - cmp r0, r1 - bne _08046CDC - movs r0, 0x1 - b _08046CDE -_08046CDC: - movs r0, 0 -_08046CDE: - pop {r1} - bx r1 - thumb_func_end sub_8046CB0 - - thumb_func_start sub_8046CE4 -sub_8046CE4: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x64 - bl sub_8084100 - adds r1, r0, 0 - movs r2, 0 - ldr r3, _08046D04 -_08046CF6: - lsls r0, r1, 2 - adds r0, r3 - ldr r0, [r0] - cmp r0, r5 - bgt _08046D08 - strb r1, [r4, 0x1] - b _08046D18 - .align 2, 0 -_08046D04: .4byte gUnknown_810A3F0 -_08046D08: - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r1, r0, 1 - adds r2, 0x1 - cmp r2, 0xC7 - ble _08046CF6 - movs r0, 0x1 - strb r0, [r4, 0x1] -_08046D18: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8046CE4 - - thumb_func_start sub_8046D20 -sub_8046D20: - push {r4,r5,lr} - ldr r4, _08046D5C - ldr r0, [r4] - ldrb r5, [r0, 0x8] - bl sub_8046D70 - ldr r1, [r4] - strb r0, [r1, 0x8] - ldr r0, [r4] - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _08046D64 - cmp r5, 0 - bne _08046D64 - ldr r0, _08046D60 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl sub_8052B8C - adds r1, r0, 0 - cmp r1, 0x1 - bne _08046D64 - ldr r0, [r4] - strb r1, [r0, 0x4] - ldr r1, [r4] - movs r0, 0x2 - strb r0, [r1, 0x11] - b _08046D68 - .align 2, 0 -_08046D5C: .4byte gUnknown_203B418 -_08046D60: .4byte gUnknown_80FA408 -_08046D64: - bl sub_8046D8C -_08046D68: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8046D20 - - thumb_func_start sub_8046D70 -sub_8046D70: - push {lr} - ldr r0, _08046D84 - ldr r0, [r0] - ldr r1, _08046D88 - adds r0, r1 - ldrb r0, [r0] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08046D84: .4byte gUnknown_203B418 -_08046D88: .4byte 0x0000068a - thumb_func_end sub_8046D70 - - thumb_func_start sub_8046D8C -sub_8046D8C: - push {r4-r7,lr} - sub sp, 0xC - movs r6, 0 - ldr r5, _08046EDC - movs r4, 0 -_08046D96: - movs r7, 0 - movs r0, 0x1 - negs r0, r0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r3, 0 - ldr r2, [r5] -_08046DA6: - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08046DC8 - ldrb r0, [r2, 0x2] - cmp r0, 0x79 - bne _08046DB8 - str r3, [sp] -_08046DB8: - ldrb r0, [r2, 0x2] - cmp r0, 0x77 - bne _08046DC0 - str r3, [sp, 0x4] -_08046DC0: - ldrb r0, [r2, 0x2] - cmp r0, 0x78 - bne _08046DC8 - str r3, [sp, 0x8] -_08046DC8: - adds r2, 0x4 - adds r3, 0x1 - cmp r3, 0x13 - ble _08046DA6 - ldr r1, [sp] - cmp r1, 0 - blt _08046E1E - ldr r0, [sp, 0x4] - cmp r0, 0 - blt _08046E1E - ldr r0, [sp, 0x8] - cmp r0, 0 - blt _08046E1E - movs r7, 0x1 - movs r6, 0x1 - lsls r1, 2 - ldr r0, [r5] - adds r1, r0 - strb r4, [r1, 0x2] - strb r4, [r1, 0x1] - strb r4, [r1] - ldr r0, [sp, 0x4] - lsls r0, 2 - ldr r1, [r5] - adds r0, r1 - strb r4, [r0, 0x2] - strb r4, [r0, 0x1] - strb r4, [r0] - ldr r0, [sp, 0x8] - lsls r0, 2 - ldr r1, [r5] - adds r0, r1 - strb r4, [r0, 0x2] - strb r4, [r0, 0x1] - strb r4, [r0] - ldr r1, [sp] - lsls r1, 2 - ldr r0, [r5] - adds r0, r1 - movs r1, 0x7A - movs r2, 0 - bl sub_8090A8C -_08046E1E: - cmp r7, 0 - bne _08046D96 - bl sub_80910B4 - cmp r6, 0 - beq _08046ED4 - bl sub_8083600 - adds r4, r0, 0 - ldr r0, _08046EE0 - bl sub_80855E4 - ldr r6, _08046EE4 - ldr r0, [r6] - ldr r5, _08046EE8 - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _08046EEC - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - movs r0, 0x3C - movs r1, 0x41 - bl sub_803E708 - ldr r0, _08046EF0 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - adds r0, r4, 0 - movs r1, 0x4 - movs r2, 0xA - movs r3, 0 - bl sub_80869E4 - adds r0, r4, 0 - adds r0, 0xC - movs r1, 0x86 - lsls r1, 1 - movs r2, 0 - bl sub_80416E0 - adds r0, r4, 0 - movs r1, 0xD7 - bl sub_80421C0 - movs r0, 0x3C - movs r1, 0x41 - bl sub_803E708 - ldr r0, _08046EF4 - adds r1, r4, 0 - movs r2, 0 - bl sub_8045B94 - ldr r0, _08046EF8 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - movs r0, 0xA - movs r1, 0x41 - bl sub_803E708 - movs r0, 0xD4 - bl sub_8083E38 - ldr r0, _08046EFC - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - movs r0, 0xA - movs r1, 0x41 - bl sub_803E708 - movs r0, 0x1 - bl sub_804178C - ldr r0, [r6] - adds r0, r5 - strb r7, [r0] - bl sub_8040A84 -_08046ED4: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046EDC: .4byte gUnknown_203B460 -_08046EE0: .4byte sub_80861A8 -_08046EE4: .4byte gUnknown_203B418 -_08046EE8: .4byte 0x0001356c -_08046EEC: .4byte gUnknown_810531C -_08046EF0: .4byte gUnknown_8105360 -_08046EF4: .4byte gUnknown_202DF98 -_08046EF8: .4byte gUnknown_81053A8 -_08046EFC: .4byte gUnknown_8105434 - thumb_func_end sub_8046D8C - - thumb_func_start sub_8046F00 -sub_8046F00: - push {r4-r7,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x2] - bl sub_8090BD0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _08046F7C - ldrb r0, [r4, 0x2] - bl sub_80913CC - lsls r0, 16 - lsrs r7, r0, 16 - ldrb r0, [r4, 0x2] - bl sub_80915A0 - lsls r0, 24 - cmp r0, 0 - bne _08046F6E - movs r6, 0 -_08046F2A: - ldr r0, _08046F74 - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _08046F78 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08046F68 - ldr r0, [r4, 0x70] - movs r2, 0x2 - ldrsh r1, [r0, r2] - adds r0, r7, 0 - bl sub_808E190 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - movs r1, 0 - bl sub_8070B6C - lsls r0, 24 - cmp r0, 0 - beq _08046F64 - movs r5, 0 -_08046F64: - cmp r5, 0 - bne _08046F7C -_08046F68: - adds r6, 0x1 - cmp r6, 0x3 - ble _08046F2A -_08046F6E: - movs r0, 0 - b _08046F7E - .align 2, 0 -_08046F74: .4byte gUnknown_203B418 -_08046F78: .4byte 0x0001357c -_08046F7C: - movs r0, 0x1 -_08046F7E: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8046F00 - - thumb_func_start sub_8046F84 -sub_8046F84: - push {r4-r7,lr} - adds r7, r0, 0 - movs r5, 0 - ldr r4, _08047000 - movs r6, 0x1 - movs r3, 0 -_08046F90: - lsls r1, r5, 2 - ldr r0, [r4] - adds r2, r0, r1 - ldrb r1, [r2] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08046FAE - ldrb r0, [r2] - ands r0, r7 - cmp r0, 0 - beq _08046FAE - strb r3, [r2, 0x2] - strb r3, [r2, 0x1] - strb r3, [r2] -_08046FAE: - adds r5, 0x1 - cmp r5, 0x13 - ble _08046F90 - bl sub_80910B4 - movs r5, 0 - movs r6, 0 -_08046FBC: - ldr r0, _08047004 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _08047008 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08046FF4 - ldr r0, [r4, 0x70] - adds r2, r0, 0 - adds r2, 0x60 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08046FF4 - ldrb r0, [r2] - ands r0, r7 - cmp r0, 0 - beq _08046FF4 - strb r6, [r2, 0x2] - strb r6, [r2, 0x1] - strb r6, [r2] -_08046FF4: - adds r5, 0x1 - cmp r5, 0x3 - ble _08046FBC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08047000: .4byte gUnknown_203B460 -_08047004: .4byte gUnknown_203B418 -_08047008: .4byte 0x0001357c - thumb_func_end sub_8046F84 - - thumb_func_start sub_804700C -sub_804700C: - push {r4,r5,lr} - movs r5, 0 - ldr r4, _08047078 -_08047012: - lsls r1, r5, 2 - ldr r0, [r4] - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804702C - adds r0, r2, 0 - movs r1, 0x46 - movs r2, 0 - bl sub_8090A8C -_0804702C: - adds r5, 0x1 - cmp r5, 0x13 - ble _08047012 - bl sub_80910B4 - movs r5, 0 -_08047038: - ldr r0, _0804707C - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _08047080 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _0804706C - ldr r0, [r4, 0x70] - adds r2, r0, 0 - adds r2, 0x60 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804706C - adds r0, r2, 0 - movs r1, 0x46 - movs r2, 0 - bl sub_8090A8C -_0804706C: - adds r5, 0x1 - cmp r5, 0x3 - ble _08047038 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08047078: .4byte gUnknown_203B460 -_0804707C: .4byte gUnknown_203B418 -_08047080: .4byte 0x0001357c - thumb_func_end sub_804700C - - thumb_func_start sub_8047084 -sub_8047084: - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - ldr r0, _080470E8 - ldr r2, [r0] - movs r3, 0x1 -_08047090: - ldrb r1, [r2] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080470A2 - ldrb r0, [r2] - ands r0, r6 - cmp r0, 0 - bne _080470E2 -_080470A2: - adds r2, 0x4 - adds r5, 0x1 - cmp r5, 0x13 - ble _08047090 - bl sub_80910B4 - movs r5, 0 -_080470B0: - ldr r0, _080470EC - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _080470F0 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _080470F4 - ldr r0, [r4, 0x70] - adds r2, r0, 0 - adds r2, 0x60 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080470F4 - ldrb r0, [r2] - ands r0, r6 - cmp r0, 0 - beq _080470F4 -_080470E2: - movs r0, 0x1 - b _080470FC - .align 2, 0 -_080470E8: .4byte gUnknown_203B460 -_080470EC: .4byte gUnknown_203B418 -_080470F0: .4byte 0x0001357c -_080470F4: - adds r5, 0x1 - cmp r5, 0x3 - ble _080470B0 - movs r0, 0 -_080470FC: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8047084 - - thumb_func_start sub_8047104 -sub_8047104: - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 -_0804710A: - ldr r0, _08047154 - lsls r1, r6, 2 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08047142 - ldrb r0, [r4, 0x2] - cmp r0, 0x69 - bne _08047132 - adds r0, r4, 0 - bl sub_80915D4 - bl sub_80913A0 - strb r5, [r4, 0x2] - strb r5, [r4, 0x1] - strb r5, [r4] -_08047132: - ldrb r1, [r4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08047142 - strb r5, [r4, 0x2] - strb r5, [r4, 0x1] - strb r5, [r4] -_08047142: - adds r6, 0x1 - cmp r6, 0x13 - ble _0804710A - bl sub_80910B4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047154: .4byte gUnknown_203B460 - thumb_func_end sub_8047104 - - thumb_func_start sub_8047158 -sub_8047158: - push {r4-r6,lr} - movs r3, 0 - ldr r5, _0804718C - movs r6, 0x1 - movs r4, 0x4 -_08047162: - lsls r1, r3, 2 - ldr r0, [r5] - adds r2, r0, r1 - ldrb r1, [r2] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08047180 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _08047180 - movs r0, 0xFB - ands r0, r1 - strb r0, [r2] -_08047180: - adds r3, 0x1 - cmp r3, 0x13 - ble _08047162 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804718C: .4byte gUnknown_203B460 - thumb_func_end sub_8047158 - - thumb_func_start sub_8047190 -sub_8047190: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _080472E8 - add sp, r4 - mov r9, r0 - str r1, [sp, 0x214] - ldr r6, _080472EC - ldr r1, [r6] - ldr r4, _080472F0 - adds r0, r1, r4 - ldrb r0, [r0] - str r0, [sp, 0x220] - mov r8, r3 - adds r7, r1, 0 - adds r7, 0xC0 - movs r0, 0x3 - str r0, [r7] - adds r0, r1, 0 - adds r0, 0xE4 - movs r4, 0 - strb r4, [r0] - subs r0, 0x4 - movs r5, 0x1 - strb r5, [r0] - adds r0, 0x2 - strb r4, [r0] - ldr r0, [sp, 0x214] - str r0, [r7, 0x70] - str r4, [r7, 0x1C] - ldr r0, [r2] - str r0, [r7, 0x4] - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x4 - lsls r1, 8 - movs r3, 0x2 - ldrsh r0, [r2, r3] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 11 - adds r0, r7, 0 - bl sub_8045394 - strh r4, [r7, 0x26] - str r4, [sp, 0x224] - mov r0, r9 - bl sub_80450F8 - cmp r0, 0x1 - bne _08047214 - mov r0, r9 - movs r1, 0x2A - bl sub_8046CB0 - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - str r1, [sp, 0x224] -_08047214: - ldr r0, [sp, 0x260] - movs r1, 0x2 - ldrsh r0, [r0, r1] - str r0, [sp, 0x218] - movs r2, 0 - str r2, [sp, 0x21C] - ldr r0, [r6] - ldr r3, _080472F4 - adds r0, r3 - strb r5, [r0] -_08047228: - ldr r4, [r7, 0x4] - mov r10, r4 - ldr r1, [sp, 0x260] - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _080472AE - ldrb r0, [r1] - cmp r0, 0 - bne _080472AE - movs r2, 0x4 - ldrsh r0, [r7, r2] - ldr r2, _080472F8 - mov r3, r8 - lsls r4, r3, 2 - adds r2, r4, r2 - movs r3, 0 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r3, 0x6 - ldrsh r1, [r7, r3] - movs r3, 0x2 - ldrsh r2, [r2, r3] - adds r1, r2 - bl sub_804954C - adds r5, r0, 0 - ldrh r1, [r5] - movs r0, 0x3 - ands r0, r1 - str r4, [sp, 0x230] - cmp r0, 0 - bne _080472AE - movs r6, 0 - ldr r1, _080472FC - mov r4, r10 - lsls r0, r4, 16 - asrs r0, 16 - str r0, [sp, 0x23C] - ldr r0, [sp, 0x230] - adds r5, r0, r1 - asrs r2, r4, 16 -_0804727A: - ldrb r4, [r5] - cmp r4, 0x7 - bgt _080472A6 - ldr r0, _080472F8 - lsls r1, r4, 2 - adds r1, r0 - movs r3, 0 - ldrsh r0, [r1, r3] - ldr r3, [sp, 0x23C] - adds r0, r3 - movs r3, 0x2 - ldrsh r1, [r1, r3] - adds r1, r2 - str r2, [sp, 0x234] - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - ldr r2, [sp, 0x234] - cmp r0, 0 - bne _08047300 -_080472A6: - adds r5, 0x1 - adds r6, 0x1 - cmp r6, 0x3 - ble _0804727A -_080472AE: - ldr r0, _080472F8 - mov r4, r8 - lsls r2, r4, 2 - adds r3, r2, r0 - ldrh r1, [r3] - ldrh r0, [r7, 0x4] - adds r1, r0 - strh r1, [r7, 0x4] - ldrh r0, [r3, 0x2] - ldrh r4, [r7, 0x6] - adds r0, r4 - strh r0, [r7, 0x6] - lsls r1, 16 - asrs r1, 16 - str r2, [sp, 0x230] - cmp r1, 0 - blt _080472E0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - blt _080472E0 - cmp r1, 0x37 - bgt _080472E0 - cmp r0, 0x1F - ble _08047304 -_080472E0: - movs r0, 0x2 - mov r10, r0 - b _0804744C - .align 2, 0 -_080472E8: .4byte 0xfffffdc0 -_080472EC: .4byte gUnknown_203B418 -_080472F0: .4byte 0x00018210 -_080472F4: .4byte 0x0001c05e -_080472F8: .4byte gUnknown_80F4448 -_080472FC: .4byte gUnknown_80F4D64 -_08047300: - mov r8, r4 - b _080472AE -_08047304: - movs r1, 0 - ldrsh r0, [r3, r1] - lsls r0, 10 - str r0, [sp, 0x228] - movs r2, 0x2 - ldrsh r0, [r3, r2] - lsls r0, 10 - str r0, [sp, 0x22C] - mov r3, r8 - lsls r6, r3, 24 - movs r5, 0x5 -_0804731A: - movs r4, 0 - adds r0, r7, 0 - ldr r1, [sp, 0x228] - ldr r2, [sp, 0x22C] - bl sub_804539C - bl sub_804AF74 - lsls r0, 24 - movs r2, 0 - cmp r0, 0 - beq _08047334 - movs r2, 0x3 -_08047334: - ldr r0, [r7, 0xC] - cmp r0, 0 - bge _0804733C - adds r0, 0xFF -_0804733C: - asrs r0, 8 - adds r0, 0x8 - ldr r1, [r7, 0x10] - cmp r1, 0 - bge _08047348 - adds r1, 0xFF -_08047348: - asrs r1, 8 - adds r1, 0x10 - bl sub_8083568 - lsls r0, 24 - cmp r0, 0 - beq _08047358 - movs r4, 0x1 -_08047358: - movs r0, 0x1 - str r0, [sp] - adds r0, r7, 0 - ldr r1, [sp, 0x220] - movs r2, 0 - lsrs r3, r6, 24 - bl sub_80462AC - lsls r0, 24 - cmp r0, 0 - beq _08047370 - movs r4, 0x1 -_08047370: - cmp r4, 0 - beq _0804737A - movs r0, 0x12 - bl sub_803E46C -_0804737A: - subs r5, 0x1 - cmp r5, 0 - bge _0804731A - movs r4, 0x4 - ldrsh r0, [r7, r4] - movs r2, 0x6 - ldrsh r1, [r7, r2] - bl sub_804954C - adds r5, r0, 0 - ldrh r1, [r5] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080473A2 - ldr r3, [sp, 0x260] - ldrb r0, [r3] - cmp r0, 0 - bne _080473A2 - b _0804757A -_080473A2: - ldr r1, [r5, 0x10] - cmp r1, 0 - beq _08047436 - movs r4, 0 - ldr r2, [sp, 0x260] - ldrb r0, [r2] - cmp r0, 0 - bne _080473CE - adds r0, r1, 0 - bl sub_80450F8 - cmp r0, 0x1 - bne _080473CE - ldr r0, [r5, 0x10] - movs r1, 0x26 - bl sub_8046CB0 - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 -_080473CE: - cmp r4, 0 - beq _080473E0 - movs r3, 0x4 - add r8, r3 - movs r0, 0x7 - mov r4, r8 - ands r4, r0 - mov r8, r4 - b _08047436 -_080473E0: - movs r6, 0x1 - ldr r0, [r5, 0x10] - bl sub_80450F8 - cmp r0, 0x1 - bne _08047406 - add r4, sp, 0x208 - adds r0, r4, 0 - ldr r1, _080474B8 - bl sub_8092A88 - ldr r0, [r5, 0x10] - adds r1, r4, 0 - bl sub_80571F0 - lsls r0, 24 - cmp r0, 0 - beq _08047406 - movs r6, 0 -_08047406: - cmp r6, 0 - beq _08047436 - ldr r0, [sp, 0x21C] - cmp r0, 0x3F - bgt _0804742C - lsls r0, 3 - mov r4, sp - adds r4, r0 - adds r4, 0x8 - ldr r0, [r5, 0x10] - str r0, [r4] - ldr r1, [r5, 0x10] - mov r0, r9 - bl sub_8047930 - strb r0, [r4, 0x4] - ldr r1, [sp, 0x21C] - adds r1, 0x1 - str r1, [sp, 0x21C] -_0804742C: - ldr r2, [sp, 0x260] - ldrb r0, [r2] - cmp r0, 0 - bne _08047436 - b _08047574 -_08047436: - ldr r3, [sp, 0x218] - subs r3, 0x1 - str r3, [sp, 0x218] - cmp r3, 0 - ble _08047442 - b _08047228 -_08047442: - movs r4, 0x1 - mov r10, r4 - mov r0, r8 - lsls r0, 2 - str r0, [sp, 0x230] -_0804744C: - ldr r0, _080474BC - ldr r0, [r0] - ldr r1, _080474C0 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r2, [sp, 0x21C] - cmp r2, 0 - ble _0804752C - add r5, sp, 0x8 - adds r6, r2, 0 -_08047462: - ldr r4, [r5] - ldrb r0, [r5, 0x4] - cmp r0, 0 - beq _080474D0 - ldr r0, _080474C4 - adds r1, r4, 0 - movs r2, 0 - bl sub_8045B94 - ldr r0, _080474C8 - ldr r1, [sp, 0x214] - bl sub_8045C08 - ldr r0, _080474CC - ldr r2, [r0] - mov r0, r9 - adds r1, r4, 0 - bl sub_80522F4 - mov r0, r9 - adds r1, r4, 0 - bl sub_807A96C - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, [sp, 0x224] - cmp r3, 0 - bne _080474A4 - ldr r3, [sp, 0x260] - ldrb r0, [r3] - cmp r0, 0 - beq _080474A6 -_080474A4: - movs r1, 0x1 -_080474A6: - str r4, [sp] - ldr r4, [sp, 0x214] - str r4, [sp, 0x4] - movs r0, 0x1 - mov r3, r9 - bl sub_80479B8 - b _08047524 - .align 2, 0 -_080474B8: .4byte 0x00000195 -_080474BC: .4byte gUnknown_203B418 -_080474C0: .4byte 0x0001c05e -_080474C4: .4byte gUnknown_202DF98 -_080474C8: .4byte gUnknown_202DE58 -_080474CC: .4byte gUnknown_80F94C4 -_080474D0: - ldr r1, [sp, 0x260] - ldrb r0, [r1] - cmp r0, 0 - bne _080474E2 - ldr r2, [sp, 0x21C] - cmp r2, 0x1 - bne _080474E2 - movs r3, 0x1 - mov r10, r3 -_080474E2: - ldr r0, _0804750C - adds r1, r4, 0 - movs r2, 0 - bl sub_8045B94 - ldr r0, _08047510 - ldr r1, [sp, 0x214] - bl sub_8045BF8 - ldr r1, [sp, 0x260] - ldrb r0, [r1] - cmp r0, 0 - beq _08047518 - ldr r0, _08047514 - ldr r2, [r0] - mov r0, r9 - adds r1, r4, 0 - bl sub_80522F4 - b _08047524 - .align 2, 0 -_0804750C: .4byte gUnknown_202DF98 -_08047510: .4byte gUnknown_202DE58 -_08047514: .4byte gUnknown_80F94D8 -_08047518: - ldr r0, _08047564 - ldr r2, [r0] - mov r0, r9 - adds r1, r4, 0 - bl sub_80522F4 -_08047524: - adds r5, 0x8 - subs r6, 0x1 - cmp r6, 0 - bne _08047462 -_0804752C: - ldr r2, _08047568 - ldr r3, [sp, 0x230] - adds r2, r3, r2 - movs r4, 0 - ldrsh r1, [r2, r4] - lsls r1, 19 - lsrs r1, 16 - ldr r4, _0804756C - add r3, sp, 0x210 - ldr r0, [r3] - ands r0, r4 - orrs r0, r1 - str r0, [r3] - movs r4, 0x2 - ldrsh r1, [r2, r4] - lsls r1, 19 - ldr r2, _08047570 - ands r0, r2 - orrs r0, r1 - str r0, [r3] - mov r0, r10 - cmp r0, 0x1 - beq _08047584 - cmp r0, 0x1 - bcc _080475A8 - cmp r0, 0x2 - beq _08047596 - b _080475A8 - .align 2, 0 -_08047564: .4byte gUnknown_80F94F0 -_08047568: .4byte gUnknown_80F4448 -_0804756C: .4byte 0xffff0000 -_08047570: .4byte 0x0000ffff -_08047574: - movs r1, 0 - mov r10, r1 - b _0804744C -_0804757A: - mov r2, r10 - str r2, [r7, 0x4] - movs r3, 0x1 - mov r10, r3 - b _0804744C -_08047584: - add r0, sp, 0x210 - str r0, [sp] - mov r0, r9 - adds r1, r7, 0 - ldr r2, [sp, 0x214] - movs r3, 0x1 - bl sub_804652C - b _080475A8 -_08047596: - ldr r0, _080475BC - ldr r1, [sp, 0x214] - bl sub_8045C08 - ldr r0, _080475C0 - ldr r1, [r0] - mov r0, r9 - bl sub_80522A8 -_080475A8: - movs r3, 0x90 - lsls r3, 2 - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080475BC: .4byte gUnknown_202DE58 -_080475C0: .4byte gUnknown_80F9530 - thumb_func_end sub_8047190 - - thumb_func_start sub_80475C4 -sub_80475C4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x44 - str r0, [sp, 0x10] - str r1, [sp, 0x14] - adds r7, r2, 0 - str r3, [sp, 0x18] - ldr r0, _08047848 - mov r8, r0 - ldr r2, [r0] - ldr r1, _0804784C - adds r0, r2, r1 - ldrb r0, [r0] - str r0, [sp, 0x24] - movs r4, 0 - movs r5, 0 - adds r3, r2, 0 - adds r3, 0xC0 - str r3, [sp, 0x1C] - movs r0, 0x3 - str r0, [r3] - adds r0, r2, 0 - adds r0, 0xE4 - strb r4, [r0] - adds r1, r2, 0 - adds r1, 0xE0 - movs r0, 0x1 - strb r0, [r1] - adds r0, r2, 0 - adds r0, 0xE2 - strb r4, [r0] - ldr r0, [sp, 0x14] - str r0, [r3, 0x70] - str r5, [r3, 0x1C] - ldr r0, [r7] - str r0, [r3, 0x4] - movs r1, 0 - ldrsh r0, [r7, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x4 - lsls r1, 8 - movs r2, 0x2 - ldrsh r0, [r7, r2] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 3 - adds r2, 0x4 - lsls r2, 8 - ldr r0, [sp, 0x1C] - bl sub_8045394 - ldr r3, [sp, 0x1C] - strh r4, [r3, 0x26] - movs r0, 0x1 - str r0, [sp, 0x20] - movs r1, 0 - str r1, [sp, 0x28] - ldr r0, [sp, 0x10] - bl sub_80450F8 - cmp r0, 0x1 - bne _0804765E - ldr r0, [sp, 0x10] - movs r1, 0x2A - bl sub_8046CB0 - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - str r1, [sp, 0x28] -_0804765E: - adds r0, r7, 0 - bl sub_803F428 - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 - ldr r0, [sp, 0x18] - bl sub_803F428 - lsls r0, 24 - cmp r0, 0 - beq _0804767C - movs r4, 0x1 -_0804767C: - mov r2, r8 - ldr r0, [r2] - ldr r3, _08047850 - adds r0, r3 - add r1, sp, 0x20 - ldrb r1, [r1] - strb r1, [r0] - cmp r4, 0 - bne _08047690 - b _080477D0 -_08047690: - ldr r2, [sp, 0x1C] - movs r3, 0x4 - ldrsh r0, [r2, r3] - ldr r1, [sp, 0x18] - movs r2, 0 - ldrsh r1, [r1, r2] - mov r9, r1 - subs r1, r0, r1 - cmp r1, 0 - bge _080476A6 - negs r1, r1 -_080476A6: - ldr r3, [sp, 0x1C] - movs r2, 0x6 - ldrsh r0, [r3, r2] - ldr r3, [sp, 0x18] - movs r2, 0x2 - ldrsh r3, [r3, r2] - mov r10, r3 - subs r0, r3 - cmp r0, 0 - bge _080476BC - negs r0, r0 -_080476BC: - adds r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r4, r0, 2 - adds r3, r4, 0 - adds r3, 0xC - str r3, [sp, 0x30] - cmp r3, 0x3F - ble _080476D2 - movs r0, 0x40 - str r0, [sp, 0x30] -_080476D2: - movs r1, 0 - str r1, [sp, 0x3C] - movs r0, 0x80 - lsls r0, 12 - adds r1, r4, 0 - bl __divsi3 - str r0, [sp, 0x40] - movs r2, 0 - ldrsh r1, [r7, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 11 - mov r8, r0 - movs r3, 0x2 - ldrsh r1, [r7, r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r7, r0, 11 - mov r1, r9 - lsls r0, r1, 1 - add r0, r9 - lsls r0, 11 - mov r2, r8 - subs r0, r2 - adds r1, r4, 0 - bl __divsi3 - str r0, [sp, 0x34] - mov r3, r10 - lsls r0, r3, 1 - add r0, r10 - lsls r0, 11 - subs r0, r7 - adds r1, r4, 0 - bl __divsi3 - str r0, [sp, 0x38] - subs r0, r4, 0x3 - cmp r0, 0 - ble _080477D0 - str r0, [sp, 0x2C] -_08047726: - movs r0, 0 - mov r10, r0 - ldr r0, [sp, 0x3C] - cmp r0, 0 - bge _08047732 - adds r0, 0xFF -_08047732: - asrs r0, 8 - bl sub_8009C7C - ldr r2, [sp, 0x30] - adds r1, r0, 0 - muls r1, r2 - movs r0, 0x80 - lsls r0, 3 - mov r2, r8 - adds r3, r2, r0 - adds r2, r7, r0 - ldr r0, [sp, 0x1C] - str r1, [r0, 0x1C] - mov r0, r8 - cmp r0, 0 - bge _08047754 - adds r0, 0xFF -_08047754: - asrs r0, 8 - adds r0, 0x8 - mov r9, r0 - adds r0, r7, 0 - cmp r7, 0 - bge _08047762 - adds r0, 0xFF -_08047762: - asrs r0, 8 - adds r4, r0, 0 - adds r4, 0x10 - ldr r1, [sp, 0x3C] - ldr r0, [sp, 0x40] - adds r1, r0 - str r1, [sp, 0x3C] - ldr r0, [sp, 0x1C] - adds r1, r3, 0 - bl sub_8045394 - bl sub_804AF74 - lsls r0, 24 - movs r2, 0 - cmp r0, 0 - beq _08047786 - movs r2, 0x3 -_08047786: - mov r0, r9 - adds r1, r4, 0 - bl sub_8083568 - lsls r0, 24 - cmp r0, 0 - beq _08047798 - movs r1, 0x1 - mov r10, r1 -_08047798: - movs r0, 0x1 - str r0, [sp] - ldr r0, [sp, 0x1C] - ldr r1, [sp, 0x24] - movs r2, 0 - movs r3, 0xFF - bl sub_80462AC - lsls r0, 24 - cmp r0, 0 - beq _080477B2 - movs r2, 0x1 - mov r10, r2 -_080477B2: - mov r3, r10 - cmp r3, 0 - beq _080477BE - movs r0, 0x17 - bl sub_803E46C -_080477BE: - ldr r0, [sp, 0x34] - add r8, r0 - ldr r1, [sp, 0x38] - adds r7, r1 - ldr r2, [sp, 0x2C] - subs r2, 0x1 - str r2, [sp, 0x2C] - cmp r2, 0 - bne _08047726 -_080477D0: - ldr r3, [sp, 0x18] - ldr r0, [r3] - ldr r1, [sp, 0x1C] - str r0, [r1, 0x4] - ldr r0, _08047848 - ldr r0, [r0] - ldr r2, _08047850 - adds r0, r2 - movs r1, 0 - strb r1, [r0] - movs r1, 0 - ldrsh r0, [r3, r1] - movs r2, 0x2 - ldrsh r1, [r3, r2] - bl sub_804954C - adds r4, r0, 0 - ldr r0, [r4, 0x10] - cmp r0, 0 - bne _080477FA - b _08047904 -_080477FA: - movs r3, 0x1 - mov r8, r3 - movs r7, 0 - bl sub_80450F8 - cmp r0, 0x1 - bne _08047834 - ldr r0, [r4, 0x10] - movs r1, 0x26 - bl sub_8046CB0 - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r7, r1, 31 - ldr r1, _08047854 - add r0, sp, 0x8 - bl sub_8092A88 - ldr r0, [r4, 0x10] - add r1, sp, 0x8 - bl sub_80571F0 - lsls r0, 24 - cmp r0, 0 - beq _08047834 - movs r0, 0 - mov r8, r0 -_08047834: - mov r1, r8 - cmp r1, 0 - beq _08047904 - ldr r1, [r4, 0x10] - adds r5, r1, 0 - cmp r7, 0 - beq _0804785C - ldr r0, _08047858 - ands r6, r0 - b _0804786E - .align 2, 0 -_08047848: .4byte gUnknown_203B418 -_0804784C: .4byte 0x00018210 -_08047850: .4byte 0x0001c05e -_08047854: .4byte 0x00000195 -_08047858: .4byte 0xffffff00 -_0804785C: - ldr r0, [sp, 0x10] - bl sub_8047930 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080478CC - ands r1, r6 - adds r6, r1, 0 - orrs r6, r0 -_0804786E: - ldr r0, _080478D0 - ldr r1, [sp, 0x14] - bl sub_8045C08 - ldr r0, _080478D4 - adds r1, r5, 0 - movs r2, 0 - bl sub_8045B94 - lsls r0, r6, 24 - cmp r0, 0 - beq _080478DC - adds r0, r5, 0 - movs r1, 0x8 - bl sub_806CE94 - ldr r0, _080478D8 - ldr r2, [r0] - ldr r0, [sp, 0x10] - adds r1, r5, 0 - bl sub_80522F4 - ldr r0, [sp, 0x10] - adds r1, r5, 0 - bl sub_807A96C - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, [sp, 0x28] - cmp r3, 0 - bne _080478B6 - ldr r0, [sp, 0x64] - ldrb r0, [r0] - cmp r0, 0 - beq _080478B8 -_080478B6: - movs r1, 0x1 -_080478B8: - str r5, [sp] - ldr r0, [sp, 0x14] - str r0, [sp, 0x4] - movs r0, 0x1 - ldr r3, [sp, 0x10] - bl sub_80479B8 - movs r1, 0 - str r1, [sp, 0x20] - b _08047904 - .align 2, 0 -_080478CC: .4byte 0xffffff00 -_080478D0: .4byte gUnknown_202DE58 -_080478D4: .4byte gUnknown_202DF98 -_080478D8: .4byte gUnknown_80F94C4 -_080478DC: - cmp r7, 0 - beq _080478F4 - ldr r0, _080478F0 - ldr r2, [r0] - ldr r0, [sp, 0x10] - adds r1, r5, 0 - bl sub_80522F4 - b _08047900 - .align 2, 0 -_080478F0: .4byte gUnknown_80F9510 -_080478F4: - ldr r0, _0804792C - ldr r2, [r0] - ldr r0, [sp, 0x10] - adds r1, r5, 0 - bl sub_80522F4 -_08047900: - movs r2, 0x1 - str r2, [sp, 0x20] -_08047904: - ldr r3, [sp, 0x20] - cmp r3, 0x1 - bne _0804791A - movs r0, 0 - str r0, [sp] - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x1C] - ldr r2, [sp, 0x14] - movs r3, 0 - bl sub_804652C -_0804791A: - add sp, 0x44 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804792C: .4byte gUnknown_80F94F0 - thumb_func_end sub_80475C4 - - thumb_func_start sub_8047930 -sub_8047930: - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, [r5, 0x70] - ldrb r0, [r1, 0x8] - cmp r0, 0x1 - beq _0804794C - adds r0, r1, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x4 - beq _0804794C - cmp r0, 0x1 - bne _08047950 -_0804794C: - movs r0, 0 - b _080479B0 -_08047950: - movs r0, 0x64 - bl sub_8084100 - ldr r1, _08047980 - movs r2, 0 - ldrsh r1, [r1, r2] - movs r6, 0 - cmp r0, r1 - bge _08047964 - movs r6, 0x1 -_08047964: - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0x1 - bne _08047994 - adds r0, r4, 0 - movs r1, 0x28 - bl sub_8046CB0 - lsls r0, 24 - cmp r0, 0 - beq _08047984 - movs r6, 0 - b _08047994 - .align 2, 0 -_08047980: .4byte gUnknown_80F4FA2 -_08047984: - adds r0, r4, 0 - movs r1, 0x2A - bl sub_8046CB0 - lsls r0, 24 - cmp r0, 0 - beq _08047994 - movs r6, 0x1 -_08047994: - adds r0, r5, 0 - bl sub_80450F8 - cmp r0, 0x1 - bne _080479AE - adds r0, r5, 0 - movs r1, 0x25 - bl sub_8046CB0 - lsls r0, 24 - cmp r0, 0 - beq _080479AE - movs r6, 0 -_080479AE: - adds r0, r6, 0 -_080479B0: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8047930 - - thumb_func_start sub_80479B8 -sub_80479B8: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r4, r3, 0 - ldr r5, [sp, 0x3C] - ldr r7, [sp, 0x40] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - cmp r6, 0 - beq _08047AD0 - cmp r1, 0 - bne _08047ABC - movs r0, 0 - mov r8, r0 - ldr r1, [r5, 0x70] - mov r9, r1 - ldrb r0, [r1, 0x6] - cmp r0, 0 - beq _08047A20 - ldrb r0, [r7, 0x2] - bl sub_8090BD0 - lsls r0, 24 - cmp r0, 0 - beq _08047A3C - ldrb r0, [r7, 0x2] - bl sub_8090BD0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _08047A3C - ldrb r0, [r7, 0x2] - bl sub_8090BD0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - mov r8, r1 - b _08047A3C -_08047A20: - ldrb r0, [r7, 0x2] - bl sub_8090BD0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _08047A3C - adds r0, r5, 0 - movs r1, 0x2 - bl sub_80718D8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_08047A3C: - adds r0, r5, 0 - bl sub_8070C60 - lsls r0, 24 - cmp r0, 0 - beq _08047A4C - movs r0, 0 - mov r8, r0 -_08047A4C: - mov r1, r8 - cmp r1, 0 - beq _08047ABC - mov r0, r9 - adds r0, 0x60 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08047ABC - mov r1, r9 - ldrb r0, [r1, 0x8] - cmp r0, 0x1 - bne _08047A76 - adds r1, r5, 0x4 - adds r0, r4, 0 - adds r2, r7, 0 - bl sub_80464C8 - bl _080482BA -_08047A76: - ldr r0, _08047AAC - bl sub_8083E38 - ldr r0, _08047AB0 - adds r1, r7, 0 - bl sub_8045BF8 - ldr r0, _08047AB4 - adds r1, r5, 0 - movs r2, 0 - bl sub_8045B94 - ldr r0, _08047AB8 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80522F4 - ldr r0, [r7] - mov r1, r9 - str r0, [r1, 0x60] - adds r0, r5, 0 - bl sub_806A6E8 - bl _080482BA - .align 2, 0 -_08047AAC: .4byte 0x0000014d -_08047AB0: .4byte gUnknown_202DE58 -_08047AB4: .4byte gUnknown_202DF98 -_08047AB8: .4byte gUnknown_80FDBB8 -_08047ABC: - cmp r6, 0 - beq _08047AD0 - adds r0, r5, 0 - adds r1, r7, 0 - bl sub_8042390 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_806F450 -_08047AD0: - ldrb r1, [r7] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08047B2C - ldr r0, _08047B1C - adds r1, r7, 0 - bl sub_8045BF8 - ldr r0, _08047B20 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80522F4 - cmp r6, 0 - beq _08047B30 - ldr r0, _08047B24 - movs r1, 0 - ldrsh r2, [r0, r1] - add r0, sp, 0x18 - str r0, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r0, _08047B28 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - str r1, [sp, 0x10] - str r1, [sp, 0x14] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x1 - bl sub_806F370 - adds r0, r4, 0 - bl sub_8071DA4 - b _080482BA - .align 2, 0 -_08047B1C: .4byte gUnknown_202DE58 -_08047B20: .4byte gUnknown_80FE3E8 -_08047B24: .4byte gUnknown_80F4FAE -_08047B28: .4byte 0x00000217 -_08047B2C: - cmp r6, 0 - bne _08047B38 -_08047B30: - adds r0, r5, 0 - adds r1, r7, 0 - bl sub_804245C -_08047B38: - ldrb r0, [r7, 0x2] - bl sub_8090BD0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08047B56 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x5 - movs r3, 0 - bl sub_8078B5C -_08047B56: - ldrb r0, [r7, 0x2] - bl sub_8090BD0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - beq _08047B72 - ldrb r0, [r7, 0x2] - bl sub_8090BD0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _08047B9C -_08047B72: - cmp r6, 0 - beq _08047B88 - ldr r0, _08047B84 - movs r1, 0 - ldrsh r2, [r0, r1] - mov r0, sp - adds r0, 0x19 - b _08048284 - .align 2, 0 -_08047B84: .4byte gUnknown_80F4FAC -_08047B88: - ldr r0, _08047B98 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80522F4 - b _080482B4 - .align 2, 0 -_08047B98: .4byte gUnknown_80FE458 -_08047B9C: - ldrb r0, [r7, 0x2] - subs r0, 0x1 - cmp r0, 0xE8 - bls _08047BA6 - b _08048276 -_08047BA6: - lsls r0, 2 - ldr r1, _08047BB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08047BB0: .4byte _08047BB4 - .align 2, 0 -_08047BB4: - .4byte _08047F58 - .4byte _08047F70 - .4byte _08047F88 - .4byte _08047FA0 - .4byte _08047FB8 - .4byte _08047FD0 - .4byte _08047FF0 - .4byte _08047FE8 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048004 - .4byte _0804825E - .4byte _08048010 - .4byte _0804801A - .4byte _0804804C - .4byte _08048276 - .4byte _0804802E - .4byte _0804809C - .4byte _08048038 - .4byte _08048024 - .4byte _080480BA - .4byte _080480C4 - .4byte _08048042 - .4byte _0804806A - .4byte _08048060 - .4byte _08048056 - .4byte _0804807E - .4byte _080480B0 - .4byte _08048074 - .4byte _080480D8 - .4byte _080480CE - .4byte _08048092 - .4byte _08048088 - .4byte _080480A6 - .4byte _080480E4 - .4byte _080480EE - .4byte _080480F8 - .4byte _08048102 - .4byte _0804810C - .4byte _08048212 - .4byte _08048122 - .4byte _0804813C - .4byte _0804812A - .4byte _08048146 - .4byte _08048152 - .4byte _0804815E - .4byte _0804816A - .4byte _08048176 - .4byte _08048182 - .4byte _0804818E - .4byte _0804819A - .4byte _080481A6 - .4byte _080481B2 - .4byte _080481BE - .4byte _080481CA - .4byte _080481D6 - .4byte _080481E2 - .4byte _080481EE - .4byte _080481FA - .4byte _08048206 - .4byte _08048212 - .4byte _08048220 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _0804823A - .4byte _08048252 - .4byte _08048246 - .4byte _0804826A - .4byte _0804822E - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048276 - .4byte _08048116 -_08047F58: - ldr r0, _08047F6C - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x1 - bl sub_80482FC - b _080482B4 - .align 2, 0 -_08047F6C: .4byte gUnknown_80F503A -_08047F70: - ldr r0, _08047F84 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x2 - bl sub_80482FC - b _080482B4 - .align 2, 0 -_08047F84: .4byte gUnknown_80F503C -_08047F88: - ldr r0, _08047F9C - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x3 - bl sub_80482FC - b _080482B4 - .align 2, 0 -_08047F9C: .4byte gUnknown_80F503E -_08047FA0: - ldr r0, _08047FB4 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x4 - bl sub_80482FC - b _080482B4 - .align 2, 0 -_08047FB4: .4byte gUnknown_80F5040 -_08047FB8: - ldr r0, _08047FCC - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x5 - bl sub_80482FC - b _080482B4 - .align 2, 0 -_08047FCC: .4byte gUnknown_80F5042 -_08047FD0: - ldr r0, _08047FE4 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x6 - bl sub_80482FC - b _080482B4 - .align 2, 0 -_08047FE4: .4byte gUnknown_80F5044 -_08047FE8: - ldr r0, _08047FEC - b _08047FF2 - .align 2, 0 -_08047FEC: .4byte gUnknown_80F5048 -_08047FF0: - ldr r0, _08048000 -_08047FF2: - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8048340 - b _080482B4 - .align 2, 0 -_08048000: .4byte gUnknown_80F5046 -_08048004: - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, r10 - bl sub_8048364 - b _080482B4 -_08048010: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8048374 - b _080482B4 -_0804801A: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_804839C - b _080482B4 -_08048024: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80483D4 - b _080482B4 -_0804802E: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80483F4 - b _080482B4 -_08048038: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8048400 - b _080482B4 -_08048042: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_804840C - b _080482B4 -_0804804C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_804841C - b _080482B4 -_08048056: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_804849C - b _080482B4 -_08048060: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8048428 - b _080482B4 -_0804806A: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8048450 - b _080482B4 -_08048074: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8048480 - b _080482B4 -_0804807E: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80482D4 - b _080482B4 -_08048088: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8048490 - b _080482B4 -_08048092: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80484A8 - b _080482B4 -_0804809C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80484DC - b _080482B4 -_080480A6: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80484BC - b _080482B4 -_080480B0: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80484C8 - b _080482B4 -_080480BA: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80484E8 - b _080482B4 -_080480C4: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8048524 - b _080482B4 -_080480CE: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80485B0 - b _080482B4 -_080480D8: - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_804869C - b _080482B4 -_080480E4: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80483C4 - b _080482B4 -_080480EE: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_804891C - b _080482B4 -_080480F8: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8048928 - b _080482B4 -_08048102: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8048934 - b _080482B4 -_0804810C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8048940 - b _080482B4 -_08048116: - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl nullsub_94 - b _080482B4 -_08048122: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x64 - b _08048130 -_0804812A: - ldr r2, _08048138 - adds r0, r4, 0 - adds r1, r5, 0 -_08048130: - movs r3, 0xA - bl sub_80487CC - b _080482B4 - .align 2, 0 -_08048138: .4byte 0x000003e7 -_0804813C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8048E04 - b _080482B4 -_08048146: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_80487E0 - b _080482B4 -_08048152: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl sub_80487E0 - b _080482B4 -_0804815E: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl sub_80487E0 - b _080482B4 -_0804816A: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x4 - bl sub_80487E0 - b _080482B4 -_08048176: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x5 - bl sub_80487E0 - b _080482B4 -_08048182: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x6 - bl sub_80487E0 - b _080482B4 -_0804818E: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x7 - bl sub_80487E0 - b _080482B4 -_0804819A: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x8 - bl sub_80487E0 - b _080482B4 -_080481A6: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x9 - bl sub_80487E0 - b _080482B4 -_080481B2: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xA - bl sub_80487E0 - b _080482B4 -_080481BE: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xB - bl sub_80487E0 - b _080482B4 -_080481CA: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xC - bl sub_80487E0 - b _080482B4 -_080481D6: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xD - bl sub_80487E0 - b _080482B4 -_080481E2: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xE - bl sub_80487E0 - b _080482B4 -_080481EE: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xF - bl sub_80487E0 - b _080482B4 -_080481FA: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x10 - bl sub_80487E0 - b _080482B4 -_08048206: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x11 - bl sub_80487E0 - b _080482B4 -_08048212: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x32 - movs r3, 0x5 - bl sub_80487CC - b _080482B4 -_08048220: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80487CC - b _080482B4 -_0804822E: - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_8048DB8 - b _080482B4 -_0804823A: - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_8048EB0 - b _080482B4 -_08048246: - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_8048EC4 - b _080482B4 -_08048252: - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_8048ED8 - b _080482B4 -_0804825E: - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_8048EEC - b _080482B4 -_0804826A: - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_8048F00 - b _080482B4 -_08048276: - cmp r6, 0 - beq _080482A8 - ldr r0, _080482A0 - movs r1, 0 - ldrsh r2, [r0, r1] - mov r0, sp - adds r0, 0x1A -_08048284: - str r0, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r0, _080482A4 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - str r1, [sp, 0x10] - str r1, [sp, 0x14] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x1 - bl sub_806F370 - b _080482B4 - .align 2, 0 -_080482A0: .4byte gUnknown_80F4FAC -_080482A4: .4byte 0x00000217 -_080482A8: - ldr r0, _080482CC - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80522F4 -_080482B4: - adds r0, r4, 0 - bl sub_8071DA4 -_080482BA: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080482CC: .4byte gUnknown_80FE458 - thumb_func_end sub_80479B8 - - thumb_func_start nullsub_205 -nullsub_205: - bx lr - thumb_func_end nullsub_205 - - thumb_func_start sub_80482D4 -sub_80482D4: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r1, _080482F8 - adds r0, r4, 0 - movs r2, 0x1 - bl sub_808417C - adds r2, r0, 0 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl sub_8075C58 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080482F8: .4byte gUnknown_80F4E74 - thumb_func_end sub_80482D4 - - thumb_func_start sub_80482FC -sub_80482FC: - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - mov r8, r0 - mov r9, r1 - adds r6, r2, 0 - lsls r4, r3, 24 - lsrs r4, 24 - add r5, sp, 0x4 - ldr r1, _0804833C - adds r0, r5, 0 - bl sub_8092A88 - strb r6, [r5, 0x4] - movs r3, 0x80 - lsls r3, 1 - str r4, [sp] - mov r0, r8 - mov r1, r9 - add r2, sp, 0x4 - bl sub_8055640 - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804833C: .4byte 0x00000195 - thumb_func_end sub_80482FC - - thumb_func_start sub_8048340 -sub_8048340: - push {r4,lr} - sub sp, 0x18 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - movs r3, 0x84 - lsls r3, 2 - str r3, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - str r4, [sp, 0x14] - movs r3, 0x1 - bl sub_806F370 - add sp, 0x18 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8048340 - - thumb_func_start sub_8048364 -sub_8048364: - push {lr} - lsls r3, r2, 24 - lsrs r3, 24 - movs r2, 0x1 - bl sub_8079F20 - pop {r0} - bx r0 - thumb_func_end sub_8048364 - - thumb_func_start sub_8048374 -sub_8048374: - push {r4,lr} - sub sp, 0x4 - ldr r2, _08048394 - movs r3, 0 - ldrsh r2, [r2, r3] - ldr r3, _08048398 - movs r4, 0 - ldrsh r3, [r3, r4] - movs r4, 0x1 - str r4, [sp] - bl sub_8077C44 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08048394: .4byte gUnknown_80F4FB6 -_08048398: .4byte gUnknown_80F4FB8 - thumb_func_end sub_8048374 - - thumb_func_start sub_804839C -sub_804839C: - push {r4,lr} - sub sp, 0x4 - ldr r2, _080483BC - movs r3, 0 - ldrsh r2, [r2, r3] - ldr r3, _080483C0 - movs r4, 0 - ldrsh r3, [r3, r4] - movs r4, 0x1 - str r4, [sp] - bl sub_8077C44 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080483BC: .4byte gUnknown_80F4FBA -_080483C0: .4byte gUnknown_80F4FBC - thumb_func_end sub_804839C - - thumb_func_start sub_80483C4 -sub_80483C4: - push {lr} - ldr r2, _080483D0 - bl sub_80792F8 - pop {r0} - bx r0 - .align 2, 0 -_080483D0: .4byte 0x000003e7 - thumb_func_end sub_80483C4 - - thumb_func_start sub_80483D4 -sub_80483D4: - push {r4,lr} - sub sp, 0x4 - ldr r2, _080483F0 - movs r4, 0 - ldrsh r3, [r2, r4] - movs r2, 0x1 - str r2, [sp] - movs r2, 0 - bl sub_8077C44 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080483F0: .4byte gUnknown_80F4FBE - thumb_func_end sub_80483D4 - - thumb_func_start sub_80483F4 -sub_80483F4: - push {lr} - bl sub_8079140 - pop {r0} - bx r0 - thumb_func_end sub_80483F4 - - thumb_func_start sub_8048400 -sub_8048400: - push {lr} - bl sub_80791D8 - pop {r0} - bx r0 - thumb_func_end sub_8048400 - - thumb_func_start sub_804840C -sub_804840C: - push {lr} - movs r2, 0 - movs r3, 0x1 - bl sub_8077910 - pop {r0} - bx r0 - thumb_func_end sub_804840C - - thumb_func_start sub_804841C -sub_804841C: - push {lr} - bl sub_8079270 - pop {r0} - bx r0 - thumb_func_end sub_804841C - - thumb_func_start sub_8048428 -sub_8048428: - push {lr} - adds r3, r0, 0 - ldr r0, [r1, 0x70] - adds r0, 0xAC - ldrb r0, [r0] - cmp r0, 0x4 - bne _0804843E - adds r0, r3, 0 - bl sub_807A290 - b _08048448 -_0804843E: - ldr r0, _0804844C - ldr r2, [r0] - adds r0, r3, 0 - bl sub_80522F4 -_08048448: - pop {r0} - bx r0 - .align 2, 0 -_0804844C: .4byte gUnknown_80F89F4 - thumb_func_end sub_8048428 - - thumb_func_start sub_8048450 -sub_8048450: - push {lr} - adds r3, r0, 0 - ldr r0, [r1, 0x70] - adds r0, 0xAC - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0804846C - adds r0, r3, 0 - bl sub_807A290 - b _08048476 -_0804846C: - ldr r0, _0804847C - ldr r2, [r0] - adds r0, r3, 0 - bl sub_80522F4 -_08048476: - pop {r0} - bx r0 - .align 2, 0 -_0804847C: .4byte gUnknown_80F89F4 - thumb_func_end sub_8048450 - - thumb_func_start sub_8048480 -sub_8048480: - push {lr} - movs r2, 0 - movs r3, 0 - bl sub_807D148 - pop {r0} - bx r0 - thumb_func_end sub_8048480 - - thumb_func_start sub_8048490 -sub_8048490: - push {lr} - bl sub_8075FCC - pop {r0} - bx r0 - thumb_func_end sub_8048490 - - thumb_func_start sub_804849C -sub_804849C: - push {lr} - movs r2, 0x1 - bl sub_8077AE4 - pop {r0} - bx r0 - thumb_func_end sub_804849C - - thumb_func_start sub_80484A8 -sub_80484A8: - push {lr} - sub sp, 0x4 - movs r2, 0x1 - str r2, [sp] - movs r3, 0x1 - bl sub_8072008 - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_80484A8 - - thumb_func_start sub_80484BC -sub_80484BC: - push {lr} - bl sub_8076D10 - pop {r0} - bx r0 - thumb_func_end sub_80484BC - - thumb_func_start sub_80484C8 -sub_80484C8: - push {lr} - ldr r2, _080484D8 - ldr r2, [r2] - bl sub_80522F4 - pop {r0} - bx r0 - .align 2, 0 -_080484D8: .4byte gUnknown_80F89F4 - thumb_func_end sub_80484C8 - - thumb_func_start sub_80484DC -sub_80484DC: - push {lr} - movs r2, 0x1 - bl sub_807232C - pop {r0} - bx r0 - thumb_func_end sub_80484DC - - thumb_func_start sub_80484E8 -sub_80484E8: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, [r4, 0x70] - adds r0, 0xAC - ldrb r0, [r0] - cmp r0, 0x1 - bne _08048500 - adds r0, r5, 0 - bl sub_807A290 - b _08048516 -_08048500: - ldr r0, _0804851C - adds r1, r4, 0 - movs r2, 0 - bl sub_8045B94 - ldr r0, _08048520 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80522F4 -_08048516: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804851C: .4byte gUnknown_202DF98 -_08048520: .4byte gUnknown_80FB580 - thumb_func_end sub_80484E8 - - thumb_func_start sub_8048524 -sub_8048524: - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - adds r4, r1, 0 - ldr r0, [r4, 0x70] - adds r5, r0, 0 - ldrb r0, [r5, 0x7] - cmp r0, 0 - beq _08048542 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x5 - bl sub_8078A58 - b _080485A4 -_08048542: - ldr r0, _08048560 - adds r1, r4, 0 - movs r2, 0 - bl sub_8045B94 - adds r0, r4, 0 - movs r1, 0x12 - bl sub_80718D8 - lsls r0, 24 - cmp r0, 0 - beq _08048568 - ldr r0, _08048564 - b _08048586 - .align 2, 0 -_08048560: .4byte gUnknown_202DF98 -_08048564: .4byte gUnknown_8100298 -_08048568: - movs r0, 0x9E - lsls r0, 1 - adds r5, r0 - ldr r0, [r5] - bl sub_8094450 - cmp r0, 0 - beq _08048598 - mov r0, sp - movs r1, 0 - bl sub_80943A0 - ldr r0, [sp] - str r0, [r5] - ldr r0, _08048594 -_08048586: - ldr r2, [r0] - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80522F4 - b _080485A4 - .align 2, 0 -_08048594: .4byte gUnknown_80F9740 -_08048598: - ldr r0, _080485AC - ldr r2, [r0] - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80522F4 -_080485A4: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080485AC: .4byte gUnknown_80F9760 - thumb_func_end sub_8048524 - - thumb_func_start sub_80485B0 -sub_80485B0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r9, r0 - mov r8, r1 - movs r0, 0 - str r0, [sp] - movs r2, 0x1 - mov r10, r2 - ldr r4, [r1, 0x70] - movs r0, 0x64 - bl sub_8084100 - ldr r1, _0804865C - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - bge _080485DE - movs r0, 0x3 - mov r10, r0 -_080485DE: - ldrb r0, [r4, 0x7] - cmp r0, 0 - beq _0804867C - movs r2, 0x8C - lsls r2, 1 - adds r4, r2 - adds r5, r4, 0 - movs r7, 0x3 -_080485EE: - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804862C - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0804862C - adds r0, r5, 0 - bl sub_8092BC0 - cmp r0, 0 - beq _0804862C - ldrb r6, [r4, 0x5] - adds r0, r5, 0 - bl sub_8092C0C - adds r1, r0, 0 - ldrb r0, [r4, 0x5] - add r0, r10 - strb r0, [r4, 0x5] - ldrb r0, [r4, 0x5] - cmp r0, r1 - blt _08048622 - strb r1, [r4, 0x5] -_08048622: - ldrb r0, [r4, 0x5] - cmp r6, r0 - beq _0804862C - movs r2, 0x1 - str r2, [sp] -_0804862C: - adds r4, 0x8 - adds r5, 0x8 - subs r7, 0x1 - cmp r7, 0 - bge _080485EE - ldr r0, [sp] - cmp r0, 0 - beq _08048668 - ldr r0, _08048660 - ldr r2, [r0] - mov r0, r9 - mov r1, r8 - bl sub_80522F4 - mov r2, r10 - cmp r2, 0x1 - beq _08048688 - movs r0, 0xA - movs r1, 0x40 - bl sub_803E708 - ldr r0, _08048664 - b _0804866A - .align 2, 0 -_0804865C: .4byte gUnknown_80F4F46 -_08048660: .4byte gUnknown_80FE454 -_08048664: .4byte gUnknown_80FE434 -_08048668: - ldr r0, _08048678 -_0804866A: - ldr r2, [r0] - mov r0, r9 - mov r1, r8 - bl sub_80522F4 - b _08048688 - .align 2, 0 -_08048678: .4byte gUnknown_80FE40C -_0804867C: - ldr r0, _08048698 - ldr r2, [r0] - mov r0, r9 - mov r1, r8 - bl sub_80522F4 -_08048688: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08048698: .4byte gUnknown_80FE40C - thumb_func_end sub_80485B0 - - thumb_func_start sub_804869C -sub_804869C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x1C - adds r4, r0, 0 - adds r7, r1, 0 - lsls r2, 24 - cmp r2, 0 - beq _08048724 - ldr r5, [r7, 0x70] - ldr r0, _080486D4 - ldr r0, [r0] - ldr r1, _080486D8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080486E4 - ldr r0, _080486DC - movs r1, 0 - ldrsh r6, [r0, r1] - ldr r0, _080486E0 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r7, 0 - bl sub_80522F4 - b _080486EA - .align 2, 0 -_080486D4: .4byte gUnknown_203B418 -_080486D8: .4byte 0x00000675 -_080486DC: .4byte gUnknown_80F4FA8 -_080486E0: .4byte gUnknown_80FEAE8 -_080486E4: - ldr r0, _0804871C - movs r1, 0 - ldrsh r6, [r0, r1] -_080486EA: - adds r0, r5, 0 - adds r0, 0xB0 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080486FC - adds r0, r4, 0 - adds r1, r7, 0 - bl sub_807A324 -_080486FC: - add r0, sp, 0x18 - str r0, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r0, _08048720 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - str r1, [sp, 0x10] - str r1, [sp, 0x14] - adds r0, r4, 0 - adds r1, r7, 0 - adds r2, r6, 0 - movs r3, 0x1 - bl sub_806F370 - b _080487B6 - .align 2, 0 -_0804871C: .4byte gUnknown_80F4FA4 -_08048720: .4byte 0x00000216 -_08048724: - adds r0, r4, 0 - bl sub_8042520 - adds r0, r4, 0 - bl sub_80696FC - adds r5, r0, 0 - cmp r5, 0 - bne _08048748 - ldr r0, _08048744 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r7, 0 - bl sub_80522F4 - b _080487B6 - .align 2, 0 -_08048744: .4byte gUnknown_80FDBA0 -_08048748: - ldr r1, [r5, 0x70] - mov r8, r1 - ldr r0, _08048770 - ldr r0, [r0] - ldr r1, _08048774 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08048780 - ldr r0, _08048778 - movs r1, 0 - ldrsh r6, [r0, r1] - ldr r0, _0804877C - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r7, 0 - bl sub_80522F4 - b _08048786 - .align 2, 0 -_08048770: .4byte gUnknown_203B418 -_08048774: .4byte 0x00000675 -_08048778: .4byte gUnknown_80F4FAA -_0804877C: .4byte gUnknown_80FEAE8 -_08048780: - ldr r0, _080487C4 - movs r1, 0 - ldrsh r6, [r0, r1] -_08048786: - mov r0, r8 - adds r0, 0xB0 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08048798 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_807A324 -_08048798: - add r0, sp, 0x18 - str r0, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r0, _080487C8 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - str r1, [sp, 0x10] - str r1, [sp, 0x14] - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0x1 - bl sub_806F370 -_080487B6: - add sp, 0x1C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080487C4: .4byte gUnknown_80F4FA6 -_080487C8: .4byte 0x00000216 - thumb_func_end sub_804869C - - thumb_func_start sub_80487CC -sub_80487CC: - push {r4,lr} - sub sp, 0x4 - movs r4, 0x1 - str r4, [sp] - bl sub_8078B5C - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80487CC - - thumb_func_start sub_80487E0 -sub_80487E0: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r9, r0 - mov r8, r1 - lsls r3, r2, 24 - ldr r5, [r1, 0x70] - ldr r4, _08048858 - lsrs r3, 23 - adds r0, r5, 0 - adds r0, 0x5C - ldrb r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r3, r1 - adds r0, r1, r4 - movs r2, 0 - ldrsh r6, [r0, r2] - adds r0, r5, 0 - adds r0, 0x5D - ldrb r2, [r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r3, r0 - adds r4, r3, r4 - movs r2, 0 - ldrsh r0, [r4, r2] - adds r6, r0 - ldr r0, _0804885C - adds r1, r0 - movs r4, 0 - ldrsh r2, [r1, r4] - adds r3, r0 - movs r1, 0 - ldrsh r0, [r3, r1] - adds r2, r0 - movs r0, 0x1 - str r0, [sp] - mov r0, r9 - mov r1, r8 - movs r3, 0 - bl sub_8078B5C - ldrb r0, [r5, 0x6] - cmp r0, 0 - bne _08048906 - adds r0, r5, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - beq _08048852 - cmp r0, 0x47 - bne _08048860 -_08048852: - movs r0, 0x1 - b _08048862 - .align 2, 0 -_08048858: .4byte gUnknown_810A580 -_0804885C: .4byte gUnknown_810A808 -_08048860: - movs r0, 0 -_08048862: - cmp r0, 0 - bne _08048906 - movs r2, 0xC - ldrsh r7, [r5, r2] - ldrh r0, [r5, 0xC] - adds r0, r6 - strh r0, [r5, 0xC] - adds r2, r7, r6 - lsls r0, 16 - cmp r0, 0 - bgt _0804887C - movs r0, 0x1 - strh r0, [r5, 0xC] -_0804887C: - movs r4, 0xC - ldrsh r0, [r5, r4] - ldr r1, _080488A0 - cmp r0, r1 - ble _08048888 - strh r1, [r5, 0xC] -_08048888: - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r7, r0 - bne _080488A8 - ldr r0, _080488A4 - ldr r2, [r0] - mov r0, r9 - mov r1, r8 - bl sub_80522F4 - b _08048906 - .align 2, 0 -_080488A0: .4byte 0x000003e7 -_080488A4: .4byte gUnknown_80FD644 -_080488A8: - subs r0, r2, r7 - movs r2, 0 - cmp r0, 0x8 - bgt _080488BE - movs r2, 0x1 - cmp r0, 0x4 - bgt _080488BE - movs r2, 0x3 - cmp r0, 0x2 - ble _080488BE - movs r2, 0x2 -_080488BE: - movs r4, 0xC - ldrsh r0, [r5, r4] - subs r0, r7 - movs r4, 0 - cmp r0, 0x8 - bgt _080488D8 - movs r4, 0x1 - cmp r0, 0x4 - bgt _080488D8 - movs r4, 0x3 - cmp r0, 0x2 - ble _080488D8 - movs r4, 0x2 -_080488D8: - ldr r1, _08048914 - lsls r0, r2, 2 - adds r0, r1 - ldr r2, [r0] - mov r0, r9 - mov r1, r8 - bl sub_80522F4 - ldr r1, _08048918 - lsls r0, r4, 2 - adds r0, r1 - ldr r2, [r0] - mov r0, r9 - mov r1, r8 - bl sub_80522F4 - mov r0, r8 - bl sub_807191C - adds r0, r5, 0 - adds r1, r7, 0 - bl sub_806A7E8 -_08048906: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08048914: .4byte gUnknown_80FD648 -_08048918: .4byte gUnknown_80FD6E8 - thumb_func_end sub_80487E0 - - thumb_func_start sub_804891C -sub_804891C: - push {lr} - movs r2, 0x3 - bl sub_80793B0 - pop {r0} - bx r0 - thumb_func_end sub_804891C - - thumb_func_start sub_8048928 -sub_8048928: - push {lr} - movs r2, 0x3 - bl sub_8079420 - pop {r0} - bx r0 - thumb_func_end sub_8048928 - - thumb_func_start sub_8048934 -sub_8048934: - push {lr} - movs r2, 0x3 - bl sub_8079490 - pop {r0} - bx r0 - thumb_func_end sub_8048934 - - thumb_func_start sub_8048940 -sub_8048940: - push {lr} - movs r2, 0x3 - bl sub_8079500 - pop {r0} - bx r0 - thumb_func_end sub_8048940 - - thumb_func_start nullsub_94 -nullsub_94: - bx lr - thumb_func_end nullsub_94 - - thumb_func_start sub_8048950 -sub_8048950: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - mov r8, r1 - ldrb r0, [r1, 0x2] - bl sub_80913CC - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08048988 - ldr r0, _08048984 -_08048978: - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - b _08048A58 - .align 2, 0 -_08048984: .4byte gUnknown_80FE3E8 -_08048988: - mov r1, r8 - ldrb r0, [r1, 0x2] - bl sub_80915A0 - lsls r0, 24 - cmp r0, 0 - beq _080489A0 - ldr r0, _0804899C - b _08048978 - .align 2, 0 -_0804899C: .4byte gUnknown_81006CC -_080489A0: - movs r7, 0 -_080489A2: - ldr r0, _080489FC - ldr r0, [r0] - lsls r1, r7, 2 - ldr r2, _08048A00 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08048A12 - ldr r6, [r4, 0x70] - movs r0, 0x2 - ldrsh r1, [r6, r0] - mov r0, r9 - bl sub_808E190 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - movs r1, 0 - bl sub_8070B6C - lsls r0, 24 - cmp r0, 0 - beq _080489DC - movs r5, 0 -_080489DC: - adds r0, r6, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080489E8 - movs r5, 0 -_080489E8: - adds r0, r6, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - beq _080489F6 - cmp r0, 0x47 - bne _08048A04 -_080489F6: - movs r0, 0x1 - b _08048A06 - .align 2, 0 -_080489FC: .4byte gUnknown_203B418 -_08048A00: .4byte 0x0001357c -_08048A04: - movs r0, 0 -_08048A06: - cmp r0, 0 - beq _08048A0C - movs r5, 0 -_08048A0C: - ldr r1, _08048A50 - adds r0, r6, r1 - strb r5, [r0] -_08048A12: - adds r7, 0x1 - cmp r7, 0x3 - ble _080489A2 - movs r0, 0 - movs r1, 0x1 - bl sub_8062978 - adds r4, r0, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08048A58 - mov r0, r10 - mov r1, r8 - bl sub_804245C - adds r0, r4, 0 - mov r1, r9 - bl sub_8072938 - lsls r0, 24 - cmp r0, 0 - beq _08048A58 - ldr r2, _08048A54 - mov r0, r10 - movs r1, 0 - bl sub_8044E24 - movs r0, 0x1 - b _08048A5A - .align 2, 0 -_08048A50: .4byte 0x00000157 -_08048A54: .4byte 0x00000141 -_08048A58: - movs r0, 0 -_08048A5A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8048950 - - thumb_func_start sub_8048A68 -sub_8048A68: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r0 - mov r8, r1 - ldrb r1, [r1] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08048A90 - ldr r0, _08048A8C -_08048A80: - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - b _08048B8C - .align 2, 0 -_08048A8C: .4byte gUnknown_80FE3E8 -_08048A90: - ldr r0, _08048AA4 - ldr r0, [r0] - ldr r1, _08048AA8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08048AB0 - ldr r0, _08048AAC - b _08048A80 - .align 2, 0 -_08048AA4: .4byte gUnknown_203B418 -_08048AA8: .4byte 0x0000065c -_08048AAC: .4byte gUnknown_80F9BD8 -_08048AB0: - movs r7, 0 -_08048AB2: - ldr r0, _08048B24 - ldr r0, [r0] - lsls r1, r7, 2 - ldr r2, _08048B28 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08048B4A - ldr r5, [r4, 0x70] - movs r6, 0x1 - ldrb r0, [r5, 0xA] - cmp r0, 0x3 - bhi _08048AF4 - ldr r2, _08048B2C - ldrb r1, [r5, 0xA] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08048B30 - adds r1, r0 - ldr r0, [r2] - adds r0, r1 - movs r1, 0xA - ldrsh r0, [r0, r1] - bl sub_806A538 - lsls r0, 24 - cmp r0, 0 - beq _08048AF6 -_08048AF4: - movs r6, 0 -_08048AF6: - adds r0, r4, 0 - movs r1, 0 - bl sub_8070B6C - lsls r0, 24 - cmp r0, 0 - beq _08048B06 - movs r6, 0 -_08048B06: - adds r0, r5, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08048B12 - movs r6, 0 -_08048B12: - adds r0, r5, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - beq _08048B20 - cmp r0, 0x47 - bne _08048B34 -_08048B20: - movs r0, 0x1 - b _08048B36 - .align 2, 0 -_08048B24: .4byte gUnknown_203B418 -_08048B28: .4byte 0x0001357c -_08048B2C: .4byte gUnknown_203B45C -_08048B30: .4byte 0x00008df8 -_08048B34: - movs r0, 0 -_08048B36: - cmp r0, 0 - beq _08048B3C - movs r6, 0 -_08048B3C: - ldrb r0, [r5, 0x7] - cmp r0, 0 - beq _08048B44 - movs r6, 0 -_08048B44: - ldr r2, _08048B84 - adds r0, r5, r2 - strb r6, [r0] -_08048B4A: - adds r7, 0x1 - cmp r7, 0x3 - ble _08048AB2 - movs r0, 0 - movs r1, 0x1 - bl sub_8062978 - adds r4, r0, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _08048B8C - mov r0, r9 - mov r1, r8 - bl sub_804245C - ldr r0, _08048B88 - ldr r0, [r0] - adds r0, 0xBC - str r4, [r0] - movs r2, 0xA1 - lsls r2, 1 - mov r0, r9 - movs r1, 0 - bl sub_8044E24 - movs r0, 0x1 - b _08048B8E - .align 2, 0 -_08048B84: .4byte 0x00000157 -_08048B88: .4byte gUnknown_203B418 -_08048B8C: - movs r0, 0 -_08048B8E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8048A68 - - thumb_func_start sub_8048B9C -sub_8048B9C: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x20 - mov r9, r0 - movs r0, 0 - mov r8, r0 - mov r2, r9 - ldr r0, [r2, 0x70] - adds r6, r0, 0 - adds r6, 0x44 - ldrb r1, [r1] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08048BD4 - ldr r0, _08048BD0 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - movs r0, 0 - b _08048D40 - .align 2, 0 -_08048BD0: .4byte gUnknown_80FE3E8 -_08048BD4: - movs r2, 0 -_08048BD6: - ldr r0, _08048C28 - ldr r0, [r0] - lsls r1, r2, 2 - ldr r3, _08048C2C - adds r0, r3 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - str r2, [sp, 0x1C] - bl sub_80450E0 - lsls r0, 24 - ldr r2, [sp, 0x1C] - cmp r0, 0 - beq _08048C3E - ldr r5, [r4, 0x70] - movs r7, 0x1 - adds r0, r4, 0 - movs r1, 0 - bl sub_8070B6C - lsls r0, 24 - ldr r2, [sp, 0x1C] - cmp r0, 0 - beq _08048C0A - movs r7, 0 -_08048C0A: - adds r0, r5, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08048C16 - movs r7, 0 -_08048C16: - adds r0, r5, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - beq _08048C24 - cmp r0, 0x47 - bne _08048C30 -_08048C24: - movs r0, 0x1 - b _08048C32 - .align 2, 0 -_08048C28: .4byte gUnknown_203B418 -_08048C2C: .4byte 0x0001357c -_08048C30: - movs r0, 0 -_08048C32: - cmp r0, 0 - beq _08048C38 - movs r7, 0 -_08048C38: - ldr r4, _08048C5C - adds r0, r5, r4 - strb r7, [r0] -_08048C3E: - adds r2, 0x1 - cmp r2, 0x3 - ble _08048BD6 - movs r0, 0 - movs r1, 0x1 - bl sub_8062978 - adds r4, r0, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - bne _08048C60 - movs r0, 0 - b _08048D40 - .align 2, 0 -_08048C5C: .4byte 0x00000157 -_08048C60: - add r1, sp, 0x4 - adds r0, r6, 0 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - b _08048CE2 -_08048C6E: - ldrh r0, [r6] - cmp r0, 0x1D - bne _08048C7C - adds r0, r6, 0 - bl sub_80637E8 - b _08048CE2 -_08048C7C: - cmp r0, 0x20 - bne _08048C9A - movs r0, 0 - movs r1, 0 - bl sub_803EAF0 - adds r0, r6, 0 - bl sub_8063BB4 - movs r0, 0x1 - bl sub_8044C10 - movs r5, 0x1 - mov r8, r5 - b _08048CE2 -_08048C9A: - cmp r0, 0x21 - bne _08048CB6 - movs r0, 0 - movs r1, 0 - bl sub_803EAF0 - adds r0, r6, 0 - movs r1, 0 - bl sub_8063CF0 - movs r0, 0x1 - bl sub_8044C10 - b _08048CE2 -_08048CB6: - cmp r0, 0x1E - beq _08048CBE - cmp r0, 0x33 - bne _08048CD0 -_08048CBE: - movs r0, 0 - movs r1, 0 - bl sub_803EAF0 - adds r0, r6, 0 - movs r1, 0 - bl sub_8063A70 - b _08048CE2 -_08048CD0: - cmp r0, 0x1F - bne _08048CE2 - movs r0, 0 - movs r1, 0 - bl sub_803EAF0 - adds r0, r6, 0 - bl sub_8063B54 -_08048CE2: - adds r0, r6, 0 - bl sub_8044C88 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - movs r3, 0 - bl sub_8062F90 - lsls r0, 24 - cmp r0, 0 - beq _08048C6E - mov r0, r8 - cmp r0, 0 - beq _08048D38 - ldr r0, _08048D34 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl sub_8052B8C - cmp r0, 0x1 - bne _08048C6E - adds r1, r6, 0 - add r0, sp, 0x4 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, r9 - movs r1, 0 - movs r2, 0x6E - bl sub_8044DF0 - adds r0, r6, 0 - movs r1, 0x2C - bl sub_8044C94 - b _08048D3E - .align 2, 0 -_08048D34: .4byte gUnknown_80FECA0 -_08048D38: - movs r0, 0x1 - bl sub_8044C10 -_08048D3E: - mov r0, r8 -_08048D40: - add sp, 0x20 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8048B9C - - thumb_func_start sub_8048D50 -sub_8048D50: - push {r4,lr} - adds r4, r0, 0 - adds r2, r1, 0 - ldr r3, [r4, 0x70] - ldrb r1, [r2] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08048D78 - ldr r0, _08048D70 - adds r1, r2, 0 - bl sub_8045BF8 - ldr r0, _08048D74 - b _08048D9A - .align 2, 0 -_08048D70: .4byte gUnknown_202DE58 -_08048D74: .4byte gUnknown_80FE3E8 -_08048D78: - adds r0, r3, 0 - adds r0, 0xEC - ldrb r0, [r0] - cmp r0, 0x1 - bne _08048DB0 - ldrb r0, [r2, 0x2] - bl sub_8091570 - lsls r0, 24 - cmp r0, 0 - beq _08048DB0 - ldr r0, _08048DA8 - adds r1, r4, 0 - movs r2, 0 - bl sub_8045B94 - ldr r0, _08048DAC -_08048D9A: - ldr r1, [r0] - adds r0, r4, 0 - bl sub_80522A8 - movs r0, 0 - b _08048DB2 - .align 2, 0 -_08048DA8: .4byte gUnknown_202DF98 -_08048DAC: .4byte gUnknown_80FDCA4 -_08048DB0: - movs r0, 0x1 -_08048DB2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8048D50 - - thumb_func_start sub_8048DB8 -sub_8048DB8: - push {r4,lr} - sub sp, 0x1C - adds r3, r0, 0 - adds r4, r1, 0 - lsls r2, 24 - cmp r2, 0 - beq _08048DF4 - ldr r0, _08048DEC - movs r1, 0 - ldrsh r2, [r0, r1] - add r0, sp, 0x18 - str r0, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r0, _08048DF0 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - str r1, [sp, 0x10] - str r1, [sp, 0x14] - adds r0, r3, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl sub_806F370 - b _08048DFA - .align 2, 0 -_08048DEC: .4byte gUnknown_80F4FAC -_08048DF0: .4byte 0x00000217 -_08048DF4: - adds r0, r3, 0 - bl sub_8051E7C -_08048DFA: - add sp, 0x1C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8048DB8 - - thumb_func_start sub_8048E04 -sub_8048E04: - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r6, r1, 0 - movs r0, 0x1 - str r0, [sp] - adds r0, r5, 0 - movs r2, 0x1E - movs r3, 0 - bl sub_8078B5C - movs r0, 0x5 - bl sub_8084100 - cmp r0, 0x4 - bhi _08048E9E - lsls r0, 2 - ldr r1, _08048E30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08048E30: .4byte _08048E34 - .align 2, 0 -_08048E34: - .4byte _08048E48 - .4byte _08048E54 - .4byte _08048E5E - .4byte _08048E6C - .4byte _08048E78 -_08048E48: - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x1 - bl sub_80763F8 - b _08048E9E -_08048E54: - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80769CC - b _08048E9E -_08048E5E: - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8076210 - b _08048E9E -_08048E6C: - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x1 - bl sub_8077780 - b _08048E9E -_08048E78: - ldr r0, _08048EA8 - ldr r2, [r0] - movs r4, 0x1 - str r4, [sp] - str r4, [sp, 0x4] - adds r0, r5, 0 - adds r1, r6, 0 - movs r3, 0x3 - bl sub_8076E20 - ldr r0, _08048EAC - ldr r2, [r0] - str r4, [sp] - str r4, [sp, 0x4] - adds r0, r5, 0 - adds r1, r6, 0 - movs r3, 0x3 - bl sub_8076E20 -_08048E9E: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08048EA8: .4byte gUnknown_8106A4C -_08048EAC: .4byte gUnknown_8106A50 - thumb_func_end sub_8048E04 - - thumb_func_start sub_8048EB0 -sub_8048EB0: - push {lr} - ldr r1, _08048EC0 - ldr r1, [r1] - bl sub_80522A8 - pop {r0} - bx r0 - .align 2, 0 -_08048EC0: .4byte gUnknown_81003E0 - thumb_func_end sub_8048EB0 - - thumb_func_start sub_8048EC4 -sub_8048EC4: - push {lr} - ldr r1, _08048ED4 - ldr r1, [r1] - bl sub_80522A8 - pop {r0} - bx r0 - .align 2, 0 -_08048ED4: .4byte gUnknown_8100404 - thumb_func_end sub_8048EC4 - - thumb_func_start sub_8048ED8 -sub_8048ED8: - push {lr} - ldr r1, _08048EE8 - ldr r1, [r1] - bl sub_80522A8 - pop {r0} - bx r0 - .align 2, 0 -_08048EE8: .4byte gUnknown_8100428 - thumb_func_end sub_8048ED8 - - thumb_func_start sub_8048EEC -sub_8048EEC: - push {lr} - ldr r1, _08048EFC - ldr r1, [r1] - bl sub_80522A8 - pop {r0} - bx r0 - .align 2, 0 -_08048EFC: .4byte gUnknown_810044C - thumb_func_end sub_8048EEC - - thumb_func_start sub_8048F00 -sub_8048F00: - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xD6 - bl sub_80421C0 - ldr r0, _08048F24 - ldr r1, [r0] - adds r0, r4, 0 - bl sub_80522A8 - movs r0, 0x3C - movs r1, 0x46 - bl sub_803E708 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08048F24: .4byte gUnknown_8100494 - thumb_func_end sub_8048F00 - - thumb_func_start sub_8048F28 -sub_8048F28: - push {r4-r7,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r3, [r4, 0x70] - movs r6, 0 - movs r0, 0x1 - adds r5, r2, 0 - ands r5, r0 - lsrs r2, 1 - movs r0, 0x1 - ands r2, r0 - ldrb r0, [r1, 0x2] - subs r0, 0x1 - cmp r0, 0xCC - bls _08048F48 - b _080494E0 -_08048F48: - lsls r0, 2 - ldr r1, _08048F54 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08048F54: .4byte _08048F58 - .align 2, 0 -_08048F58: - .4byte _0804928C - .4byte _0804928C - .4byte _0804928C - .4byte _0804928C - .4byte _0804928C - .4byte _0804928C - .4byte _0804928C - .4byte _0804928C - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _08049408 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _08049296 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080492B0 - .4byte _080492B0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _08049320 - .4byte _080494E0 - .4byte _080492B8 - .4byte _080492B8 - .4byte _0804935E - .4byte _080494E0 - .4byte _080493E0 - .4byte _0804948E - .4byte _08049394 - .4byte _08049344 - .4byte _0804946E - .4byte _0804947A - .4byte _08049378 - .4byte _080493CE - .4byte _080493AC - .4byte _080493B8 - .4byte _08049436 - .4byte _080494E0 - .4byte _080493F6 - .4byte _080494B2 - .4byte _0804946A - .4byte _08049462 - .4byte _08049454 - .4byte _08049498 - .4byte _080492DC - .4byte _0804932C - .4byte _08049338 - .4byte _0804933C - .4byte _08049340 - .4byte _080494C2 - .4byte _080494C2 - .4byte _080494D6 - .4byte _080494C2 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494E0 - .4byte _080494DA -_0804928C: - cmp r5, 0 - bne _08049292 - b _080494E2 -_08049292: - movs r6, 0x46 - b _080494E2 -_08049296: - cmp r5, 0 - bne _0804929C - b _080494E0 -_0804929C: - movs r1, 0x9E - lsls r1, 1 - adds r0, r3, r1 - ldr r0, [r0] - bl sub_8094450 - cmp r0, 0 - ble _080492AE - b _0804948A -_080492AE: - b _080494E0 -_080492B0: - cmp r5, 0 - beq _080492B6 - b _0804948A -_080492B6: - b _080494E0 -_080492B8: - movs r2, 0xE - ldrsh r1, [r3, r2] - movs r2, 0x10 - ldrsh r0, [r3, r2] - cmp r1, r0 - blt _080492C6 - b _080494E2 -_080492C6: - cmp r0, 0 - bge _080492CC - adds r0, 0x3 -_080492CC: - asrs r0, 2 - cmp r1, r0 - ble _080492D4 - b _080494E2 -_080492D4: - cmp r5, 0 - bne _080492DA - b _08049420 -_080492DA: - b _08049432 -_080492DC: - movs r6, 0 - movs r0, 0x8C - lsls r0, 1 - adds r5, r3, r0 - adds r7, r5, 0 - movs r2, 0x3 -_080492E8: - ldrb r1, [r5] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804930C - ldrb r0, [r5, 0x4] - cmp r0, 0 - bne _080492FA - adds r6, 0x1E -_080492FA: - ldrb r4, [r5, 0x4] - adds r0, r7, 0 - str r2, [sp] - bl sub_8092BF4 - ldr r2, [sp] - cmp r4, r0 - beq _0804930C - adds r6, 0x6 -_0804930C: - adds r5, 0x8 - adds r7, 0x8 - subs r2, 0x1 - cmp r2, 0 - bge _080492E8 - cmp r6, 0x62 - bgt _0804931C - b _080494E2 -_0804931C: - movs r6, 0x63 - b _080494E2 -_08049320: - adds r0, r4, 0 - bl sub_8070A58 - lsls r0, 24 - movs r6, 0 - b _080494BC -_0804932C: - ldrb r0, [r3, 0x14] -_0804932E: - movs r6, 0x64 - cmp r0, 0xF9 - bhi _08049336 - b _080494E2 -_08049336: - b _080494E0 -_08049338: - ldrb r0, [r3, 0x15] - b _0804932E -_0804933C: - ldrb r0, [r3, 0x16] - b _0804932E -_08049340: - ldrb r0, [r3, 0x17] - b _0804932E -_08049344: - cmp r5, 0 - beq _0804934A - b _080494E0 -_0804934A: - adds r0, r4, 0 - bl sub_80494EC - lsls r0, 24 - movs r6, 0x64 - cmp r0, 0 - bne _0804935A - b _080494E2 -_0804935A: - movs r6, 0xA - b _080494E2 -_0804935E: - adds r0, r4, 0 - bl sub_8071884 - lsls r0, 24 - cmp r0, 0 - beq _0804936C - b _080494A2 -_0804936C: - adds r0, r4, 0 - bl sub_80494EC - lsls r0, 24 - movs r6, 0x5 - b _080494BC -_08049378: - ldr r0, [r4, 0x70] - movs r1, 0x82 - lsls r1, 1 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x3 - ble _08049388 - b _080494A2 -_08049388: - adds r0, r4, 0 - bl sub_80494EC - lsls r0, 24 - movs r6, 0x5 - b _080494BC -_08049394: - adds r0, r3, 0 - adds r0, 0xE8 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080493A0 - b _080494A2 -_080493A0: - adds r0, r4, 0 - bl sub_80494EC - lsls r0, 24 - movs r6, 0x5 - b _080494BC -_080493AC: - adds r0, r3, 0 - adds r0, 0xAC - ldrb r0, [r0] - cmp r0, 0x4 - bne _080494A2 - b _080494B2 -_080493B8: - adds r0, r3, 0 - adds r0, 0xBC - ldrb r0, [r0] - cmp r0, 0x2 - beq _080494A2 - adds r0, r4, 0 - bl sub_80494EC - lsls r0, 24 - movs r6, 0xF - b _080494BC -_080493CE: - adds r0, r3, 0 - adds r0, 0xAC - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080494A2 - b _08049420 -_080493E0: - adds r0, r3, 0 - adds r0, 0xE8 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080494A2 - adds r0, r4, 0 - bl sub_80494EC - lsls r0, 24 - movs r6, 0x5 - b _080494BC -_080493F6: - cmp r2, 0 - bne _0804940C - adds r0, r4, 0 - bl sub_80494EC - lsls r0, 24 - movs r6, 0x5 - cmp r0, 0 - beq _080494E2 -_08049408: - movs r6, 0x28 - b _080494E2 -_0804940C: - movs r2, 0xE - ldrsh r1, [r3, r2] - movs r2, 0x10 - ldrsh r0, [r3, r2] - cmp r1, r0 - bge _080494E2 - cmp r1, 0x13 - bgt _080494E2 - cmp r5, 0 - bne _08049432 -_08049420: - adds r0, r4, 0 - bl sub_80494EC - lsls r0, 24 - movs r6, 0x32 - cmp r0, 0 - beq _080494E2 - movs r6, 0x64 - b _080494E2 -_08049432: - movs r6, 0x32 - b _080494E2 -_08049436: - adds r0, r3, 0 - adds r0, 0xA8 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080494A2 - cmp r0, 0x5 - beq _080494A2 - cmp r0, 0x3 - beq _080494A2 - adds r0, r4, 0 - bl sub_80494EC - lsls r0, 24 - movs r6, 0x5 - b _080494BC -_08049454: - adds r0, r3, 0 - adds r0, 0xA8 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080494A2 - movs r6, 0x5 - b _080494E2 -_08049462: - ldrb r0, [r3, 0x9] - movs r6, 0 - cmp r0, 0x62 - bhi _080494E2 -_0804946A: - movs r6, 0x50 - b _080494E2 -_0804946E: - adds r0, r3, 0 - adds r0, 0xAC - ldrb r0, [r0] - cmp r0, 0x1 - beq _0804948A - b _080494E0 -_0804947A: - movs r1, 0x9E - lsls r1, 1 - adds r0, r3, r1 - ldr r0, [r0] - bl sub_8094450 - cmp r0, 0 - ble _080494E0 -_0804948A: - movs r0, 0x32 - b _080494E4 -_0804948E: - ldrb r0, [r3, 0x9] - movs r6, 0 - cmp r0, 0x1 - bls _080494E2 - b _0804946A -_08049498: - adds r0, r3, 0 - adds r0, 0xB0 - ldrb r0, [r0] - cmp r0, 0x6 - bne _080494A6 -_080494A2: - movs r0, 0 - b _080494E4 -_080494A6: - adds r0, r4, 0 - bl sub_80494EC - lsls r0, 24 - movs r6, 0x5 - b _080494BC -_080494B2: - adds r0, r4, 0 - bl sub_80494EC - lsls r0, 24 - movs r6, 0x1E -_080494BC: - cmp r0, 0 - beq _080494E2 - b _0804946A -_080494C2: - movs r2, 0x9E - lsls r2, 1 - adds r0, r3, r2 - ldr r0, [r0] - bl sub_8094450 - cmp r0, 0x9 - bgt _080494E0 - movs r0, 0x64 - b _080494E4 -_080494D6: - movs r6, 0x1E - b _080494E2 -_080494DA: - movs r6, 0x14 - cmp r5, 0 - beq _080494E2 -_080494E0: - movs r6, 0 -_080494E2: - adds r0, r6, 0 -_080494E4: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8048F28 - - thumb_func_start sub_80494EC -sub_80494EC: - push {r4-r6,lr} - adds r5, r0, 0 - movs r6, 0 -_080494F2: - movs r1, 0x4 - ldrsh r0, [r5, r1] - ldr r1, _08049538 - lsls r2, r6, 2 - adds r2, r1 - movs r3, 0 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r3, 0x6 - ldrsh r1, [r5, r3] - movs r3, 0x2 - ldrsh r2, [r2, r3] - adds r1, r2 - bl sub_804954C - ldr r4, [r0, 0x10] - cmp r4, 0 - beq _0804953C - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0 - beq _0804953C - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_8071598 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0804953C - movs r0, 0x1 - b _08049544 - .align 2, 0 -_08049538: .4byte gUnknown_80F4448 -_0804953C: - adds r6, 0x1 - cmp r6, 0x7 - ble _080494F2 - movs r0, 0 -_08049544: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80494EC - - thumb_func_start sub_804954C -sub_804954C: - push {lr} - adds r2, r0, 0 - adds r3, r1, 0 - cmp r2, 0 - blt _08049584 - cmp r3, 0 - blt _08049584 - cmp r2, 0x37 - bgt _08049584 - cmp r3, 0x1F - bgt _08049584 - ldr r0, _0804957C - ldr r1, [r0] - lsls r2, 2 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 5 - adds r2, r0 - ldr r0, _08049580 - adds r1, r0 - adds r1, r2 - ldr r0, [r1] - b _08049588 - .align 2, 0 -_0804957C: .4byte gUnknown_203B418 -_08049580: .4byte 0x0000e8c0 -_08049584: - ldr r0, _0804958C - ldr r0, [r0] -_08049588: - pop {r1} - bx r1 - .align 2, 0 -_0804958C: .4byte gUnknown_203B430 - thumb_func_end sub_804954C - - thumb_func_start sub_8049590 -sub_8049590: - push {r4,r5,lr} - adds r2, r0, 0 - adds r3, r1, 0 - cmp r2, 0 - blt _080495A6 - cmp r3, 0 - blt _080495A6 - cmp r2, 0x37 - bgt _080495A6 - cmp r3, 0x1F - ble _080495C0 -_080495A6: - ldr r0, _080495B8 - ldr r1, _080495BC - adds r2, r0, 0 - ldr r1, [r1] - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - b _080495D6 - .align 2, 0 -_080495B8: .4byte gUnknown_202F190 -_080495BC: .4byte gUnknown_203B430 -_080495C0: - ldr r0, _080495DC - ldr r1, [r0] - lsls r2, 2 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 5 - adds r2, r0 - ldr r0, _080495E0 - adds r1, r0 - adds r1, r2 - ldr r0, [r1] -_080495D6: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080495DC: .4byte gUnknown_203B418 -_080495E0: .4byte 0x0000e8c0 - thumb_func_end sub_8049590 - - thumb_func_start sub_80495E4 -sub_80495E4: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r2, 0 - ldr r0, _08049658 - mov r9, r0 - mov r12, r9 - ldr r7, _0804965C - ldr r1, _08049660 - mov r8, r1 -_080495FA: - lsls r1, r2, 3 - lsls r0, r2, 2 - adds r6, r2, 0x1 - subs r1, r2 - adds r0, r2 - lsls r0, 2 - adds r0, r2 - lsls r0, 6 - movs r4, 0 - lsls r2, r1, 5 - mov r3, r8 - adds r5, r0, r3 - movs r3, 0x37 -_08049614: - mov r1, r12 - ldr r0, [r1] - adds r1, r0, r7 - adds r1, r2 - adds r0, r5 - adds r0, r4 - str r0, [r1] - adds r4, 0x18 - adds r2, 0x4 - subs r3, 0x1 - cmp r3, 0 - bge _08049614 - adds r2, r6, 0 - cmp r2, 0x1F - ble _080495FA - movs r2, 0 - mov r3, r9 - ldr r1, [r3] - ldr r4, _08049664 - adds r0, r1, r4 - movs r3, 0 - strh r2, [r0] - adds r4, 0x2 - adds r0, r1, r4 - strh r2, [r0] - ldr r0, _08049668 - adds r1, r0 - strb r3, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08049658: .4byte gUnknown_203B418 -_0804965C: .4byte 0x0000e8c0 -_08049660: .4byte 0x00003a18 -_08049664: .4byte 0x00003a0e -_08049668: .4byte 0x00013570 - thumb_func_end sub_80495E4 - - thumb_func_start sub_804966C -sub_804966C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - ldr r1, _08049734 - ldr r0, _08049738 - mov r8, r0 - ldr r6, _0804973C - ldr r0, [r6] - ldr r5, _08049740 - adds r0, r5 - movs r2, 0 - ldrsh r0, [r0, r2] - add r0, r8 - ldrb r2, [r0] - mov r0, sp - bl sprintf - ldr r7, _08049744 - mov r0, sp - adds r1, r7, 0 - bl OpenFileAndGetFileDataPtr - adds r4, r0, 0 - ldr r0, _08049748 - movs r1, 0 - adds r2, r4, 0 - bl sub_800AE28 - adds r0, r4, 0 - bl CloseFile - ldr r1, _0804974C - ldr r0, [r6] - adds r0, r5 - movs r3, 0 - ldrsh r2, [r0, r3] - mov r0, sp - bl sprintf - mov r0, sp - adds r1, r7, 0 - bl OpenFileAndGetFileDataPtr - ldr r1, _08049750 - str r0, [r1] - ldr r1, _08049754 - ldr r0, [r6] - adds r0, r5 - movs r4, 0 - ldrsh r0, [r0, r4] - add r0, r8 - ldrb r2, [r0] - mov r0, sp - bl sprintf - mov r0, sp - adds r1, r7, 0 - bl OpenFileAndGetFileDataPtr - adds r4, r0, 0 - ldr r0, [r6] - ldr r1, _08049758 - adds r0, r1 - ldr r1, _0804975C - adds r2, r4, 0 - bl sub_800AAA8 - adds r0, r4, 0 - bl CloseFile - ldr r0, [r6] - adds r2, r0, r5 - movs r3, 0 - ldrsh r0, [r2, r3] - cmp r0, 0x3F - bgt _08049768 - ldr r1, _08049760 - add r0, r8 - ldrb r2, [r0] - mov r0, sp - bl sprintf - mov r0, sp - adds r1, r7, 0 - bl OpenFileAndGetFileDataPtr - adds r4, r0, 0 - ldr r0, [r6] - ldr r1, _08049764 - adds r0, r1 - movs r1, 0x93 - lsls r1, 4 - adds r2, r4, 0 - bl sub_800AAA8 - adds r0, r4, 0 - bl CloseFile - b _08049794 - .align 2, 0 -_08049734: .4byte gUnknown_80F6A04 -_08049738: .4byte gUnknown_8108EC0 -_0804973C: .4byte gUnknown_203B418 -_08049740: .4byte 0x00003a0e -_08049744: .4byte gUnknown_83B0000 -_08049748: .4byte 0x06008000 -_0804974C: .4byte gUnknown_80F6A10 -_08049750: .4byte gUnknown_202EE88 -_08049754: .4byte gUnknown_80F6A1C -_08049758: .4byte 0x00011884 -_0804975C: .4byte 0x00001194 -_08049760: .4byte gUnknown_80F6A28 -_08049764: .4byte 0x00012c24 -_08049768: - ldr r1, _080497E8 - movs r3, 0 - ldrsh r2, [r2, r3] - mov r0, sp - bl sprintf - mov r0, sp - adds r1, r7, 0 - bl OpenFileAndGetFileDataPtr - adds r4, r0, 0 - ldr r0, [r6] - ldr r1, _080497EC - adds r0, r1 - movs r1, 0x90 - lsls r1, 2 - adds r2, r4, 0 - bl sub_800AAA8 - adds r0, r4, 0 - bl CloseFile -_08049794: - ldr r1, _080497F0 - ldr r5, _080497F4 - ldr r0, [r5] - ldr r4, _080497F8 - adds r0, r4 - movs r3, 0 - ldrsh r2, [r0, r3] - mov r0, sp - bl sprintf - ldr r1, _080497FC - mov r0, sp - bl OpenFileAndGetFileDataPtr - adds r1, r0, 0 - ldr r0, _08049800 - str r1, [r0] - ldr r0, _08049804 - movs r2, 0x20 - bl sub_8004AA4 - ldr r2, _08049808 - movs r6, 0 - strb r6, [r2] - movs r3, 0x1 - strb r3, [r2, 0x1] - movs r0, 0x2 - strb r0, [r2, 0x2] - movs r0, 0x3 - strb r0, [r2, 0x3] - ldr r1, _0804980C - ldr r0, [r5] - adds r0, r4 - movs r4, 0 - ldrsh r0, [r0, r4] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08049810 - strb r3, [r2, 0x4] - strb r6, [r2, 0x5] - b _08049814 - .align 2, 0 -_080497E8: .4byte gUnknown_80F6A34 -_080497EC: .4byte 0x00012c24 -_080497F0: .4byte gUnknown_80F6A40 -_080497F4: .4byte gUnknown_203B418 -_080497F8: .4byte 0x00003a0e -_080497FC: .4byte gUnknown_83B0000 -_08049800: .4byte gUnknown_202F18C -_08049804: .4byte gUnknown_202EE8C -_08049808: .4byte gUnknown_202F314 -_0804980C: .4byte gUnknown_810ACC0 -_08049810: - strb r6, [r2, 0x4] - strb r3, [r2, 0x5] -_08049814: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804966C - - thumb_func_start sub_8049820 -sub_8049820: - push {lr} - ldr r0, _08049838 - ldr r0, [r0] - bl CloseFile - ldr r0, _0804983C - ldr r0, [r0] - bl CloseFile - pop {r0} - bx r0 - .align 2, 0 -_08049838: .4byte gUnknown_202F18C -_0804983C: .4byte gUnknown_202EE88 - thumb_func_end sub_8049820 - - thumb_func_start sub_8049840 -sub_8049840: - push {lr} - ldr r0, _08049860 - ldr r0, [r0] - ldr r1, _08049864 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - bl sub_8043CE4 - lsls r0, 24 - cmp r0, 0 - beq _08049870 - ldr r1, _08049868 - ldr r0, _0804986C - b _08049874 - .align 2, 0 -_08049860: .4byte gUnknown_203B418 -_08049864: .4byte 0x00003a0e -_08049868: .4byte gUnknown_203B430 -_0804986C: .4byte gUnknown_80F69EC -_08049870: - ldr r1, _0804987C - ldr r0, _08049880 -_08049874: - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0804987C: .4byte gUnknown_203B430 -_08049880: .4byte gUnknown_80F69D4 - thumb_func_end sub_8049840 - - thumb_func_start sub_8049884 -sub_8049884: - push {r4-r6,lr} - movs r5, 0 -_08049888: - movs r4, 0 - adds r6, r5, 0x1 -_0804988C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80498A8 - adds r4, 0x1 - cmp r4, 0x37 - ble _0804988C - adds r5, r6, 0 - cmp r5, 0x1F - ble _08049888 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8049884 - - thumb_func_start sub_80498A8 -sub_80498A8: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - mov r10, r0 - mov r9, r1 - cmp r0, 0 - bge _080498BE - b _08049B72 -_080498BE: - cmp r1, 0 - bge _080498C4 - b _08049B72 -_080498C4: - cmp r0, 0x37 - ble _080498CA - b _08049B72 -_080498CA: - cmp r1, 0x1F - ble _080498D0 - b _08049B72 -_080498D0: - movs r7, 0 - bl sub_804954C - ldrh r0, [r0] - movs r1, 0x3 - mov r8, r1 - mov r6, r8 - ands r6, r0 - str r6, [sp, 0x20] - ldr r4, _08049914 - ldr r0, [r4] - ldr r3, _08049918 - adds r0, r3 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x3F - ble _08049928 - mov r3, r10 - cmp r3, 0x17 - bgt _0804991C - mov r0, r9 - cmp r0, 0x17 - bgt _0804991C - mov r0, r10 - mov r1, r9 - bl sub_8049590 - ldr r2, [r4] - mov r3, r9 - lsls r1, r3, 1 - add r1, r9 - lsls r1, 3 - add r1, r10 - b _08049B68 - .align 2, 0 -_08049914: .4byte gUnknown_203B418 -_08049918: .4byte 0x00003a0e -_0804991C: - mov r0, r10 - mov r1, r9 - bl sub_8049590 - movs r1, 0 - b _08049B70 -_08049928: - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x24] - mov r0, r10 - ldr r1, [sp, 0x24] - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - str r0, [sp] - mov r4, r10 - adds r4, 0x1 - adds r0, r4, 0 - ldr r1, [sp, 0x24] - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - str r0, [sp, 0x4] - adds r0, r4, 0 - mov r1, r9 - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - str r0, [sp, 0x8] - mov r5, r9 - subs r5, 0x1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - str r0, [sp, 0xC] - mov r0, r10 - adds r1, r5, 0 - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - str r0, [sp, 0x10] - subs r4, 0x2 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - mov r1, r9 - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - str r0, [sp, 0x18] - adds r0, r4, 0 - ldr r1, [sp, 0x24] - bl sub_804954C - ldrh r0, [r0] - mov r1, r8 - ands r1, r0 - str r1, [sp, 0x1C] - cmp r6, 0x1 - bne _08049A1E - movs r7, 0xFF - ldr r0, [sp] - cmp r0, 0 - bne _080499C6 - movs r7, 0xFE -_080499C6: - ldr r0, [sp, 0x4] - cmp r0, 0 - bne _080499D2 - movs r0, 0x3 - negs r0, r0 - ands r7, r0 -_080499D2: - ldr r0, [sp, 0x8] - cmp r0, 0 - bne _080499DE - movs r0, 0x5 - negs r0, r0 - ands r7, r0 -_080499DE: - ldr r0, [sp, 0xC] - cmp r0, 0 - bne _080499EA - movs r0, 0x9 - negs r0, r0 - ands r7, r0 -_080499EA: - ldr r0, [sp, 0x10] - cmp r0, 0 - bne _080499F6 - movs r0, 0x11 - negs r0, r0 - ands r7, r0 -_080499F6: - ldr r0, [sp, 0x14] - cmp r0, 0 - bne _08049A02 - movs r0, 0x21 - negs r0, r0 - ands r7, r0 -_08049A02: - ldr r0, [sp, 0x18] - cmp r0, 0 - bne _08049A0E - movs r0, 0x41 - negs r0, r0 - ands r7, r0 -_08049A0E: - cmp r1, 0 - bne _08049A18 - movs r0, 0x81 - negs r0, r0 - ands r7, r0 -_08049A18: - movs r0, 0x80 - lsls r0, 2 - b _08049B3A -_08049A1E: - cmp r6, 0x2 - bne _08049A84 - movs r7, 0xFF - ldr r0, [sp] - cmp r0, 0x2 - beq _08049A2C - movs r7, 0xFE -_08049A2C: - ldr r0, [sp, 0x4] - cmp r0, 0x2 - beq _08049A38 - movs r0, 0x3 - negs r0, r0 - ands r7, r0 -_08049A38: - ldr r0, [sp, 0x8] - cmp r0, 0x2 - beq _08049A44 - movs r0, 0x5 - negs r0, r0 - ands r7, r0 -_08049A44: - ldr r0, [sp, 0xC] - cmp r0, 0x2 - beq _08049A50 - movs r0, 0x9 - negs r0, r0 - ands r7, r0 -_08049A50: - ldr r0, [sp, 0x10] - cmp r0, 0x2 - beq _08049A5C - movs r0, 0x11 - negs r0, r0 - ands r7, r0 -_08049A5C: - ldr r0, [sp, 0x14] - cmp r0, 0x2 - beq _08049A68 - movs r0, 0x21 - negs r0, r0 - ands r7, r0 -_08049A68: - ldr r0, [sp, 0x18] - cmp r0, 0x2 - beq _08049A74 - movs r0, 0x41 - negs r0, r0 - ands r7, r0 -_08049A74: - cmp r1, 0x2 - beq _08049A7E - movs r0, 0x81 - negs r0, r0 - ands r7, r0 -_08049A7E: - movs r0, 0x80 - lsls r0, 1 - b _08049B3A -_08049A84: - ldr r1, [sp, 0x20] - cmp r1, 0x3 - bne _08049AEE - movs r7, 0xFF - ldr r0, [sp] - cmp r0, 0x3 - beq _08049A94 - movs r7, 0xFE -_08049A94: - ldr r0, [sp, 0x4] - cmp r0, 0x3 - beq _08049AA0 - movs r0, 0x3 - negs r0, r0 - ands r7, r0 -_08049AA0: - ldr r0, [sp, 0x8] - cmp r0, 0x3 - beq _08049AAC - movs r0, 0x5 - negs r0, r0 - ands r7, r0 -_08049AAC: - ldr r0, [sp, 0xC] - cmp r0, 0x3 - beq _08049AB8 - movs r0, 0x9 - negs r0, r0 - ands r7, r0 -_08049AB8: - ldr r0, [sp, 0x10] - cmp r0, 0x3 - beq _08049AC4 - movs r0, 0x11 - negs r0, r0 - ands r7, r0 -_08049AC4: - ldr r0, [sp, 0x14] - cmp r0, 0x3 - beq _08049AD0 - movs r0, 0x21 - negs r0, r0 - ands r7, r0 -_08049AD0: - ldr r0, [sp, 0x18] - cmp r0, 0x3 - beq _08049ADC - movs r0, 0x41 - negs r0, r0 - ands r7, r0 -_08049ADC: - ldr r0, [sp, 0x1C] - cmp r0, 0x3 - beq _08049AE8 - movs r0, 0x81 - negs r0, r0 - ands r7, r0 -_08049AE8: - movs r0, 0x80 - lsls r0, 1 - b _08049B3A -_08049AEE: - ldr r0, [sp] - cmp r0, 0 - bne _08049AF6 - movs r7, 0x1 -_08049AF6: - ldr r0, [sp, 0x4] - cmp r0, 0 - bne _08049B00 - movs r0, 0x2 - orrs r7, r0 -_08049B00: - ldr r0, [sp, 0x8] - cmp r0, 0 - bne _08049B0A - movs r0, 0x4 - orrs r7, r0 -_08049B0A: - ldr r0, [sp, 0xC] - cmp r0, 0 - bne _08049B14 - movs r0, 0x8 - orrs r7, r0 -_08049B14: - ldr r0, [sp, 0x10] - cmp r0, 0 - bne _08049B1E - movs r0, 0x10 - orrs r7, r0 -_08049B1E: - ldr r0, [sp, 0x14] - cmp r0, 0 - bne _08049B28 - movs r0, 0x20 - orrs r7, r0 -_08049B28: - ldr r0, [sp, 0x18] - cmp r0, 0 - bne _08049B32 - movs r0, 0x40 - orrs r7, r0 -_08049B32: - ldr r0, [sp, 0x1C] - cmp r0, 0 - bne _08049B3C - movs r0, 0x80 -_08049B3A: - orrs r7, r0 -_08049B3C: - movs r0, 0x4 - bl RandomCapped - adds r4, r0, 0 - cmp r4, 0x3 - bne _08049B4A - movs r4, 0 -_08049B4A: - bl sub_80441BC - lsls r0, 24 - cmp r0, 0 - beq _08049B56 - movs r4, 0 -_08049B56: - mov r0, r10 - mov r1, r9 - bl sub_8049590 - ldr r1, _08049B84 - ldr r2, [r1] - lsls r1, r7, 1 - adds r1, r7 - adds r1, r4, r1 -_08049B68: - ldr r3, _08049B88 - adds r2, r3 - adds r2, r1 - ldrb r1, [r2] -_08049B70: - strb r1, [r0, 0x8] -_08049B72: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08049B84: .4byte gUnknown_203B418 -_08049B88: .4byte 0x00012c24 - thumb_func_end sub_80498A8 - - thumb_func_start sub_8049B8C -sub_8049B8C: - push {r4-r6,lr} - movs r5, 0 -_08049B90: - movs r4, 0 - adds r6, r5, 0x1 -_08049B94: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8049BB0 - adds r4, 0x1 - cmp r4, 0x37 - ble _08049B94 - adds r5, r6, 0 - cmp r5, 0x1F - ble _08049B90 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8049B8C - - thumb_func_start sub_8049BB0 -sub_8049BB0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x44 - mov r10, r0 - str r1, [sp, 0x40] - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - adds r0, r1, 0 - adds r0, 0x1 - mov r9, r0 - mov r0, r10 - mov r1, r9 - bl sub_804954C - ldrh r1, [r0] - movs r4, 0x3 - adds r0, r4, 0 - ands r0, r1 - add r6, sp, 0x18 - str r0, [sp, 0x18] - mov r5, r10 - adds r5, 0x1 - adds r0, r5, 0 - mov r1, r9 - bl sub_804954C - ldrh r1, [r0] - adds r0, r4, 0 - ands r0, r1 - str r0, [r6, 0x4] - adds r0, r5, 0 - ldr r1, [sp, 0x40] - bl sub_804954C - ldrh r1, [r0] - adds r0, r4, 0 - ands r0, r1 - str r0, [r6, 0x8] - ldr r0, [sp, 0x40] - subs r0, 0x1 - mov r8, r0 - adds r0, r5, 0 - mov r1, r8 - bl sub_804954C - ldrh r1, [r0] - adds r0, r4, 0 - ands r0, r1 - str r0, [r6, 0xC] - mov r0, r10 - mov r1, r8 - bl sub_804954C - ldrh r1, [r0] - adds r0, r4, 0 - ands r0, r1 - str r0, [r6, 0x10] - subs r5, 0x2 - adds r0, r5, 0 - mov r1, r8 - bl sub_804954C - ldrh r1, [r0] - adds r0, r4, 0 - ands r0, r1 - str r0, [r6, 0x14] - adds r0, r5, 0 - ldr r1, [sp, 0x40] - bl sub_804954C - ldrh r1, [r0] - adds r0, r4, 0 - ands r0, r1 - str r0, [r6, 0x18] - adds r0, r5, 0 - mov r1, r9 - bl sub_804954C - ldrh r0, [r0] - ands r4, r0 - str r4, [r6, 0x1C] - ldr r1, [sp, 0x18] - cmp r1, 0x1 - bne _08049C6A - ldr r0, [sp] - orrs r0, r1 - str r0, [sp] -_08049C6A: - ldr r0, [r6, 0x8] - cmp r0, 0x1 - bne _08049C78 - ldr r0, [sp] - movs r1, 0x4 - orrs r0, r1 - str r0, [sp] -_08049C78: - ldr r0, [r6, 0x10] - cmp r0, 0x1 - bne _08049C86 - ldr r0, [sp] - movs r1, 0x10 - orrs r0, r1 - str r0, [sp] -_08049C86: - ldr r0, [r6, 0x18] - cmp r0, 0x1 - bne _08049C94 - ldr r0, [sp] - movs r1, 0x40 - orrs r0, r1 - str r0, [sp] -_08049C94: - ldr r2, [sp, 0x18] - cmp r2, 0 - beq _08049CAE - ldr r0, [r6, 0x4] - cmp r0, 0x1 - bne _08049CAE - ldr r0, [r6, 0x8] - cmp r0, 0 - beq _08049CC8 - ldr r0, [sp] - movs r1, 0x2 - orrs r0, r1 - str r0, [sp] -_08049CAE: - ldr r0, [r6, 0x8] - cmp r0, 0 - beq _08049CC8 - ldr r0, [r6, 0xC] - cmp r0, 0x1 - bne _08049CC8 - ldr r0, [r6, 0x10] - cmp r0, 0 - beq _08049CE2 - ldr r0, [sp] - movs r1, 0x8 - orrs r0, r1 - str r0, [sp] -_08049CC8: - ldr r0, [r6, 0x10] - cmp r0, 0 - beq _08049CE2 - ldr r0, [r6, 0x14] - cmp r0, 0x1 - bne _08049CE2 - ldr r0, [r6, 0x18] - cmp r0, 0 - beq _08049CFA - ldr r0, [sp] - movs r1, 0x20 - orrs r0, r1 - str r0, [sp] -_08049CE2: - ldr r0, [r6, 0x18] - cmp r0, 0 - beq _08049CFA - ldr r0, [r6, 0x1C] - cmp r0, 0x1 - bne _08049CFA - cmp r2, 0 - beq _08049CFA - ldr r0, [sp] - movs r1, 0x80 - orrs r0, r1 - str r0, [sp] -_08049CFA: - add r4, sp, 0x38 - movs r7, 0x1 - adds r2, r4, 0 - adds r1, r6, 0 - movs r5, 0 - movs r3, 0x7 -_08049D06: - ldr r0, [r1] - subs r0, 0x1 - cmp r0, 0x1 - bhi _08049D12 - strb r7, [r2] - b _08049D14 -_08049D12: - strb r5, [r2] -_08049D14: - adds r2, 0x1 - adds r1, 0x4 - subs r3, 0x1 - cmp r3, 0 - bge _08049D06 - ldrb r0, [r4] - cmp r0, 0 - beq _08049D2C - ldr r0, [sp, 0x4] - movs r1, 0x1 - orrs r0, r1 - str r0, [sp, 0x4] -_08049D2C: - ldrb r0, [r4, 0x2] - cmp r0, 0 - beq _08049D3A - ldr r0, [sp, 0x4] - movs r1, 0x4 - orrs r0, r1 - str r0, [sp, 0x4] -_08049D3A: - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08049D48 - ldr r0, [sp, 0x4] - movs r1, 0x10 - orrs r0, r1 - str r0, [sp, 0x4] -_08049D48: - ldrb r0, [r4, 0x6] - cmp r0, 0 - beq _08049D56 - ldr r0, [sp, 0x4] - movs r1, 0x40 - orrs r0, r1 - str r0, [sp, 0x4] -_08049D56: - ldr r2, [sp, 0x18] - cmp r2, 0 - beq _08049D70 - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _08049D70 - ldr r0, [r6, 0x8] - cmp r0, 0 - beq _08049D8A - ldr r0, [sp, 0x4] - movs r1, 0x2 - orrs r0, r1 - str r0, [sp, 0x4] -_08049D70: - ldr r0, [r6, 0x8] - cmp r0, 0 - beq _08049D8A - ldrb r0, [r4, 0x3] - cmp r0, 0 - beq _08049D8A - ldr r0, [r6, 0x10] - cmp r0, 0 - beq _08049DA4 - ldr r0, [sp, 0x4] - movs r1, 0x8 - orrs r0, r1 - str r0, [sp, 0x4] -_08049D8A: - ldr r0, [r6, 0x10] - cmp r0, 0 - beq _08049DA4 - ldrb r0, [r4, 0x5] - cmp r0, 0 - beq _08049DA4 - ldr r0, [r6, 0x18] - cmp r0, 0 - beq _08049DBC - ldr r0, [sp, 0x4] - movs r1, 0x20 - orrs r0, r1 - str r0, [sp, 0x4] -_08049DA4: - ldr r0, [r6, 0x18] - cmp r0, 0 - beq _08049DBC - ldrb r0, [r4, 0x7] - cmp r0, 0 - beq _08049DBC - cmp r2, 0 - beq _08049DC8 - ldr r0, [sp, 0x4] - movs r1, 0x80 - orrs r0, r1 - str r0, [sp, 0x4] -_08049DBC: - cmp r2, 0 - beq _08049DC8 - ldr r0, [sp, 0x8] - movs r1, 0x1 - orrs r0, r1 - str r0, [sp, 0x8] -_08049DC8: - ldr r0, [r6, 0x8] - cmp r0, 0 - beq _08049DD6 - ldr r0, [sp, 0x8] - movs r1, 0x4 - orrs r0, r1 - str r0, [sp, 0x8] -_08049DD6: - ldr r0, [r6, 0x10] - cmp r0, 0 - beq _08049DE4 - ldr r0, [sp, 0x8] - movs r1, 0x10 - orrs r0, r1 - str r0, [sp, 0x8] -_08049DE4: - ldr r0, [r6, 0x18] - cmp r0, 0 - beq _08049DF2 - ldr r0, [sp, 0x8] - movs r1, 0x40 - orrs r0, r1 - str r0, [sp, 0x8] -_08049DF2: - cmp r2, 0 - beq _08049E0A - ldr r0, [r6, 0x4] - cmp r0, 0 - beq _08049E0A - ldr r0, [r6, 0x8] - cmp r0, 0 - beq _08049E24 - ldr r0, [sp, 0x8] - movs r1, 0x2 - orrs r0, r1 - str r0, [sp, 0x8] -_08049E0A: - ldr r0, [r6, 0x8] - cmp r0, 0 - beq _08049E24 - ldr r0, [r6, 0xC] - cmp r0, 0 - beq _08049E24 - ldr r0, [r6, 0x10] - cmp r0, 0 - beq _08049E3E - ldr r0, [sp, 0x8] - movs r1, 0x8 - orrs r0, r1 - str r0, [sp, 0x8] -_08049E24: - ldr r0, [r6, 0x10] - cmp r0, 0 - beq _08049E3E - ldr r0, [r6, 0x14] - cmp r0, 0 - beq _08049E3E - ldr r0, [r6, 0x18] - cmp r0, 0 - beq _08049E56 - ldr r0, [sp, 0x8] - movs r1, 0x20 - orrs r0, r1 - str r0, [sp, 0x8] -_08049E3E: - ldr r0, [r6, 0x18] - cmp r0, 0 - beq _08049E56 - ldr r0, [r6, 0x1C] - cmp r0, 0 - beq _08049E56 - cmp r2, 0 - beq _08049E56 - ldr r0, [sp, 0x8] - movs r1, 0x80 - orrs r0, r1 - str r0, [sp, 0x8] -_08049E56: - movs r0, 0xFF - str r0, [sp, 0xC] - mov r0, r10 - cmp r0, 0x1 - bgt _08049E64 - movs r0, 0x1F - str r0, [sp, 0xC] -_08049E64: - ldr r0, [sp, 0x40] - cmp r0, 0x1 - bgt _08049E74 - ldr r0, [sp, 0xC] - movs r1, 0x39 - negs r1, r1 - ands r0, r1 - str r0, [sp, 0xC] -_08049E74: - mov r0, r10 - cmp r0, 0x35 - ble _08049E84 - ldr r0, [sp, 0xC] - movs r1, 0xF - negs r1, r1 - ands r0, r1 - str r0, [sp, 0xC] -_08049E84: - ldr r0, [sp, 0x40] - cmp r0, 0x1D - ble _08049E94 - ldr r0, [sp, 0xC] - movs r1, 0x84 - negs r1, r1 - ands r0, r1 - str r0, [sp, 0xC] -_08049E94: - mov r0, r10 - ldr r1, [sp, 0x40] - bl sub_8049590 - ldr r1, [sp] - strb r1, [r0, 0xA] - mov r0, r10 - ldr r1, [sp, 0x40] - bl sub_8049590 - ldr r1, [sp, 0x4] - strb r1, [r0, 0xB] - mov r0, r10 - ldr r1, [sp, 0x40] - bl sub_8049590 - ldr r1, [sp, 0x8] - strb r1, [r0, 0xC] - mov r0, r10 - ldr r1, [sp, 0x40] - bl sub_8049590 - ldr r1, [sp, 0xC] - strb r1, [r0, 0xD] - add sp, 0x44 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8049BB0 - - thumb_func_start sub_8049ED4 -sub_8049ED4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - ldr r0, _08049F78 - ldr r6, [r0] - ldr r1, _08049F7C - adds r0, r6, r1 - ldrb r0, [r0] - str r0, [sp] - ldr r2, _08049F80 - adds r0, r6, r2 - ldrb r0, [r0] - str r0, [sp, 0x4] - ldr r4, _08049F84 - adds r0, r6, r4 - ldrh r0, [r0] - lsls r0, 16 - asrs r3, r0, 19 - ldr r1, _08049F88 - adds r0, r3, 0 - adds r0, 0x1E - lsls r0, 1 - adds r1, r0, r1 - movs r4, 0 - ldrsh r2, [r1, r4] - mov r10, r2 - ldr r1, _08049F8C - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - str r1, [sp, 0x10] - movs r4, 0 - str r4, [sp, 0x8] -_08049F1C: - ldr r1, _08049F90 - adds r0, r6, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 19 - subs r2, r0, 0x1 - mov r9, r2 - movs r1, 0x1F - ands r3, r1 - ldr r1, _08049F88 - adds r0, 0x1D - lsls r0, 1 - adds r1, r0, r1 - movs r2, 0 - ldrsh r4, [r1, r2] - mov r8, r4 - ldr r1, _08049F8C - adds r0, r1 - movs r1, 0 - ldrsh r4, [r0, r1] - str r4, [sp, 0x14] - mov r2, r8 - lsls r0, r2, 1 - add r0, r8 - mov r4, r10 - adds r7, r4, r0 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - str r3, [sp, 0x34] - bl sub_804954C - adds r5, r0, 0 - ldrh r2, [r5] - movs r1, 0x80 - lsls r1, 5 - adds r0, r1, 0 - ands r0, r2 - ldr r3, [sp, 0x34] - cmp r0, 0 - beq _08049F98 - lsls r0, r7, 1 - ldr r2, _08049F94 - adds r0, r2 - adds r2, r6, r0 - b _0804A06A - .align 2, 0 -_08049F78: .4byte gUnknown_203B418 -_08049F7C: .4byte 0x00018210 -_08049F80: .4byte 0x0001820f -_08049F84: .4byte 0x000181f0 -_08049F88: .4byte gUnknown_80F6A4A -_08049F8C: .4byte gUnknown_80F6C06 -_08049F90: .4byte 0x000181f2 -_08049F94: .4byte 0x00012bec -_08049F98: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _08049FAC - lsls r0, r7, 1 - ldr r4, _08049FA8 - b _08049FD2 - .align 2, 0 -_08049FA8: .4byte 0x00012bda -_08049FAC: - ldr r0, [sp] - cmp r0, 0 - beq _08049FC4 - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r2, _08049FC0 - adds r1, r2 - b _0804A064 - .align 2, 0 -_08049FC0: .4byte 0x00011884 -_08049FC4: - ldrh r1, [r5, 0x4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08049FDC - lsls r0, r7, 1 - ldr r4, _08049FD8 -_08049FD2: - adds r0, r4 - adds r2, r6, r0 - b _0804A06A - .align 2, 0 -_08049FD8: .4byte 0x00012bfe -_08049FDC: - ldr r4, [r5, 0x14] - cmp r4, 0 - beq _0804A028 - adds r0, r4, 0 - str r3, [sp, 0x34] - bl sub_80450F8 - ldr r3, [sp, 0x34] - cmp r0, 0x2 - bne _0804A014 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - bne _0804A000 - ldr r0, [sp, 0x4] - cmp r0, 0 - beq _0804A014 -_0804A000: - ldr r0, [r4, 0x70] - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - ldr r1, _0804A010 - adds r0, r1 - b _0804A046 - .align 2, 0 -_0804A010: .4byte 0x00012a18 -_0804A014: - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r2, _0804A024 - adds r1, r2 - b _0804A064 - .align 2, 0 -_0804A024: .4byte 0x00011884 -_0804A028: - movs r4, 0x80 - lsls r4, 2 - adds r0, r4, 0 - ands r0, r2 - cmp r0, 0 - beq _0804A058 - ldr r1, _0804A050 - adds r0, r6, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - ldr r4, _0804A054 - adds r0, r4 -_0804A046: - adds r0, r6, r0 - lsls r1, r7, 1 - adds r2, r0, r1 - b _0804A06A - .align 2, 0 -_0804A050: .4byte 0x00003a12 -_0804A054: .4byte 0x00012a18 -_0804A058: - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r0, _0804A0E8 - adds r1, r0 -_0804A064: - adds r1, r6, r1 - lsls r0, r7, 1 - adds r2, r1, r0 -_0804A06A: - lsls r1, r3, 1 - str r1, [sp, 0x30] - adds r3, 0x1 - str r3, [sp, 0x2C] - mov r4, r10 - adds r4, 0x1 - str r4, [sp, 0x28] - ldr r0, [sp, 0x8] - adds r0, 0x1 - str r0, [sp, 0x24] - mov r1, r10 - lsls r3, r1, 1 - ldr r4, _0804A0EC - adds r4, r3, r4 - str r4, [sp, 0x18] - ldr r0, _0804A0F0 - adds r0, r3, r0 - str r0, [sp, 0x1C] - ldr r1, _0804A0F4 - adds r1, r3, r1 - str r1, [sp, 0x20] - movs r4, 0x16 - str r4, [sp, 0xC] -_0804A098: - movs r0, 0x1F - mov r1, r9 - ands r1, r0 - mov r9, r1 - lsls r0, r1, 6 - ldr r4, [sp, 0x30] - adds r0, r4, r0 - ldr r1, _0804A0F8 - adds r0, r1 - ldrh r1, [r2] - strh r1, [r0] - adds r2, 0x6 - movs r4, 0x1 - add r9, r4 - add r8, r4 - mov r0, r8 - cmp r0, 0x3 - bne _0804A1AC - movs r1, 0 - mov r8, r1 - ldr r2, [sp, 0x14] - adds r2, 0x1 - str r2, [sp, 0x14] - mov r7, r10 - ldr r0, [sp, 0x10] - adds r1, r2, 0 - str r3, [sp, 0x34] - bl sub_804954C - adds r5, r0, 0 - ldrh r2, [r5] - movs r0, 0x20 - ands r0, r2 - ldr r3, [sp, 0x34] - cmp r0, 0 - beq _0804A0FC - ldr r4, [sp, 0x18] - adds r2, r6, r4 - b _0804A1AC - .align 2, 0 -_0804A0E8: .4byte 0x00011884 -_0804A0EC: .4byte 0x00012bda -_0804A0F0: .4byte 0x00012bec -_0804A0F4: .4byte 0x00012bfe -_0804A0F8: .4byte gUnknown_202C838 -_0804A0FC: - movs r1, 0x80 - lsls r1, 5 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _0804A10E - ldr r4, [sp, 0x1C] - adds r2, r6, r4 - b _0804A1AC -_0804A10E: - ldr r0, [sp] - cmp r0, 0 - bne _0804A19C - ldrh r1, [r5, 0x4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0804A124 - ldr r4, [sp, 0x20] - adds r2, r6, r4 - b _0804A1AC -_0804A124: - ldr r4, [r5, 0x14] - cmp r4, 0 - beq _0804A174 - adds r0, r4, 0 - str r3, [sp, 0x34] - bl sub_80450F8 - ldr r3, [sp, 0x34] - cmp r0, 0x2 - bne _0804A15C - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - bne _0804A148 - ldr r0, [sp, 0x4] - cmp r0, 0 - beq _0804A15C -_0804A148: - ldr r0, [r4, 0x70] - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - ldr r1, _0804A158 - b _0804A1A6 - .align 2, 0 -_0804A158: .4byte 0x00012a18 -_0804A15C: - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r2, _0804A170 - adds r1, r2 - adds r1, r6, r1 - lsls r0, r7, 1 - adds r2, r1, r0 - b _0804A1AC - .align 2, 0 -_0804A170: .4byte 0x00011884 -_0804A174: - movs r4, 0x80 - lsls r4, 2 - adds r0, r4, 0 - ands r0, r2 - cmp r0, 0 - beq _0804A19C - ldr r1, _0804A194 - adds r0, r6, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - ldr r4, _0804A198 - adds r0, r4 - b _0804A1A8 - .align 2, 0 -_0804A194: .4byte 0x00003a12 -_0804A198: .4byte 0x00012a18 -_0804A19C: - ldrb r1, [r5, 0x8] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - ldr r1, _0804A1EC -_0804A1A6: - adds r0, r1 -_0804A1A8: - adds r0, r6, r0 - adds r2, r0, r3 -_0804A1AC: - ldr r4, [sp, 0xC] - subs r4, 0x1 - str r4, [sp, 0xC] - cmp r4, 0 - blt _0804A1B8 - b _0804A098 -_0804A1B8: - ldr r3, [sp, 0x2C] - ldr r0, [sp, 0x28] - mov r10, r0 - cmp r0, 0x3 - bne _0804A1CC - movs r1, 0 - mov r10, r1 - ldr r2, [sp, 0x10] - adds r2, 0x1 - str r2, [sp, 0x10] -_0804A1CC: - ldr r4, [sp, 0x24] - str r4, [sp, 0x8] - cmp r4, 0x1E - bgt _0804A1D6 - b _08049F1C -_0804A1D6: - movs r0, 0x3 - bl sub_80098F8 - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804A1EC: .4byte 0x00011884 - thumb_func_end sub_8049ED4 - - thumb_func_start sub_804A1F0 -sub_804A1F0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - ldr r2, _0804A284 - ldr r7, [r2] - ldr r3, _0804A288 - adds r2, r7, r3 - ldrb r2, [r2] - str r2, [sp] - ldr r4, _0804A28C - adds r2, r7, r4 - ldrb r2, [r2] - str r2, [sp, 0x4] - ldr r5, _0804A290 - adds r2, r7, r5 - movs r3, 0 - ldrsh r2, [r2, r3] - adds r2, r0 - subs r4, 0x1D - adds r0, r7, r4 - movs r5, 0 - ldrsh r0, [r0, r5] - adds r0, r1 - asrs r0, 3 - asrs r2, 3 - str r2, [sp, 0x14] - subs r1, r0, 0x1 - mov r9, r1 - ldr r3, _0804A294 - adds r1, r2, 0 - adds r1, 0x1E - lsls r1, 1 - adds r2, r1, r3 - movs r5, 0 - ldrsh r4, [r2, r5] - str r4, [sp, 0x10] - ldr r2, _0804A298 - adds r1, r2 - movs r5, 0 - ldrsh r4, [r1, r5] - str r4, [sp, 0xC] - adds r0, 0x1D - lsls r0, 1 - adds r3, r0, r3 - movs r4, 0 - ldrsh r1, [r3, r4] - mov r8, r1 - adds r0, r2 - movs r1, 0 - ldrsh r5, [r0, r1] - mov r10, r5 - mov r2, r8 - lsls r0, r2, 1 - add r0, r8 - ldr r3, [sp, 0x10] - adds r6, r3, r0 - ldr r0, [sp, 0xC] - mov r1, r10 - bl sub_804954C - adds r5, r0, 0 - ldrh r1, [r5] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0804A2A0 - lsls r0, r6, 1 - ldr r4, _0804A29C - adds r0, r4 - adds r2, r7, r0 - b _0804A356 - .align 2, 0 -_0804A284: .4byte gUnknown_203B418 -_0804A288: .4byte 0x00018210 -_0804A28C: .4byte 0x0001820f -_0804A290: .4byte 0x000181f0 -_0804A294: .4byte gUnknown_80F6A4A -_0804A298: .4byte gUnknown_80F6C06 -_0804A29C: .4byte 0x00012bda -_0804A2A0: - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - beq _0804A2B8 - lsls r0, r6, 1 - ldr r5, _0804A2B4 - adds r0, r5 - adds r2, r7, r0 - b _0804A356 - .align 2, 0 -_0804A2B4: .4byte 0x00012bec -_0804A2B8: - ldr r0, [sp] - cmp r0, 0 - beq _0804A2D0 - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r2, _0804A2CC - adds r1, r2 - b _0804A350 - .align 2, 0 -_0804A2CC: .4byte 0x00011884 -_0804A2D0: - ldr r4, [r5, 0x14] - cmp r4, 0 - beq _0804A318 - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0x2 - bne _0804A304 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - bne _0804A2F0 - ldr r3, [sp, 0x4] - cmp r3, 0 - beq _0804A304 -_0804A2F0: - ldr r0, [r4, 0x70] - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - ldr r4, _0804A300 - adds r0, r4 - b _0804A334 - .align 2, 0 -_0804A300: .4byte 0x00012a18 -_0804A304: - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r5, _0804A314 - adds r1, r5 - b _0804A350 - .align 2, 0 -_0804A314: .4byte 0x00011884 -_0804A318: - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0804A344 - ldr r1, _0804A33C - adds r0, r7, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - ldr r3, _0804A340 - adds r0, r3 -_0804A334: - adds r0, r7, r0 - lsls r1, r6, 1 - adds r2, r0, r1 - b _0804A356 - .align 2, 0 -_0804A33C: .4byte 0x00003a12 -_0804A340: .4byte 0x00012a18 -_0804A344: - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r4, _0804A3AC - adds r1, r4 -_0804A350: - adds r1, r7, r1 - lsls r0, r6, 1 - adds r2, r1, r0 -_0804A356: - movs r5, 0x16 - str r5, [sp, 0x8] -_0804A35A: - movs r0, 0x1F - ldr r1, [sp, 0x14] - ands r1, r0 - str r1, [sp, 0x14] - mov r3, r9 - ands r3, r0 - mov r9, r3 - lsls r1, 1 - lsls r0, r3, 6 - adds r1, r0 - ldr r4, _0804A3B0 - adds r1, r4 - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x6 - movs r5, 0x1 - add r9, r5 - add r8, r5 - mov r0, r8 - cmp r0, 0x3 - beq _0804A386 - b _0804A476 -_0804A386: - movs r1, 0 - mov r8, r1 - add r10, r5 - ldr r6, [sp, 0x10] - ldr r0, [sp, 0xC] - mov r1, r10 - bl sub_804954C - adds r5, r0, 0 - ldrh r1, [r5] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0804A3B8 - lsls r0, r6, 1 - ldr r2, _0804A3B4 - adds r0, r2 - adds r2, r7, r0 - b _0804A476 - .align 2, 0 -_0804A3AC: .4byte 0x00011884 -_0804A3B0: .4byte gUnknown_202C838 -_0804A3B4: .4byte 0x00012bda -_0804A3B8: - movs r3, 0x80 - lsls r3, 5 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0804A3D4 - lsls r0, r6, 1 - ldr r4, _0804A3D0 - adds r0, r4 - adds r2, r7, r0 - b _0804A476 - .align 2, 0 -_0804A3D0: .4byte 0x00012bec -_0804A3D4: - ldr r0, [sp] - cmp r0, 0 - beq _0804A3EC - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r2, _0804A3E8 - adds r1, r2 - b _0804A470 - .align 2, 0 -_0804A3E8: .4byte 0x00011884 -_0804A3EC: - ldr r4, [r5, 0x14] - cmp r4, 0 - beq _0804A434 - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0x2 - bne _0804A420 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - bne _0804A40C - ldr r3, [sp, 0x4] - cmp r3, 0 - beq _0804A420 -_0804A40C: - ldr r0, [r4, 0x70] - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - ldr r4, _0804A41C - adds r0, r4 - b _0804A452 - .align 2, 0 -_0804A41C: .4byte 0x00012a18 -_0804A420: - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r5, _0804A430 - adds r1, r5 - b _0804A470 - .align 2, 0 -_0804A430: .4byte 0x00011884 -_0804A434: - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0804A464 - ldr r3, _0804A45C - adds r0, r7, r3 - movs r4, 0 - ldrsh r1, [r0, r4] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - ldr r5, _0804A460 - adds r0, r5 -_0804A452: - adds r0, r7, r0 - lsls r1, r6, 1 - adds r2, r0, r1 - b _0804A476 - .align 2, 0 -_0804A45C: .4byte 0x00003a12 -_0804A460: .4byte 0x00012a18 -_0804A464: - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r0, _0804A498 - adds r1, r0 -_0804A470: - adds r1, r7, r1 - lsls r0, r6, 1 - adds r2, r1, r0 -_0804A476: - ldr r1, [sp, 0x8] - subs r1, 0x1 - str r1, [sp, 0x8] - cmp r1, 0 - blt _0804A482 - b _0804A35A -_0804A482: - movs r0, 0x3 - bl sub_80098F8 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804A498: .4byte 0x00011884 - thumb_func_end sub_804A1F0 - - thumb_func_start sub_804A49C -sub_804A49C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - ldr r2, _0804A52C - ldr r7, [r2] - ldr r3, _0804A530 - adds r2, r7, r3 - ldrb r2, [r2] - str r2, [sp] - ldr r4, _0804A534 - adds r2, r7, r4 - ldrb r2, [r2] - str r2, [sp, 0x4] - subs r3, 0x20 - adds r2, r7, r3 - movs r4, 0 - ldrsh r2, [r2, r4] - adds r2, r0 - adds r3, 0x2 - adds r0, r7, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - adds r0, r1 - asrs r2, 3 - mov r8, r2 - asrs r0, 3 - str r0, [sp, 0x14] - ldr r2, _0804A538 - mov r0, r8 - adds r0, 0x1E - lsls r0, 1 - adds r1, r0, r2 - movs r4, 0 - ldrsh r3, [r1, r4] - mov r9, r3 - ldr r1, _0804A53C - adds r0, r1 - movs r4, 0 - ldrsh r3, [r0, r4] - mov r10, r3 - ldr r0, [sp, 0x14] - adds r0, 0x1E - lsls r0, 1 - adds r2, r0, r2 - movs r4, 0 - ldrsh r3, [r2, r4] - str r3, [sp, 0x10] - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - str r1, [sp, 0xC] - lsls r0, r3, 1 - adds r0, r3 - mov r3, r9 - adds r6, r3, r0 - mov r0, r10 - bl sub_804954C - adds r5, r0, 0 - ldrh r1, [r5] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0804A544 - lsls r0, r6, 1 - ldr r4, _0804A540 - adds r0, r4 - adds r2, r7, r0 - b _0804A5DA - .align 2, 0 -_0804A52C: .4byte gUnknown_203B418 -_0804A530: .4byte 0x00018210 -_0804A534: .4byte 0x0001820f -_0804A538: .4byte gUnknown_80F6A4A -_0804A53C: .4byte gUnknown_80F6C06 -_0804A540: .4byte 0x00012bda -_0804A544: - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - beq _0804A55C - lsls r0, r6, 1 - ldr r1, _0804A558 - adds r0, r1 - adds r2, r7, r0 - b _0804A5DA - .align 2, 0 -_0804A558: .4byte 0x00012bec -_0804A55C: - ldr r2, [sp] - cmp r2, 0 - beq _0804A574 - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r3, _0804A570 - adds r1, r3 - b _0804A5D4 - .align 2, 0 -_0804A570: .4byte 0x00011884 -_0804A574: - ldr r4, [r5, 0x14] - cmp r4, 0 - beq _0804A59A - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0x2 - bne _0804A5C8 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - bne _0804A594 - ldr r0, [sp, 0x4] - cmp r0, 0 - beq _0804A5C8 -_0804A594: - ldr r0, [r4, 0x70] - ldrb r1, [r0] - b _0804A5AC -_0804A59A: - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0804A5C8 - ldr r3, _0804A5C0 - adds r0, r7, r3 - movs r4, 0 - ldrsh r1, [r0, r4] -_0804A5AC: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - ldr r1, _0804A5C4 - adds r0, r1 - adds r0, r7, r0 - lsls r1, r6, 1 - adds r2, r0, r1 - b _0804A5DA - .align 2, 0 -_0804A5C0: .4byte 0x00003a12 -_0804A5C4: .4byte 0x00012a18 -_0804A5C8: - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r2, _0804A638 - adds r1, r2 -_0804A5D4: - adds r1, r7, r1 - lsls r0, r6, 1 - adds r2, r1, r0 -_0804A5DA: - movs r3, 0x1E - str r3, [sp, 0x8] -_0804A5DE: - movs r0, 0x1F - mov r4, r8 - ands r4, r0 - mov r8, r4 - ldr r1, [sp, 0x14] - ands r1, r0 - str r1, [sp, 0x14] - lsls r1, r4, 1 - ldr r3, [sp, 0x14] - lsls r0, r3, 6 - adds r1, r0 - ldr r4, _0804A63C - adds r1, r4 - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - movs r0, 0x1 - add r8, r0 - add r9, r0 - mov r1, r9 - cmp r1, 0x3 - beq _0804A60C - b _0804A702 -_0804A60C: - movs r2, 0 - mov r9, r2 - add r10, r0 - ldr r3, [sp, 0x10] - lsls r0, r3, 1 - adds r6, r0, r3 - mov r0, r10 - ldr r1, [sp, 0xC] - bl sub_804954C - adds r5, r0, 0 - ldrh r1, [r5] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0804A644 - lsls r0, r6, 1 - ldr r4, _0804A640 - adds r0, r4 - adds r2, r7, r0 - b _0804A702 - .align 2, 0 -_0804A638: .4byte 0x00011884 -_0804A63C: .4byte gUnknown_202C838 -_0804A640: .4byte 0x00012bda -_0804A644: - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0804A660 - lsls r0, r6, 1 - ldr r3, _0804A65C - adds r0, r3 - adds r2, r7, r0 - b _0804A702 - .align 2, 0 -_0804A65C: .4byte 0x00012bec -_0804A660: - ldr r4, [sp] - cmp r4, 0 - beq _0804A678 - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r0, _0804A674 - adds r1, r0 - b _0804A6FC - .align 2, 0 -_0804A674: .4byte 0x00011884 -_0804A678: - ldr r4, [r5, 0x14] - cmp r4, 0 - beq _0804A6C0 - adds r0, r4, 0 - bl sub_80450F8 - cmp r0, 0x2 - bne _0804A6AC - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - bne _0804A698 - ldr r1, [sp, 0x4] - cmp r1, 0 - beq _0804A6AC -_0804A698: - ldr r0, [r4, 0x70] - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - ldr r2, _0804A6A8 - adds r0, r2 - b _0804A6DE - .align 2, 0 -_0804A6A8: .4byte 0x00012a18 -_0804A6AC: - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r3, _0804A6BC - adds r1, r3 - b _0804A6FC - .align 2, 0 -_0804A6BC: .4byte 0x00011884 -_0804A6C0: - movs r4, 0x80 - lsls r4, 2 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0804A6F0 - ldr r1, _0804A6E8 - adds r0, r7, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - ldr r3, _0804A6EC - adds r0, r3 -_0804A6DE: - adds r0, r7, r0 - lsls r1, r6, 1 - adds r2, r0, r1 - b _0804A702 - .align 2, 0 -_0804A6E8: .4byte 0x00003a12 -_0804A6EC: .4byte 0x00012a18 -_0804A6F0: - ldrb r0, [r5, 0x8] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 1 - ldr r4, _0804A724 - adds r1, r4 -_0804A6FC: - adds r1, r7, r1 - lsls r0, r6, 1 - adds r2, r1, r0 -_0804A702: - ldr r0, [sp, 0x8] - subs r0, 0x1 - str r0, [sp, 0x8] - cmp r0, 0 - blt _0804A70E - b _0804A5DE -_0804A70E: - movs r0, 0x3 - bl sub_80098F8 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804A724: .4byte 0x00011884 - thumb_func_end sub_804A49C - - thumb_func_start sub_804A728 -sub_804A728: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x40 - str r0, [sp, 0x1C] - adds r5, r1, 0 - adds r4, r3, 0 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x20] - lsls r4, 24 - lsrs r4, 24 - ldr r6, _0804A814 - ldr r0, [r6] - mov r8, r0 - bl sub_8083600 - str r0, [sp, 0x24] - ldr r0, _0804A818 - add r0, r8 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 19 - str r0, [sp, 0x30] - adds r1, r0, 0 - ldr r0, [r6] - ldr r2, _0804A81C - adds r0, r2 - strb r4, [r0] - ldr r3, [sp, 0x1C] - movs r4, 0 - ldrsh r7, [r3, r4] - movs r0, 0x2 - ldrsh r6, [r3, r0] - ldr r0, _0804A820 - lsls r5, 2 - adds r5, r0 - movs r2, 0 - ldrsh r4, [r5, r2] - movs r0, 0x2 - ldrsh r3, [r5, r0] - mov r0, sp - movs r2, 0x5 -_0804A782: - strh r7, [r0] - strh r6, [r0, 0x2] - adds r7, r4 - adds r6, r3 - adds r0, 0x4 - subs r2, 0x1 - cmp r2, 0 - bge _0804A782 - ldr r0, _0804A824 - adds r1, 0x1E - lsls r1, 1 - adds r0, r1, r0 - movs r3, 0 - ldrsh r2, [r0, r3] - str r2, [sp, 0x28] - ldr r0, _0804A828 - adds r1, r0 - movs r0, 0 - ldrsh r4, [r1, r0] - mov r10, r4 - movs r7, 0 -_0804A7AC: - ldr r0, _0804A82C - add r0, r8 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 19 - str r0, [sp, 0x34] - ldr r0, _0804A824 - ldr r1, [sp, 0x34] - adds r1, 0x1E - lsls r1, 1 - adds r0, r1, r0 - movs r3, 0 - ldrsh r2, [r0, r3] - str r2, [sp, 0x2C] - ldr r0, _0804A828 - adds r1, r0 - movs r0, 0 - ldrsh r4, [r1, r0] - mov r9, r4 - lsls r0, r2, 1 - adds r0, r2 - ldr r1, [sp, 0x28] - adds r5, r1, r0 - mov r2, r10 - lsls r0, r2, 16 - lsls r1, r4, 16 - lsrs r0, 16 - orrs r0, r1 - str r0, [sp, 0x18] - ldr r3, [sp, 0x20] - cmp r3, 0 - beq _0804A850 - ldr r4, [sp, 0x1C] - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r10, r0 - bne _0804A834 - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r9, r0 - bne _0804A834 - lsls r0, r5, 1 - ldr r3, _0804A830 - adds r0, r3 - mov r4, r8 - adds r2, r4, r0 - ldr r0, [sp, 0x28] - adds r0, 0x1 - str r0, [sp, 0x3C] - adds r1, r7, 0x1 - str r1, [sp, 0x38] - b _0804A8FC - .align 2, 0 -_0804A814: .4byte gUnknown_203B418 -_0804A818: .4byte 0x000181f0 -_0804A81C: .4byte 0x0001821a -_0804A820: .4byte gUnknown_80F4448 -_0804A824: .4byte gUnknown_80F6A4A -_0804A828: .4byte gUnknown_80F6C06 -_0804A82C: .4byte 0x000181f2 -_0804A830: .4byte 0x00012b92 -_0804A834: - lsls r0, r5, 1 - ldr r2, _0804A84C - adds r0, r2 - mov r3, r8 - adds r2, r3, r0 - ldr r4, [sp, 0x28] - adds r4, 0x1 - str r4, [sp, 0x3C] - adds r0, r7, 0x1 - str r0, [sp, 0x38] - b _0804A8FC - .align 2, 0 -_0804A84C: .4byte 0x00013554 -_0804A850: - add r4, sp, 0x18 - ldr r0, [sp, 0x24] - adds r1, r4, 0 - bl sub_807049C - lsls r0, 24 - cmp r0, 0 - bne _0804A8E8 - ldr r0, [sp, 0x24] - adds r1, r4, 0 - bl sub_8045AAC - lsls r0, 24 - cmp r0, 0 - beq _0804A8E8 - movs r2, 0 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r3, r5, 1 - ldr r4, [sp, 0x28] - adds r4, 0x1 - str r4, [sp, 0x3C] - adds r1, r7, 0x1 - str r1, [sp, 0x38] - cmp r0, r10 - bne _0804A890 - mov r0, sp - movs r4, 0x2 - ldrsh r0, [r0, r4] - cmp r0, r9 - beq _0804A8AC -_0804A890: - adds r2, 0x1 - cmp r2, 0x5 - bgt _0804A8AC - lsls r0, r2, 2 - mov r4, sp - adds r1, r4, r0 - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r0, r10 - bne _0804A890 - movs r4, 0x2 - ldrsh r0, [r1, r4] - cmp r0, r9 - bne _0804A890 -_0804A8AC: - cmp r2, 0x6 - bne _0804A8D8 - ldr r0, _0804A8C0 - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _0804A8C8 - ldr r1, _0804A8C4 - adds r0, r3, r1 - b _0804A8DC - .align 2, 0 -_0804A8C0: .4byte gUnknown_203B46C -_0804A8C4: .4byte 0x00012b80 -_0804A8C8: - ldr r4, _0804A8D4 - adds r0, r3, r4 - mov r1, r8 - adds r2, r1, r0 - b _0804A8FC - .align 2, 0 -_0804A8D4: .4byte 0x00013554 -_0804A8D8: - ldr r2, _0804A8E4 - adds r0, r3, r2 -_0804A8DC: - mov r3, r8 - adds r2, r3, r0 - b _0804A8FC - .align 2, 0 -_0804A8E4: .4byte 0x00012b92 -_0804A8E8: - lsls r0, r5, 1 - ldr r4, _0804A968 - adds r0, r4 - mov r1, r8 - adds r2, r1, r0 - ldr r3, [sp, 0x28] - adds r3, 0x1 - str r3, [sp, 0x3C] - adds r4, r7, 0x1 - str r4, [sp, 0x38] -_0804A8FC: - movs r6, 0 -_0804A8FE: - movs r0, 0x1F - ldr r1, [sp, 0x30] - ands r1, r0 - str r1, [sp, 0x30] - ldr r3, [sp, 0x34] - ands r3, r0 - lsls r0, r1, 1 - lsls r1, r3, 6 - adds r0, r1 - ldr r4, _0804A96C - adds r0, r4 - ldrh r1, [r2] - strh r1, [r0] - adds r2, 0x6 - adds r3, 0x1 - str r3, [sp, 0x34] - ldr r0, [sp, 0x2C] - adds r0, 0x1 - str r0, [sp, 0x2C] - adds r7, r6, 0x1 - cmp r0, 0x3 - beq _0804A92C - b _0804AA20 -_0804A92C: - movs r1, 0 - str r1, [sp, 0x2C] - movs r2, 0x1 - add r9, r2 - ldr r5, [sp, 0x28] - add r4, sp, 0x18 - mov r3, r10 - strh r3, [r4] - adds r0, r4, 0 - mov r1, r9 - strh r1, [r0, 0x2] - ldr r2, [sp, 0x20] - cmp r2, 0 - beq _0804A984 - ldr r3, [sp, 0x1C] - movs r4, 0 - ldrsh r0, [r3, r4] - cmp r10, r0 - bne _0804A974 - movs r1, 0x2 - ldrsh r0, [r3, r1] - cmp r9, r0 - bne _0804A974 - ldr r2, [sp, 0x28] - lsls r0, r2, 1 - ldr r3, _0804A970 - adds r0, r3 - mov r4, r8 - adds r2, r4, r0 - b _0804AA20 - .align 2, 0 -_0804A968: .4byte 0x00013554 -_0804A96C: .4byte gUnknown_202C038 -_0804A970: .4byte 0x00012b92 -_0804A974: - lsls r0, r5, 1 - ldr r1, _0804A980 - adds r0, r1 - mov r3, r8 - adds r2, r3, r0 - b _0804AA1E - .align 2, 0 -_0804A980: .4byte 0x00013554 -_0804A984: - ldr r0, [sp, 0x24] - adds r1, r4, 0 - bl sub_807049C - lsls r0, 24 - cmp r0, 0 - bne _0804AA14 - ldr r0, [sp, 0x24] - adds r1, r4, 0 - bl sub_8045AAC - lsls r0, 24 - cmp r0, 0 - beq _0804AA14 - movs r2, 0 - mov r0, sp - movs r4, 0 - ldrsh r0, [r0, r4] - ldr r1, [sp, 0x28] - lsls r3, r1, 1 - cmp r0, r10 - bne _0804A9BA - mov r0, sp - movs r4, 0x2 - ldrsh r0, [r0, r4] - cmp r0, r9 - beq _0804A9D6 -_0804A9BA: - adds r2, 0x1 - cmp r2, 0x5 - bgt _0804A9D6 - lsls r0, r2, 2 - mov r4, sp - adds r1, r4, r0 - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r0, r10 - bne _0804A9BA - movs r4, 0x2 - ldrsh r0, [r1, r4] - cmp r0, r9 - bne _0804A9BA -_0804A9D6: - cmp r2, 0x6 - bne _0804AA04 - ldr r0, _0804A9EC - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _0804A9F4 - ldr r1, _0804A9F0 - adds r0, r3, r1 - b _0804AA08 - .align 2, 0 -_0804A9EC: .4byte gUnknown_203B46C -_0804A9F0: .4byte 0x00012b80 -_0804A9F4: - ldr r4, _0804AA00 - adds r0, r3, r4 - mov r1, r8 - adds r2, r1, r0 - b _0804AA20 - .align 2, 0 -_0804AA00: .4byte 0x00013554 -_0804AA04: - ldr r2, _0804AA10 - adds r0, r3, r2 -_0804AA08: - mov r3, r8 - adds r2, r3, r0 - b _0804AA20 - .align 2, 0 -_0804AA10: .4byte 0x00012b92 -_0804AA14: - lsls r0, r5, 1 - ldr r4, _0804AA5C - adds r0, r4 - mov r1, r8 - adds r2, r1, r0 -_0804AA1E: - adds r7, r6, 0x1 -_0804AA20: - adds r6, r7, 0 - cmp r6, 0x14 - bgt _0804AA28 - b _0804A8FE -_0804AA28: - ldr r2, [sp, 0x30] - adds r2, 0x1 - str r2, [sp, 0x30] - ldr r3, [sp, 0x3C] - str r3, [sp, 0x28] - cmp r3, 0x3 - bne _0804AA3E - movs r4, 0 - str r4, [sp, 0x28] - movs r0, 0x1 - add r10, r0 -_0804AA3E: - ldr r7, [sp, 0x38] - cmp r7, 0x1E - bgt _0804AA46 - b _0804A7AC -_0804AA46: - movs r0, 0x2 - bl sub_80098F8 - add sp, 0x40 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804AA5C: .4byte 0x00013554 - thumb_func_end sub_804A728 - - thumb_func_start sub_804AA60 -sub_804AA60: - push {r4,lr} - movs r1, 0 - ldr r0, _0804AAA0 - movs r3, 0 - movs r2, 0x80 - lsls r2, 5 - adds r4, r0, r2 -_0804AA6E: - lsls r0, r1, 6 - adds r2, r1, 0x1 - movs r1, 0x1F - adds r0, r4 - adds r0, 0x3E -_0804AA78: - strh r3, [r0] - subs r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _0804AA78 - adds r1, r2, 0 - cmp r1, 0x1F - ble _0804AA6E - movs r4, 0 - movs r0, 0x2 - bl sub_80098F8 - ldr r0, _0804AAA4 - ldr r0, [r0] - ldr r1, _0804AAA8 - adds r0, r1 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804AAA0: .4byte gUnknown_202B038 -_0804AAA4: .4byte gUnknown_203B418 -_0804AAA8: .4byte 0x0001821a - thumb_func_end sub_804AA60 - - thumb_func_start sub_804AAAC -sub_804AAAC: - push {r4-r7,lr} - movs r5, 0 - movs r7, 0 -_0804AAB2: - movs r4, 0 - adds r6, r5, 0x1 -_0804AAB6: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8049590 - strh r7, [r0, 0x4] - adds r4, 0x1 - cmp r4, 0x37 - ble _0804AAB6 - adds r5, r6, 0 - cmp r5, 0x1F - ble _0804AAB2 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804AAAC - - thumb_func_start sub_804AAD4 -sub_804AAD4: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, _0804AC04 - movs r0, 0 - mov r8, r0 - ldr r6, _0804AC08 - ldr r5, _0804AC0C - movs r2, 0 - movs r3, 0x1F -_0804AAEA: - ldr r0, [r4] - adds r0, r2 - ldr r1, _0804AC10 - adds r0, r1 - mov r7, r8 - strb r7, [r0] - ldr r0, [r4] - adds r0, r2 - adds r1, 0x1 - adds r0, r1 - strb r7, [r0] - ldr r0, [r4] - adds r0, r2 - ldr r7, _0804AC14 - adds r1, r0, r7 - strh r6, [r1] - adds r7, 0x2 - adds r1, r0, r7 - strh r6, [r1] - adds r7, 0x2 - adds r1, r0, r7 - strh r5, [r1] - ldr r1, _0804AC18 - adds r0, r1 - strh r5, [r0] - adds r2, 0x1C - subs r3, 0x1 - cmp r3, 0 - bge _0804AAEA - movs r4, 0 - mov r9, r4 - movs r6, 0 - ldr r7, _0804AC04 - mov r8, r7 -_0804AB2E: - movs r4, 0 - adds r5, r6, 0x1 -_0804AB32: - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_804954C - ldrb r2, [r0, 0x9] - adds r3, r4, 0x1 - cmp r2, 0xFF - beq _0804AB84 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - ldr r1, _0804AC10 - adds r0, r1 - mov r7, r8 - ldr r1, [r7] - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - movs r7, 0x2 - ldrsh r0, [r1, r7] - cmp r0, r4 - ble _0804AB60 - strh r4, [r1, 0x2] -_0804AB60: - movs r4, 0x4 - ldrsh r0, [r1, r4] - cmp r0, r6 - ble _0804AB6A - strh r6, [r1, 0x4] -_0804AB6A: - movs r7, 0x6 - ldrsh r0, [r1, r7] - cmp r0, r3 - bge _0804AB74 - strh r3, [r1, 0x6] -_0804AB74: - movs r4, 0x8 - ldrsh r0, [r1, r4] - cmp r0, r5 - bge _0804AB7E - strh r5, [r1, 0x8] -_0804AB7E: - cmp r9, r2 - bge _0804AB84 - mov r9, r2 -_0804AB84: - adds r4, r3, 0 - cmp r4, 0x37 - ble _0804AB32 - adds r6, r5, 0 - cmp r6, 0x1F - ble _0804AB2E - ldr r7, _0804AC04 - mov r8, r7 - mov r5, r9 - adds r5, 0x1 - mov r6, r8 - movs r4, 0 - movs r3, 0x1F -_0804AB9E: - ldr r1, _0804AC10 - adds r0, r4, r1 - ldr r1, [r6] - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, 0 - beq _0804ABE4 - movs r7, 0x2 - ldrsh r1, [r2, r7] - subs r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - str r0, [r2, 0xC] - movs r0, 0x4 - ldrsh r1, [r2, r0] - subs r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - str r0, [r2, 0x10] - movs r7, 0x6 - ldrsh r1, [r2, r7] - adds r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - str r0, [r2, 0x14] - movs r0, 0x8 - ldrsh r1, [r2, r0] - adds r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - str r0, [r2, 0x18] -_0804ABE4: - adds r4, 0x1C - subs r3, 0x1 - cmp r3, 0 - bge _0804AB9E - mov r1, r8 - ldr r0, [r1] - ldr r4, _0804AC1C - adds r0, r4 - strb r5, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804AC04: .4byte gUnknown_203B418 -_0804AC08: .4byte 0x0000270f -_0804AC0C: .4byte 0x0000d8f1 -_0804AC10: .4byte 0x000104c4 -_0804AC14: .4byte 0x000104c6 -_0804AC18: .4byte 0x000104cc -_0804AC1C: .4byte 0x000104c0 - thumb_func_end sub_804AAD4 - - thumb_func_start sub_804AC20 -sub_804AC20: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl sub_804954C - ldrb r1, [r0, 0x9] - ldr r0, _0804AC6C - ldr r3, [r0] - ldr r5, _0804AC70 - adds r0, r3, r5 - ldrb r2, [r0] - adds r5, 0x1 - adds r0, r3, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _0804ACD4 - cmp r2, 0 - bne _0804AC52 - movs r2, 0x2 -_0804AC52: - cmp r1, 0xFF - bne _0804AC74 - movs r0, 0 - ldrsh r1, [r4, r0] - subs r3, r1, r2 - mov r9, r3 - movs r5, 0x2 - ldrsh r0, [r4, r5] - subs r3, r0, r2 - adds r6, r1, r2 - adds r0, r2 - mov r8, r0 - b _0804ACA2 - .align 2, 0 -_0804AC6C: .4byte gUnknown_203B418 -_0804AC70: .4byte 0x00018209 -_0804AC74: - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _0804ACE0 - adds r0, r1 - adds r2, r3, r0 - ldrb r0, [r2, 0x1] - cmp r0, 0 - bne _0804ACD4 - movs r0, 0x1 - strb r0, [r2, 0x1] - movs r3, 0x2 - ldrsh r0, [r2, r3] - subs r0, 0x1 - mov r9, r0 - movs r5, 0x4 - ldrsh r0, [r2, r5] - subs r3, r0, 0x1 - movs r0, 0x6 - ldrsh r6, [r2, r0] - movs r5, 0x8 - ldrsh r1, [r2, r5] - mov r8, r1 -_0804ACA2: - adds r5, r3, 0 - cmp r5, r8 - bgt _0804ACD4 -_0804ACA8: - mov r4, r9 - adds r7, r5, 0x1 - cmp r4, r6 - bgt _0804ACCE -_0804ACB0: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8049590 - ldrh r2, [r0, 0x4] - movs r1, 0x3 - orrs r1, r2 - strh r1, [r0, 0x4] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80402AC - adds r4, 0x1 - cmp r4, r6 - ble _0804ACB0 -_0804ACCE: - adds r5, r7, 0 - cmp r5, r8 - ble _0804ACA8 -_0804ACD4: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804ACE0: .4byte 0x000104c4 - thumb_func_end sub_804AC20 - - thumb_func_start sub_804ACE4 -sub_804ACE4: - push {lr} - movs r1, 0 - ldrsh r2, [r0, r1] - movs r3, 0x2 - ldrsh r1, [r0, r3] - adds r0, r2, 0 - bl sub_804954C - ldr r0, [r0, 0x14] - cmp r0, 0 - beq _0804AD06 - bl sub_80450F8 - cmp r0, 0x3 - bne _0804AD06 - movs r0, 0x1 - b _0804AD08 -_0804AD06: - movs r0, 0 -_0804AD08: - pop {r1} - bx r1 - thumb_func_end sub_804ACE4 - - thumb_func_start sub_804AD0C -sub_804AD0C: - push {lr} - movs r1, 0 - ldrsh r2, [r0, r1] - movs r3, 0x2 - ldrsh r1, [r0, r3] - adds r0, r2, 0 - bl sub_804954C - ldr r1, [r0, 0x10] - cmp r1, 0 - beq _0804AD2C - ldr r0, [r1] - cmp r0, 0x1 - bne _0804AD2C - adds r0, r1, 0 - b _0804AD2E -_0804AD2C: - movs r0, 0 -_0804AD2E: - pop {r1} - bx r1 - thumb_func_end sub_804AD0C - - thumb_func_start sub_804AD34 -sub_804AD34: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - movs r0, 0 - mov r8, r0 - movs r1, 0 - ldrsh r0, [r6, r1] - movs r2, 0x2 - ldrsh r1, [r6, r2] - bl sub_8049590 - adds r2, r0, 0 - ldrh r1, [r2] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0804ADB6 - movs r0, 0x88 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - bne _0804ADB6 - movs r0, 0x1 - mov r8, r0 - ldr r0, _0804ADFC - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - movs r5, 0x1 - negs r5, r5 -_0804AD74: - movs r4, 0x1 - negs r4, r4 - adds r7, r5, 0x1 -_0804AD7A: - movs r1, 0 - ldrsh r0, [r6, r1] - adds r0, r4, r0 - movs r2, 0x2 - ldrsh r1, [r6, r2] - adds r1, r5, r1 - bl sub_80498A8 - movs r1, 0 - ldrsh r0, [r6, r1] - adds r0, r4, r0 - movs r2, 0x2 - ldrsh r1, [r6, r2] - adds r1, r5, r1 - bl sub_8049BB0 - movs r1, 0 - ldrsh r0, [r6, r1] - adds r0, r4, r0 - movs r2, 0x2 - ldrsh r1, [r6, r2] - adds r1, r5, r1 - bl sub_80402AC - adds r4, 0x1 - cmp r4, 0x1 - ble _0804AD7A - adds r5, r7, 0 - cmp r5, 0x1 - ble _0804AD74 -_0804ADB6: - mov r0, r8 - cmp r0, 0 - beq _0804ADEE - movs r5, 0 -_0804ADBE: - ldr r0, _0804AE00 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _0804AE04 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _0804ADDE - adds r0, r4, 0 - bl sub_806CF98 -_0804ADDE: - adds r5, 0x1 - cmp r5, 0x13 - ble _0804ADBE - bl sub_8049ED4 - adds r0, r6, 0 - bl sub_8042A14 -_0804ADEE: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0804ADFC: .4byte 0x0000fffc -_0804AE00: .4byte gUnknown_203B418 -_0804AE04: .4byte 0x000135cc - thumb_func_end sub_804AD34 - - thumb_func_start sub_804AE08 -sub_804AE08: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - movs r0, 0 - mov r8, r0 - movs r1, 0 - ldrsh r0, [r7, r1] - movs r2, 0x2 - ldrsh r1, [r7, r2] - bl sub_8049590 - adds r2, r0, 0 - ldrh r1, [r2] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0804AE72 - movs r0, 0x88 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - bne _0804AE72 - movs r0, 0x1 - mov r8, r0 - ldr r0, _0804AE80 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - ldrh r1, [r2, 0x4] - movs r0, 0x10 - orrs r0, r1 - strh r0, [r2, 0x4] - movs r5, 0x1 - negs r5, r5 -_0804AE50: - movs r4, 0x1 - negs r4, r4 - adds r6, r5, 0x1 -_0804AE56: - movs r1, 0 - ldrsh r0, [r7, r1] - adds r0, r4, r0 - movs r2, 0x2 - ldrsh r1, [r7, r2] - adds r1, r5, r1 - bl sub_8049BB0 - adds r4, 0x1 - cmp r4, 0x1 - ble _0804AE56 - adds r5, r6, 0 - cmp r5, 0x1 - ble _0804AE50 -_0804AE72: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0804AE80: .4byte 0x0000fffc - thumb_func_end sub_804AE08 - - thumb_func_start sub_804AE84 -sub_804AE84: - push {r4-r7,lr} - adds r5, r0, 0 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r2, 0x2 - ldrsh r1, [r5, r2] - bl sub_8049590 - adds r2, r0, 0 - ldrh r1, [r2, 0x4] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0804AF0E - ldr r0, _0804AF14 - ands r0, r1 - strh r0, [r2, 0x4] - movs r6, 0x1 - negs r6, r6 -_0804AEAA: - movs r4, 0x1 - negs r4, r4 - adds r7, r6, 0x1 -_0804AEB0: - movs r1, 0 - ldrsh r0, [r5, r1] - adds r0, r4, r0 - movs r2, 0x2 - ldrsh r1, [r5, r2] - adds r1, r6, r1 - bl sub_80498A8 - movs r1, 0 - ldrsh r0, [r5, r1] - adds r0, r4, r0 - movs r2, 0x2 - ldrsh r1, [r5, r2] - adds r1, r6, r1 - bl sub_80402AC - adds r4, 0x1 - cmp r4, 0x1 - ble _0804AEB0 - adds r6, r7, 0 - cmp r6, 0x1 - ble _0804AEAA - movs r6, 0 -_0804AEDE: - ldr r0, _0804AF18 - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _0804AF1C - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl sub_80450E0 - lsls r0, 24 - cmp r0, 0 - beq _0804AEFE - adds r0, r4, 0 - bl sub_806CF98 -_0804AEFE: - adds r6, 0x1 - cmp r6, 0x13 - ble _0804AEDE - bl sub_8049ED4 - adds r0, r5, 0 - bl sub_8042A14 -_0804AF0E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804AF14: .4byte 0x0000ffef -_0804AF18: .4byte gUnknown_203B418 -_0804AF1C: .4byte 0x000135cc - thumb_func_end sub_804AE84 - - thumb_func_start sub_804AF20 -sub_804AF20: - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - bl sub_804AF74 - lsls r0, 24 - cmp r0, 0 - beq _0804AF3C - ldrh r1, [r4] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0804AF5E - b _0804AF5C -_0804AF3C: - ldrh r1, [r4] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - bne _0804AF5C - ldr r1, _0804AF68 - ldr r0, _0804AF6C - ldr r0, [r0] - ldr r2, _0804AF70 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0804AF5E -_0804AF5C: - movs r5, 0x1 -_0804AF5E: - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0804AF68: .4byte gUnknown_810ACC0 -_0804AF6C: .4byte gUnknown_203B418 -_0804AF70: .4byte 0x00003a0e - thumb_func_end sub_804AF20 - - thumb_func_start sub_804AF74 -sub_804AF74: - push {lr} - ldr r0, _0804AF9C - ldr r0, [r0] - ldr r1, _0804AFA0 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0804AF96 - cmp r0, 0x31 - beq _0804AF96 - cmp r0, 0x20 - beq _0804AF96 - cmp r0, 0x21 - beq _0804AF96 - cmp r0, 0x36 - bne _0804AFA4 -_0804AF96: - movs r0, 0x1 - b _0804AFA6 - .align 2, 0 -_0804AF9C: .4byte gUnknown_203B418 -_0804AFA0: .4byte 0x00003a0e -_0804AFA4: - movs r0, 0 -_0804AFA6: - pop {r1} - bx r1 - thumb_func_end sub_804AF74 - - thumb_func_start sub_804AFAC -sub_804AFAC: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x44 - movs r0, 0 - mov r10, r0 - ldr r4, _0804B0E8 - ldr r0, [r4] - ldr r1, _0804B0EC - adds r1, r0 - mov r8, r1 - ldr r0, _0804B0F0 - ldr r1, _0804B0F4 - bl OpenFileAndGetFileDataPtr - ldr r2, [r4] - ldr r3, _0804B0F8 - adds r1, r2, r3 - str r0, [r1] - ldr r0, _0804B0FC - mov r6, r10 - strb r6, [r0] - ldr r0, _0804B100 - strb r6, [r0] - ldr r0, _0804B104 - strb r6, [r0] - ldr r5, _0804B108 - movs r3, 0 - ldr r1, _0804B10C - ldr r0, _0804B110 - adds r2, r0 - movs r6, 0 - ldrsh r0, [r2, r6] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _0804AFFC - movs r3, 0x1 -_0804AFFC: - strb r3, [r5] - ldr r1, _0804B114 - movs r0, 0xFF - strb r0, [r1] - ldr r0, _0804B118 - mov r1, r10 - strb r1, [r0] - ldr r1, _0804B11C - mov r2, r8 - ldrb r0, [r2, 0x7] - strh r0, [r1] - ldr r1, _0804B120 - ldrb r0, [r2, 0x8] - strh r0, [r1] - ldr r1, _0804B124 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _0804B128 - movs r0, 0x1 - negs r0, r0 - str r0, [r1] - str r0, [r1, 0x8] - str r0, [r1, 0x4] - str r0, [r1, 0xC] - bl sub_804FD30 - ldr r3, [r4] - mov r6, r8 - ldrb r2, [r6, 0x6] - ldr r1, _0804B12C - adds r0, r3, r1 - movs r1, 0 - strh r2, [r0] - ldr r2, _0804B130 - adds r0, r3, r2 - strb r1, [r0] - ldr r0, [r4] - ldr r3, _0804B134 - adds r0, r3 - strb r1, [r0] - ldr r1, _0804B138 - mov r6, r8 - ldrb r0, [r6, 0xC] - str r0, [r1] - movs r0, 0 - str r0, [sp, 0x40] -_0804B058: - ldr r0, _0804B0E8 - ldr r2, [r0] - ldr r3, _0804B13C - adds r1, r2, r3 - ldr r0, _0804B140 - strh r0, [r1] - ldr r6, _0804B144 - adds r1, r2, r6 - movs r0, 0x1 - negs r0, r0 - strh r0, [r1] - ldr r0, _0804B148 - adds r1, r2, r0 - movs r0, 0x1 - negs r0, r0 - strh r0, [r1] - ldr r1, _0804B14C - adds r2, r1 - strh r0, [r2] - movs r2, 0 - mov r9, r2 -_0804B082: - ldr r4, _0804B0E8 - ldr r0, [r4] - ldr r3, _0804B150 - adds r0, r3 - movs r5, 0 - movs r1, 0 - mov r6, r9 - strh r6, [r0] - mov r0, r9 - cmp r0, 0 - ble _0804B09C - ldr r0, _0804B138 - str r1, [r0] -_0804B09C: - ldr r0, _0804B154 - strb r5, [r0] - ldr r1, _0804B158 - ldr r0, _0804B140 - strh r0, [r1] - movs r0, 0x1 - negs r0, r0 - strh r0, [r1, 0x2] - bl sub_804FD30 - ldr r1, [r4] - ldr r3, _0804B13C - adds r2, r1, r3 - movs r0, 0x1 - negs r0, r0 - strh r0, [r2] - ldr r6, _0804B144 - adds r2, r1, r6 - strh r0, [r2] - ldr r0, _0804B15C - adds r1, r0 - strb r5, [r1] - ldr r0, [r4] - ldr r2, _0804B160 - adds r1, r0, r2 - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0804B164 - mov r1, r8 - bl sub_804C70C - lsls r0, 24 - cmp r0, 0 - beq _0804B0E4 - b _0804B376 -_0804B0E4: - b _0804B2F6 - .align 2, 0 -_0804B0E8: .4byte gUnknown_203B418 -_0804B0EC: .4byte 0x0001c574 -_0804B0F0: .4byte gUnknown_80F6DCC -_0804B0F4: .4byte gUnknown_83B0000 -_0804B0F8: .4byte 0x00013568 -_0804B0FC: .4byte gUnknown_202F1AA -_0804B100: .4byte gUnknown_202F1AB -_0804B104: .4byte gUnknown_202F1AC -_0804B108: .4byte gUnknown_202F1A8 -_0804B10C: .4byte gUnknown_810ACC0 -_0804B110: .4byte 0x00003a0e -_0804B114: .4byte gUnknown_202F1B4 -_0804B118: .4byte gUnknown_202F1AE -_0804B11C: .4byte gUnknown_202F1B0 -_0804B120: .4byte gUnknown_202F1B2 -_0804B124: .4byte gUnknown_202F1AD -_0804B128: .4byte gUnknown_202F1B8 -_0804B12C: .4byte 0x00000664 -_0804B130: .4byte 0x00003a09 -_0804B134: .4byte 0x00003a0a -_0804B138: .4byte gUnknown_202F1C8 -_0804B13C: .4byte 0x0000e218 -_0804B140: .4byte 0x0000ffff -_0804B144: .4byte 0x0000e21a -_0804B148: .4byte 0x0000e21c -_0804B14C: .4byte 0x0000e21e -_0804B150: .4byte 0x00003a16 -_0804B154: .4byte gUnknown_202F1A9 -_0804B158: .4byte gUnknown_202F1D8 -_0804B15C: .4byte 0x00003a08 -_0804B160: .4byte 0x00003a14 -_0804B164: - mov r0, r8 - ldrb r7, [r0] - movs r6, 0x20 -_0804B16A: - cmp r7, 0x8 - beq _0804B17E - movs r0, 0x2 - movs r1, 0x9 - bl sub_808411C - adds r5, r0, 0 - movs r0, 0x2 - movs r1, 0x8 - b _0804B18C -_0804B17E: - movs r0, 0x2 - movs r1, 0x5 - bl sub_808411C - adds r5, r0, 0 - movs r0, 0x2 - movs r1, 0x4 -_0804B18C: - bl sub_808411C - adds r4, r0, 0 - cmp r5, 0x6 - bgt _0804B19A - cmp r4, 0x4 - ble _0804B1A4 -_0804B19A: - subs r6, 0x1 - cmp r6, 0 - bne _0804B16A - movs r5, 0x4 - movs r4, 0x4 -_0804B1A4: - movs r0, 0x38 - adds r1, r5, 0 - bl __divsi3 - cmp r0, 0x7 - bgt _0804B1B2 - movs r5, 0x1 -_0804B1B2: - movs r0, 0x20 - adds r1, r4, 0 - bl __divsi3 - cmp r0, 0x7 - bgt _0804B1C0 - movs r4, 0x1 -_0804B1C0: - ldr r2, _0804B1EC - ldr r0, [r2] - ldr r1, _0804B1F0 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - ldr r2, _0804B1F4 - adds r0, r2 - movs r1, 0xFF - strb r1, [r0] - ldr r0, _0804B1F8 - str r7, [r0] - movs r0, 0xF - ands r0, r7 - cmp r0, 0xB - bhi _0804B274 - lsls r0, 2 - ldr r1, _0804B1FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804B1EC: .4byte gUnknown_203B418 -_0804B1F0: .4byte 0x00003a08 -_0804B1F4: .4byte 0x00003a0c -_0804B1F8: .4byte gUnknown_202F1D0 -_0804B1FC: .4byte _0804B200 - .align 2, 0 -_0804B200: - .4byte _0804B274 - .4byte _0804B230 - .4byte _0804B280 - .4byte _0804B298 - .4byte _0804B2A4 - .4byte _0804B2B0 - .4byte _0804B2CC - .4byte _0804B2D8 - .4byte _0804B274 - .4byte _0804B2E0 - .4byte _0804B2E8 - .4byte _0804B250 -_0804B230: - movs r0, 0x2 - bl sub_8084100 - adds r4, r0, 0x2 - ldr r1, _0804B24C - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x4 - adds r1, r4, 0 - mov r2, r8 - bl sub_804B634 - b _0804B2AA - .align 2, 0 -_0804B24C: .4byte gUnknown_202F1AE -_0804B250: - movs r0, 0x2 - bl sub_8084100 - adds r4, r0, 0x2 - ldr r1, _0804B270 - movs r0, 0x2 - strb r0, [r1] - movs r0, 0x4 - adds r1, r4, 0 - mov r2, r8 - bl sub_804B634 - movs r6, 0x1 - mov r10, r6 - b _0804B2F6 - .align 2, 0 -_0804B270: .4byte gUnknown_202F1AE -_0804B274: - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, r8 - bl sub_804B634 - b _0804B2D2 -_0804B280: - bl sub_804C918 - ldr r0, _0804B290 - ldr r0, [r0] - ldr r1, _0804B294 - adds r0, r1 - b _0804B2BC - .align 2, 0 -_0804B290: .4byte gUnknown_203B418 -_0804B294: .4byte 0x00003a08 -_0804B298: - mov r0, r8 - bl sub_804B72C - movs r2, 0x1 - mov r10, r2 - b _0804B2F6 -_0804B2A4: - mov r0, r8 - bl sub_804BC80 -_0804B2AA: - movs r3, 0x1 - mov r10, r3 - b _0804B2F6 -_0804B2B0: - bl sub_804C9D0 - ldr r0, _0804B2C4 - ldr r0, [r0] - ldr r6, _0804B2C8 - adds r0, r6 -_0804B2BC: - movs r1, 0x1 - strb r1, [r0] - b _0804B2F6 - .align 2, 0 -_0804B2C4: .4byte gUnknown_203B418 -_0804B2C8: .4byte 0x00003a08 -_0804B2CC: - mov r0, r8 - bl sub_804C0A8 -_0804B2D2: - movs r0, 0x1 - mov r10, r0 - b _0804B2F6 -_0804B2D8: - mov r0, r8 - bl sub_804C190 - b _0804B2F6 -_0804B2E0: - mov r0, r8 - bl sub_804C2F4 - b _0804B2F6 -_0804B2E8: - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, r8 - bl sub_804C53C - movs r1, 0x1 - mov r10, r1 -_0804B2F6: - bl sub_80518F0 - bl sub_804FCCC - ldr r0, _0804B4B4 - ldrb r0, [r0] - cmp r0, 0 - bne _0804B36A - movs r7, 0 - movs r1, 0 - mov r0, sp - adds r0, 0x3F -_0804B30E: - strb r1, [r0] - subs r0, 0x1 - cmp r0, sp - bge _0804B30E - movs r5, 0 -_0804B318: - movs r4, 0 - adds r6, r5, 0x1 -_0804B31C: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - adds r1, r0, 0 - ldrh r0, [r1] - movs r2, 0x3 - ands r2, r0 - cmp r2, 0x1 - bne _0804B340 - ldrb r0, [r1, 0x9] - cmp r0, 0xF0 - bhi _0804B340 - adds r7, 0x1 - cmp r0, 0x3F - bhi _0804B340 - add r0, sp - strb r2, [r0] -_0804B340: - adds r4, 0x1 - cmp r4, 0x1F - ble _0804B31C - adds r5, r6, 0 - cmp r5, 0x37 - ble _0804B318 - movs r1, 0 - movs r4, 0 -_0804B350: - mov r2, sp - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0804B35C - adds r1, 0x1 -_0804B35C: - adds r4, 0x1 - cmp r4, 0x3F - ble _0804B350 - cmp r7, 0x1D - ble _0804B36A - cmp r1, 0x1 - bgt _0804B376 -_0804B36A: - movs r3, 0x1 - add r9, r3 - mov r6, r9 - cmp r6, 0x9 - bgt _0804B376 - b _0804B082 -_0804B376: - mov r0, r9 - cmp r0, 0xA - bne _0804B398 - ldr r1, _0804B4B8 - ldr r0, _0804B4BC - strh r0, [r1] - movs r0, 0x1 - negs r0, r0 - strh r0, [r1, 0x2] - bl sub_804C918 - ldr r0, _0804B4C0 - ldr r0, [r0] - ldr r1, _0804B4C4 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] -_0804B398: - bl sub_804E9DC - mov r2, r10 - cmp r2, 0 - beq _0804B3AA - movs r0, 0x1 - mov r1, r8 - bl sub_80506F0 -_0804B3AA: - movs r0, 0x64 - bl sub_8084100 - movs r4, 0 - mov r3, r8 - ldrb r3, [r3, 0x19] - cmp r0, r3 - bge _0804B3BC - movs r4, 0x1 -_0804B3BC: - mov r0, r8 - adds r1, r4, 0 - bl sub_804FF08 - mov r0, r8 - adds r1, r4, 0 - bl sub_8050438 - bl sub_804FBE8 - ldr r5, _0804B4C0 - ldr r1, [r5] - ldr r6, _0804B4C8 - adds r0, r1, r6 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r4, 0x1 - negs r4, r4 - cmp r0, r4 - beq _0804B42A - ldr r3, _0804B4CC - adds r0, r1, r3 - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r0, r4 - beq _0804B42A - bl sub_8043D10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0804B436 - ldr r1, [r5] - ldr r0, _0804B4D0 - adds r2, r1, r0 - movs r3, 0 - ldrsh r0, [r2, r3] - cmp r0, r4 - beq _0804B42A - ldr r6, _0804B4D4 - adds r1, r6 - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, r4 - beq _0804B42A - movs r6, 0 - ldrsh r0, [r2, r6] - movs r2, 0 - ldrsh r1, [r1, r2] - movs r2, 0 - bl sub_8050C30 - lsls r0, 24 - cmp r0, 0 - bne _0804B436 -_0804B42A: - ldr r3, [sp, 0x40] - adds r3, 0x1 - str r3, [sp, 0x40] - cmp r3, 0x9 - bgt _0804B436 - b _0804B058 -_0804B436: - ldr r6, [sp, 0x40] - cmp r6, 0xA - bne _0804B474 - ldr r1, _0804B4B8 - ldr r0, _0804B4BC - strh r0, [r1] - movs r0, 0x1 - negs r0, r0 - strh r0, [r1, 0x2] - bl sub_804FD30 - bl sub_804C918 - ldr r0, _0804B4C0 - ldr r0, [r0] - ldr r1, _0804B4C4 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bl sub_804E9DC - mov r0, r8 - movs r1, 0 - bl sub_804FF08 - mov r0, r8 - movs r1, 0 - bl sub_8050438 - bl sub_804FBE8 -_0804B474: - ldr r1, _0804B4B8 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - blt _0804B498 - movs r3, 0x2 - ldrsh r0, [r1, r3] - cmp r0, 0 - blt _0804B498 - movs r6, 0 - ldrsh r0, [r1, r6] - movs r2, 0x2 - ldrsh r1, [r1, r2] - movs r2, 0xBE - lsls r2, 1 - movs r3, 0 - bl sub_806C330 -_0804B498: - ldr r0, _0804B4D8 - ldr r0, [r0] - cmp r0, 0 - blt _0804B4E0 - mov r0, r8 - bl sub_8051654 - ldr r0, _0804B4C0 - ldr r0, [r0] - ldr r3, _0804B4DC - adds r0, r3 - movs r1, 0x1 - b _0804B4EA - .align 2, 0 -_0804B4B4: .4byte gUnknown_202F1A9 -_0804B4B8: .4byte gUnknown_202F1D8 -_0804B4BC: .4byte 0x0000ffff -_0804B4C0: .4byte gUnknown_203B418 -_0804B4C4: .4byte 0x00003a08 -_0804B4C8: .4byte 0x0000e218 -_0804B4CC: .4byte 0x0000e21a -_0804B4D0: .4byte 0x0000e21c -_0804B4D4: .4byte 0x0000e21e -_0804B4D8: .4byte gUnknown_202F1B8 -_0804B4DC: .4byte 0x00003a0a -_0804B4E0: - ldr r0, _0804B524 - ldr r0, [r0] - ldr r6, _0804B528 - adds r0, r6 - movs r1, 0 -_0804B4EA: - strb r1, [r0] - movs r0, 0 - movs r1, 0 - movs r2, 0x38 - movs r3, 0x20 - bl sub_804B534 - ldr r0, _0804B52C - ldrb r0, [r0] - cmp r0, 0 - beq _0804B504 - bl sub_804FC74 -_0804B504: - ldr r0, _0804B524 - ldr r0, [r0] - ldr r1, _0804B530 - adds r0, r1 - ldr r0, [r0] - bl CloseFile - add sp, 0x44 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804B524: .4byte gUnknown_203B418 -_0804B528: .4byte 0x00003a0a -_0804B52C: .4byte gUnknown_202F1A8 -_0804B530: .4byte 0x00013568 - thumb_func_end sub_804AFAC - - thumb_func_start sub_804B534 -sub_804B534: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - str r1, [sp] - str r2, [sp, 0x4] - mov r10, r3 - adds r5, r0, 0 - cmp r5, r2 - bge _0804B620 -_0804B54C: - ldr r4, [sp] - adds r0, r5, 0x1 - mov r9, r0 - cmp r4, r10 - bge _0804B618 - movs r6, 0x3 - mov r8, r6 -_0804B55A: - movs r3, 0 - adds r0, r5, 0 - adds r1, r4, 0 - str r3, [sp, 0xC] - bl sub_8049590 - adds r2, r0, 0 - ldrh r0, [r2] - ldr r6, _0804B630 - adds r1, r6, 0 - ands r1, r0 - strh r1, [r2] - ldrb r0, [r2, 0x9] - adds r6, r4, 0x1 - ldr r3, [sp, 0xC] - cmp r0, 0xFF - bne _0804B612 - movs r7, 0x3 - adds r0, r1, 0 - ands r0, r7 - cmp r0, 0x1 - bne _0804B612 - cmp r5, 0 - ble _0804B5A4 - subs r0, r5, 0x1 - adds r1, r4, 0 - str r2, [sp, 0x8] - bl sub_804954C - ldrh r1, [r0] - adds r0, r7, 0 - ands r0, r1 - ldr r2, [sp, 0x8] - ldr r3, [sp, 0xC] - cmp r0, 0x1 - bne _0804B5A4 - movs r3, 0x1 -_0804B5A4: - cmp r4, 0 - ble _0804B5C4 - subs r1, r4, 0x1 - adds r0, r5, 0 - str r2, [sp, 0x8] - str r3, [sp, 0xC] - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - ldr r2, [sp, 0x8] - ldr r3, [sp, 0xC] - cmp r0, 0x1 - bne _0804B5C4 - adds r3, 0x1 -_0804B5C4: - cmp r5, 0x35 - bgt _0804B5E4 - mov r0, r9 - adds r1, r4, 0 - str r2, [sp, 0x8] - str r3, [sp, 0xC] - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - ldr r2, [sp, 0x8] - ldr r3, [sp, 0xC] - cmp r0, 0x1 - bne _0804B5E4 - adds r3, 0x1 -_0804B5E4: - adds r6, r4, 0x1 - cmp r5, 0x1D - bgt _0804B606 - adds r0, r5, 0 - adds r1, r6, 0 - str r2, [sp, 0x8] - str r3, [sp, 0xC] - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - ldr r2, [sp, 0x8] - ldr r3, [sp, 0xC] - cmp r0, 0x1 - bne _0804B606 - adds r3, 0x1 -_0804B606: - cmp r3, 0x2 - ble _0804B612 - ldrh r1, [r2] - movs r0, 0x8 - orrs r0, r1 - strh r0, [r2] -_0804B612: - adds r4, r6, 0 - cmp r4, r10 - blt _0804B55A -_0804B618: - mov r5, r9 - ldr r0, [sp, 0x4] - cmp r5, r0 - blt _0804B54C -_0804B620: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804B630: .4byte 0x0000fffb - thumb_func_end sub_804B534 - - thumb_func_start sub_804B634 -sub_804B634: - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - ldr r4, _0804B718 - add sp, r4 - adds r4, r0, 0 - adds r5, r1, 0 - mov r9, r2 - ldr r0, _0804B71C - add r0, sp - mov r8, r0 - ldr r6, _0804B720 - add r6, sp - adds r1, r6, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_804D024 - add r0, sp, 0x8 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_804D084 - mov r1, r9 - movs r3, 0x1 - ldrsb r3, [r1, r3] - add r0, sp, 0x8 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_804D154 - str r6, [sp] - mov r1, r9 - ldrb r0, [r1, 0xD] - str r0, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r4, 0 - adds r2, r5, 0 - mov r3, r8 - bl sub_804D2D0 - add r0, sp, 0x8 - adds r1, r4, 0 - adds r2, r5, 0 - mov r3, r9 - bl sub_804D5B0 - str r6, [sp] - movs r0, 0 - str r0, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r4, 0 - adds r2, r5, 0 - mov r3, r8 - bl sub_804D8C8 - str r6, [sp] - add r0, sp, 0x8 - adds r1, r4, 0 - adds r2, r5, 0 - mov r3, r8 - bl sub_804E590 - mov r0, r9 - ldrb r3, [r0, 0x9] - add r0, sp, 0x8 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_804F0D0 - ldr r0, _0804B724 - movs r1, 0 - ldrsh r3, [r0, r1] - add r0, sp, 0x8 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_804EBC8 - ldr r0, _0804B728 - movs r1, 0 - ldrsh r3, [r0, r1] - add r0, sp, 0x8 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_804EEE4 - mov r0, r9 - ldrb r3, [r0, 0x13] - add r0, sp, 0x8 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_804CBEC - add r0, sp, 0x8 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_804E03C - add r0, sp, 0x8 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_804D534 - movs r3, 0xE5 - lsls r3, 5 - add sp, r3 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804B718: .4byte 0xffffe360 -_0804B71C: .4byte 0x00001c28 -_0804B720: .4byte 0x00001c64 -_0804B724: .4byte gUnknown_202F1B0 -_0804B728: .4byte gUnknown_202F1B2 - thumb_func_end sub_804B634 - - thumb_func_start sub_804B72C -sub_804B72C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _0804B9AC - add sp, r4 - movs r1, 0xE5 - lsls r1, 5 - add r1, sp - str r0, [r1] - movs r5, 0 - movs r6, 0x1 - ldr r1, _0804B9B0 - add r1, sp - str r5, [r1] - movs r0, 0x5 - str r0, [r1, 0x4] - movs r0, 0x1C - str r0, [r1, 0xC] - movs r0, 0x33 - str r0, [r1, 0x14] - movs r0, 0x38 - str r0, [r1, 0x18] - movs r2, 0x10 - str r2, [r1, 0x8] - movs r0, 0x27 - str r0, [r1, 0x10] - ldr r1, _0804B9B4 - add r1, sp - movs r0, 0x2 - str r0, [r1] - movs r0, 0x7 - str r0, [r1, 0x4] - str r2, [r1, 0x8] - movs r0, 0x19 - str r0, [r1, 0xC] - movs r0, 0x1E - str r0, [r1, 0x10] - add r0, sp, 0x8 - movs r1, 0x6 - movs r2, 0x4 - bl sub_804D084 - mov r2, sp - adds r2, 0x3B - ldr r3, _0804B9B8 - add r3, sp - str r2, [r3] - mov r4, sp - adds r4, 0x3C - ldr r0, _0804B9BC - add r0, sp - str r4, [r0] - mov r1, sp - adds r1, 0x5B - ldr r2, _0804B9C0 - add r2, sp - str r1, [r2] - mov r3, sp - adds r3, 0x5C - movs r4, 0xE6 - lsls r4, 5 - add r4, sp - str r3, [r4] - mov r0, sp - adds r0, 0x7B - ldr r1, _0804B9C4 - add r1, sp - str r0, [r1] - mov r2, sp - adds r2, 0x7E - ldr r3, _0804B9C8 - add r3, sp - str r2, [r3] - add r1, sp, 0x68 - add r0, sp, 0x8 - movs r2, 0xF0 - lsls r2, 1 - movs r4, 0x6 -_0804B7CC: - strb r5, [r0, 0xA] - strb r5, [r1, 0xA] - adds r1, r2 - adds r0, r2 - subs r4, 0x1 - cmp r4, 0 - bne _0804B7CC - movs r2, 0x6 - subs r2, 0x1 - movs r4, 0x4 - cmp r4, 0 - beq _0804B80C - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 5 - add r0, sp - adds r0, 0x8 - add r1, sp, 0x8 - ldr r3, _0804B9CC - add r3, sp - str r4, [r3] -_0804B7F6: - strb r5, [r1, 0xA] - strb r5, [r0, 0xA] - adds r0, 0x20 - adds r1, 0x20 - ldr r3, _0804B9CC - add r3, sp - ldr r4, [r3] - subs r4, 0x1 - str r4, [r3] - cmp r4, 0 - bne _0804B7F6 -_0804B80C: - movs r4, 0x1 - cmp r4, r2 - bge _0804B848 - movs r1, 0x3 -_0804B814: - adds r5, r4, 0x1 - mov r8, r5 - cmp r1, 0x1 - ble _0804B842 - lsls r0, r4, 4 - subs r0, r4 - lsls r0, 5 - add r0, sp - adds r0, 0x8 - adds r0, 0x20 - subs r3, r1, 0x1 - ldr r4, _0804B9CC - add r4, sp - str r3, [r4] -_0804B830: - strb r6, [r0, 0xA] - adds r0, 0x20 - ldr r3, _0804B9CC - add r3, sp - ldr r5, [r3] - subs r5, 0x1 - str r5, [r3] - cmp r5, 0 - bne _0804B830 -_0804B842: - mov r4, r8 - cmp r4, r2 - blt _0804B814 -_0804B848: - movs r4, 0 - ldr r5, _0804B9D0 - add r5, sp - str r4, [r5] - ldr r0, _0804B9CC - add r0, sp - str r4, [r0] - cmp r4, 0x4 - blt _0804B85C - b _0804BA8C -_0804B85C: - movs r4, 0 - ldr r2, _0804B9CC - add r2, sp - ldr r1, [r2] - adds r1, 0x1 - ldr r2, _0804B9D4 - add r2, sp - str r1, [r2] - cmp r4, 0x6 - blt _0804B872 - b _0804BA7A -_0804B872: - ldr r3, _0804B9B0 - add r3, sp - ldr r5, _0804B9D8 - add r5, sp - str r3, [r5] - ldr r0, _0804B9B4 - add r0, sp - ldr r1, _0804B9DC - add r1, sp - str r0, [r1] - ldr r2, _0804B9CC - add r2, sp - ldr r2, [r2] - lsls r0, r2, 2 - ldr r3, [r1] - adds r0, r3, r0 - ldr r3, _0804B9E0 - add r3, sp - str r0, [r3] -_0804B898: - lsls r0, r4, 4 - subs r0, r4 - ldr r5, _0804B9CC - add r5, sp - ldr r5, [r5] - adds r0, r5 - lsls r0, 5 - mov r7, sp - adds r7, r0 - adds r7, 0x8 - ldrb r0, [r7, 0xA] - cmp r0, 0 - bne _0804B8B4 - b _0804B9F4 -_0804B8B4: - lsls r0, r4, 2 - ldr r1, _0804B9D8 - add r1, sp - ldr r1, [r1] - adds r0, r1, r0 - ldr r1, [r0] - adds r2, r1, 0x2 - mov r10, r2 - ldr r3, _0804B9E0 - add r3, sp - ldr r3, [r3] - ldr r2, [r3] - adds r5, r2, 0x2 - ldr r0, _0804B9E4 - add r0, sp - str r5, [r0] - adds r4, 0x1 - mov r9, r4 - lsls r0, r4, 2 - ldr r3, _0804B9D8 - add r3, sp - ldr r3, [r3] - adds r0, r3, r0 - ldr r4, [r0] - subs r4, r1 - subs r4, 0x3 - ldr r5, _0804B9D4 - add r5, sp - ldr r5, [r5] - lsls r0, r5, 2 - ldr r1, _0804B9DC - add r1, sp - ldr r1, [r1] - adds r0, r1, r0 - ldr r5, [r0] - subs r5, r2 - subs r5, 0x3 - movs r0, 0x5 - adds r1, r4, 0 - bl sub_808411C - mov r8, r0 - movs r0, 0x4 - adds r1, r5, 0 - bl sub_808411C - adds r6, r0, 0 - mov r2, r8 - subs r4, r2 - adds r0, r4, 0 - bl sub_8084100 - adds r4, r0, 0 - add r4, r10 - subs r5, r6 - adds r0, r5, 0 - bl sub_8084100 - ldr r5, _0804B9E4 - add r5, sp - ldr r3, [r5] - adds r3, r0 - mov r10, r3 - mov r0, r8 - adds r3, r4, r0 - add r6, r10 - strh r4, [r7] - strh r3, [r7, 0x4] - mov r1, r10 - strh r1, [r7, 0x2] - strh r6, [r7, 0x6] - mov r8, r9 - ldr r5, _0804B9D0 - add r5, sp - ldr r2, [r5] - adds r2, 0x1 - ldr r5, _0804B9E8 - add r5, sp - str r2, [r5] - cmp r4, r3 - bge _0804B99E -_0804B956: - mov r5, r10 - adds r7, r4, 0x1 - cmp r5, r6 - bge _0804B998 - ldr r0, _0804B9EC - mov r9, r0 -_0804B962: - adds r0, r4, 0 - adds r1, r5, 0 - ldr r2, _0804B9F0 - add r2, sp - str r3, [r2] - bl sub_8049590 - ldrh r1, [r0] - mov r2, r9 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8049590 - ldr r1, _0804B9D0 - add r1, sp - ldrb r1, [r1] - strb r1, [r0, 0x9] - adds r5, 0x1 - ldr r2, _0804B9F0 - add r2, sp - ldr r3, [r2] - cmp r5, r6 - blt _0804B962 -_0804B998: - adds r4, r7, 0 - cmp r4, r3 - blt _0804B956 -_0804B99E: - ldr r3, _0804B9E8 - add r3, sp - ldr r3, [r3] - ldr r4, _0804B9D0 - add r4, sp - str r3, [r4] - b _0804BA72 - .align 2, 0 -_0804B9AC: .4byte 0xffffe320 -_0804B9B0: .4byte 0x00001c28 -_0804B9B4: .4byte 0x00001c64 -_0804B9B8: .4byte 0x00001cd4 -_0804B9BC: .4byte 0x00001cd8 -_0804B9C0: .4byte 0x00001cbc -_0804B9C4: .4byte 0x00001cc4 -_0804B9C8: .4byte 0x00001cc8 -_0804B9CC: .4byte 0x00001ca4 -_0804B9D0: .4byte 0x00001ca8 -_0804B9D4: .4byte 0x00001ccc -_0804B9D8: .4byte 0x00001cac -_0804B9DC: .4byte 0x00001cb4 -_0804B9E0: .4byte 0x00001cb8 -_0804B9E4: .4byte 0x00001cb0 -_0804B9E8: .4byte 0x00001cd0 -_0804B9EC: .4byte 0x0000fffc -_0804B9F0: .4byte 0x00001cdc -_0804B9F4: - lsls r0, r4, 2 - ldr r5, _0804BBE8 - add r5, sp - ldr r5, [r5] - adds r0, r5, r0 - ldr r2, [r0] - adds r0, r2, 0x1 - ldr r1, _0804BBEC - add r1, sp - ldr r1, [r1] - ldr r3, [r1] - adds r6, r3, 0x1 - adds r4, 0x1 - mov r8, r4 - lsls r1, r4, 2 - adds r1, r5, r1 - ldr r1, [r1] - subs r1, r2 - subs r1, 0x3 - ldr r5, _0804BBF0 - add r5, sp - ldr r5, [r5] - lsls r2, r5, 2 - ldr r4, _0804BBF4 - add r4, sp - ldr r4, [r4] - adds r2, r4, r2 - ldr r4, [r2] - subs r4, r3 - subs r4, 0x3 - adds r1, r0, r1 - bl sub_808411C - adds r5, r0, 0 - adds r4, r6, r4 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_808411C - adds r4, r0, 0 - strh r5, [r7] - adds r0, r5, 0x1 - strh r0, [r7, 0x4] - strh r4, [r7, 0x2] - adds r0, r4, 0x1 - strh r0, [r7, 0x6] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r1, [r0] - ldr r3, _0804BBF8 - adds r2, r3, 0 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0xFF - strb r1, [r0, 0x9] -_0804BA72: - mov r4, r8 - cmp r4, 0x6 - bge _0804BA7A - b _0804B898 -_0804BA7A: - ldr r4, _0804BBF0 - add r4, sp - ldr r4, [r4] - ldr r5, _0804BBFC - add r5, sp - str r4, [r5] - cmp r4, 0x4 - bge _0804BA8C - b _0804B85C -_0804BA8C: - add r1, sp, 0x8 - movs r6, 0 - movs r0, 0x1 - strb r0, [r1, 0x16] - ldr r1, _0804BC00 - add r1, sp - strb r0, [r1] - movs r1, 0xFF - lsls r1, 1 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC04 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC08 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC0C - add r1, sp - strb r0, [r1] - ldr r1, _0804BC10 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC14 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC18 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC1C - add r1, sp - strb r0, [r1] - add r1, sp, 0x8 - strb r0, [r1, 0x14] - ldr r5, _0804BC20 - add r5, sp - ldr r5, [r5] - strb r0, [r5] - ldr r1, _0804BC24 - add r1, sp - ldr r1, [r1] - strb r0, [r1] - ldr r2, _0804BC28 - add r2, sp - ldr r2, [r2] - strb r0, [r2] - movs r3, 0xE6 - lsls r3, 5 - add r3, sp - ldr r3, [r3] - strb r0, [r3] - ldr r4, _0804BC2C - add r4, sp - ldr r4, [r4] - strb r0, [r4] - ldr r5, _0804BC30 - add r5, sp - ldr r5, [r5] - strb r0, [r5] - ldr r1, _0804BC34 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC38 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC3C - add r1, sp - strb r0, [r1] - ldr r1, _0804BC40 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC44 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC48 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC4C - add r1, sp - strb r0, [r1] - ldr r1, _0804BC50 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC54 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC58 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC5C - add r1, sp - strb r0, [r1] - ldr r1, _0804BC60 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC64 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC68 - add r1, sp - strb r0, [r1] - ldr r1, _0804BC6C - add r1, sp - strb r0, [r1] - add r0, sp, 0x8 - movs r1, 0x6 - movs r2, 0x4 - movs r4, 0xE5 - lsls r4, 5 - add r4, sp - ldr r3, [r4] - bl sub_804D5B0 - ldr r5, _0804BC70 - add r5, sp - ldr r4, _0804BC74 - add r4, sp - str r4, [sp] - str r6, [sp, 0x4] - add r0, sp, 0x8 - movs r1, 0x6 - movs r2, 0x4 - adds r3, r5, 0 - bl sub_804D8C8 - str r4, [sp] - add r0, sp, 0x8 - movs r1, 0x6 - movs r2, 0x4 - adds r3, r5, 0 - bl sub_804E590 - ldr r0, _0804BC78 - movs r5, 0 - ldrsh r3, [r0, r5] - add r0, sp, 0x8 - movs r1, 0x6 - movs r2, 0x4 - bl sub_804EBC8 - ldr r0, _0804BC7C - movs r1, 0 - ldrsh r3, [r0, r1] - add r0, sp, 0x8 - movs r1, 0x6 - movs r2, 0x4 - bl sub_804EEE4 - movs r2, 0xE5 - lsls r2, 5 - add r2, sp - ldr r2, [r2] - ldrb r3, [r2, 0x13] - add r0, sp, 0x8 - movs r1, 0x6 - movs r2, 0x4 - bl sub_804CBEC - add r0, sp, 0x8 - movs r1, 0x6 - movs r2, 0x4 - bl sub_804E03C - movs r3, 0xE7 - lsls r3, 5 - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804BBE8: .4byte 0x00001cac -_0804BBEC: .4byte 0x00001cb8 -_0804BBF0: .4byte 0x00001ccc -_0804BBF4: .4byte 0x00001cb4 -_0804BBF8: .4byte 0x0000fffc -_0804BBFC: .4byte 0x00001ca4 -_0804BC00: .4byte 0x000001fd -_0804BC04: .4byte 0x000003dd -_0804BC08: .4byte 0x000003de -_0804BC0C: .4byte 0x000005bd -_0804BC10: .4byte 0x000005be -_0804BC14: .4byte 0x0000079d -_0804BC18: .4byte 0x0000079e -_0804BC1C: .4byte 0x0000097d -_0804BC20: .4byte 0x00001cd4 -_0804BC24: .4byte 0x00001cd8 -_0804BC28: .4byte 0x00001cbc -_0804BC2C: .4byte 0x00001cc4 -_0804BC30: .4byte 0x00001cc8 -_0804BC34: .4byte 0x0000025d -_0804BC38: .4byte 0x0000025e -_0804BC3C: .4byte 0x0000043d -_0804BC40: .4byte 0x0000043e -_0804BC44: .4byte 0x0000061d -_0804BC48: .4byte 0x0000061e -_0804BC4C: .4byte 0x000007fd -_0804BC50: .4byte 0x000007fe -_0804BC54: .4byte 0x000009dd -_0804BC58: .4byte 0x0000097c -_0804BC5C: .4byte 0x0000099b -_0804BC60: .4byte 0x0000099c -_0804BC64: .4byte 0x000009bb -_0804BC68: .4byte 0x000009bc -_0804BC6C: .4byte 0x000009db -_0804BC70: .4byte 0x00001c28 -_0804BC74: .4byte 0x00001c64 -_0804BC78: .4byte gUnknown_202F1B0 -_0804BC7C: .4byte gUnknown_202F1B2 - thumb_func_end sub_804B72C - - thumb_func_start sub_804BC80 -sub_804BC80: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _0804BED0 - add sp, r4 - movs r1, 0xE5 - lsls r1, 5 - add r1, sp - str r0, [r1] - movs r4, 0x1 - movs r5, 0 - ldr r1, _0804BED4 - add r1, sp - str r5, [r1] - movs r0, 0xB - str r0, [r1, 0x4] - movs r0, 0x16 - str r0, [r1, 0x8] - movs r0, 0x21 - str r0, [r1, 0xC] - movs r0, 0x2C - str r0, [r1, 0x10] - movs r0, 0x38 - str r0, [r1, 0x14] - ldr r1, _0804BED8 - add r1, sp - str r4, [r1] - movs r0, 0x9 - str r0, [r1, 0x4] - movs r0, 0x10 - str r0, [r1, 0x8] - movs r0, 0x17 - str r0, [r1, 0xC] - movs r0, 0x1F - str r0, [r1, 0x10] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x4 - bl sub_804D084 - add r6, sp, 0x70 - add r1, sp, 0x68 - add r0, sp, 0x8 - movs r3, 0xF0 - lsls r3, 1 - movs r2, 0x5 -_0804BCE0: - strb r4, [r0, 0xA] - strb r4, [r1, 0xA] - adds r1, r3 - adds r0, r3 - subs r2, 0x1 - cmp r2, 0 - bne _0804BCE0 - movs r3, 0x5 - subs r3, 0x1 - movs r2, 0x4 - cmp r2, 0 - beq _0804BD1A - lsls r0, r3, 4 - subs r0, r3 - lsls r0, 5 - add r0, sp - adds r0, 0x8 - add r1, sp, 0x8 - mov r10, r2 -_0804BD06: - strb r4, [r1, 0xA] - strb r4, [r0, 0xA] - adds r0, 0x20 - adds r1, 0x20 - movs r2, 0x1 - negs r2, r2 - add r10, r2 - mov r2, r10 - cmp r2, 0 - bne _0804BD06 -_0804BD1A: - movs r2, 0x1 - cmp r2, r3 - bge _0804BD58 - movs r1, 0x3 -_0804BD22: - adds r4, r2, 0x1 - ldr r0, _0804BEDC - add r0, sp - str r4, [r0] - cmp r1, 0x1 - ble _0804BD4E - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 5 - add r0, sp - adds r0, 0x8 - adds r0, 0x20 - subs r2, r1, 0x1 - mov r10, r2 -_0804BD3E: - strb r5, [r0, 0xA] - adds r0, 0x20 - movs r4, 0x1 - negs r4, r4 - add r10, r4 - mov r2, r10 - cmp r2, 0 - bne _0804BD3E -_0804BD4E: - ldr r4, _0804BEDC - add r4, sp - ldr r2, [r4] - cmp r2, r3 - blt _0804BD22 -_0804BD58: - add r0, sp, 0x8 - movs r1, 0x1 - strb r1, [r0, 0x8] - movs r0, 0xF2 - lsls r0, 3 - add r0, sp - strb r1, [r0] - strb r1, [r6] - movs r0, 0xFE - lsls r0, 3 - add r0, sp - strb r1, [r0] - movs r5, 0 - ldr r6, _0804BEE0 - add r6, sp - str r5, [r6] - mov r10, r5 - cmp r5, 0x4 - blt _0804BD80 - b _0804BFAC -_0804BD80: - movs r0, 0x4 - movs r1, 0xE6 - lsls r1, 5 - add r1, sp - str r0, [r1] -_0804BD8A: - movs r2, 0 - cmp r2, 0x5 - blt _0804BD92 - b _0804BF94 -_0804BD92: - ldr r3, _0804BED4 - add r3, sp - ldr r4, _0804BEE4 - add r4, sp - str r3, [r4] - ldr r5, _0804BED8 - add r5, sp - ldr r6, _0804BEE8 - add r6, sp - str r5, [r6] - mov r1, r10 - lsls r0, r1, 2 - adds r0, r5, r0 - ldr r3, _0804BEEC - add r3, sp - str r0, [r3] -_0804BDB2: - lsls r0, r2, 4 - subs r0, r2 - add r0, r10 - lsls r0, 5 - mov r7, sp - adds r7, r0 - adds r7, 0x8 - ldrb r0, [r7, 0x8] - adds r4, r2, 0x1 - ldr r5, _0804BEDC - add r5, sp - str r4, [r5] - cmp r0, 0 - beq _0804BDD0 - b _0804BF88 -_0804BDD0: - ldrb r0, [r7, 0xA] - cmp r0, 0 - bne _0804BDD8 - b _0804BF00 -_0804BDD8: - lsls r0, r2, 2 - ldr r6, _0804BEE4 - add r6, sp - ldr r6, [r6] - adds r0, r6, r0 - ldr r1, [r0] - adds r0, r1, 0x2 - mov r9, r0 - ldr r3, _0804BEEC - add r3, sp - ldr r3, [r3] - ldr r2, [r3] - adds r4, r2, 0x2 - ldr r5, _0804BEF0 - add r5, sp - str r4, [r5] - ldr r6, _0804BEDC - add r6, sp - ldr r6, [r6] - lsls r0, r6, 2 - ldr r3, _0804BEE4 - add r3, sp - ldr r3, [r3] - adds r0, r3, r0 - ldr r4, [r0] - subs r4, r1 - subs r4, 0x3 - ldr r5, _0804BEE8 - add r5, sp - ldr r5, [r5] - movs r6, 0xE6 - lsls r6, 5 - add r6, sp - ldr r6, [r6] - adds r0, r5, r6 - ldr r5, [r0] - subs r5, r2 - subs r5, 0x3 - movs r0, 0x5 - adds r1, r4, 0 - bl sub_808411C - mov r8, r0 - movs r0, 0x4 - adds r1, r5, 0 - bl sub_808411C - adds r6, r0, 0 - mov r0, r8 - subs r4, r0 - adds r0, r4, 0 - bl sub_8084100 - adds r4, r0, 0 - add r4, r9 - subs r5, r6 - adds r0, r5, 0 - bl sub_8084100 - ldr r2, _0804BEF0 - add r2, sp - ldr r1, [r2] - adds r1, r0 - mov r9, r1 - mov r5, r8 - adds r3, r4, r5 - add r6, r9 - strh r4, [r7] - strh r3, [r7, 0x4] - strh r1, [r7, 0x2] - strh r6, [r7, 0x6] - ldr r1, _0804BEE0 - add r1, sp - ldr r0, [r1] - adds r0, 0x1 - ldr r1, _0804BEF4 - add r1, sp - str r0, [r1] - cmp r4, r3 - bge _0804BEC0 -_0804BE78: - mov r5, r9 - adds r7, r4, 0x1 - cmp r5, r6 - bge _0804BEBA - ldr r2, _0804BEF8 - mov r8, r2 -_0804BE84: - adds r0, r4, 0 - adds r1, r5, 0 - ldr r2, _0804BEFC - add r2, sp - str r3, [r2] - bl sub_8049590 - ldrh r1, [r0] - mov r2, r8 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8049590 - ldr r1, _0804BEE0 - add r1, sp - ldrb r1, [r1] - strb r1, [r0, 0x9] - adds r5, 0x1 - ldr r2, _0804BEFC - add r2, sp - ldr r3, [r2] - cmp r5, r6 - blt _0804BE84 -_0804BEBA: - adds r4, r7, 0 - cmp r4, r3 - blt _0804BE78 -_0804BEC0: - ldr r3, _0804BEF4 - add r3, sp - ldr r3, [r3] - ldr r4, _0804BEE0 - add r4, sp - str r3, [r4] - b _0804BF88 - .align 2, 0 -_0804BED0: .4byte 0xffffe338 -_0804BED4: .4byte 0x00001c28 -_0804BED8: .4byte 0x00001c64 -_0804BEDC: .4byte 0x00001cb8 -_0804BEE0: .4byte 0x00001ca4 -_0804BEE4: .4byte 0x00001ca8 -_0804BEE8: .4byte 0x00001cb0 -_0804BEEC: .4byte 0x00001cb4 -_0804BEF0: .4byte 0x00001cac -_0804BEF4: .4byte 0x00001cbc -_0804BEF8: .4byte 0x0000fffc -_0804BEFC: .4byte 0x00001cc4 -_0804BF00: - lsls r0, r2, 2 - ldr r4, _0804C080 - add r4, sp - ldr r4, [r4] - adds r0, r4, r0 - ldr r2, [r0] - adds r0, r2, 0x1 - ldr r5, _0804C084 - add r5, sp - ldr r5, [r5] - ldr r3, [r5] - adds r6, r3, 0x1 - mov r8, r6 - ldr r4, _0804C088 - add r4, sp - ldr r4, [r4] - lsls r1, r4, 2 - ldr r5, _0804C080 - add r5, sp - ldr r5, [r5] - adds r1, r5, r1 - ldr r1, [r1] - subs r1, r2 - subs r1, 0x3 - ldr r6, _0804C08C - add r6, sp - ldr r6, [r6] - movs r4, 0xE6 - lsls r4, 5 - add r4, sp - ldr r4, [r4] - adds r2, r6, r4 - ldr r4, [r2] - subs r4, r3 - subs r4, 0x3 - adds r1, r0, r1 - bl sub_808411C - adds r5, r0, 0 - add r4, r8 - mov r0, r8 - adds r1, r4, 0 - bl sub_808411C - adds r4, r0, 0 - strh r5, [r7] - adds r0, r5, 0x1 - strh r0, [r7, 0x4] - strh r4, [r7, 0x2] - adds r0, r4, 0x1 - strh r0, [r7, 0x6] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r1, [r0] - ldr r6, _0804C090 - adds r2, r6, 0 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0xFF - strb r1, [r0, 0x9] -_0804BF88: - ldr r0, _0804C088 - add r0, sp - ldr r2, [r0] - cmp r2, 0x5 - bge _0804BF94 - b _0804BDB2 -_0804BF94: - movs r2, 0xE6 - lsls r2, 5 - add r2, sp - ldr r1, [r2] - adds r1, 0x4 - str r1, [r2] - movs r3, 0x1 - add r10, r3 - mov r4, r10 - cmp r4, 0x4 - bge _0804BFAC - b _0804BD8A -_0804BFAC: - movs r2, 0x1 - movs r1, 0x1 - movs r3, 0xF - add r4, sp, 0x1C -_0804BFB4: - movs r5, 0 - mov r10, r5 - lsls r0, r3, 5 - adds r0, r4 -_0804BFBC: - strb r1, [r0] - strb r1, [r0, 0x1F] - adds r0, 0x20 - movs r6, 0x1 - add r10, r6 - mov r5, r10 - cmp r5, 0x2 - ble _0804BFBC - movs r0, 0xF0 - lsls r0, 1 - adds r3, 0xF - adds r2, 0x1 - cmp r2, 0x3 - ble _0804BFB4 - mov r10, r6 - movs r5, 0x1 - adds r4, r0, 0 - mov r6, sp - adds r6, r4 - adds r6, 0x8 -_0804BFE4: - movs r2, 0 - mov r1, r10 - lsls r0, r1, 5 - mov r3, r10 - adds r3, 0x1 - adds r1, r0, r6 - add r0, sp - adds r0, 0x8 -_0804BFF4: - strb r5, [r0, 0x16] - strb r5, [r1, 0x15] - adds r1, r4 - adds r0, r4 - adds r2, 0x1 - cmp r2, 0x3 - ble _0804BFF4 - mov r10, r3 - cmp r3, 0x2 - ble _0804BFE4 - ldr r5, _0804C094 - add r5, sp - ldr r4, _0804C098 - add r4, sp - str r4, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x4 - adds r3, r5, 0 - bl sub_804D8C8 - str r4, [sp] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x4 - adds r3, r5, 0 - bl sub_804E590 - ldr r0, _0804C09C - movs r2, 0 - ldrsh r3, [r0, r2] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x4 - bl sub_804EBC8 - ldr r0, _0804C0A0 - movs r4, 0 - ldrsh r3, [r0, r4] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x4 - bl sub_804EEE4 - movs r5, 0xE5 - lsls r5, 5 - add r5, sp - ldr r5, [r5] - ldrb r3, [r5, 0x13] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x4 - bl sub_804CBEC - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x4 - bl sub_804E03C - ldr r3, _0804C0A4 - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804C080: .4byte 0x00001ca8 -_0804C084: .4byte 0x00001cb4 -_0804C088: .4byte 0x00001cb8 -_0804C08C: .4byte 0x00001cb0 -_0804C090: .4byte 0x0000fffc -_0804C094: .4byte 0x00001c28 -_0804C098: .4byte 0x00001c64 -_0804C09C: .4byte gUnknown_202F1B0 -_0804C0A0: .4byte gUnknown_202F1B2 -_0804C0A4: .4byte 0x00001cc8 - thumb_func_end sub_804BC80 - - thumb_func_start sub_804C0A8 -sub_804C0A8: - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, _0804C17C - add sp, r4 - adds r6, r0, 0 - ldr r4, _0804C180 - add r4, sp - movs r0, 0 - str r0, [r4] - movs r0, 0xB - str r0, [r4, 0x4] - movs r0, 0x16 - str r0, [r4, 0x8] - movs r0, 0x21 - str r0, [r4, 0xC] - movs r0, 0x2C - str r0, [r4, 0x10] - movs r0, 0x38 - str r0, [r4, 0x14] - ldr r5, _0804C184 - add r5, sp - movs r0, 0x4 - str r0, [r5] - movs r0, 0xF - str r0, [r5, 0x4] - movs r0, 0x1 - mov r8, r0 - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x1 - bl sub_804D084 - movs r3, 0x1 - ldrsb r3, [r6, r3] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x1 - bl sub_804D154 - str r5, [sp] - ldrb r0, [r6, 0xD] - str r0, [sp, 0x4] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x1 - adds r3, r4, 0 - bl sub_804D2D0 - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x1 - adds r3, r6, 0 - bl sub_804D5B0 - str r5, [sp] - mov r1, r8 - str r1, [sp, 0x4] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x1 - adds r3, r4, 0 - bl sub_804D8C8 - str r5, [sp] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x1 - adds r3, r4, 0 - bl sub_804E590 - ldr r0, _0804C188 - movs r1, 0 - ldrsh r3, [r0, r1] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x1 - bl sub_804EBC8 - ldr r0, _0804C18C - movs r1, 0 - ldrsh r3, [r0, r1] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x1 - bl sub_804EEE4 - ldrb r3, [r6, 0x13] - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x1 - bl sub_804CBEC - add r0, sp, 0x8 - movs r1, 0x5 - movs r2, 0x1 - bl sub_804E03C - movs r3, 0xE5 - lsls r3, 5 - add sp, r3 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804C17C: .4byte 0xffffe360 -_0804C180: .4byte 0x00001c28 -_0804C184: .4byte 0x00001c64 -_0804C188: .4byte gUnknown_202F1B0 -_0804C18C: .4byte gUnknown_202F1B2 - thumb_func_end sub_804C0A8 - - thumb_func_start sub_804C190 -sub_804C190: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _0804C2CC - add sp, r4 - mov r10, r0 - ldr r1, _0804C2D0 - add r1, sp - movs r2, 0xB - str r2, [r1] - movs r0, 0x16 - str r0, [r1, 0x4] - movs r0, 0x21 - str r0, [r1, 0x8] - movs r0, 0x2C - str r0, [r1, 0xC] - ldr r1, _0804C2D4 - add r1, sp - movs r0, 0x2 - str r0, [r1] - str r2, [r1, 0x4] - movs r0, 0x14 - str r0, [r1, 0x8] - movs r0, 0x1E - str r0, [r1, 0xC] - movs r0, 0x3 - mov r8, r0 - movs r7, 0x3 - add r0, sp, 0x8 - movs r1, 0x3 - movs r2, 0x3 - bl sub_804D084 - movs r1, 0 - add r5, sp, 0x50 - movs r0, 0x3E - add r0, sp - mov r9, r0 - mov r0, r10 - ldrb r0, [r0, 0xD] - mov r12, r0 -_0804C1E6: - adds r3, r1, 0x1 - cmp r7, 0 - beq _0804C204 - lsls r0, r1, 4 - subs r0, r1 - movs r2, 0x1 - lsls r0, 5 - add r0, sp - adds r0, 0x8 - adds r1, r7, 0 -_0804C1FA: - strb r2, [r0, 0xA] - adds r0, 0x20 - subs r1, 0x1 - cmp r1, 0 - bne _0804C1FA -_0804C204: - adds r1, r3, 0 - cmp r1, r8 - blt _0804C1E6 - add r0, sp, 0x8 - movs r4, 0x1 - strb r4, [r0, 0x8] - add r0, sp, 0x3D0 - strb r4, [r0] - strb r4, [r5] - movs r0, 0x82 - lsls r0, 3 - add r0, sp - strb r4, [r0] - ldr r6, _0804C2D0 - add r6, sp - ldr r5, _0804C2D4 - add r5, sp - str r5, [sp] - mov r1, r12 - str r1, [sp, 0x4] - add r0, sp, 0x8 - mov r1, r8 - adds r2, r7, 0 - adds r3, r6, 0 - bl sub_804D2D0 - mov r0, r9 - strb r4, [r0] - ldr r0, _0804C2D8 - add r0, sp - strb r4, [r0] - ldr r0, _0804C2DC - add r0, sp - strb r4, [r0] - ldr r0, _0804C2E0 - add r0, sp - strb r4, [r0] - add r0, sp, 0x1FC - strb r4, [r0] - ldr r0, _0804C2E4 - add r0, sp - strb r4, [r0] - add r0, sp, 0x21C - strb r4, [r0] - ldr r0, _0804C2E8 - add r0, sp - strb r4, [r0] - str r5, [sp] - str r4, [sp, 0x4] - add r0, sp, 0x8 - mov r1, r8 - adds r2, r7, 0 - adds r3, r6, 0 - bl sub_804D8C8 - str r5, [sp] - add r0, sp, 0x8 - mov r1, r8 - adds r2, r7, 0 - adds r3, r6, 0 - bl sub_804E590 - ldr r0, _0804C2EC - movs r1, 0 - ldrsh r3, [r0, r1] - add r0, sp, 0x8 - mov r1, r8 - adds r2, r7, 0 - bl sub_804EBC8 - ldr r0, _0804C2F0 - movs r1, 0 - ldrsh r3, [r0, r1] - add r0, sp, 0x8 - mov r1, r8 - adds r2, r7, 0 - bl sub_804EEE4 - mov r0, r10 - ldrb r3, [r0, 0x13] - add r0, sp, 0x8 - mov r1, r8 - adds r2, r7, 0 - bl sub_804CBEC - add r0, sp, 0x8 - mov r1, r8 - adds r2, r7, 0 - bl sub_804E03C - movs r3, 0xE5 - lsls r3, 5 - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804C2CC: .4byte 0xffffe360 -_0804C2D0: .4byte 0x00001c28 -_0804C2D4: .4byte 0x00001c64 -_0804C2D8: .4byte 0x0000021d -_0804C2DC: .4byte 0x0000021e -_0804C2E0: .4byte 0x000003fd -_0804C2E4: .4byte 0x0000021b -_0804C2E8: .4byte 0x0000023b -_0804C2EC: .4byte gUnknown_202F1B0 -_0804C2F0: .4byte gUnknown_202F1B2 - thumb_func_end sub_804C190 - - thumb_func_start sub_804C2F4 -sub_804C2F4: - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, _0804C420 - add sp, r4 - mov r8, r0 - ldr r1, _0804C424 - add r1, sp - movs r0, 0x5 - str r0, [r1] - movs r0, 0xF - str r0, [r1, 0x4] - movs r0, 0x23 - str r0, [r1, 0x8] - movs r0, 0x32 - str r0, [r1, 0xC] - ldr r1, _0804C428 - add r1, sp - movs r0, 0x2 - str r0, [r1] - movs r0, 0xB - str r0, [r1, 0x4] - movs r0, 0x14 - str r0, [r1, 0x8] - movs r0, 0x1E - str r0, [r1, 0xC] - movs r7, 0x3 - movs r6, 0x3 - add r0, sp, 0x8 - movs r1, 0x3 - movs r2, 0x3 - bl sub_804D084 - movs r1, 0 - mov r0, r8 - ldrb r4, [r0, 0xD] -_0804C33C: - adds r3, r1, 0x1 - cmp r6, 0 - beq _0804C35A - lsls r0, r1, 4 - subs r0, r1 - movs r2, 0x1 - lsls r0, 5 - add r0, sp - adds r0, 0x8 - adds r1, r6, 0 -_0804C350: - strb r2, [r0, 0xA] - adds r0, 0x20 - subs r1, 0x1 - cmp r1, 0 - bne _0804C350 -_0804C35A: - adds r1, r3, 0 - cmp r1, r7 - blt _0804C33C - ldr r3, _0804C424 - add r3, sp - ldr r0, _0804C428 - add r0, sp - str r0, [sp] - str r4, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804D2D0 - movs r4, 0x1 - ldr r3, _0804C42C - add r3, sp - ldr r0, _0804C430 - add r0, sp - add r2, sp, 0x8 - movs r1, 0x2 -_0804C384: - strb r4, [r2, 0x16] - strb r4, [r0] - strb r4, [r0, 0x1] - strb r4, [r3] - adds r3, 0x20 - adds r0, 0x20 - adds r2, 0x20 - subs r1, 0x1 - cmp r1, 0 - bge _0804C384 - ldr r5, _0804C424 - add r5, sp - ldr r4, _0804C428 - add r4, sp - str r4, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_804D8C8 - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - add r3, sp, 0x8 - bl sub_804C43C - movs r0, 0x1 - movs r1, 0 - movs r2, 0x2 - add r3, sp, 0x8 - bl sub_804C43C - str r4, [sp] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_804E590 - ldr r0, _0804C434 - movs r1, 0 - ldrsh r3, [r0, r1] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804EBC8 - ldr r0, _0804C438 - movs r1, 0 - ldrsh r3, [r0, r1] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804EEE4 - mov r0, r8 - ldrb r3, [r0, 0x13] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804CBEC - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804E03C - movs r3, 0xE5 - lsls r3, 5 - add sp, r3 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804C420: .4byte 0xffffe360 -_0804C424: .4byte 0x00001c28 -_0804C428: .4byte 0x00001c64 -_0804C42C: .4byte 0x000003dd -_0804C430: .4byte 0x000001fd -_0804C434: .4byte gUnknown_202F1B0 -_0804C438: .4byte gUnknown_202F1B2 - thumb_func_end sub_804C2F4 - - thumb_func_start sub_804C43C -sub_804C43C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - str r0, [sp] - str r3, [sp, 0x4] - lsls r7, r1, 5 - lsls r0, 4 - str r0, [sp, 0xC] - ldr r3, [sp] - subs r0, r3 - lsls r0, 5 - ldr r4, [sp, 0x4] - adds r0, r4 - adds r3, r7, r0 - adds r6, r1, r2 - lsls r1, r6, 5 - adds r2, r1, r0 - movs r5, 0 - ldrsh r1, [r2, r5] - adds r4, r1, 0 - ldrh r0, [r3] - mov r8, r0 - movs r5, 0 - ldrsh r0, [r3, r5] - cmp r1, r0 - ble _0804C478 - mov r4, r8 -_0804C478: - lsls r0, r4, 16 - asrs r0, 16 - str r0, [sp, 0x8] - movs r1, 0x2 - ldrsh r0, [r3, r1] - mov r10, r0 - movs r4, 0x4 - ldrsh r1, [r2, r4] - adds r4, r1, 0 - ldrh r5, [r3, 0x4] - mov r8, r5 - movs r5, 0x4 - ldrsh r0, [r3, r5] - cmp r1, r0 - bge _0804C498 - mov r4, r8 -_0804C498: - lsls r0, r4, 16 - asrs r0, 16 - str r0, [sp, 0x10] - movs r1, 0x6 - ldrsh r0, [r2, r1] - mov r8, r0 - movs r2, 0 - ldrsh r0, [r3, r2] - mov r1, r10 - bl sub_804954C - ldrb r0, [r0, 0x9] - mov r9, r0 - ldr r5, [sp, 0x8] - str r7, [sp, 0x1C] - ldr r3, [sp, 0xC] - str r3, [sp, 0x18] - str r6, [sp, 0x14] - ldr r4, [sp, 0x10] - cmp r5, r4 - bge _0804C4F2 -_0804C4C2: - mov r4, r10 - adds r6, r5, 0x1 - cmp r10, r8 - bge _0804C4EA - ldr r0, _0804C538 - adds r7, r0, 0 -_0804C4CE: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r1, [r0] - ands r1, r7 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - mov r1, r9 - strb r1, [r0, 0x9] - adds r4, 0x1 - cmp r4, r8 - blt _0804C4CE -_0804C4EA: - adds r5, r6, 0 - ldr r2, [sp, 0x10] - cmp r5, r2 - blt _0804C4C2 -_0804C4F2: - ldr r3, [sp, 0x18] - ldr r4, [sp] - subs r1, r3, r4 - lsls r1, 5 - ldr r5, [sp, 0x4] - adds r1, r5 - ldr r0, [sp, 0x1C] - adds r2, r0, r1 - movs r3, 0 - mov r4, sp - ldrh r4, [r4, 0x8] - strh r4, [r2] - mov r5, sp - ldrh r5, [r5, 0x10] - strh r5, [r2, 0x4] - mov r0, r10 - strh r0, [r2, 0x2] - mov r4, r8 - strh r4, [r2, 0x6] - ldr r5, [sp, 0x14] - lsls r0, r5, 5 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0, 0x12] - strb r1, [r2, 0x12] - strb r3, [r0, 0xB] - strb r1, [r0, 0x11] - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804C538: .4byte 0x0000fffc - thumb_func_end sub_804C43C - - thumb_func_start sub_804C53C -sub_804C53C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _0804C6F8 - add sp, r4 - mov r10, r2 - adds r7, r0, 0 - adds r6, r1, 0 - ldr r0, _0804C6FC - add r0, sp - ldr r1, _0804C700 - add r1, sp - adds r2, r7, 0 - adds r3, r6, 0 - bl sub_804D024 - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804D084 - movs r2, 0 - cmp r2, r7 - bge _0804C594 -_0804C570: - adds r3, r2, 0x1 - cmp r6, 0 - ble _0804C58E - lsls r0, r2, 4 - subs r0, r2 - movs r2, 0x1 - lsls r0, 5 - add r0, sp - adds r0, 0x8 - adds r1, r6, 0 -_0804C584: - strb r2, [r0, 0xA] - adds r0, 0x20 - subs r1, 0x1 - cmp r1, 0 - bne _0804C584 -_0804C58E: - adds r2, r3, 0 - cmp r2, r7 - blt _0804C570 -_0804C594: - movs r2, 0x1 - subs r0, r7, 0x1 - mov r8, r0 - subs r1, r6, 0x1 - mov r9, r1 - mov r0, r10 - ldrb r0, [r0, 0xD] - mov r12, r0 - cmp r2, r8 - bge _0804C5D2 - mov r4, r9 - mov r5, r8 -_0804C5AC: - adds r3, r2, 0x1 - cmp r4, 0x1 - ble _0804C5CC - lsls r0, r2, 4 - subs r0, r2 - movs r2, 0x1 - lsls r0, 5 - add r0, sp - adds r0, 0x8 - adds r0, 0x20 - subs r1, r4, 0x1 -_0804C5C2: - strb r2, [r0, 0x8] - adds r0, 0x20 - subs r1, 0x1 - cmp r1, 0 - bne _0804C5C2 -_0804C5CC: - adds r2, r3, 0 - cmp r2, r5 - blt _0804C5AC -_0804C5D2: - ldr r3, _0804C6FC - add r3, sp - ldr r0, _0804C700 - add r0, sp - str r0, [sp] - mov r1, r12 - str r1, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804D2D0 - movs r2, 0 - cmp r2, r8 - bge _0804C636 - movs r4, 0x1 - mov r0, r9 - lsls r5, r0, 5 - subs r1, r7, 0x2 - mov r12, r1 -_0804C5FA: - cmp r2, 0 - beq _0804C614 - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 5 - mov r1, sp - adds r1, r0 - adds r1, 0x8 - strb r4, [r1, 0x16] - adds r0, r5, r0 - add r0, sp - adds r0, 0x8 - strb r4, [r0, 0x16] -_0804C614: - adds r3, r2, 0x1 - cmp r2, r12 - bge _0804C630 - lsls r0, r3, 4 - subs r0, r3 - lsls r0, 5 - mov r1, sp - adds r1, r0 - adds r1, 0x8 - strb r4, [r1, 0x15] - adds r0, r5, r0 - add r0, sp - adds r0, 0x8 - strb r4, [r0, 0x15] -_0804C630: - adds r2, r3, 0 - cmp r2, r8 - blt _0804C5FA -_0804C636: - movs r1, 0 - cmp r1, r9 - bge _0804C66A - movs r3, 0x1 - mov r2, r8 - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 5 - add r0, sp - adds r0, 0x8 - add r2, sp, 0x8 - subs r5, r6, 0x2 - mov r4, r9 -_0804C650: - cmp r1, 0 - beq _0804C658 - strb r3, [r2, 0x13] - strb r3, [r0, 0x13] -_0804C658: - cmp r1, r5 - bge _0804C660 - strb r3, [r2, 0x14] - strb r3, [r0, 0x14] -_0804C660: - adds r0, 0x20 - adds r2, 0x20 - adds r1, 0x1 - cmp r1, r4 - blt _0804C650 -_0804C66A: - ldr r5, _0804C6FC - add r5, sp - ldr r4, _0804C700 - add r4, sp - str r4, [sp] - movs r0, 0 - str r0, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_804D8C8 - str r4, [sp] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_804E590 - mov r0, r10 - ldrb r3, [r0, 0x9] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804F0D0 - ldr r0, _0804C704 - movs r1, 0 - ldrsh r3, [r0, r1] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804EBC8 - ldr r0, _0804C708 - movs r2, 0 - ldrsh r3, [r0, r2] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804EEE4 - mov r0, r10 - ldrb r3, [r0, 0x13] - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804CBEC - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804E03C - add r0, sp, 0x8 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_804D534 - movs r3, 0xE5 - lsls r3, 5 - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804C6F8: .4byte 0xffffe360 -_0804C6FC: .4byte 0x00001c28 -_0804C700: .4byte 0x00001c64 -_0804C704: .4byte gUnknown_202F1B0 -_0804C708: .4byte gUnknown_202F1B2 - thumb_func_end sub_804C53C - - thumb_func_start sub_804C70C -sub_804C70C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r7, r0, 0 - mov r8, r1 - ldr r0, _0804C73C - ldr r0, [r0] - ldr r1, _0804C740 - adds r0, r1 - ldr r0, [r0] - ldr r1, [r0, 0x4] - lsls r0, r7, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r5, [r0] - ldrb r6, [r0, 0x1] - cmp r5, 0 - beq _0804C736 - cmp r6, 0 - bne _0804C744 -_0804C736: - bl sub_804C918 - b _0804C782 - .align 2, 0 -_0804C73C: .4byte gUnknown_203B418 -_0804C740: .4byte 0x00013568 -_0804C744: - cmp r7, 0x31 - bgt _0804C752 - adds r0, r7, 0 - bl sub_8051288 - movs r0, 0x1 - b _0804C784 -_0804C752: - adds r1, r5, 0x4 - movs r0, 0x38 - bl __divsi3 - adds r4, r0, 0 - cmp r4, 0x1 - bgt _0804C762 - movs r4, 0x1 -_0804C762: - adds r1, r6, 0x4 - movs r0, 0x20 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0x1 - bgt _0804C772 - movs r1, 0x1 -_0804C772: - str r7, [sp] - mov r0, r8 - str r0, [sp, 0x4] - adds r0, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_804C790 -_0804C782: - movs r0, 0 -_0804C784: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_804C70C - - thumb_func_start sub_804C790 -sub_804C790: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _0804C81C - add sp, r4 - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, _0804C820 - add r0, sp - str r2, [r0] - ldr r1, _0804C824 - add r1, sp - str r3, [r1] - movs r2, 0 - mov r10, r2 - mov r8, r2 - ldr r0, _0804C828 - add r0, sp - ldr r1, _0804C82C - add r1, sp - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_804D024 - add r0, sp, 0x10 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_804D084 - ldr r0, _0804C830 - add r0, sp - ldr r0, [r0] - movs r3, 0x1 - ldrsb r3, [r0, r3] - add r0, sp, 0x10 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_804D154 - mov r6, r8 - cmp r8, r5 - bge _0804C818 -_0804C7E8: - movs r1, 0 - mov r8, r1 - adds r2, r6, 0x1 - cmp r8, r4 - bge _0804C812 - lsls r0, r6, 4 - subs r0, r6 - movs r1, 0x1 - lsls r0, 5 - add r0, sp - adds r0, 0x10 - mov r8, r4 -_0804C800: - strb r1, [r0, 0x1B] - adds r0, 0x20 - movs r3, 0x1 - negs r3, r3 - add r8, r3 - mov r3, r8 - cmp r3, 0 - bne _0804C800 - mov r8, r4 -_0804C812: - adds r6, r2, 0 - cmp r6, r5 - blt _0804C7E8 -_0804C818: - movs r7, 0 - b _0804C836 - .align 2, 0 -_0804C81C: .4byte 0xffffe350 -_0804C820: .4byte 0x00001ca8 -_0804C824: .4byte 0x00001cac -_0804C828: .4byte 0x00001c30 -_0804C82C: .4byte 0x00001c6c -_0804C830: .4byte 0x00001cd4 -_0804C834: - adds r7, 0x1 -_0804C836: - cmp r7, 0x3F - bgt _0804C864 - adds r0, r5, 0 - bl sub_8084100 - adds r6, r0, 0 - adds r0, r4, 0 - bl sub_8084100 - mov r8, r0 - mov r0, r8 - muls r0, r5 - adds r0, r6 - mov r10, r0 - lsls r0, r6, 4 - subs r0, r6 - add r0, r8 - lsls r0, 5 - add r0, sp - adds r0, 0x10 - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _0804C834 -_0804C864: - ldr r0, _0804C8FC - add r0, sp - mov r9, r0 - ldr r7, _0804C900 - add r7, sp - str r7, [sp] - mov r1, r10 - str r1, [sp, 0x4] - ldr r2, _0804C904 - add r2, sp - ldr r2, [r2] - str r2, [sp, 0x8] - ldr r3, _0804C908 - add r3, sp - ldr r3, [r3] - str r3, [sp, 0xC] - add r0, sp, 0x10 - adds r1, r5, 0 - adds r2, r4, 0 - mov r3, r9 - bl sub_8050F90 - cmp r5, 0x1 - bne _0804C898 - cmp r4, 0x1 - beq _0804C8D0 -_0804C898: - mov r0, r8 - str r0, [sp] - ldr r1, _0804C90C - add r1, sp - ldr r1, [r1] - str r1, [sp, 0x4] - add r0, sp, 0x10 - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl sub_804D5F0 - str r7, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - add r0, sp, 0x10 - adds r1, r5, 0 - adds r2, r4, 0 - mov r3, r9 - bl sub_804D8C8 - str r7, [sp] - add r0, sp, 0x10 - adds r1, r5, 0 - adds r2, r4, 0 - mov r3, r9 - bl sub_804E590 -_0804C8D0: - lsls r0, r6, 4 - subs r0, r6 - lsls r0, 5 - add r0, sp - adds r0, 0x10 - mov r2, r8 - lsls r1, r2, 5 - adds r0, r1 - ldr r3, _0804C910 - add r3, sp - ldr r1, [r3] - bl sub_8051438 - ldr r3, _0804C914 - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804C8FC: .4byte 0x00001c30 -_0804C900: .4byte 0x00001c6c -_0804C904: .4byte 0x00001ca8 -_0804C908: .4byte 0x00001cac -_0804C90C: .4byte 0x00001cd4 -_0804C910: .4byte 0x00001cd0 -_0804C914: .4byte 0x00001cb0 - thumb_func_end sub_804C790 - - thumb_func_start sub_804C918 -sub_804C918: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, _0804C9C4 - add sp, r4 - mov r0, sp - movs r1, 0x1 - movs r2, 0x1 - bl sub_804D084 - mov r0, sp - movs r3, 0 - movs r2, 0x2 - strh r2, [r0] - mov r1, sp - movs r0, 0x36 - strh r0, [r1, 0x4] - mov r0, sp - strh r2, [r0, 0x2] - movs r0, 0x1E - strh r0, [r1, 0x6] - mov r0, sp - movs r1, 0x1 - strb r1, [r0, 0xA] - strb r1, [r0, 0xB] - strb r3, [r0, 0x8] - movs r1, 0 - ldrsh r5, [r0, r1] - movs r2, 0x4 - ldrsh r0, [r0, r2] - cmp r5, r0 - bge _0804C9A6 - mov r6, sp -_0804C95C: - movs r0, 0x2 - ldrsh r4, [r6, r0] - movs r1, 0x6 - ldrsh r0, [r6, r1] - adds r7, r5, 0x1 - cmp r4, r0 - bge _0804C99C - movs r2, 0 - mov r9, r2 - ldr r0, _0804C9C8 - mov r8, r0 -_0804C972: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r1, [r0] - mov r2, r8 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - mov r1, r9 - strb r1, [r0, 0x9] - adds r4, 0x1 - movs r2, 0x6 - ldrsh r0, [r6, r2] - cmp r4, r0 - blt _0804C972 -_0804C99C: - adds r5, r7, 0 - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r5, r0 - blt _0804C95C -_0804C9A6: - ldr r3, _0804C9CC - mov r0, sp - movs r1, 0x1 - movs r2, 0x1 - bl sub_804EEE4 - movs r3, 0xE1 - lsls r3, 5 - add sp, r3 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804C9C4: .4byte 0xffffe3e0 -_0804C9C8: .4byte 0x0000fffc -_0804C9CC: .4byte 0x000003e7 - thumb_func_end sub_804C918 - - thumb_func_start sub_804C9D0 -sub_804C9D0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _0804CBB4 - add sp, r4 - movs r0, 0 - movs r1, 0xE5 - lsls r1, 5 - add r1, sp - str r0, [r1] - ldr r1, _0804CBB8 - add r1, sp - movs r2, 0x2 - str r2, [r1] - movs r0, 0x1C - str r0, [r1, 0x4] - movs r0, 0x36 - str r0, [r1, 0x8] - ldr r1, _0804CBBC - add r1, sp - str r2, [r1] - movs r0, 0x1E - str r0, [r1, 0x4] - add r0, sp, 0x8 - movs r1, 0x2 - movs r2, 0x1 - bl sub_804D084 - movs r0, 0 - ldr r2, _0804CBB8 - add r2, sp - ldr r3, _0804CBC0 - add r3, sp - str r2, [r3] - ldr r4, _0804CBBC - add r4, sp - ldr r1, _0804CBC4 - add r1, sp - str r4, [r1] -_0804CA22: - movs r7, 0 - lsls r2, r0, 2 - ldr r3, _0804CBC8 - add r3, sp - str r2, [r3] - adds r4, r0, 0x1 - ldr r1, _0804CBCC - add r1, sp - str r4, [r1] - lsls r0, 5 - ldr r2, _0804CBD0 - add r2, sp - str r0, [r2] -_0804CA3C: - lsls r0, r7, 2 - ldr r3, _0804CBC0 - add r3, sp - ldr r3, [r3] - adds r0, r3, r0 - ldr r1, [r0] - adds r4, r1, 0x1 - mov r10, r4 - ldr r2, _0804CBC4 - add r2, sp - ldr r2, [r2] - ldr r3, _0804CBC8 - add r3, sp - ldr r3, [r3] - adds r0, r2, r3 - ldr r2, [r0] - adds r4, r2, 0x1 - ldr r0, _0804CBD4 - add r0, sp - str r4, [r0] - adds r3, r7, 0x1 - mov r9, r3 - lsls r0, r3, 2 - ldr r4, _0804CBC0 - add r4, sp - ldr r4, [r4] - adds r0, r4, r0 - ldr r4, [r0] - subs r4, r1 - subs r4, 0x3 - ldr r1, _0804CBCC - add r1, sp - ldr r1, [r1] - lsls r0, r1, 2 - ldr r3, _0804CBC4 - add r3, sp - ldr r3, [r3] - adds r0, r3, r0 - ldr r5, [r0] - subs r5, r2 - subs r5, 0x3 - movs r0, 0xA - adds r1, r4, 0 - bl sub_808411C - mov r8, r0 - movs r0, 0x10 - adds r1, r5, 0 - bl sub_808411C - adds r6, r0, 0 - mov r0, r8 - subs r4, r0 - adds r0, r4, 0 - bl sub_8084100 - adds r4, r0, 0 - add r4, r10 - subs r5, r6 - adds r0, r5, 0 - bl sub_8084100 - ldr r2, _0804CBD4 - add r2, sp - ldr r1, [r2] - adds r1, r0 - mov r10, r1 - mov r0, r8 - adds r3, r4, r0 - add r6, r10 - lsls r0, r7, 4 - subs r0, r7 - lsls r0, 5 - ldr r1, _0804CBD0 - add r1, sp - ldr r1, [r1] - adds r0, r1, r0 - add r0, sp - adds r0, 0x8 - movs r1, 0x1 - strb r1, [r0, 0xA] - strh r4, [r0] - strh r3, [r0, 0x4] - mov r2, r10 - strh r2, [r0, 0x2] - strh r6, [r0, 0x6] - mov r0, r9 - ldr r1, _0804CBD8 - add r1, sp - str r0, [r1] - movs r0, 0xE5 - lsls r0, 5 - add r0, sp - ldr r2, [r0] - adds r2, 0x1 - mov r9, r2 - cmp r4, r3 - bge _0804CB4E -_0804CB00: - mov r5, r10 - adds r7, r4, 0x1 - cmp r5, r6 - bge _0804CB48 - ldr r1, _0804CBDC - mov r8, r1 -_0804CB0C: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0xE6 - lsls r2, 5 - add r2, sp - str r3, [r2] - bl sub_8049590 - ldrh r1, [r0] - mov r2, r8 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8049590 - movs r1, 0xE5 - lsls r1, 5 - add r1, sp - ldrb r1, [r1] - strb r1, [r0, 0x9] - adds r5, 0x1 - movs r2, 0xE6 - lsls r2, 5 - add r2, sp - ldr r3, [r2] - cmp r5, r6 - blt _0804CB0C -_0804CB48: - adds r4, r7, 0 - cmp r4, r3 - blt _0804CB00 -_0804CB4E: - mov r3, r9 - movs r4, 0xE5 - lsls r4, 5 - add r4, sp - str r3, [r4] - ldr r0, _0804CBD8 - add r0, sp - ldr r7, [r0] - cmp r7, 0x1 - bgt _0804CB64 - b _0804CA3C -_0804CB64: - ldr r1, _0804CBCC - add r1, sp - ldr r0, [r1] - cmp r0, 0 - bgt _0804CB70 - b _0804CA22 -_0804CB70: - add r0, sp, 0x8 - movs r2, 0 - movs r1, 0x1 - strb r1, [r0, 0x16] - ldr r0, _0804CBE0 - add r0, sp - strb r1, [r0] - ldr r3, _0804CBB8 - add r3, sp - ldr r0, _0804CBBC - add r0, sp - str r0, [sp] - str r2, [sp, 0x4] - add r0, sp, 0x8 - movs r1, 0x2 - movs r2, 0x1 - bl sub_804D8C8 - ldr r3, _0804CBE4 - add r0, sp, 0x8 - movs r1, 0x2 - movs r2, 0x1 - bl sub_804EEE4 - ldr r3, _0804CBE8 - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804CBB4: .4byte 0xffffe33c -_0804CBB8: .4byte 0x00001c28 -_0804CBBC: .4byte 0x00001c64 -_0804CBC0: .4byte 0x00001ca4 -_0804CBC4: .4byte 0x00001cac -_0804CBC8: .4byte 0x00001cb0 -_0804CBCC: .4byte 0x00001cbc -_0804CBD0: .4byte 0x00001cb4 -_0804CBD4: .4byte 0x00001ca8 -_0804CBD8: .4byte 0x00001cb8 -_0804CBDC: .4byte 0x0000fffc -_0804CBE0: .4byte 0x000001fd -_0804CBE4: .4byte 0x000003e7 -_0804CBE8: .4byte 0x00001cc4 - thumb_func_end sub_804C9D0 - - thumb_func_start sub_804CBEC -sub_804CBEC: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - str r0, [sp] - str r1, [sp, 0x4] - str r2, [sp, 0x8] - str r3, [sp, 0xC] - cmp r3, 0 - bne _0804CC06 - b _0804D006 -_0804CC06: - movs r5, 0 - cmp r5, r3 - blt _0804CC0E - b _0804D006 -_0804CC0E: - ldr r0, [sp, 0x4] - bl sub_8084100 - mov r9, r0 - ldr r0, [sp, 0x8] - bl sub_8084100 - mov r10, r0 - lsls r0, 5 - mov r2, r9 - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 5 - ldr r3, [sp] - adds r1, r3 - adds r4, r0, r1 - ldrb r0, [r4, 0xA] - adds r5, 0x1 - str r5, [sp, 0x18] - cmp r0, 0 - bne _0804CC3A - b _0804CFFC -_0804CC3A: - ldrb r0, [r4, 0xB] - cmp r0, 0 - bne _0804CC42 - b _0804CFFC -_0804CC42: - ldrb r0, [r4, 0x8] - cmp r0, 0 - beq _0804CC4A - b _0804CFFC -_0804CC4A: - ldrb r0, [r4, 0x10] - cmp r0, 0 - beq _0804CC52 - b _0804CFFC -_0804CC52: - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r4, r2] - bl sub_808411C - adds r7, r0, 0 - movs r3, 0x2 - ldrsh r0, [r4, r3] - movs r2, 0x6 - ldrsh r1, [r4, r2] - bl sub_808411C - adds r6, r0, 0 - movs r0, 0x4 - bl sub_8084100 - lsls r0, 1 - mov r8, r0 - ldr r1, [sp, 0x8] - subs r1, 0x1 - movs r3, 0x2 - str r3, [sp, 0x10] - ldr r0, [sp, 0x4] - subs r0, 0x1 -_0804CC84: - mov r2, r8 - cmp r2, 0 - bne _0804CC92 - cmp r10, r1 - blt _0804CC92 - movs r3, 0x2 - mov r8, r3 -_0804CC92: - mov r2, r8 - cmp r2, 0x2 - bne _0804CCA0 - cmp r9, r0 - blt _0804CCA0 - movs r3, 0x4 - mov r8, r3 -_0804CCA0: - mov r2, r8 - cmp r2, 0x4 - bne _0804CCB0 - mov r3, r10 - cmp r3, 0 - bgt _0804CCB0 - movs r2, 0x6 - mov r8, r2 -_0804CCB0: - mov r3, r8 - cmp r3, 0x6 - bne _0804CCC0 - mov r2, r9 - cmp r2, 0 - bgt _0804CCC0 - movs r3, 0 - mov r8, r3 -_0804CCC0: - ldr r2, [sp, 0x10] - subs r2, 0x1 - str r2, [sp, 0x10] - cmp r2, 0 - bge _0804CC84 - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_804954C - ldrb r5, [r0, 0x9] - ldr r1, _0804CCE0 - mov r3, r8 - lsls r0, r3, 2 - adds r4, r0, r1 - b _0804CCF0 - .align 2, 0 -_0804CCE0: .4byte gUnknown_80F4448 -_0804CCE4: - movs r1, 0 - ldrsh r0, [r4, r1] - adds r7, r0 - movs r2, 0x2 - ldrsh r0, [r4, r2] - adds r6, r0 -_0804CCF0: - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_804954C - ldrb r0, [r0, 0x9] - cmp r5, r0 - beq _0804CCE4 - ldr r1, _0804CD08 - mov r3, r8 - lsls r0, r3, 2 - adds r4, r0, r1 - b _0804CD18 - .align 2, 0 -_0804CD08: .4byte gUnknown_80F4448 -_0804CD0C: - movs r1, 0 - ldrsh r0, [r4, r1] - adds r7, r0 - movs r2, 0x2 - ldrsh r0, [r4, r2] - adds r6, r0 -_0804CD18: - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_804954C - ldrh r1, [r0] - movs r5, 0x3 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0x1 - beq _0804CD0C - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_804954C - ldrh r1, [r0] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0x2 - bne _0804CD40 - b _0804CFFC -_0804CD40: - movs r3, 0 - subs r2, r7, 0x2 - adds r4, r7, 0x2 - b _0804CD4A -_0804CD48: - adds r2, 0x1 -_0804CD4A: - cmp r2, r4 - bgt _0804CD6C - subs r0, r6, 0x2 - adds r1, r6, 0x2 - b _0804CD56 -_0804CD54: - adds r0, 0x1 -_0804CD56: - cmp r0, r1 - bgt _0804CD68 - cmp r2, 0x37 - bhi _0804CD66 - cmp r0, 0 - blt _0804CD66 - cmp r0, 0x1F - ble _0804CD54 -_0804CD66: - movs r3, 0x1 -_0804CD68: - cmp r3, 0 - beq _0804CD48 -_0804CD6C: - cmp r3, 0 - beq _0804CD72 - b _0804CFFC -_0804CD72: - ldr r2, _0804CDD4 - mov r1, r8 - adds r1, 0x2 - movs r4, 0x6 - ands r1, r4 - lsls r1, 2 - adds r1, r2 - movs r3, 0 - ldrsh r0, [r1, r3] - movs r3, 0x2 - ldrsh r1, [r1, r3] - adds r0, r7, r0 - adds r1, r6, r1 - str r2, [sp, 0x1C] - bl sub_804954C - ldrh r1, [r0] - movs r5, 0x3 - adds r0, r5, 0 - ands r0, r1 - ldr r2, [sp, 0x1C] - cmp r0, 0x1 - bne _0804CDA2 - b _0804CFFC -_0804CDA2: - mov r1, r8 - subs r1, 0x2 - ands r1, r4 - lsls r1, 2 - adds r1, r2 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r3, 0x2 - ldrsh r1, [r1, r3] - adds r0, r7, r0 - adds r1, r6, r1 - bl sub_804954C - ldrh r1, [r0] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0x1 - bne _0804CDC8 - b _0804CFFC -_0804CDC8: - movs r0, 0x3 - bl sub_8084100 - adds r0, 0x3 - str r0, [sp, 0x10] - b _0804CFD4 - .align 2, 0 -_0804CDD4: .4byte gUnknown_80F4448 -_0804CDD8: - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0804CDEC - b _0804CFFC -_0804CDEC: - movs r0, 0x1 - str r0, [sp, 0x14] - adds r4, r7, 0x1 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_804954C - ldrh r1, [r0] - mov r0, r10 - ands r0, r1 - mov r9, r4 - cmp r0, 0x1 - bne _0804CE32 - adds r5, r6, 0x1 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_804954C - ldrh r0, [r0] - mov r4, r10 - ands r4, r0 - cmp r4, 0x1 - bne _0804CE32 - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_804954C - ldrh r0, [r0] - mov r1, r10 - ands r0, r1 - eors r0, r4 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - str r1, [sp, 0x14] -_0804CE32: - mov r0, r9 - adds r1, r6, 0 - bl sub_804954C - ldrh r1, [r0] - movs r5, 0x3 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0x1 - bne _0804CE70 - subs r4, r6, 0x1 - mov r0, r9 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0x1 - bne _0804CE70 - adds r0, r7, 0 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0x1 - bne _0804CE70 - movs r2, 0 - str r2, [sp, 0x14] -_0804CE70: - subs r4, r7, 0x1 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_804954C - ldrh r1, [r0] - movs r2, 0x3 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x1 - bne _0804CEB6 - adds r5, r6, 0x1 - adds r0, r4, 0 - adds r1, r5, 0 - str r2, [sp, 0x1C] - bl sub_804954C - ldrh r1, [r0] - ldr r2, [sp, 0x1C] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x1 - bne _0804CEB6 - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_804954C - ldrh r1, [r0] - ldr r2, [sp, 0x1C] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x1 - bne _0804CEB6 - movs r3, 0 - str r3, [sp, 0x14] -_0804CEB6: - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_804954C - ldrh r1, [r0] - movs r2, 0x3 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x1 - bne _0804CEFA - subs r5, r6, 0x1 - adds r0, r4, 0 - adds r1, r5, 0 - str r2, [sp, 0x1C] - bl sub_804954C - ldrh r1, [r0] - ldr r2, [sp, 0x1C] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x1 - bne _0804CEFA - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_804954C - ldrh r1, [r0] - ldr r2, [sp, 0x1C] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x1 - bne _0804CEFA - movs r0, 0 - str r0, [sp, 0x14] -_0804CEFA: - ldr r1, [sp, 0x14] - cmp r1, 0 - beq _0804CF16 - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_8049590 - ldrh r1, [r0] - ldr r3, _0804D018 - adds r2, r3, 0 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] -_0804CF16: - ldr r2, _0804D01C - movs r0, 0x2 - add r0, r8 - mov r9, r0 - movs r1, 0x6 - mov r10, r1 - mov r1, r9 - mov r3, r10 - ands r1, r3 - lsls r1, 2 - adds r1, r2 - movs r3, 0 - ldrsh r0, [r1, r3] - movs r3, 0x2 - ldrsh r1, [r1, r3] - adds r0, r7, r0 - adds r1, r6, r1 - str r2, [sp, 0x1C] - bl sub_804954C - ldrh r1, [r0] - movs r5, 0x3 - adds r0, r5, 0 - ands r0, r1 - ldr r2, [sp, 0x1C] - cmp r0, 0x1 - beq _0804CFFC - mov r4, r8 - subs r4, 0x2 - adds r1, r4, 0 - mov r0, r10 - ands r1, r0 - lsls r1, 2 - adds r1, r2 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r3, 0x2 - ldrsh r1, [r1, r3] - adds r0, r7, r0 - adds r1, r6, r1 - bl sub_804954C - ldrh r1, [r0] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0x1 - beq _0804CFFC - ldr r0, [sp, 0x10] - subs r0, 0x1 - str r0, [sp, 0x10] - cmp r0, 0 - bne _0804CFC0 - movs r0, 0x3 - bl sub_8084100 - adds r0, 0x3 - str r0, [sp, 0x10] - movs r0, 0x64 - bl sub_8084100 - mov r8, r4 - cmp r0, 0x31 - bgt _0804CF96 - mov r8, r9 -_0804CF96: - mov r1, r8 - mov r2, r10 - ands r1, r2 - mov r8, r1 - cmp r7, 0x1F - ble _0804CFAE - ldr r0, _0804D020 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0804CFAE - cmp r1, 0x2 - beq _0804CFFC -_0804CFAE: - cmp r7, 0x2F - ble _0804CFC0 - ldr r0, _0804D020 - ldrb r0, [r0] - cmp r0, 0x2 - bne _0804CFC0 - mov r3, r8 - cmp r3, 0x2 - beq _0804CFFC -_0804CFC0: - ldr r0, _0804D01C - mov r2, r8 - lsls r1, r2, 2 - adds r1, r0 - movs r3, 0 - ldrsh r0, [r1, r3] - adds r7, r0 - movs r2, 0x2 - ldrsh r0, [r1, r2] - adds r6, r0 -_0804CFD4: - cmp r7, 0x1 - ble _0804CFFC - cmp r6, 0x1 - ble _0804CFFC - cmp r7, 0x36 - bgt _0804CFFC - cmp r6, 0x1E - bgt _0804CFFC - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_804954C - ldrh r1, [r0] - movs r3, 0x3 - mov r10, r3 - mov r0, r10 - ands r0, r1 - cmp r0, 0x1 - beq _0804CFFC - b _0804CDD8 -_0804CFFC: - ldr r5, [sp, 0x18] - ldr r0, [sp, 0xC] - cmp r5, r0 - bge _0804D006 - b _0804CC0E -_0804D006: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804D018: .4byte 0x0000fffc -_0804D01C: .4byte gUnknown_80F4448 -_0804D020: .4byte gUnknown_202F1AE - thumb_func_end sub_804CBEC - - thumb_func_start sub_804D024 -sub_804D024: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - mov r8, r1 - adds r5, r2, 0 - adds r6, r3, 0 - movs r4, 0 - cmp r4, r5 - bge _0804D04E - movs r0, 0x38 - adds r1, r5, 0 - bl __divsi3 - adds r2, r7, 0 - adds r1, r5, 0 -_0804D044: - stm r2!, {r4} - adds r4, r0 - subs r1, 0x1 - cmp r1, 0 - bne _0804D044 -_0804D04E: - lsls r0, r5, 2 - adds r0, r7 - str r4, [r0] - movs r4, 0 - lsls r5, r6, 2 - cmp r4, r6 - bge _0804D072 - movs r0, 0x20 - adds r1, r6, 0 - bl __divsi3 - mov r2, r8 - adds r1, r6, 0 -_0804D068: - stm r2!, {r4} - adds r4, r0 - subs r1, 0x1 - cmp r1, 0 - bne _0804D068 -_0804D072: - mov r1, r8 - adds r0, r5, r1 - str r4, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804D024 - - thumb_func_start sub_804D084 -sub_804D084: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r8, r0 - adds r5, r1, 0 - mov r9, r2 - movs r2, 0 - cmp r2, r5 - bge _0804D144 - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r0, 1 - str r0, [sp] - movs r3, 0 -_0804D0A6: - adds r0, r2, 0x1 - mov r10, r0 - mov r4, r9 - cmp r4, 0 - ble _0804D13E - ldr r6, _0804D0D8 - ldrb r6, [r6] - str r6, [sp, 0x4] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 5 - mov r4, r8 - adds r1, r0, r4 - movs r7, 0 - movs r6, 0x1 - mov r12, r6 - mov r4, r9 -_0804D0C8: - ldr r0, [sp, 0x4] - cmp r0, 0x1 - bne _0804D0DC - ldr r6, [sp] - cmp r2, r6 - blt _0804D0DC - strb r0, [r1, 0x8] - b _0804D102 - .align 2, 0 -_0804D0D8: .4byte gUnknown_202F1AE -_0804D0DC: - ldr r6, _0804D0FC - ldrb r0, [r6] - cmp r0, 0x2 - bne _0804D100 - lsls r0, r5, 1 - adds r0, r5 - cmp r0, 0 - bge _0804D0EE - adds r0, 0x3 -_0804D0EE: - asrs r0, 2 - cmp r2, r0 - blt _0804D100 - mov r0, r12 - strb r0, [r1, 0x8] - b _0804D102 - .align 2, 0 -_0804D0FC: .4byte gUnknown_202F1AE -_0804D100: - strb r3, [r1, 0x8] -_0804D102: - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 5 - add r0, r8 - adds r0, r7, r0 - mov r6, r12 - strb r6, [r0, 0xA] - strb r3, [r0, 0xB] - strb r3, [r0, 0xF] - strb r3, [r0, 0xE] - strb r3, [r0, 0xC] - strb r3, [r0, 0x16] - strb r3, [r0, 0x15] - strb r3, [r0, 0x14] - strb r3, [r0, 0x13] - strb r3, [r0, 0x1A] - strb r3, [r0, 0x19] - strb r3, [r0, 0x18] - strb r3, [r0, 0x17] - strb r3, [r0, 0x9] - strb r3, [r0, 0x11] - strb r3, [r0, 0x10] - strb r3, [r0, 0x12] - strb r3, [r0, 0x1C] - strb r3, [r0, 0x1D] - adds r1, 0x20 - adds r7, 0x20 - subs r4, 0x1 - cmp r4, 0 - bne _0804D0C8 -_0804D13E: - mov r2, r10 - cmp r2, r5 - blt _0804D0A6 -_0804D144: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804D084 - - thumb_func_start sub_804D154 -sub_804D154: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x114 - str r0, [sp, 0x100] - mov r9, r1 - mov r8, r2 - adds r4, r3, 0 - movs r0, 0x3 - bl sub_8084100 - adds r3, r0, 0 - cmp r4, 0 - bge _0804D17E - negs r4, r4 - b _0804D180 -_0804D178: - movs r0, 0x1 - strb r0, [r4, 0xA] - b _0804D2B6 -_0804D17E: - adds r4, r3 -_0804D180: - movs r3, 0 - mov r0, r8 - mov r2, r9 - muls r2, r0 - cmp r3, r4 - bge _0804D19A - movs r1, 0x1 -_0804D18E: - mov r5, sp - adds r0, r5, r3 - strb r1, [r0] - adds r3, 0x1 - cmp r3, r4 - blt _0804D18E -_0804D19A: - cmp r3, 0xFF - bgt _0804D1AC - movs r1, 0 -_0804D1A0: - mov r6, sp - adds r0, r6, r3 - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0xFF - ble _0804D1A0 -_0804D1AC: - adds r5, r2, 0 - movs r6, 0x3F -_0804D1B0: - adds r0, r5, 0 - bl sub_8084100 - adds r4, r0, 0 - adds r0, r5, 0 - bl sub_8084100 - mov r1, sp - adds r2, r1, r4 - ldrb r3, [r2] - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - subs r6, 0x1 - cmp r6, 0 - bge _0804D1B0 - movs r3, 0 - ldr r0, _0804D24C - str r3, [r0] - movs r7, 0 - mov r12, r0 - cmp r7, r9 - bge _0804D262 -_0804D1E0: - movs r5, 0 - adds r4, r7, 0x1 - str r4, [sp, 0x104] - cmp r5, r8 - bge _0804D25C - lsls r2, r7, 4 - subs r2, r7 - lsls r2, 5 - ldr r6, [sp, 0x100] - adds r0, r2, r6 - mov r1, r9 - movs r4, 0x1 - ands r1, r4 - str r1, [sp, 0x110] - mov r1, r9 - subs r1, 0x1 - adds r0, 0x20 - mov r10, r0 - adds r0, r6, 0 - adds r0, 0x8 - adds r2, r0 - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 -_0804D210: - ldrb r4, [r2] - cmp r4, 0 - bne _0804D254 - mov r6, r12 - ldr r0, [r6] - cmp r0, 0x1F - ble _0804D220 - strb r4, [r2, 0x2] -_0804D220: - mov r6, sp - adds r0, r6, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _0804D250 - movs r0, 0x1 - strb r0, [r2, 0x2] - mov r6, r12 - ldr r0, [r6] - adds r0, 0x1 - str r0, [r6] - ldr r0, [sp, 0x110] - cmp r0, 0 - beq _0804D252 - cmp r7, r1 - bne _0804D252 - cmp r5, 0x1 - bne _0804D252 - mov r6, r10 - strb r4, [r6, 0xA] - b _0804D252 - .align 2, 0 -_0804D24C: .4byte gUnknown_202F1CC -_0804D250: - strb r0, [r2, 0x2] -_0804D252: - adds r3, 0x1 -_0804D254: - adds r2, 0x20 - adds r5, 0x1 - cmp r5, r8 - blt _0804D210 -_0804D25C: - ldr r7, [sp, 0x104] - cmp r7, r9 - blt _0804D1E0 -_0804D262: - mov r1, r12 - ldr r0, [r1] - cmp r0, 0x1 - bgt _0804D2BC - movs r1, 0 - movs r2, 0 -_0804D26E: - movs r7, 0 - cmp r2, r9 - bge _0804D2AC - movs r6, 0 -_0804D276: - movs r5, 0 - cmp r5, r8 - bge _0804D2A4 - lsls r0, r6, 5 - ldr r3, [sp, 0x100] - adds r4, r0, r3 -_0804D282: - ldrb r0, [r4, 0x8] - cmp r0, 0 - bne _0804D29C - movs r0, 0x64 - str r1, [sp, 0x108] - str r2, [sp, 0x10C] - bl sub_8084100 - ldr r1, [sp, 0x108] - ldr r2, [sp, 0x10C] - cmp r0, 0x3B - bgt _0804D29C - b _0804D178 -_0804D29C: - adds r4, 0x20 - adds r5, 0x1 - cmp r5, r8 - blt _0804D282 -_0804D2A4: - adds r6, 0xF - adds r7, 0x1 - cmp r7, r9 - blt _0804D276 -_0804D2AC: - cmp r2, 0 - bne _0804D2B6 - adds r1, 0x1 - cmp r1, 0xC7 - ble _0804D26E -_0804D2B6: - ldr r1, _0804D2CC - movs r0, 0 - strb r0, [r1] -_0804D2BC: - add sp, 0x114 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804D2CC: .4byte gUnknown_202F1AD - thumb_func_end sub_804D154 - - thumb_func_start sub_804D2D0 -sub_804D2D0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - str r0, [sp] - str r1, [sp, 0x4] - str r2, [sp, 0x8] - str r3, [sp, 0xC] - movs r0, 0 - str r0, [sp, 0x10] - movs r1, 0 - str r1, [sp, 0x14] - cmp r1, r2 - blt _0804D2F2 - b _0804D520 -_0804D2F2: - movs r2, 0 - mov r10, r2 - ldr r3, [sp, 0x14] - adds r3, 0x1 - str r3, [sp, 0x28] - ldr r4, [sp, 0x4] - cmp r10, r4 - blt _0804D304 - b _0804D514 -_0804D304: - ldr r5, [sp, 0x14] - lsls r5, 5 - str r5, [sp, 0x1C] -_0804D30A: - mov r1, r10 - lsls r0, r1, 2 - ldr r2, [sp, 0xC] - adds r0, r2 - ldr r3, [r0] - adds r4, r3, 0x2 - mov r9, r4 - ldr r5, [sp, 0x14] - lsls r1, r5, 2 - ldr r2, [sp, 0x58] - adds r1, r2 - ldr r2, [r1] - adds r4, r2, 0x2 - str r4, [sp, 0x18] - ldr r0, [r0, 0x4] - subs r0, r3 - subs r4, r0, 0x4 - ldr r0, [r1, 0x4] - subs r0, r2 - subs r0, 0x3 - mov r8, r0 - mov r5, r10 - lsls r1, r5, 4 - subs r0, r1, r5 - lsls r0, 5 - ldr r2, [sp] - adds r0, r2 - ldr r3, [sp, 0x1C] - adds r7, r3, r0 - ldrb r0, [r7, 0x8] - str r1, [sp, 0x2C] - adds r5, 0x1 - str r5, [sp, 0x24] - cmp r0, 0 - beq _0804D352 - b _0804D508 -_0804D352: - ldrb r0, [r7, 0xA] - cmp r0, 0 - bne _0804D35A - b _0804D48C -_0804D35A: - movs r0, 0x5 - adds r1, r4, 0 - bl sub_808411C - adds r6, r0, 0 - movs r0, 0x4 - mov r1, r8 - bl sub_808411C - adds r5, r0, 0 - movs r1, 0x1 - adds r0, r6, 0 - orrs r0, r1 - cmp r0, r4 - bge _0804D37A - adds r6, r0, 0 -_0804D37A: - adds r0, r5, 0 - orrs r0, r1 - cmp r0, r8 - bge _0804D384 - adds r5, r0, 0 -_0804D384: - lsls r0, r5, 1 - adds r0, r5 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r6, r0 - ble _0804D394 - adds r6, r0, 0 -_0804D394: - lsls r0, r6, 1 - adds r0, r6 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r5, r0 - ble _0804D3A4 - adds r5, r0, 0 -_0804D3A4: - subs r0, r4, r6 - bl sub_8084100 - adds r4, r0, 0 - add r4, r9 - mov r1, r8 - subs r0, r1, r5 - bl sub_8084100 - ldr r2, [sp, 0x18] - adds r0, r2 - mov r8, r0 - adds r3, r4, r6 - adds r6, r0, r5 - strh r4, [r7] - strh r3, [r7, 0x4] - mov r5, r8 - strh r5, [r7, 0x2] - strh r6, [r7, 0x6] - ldr r0, [sp, 0x10] - adds r0, 0x1 - str r0, [sp, 0x20] - cmp r4, r3 - bge _0804D412 -_0804D3D4: - mov r5, r8 - adds r7, r4, 0x1 - cmp r5, r6 - bge _0804D40C - ldr r1, _0804D484 - mov r9, r1 -_0804D3E0: - adds r0, r4, 0 - adds r1, r5, 0 - str r3, [sp, 0x34] - bl sub_8049590 - ldrh r1, [r0] - mov r2, r9 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8049590 - mov r1, sp - ldrb r1, [r1, 0x10] - strb r1, [r0, 0x9] - adds r5, 0x1 - ldr r3, [sp, 0x34] - cmp r5, r6 - blt _0804D3E0 -_0804D40C: - adds r4, r7, 0 - cmp r4, r3 - blt _0804D3D4 -_0804D412: - movs r5, 0x1 - movs r0, 0x64 - bl sub_8084100 - movs r1, 0 - cmp r0, 0x4F - bgt _0804D422 - movs r1, 0x1 -_0804D422: - adds r4, r1, 0 - ldr r0, _0804D488 - ldr r0, [r0] - cmp r0, 0 - bne _0804D42E - movs r4, 0 -_0804D42E: - movs r0, 0x4 - ldr r2, [sp, 0x5C] - ands r0, r2 - cmp r0, 0 - bne _0804D43A - movs r5, 0 -_0804D43A: - cmp r5, 0 - beq _0804D466 - cmp r4, 0 - beq _0804D44E - movs r0, 0x64 - bl sub_8084100 - cmp r0, 0x31 - ble _0804D466 - movs r4, 0 -_0804D44E: - cmp r5, 0 - beq _0804D466 - ldr r3, [sp, 0x2C] - mov r5, r10 - subs r0, r3, r5 - lsls r0, 5 - ldr r1, [sp] - adds r0, r1 - ldr r2, [sp, 0x1C] - adds r0, r2, r0 - movs r1, 0x1 - strb r1, [r0, 0x1C] -_0804D466: - cmp r4, 0 - beq _0804D47E - ldr r3, [sp, 0x2C] - mov r4, r10 - subs r0, r3, r4 - lsls r0, 5 - ldr r5, [sp] - adds r0, r5 - ldr r1, [sp, 0x1C] - adds r0, r1, r0 - movs r1, 0x1 - strb r1, [r0, 0x1D] -_0804D47E: - ldr r2, [sp, 0x20] - str r2, [sp, 0x10] - b _0804D508 - .align 2, 0 -_0804D484: .4byte 0x0000fffc -_0804D488: .4byte gUnknown_202F1C8 -_0804D48C: - movs r1, 0x2 - movs r3, 0x4 - movs r6, 0x2 - movs r2, 0x4 - mov r5, r10 - cmp r5, 0 - bne _0804D49C - movs r1, 0x1 -_0804D49C: - ldr r0, [sp, 0x14] - cmp r0, 0 - bne _0804D4A4 - movs r6, 0x1 -_0804D4A4: - ldr r0, [sp, 0x4] - subs r0, 0x1 - cmp r10, r0 - bne _0804D4AE - movs r3, 0x2 -_0804D4AE: - ldr r0, [sp, 0x8] - subs r0, 0x1 - ldr r5, [sp, 0x14] - cmp r5, r0 - bne _0804D4BA - movs r2, 0x2 -_0804D4BA: - mov r5, r9 - adds r0, r5, r1 - adds r1, r5, r4 - subs r1, r3 - str r2, [sp, 0x30] - bl sub_808411C - adds r5, r0, 0 - ldr r1, [sp, 0x18] - adds r0, r1, r6 - add r1, r8 - ldr r2, [sp, 0x30] - subs r1, r2 - bl sub_808411C - adds r4, r0, 0 - strh r5, [r7] - adds r0, r5, 0x1 - strh r0, [r7, 0x4] - strh r4, [r7, 0x2] - adds r0, r4, 0x1 - strh r0, [r7, 0x6] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r1, [r0] - ldr r3, _0804D530 - adds r2, r3, 0 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0xFE - strb r1, [r0, 0x9] -_0804D508: - ldr r4, [sp, 0x24] - mov r10, r4 - ldr r5, [sp, 0x4] - cmp r10, r5 - bge _0804D514 - b _0804D30A -_0804D514: - ldr r0, [sp, 0x28] - str r0, [sp, 0x14] - ldr r1, [sp, 0x8] - cmp r0, r1 - bge _0804D520 - b _0804D2F2 -_0804D520: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804D530: .4byte 0x0000fffc - thumb_func_end sub_804D2D0 - - thumb_func_start sub_804D534 -sub_804D534: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r3, r0, 0 - adds r7, r1, 0 - mov r9, r2 - movs r1, 0 - cmp r1, r9 - bge _0804D5A0 -_0804D54A: - adds r0, r1, 0x1 - mov r8, r0 - cmp r7, 0 - ble _0804D59A - lsls r1, 5 - adds r0, r1, 0 - adds r0, 0x8 - adds r4, r3, r0 - adds r5, r3, r1 - adds r6, r7, 0 -_0804D55E: - ldrb r0, [r4] - cmp r0, 0 - bne _0804D58C - ldrb r0, [r4, 0x6] - cmp r0, 0 - bne _0804D58C - ldrb r0, [r4, 0xA] - cmp r0, 0 - bne _0804D58C - ldrb r0, [r4, 0x2] - cmp r0, 0 - beq _0804D58C - ldrb r0, [r4, 0x14] - cmp r0, 0 - bne _0804D58C - ldrb r0, [r4, 0x15] - cmp r0, 0 - beq _0804D58C - adds r0, r5, 0 - str r3, [sp] - bl sub_804F694 - ldr r3, [sp] -_0804D58C: - movs r0, 0xF0 - lsls r0, 1 - adds r4, r0 - adds r5, r0 - subs r6, 0x1 - cmp r6, 0 - bne _0804D55E -_0804D59A: - mov r1, r8 - cmp r1, r9 - blt _0804D54A -_0804D5A0: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804D534 - - thumb_func_start sub_804D5B0 -sub_804D5B0: - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - mov r9, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - adds r0, r4, 0 - bl sub_8084100 - mov r8, r0 - adds r0, r5, 0 - bl sub_8084100 - str r0, [sp] - str r6, [sp, 0x4] - mov r0, r9 - adds r1, r4, 0 - adds r2, r5, 0 - mov r3, r8 - bl sub_804D5F0 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_804D5B0 - - thumb_func_start sub_804D5F0 -sub_804D5F0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - str r0, [sp] - str r1, [sp, 0x4] - str r2, [sp, 0x8] - adds r7, r3, 0 - ldr r6, [sp, 0x40] - ldr r0, [sp, 0x44] - ldrb r0, [r0, 0x5] - str r0, [sp, 0xC] - movs r0, 0x4 - bl sub_8084100 - adds r5, r0, 0 - movs r1, 0 - mov r10, r1 - ldr r2, [sp, 0xC] - cmp r10, r2 - blt _0804D620 - b _0804D726 -_0804D620: - lsls r4, r6, 5 - mov r9, r4 - lsls r0, r7, 4 - subs r0, r7 - lsls r0, 5 - ldr r1, [sp] - adds r0, r1 - mov r8, r0 -_0804D630: - movs r0, 0x8 - bl sub_8084100 - adds r4, r0, 0 - movs r0, 0x4 - bl sub_8084100 - cmp r4, 0x3 - bgt _0804D644 - adds r5, r0, 0 -_0804D644: - mov r4, r10 - adds r4, 0x1 -_0804D648: - movs r1, 0 - movs r0, 0x3 - ands r0, r5 - cmp r0, 0x1 - beq _0804D670 - cmp r0, 0x1 - bgt _0804D65C - cmp r0, 0 - beq _0804D666 - b _0804D686 -_0804D65C: - cmp r0, 0x2 - beq _0804D676 - cmp r0, 0x3 - beq _0804D67C - b _0804D686 -_0804D666: - ldr r0, [sp, 0x4] - subs r0, 0x1 - cmp r7, r0 - blt _0804D68A - b _0804D684 -_0804D670: - cmp r6, 0 - bgt _0804D68A - b _0804D684 -_0804D676: - cmp r7, 0 - bgt _0804D68A - b _0804D684 -_0804D67C: - ldr r0, [sp, 0x8] - subs r0, 0x1 - cmp r6, r0 - blt _0804D68A -_0804D684: - adds r5, 0x1 -_0804D686: - cmp r1, 0 - beq _0804D648 -_0804D68A: - movs r1, 0x3 - ands r1, r5 - cmp r1, 0x1 - beq _0804D6C6 - cmp r1, 0x1 - bgt _0804D69C - cmp r1, 0 - beq _0804D6A6 - b _0804D71E -_0804D69C: - cmp r1, 0x2 - beq _0804D6E2 - cmp r1, 0x3 - beq _0804D704 - b _0804D71E -_0804D6A6: - mov r1, r9 - add r1, r8 - movs r0, 0xF0 - lsls r0, 1 - adds r2, r1, r0 - ldrb r0, [r2, 0x8] - cmp r0, 0 - bne _0804D71E - movs r0, 0x1 - strb r0, [r1, 0x16] - strb r0, [r2, 0x15] - movs r1, 0xF0 - lsls r1, 1 - add r8, r1 - adds r7, 0x1 - b _0804D71E -_0804D6C6: - mov r2, r9 - add r2, r8 - adds r3, r2, 0 - subs r3, 0x20 - ldrb r0, [r3, 0x8] - cmp r0, 0 - bne _0804D71E - strb r1, [r2, 0x13] - strb r1, [r3, 0x14] - movs r2, 0x20 - negs r2, r2 - add r9, r2 - subs r6, 0x1 - b _0804D71E -_0804D6E2: - mov r1, r9 - add r1, r8 - ldr r0, _0804D700 - adds r2, r1, r0 - ldrb r0, [r2, 0x8] - cmp r0, 0 - bne _0804D71E - movs r0, 0x1 - strb r0, [r1, 0x15] - strb r0, [r2, 0x16] - ldr r1, _0804D700 - add r8, r1 - subs r7, 0x1 - b _0804D71E - .align 2, 0 -_0804D700: .4byte 0xfffffe20 -_0804D704: - mov r1, r9 - add r1, r8 - adds r2, r1, 0 - adds r2, 0x20 - ldrb r0, [r2, 0x8] - cmp r0, 0 - bne _0804D71E - movs r0, 0x1 - strb r0, [r1, 0x14] - strb r0, [r2, 0x13] - movs r1, 0x20 - add r9, r1 - adds r6, 0x1 -_0804D71E: - mov r10, r4 - ldr r2, [sp, 0xC] - cmp r10, r2 - blt _0804D630 -_0804D726: - ldr r4, [sp, 0x44] - ldrb r0, [r4, 0xB] - cmp r0, 0 - beq _0804D730 - b _0804D8B8 -_0804D730: - movs r0, 0 - mov r9, r0 - movs r7, 0 - ldr r1, [sp, 0x4] - cmp r9, r1 - blt _0804D73E - b _0804D8B0 -_0804D73E: - movs r2, 0x1 - mov r8, r2 -_0804D742: - movs r6, 0 - adds r4, r7, 0x1 - str r4, [sp, 0x14] - ldr r0, [sp, 0x8] - cmp r6, r0 - blt _0804D750 - b _0804D8A6 -_0804D750: - lsls r1, r7, 4 - str r1, [sp, 0x10] - subs r0, r1, r7 - lsls r0, 5 - ldr r2, [sp] - adds r3, r0, r2 -_0804D75C: - lsls r0, r6, 5 - adds r2, r0, r3 - ldrb r1, [r2, 0x8] - adds r4, r0, 0 - adds r0, r6, 0x1 - str r0, [sp, 0x18] - cmp r1, 0 - beq _0804D76E - b _0804D89C -_0804D76E: - ldrb r0, [r2, 0xA] - cmp r0, 0 - beq _0804D776 - b _0804D89C -_0804D776: - ldrb r0, [r2, 0x13] - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - ldrb r0, [r2, 0x14] - cmp r0, 0 - beq _0804D786 - adds r1, 0x1 -_0804D786: - ldrb r0, [r2, 0x15] - cmp r0, 0 - beq _0804D78E - adds r1, 0x1 -_0804D78E: - ldrb r0, [r2, 0x16] - cmp r0, 0 - beq _0804D796 - adds r1, 0x1 -_0804D796: - cmp r1, 0x1 - beq _0804D79C - b _0804D89C -_0804D79C: - movs r0, 0x4 - str r3, [sp, 0x1C] - bl sub_8084100 - adds r5, r0, 0 - movs r2, 0 - mov r10, r2 - ldr r1, [sp, 0x10] - subs r0, r1, r7 - lsls r0, 5 - ldr r1, [sp] - adds r0, r1 - adds r1, r4, r0 - ldr r3, [sp, 0x1C] -_0804D7B8: - movs r0, 0x3 - ands r0, r5 - cmp r0, 0x1 - beq _0804D7E0 - cmp r0, 0x1 - bgt _0804D7CA - cmp r0, 0 - beq _0804D7D4 - b _0804D800 -_0804D7CA: - cmp r0, 0x2 - beq _0804D7E8 - cmp r0, 0x3 - beq _0804D7F0 - b _0804D800 -_0804D7D4: - ldr r0, [sp, 0x4] - subs r0, 0x1 - cmp r7, r0 - bge _0804D7FE - ldrb r0, [r1, 0x16] - b _0804D7FA -_0804D7E0: - cmp r6, 0 - ble _0804D7FE - ldrb r0, [r1, 0x13] - b _0804D7FA -_0804D7E8: - cmp r7, 0 - ble _0804D7FE - ldrb r0, [r1, 0x15] - b _0804D7FA -_0804D7F0: - ldr r0, [sp, 0x8] - subs r0, 0x1 - cmp r6, r0 - bge _0804D7FE - ldrb r0, [r1, 0x14] -_0804D7FA: - cmp r0, 0 - beq _0804D80E -_0804D7FE: - adds r5, 0x1 -_0804D800: - mov r0, r10 - cmp r0, 0 - bne _0804D80E - adds r2, 0x1 - cmp r2, 0x7 - ble _0804D7B8 - b _0804D89C -_0804D80E: - movs r2, 0x3 - ands r2, r5 - cmp r2, 0x1 - beq _0804D844 - cmp r2, 0x1 - bgt _0804D820 - cmp r2, 0 - beq _0804D82A - b _0804D89C -_0804D820: - cmp r2, 0x2 - beq _0804D85C - cmp r2, 0x3 - beq _0804D880 - b _0804D89C -_0804D82A: - adds r1, r4, r3 - movs r4, 0xF0 - lsls r4, 1 - adds r2, r1, r4 - ldrb r0, [r2, 0x8] - cmp r0, 0 - bne _0804D89C - mov r0, r8 - strb r0, [r1, 0x16] - strb r0, [r2, 0x15] - movs r1, 0x1 - mov r9, r1 - b _0804D89C -_0804D844: - adds r1, r4, r3 - movs r4, 0xF0 - lsls r4, 1 - adds r0, r1, r4 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _0804D89C - strb r2, [r1, 0x13] - adds r0, r1, 0 - subs r0, 0x20 - strb r2, [r0, 0x14] - b _0804D898 -_0804D85C: - adds r1, r4, r3 - movs r2, 0xF0 - lsls r2, 1 - adds r0, r1, r2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _0804D89C - mov r4, r8 - strb r4, [r1, 0x15] - ldr r2, _0804D87C - adds r0, r1, r2 - strb r4, [r0, 0x16] - movs r4, 0x1 - mov r9, r4 - b _0804D89C - .align 2, 0 -_0804D87C: .4byte 0xfffffe20 -_0804D880: - adds r1, r4, r3 - movs r2, 0xF0 - lsls r2, 1 - adds r0, r1, r2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _0804D89C - mov r4, r8 - strb r4, [r1, 0x14] - adds r0, r1, 0 - adds r0, 0x20 - strb r4, [r0, 0x13] -_0804D898: - movs r0, 0x1 - mov r9, r0 -_0804D89C: - ldr r6, [sp, 0x18] - ldr r1, [sp, 0x8] - cmp r6, r1 - bge _0804D8A6 - b _0804D75C -_0804D8A6: - ldr r7, [sp, 0x14] - ldr r2, [sp, 0x4] - cmp r7, r2 - bge _0804D8B0 - b _0804D742 -_0804D8B0: - mov r4, r9 - cmp r4, 0 - beq _0804D8B8 - b _0804D730 -_0804D8B8: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804D5F0 - - thumb_func_start sub_804D8C8 -sub_804D8C8: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - str r0, [sp, 0xC] - str r1, [sp, 0x10] - str r2, [sp, 0x14] - str r3, [sp, 0x18] - ldr r0, [sp, 0x7C] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x1C] - movs r0, 0 - str r0, [sp, 0x20] - cmp r0, r1 - bge _0804D968 -_0804D8EC: - movs r1, 0 - mov r10, r1 - ldr r2, [sp, 0x20] - adds r2, 0x1 - str r2, [sp, 0x38] - ldr r3, [sp, 0x14] - cmp r10, r3 - bge _0804D95E - ldr r4, [sp, 0x20] - lsls r1, r4, 4 - subs r1, r4 - movs r3, 0 - lsls r1, 5 - ldr r0, [sp, 0xC] - adds r0, 0x8 - adds r1, r0 -_0804D90C: - ldrb r2, [r1] - cmp r2, 0 - beq _0804D91C - strb r3, [r1, 0xF] - strb r3, [r1, 0x10] - strb r3, [r1, 0x11] - strb r3, [r1, 0x12] - b _0804D952 -_0804D91C: - ldr r5, [sp, 0x20] - cmp r5, 0 - bgt _0804D924 - strb r2, [r1, 0xD] -_0804D924: - mov r6, r10 - cmp r6, 0 - bgt _0804D92C - strb r2, [r1, 0xB] -_0804D92C: - ldr r0, [sp, 0x10] - subs r0, 0x1 - ldr r7, [sp, 0x20] - cmp r7, r0 - blt _0804D938 - strb r2, [r1, 0xE] -_0804D938: - ldr r0, [sp, 0x14] - subs r0, 0x1 - cmp r10, r0 - blt _0804D942 - strb r2, [r1, 0xC] -_0804D942: - ldrb r0, [r1, 0xB] - strb r0, [r1, 0xF] - ldrb r0, [r1, 0xC] - strb r0, [r1, 0x10] - ldrb r0, [r1, 0xD] - strb r0, [r1, 0x11] - ldrb r0, [r1, 0xE] - strb r0, [r1, 0x12] -_0804D952: - adds r1, 0x20 - movs r0, 0x1 - add r10, r0 - ldr r2, [sp, 0x14] - cmp r10, r2 - blt _0804D90C -_0804D95E: - ldr r3, [sp, 0x38] - str r3, [sp, 0x20] - ldr r4, [sp, 0x10] - cmp r3, r4 - blt _0804D8EC -_0804D968: - movs r5, 0 - str r5, [sp, 0x20] - ldr r6, [sp, 0x10] - cmp r5, r6 - blt _0804D974 - b _0804DBC6 -_0804D974: - movs r7, 0 - mov r10, r7 - ldr r0, [sp, 0x20] - adds r0, 0x1 - str r0, [sp, 0x38] - ldr r1, [sp, 0x14] - cmp r10, r1 - blt _0804D986 - b _0804DBBA -_0804D986: - ldr r2, [sp, 0x20] - lsls r2, 4 - str r2, [sp, 0x40] - ldr r3, [sp, 0x20] - subs r1, r2, r3 - lsls r1, 5 - movs r4, 0 - str r4, [sp, 0x48] - ldr r5, [sp, 0xC] - movs r6, 0xF0 - lsls r6, 1 - adds r0, r5, r6 - adds r0, r1 - mov r8, r0 - adds r5, r1, r5 - ldr r7, [sp, 0xC] - ldr r2, _0804DA0C - adds r0, r7, r2 - adds r7, r1, r0 - ldr r3, [sp, 0x78] - str r3, [sp, 0x4C] - ldr r0, [sp, 0xC] - adds r0, 0x20 - adds r0, r1, r0 - str r0, [sp, 0x50] - ldr r0, [sp, 0xC] - subs r0, 0x20 - adds r6, r1, r0 - ldr r4, [sp, 0x20] - lsls r0, r4, 2 - ldr r1, [sp, 0x18] - adds r0, r1 - str r0, [sp, 0x24] -_0804D9C8: - ldr r2, [sp, 0x20] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 5 - ldr r3, [sp, 0xC] - adds r0, r3 - ldr r1, [sp, 0x48] - adds r4, r1, r0 - ldrb r0, [r4, 0x8] - cmp r0, 0 - beq _0804D9E0 - b _0804DB92 -_0804D9E0: - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _0804DA10 - movs r2, 0 - ldrsh r0, [r4, r2] - adds r0, 0x1 - movs r3, 0x4 - ldrsh r1, [r4, r3] - subs r1, 0x1 - bl sub_808411C - mov r9, r0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - adds r0, 0x1 - movs r2, 0x6 - ldrsh r1, [r4, r2] - subs r1, 0x1 - bl sub_808411C - adds r4, r0, 0 - b _0804DA1A - .align 2, 0 -_0804DA0C: .4byte 0xfffffe20 -_0804DA10: - movs r0, 0 - ldrsh r3, [r4, r0] - mov r9, r3 - movs r1, 0x2 - ldrsh r4, [r4, r1] -_0804DA1A: - ldrb r0, [r5, 0x17] - cmp r0, 0 - beq _0804DA74 - ldrb r0, [r6, 0x8] - cmp r0, 0 - bne _0804DA68 - ldrb r0, [r6, 0xA] - cmp r0, 0 - beq _0804DA40 - movs r2, 0 - ldrsh r0, [r6, r2] - adds r0, 0x1 - movs r3, 0x4 - ldrsh r1, [r6, r3] - subs r1, 0x1 - bl sub_808411C - adds r2, r0, 0 - b _0804DA44 -_0804DA40: - movs r0, 0 - ldrsh r2, [r6, r0] -_0804DA44: - movs r3, 0x2 - ldrsh r1, [r5, r3] - movs r0, 0x6 - ldrsh r3, [r6, r0] - subs r3, 0x1 - mov r12, r3 - movs r3, 0x1 - str r3, [sp] - ldr r3, [sp, 0x24] - ldr r0, [r3] - str r0, [sp, 0x4] - ldr r3, [sp, 0x4C] - ldr r0, [r3] - str r0, [sp, 0x8] - mov r0, r9 - mov r3, r12 - bl sub_804E328 -_0804DA68: - movs r0, 0 - strb r0, [r5, 0x17] - strb r0, [r6, 0x18] - movs r1, 0x1 - strb r1, [r5, 0xB] - strb r1, [r6, 0xB] -_0804DA74: - ldrb r0, [r5, 0x18] - cmp r0, 0 - beq _0804DAD4 - ldr r2, [sp, 0x50] - ldrb r0, [r2, 0x8] - cmp r0, 0 - bne _0804DAC6 - ldrb r0, [r2, 0xA] - cmp r0, 0 - beq _0804DA9C - movs r3, 0x20 - ldrsh r0, [r5, r3] - adds r0, 0x1 - movs r2, 0x24 - ldrsh r1, [r5, r2] - subs r1, 0x1 - bl sub_808411C - adds r2, r0, 0 - b _0804DAA0 -_0804DA9C: - movs r3, 0x20 - ldrsh r2, [r5, r3] -_0804DAA0: - movs r0, 0x6 - ldrsh r1, [r5, r0] - subs r1, 0x1 - movs r0, 0x22 - ldrsh r3, [r5, r0] - mov r12, r3 - movs r3, 0x1 - str r3, [sp] - ldr r3, [sp, 0x24] - ldr r0, [r3] - str r0, [sp, 0x4] - ldr r3, [sp, 0x4C] - ldr r0, [r3, 0x4] - subs r0, 0x1 - str r0, [sp, 0x8] - mov r0, r9 - mov r3, r12 - bl sub_804E328 -_0804DAC6: - movs r0, 0 - strb r0, [r5, 0x18] - ldr r1, [sp, 0x50] - strb r0, [r1, 0x17] - movs r2, 0x1 - strb r2, [r5, 0xB] - strb r2, [r1, 0xB] -_0804DAD4: - ldrb r0, [r5, 0x19] - cmp r0, 0 - beq _0804DB2E - ldrb r0, [r7, 0x8] - cmp r0, 0 - bne _0804DB22 - ldrb r0, [r7, 0xA] - cmp r0, 0 - beq _0804DAFA - movs r3, 0x2 - ldrsh r0, [r7, r3] - adds r0, 0x1 - movs r2, 0x6 - ldrsh r1, [r7, r2] - subs r1, 0x1 - bl sub_808411C - adds r3, r0, 0 - b _0804DAFE -_0804DAFA: - movs r0, 0x2 - ldrsh r3, [r7, r0] -_0804DAFE: - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0 - ldrsh r2, [r7, r1] - subs r2, 0x1 - mov r9, r2 - movs r2, 0 - str r2, [sp] - ldr r2, [sp, 0x24] - ldr r1, [r2] - str r1, [sp, 0x4] - ldr r2, [sp, 0x4C] - ldr r1, [r2] - str r1, [sp, 0x8] - adds r1, r4, 0 - mov r2, r9 - bl sub_804E328 -_0804DB22: - movs r3, 0 - strb r3, [r5, 0x19] - strb r3, [r7, 0x1A] - movs r0, 0x1 - strb r0, [r5, 0xB] - strb r0, [r7, 0xB] -_0804DB2E: - ldrb r0, [r5, 0x1A] - cmp r0, 0 - beq _0804DB92 - mov r1, r8 - ldrb r0, [r1, 0x8] - cmp r0, 0 - bne _0804DB84 - ldrb r0, [r1, 0xA] - cmp r0, 0 - beq _0804DB56 - movs r2, 0x2 - ldrsh r0, [r1, r2] - adds r0, 0x1 - movs r3, 0x6 - ldrsh r1, [r1, r3] - subs r1, 0x1 - bl sub_808411C - adds r3, r0, 0 - b _0804DB5C -_0804DB56: - mov r0, r8 - movs r1, 0x2 - ldrsh r3, [r0, r1] -_0804DB5C: - movs r2, 0x4 - ldrsh r0, [r5, r2] - subs r0, 0x1 - mov r1, r8 - movs r2, 0 - ldrsh r1, [r1, r2] - mov r9, r1 - movs r1, 0 - str r1, [sp] - ldr r2, [sp, 0x24] - ldr r1, [r2, 0x4] - subs r1, 0x1 - str r1, [sp, 0x4] - ldr r2, [sp, 0x4C] - ldr r1, [r2] - str r1, [sp, 0x8] - adds r1, r4, 0 - mov r2, r9 - bl sub_804E328 -_0804DB84: - movs r3, 0 - strb r3, [r5, 0x1A] - mov r4, r8 - strb r3, [r4, 0x19] - movs r0, 0x1 - strb r0, [r5, 0xB] - strb r0, [r4, 0xB] -_0804DB92: - ldr r1, [sp, 0x48] - adds r1, 0x20 - str r1, [sp, 0x48] - movs r2, 0x20 - add r8, r2 - adds r5, 0x20 - adds r7, 0x20 - ldr r3, [sp, 0x4C] - adds r3, 0x4 - str r3, [sp, 0x4C] - ldr r4, [sp, 0x50] - adds r4, 0x20 - str r4, [sp, 0x50] - adds r6, 0x20 - movs r0, 0x1 - add r10, r0 - ldr r1, [sp, 0x14] - cmp r10, r1 - bge _0804DBBA - b _0804D9C8 -_0804DBBA: - ldr r2, [sp, 0x38] - str r2, [sp, 0x20] - ldr r3, [sp, 0x10] - cmp r2, r3 - bge _0804DBC6 - b _0804D974 -_0804DBC6: - ldr r4, [sp, 0x1C] - cmp r4, 0 - beq _0804DBCE - b _0804E026 -_0804DBCE: - movs r5, 0 - str r5, [sp, 0x20] - ldr r6, [sp, 0x10] - cmp r5, r6 - blt _0804DBDA - b _0804E026 -_0804DBDA: - movs r7, 0 - mov r10, r7 - ldr r0, [sp, 0x20] - adds r0, 0x1 - str r0, [sp, 0x38] - ldr r1, [sp, 0x14] - cmp r10, r1 - blt _0804DBEC - b _0804E018 -_0804DBEC: - movs r0, 0x64 - bl sub_8084100 - mov r2, r10 - adds r2, 0x1 - str r2, [sp, 0x3C] - cmp r0, 0x4 - ble _0804DBFE - b _0804E00C -_0804DBFE: - mov r3, r10 - lsls r1, r3, 5 - ldr r4, [sp, 0x20] - lsls r2, r4, 4 - subs r0, r2, r4 - lsls r0, 5 - ldr r5, [sp, 0xC] - adds r0, r5 - adds r4, r1, r0 - ldrb r0, [r4, 0x8] - str r1, [sp, 0x44] - str r2, [sp, 0x40] - cmp r0, 0 - beq _0804DC1C - b _0804E00C -_0804DC1C: - ldrb r0, [r4, 0xB] - cmp r0, 0 - bne _0804DC24 - b _0804E00C -_0804DC24: - ldrb r0, [r4, 0x12] - cmp r0, 0 - beq _0804DC2C - b _0804E00C -_0804DC2C: - ldrb r0, [r4, 0x9] - cmp r0, 0 - beq _0804DC34 - b _0804E00C -_0804DC34: - ldrb r0, [r4, 0xA] - cmp r0, 0 - bne _0804DC3C - b _0804E00C -_0804DC3C: - movs r0, 0x4 - bl sub_8084100 - cmp r0, 0x1 - bne _0804DC48 - b _0804DD50 -_0804DC48: - cmp r0, 0x1 - bgt _0804DC52 - cmp r0, 0 - beq _0804DC60 - b _0804E00C -_0804DC52: - cmp r0, 0x2 - bne _0804DC58 - b _0804DE3C -_0804DC58: - cmp r0, 0x3 - bne _0804DC5E - b _0804DF30 -_0804DC5E: - b _0804E00C -_0804DC60: - ldr r6, [sp, 0x20] - cmp r6, 0 - bgt _0804DC68 - b _0804E00C -_0804DC68: - ldr r7, _0804DD48 - adds r2, r4, r7 - ldrb r0, [r2, 0xB] - cmp r0, 0 - bne _0804DC74 - b _0804E00C -_0804DC74: - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0804DC7C - b _0804E00C -_0804DC7C: - ldrb r0, [r2, 0xA] - cmp r0, 0 - bne _0804DC84 - b _0804E00C -_0804DC84: - ldrb r0, [r2, 0x9] - cmp r0, 0 - beq _0804DC8C - b _0804E00C -_0804DC8C: - ldrb r0, [r2, 0x12] - cmp r0, 0 - beq _0804DC94 - b _0804E00C -_0804DC94: - movs r1, 0 - ldrsh r0, [r2, r1] - str r0, [sp, 0x28] - ldrh r3, [r4, 0x2] - movs r5, 0x2 - ldrsh r1, [r4, r5] - ldrh r5, [r2, 0x2] - movs r6, 0x2 - ldrsh r0, [r2, r6] - cmp r1, r0 - ble _0804DCAC - adds r3, r5, 0 -_0804DCAC: - lsls r0, r3, 16 - asrs r0, 16 - mov r9, r0 - movs r0, 0x4 - ldrsh r7, [r4, r0] - mov r10, r7 - ldrh r3, [r4, 0x6] - movs r5, 0x6 - ldrsh r1, [r4, r5] - ldrh r5, [r2, 0x6] - movs r6, 0x6 - ldrsh r0, [r2, r6] - cmp r1, r0 - bge _0804DCCA - adds r3, r5, 0 -_0804DCCA: - lsls r0, r3, 16 - asrs r7, r0, 16 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl sub_804954C - ldrb r0, [r0, 0x9] - mov r8, r0 - ldr r5, [sp, 0x28] - cmp r5, r10 - bge _0804DD16 -_0804DCE4: - mov r4, r9 - adds r6, r5, 0x1 - cmp r9, r7 - bge _0804DD10 - ldr r0, _0804DD4C - adds r3, r0, 0 -_0804DCF0: - adds r0, r5, 0 - adds r1, r4, 0 - str r3, [sp, 0x54] - bl sub_8049590 - ldrh r1, [r0] - ldr r3, [sp, 0x54] - ands r1, r3 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - mov r1, r8 - strb r1, [r0, 0x9] - adds r4, 0x1 - cmp r4, r7 - blt _0804DCF0 -_0804DD10: - adds r5, r6, 0 - cmp r5, r10 - blt _0804DCE4 -_0804DD16: - ldr r2, [sp, 0x40] - ldr r3, [sp, 0x20] - subs r0, r2, r3 - lsls r0, 5 - ldr r4, [sp, 0xC] - adds r0, r4 - ldr r5, [sp, 0x44] - adds r0, r5, r0 - ldr r6, _0804DD48 - adds r3, r0, r6 - mov r1, sp - ldrh r1, [r1, 0x28] - strh r1, [r3] - mov r2, r10 - strh r2, [r3, 0x4] - mov r4, r9 - strh r4, [r3, 0x2] - strh r7, [r3, 0x6] - movs r5, 0x1 - strb r5, [r0, 0x12] - strb r5, [r3, 0x12] - movs r6, 0 - strb r6, [r0, 0xB] - strb r5, [r0, 0x11] - b _0804E00C - .align 2, 0 -_0804DD48: .4byte 0xfffffe20 -_0804DD4C: .4byte 0x0000fffc -_0804DD50: - mov r7, r10 - cmp r7, 0 - bgt _0804DD58 - b _0804E00C -_0804DD58: - adds r2, r4, 0 - subs r2, 0x20 - ldrb r0, [r2, 0xB] - cmp r0, 0 - bne _0804DD64 - b _0804E00C -_0804DD64: - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0804DD6C - b _0804E00C -_0804DD6C: - ldrb r0, [r2, 0xA] - cmp r0, 0 - bne _0804DD74 - b _0804E00C -_0804DD74: - ldrb r0, [r2, 0x9] - cmp r0, 0 - beq _0804DD7C - b _0804E00C -_0804DD7C: - ldrb r0, [r2, 0x12] - cmp r0, 0 - beq _0804DD84 - b _0804E00C -_0804DD84: - ldrh r3, [r4] - movs r0, 0 - ldrsh r1, [r4, r0] - ldrh r5, [r2] - movs r6, 0 - ldrsh r0, [r2, r6] - cmp r1, r0 - ble _0804DD96 - adds r3, r5, 0 -_0804DD96: - lsls r0, r3, 16 - asrs r0, 16 - str r0, [sp, 0x2C] - movs r0, 0x2 - ldrsh r7, [r2, r0] - mov r10, r7 - ldrh r3, [r4, 0x4] - movs r5, 0x4 - ldrsh r1, [r4, r5] - ldrh r5, [r2, 0x4] - movs r6, 0x4 - ldrsh r0, [r2, r6] - cmp r1, r0 - bge _0804DDB4 - adds r3, r5, 0 -_0804DDB4: - lsls r0, r3, 16 - asrs r0, 16 - mov r8, r0 - movs r0, 0x6 - ldrsh r7, [r4, r0] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl sub_804954C - ldrb r0, [r0, 0x9] - mov r9, r0 - ldr r5, [sp, 0x2C] - cmp r5, r8 - bge _0804DE06 -_0804DDD4: - mov r4, r10 - adds r6, r5, 0x1 - cmp r10, r7 - bge _0804DE00 - ldr r0, _0804DE38 - adds r3, r0, 0 -_0804DDE0: - adds r0, r5, 0 - adds r1, r4, 0 - str r3, [sp, 0x54] - bl sub_8049590 - ldrh r1, [r0] - ldr r3, [sp, 0x54] - ands r1, r3 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - mov r1, r9 - strb r1, [r0, 0x9] - adds r4, 0x1 - cmp r4, r7 - blt _0804DDE0 -_0804DE00: - adds r5, r6, 0 - cmp r5, r8 - blt _0804DDD4 -_0804DE06: - ldr r2, [sp, 0x40] - ldr r3, [sp, 0x20] - subs r0, r2, r3 - lsls r0, 5 - ldr r4, [sp, 0xC] - adds r0, r4 - ldr r5, [sp, 0x44] - adds r0, r5, r0 - adds r3, r0, 0 - subs r3, 0x20 - mov r6, sp - ldrh r6, [r6, 0x2C] - strh r6, [r3] - mov r1, r8 - strh r1, [r3, 0x4] - mov r2, r10 - strh r2, [r3, 0x2] - strh r7, [r3, 0x6] - movs r4, 0x1 - strb r4, [r0, 0x12] - strb r4, [r3, 0x12] - movs r5, 0 - strb r5, [r0, 0xB] - strb r4, [r0, 0x11] - b _0804E00C - .align 2, 0 -_0804DE38: .4byte 0x0000fffc -_0804DE3C: - ldr r0, [sp, 0x10] - subs r0, 0x2 - ldr r6, [sp, 0x20] - cmp r6, r0 - ble _0804DE48 - b _0804E00C -_0804DE48: - movs r7, 0xF0 - lsls r7, 1 - adds r2, r4, r7 - ldrb r0, [r2, 0xB] - cmp r0, 0 - bne _0804DE56 - b _0804E00C -_0804DE56: - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0804DE5E - b _0804E00C -_0804DE5E: - ldrb r0, [r2, 0xA] - cmp r0, 0 - bne _0804DE66 - b _0804E00C -_0804DE66: - ldrb r0, [r2, 0x9] - cmp r0, 0 - beq _0804DE6E - b _0804E00C -_0804DE6E: - ldrb r0, [r2, 0x12] - cmp r0, 0 - beq _0804DE76 - b _0804E00C -_0804DE76: - movs r1, 0 - ldrsh r0, [r4, r1] - str r0, [sp, 0x30] - ldrh r3, [r2, 0x2] - movs r5, 0x2 - ldrsh r1, [r2, r5] - ldrh r5, [r4, 0x2] - movs r6, 0x2 - ldrsh r0, [r4, r6] - cmp r1, r0 - ble _0804DE8E - adds r3, r5, 0 -_0804DE8E: - lsls r0, r3, 16 - asrs r0, 16 - mov r9, r0 - movs r0, 0x4 - ldrsh r7, [r2, r0] - mov r10, r7 - ldrh r3, [r2, 0x6] - movs r5, 0x6 - ldrsh r1, [r2, r5] - ldrh r2, [r4, 0x6] - movs r6, 0x6 - ldrsh r0, [r4, r6] - cmp r1, r0 - bge _0804DEAC - adds r3, r2, 0 -_0804DEAC: - lsls r0, r3, 16 - asrs r7, r0, 16 - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldr r0, [sp, 0x30] - bl sub_804954C - ldrb r0, [r0, 0x9] - mov r8, r0 - ldr r5, [sp, 0x30] - cmp r5, r10 - bge _0804DEF6 -_0804DEC4: - mov r4, r9 - adds r6, r5, 0x1 - cmp r9, r7 - bge _0804DEF0 - ldr r1, _0804DF2C - adds r3, r1, 0 -_0804DED0: - adds r0, r5, 0 - adds r1, r4, 0 - str r3, [sp, 0x54] - bl sub_8049590 - ldrh r1, [r0] - ldr r3, [sp, 0x54] - ands r1, r3 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - mov r2, r8 - strb r2, [r0, 0x9] - adds r4, 0x1 - cmp r4, r7 - blt _0804DED0 -_0804DEF0: - adds r5, r6, 0 - cmp r5, r10 - blt _0804DEC4 -_0804DEF6: - ldr r3, [sp, 0x40] - ldr r4, [sp, 0x20] - subs r0, r3, r4 - lsls r0, 5 - ldr r5, [sp, 0xC] - adds r0, r5 - ldr r6, [sp, 0x44] - adds r0, r6, r0 - mov r1, sp - ldrh r1, [r1, 0x30] - strh r1, [r0] - mov r2, r10 - strh r2, [r0, 0x4] - mov r3, r9 - strh r3, [r0, 0x2] - strh r7, [r0, 0x6] - movs r4, 0xF0 - lsls r4, 1 - adds r1, r0, r4 - movs r5, 0x1 - strb r5, [r1, 0x12] - strb r5, [r0, 0x12] - movs r6, 0 - strb r6, [r1, 0xB] - strb r5, [r1, 0x11] - b _0804E00C - .align 2, 0 -_0804DF2C: .4byte 0x0000fffc -_0804DF30: - ldr r0, [sp, 0x14] - subs r0, 0x2 - cmp r10, r0 - bgt _0804E00C - adds r3, r4, 0 - adds r3, 0x20 - ldrb r0, [r3, 0xB] - cmp r0, 0 - beq _0804E00C - ldrb r0, [r3, 0x8] - cmp r0, 0 - bne _0804E00C - ldrb r0, [r3, 0xA] - cmp r0, 0 - beq _0804E00C - ldrb r0, [r3, 0x9] - cmp r0, 0 - bne _0804E00C - ldrb r0, [r3, 0x12] - cmp r0, 0 - bne _0804E00C - ldrh r2, [r4, 0x20] - movs r7, 0x20 - ldrsh r1, [r4, r7] - ldrh r5, [r4] - movs r6, 0 - ldrsh r0, [r4, r6] - cmp r1, r0 - ble _0804DF6C - adds r2, r5, 0 -_0804DF6C: - lsls r0, r2, 16 - asrs r0, 16 - str r0, [sp, 0x34] - movs r7, 0x2 - ldrsh r6, [r4, r7] - ldrh r2, [r3, 0x4] - movs r0, 0x4 - ldrsh r1, [r3, r0] - ldrh r5, [r4, 0x4] - movs r7, 0x4 - ldrsh r0, [r4, r7] - cmp r1, r0 - bge _0804DF88 - adds r2, r5, 0 -_0804DF88: - lsls r0, r2, 16 - asrs r0, 16 - mov r8, r0 - movs r0, 0x6 - ldrsh r3, [r3, r0] - movs r1, 0 - ldrsh r0, [r4, r1] - adds r1, r6, 0 - str r3, [sp, 0x54] - bl sub_804954C - ldrb r0, [r0, 0x9] - mov r10, r0 - ldr r5, [sp, 0x34] - ldr r3, [sp, 0x54] - cmp r5, r8 - bge _0804DFDE -_0804DFAA: - adds r4, r6, 0 - adds r7, r5, 0x1 - cmp r6, r3 - bge _0804DFD8 - ldr r2, _0804E038 - mov r9, r2 -_0804DFB6: - adds r0, r5, 0 - adds r1, r4, 0 - str r3, [sp, 0x54] - bl sub_8049590 - ldrh r1, [r0] - mov r2, r9 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - mov r1, r10 - strb r1, [r0, 0x9] - adds r4, 0x1 - ldr r3, [sp, 0x54] - cmp r4, r3 - blt _0804DFB6 -_0804DFD8: - adds r5, r7, 0 - cmp r5, r8 - blt _0804DFAA -_0804DFDE: - ldr r2, [sp, 0x40] - ldr r4, [sp, 0x20] - subs r0, r2, r4 - lsls r0, 5 - ldr r5, [sp, 0xC] - adds r0, r5 - ldr r7, [sp, 0x44] - adds r0, r7, r0 - mov r1, sp - ldrh r1, [r1, 0x34] - strh r1, [r0] - mov r2, r8 - strh r2, [r0, 0x4] - strh r6, [r0, 0x2] - strh r3, [r0, 0x6] - adds r1, r0, 0 - adds r1, 0x20 - movs r3, 0x1 - strb r3, [r1, 0x12] - strb r3, [r0, 0x12] - movs r4, 0 - strb r4, [r1, 0xB] - strb r3, [r1, 0x11] -_0804E00C: - ldr r5, [sp, 0x3C] - mov r10, r5 - ldr r6, [sp, 0x14] - cmp r10, r6 - bge _0804E018 - b _0804DBEC -_0804E018: - ldr r7, [sp, 0x38] - str r7, [sp, 0x20] - adds r0, r7, 0 - ldr r1, [sp, 0x10] - cmp r0, r1 - bge _0804E026 - b _0804DBDA -_0804E026: - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804E038: .4byte 0x0000fffc - thumb_func_end sub_804D8C8 - - thumb_func_start sub_804E03C -sub_804E03C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x44 - str r0, [sp] - str r1, [sp, 0x4] - str r2, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - cmp r0, r1 - blt _0804E058 - b _0804E318 -_0804E058: - movs r2, 0 - ldr r1, [sp, 0xC] - adds r1, 0x1 - str r1, [sp, 0x28] - ldr r3, [sp, 0x8] - cmp r2, r3 - blt _0804E068 - b _0804E30C -_0804E068: - ldr r4, [sp, 0xC] - lsls r4, 4 - str r4, [sp, 0x14] - ldr r6, [sp, 0xC] - subs r0, r4, r6 - lsls r0, 5 - ldr r1, [sp] - adds r0, r1 - str r0, [sp, 0x18] -_0804E07A: - lsls r0, r2, 5 - ldr r3, [sp, 0x18] - adds r4, r0, r3 - ldrb r1, [r4, 0x8] - str r0, [sp, 0x34] - adds r2, 0x1 - str r2, [sp, 0x2C] - cmp r1, 0 - beq _0804E08E - b _0804E302 -_0804E08E: - ldrb r0, [r4, 0x11] - cmp r0, 0 - beq _0804E096 - b _0804E302 -_0804E096: - ldrb r0, [r4, 0x12] - cmp r0, 0 - beq _0804E09E - b _0804E302 -_0804E09E: - ldrb r0, [r4, 0xB] - cmp r0, 0 - bne _0804E0A6 - b _0804E302 -_0804E0A6: - ldrb r0, [r4, 0xA] - cmp r0, 0 - bne _0804E0AE - b _0804E302 -_0804E0AE: - ldrb r0, [r4, 0x9] - cmp r0, 0 - beq _0804E0B6 - b _0804E302 -_0804E0B6: - ldrb r0, [r4, 0x10] - cmp r0, 0 - beq _0804E0BE - b _0804E302 -_0804E0BE: - ldrb r0, [r4, 0x1C] - cmp r0, 0 - bne _0804E0C6 - b _0804E302 -_0804E0C6: - movs r0, 0x64 - bl sub_8084100 - cmp r0, 0x3B - bgt _0804E0D2 - b _0804E302 -_0804E0D2: - movs r6, 0x4 - ldrsh r2, [r4, r6] - movs r1, 0 - ldrsh r0, [r4, r1] - subs r2, r0 - movs r3, 0x6 - ldrsh r0, [r4, r3] - movs r6, 0x2 - ldrsh r1, [r4, r6] - subs r0, r1 - adds r2, r0 - str r2, [sp, 0x10] - adds r0, r2, 0 - cmp r2, 0 - bge _0804E0F2 - adds r0, 0x3 -_0804E0F2: - asrs r0, 2 - str r0, [sp, 0x10] - cmp r0, 0 - bne _0804E0FE - movs r0, 0x1 - str r0, [sp, 0x10] -_0804E0FE: - movs r1, 0 - ldr r2, [sp, 0x10] - cmp r1, r2 - blt _0804E108 - b _0804E302 -_0804E108: - ldr r3, [sp, 0x14] - ldr r4, [sp, 0xC] - subs r0, r3, r4 - lsls r0, 5 - ldr r6, [sp] - adds r0, r6 - ldr r2, [sp, 0x34] - adds r0, r2, r0 - str r0, [sp, 0x20] -_0804E11A: - movs r4, 0 - adds r1, 0x1 - str r1, [sp, 0x30] -_0804E120: - movs r0, 0x4 - bl sub_8084100 - str r0, [sp, 0x1C] - cmp r0, 0x1 - beq _0804E14A - cmp r0, 0x1 - ble _0804E138 - cmp r0, 0x2 - beq _0804E168 - cmp r0, 0x3 - beq _0804E182 -_0804E138: - ldr r3, [sp, 0x20] - movs r6, 0 - ldrsh r7, [r3, r6] - movs r1, 0x2 - ldrsh r0, [r3, r1] - mov r8, r0 - cmp r4, 0 - bne _0804E19C - b _0804E15C -_0804E14A: - ldr r2, [sp, 0x20] - movs r3, 0x4 - ldrsh r0, [r2, r3] - subs r7, r0, 0x1 - movs r0, 0x2 - ldrsh r6, [r2, r0] - mov r8, r6 - cmp r4, 0 - beq _0804E162 -_0804E15C: - movs r3, 0 - movs r2, 0x1 - b _0804E1A0 -_0804E162: - movs r3, 0x1 - negs r3, r3 - b _0804E19E -_0804E168: - ldr r1, [sp, 0x20] - movs r2, 0x4 - ldrsh r0, [r1, r2] - subs r7, r0, 0x1 - movs r3, 0x6 - ldrsh r0, [r1, r3] - subs r0, 0x1 - mov r8, r0 - cmp r4, 0 - beq _0804E194 - movs r3, 0x1 - negs r3, r3 - b _0804E19E -_0804E182: - ldr r6, [sp, 0x20] - movs r0, 0 - ldrsh r7, [r6, r0] - movs r1, 0x6 - ldrsh r0, [r6, r1] - subs r0, 0x1 - mov r8, r0 - cmp r4, 0 - beq _0804E19C -_0804E194: - movs r3, 0 - movs r2, 0x1 - negs r2, r2 - b _0804E1A0 -_0804E19C: - movs r3, 0x1 -_0804E19E: - movs r2, 0 -_0804E1A0: - movs r6, 0 - mov r9, r6 - ldr r5, [sp, 0x34] - ldr r0, [sp, 0x14] - str r0, [sp, 0x40] - ldr r6, [sp, 0x18] - adds r1, r5, r6 - movs r6, 0 - ldrsh r0, [r1, r6] - mov r10, r0 - adds r4, 0x1 - str r4, [sp, 0x24] - cmp r7, r10 - bge _0804E1BE - b _0804E2F0 -_0804E1BE: - movs r4, 0x4 - ldrsh r0, [r1, r4] - cmp r7, r0 - blt _0804E1C8 - b _0804E2F0 -_0804E1C8: - ldr r6, [sp, 0x40] - ldr r1, [sp, 0xC] - subs r0, r6, r1 - lsls r0, 5 - ldr r4, [sp] - adds r0, r4 - adds r4, r5, r0 - movs r6, 0x2 - ldrsh r0, [r4, r6] - cmp r8, r0 - bge _0804E1E0 - b _0804E2F0 -_0804E1E0: - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r8, r0 - blt _0804E1EA - b _0804E2F0 -_0804E1EA: - adds r0, r7, 0 - mov r1, r8 - str r2, [sp, 0x38] - str r3, [sp, 0x3C] - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - ldr r2, [sp, 0x38] - ldr r3, [sp, 0x3C] - cmp r0, 0x1 - bne _0804E2D0 - movs r6, 0 -_0804E206: - ldr r1, _0804E228 - lsls r0, r6, 2 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - adds r1, r7 - mov r10, r1 - movs r3, 0x2 - ldrsh r0, [r0, r3] - add r0, r8 - mov r9, r0 - movs r3, 0 - movs r5, 0x1 - negs r5, r5 -_0804E222: - movs r4, 0x1 - negs r4, r4 - b _0804E22E - .align 2, 0 -_0804E228: .4byte gUnknown_80F4448 -_0804E22C: - adds r4, 0x1 -_0804E22E: - cmp r4, 0x1 - bgt _0804E25A - mov r1, r10 - adds r0, r1, r4 - mov r2, r9 - adds r1, r2, r5 - str r3, [sp, 0x3C] - bl sub_804954C - adds r2, r0, 0 - ldrh r1, [r2] - movs r0, 0x3 - ands r0, r1 - ldr r3, [sp, 0x3C] - cmp r0, 0x1 - bne _0804E22C - ldrb r0, [r2, 0x9] - cmp r0, 0xFF - bne _0804E256 - movs r3, 0x1 -_0804E256: - cmp r3, 0 - beq _0804E22C -_0804E25A: - cmp r3, 0 - bne _0804E26A - adds r5, 0x1 - cmp r5, 0x1 - ble _0804E222 - adds r6, 0x1 - cmp r6, 0x7 - ble _0804E206 -_0804E26A: - cmp r6, 0x8 - bne _0804E2F0 - movs r6, 0 - ldr r3, [sp, 0x1C] - lsls r1, r3, 3 - ldr r0, _0804E2C4 - adds r4, r1, r0 -_0804E278: - ldr r0, _0804E2C8 - lsls r1, r6, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r3, 0x2 - ldrsh r1, [r1, r3] - adds r0, r7, r0 - add r1, r8 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - movs r1, 0 - cmp r0, 0x1 - bne _0804E29C - movs r1, 0x1 -_0804E29C: - ldrb r0, [r4] - cmp r0, r1 - bne _0804E2AA - adds r4, 0x2 - adds r6, 0x2 - cmp r6, 0x7 - ble _0804E278 -_0804E2AA: - cmp r6, 0x8 - bne _0804E2F0 - adds r0, r7, 0 - mov r1, r8 - bl sub_8049590 - ldrh r2, [r0] - ldr r4, _0804E2CC - adds r1, r4, 0 - ands r2, r1 - strh r2, [r0] - b _0804E2F0 - .align 2, 0 -_0804E2C4: .4byte gUnknown_80F6DD5 -_0804E2C8: .4byte gUnknown_80F4448 -_0804E2CC: .4byte 0x0000fffc -_0804E2D0: - adds r7, r3 - add r8, r2 - movs r6, 0x1 - add r9, r6 - mov r0, r9 - cmp r0, 0x9 - bgt _0804E2F0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r7, r0 - blt _0804E2F0 - movs r6, 0x4 - ldrsh r0, [r4, r6] - cmp r7, r0 - bge _0804E2F0 - b _0804E1C8 -_0804E2F0: - ldr r4, [sp, 0x24] - cmp r4, 0x1 - bgt _0804E2F8 - b _0804E120 -_0804E2F8: - ldr r1, [sp, 0x30] - ldr r0, [sp, 0x10] - cmp r1, r0 - bge _0804E302 - b _0804E11A -_0804E302: - ldr r2, [sp, 0x2C] - ldr r1, [sp, 0x8] - cmp r2, r1 - bge _0804E30C - b _0804E07A -_0804E30C: - ldr r2, [sp, 0x28] - str r2, [sp, 0xC] - ldr r3, [sp, 0x4] - cmp r2, r3 - bge _0804E318 - b _0804E058 -_0804E318: - add sp, 0x44 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804E03C - - thumb_func_start sub_804E328 -sub_804E328: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r0, 0 - adds r4, r1, 0 - str r2, [sp] - str r3, [sp, 0x4] - ldr r0, [sp, 0x28] - lsls r0, 24 - mov r10, r5 - mov r9, r4 - ldr r1, [sp, 0x2C] - mov r8, r1 - ldr r7, [sp, 0x30] - cmp r0, 0 - bne _0804E350 - b _0804E470 -_0804E350: - movs r6, 0 -_0804E352: - cmp r4, r7 - beq _0804E3A8 - adds r0, r6, 0 - adds r6, 0x1 - cmp r0, 0x37 - ble _0804E360 - b _0804E57E -_0804E360: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - beq _0804E390 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r2, [r0] - ldr r3, _0804E38C - adds r1, r3, 0 - ands r2, r1 - movs r1, 0x1 - orrs r2, r1 - strh r2, [r0] - b _0804E39C - .align 2, 0 -_0804E38C: .4byte 0x0000fffc -_0804E390: - cmp r5, r10 - beq _0804E396 - b _0804E57E -_0804E396: - cmp r4, r9 - beq _0804E39C - b _0804E57E -_0804E39C: - cmp r4, r7 - bge _0804E3A4 - adds r4, 0x1 - b _0804E352 -_0804E3A4: - subs r4, 0x1 - b _0804E352 -_0804E3A8: - movs r6, 0 - ldr r0, [sp] - cmp r5, r0 - beq _0804E40A - movs r7, 0 -_0804E3B2: - adds r0, r6, 0 - adds r6, 0x1 - cmp r0, 0x37 - ble _0804E3BC - b _0804E57E -_0804E3BC: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - beq _0804E3EC - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r2, [r0] - ldr r3, _0804E3E8 - adds r1, r3, 0 - ands r2, r1 - movs r1, 0x1 - orrs r2, r1 - strh r2, [r0] - b _0804E3F8 - .align 2, 0 -_0804E3E8: .4byte 0x0000fffc -_0804E3EC: - cmp r5, r10 - beq _0804E3F2 - b _0804E57E -_0804E3F2: - cmp r4, r9 - beq _0804E3F8 - b _0804E57E -_0804E3F8: - ldr r0, [sp] - cmp r5, r0 - bge _0804E402 - adds r5, 0x1 - b _0804E404 -_0804E402: - subs r5, 0x1 -_0804E404: - ldr r1, [sp] - cmp r5, r1 - bne _0804E3B2 -_0804E40A: - movs r6, 0 - ldr r3, [sp, 0x4] - cmp r4, r3 - bne _0804E414 - b _0804E57E -_0804E414: - movs r7, 0 -_0804E416: - adds r0, r6, 0 - adds r6, 0x1 - cmp r0, 0x37 - ble _0804E420 - b _0804E57E -_0804E420: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - beq _0804E450 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r2, [r0] - ldr r3, _0804E44C - adds r1, r3, 0 - ands r2, r1 - movs r1, 0x1 - orrs r2, r1 - strh r2, [r0] - b _0804E45C - .align 2, 0 -_0804E44C: .4byte 0x0000fffc -_0804E450: - cmp r5, r10 - beq _0804E456 - b _0804E57E -_0804E456: - cmp r4, r9 - beq _0804E45C - b _0804E57E -_0804E45C: - ldr r0, [sp, 0x4] - cmp r4, r0 - bge _0804E466 - adds r4, 0x1 - b _0804E468 -_0804E466: - subs r4, 0x1 -_0804E468: - ldr r1, [sp, 0x4] - cmp r4, r1 - bne _0804E416 - b _0804E57E -_0804E470: - movs r6, 0 - cmp r5, r8 - beq _0804E4C6 - movs r7, 0 -_0804E478: - adds r0, r6, 0 - adds r6, 0x1 - cmp r0, 0x37 - ble _0804E482 - b _0804E57E -_0804E482: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - beq _0804E4B0 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r2, [r0] - ldr r3, _0804E4AC - adds r1, r3, 0 - ands r2, r1 - movs r1, 0x1 - orrs r2, r1 - strh r2, [r0] - b _0804E4B8 - .align 2, 0 -_0804E4AC: .4byte 0x0000fffc -_0804E4B0: - cmp r5, r10 - bne _0804E57E - cmp r4, r9 - bne _0804E57E -_0804E4B8: - cmp r5, r8 - bge _0804E4C0 - adds r5, 0x1 - b _0804E4C2 -_0804E4C0: - subs r5, 0x1 -_0804E4C2: - cmp r5, r8 - bne _0804E478 -_0804E4C6: - movs r6, 0 - ldr r0, [sp, 0x4] - cmp r4, r0 - beq _0804E522 - movs r7, 0 -_0804E4D0: - adds r0, r6, 0 - adds r6, 0x1 - cmp r0, 0x37 - bgt _0804E57E - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - beq _0804E508 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r2, [r0] - ldr r3, _0804E504 - adds r1, r3, 0 - ands r2, r1 - movs r1, 0x1 - orrs r2, r1 - strh r2, [r0] - b _0804E510 - .align 2, 0 -_0804E504: .4byte 0x0000fffc -_0804E508: - cmp r5, r10 - bne _0804E57E - cmp r4, r9 - bne _0804E57E -_0804E510: - ldr r0, [sp, 0x4] - cmp r4, r0 - bge _0804E51A - adds r4, 0x1 - b _0804E51C -_0804E51A: - subs r4, 0x1 -_0804E51C: - ldr r1, [sp, 0x4] - cmp r4, r1 - bne _0804E4D0 -_0804E522: - movs r6, 0 - ldr r3, [sp] - cmp r5, r3 - beq _0804E57E - movs r7, 0 -_0804E52C: - adds r0, r6, 0 - adds r6, 0x1 - cmp r0, 0x37 - bgt _0804E57E - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - beq _0804E564 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r2, [r0] - ldr r3, _0804E560 - adds r1, r3, 0 - ands r2, r1 - movs r1, 0x1 - orrs r2, r1 - strh r2, [r0] - b _0804E56C - .align 2, 0 -_0804E560: .4byte 0x0000fffc -_0804E564: - cmp r5, r10 - bne _0804E57E - cmp r4, r9 - bne _0804E57E -_0804E56C: - ldr r0, [sp] - cmp r5, r0 - bge _0804E576 - adds r5, 0x1 - b _0804E578 -_0804E576: - subs r5, 0x1 -_0804E578: - ldr r1, [sp] - cmp r5, r1 - bne _0804E52C -_0804E57E: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804E328 - - thumb_func_start sub_804E590 -sub_804E590: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x40 - str r0, [sp, 0xC] - str r1, [sp, 0x10] - str r2, [sp, 0x14] - str r3, [sp, 0x18] - movs r0, 0 - str r0, [sp, 0x1C] - cmp r0, r1 - blt _0804E5AE - b _0804E8AA -_0804E5AE: - movs r1, 0x1 - mov r10, r1 -_0804E5B2: - movs r2, 0 - str r2, [sp, 0x20] - ldr r3, [sp, 0x1C] - adds r3, 0x1 - str r3, [sp, 0x2C] - ldr r4, [sp, 0x14] - cmp r2, r4 - blt _0804E5C4 - b _0804E89E -_0804E5C4: - ldr r5, [sp, 0x1C] - lsls r5, 4 - ldr r6, [sp, 0x1C] - subs r1, r5, r6 - lsls r1, 5 - ldr r2, [sp, 0xC] - movs r3, 0xF0 - lsls r3, 1 - adds r0, r2, r3 - adds r0, r1 - mov r8, r0 - adds r6, r1, r2 - ldr r4, _0804E6A4 - adds r0, r2, r4 - adds r7, r1, r0 - adds r0, r2, 0 - adds r0, 0x20 - adds r0, r1 - mov r9, r0 - ldr r5, [sp, 0x60] - str r5, [sp, 0x34] - adds r0, r2, 0 - subs r0, 0x20 - adds r1, r0 - str r1, [sp, 0x38] - movs r0, 0 - str r0, [sp, 0x3C] - ldr r1, [sp, 0x1C] - lsls r0, r1, 2 - ldr r2, [sp, 0x18] - adds r0, r2 - str r0, [sp, 0x28] -_0804E604: - ldr r3, [sp, 0x1C] - lsls r0, r3, 4 - subs r0, r3 - lsls r0, 5 - ldr r4, [sp, 0xC] - adds r0, r4 - ldr r5, [sp, 0x3C] - adds r4, r5, r0 - ldrb r0, [r4, 0x8] - cmp r0, 0 - beq _0804E61C - b _0804E874 -_0804E61C: - ldrb r0, [r4, 0x11] - cmp r0, 0 - beq _0804E624 - b _0804E874 -_0804E624: - ldrb r0, [r4, 0xB] - cmp r0, 0 - beq _0804E62C - b _0804E874 -_0804E62C: - ldrb r0, [r4, 0xA] - cmp r0, 0 - bne _0804E634 - b _0804E848 -_0804E634: - ldrb r0, [r4, 0x9] - cmp r0, 0 - beq _0804E63C - b _0804E848 -_0804E63C: - movs r1, 0 - ldrsh r0, [r4, r1] - adds r0, 0x1 - movs r2, 0x4 - ldrsh r1, [r4, r2] - subs r1, 0x1 - bl sub_808411C - str r0, [sp, 0x24] - movs r3, 0x2 - ldrsh r0, [r4, r3] - adds r0, 0x1 - movs r5, 0x6 - ldrsh r1, [r4, r5] - subs r1, 0x1 - bl sub_808411C - adds r5, r0, 0 - ldr r0, [sp, 0x20] - cmp r0, 0 - ble _0804E6DC - subs r4, 0x20 - ldrb r0, [r4, 0x8] - cmp r0, 0 - bne _0804E6DC - ldrb r0, [r4, 0x12] - cmp r0, 0 - bne _0804E6DC - ldrb r0, [r4, 0xB] - cmp r0, 0 - beq _0804E6DC - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _0804E6A8 - movs r1, 0 - ldrsh r0, [r4, r1] - adds r0, 0x1 - movs r2, 0x4 - ldrsh r1, [r4, r2] - subs r1, 0x1 - bl sub_808411C - adds r5, r0, 0 - movs r3, 0x2 - ldrsh r0, [r4, r3] - adds r0, 0x1 - movs r2, 0x6 - ldrsh r1, [r4, r2] - subs r1, 0x1 - bl sub_808411C - b _0804E6AC - .align 2, 0 -_0804E6A4: .4byte 0xfffffe20 -_0804E6A8: - movs r3, 0 - ldrsh r5, [r4, r3] -_0804E6AC: - movs r4, 0x2 - ldrsh r1, [r6, r4] - ldr r0, [sp, 0x38] - movs r2, 0x6 - ldrsh r3, [r0, r2] - subs r3, 0x1 - mov r4, r10 - str r4, [sp] - ldr r2, [sp, 0x28] - ldr r0, [r2] - str r0, [sp, 0x4] - ldr r4, [sp, 0x34] - ldr r0, [r4] - str r0, [sp, 0x8] - ldr r0, [sp, 0x24] - adds r2, r5, 0 - bl sub_804E328 - mov r5, r10 - strb r5, [r6, 0xB] - strb r5, [r6, 0x13] - ldr r0, [sp, 0x38] - strb r5, [r0, 0x14] - b _0804E874 -_0804E6DC: - ldr r0, [sp, 0x14] - subs r0, 0x1 - ldr r1, [sp, 0x20] - cmp r1, r0 - bge _0804E758 - mov r2, r9 - ldrb r0, [r2, 0x8] - cmp r0, 0 - bne _0804E758 - ldrb r0, [r2, 0x12] - cmp r0, 0 - bne _0804E758 - ldrb r0, [r2, 0xB] - cmp r0, 0 - beq _0804E758 - ldrb r0, [r2, 0xA] - cmp r0, 0 - beq _0804E724 - movs r3, 0x20 - ldrsh r0, [r6, r3] - adds r0, 0x1 - movs r4, 0x24 - ldrsh r1, [r6, r4] - subs r1, 0x1 - bl sub_808411C - adds r5, r0, 0 - movs r1, 0x22 - ldrsh r0, [r6, r1] - adds r0, 0x1 - movs r2, 0x26 - ldrsh r1, [r6, r2] - subs r1, 0x1 - bl sub_808411C - b _0804E728 -_0804E724: - movs r3, 0x20 - ldrsh r5, [r6, r3] -_0804E728: - movs r4, 0x6 - ldrsh r1, [r6, r4] - subs r1, 0x1 - movs r0, 0x22 - ldrsh r3, [r6, r0] - mov r2, r10 - str r2, [sp] - ldr r4, [sp, 0x28] - ldr r0, [r4] - str r0, [sp, 0x4] - ldr r2, [sp, 0x34] - ldr r0, [r2, 0x4] - subs r0, 0x1 - str r0, [sp, 0x8] - ldr r0, [sp, 0x24] - adds r2, r5, 0 - bl sub_804E328 - mov r3, r10 - strb r3, [r6, 0xB] - strb r3, [r6, 0x14] - mov r4, r9 - strb r3, [r4, 0x13] - b _0804E874 -_0804E758: - ldr r0, [sp, 0x1C] - cmp r0, 0 - ble _0804E7C8 - ldrb r0, [r7, 0x8] - cmp r0, 0 - bne _0804E7C8 - ldrb r0, [r7, 0x12] - cmp r0, 0 - bne _0804E7C8 - ldrb r0, [r7, 0xB] - cmp r0, 0 - beq _0804E7C8 - ldrb r0, [r7, 0xA] - cmp r0, 0 - beq _0804E79A - movs r1, 0 - ldrsh r0, [r7, r1] - adds r0, 0x1 - movs r2, 0x4 - ldrsh r1, [r7, r2] - subs r1, 0x1 - bl sub_808411C - movs r3, 0x2 - ldrsh r0, [r7, r3] - adds r0, 0x1 - movs r4, 0x6 - ldrsh r1, [r7, r4] - subs r1, 0x1 - bl sub_808411C - adds r3, r0, 0 - b _0804E79E -_0804E79A: - movs r0, 0x2 - ldrsh r3, [r7, r0] -_0804E79E: - movs r1, 0 - ldrsh r0, [r6, r1] - movs r4, 0 - ldrsh r2, [r7, r4] - subs r2, 0x1 - movs r1, 0 - str r1, [sp] - ldr r4, [sp, 0x28] - ldr r1, [r4] - str r1, [sp, 0x4] - ldr r4, [sp, 0x34] - ldr r1, [r4] - str r1, [sp, 0x8] - adds r1, r5, 0 - bl sub_804E328 - mov r5, r10 - strb r5, [r6, 0xB] - strb r5, [r6, 0x15] - strb r5, [r7, 0x16] - b _0804E874 -_0804E7C8: - ldr r0, [sp, 0x10] - subs r0, 0x1 - ldr r1, [sp, 0x1C] - cmp r1, r0 - bge _0804E874 - mov r2, r8 - ldrb r0, [r2, 0x8] - cmp r0, 0 - bne _0804E874 - ldrb r0, [r2, 0x12] - cmp r0, 0 - bne _0804E874 - ldrb r0, [r2, 0xB] - cmp r0, 0 - beq _0804E874 - ldrb r0, [r2, 0xA] - cmp r0, 0 - beq _0804E812 - movs r3, 0 - ldrsh r0, [r2, r3] - adds r0, 0x1 - movs r4, 0x4 - ldrsh r1, [r2, r4] - subs r1, 0x1 - bl sub_808411C - mov r1, r8 - movs r2, 0x2 - ldrsh r0, [r1, r2] - adds r0, 0x1 - movs r3, 0x6 - ldrsh r1, [r1, r3] - subs r1, 0x1 - bl sub_808411C - adds r3, r0, 0 - b _0804E818 -_0804E812: - mov r4, r8 - movs r0, 0x2 - ldrsh r3, [r4, r0] -_0804E818: - movs r1, 0x4 - ldrsh r0, [r6, r1] - subs r0, 0x1 - mov r4, r8 - movs r1, 0 - ldrsh r2, [r4, r1] - movs r1, 0 - str r1, [sp] - ldr r4, [sp, 0x28] - ldr r1, [r4, 0x4] - subs r1, 0x1 - str r1, [sp, 0x4] - ldr r4, [sp, 0x34] - ldr r1, [r4] - str r1, [sp, 0x8] - adds r1, r5, 0 - bl sub_804E328 - mov r5, r10 - strb r5, [r6, 0xB] - strb r5, [r6, 0x16] - mov r0, r8 - strb r5, [r0, 0x15] - b _0804E874 -_0804E848: - movs r1, 0 - ldrsh r0, [r6, r1] - movs r2, 0x2 - ldrsh r1, [r6, r2] - bl sub_8049590 - ldrh r1, [r0] - ldr r3, _0804E99C - adds r2, r3, 0 - ands r1, r2 - strh r1, [r0] - ldrh r1, [r0, 0x4] - ldr r4, _0804E9A0 - adds r2, r4, 0 - ands r1, r2 - ldr r5, _0804E9A4 - adds r2, r5, 0 - ands r1, r2 - subs r3, 0x1 - adds r2, r3, 0 - ands r1, r2 - strh r1, [r0, 0x4] -_0804E874: - movs r4, 0x20 - add r8, r4 - adds r6, 0x20 - adds r7, 0x20 - add r9, r4 - ldr r5, [sp, 0x34] - adds r5, 0x4 - str r5, [sp, 0x34] - ldr r0, [sp, 0x38] - adds r0, 0x20 - str r0, [sp, 0x38] - ldr r1, [sp, 0x3C] - adds r1, 0x20 - str r1, [sp, 0x3C] - ldr r2, [sp, 0x20] - adds r2, 0x1 - str r2, [sp, 0x20] - ldr r3, [sp, 0x14] - cmp r2, r3 - bge _0804E89E - b _0804E604 -_0804E89E: - ldr r4, [sp, 0x2C] - str r4, [sp, 0x1C] - ldr r5, [sp, 0x10] - cmp r4, r5 - bge _0804E8AA - b _0804E5B2 -_0804E8AA: - movs r6, 0 - str r6, [sp, 0x1C] - ldr r0, [sp, 0x10] - cmp r6, r0 - bge _0804E98A -_0804E8B4: - movs r1, 0 - str r1, [sp, 0x20] - ldr r2, [sp, 0x1C] - adds r2, 0x1 - str r2, [sp, 0x2C] - ldr r3, [sp, 0x14] - cmp r1, r3 - bge _0804E980 - ldr r4, [sp, 0x1C] - lsls r4, 4 - mov r9, r4 -_0804E8CA: - ldr r5, [sp, 0x20] - lsls r2, r5, 5 - ldr r6, [sp, 0x1C] - lsls r3, r6, 4 - subs r0, r3, r6 - lsls r0, 5 - ldr r1, [sp, 0xC] - adds r4, r0, r1 - adds r1, r2, r4 - ldrb r0, [r1, 0x8] - mov r8, r2 - adds r5, 0x1 - str r5, [sp, 0x30] - cmp r0, 0 - bne _0804E976 - ldrb r0, [r1, 0x11] - cmp r0, 0 - bne _0804E976 - ldrb r0, [r1, 0xB] - cmp r0, 0 - bne _0804E976 - ldrb r0, [r1, 0xF] - cmp r0, 0 - bne _0804E976 - movs r6, 0 - ldrsh r5, [r1, r6] - movs r6, 0x4 - ldrsh r0, [r1, r6] - cmp r5, r0 - bge _0804E976 - mov r10, r4 -_0804E908: - ldr r1, [sp, 0x1C] - subs r0, r3, r1 - lsls r0, 5 - ldr r3, [sp, 0xC] - adds r0, r3 - adds r0, r2, r0 - movs r6, 0x2 - ldrsh r4, [r0, r6] - movs r1, 0x6 - ldrsh r0, [r0, r1] - adds r7, r5, 0x1 - cmp r4, r0 - bge _0804E95C - mov r6, r8 - add r6, r10 -_0804E926: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r2, [r0] - ldr r3, _0804E99C - adds r1, r3, 0 - ands r2, r1 - strh r2, [r0] - ldrh r2, [r0, 0x4] - adds r3, 0x1 - adds r1, r3, 0 - ands r2, r1 - adds r3, 0x1 - adds r1, r3, 0 - ands r2, r1 - subs r3, 0x3 - adds r1, r3, 0 - ands r2, r1 - strh r2, [r0, 0x4] - movs r1, 0xFF - strb r1, [r0, 0x9] - adds r4, 0x1 - movs r1, 0x6 - ldrsh r0, [r6, r1] - cmp r4, r0 - blt _0804E926 -_0804E95C: - adds r5, r7, 0 - mov r2, r8 - mov r3, r9 - ldr r4, [sp, 0x1C] - subs r0, r3, r4 - lsls r0, 5 - ldr r6, [sp, 0xC] - adds r0, r6 - adds r0, r2, r0 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r5, r0 - blt _0804E908 -_0804E976: - ldr r2, [sp, 0x30] - str r2, [sp, 0x20] - ldr r3, [sp, 0x14] - cmp r2, r3 - blt _0804E8CA -_0804E980: - ldr r4, [sp, 0x2C] - str r4, [sp, 0x1C] - ldr r5, [sp, 0x10] - cmp r4, r5 - blt _0804E8B4 -_0804E98A: - add sp, 0x40 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804E99C: .4byte 0x0000fffc -_0804E9A0: .4byte 0x0000fffe -_0804E9A4: .4byte 0x0000fffd - thumb_func_end sub_804E590 - - thumb_func_start sub_804E9A8 -sub_804E9A8: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsls r2, 24 - lsrs r2, 24 - ldrh r0, [r4] - ldr r5, _0804E9D8 - adds r3, r5, 0 - ands r3, r0 - strh r3, [r4] - cmp r1, 0 - beq _0804E9D0 - ldrb r0, [r4, 0x9] - cmp r0, r2 - bne _0804E9D0 - adds r0, r3, 0 - ands r0, r5 - movs r1, 0x2 - orrs r0, r1 - strh r0, [r4] -_0804E9D0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804E9D8: .4byte 0x0000fffc - thumb_func_end sub_804E9A8 - - thumb_func_start sub_804E9DC -sub_804E9DC: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - movs r0, 0x3 - mov r8, r0 - movs r7, 0x8 - ldr r3, _0804EAF0 - mov r9, r3 -_0804E9F2: - movs r4, 0 - adds r6, r5, 0x1 - mov r10, r6 -_0804E9F8: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - adds r6, r4, 0x1 - cmp r0, 0x1 - beq _0804EA0E - b _0804EB0E -_0804EA0E: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrb r0, [r0, 0x9] - cmp r0, 0xFF - bne _0804EAF4 - cmp r5, 0 - ble _0804EA4E - subs r0, r5, 0x1 - adds r1, r4, 0 - bl sub_8049590 - adds r2, r0, 0 - ldrb r0, [r2, 0x9] - cmp r0, 0xFF - beq _0804EA4E - ldrh r0, [r2] - adds r1, r0, 0 - orrs r1, r7 - movs r3, 0 - strh r1, [r2] - adds r0, r1, 0 - mov r6, r8 - ands r0, r6 - cmp r0, 0x2 - bne _0804EA4E - mov r0, r9 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strh r1, [r2] -_0804EA4E: - cmp r4, 0 - ble _0804EA82 - subs r1, r4, 0x1 - adds r0, r5, 0 - bl sub_8049590 - adds r2, r0, 0 - ldrb r0, [r2, 0x9] - cmp r0, 0xFF - beq _0804EA82 - ldrh r0, [r2] - adds r1, r0, 0 - orrs r1, r7 - movs r3, 0 - orrs r1, r7 - strh r1, [r2] - adds r0, r1, 0 - mov r6, r8 - ands r0, r6 - cmp r0, 0x2 - bne _0804EA82 - mov r0, r9 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strh r1, [r2] -_0804EA82: - adds r6, r4, 0x1 - cmp r4, 0x1E - bgt _0804EABA - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8049590 - adds r2, r0, 0 - ldrb r0, [r2, 0x9] - cmp r0, 0xFF - beq _0804EABA - ldrh r0, [r2] - adds r1, r0, 0 - orrs r1, r7 - movs r3, 0 - mov r12, r3 - orrs r1, r7 - strh r1, [r2] - adds r0, r1, 0 - mov r3, r8 - ands r0, r3 - cmp r0, 0x2 - bne _0804EABA - mov r0, r9 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strh r1, [r2] -_0804EABA: - cmp r5, 0x36 - bgt _0804EB0E - mov r0, r10 - adds r1, r4, 0 - bl sub_8049590 - adds r2, r0, 0 - ldrb r0, [r2, 0x9] - cmp r0, 0xFF - beq _0804EB0E - ldrh r0, [r2] - adds r1, r0, 0 - orrs r1, r7 - movs r3, 0 - orrs r1, r7 - strh r1, [r2] - adds r0, r1, 0 - mov r4, r8 - ands r0, r4 - cmp r0, 0x2 - bne _0804EB0E - mov r0, r9 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strh r1, [r2] - b _0804EB0E - .align 2, 0 -_0804EAF0: .4byte 0x0000fffc -_0804EAF4: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrb r0, [r0, 0x9] - cmp r0, 0xFE - bne _0804EB0E - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0xFF - strb r1, [r0, 0x9] -_0804EB0E: - adds r4, r6, 0 - cmp r4, 0x1F - bgt _0804EB16 - b _0804E9F8 -_0804EB16: - mov r5, r10 - cmp r5, 0x37 - bgt _0804EB1E - b _0804E9F2 -_0804EB1E: - bl sub_804EB30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804E9DC - - thumb_func_start sub_804EB30 -sub_804EB30: - push {r4-r7,lr} - ldr r0, _0804EBB4 - ldr r6, [r0] - movs r2, 0 - movs r1, 0x1F - ldr r3, _0804EBB8 - adds r0, r6, r3 -_0804EB3E: - strh r2, [r0] - subs r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _0804EB3E - movs r5, 0 -_0804EB4A: - movs r4, 0 - adds r7, r5, 0x1 -_0804EB4E: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0804EBA2 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrb r3, [r0, 0x9] - cmp r3, 0x1F - bhi _0804EBA2 - lsls r0, r3, 1 - ldr r2, _0804EBBC - adds r1, r6, r2 - adds r2, r1, r0 - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x1F - bgt _0804EBA2 - lsls r0, 2 - lsls r1, r3, 7 - adds r0, r1 - adds r0, r6, r0 - ldr r3, _0804EBC0 - adds r0, r3 - strh r5, [r0] - movs r3, 0 - ldrsh r0, [r2, r3] - lsls r0, 2 - adds r0, r1 - adds r0, r6, r0 - ldr r1, _0804EBC4 - adds r0, r1 - strh r4, [r0] - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] -_0804EBA2: - adds r4, 0x1 - cmp r4, 0x1F - ble _0804EB4E - adds r5, r7, 0 - cmp r5, 0x37 - ble _0804EB4A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804EBB4: .4byte gUnknown_203B418 -_0804EBB8: .4byte 0x00010882 -_0804EBBC: .4byte 0x00010844 -_0804EBC0: .4byte 0x00010884 -_0804EBC4: .4byte 0x00010886 - thumb_func_end sub_804EB30 - - thumb_func_start sub_804EBC8 -sub_804EBC8: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - str r0, [sp, 0x40] - str r1, [sp, 0x44] - mov r10, r2 - adds r4, r3, 0 - ldr r0, _0804EE90 - ldr r0, [r0] - mov r8, r0 - ldr r1, _0804EE94 - ldr r0, _0804EE98 - strh r0, [r1] - movs r0, 0x1 - negs r0, r0 - strh r0, [r1, 0x2] - ldr r0, _0804EE9C - ldrb r0, [r0] - cmp r0, 0 - beq _0804EBF8 - b _0804EED4 -_0804EBF8: - bl sub_8043D10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0804EC06 - b _0804EED4 -_0804EC06: - cmp r4, 0 - bne _0804EC0C - b _0804EED4 -_0804EC0C: - movs r0, 0x64 - bl sub_8084100 - cmp r4, r0 - bgt _0804EC18 - b _0804EED4 -_0804EC18: - movs r5, 0 - add r7, sp, 0x20 - adds r1, r7, 0 - mov r0, sp -_0804EC20: - strh r5, [r0] - strh r5, [r1] - adds r1, 0x2 - adds r0, 0x2 - adds r5, 0x1 - cmp r5, 0xE - ble _0804EC20 - movs r5, 0xC7 -_0804EC30: - movs r0, 0xF - bl sub_8084100 - adds r4, r0, 0 - movs r0, 0xF - bl sub_8084100 - lsls r4, 1 - mov r1, sp - adds r2, r1, r4 - movs r4, 0 - ldrsh r3, [r2, r4] - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - strh r3, [r1] - subs r5, 0x1 - cmp r5, 0 - bge _0804EC30 - adds r6, r7, 0 - movs r5, 0xC7 -_0804EC5C: - movs r0, 0xF - bl sub_8084100 - adds r4, r0, 0 - movs r0, 0xF - bl sub_8084100 - lsls r4, 1 - adds r4, r6, r4 - movs r1, 0 - ldrsh r2, [r4, r1] - lsls r0, 1 - adds r0, r6, r0 - ldrh r1, [r0] - strh r1, [r4] - strh r2, [r0] - subs r5, 0x1 - cmp r5, 0 - bge _0804EC5C - movs r5, 0 -_0804EC84: - lsls r0, r5, 1 - add r0, sp - movs r3, 0 - ldrsh r2, [r0, r3] - mov r9, r2 - ldr r4, [sp, 0x44] - cmp r9, r4 - blt _0804EC96 - b _0804EECC -_0804EC96: - movs r4, 0 -_0804EC98: - lsls r0, r4, 1 - adds r0, r7, r0 - movs r2, 0 - ldrsh r1, [r0, r2] - cmp r1, r10 - blt _0804ECA6 - b _0804EEC4 -_0804ECA6: - lsls r1, 5 - mov r3, r9 - lsls r2, r3, 4 - subs r0, r2, r3 - lsls r0, 5 - ldr r3, [sp, 0x40] - adds r0, r3 - adds r3, r1, r0 - ldrb r0, [r3, 0x8] - str r1, [sp, 0x4C] - str r2, [sp, 0x48] - cmp r0, 0 - beq _0804ECC2 - b _0804EEC4 -_0804ECC2: - ldrb r0, [r3, 0x11] - cmp r0, 0 - beq _0804ECCA - b _0804EEC4 -_0804ECCA: - ldrb r0, [r3, 0x12] - cmp r0, 0 - beq _0804ECD2 - b _0804EEC4 -_0804ECD2: - ldrb r0, [r3, 0xB] - cmp r0, 0 - bne _0804ECDA - b _0804EEC4 -_0804ECDA: - ldrb r0, [r3, 0xA] - cmp r0, 0 - bne _0804ECE2 - b _0804EEC4 -_0804ECE2: - ldrb r0, [r3, 0x9] - cmp r0, 0 - beq _0804ECEA - b _0804EEC4 -_0804ECEA: - ldrb r0, [r3, 0x10] - cmp r0, 0 - beq _0804ECF2 - b _0804EEC4 -_0804ECF2: - ldrb r0, [r3, 0x1D] - cmp r0, 0 - beq _0804ECFA - b _0804EEC4 -_0804ECFA: - movs r0, 0x4 - ldrsh r1, [r3, r0] - movs r2, 0 - ldrsh r0, [r3, r2] - subs r1, r0 - cmp r1, 0 - bge _0804ED0A - negs r1, r1 -_0804ED0A: - cmp r1, 0x4 - bgt _0804ED10 - b _0804EEC4 -_0804ED10: - movs r0, 0x6 - ldrsh r1, [r3, r0] - movs r2, 0x2 - ldrsh r0, [r3, r2] - subs r1, r0 - cmp r1, 0 - bge _0804ED20 - negs r1, r1 -_0804ED20: - cmp r1, 0x3 - bgt _0804ED26 - b _0804EEC4 -_0804ED26: - ldr r1, _0804EEA0 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - strb r0, [r3, 0xC] - ldr r2, _0804EEA4 - movs r4, 0 - ldrsh r0, [r3, r4] - adds r0, 0x1 - str r0, [r2] - movs r7, 0x4 - ldrsh r0, [r3, r7] - subs r0, 0x1 - str r0, [r2, 0x8] - movs r0, 0x2 - ldrsh r1, [r3, r0] - adds r1, 0x1 - str r1, [r2, 0x4] - movs r4, 0x6 - ldrsh r3, [r3, r4] - subs r0, r3, 0x1 - str r0, [r2, 0xC] - subs r0, r1 - mov r10, r2 - cmp r0, 0x2 - bgt _0804ED5C - str r3, [r2, 0xC] -_0804ED5C: - ldr r0, _0804EEA8 - add r0, r8 - ldr r1, _0804EEAC - str r1, [r0] - ldr r0, _0804EEB0 - add r0, r8 - str r1, [r0] - ldr r0, _0804EEB4 - add r0, r8 - ldr r1, _0804EEB8 - str r1, [r0] - ldr r0, _0804EEBC - add r0, r8 - str r1, [r0] - mov r7, r10 - ldr r5, [r7] - ldr r0, [r7, 0x8] - cmp r5, r0 - bge _0804EDFA - mov r3, r10 -_0804ED84: - ldr r4, [r3, 0x4] - ldr r0, [r3, 0xC] - adds r1, r5, 0x1 - str r1, [sp, 0x54] - cmp r4, r0 - bge _0804EDF0 - ldr r6, _0804EEA8 - add r6, r8 - ldr r2, _0804EEA4 - mov r10, r2 -_0804ED98: - adds r0, r5, 0 - adds r1, r4, 0 - str r3, [sp, 0x50] - bl sub_8049590 - ldrh r2, [r0] - movs r1, 0x20 - orrs r1, r2 - strh r1, [r0] - ldrh r2, [r0, 0x4] - ldr r7, _0804EEC0 - adds r1, r7, 0 - ands r2, r1 - adds r7, 0x7 - adds r1, r7, 0 - ands r2, r1 - strh r2, [r0, 0x4] - ldr r0, [r6] - ldr r3, [sp, 0x50] - cmp r0, r5 - ble _0804EDC4 - str r5, [r6] -_0804EDC4: - ldr r1, _0804EEB0 - add r1, r8 - ldr r0, [r1] - cmp r0, r4 - ble _0804EDD0 - str r4, [r1] -_0804EDD0: - ldr r1, _0804EEB4 - add r1, r8 - ldr r0, [r1] - cmp r0, r5 - bge _0804EDDC - str r5, [r1] -_0804EDDC: - ldr r1, _0804EEBC - add r1, r8 - ldr r0, [r1] - cmp r0, r4 - bge _0804EDE8 - str r4, [r1] -_0804EDE8: - adds r4, 0x1 - ldr r0, [r3, 0xC] - cmp r4, r0 - blt _0804ED98 -_0804EDF0: - ldr r5, [sp, 0x54] - mov r1, r10 - ldr r0, [r1, 0x8] - cmp r5, r0 - blt _0804ED84 -_0804EDFA: - ldr r3, [sp, 0x4C] - ldr r2, [sp, 0x48] - mov r4, r9 - subs r0, r2, r4 - lsls r0, 5 - ldr r7, [sp, 0x40] - adds r1, r0, r7 - adds r0, r3, r1 - movs r4, 0 - ldrsh r5, [r0, r4] - movs r7, 0x4 - ldrsh r0, [r0, r7] - cmp r5, r0 - bge _0804EE6C - mov r8, r1 -_0804EE18: - mov r1, r9 - subs r0, r2, r1 - lsls r0, 5 - ldr r2, [sp, 0x40] - adds r0, r2 - adds r0, r3, r0 - movs r3, 0x2 - ldrsh r4, [r0, r3] - movs r7, 0x6 - ldrsh r0, [r0, r7] - adds r1, r5, 0x1 - str r1, [sp, 0x54] - cmp r4, r0 - bge _0804EE52 - ldr r6, [sp, 0x4C] - add r6, r8 -_0804EE38: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r2, [r0, 0x4] - movs r1, 0x10 - orrs r1, r2 - strh r1, [r0, 0x4] - adds r4, 0x1 - movs r2, 0x6 - ldrsh r0, [r6, r2] - cmp r4, r0 - blt _0804EE38 -_0804EE52: - ldr r5, [sp, 0x54] - ldr r3, [sp, 0x4C] - ldr r2, [sp, 0x48] - mov r4, r9 - subs r0, r2, r4 - lsls r0, 5 - ldr r7, [sp, 0x40] - adds r0, r7 - adds r0, r3, r0 - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r5, r0 - blt _0804EE18 -_0804EE6C: - ldr r2, _0804EEA4 - ldr r0, [r2] - ldr r1, [r2, 0x8] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r5, r0, 1 - ldr r0, [r2, 0x4] - ldr r1, [r2, 0xC] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r4, r0, 1 - ldr r0, _0804EE94 - strh r5, [r0] - strh r4, [r0, 0x2] - b _0804EED4 - .align 2, 0 -_0804EE90: .4byte gUnknown_203B418 -_0804EE94: .4byte gUnknown_202F1D8 -_0804EE98: .4byte 0x0000ffff -_0804EE9C: .4byte gUnknown_202F1AB -_0804EEA0: .4byte gUnknown_202F1AA -_0804EEA4: .4byte gUnknown_202F1B8 -_0804EEA8: .4byte 0x0000e240 -_0804EEAC: .4byte 0x0000270f -_0804EEB0: .4byte 0x0000e244 -_0804EEB4: .4byte 0x0000e248 -_0804EEB8: .4byte 0xffffd8f1 -_0804EEBC: .4byte 0x0000e24c -_0804EEC0: .4byte 0x0000fff7 -_0804EEC4: - adds r4, 0x1 - cmp r4, 0xE - bgt _0804EECC - b _0804EC98 -_0804EECC: - adds r5, 0x1 - cmp r5, 0xE - bgt _0804EED4 - b _0804EC84 -_0804EED4: - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804EBC8 - - thumb_func_start sub_804EEE4 -sub_804EEE4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x108 - str r0, [sp, 0x100] - mov r8, r1 - adds r7, r2, 0 - adds r4, r3, 0 - ldr r5, _0804F094 - ldr r0, [r5] - str r0, [sp, 0x104] - cmp r4, 0 - bne _0804EF04 - b _0804F0C0 -_0804EF04: - movs r0, 0x64 - bl sub_8084100 - cmp r4, r0 - bgt _0804EF10 - b _0804F0C0 -_0804EF10: - ldr r0, _0804F098 - ldrb r0, [r0] - cmp r0, 0 - beq _0804EF1A - b _0804F0C0 -_0804EF1A: - ldr r0, [r5] - movs r1, 0xD1 - lsls r1, 3 - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _0804EF2C - b _0804F0C0 -_0804EF2C: - bl sub_8043D10 - lsls r0, 24 - cmp r0, 0 - beq _0804EF38 - b _0804F0C0 -_0804EF38: - movs r6, 0 - movs r1, 0 - cmp r1, r8 - bge _0804EF94 -_0804EF40: - adds r2, r1, 0x1 - cmp r7, 0 - ble _0804EF8E - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, [sp, 0x100] - adds r1, 0x8 - adds r1, r0, r1 - adds r3, r7, 0 -_0804EF54: - ldrb r0, [r1] - cmp r0, 0 - bne _0804EF86 - ldrb r0, [r1, 0x9] - cmp r0, 0 - bne _0804EF86 - ldrb r0, [r1, 0x3] - cmp r0, 0 - beq _0804EF86 - ldrb r0, [r1, 0x2] - cmp r0, 0 - beq _0804EF86 - ldrb r0, [r1, 0x4] - cmp r0, 0 - bne _0804EF86 - ldrb r0, [r1, 0x7] - cmp r0, 0 - bne _0804EF86 - ldrb r0, [r1, 0x8] - cmp r0, 0 - bne _0804EF86 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _0804EF86 - adds r6, 0x1 -_0804EF86: - adds r1, 0x20 - subs r3, 0x1 - cmp r3, 0 - bne _0804EF54 -_0804EF8E: - adds r1, r2, 0 - cmp r1, r8 - blt _0804EF40 -_0804EF94: - cmp r6, 0 - bne _0804EF9A - b _0804F0C0 -_0804EF9A: - movs r1, 0 - mov r0, sp - adds r0, 0xFF -_0804EFA0: - strb r1, [r0] - subs r0, 0x1 - cmp r0, sp - bge _0804EFA0 - mov r1, sp - movs r0, 0x1 - strb r0, [r1] - movs r5, 0x3F -_0804EFB0: - adds r0, r6, 0 - bl sub_8084100 - adds r4, r0, 0 - adds r0, r6, 0 - bl sub_8084100 - mov r3, sp - adds r2, r3, r4 - ldrb r3, [r2] - mov r4, sp - adds r1, r4, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - subs r5, 0x1 - cmp r5, 0 - bge _0804EFB0 - movs r5, 0 - movs r1, 0 - cmp r1, r8 - bge _0804F0C0 - ldr r6, [sp, 0x100] - mov r9, r6 - movs r4, 0 -_0804EFE2: - movs r3, 0 - cmp r3, r7 - bge _0804F0B2 - mov r10, r3 - lsls r0, r4, 5 - ldr r6, [sp, 0x100] - adds r2, r0, r6 -_0804EFF0: - ldrb r0, [r2, 0x8] - cmp r0, 0 - bne _0804F0A6 - ldrb r0, [r2, 0x11] - cmp r0, 0 - bne _0804F0A6 - ldrb r0, [r2, 0xB] - cmp r0, 0 - beq _0804F0A6 - ldrb r0, [r2, 0xA] - cmp r0, 0 - beq _0804F0A6 - ldrb r0, [r2, 0xC] - cmp r0, 0 - bne _0804F0A6 - ldrb r0, [r2, 0xF] - cmp r0, 0 - bne _0804F0A6 - ldrb r0, [r2, 0x10] - cmp r0, 0 - bne _0804F0A6 - ldrb r0, [r2, 0x9] - cmp r0, 0 - bne _0804F0A6 - mov r6, sp - adds r0, r6, r5 - ldrb r0, [r0] - cmp r0, 0 - beq _0804F0A4 - ldr r1, _0804F09C - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - strb r0, [r2, 0xE] - movs r0, 0 - ldrsh r5, [r2, r0] - movs r1, 0x4 - ldrsh r0, [r2, r1] - cmp r5, r0 - bge _0804F0C0 - mov r2, r10 - add r2, r9 - mov r8, r2 -_0804F046: - mov r1, r10 - add r1, r9 - movs r3, 0x2 - ldrsh r4, [r1, r3] - movs r6, 0x6 - ldrsh r0, [r1, r6] - adds r7, r5, 0x1 - cmp r4, r0 - bge _0804F086 - adds r6, r1, 0 -_0804F05A: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r2, [r0] - movs r1, 0x40 - orrs r1, r2 - strh r1, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrb r1, [r0, 0x9] - ldr r2, [sp, 0x104] - ldr r3, _0804F0A0 - adds r0, r2, r3 - strb r1, [r0] - adds r4, 0x1 - movs r1, 0x6 - ldrsh r0, [r6, r1] - cmp r4, r0 - blt _0804F05A -_0804F086: - adds r5, r7, 0 - mov r2, r8 - movs r3, 0x4 - ldrsh r0, [r2, r3] - cmp r5, r0 - blt _0804F046 - b _0804F0C0 - .align 2, 0 -_0804F094: .4byte gUnknown_203B418 -_0804F098: .4byte gUnknown_202F1AA -_0804F09C: .4byte gUnknown_202F1AB -_0804F0A0: .4byte 0x00003a0c -_0804F0A4: - adds r5, 0x1 -_0804F0A6: - movs r6, 0x20 - add r10, r6 - adds r2, 0x20 - adds r3, 0x1 - cmp r3, r7 - blt _0804EFF0 -_0804F0B2: - movs r0, 0xF0 - lsls r0, 1 - add r9, r0 - adds r4, 0xF - adds r1, 0x1 - cmp r1, r8 - blt _0804EFE2 -_0804F0C0: - add sp, 0x108 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804EEE4 - - thumb_func_start sub_804F0D0 -sub_804F0D0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x104 - str r0, [sp, 0x100] - mov r10, r1 - mov r9, r2 - adds r4, r3, 0 - ldr r0, _0804F244 - ldr r5, [r0] - cmp r4, 0 - bne _0804F0EE - b _0804F266 -_0804F0EE: - movs r0, 0x64 - bl sub_8084100 - cmp r4, r0 - bgt _0804F0FA - b _0804F266 -_0804F0FA: - ldr r1, _0804F248 - adds r0, r5, r1 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - blt _0804F108 - b _0804F266 -_0804F108: - movs r5, 0 - movs r6, 0 - cmp r6, r10 - bge _0804F184 -_0804F110: - adds r7, r6, 0x1 - mov r4, r9 - cmp r4, 0 - ble _0804F17E - lsls r0, r6, 4 - subs r0, r6 - lsls r0, 5 - ldr r6, [sp, 0x100] - adds r2, r0, r6 -_0804F122: - ldrb r0, [r2, 0x8] - cmp r0, 0 - bne _0804F176 - ldrb r0, [r2, 0x11] - cmp r0, 0 - bne _0804F176 - ldrb r0, [r2, 0xB] - cmp r0, 0 - beq _0804F176 - ldrb r0, [r2, 0xA] - cmp r0, 0 - beq _0804F176 - ldrb r0, [r2, 0xC] - cmp r0, 0 - bne _0804F176 - ldrb r0, [r2, 0xF] - cmp r0, 0 - bne _0804F176 - ldrb r0, [r2, 0xE] - cmp r0, 0 - bne _0804F176 - ldrb r0, [r2, 0x9] - cmp r0, 0 - bne _0804F176 - movs r1, 0x4 - ldrsh r0, [r2, r1] - movs r3, 0 - ldrsh r1, [r2, r3] - subs r0, r1 - movs r3, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0804F176 - movs r6, 0x6 - ldrsh r0, [r2, r6] - movs r6, 0x2 - ldrsh r1, [r2, r6] - subs r0, r1 - ands r0, r3 - cmp r0, 0 - beq _0804F176 - adds r5, 0x1 -_0804F176: - adds r2, 0x20 - subs r4, 0x1 - cmp r4, 0 - bne _0804F122 -_0804F17E: - adds r6, r7, 0 - cmp r6, r10 - blt _0804F110 -_0804F184: - cmp r5, 0 - beq _0804F266 - movs r1, 0 - mov r0, sp - adds r0, 0xFF -_0804F18E: - strb r1, [r0] - subs r0, 0x1 - cmp r0, sp - bge _0804F18E - mov r1, sp - movs r0, 0x1 - strb r0, [r1] - movs r7, 0x3F - mov r8, r7 -_0804F1A0: - adds r0, r5, 0 - bl sub_8084100 - adds r4, r0, 0 - adds r0, r5, 0 - bl sub_8084100 - mov r1, sp - adds r2, r1, r4 - ldrb r3, [r2] - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - movs r3, 0x1 - negs r3, r3 - add r8, r3 - mov r4, r8 - cmp r4, 0 - bge _0804F1A0 - movs r6, 0 - mov r8, r6 - cmp r6, r10 - bge _0804F266 - ldr r7, [sp, 0x100] - mov r12, r7 -_0804F1D4: - movs r4, 0 - cmp r4, r9 - bge _0804F25A - mov r2, r12 - mov r5, r12 -_0804F1DE: - ldrb r0, [r2, 0x8] - cmp r0, 0 - bne _0804F250 - ldrb r0, [r2, 0x11] - cmp r0, 0 - bne _0804F250 - ldrb r0, [r2, 0xB] - cmp r0, 0 - beq _0804F250 - ldrb r0, [r2, 0xA] - cmp r0, 0 - beq _0804F250 - ldrb r0, [r2, 0xC] - cmp r0, 0 - bne _0804F250 - ldrb r0, [r2, 0xF] - cmp r0, 0 - bne _0804F250 - ldrb r0, [r2, 0xE] - cmp r0, 0 - bne _0804F250 - ldrb r0, [r2, 0x9] - cmp r0, 0 - bne _0804F250 - movs r1, 0x4 - ldrsh r0, [r2, r1] - movs r3, 0 - ldrsh r1, [r2, r3] - subs r0, r1 - movs r3, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0804F250 - movs r7, 0x6 - ldrsh r0, [r2, r7] - movs r7, 0x2 - ldrsh r1, [r2, r7] - subs r0, r1 - ands r0, r3 - cmp r0, 0 - beq _0804F250 - mov r0, sp - add r0, r8 - ldrb r0, [r0] - cmp r0, 0 - beq _0804F24C - adds r0, r5, 0 - movs r1, 0 - bl sub_804F278 - b _0804F266 - .align 2, 0 -_0804F244: .4byte gUnknown_203B418 -_0804F248: .4byte 0x00003a16 -_0804F24C: - movs r0, 0x1 - add r8, r0 -_0804F250: - adds r2, 0x20 - adds r5, 0x20 - adds r4, 0x1 - cmp r4, r9 - blt _0804F1DE -_0804F25A: - movs r1, 0xF0 - lsls r1, 1 - add r12, r1 - adds r6, 0x1 - cmp r6, r10 - blt _0804F1D4 -_0804F266: - add sp, 0x104 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804F0D0 - - thumb_func_start sub_804F278 -sub_804F278: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r1, _0804F2B0 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - strb r0, [r4, 0x10] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl sub_804954C - ldrb r0, [r0, 0x9] - mov r9, r0 - movs r5, 0 - ldrsh r0, [r4, r5] - adds r6, r0, 0x1 - b _0804F2F0 - .align 2, 0 -_0804F2B0: .4byte gUnknown_202F1AC -_0804F2B4: - movs r2, 0x2 - ldrsh r1, [r4, r2] - subs r1, 0x1 - adds r0, r6, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - beq _0804F2EE - movs r5, 0x2 - ldrsh r3, [r4, r5] - subs r1, r3, 0x1 - movs r0, 0 - ldrsh r2, [r4, r0] - movs r5, 0x4 - ldrsh r0, [r4, r5] - str r0, [sp] - movs r5, 0x6 - ldrsh r0, [r4, r5] - str r0, [sp, 0x4] - mov r0, r8 - str r0, [sp, 0x8] - mov r5, r9 - str r5, [sp, 0xC] - adds r0, r6, 0 - bl sub_804F494 -_0804F2EE: - adds r6, 0x2 -_0804F2F0: - movs r1, 0x4 - ldrsh r0, [r4, r1] - subs r0, 0x1 - cmp r6, r0 - blt _0804F2B4 - movs r2, 0x2 - ldrsh r0, [r4, r2] - adds r5, r0, 0x1 - movs r6, 0x6 - ldrsh r0, [r4, r6] - b _0804F342 -_0804F306: - movs r1, 0x4 - ldrsh r0, [r4, r1] - adds r1, r5, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - beq _0804F33C - movs r2, 0x4 - ldrsh r0, [r4, r2] - movs r6, 0 - ldrsh r2, [r4, r6] - movs r1, 0x2 - ldrsh r3, [r4, r1] - str r0, [sp] - movs r6, 0x6 - ldrsh r1, [r4, r6] - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - mov r6, r9 - str r6, [sp, 0xC] - adds r1, r5, 0 - bl sub_804F494 -_0804F33C: - adds r5, 0x2 - movs r1, 0x6 - ldrsh r0, [r4, r1] -_0804F342: - subs r0, 0x1 - cmp r5, r0 - blt _0804F306 - movs r2, 0 - ldrsh r0, [r4, r2] - adds r6, r0, 0x1 - movs r5, 0x4 - ldrsh r0, [r4, r5] - b _0804F392 -_0804F354: - movs r0, 0x6 - ldrsh r1, [r4, r0] - adds r0, r6, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - beq _0804F38C - movs r2, 0x6 - ldrsh r1, [r4, r2] - movs r5, 0 - ldrsh r2, [r4, r5] - movs r0, 0x2 - ldrsh r3, [r4, r0] - movs r5, 0x4 - ldrsh r0, [r4, r5] - str r0, [sp] - adds r0, r1, 0 - str r0, [sp, 0x4] - mov r0, r8 - str r0, [sp, 0x8] - mov r5, r9 - str r5, [sp, 0xC] - adds r0, r6, 0 - bl sub_804F494 -_0804F38C: - adds r6, 0x2 - movs r1, 0x4 - ldrsh r0, [r4, r1] -_0804F392: - subs r0, 0x1 - cmp r6, r0 - blt _0804F354 - movs r2, 0x2 - ldrsh r0, [r4, r2] - adds r5, r0, 0x1 - movs r6, 0x6 - ldrsh r0, [r4, r6] - b _0804F3E4 -_0804F3A4: - movs r1, 0 - ldrsh r0, [r4, r1] - subs r0, 0x1 - adds r1, r5, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - beq _0804F3DE - movs r6, 0 - ldrsh r2, [r4, r6] - subs r0, r2, 0x1 - movs r1, 0x2 - ldrsh r3, [r4, r1] - movs r6, 0x4 - ldrsh r1, [r4, r6] - str r1, [sp] - movs r6, 0x6 - ldrsh r1, [r4, r6] - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - mov r6, r9 - str r6, [sp, 0xC] - adds r1, r5, 0 - bl sub_804F494 -_0804F3DE: - adds r5, 0x2 - movs r1, 0x6 - ldrsh r0, [r4, r1] -_0804F3E4: - subs r0, 0x1 - cmp r5, r0 - blt _0804F3A4 - movs r2, 0 - ldrsh r0, [r4, r2] - adds r6, r0, 0x3 - b _0804F478 -_0804F3F2: - movs r1, 0x2 - ldrsh r0, [r4, r1] - adds r5, r0, 0x3 - movs r2, 0x6 - ldrsh r0, [r4, r2] - subs r0, 0x3 - adds r1, r6, 0x2 - mov r10, r1 - cmp r5, r0 - bge _0804F476 - ldr r2, _0804F434 - adds r7, r2, 0 -_0804F40A: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _0804F46A - mov r0, r8 - cmp r0, 0 - beq _0804F438 - subs r0, r6, 0x1 - adds r1, r5, 0 - bl sub_8049590 - ldrh r1, [r0] - ands r1, r7 - movs r2, 0x2 - orrs r1, r2 - b _0804F444 - .align 2, 0 -_0804F434: .4byte 0x0000fffc -_0804F438: - subs r0, r6, 0x1 - adds r1, r5, 0 - bl sub_8049590 - ldrh r1, [r0] - ands r1, r7 -_0804F444: - strh r1, [r0] - movs r1, 0 - ldrsh r2, [r4, r1] - movs r0, 0x2 - ldrsh r3, [r4, r0] - movs r1, 0x4 - ldrsh r0, [r4, r1] - str r0, [sp] - movs r1, 0x6 - ldrsh r0, [r4, r1] - str r0, [sp, 0x4] - mov r0, r8 - str r0, [sp, 0x8] - mov r1, r9 - str r1, [sp, 0xC] - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_804F494 -_0804F46A: - adds r5, 0x2 - movs r2, 0x6 - ldrsh r0, [r4, r2] - subs r0, 0x3 - cmp r5, r0 - blt _0804F40A -_0804F476: - mov r6, r10 -_0804F478: - movs r5, 0x4 - ldrsh r0, [r4, r5] - subs r0, 0x3 - cmp r6, r0 - blt _0804F3F2 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804F278 - - thumb_func_start sub_804F494 -sub_804F494: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r0, 0 - adds r4, r1, 0 - str r2, [sp] - str r3, [sp, 0x4] - ldr r0, [sp, 0x30] - ldr r1, [sp, 0x34] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - mov r8, r1 - movs r0, 0x3 - mov r10, r0 -_0804F4BA: - movs r0, 0x4 - bl sub_8084100 - adds r6, r0, 0 - movs r7, 0 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - mov r1, r9 - mov r3, r8 - lsrs r2, r3, 24 - bl sub_804E9A8 -_0804F4D6: - adds r0, r6, 0 - mov r1, r10 - ands r0, r1 - cmp r0, 0x1 - beq _0804F4F6 - cmp r0, 0x1 - bgt _0804F4EA - cmp r0, 0 - beq _0804F4F0 - b _0804F506 -_0804F4EA: - cmp r0, 0x2 - beq _0804F4FE - b _0804F506 -_0804F4F0: - movs r0, 0x2 - movs r1, 0 - b _0804F50A -_0804F4F6: - movs r0, 0 - movs r1, 0x2 - negs r1, r1 - b _0804F50A -_0804F4FE: - movs r0, 0x2 - negs r0, r0 - movs r1, 0 - b _0804F50A -_0804F506: - movs r0, 0 - movs r1, 0x2 -_0804F50A: - adds r0, r5, r0 - ldr r2, [sp] - cmp r2, r0 - bgt _0804F534 - ldr r3, [sp, 0x28] - cmp r3, r0 - ble _0804F534 - adds r1, r4, r1 - ldr r2, [sp, 0x4] - cmp r2, r1 - bgt _0804F534 - ldr r3, [sp, 0x2C] - cmp r3, r1 - ble _0804F534 - bl sub_804954C - ldrh r1, [r0] - mov r0, r10 - ands r0, r1 - cmp r0, 0x1 - beq _0804F53E -_0804F534: - adds r6, 0x1 - adds r7, 0x1 - cmp r7, 0x3 - bgt _0804F5B2 - b _0804F4D6 -_0804F53E: - mov r0, r10 - ands r0, r6 - cmp r0, 0x1 - beq _0804F570 - cmp r0, 0x1 - bgt _0804F550 - cmp r0, 0 - beq _0804F55A - b _0804F4BA -_0804F550: - cmp r0, 0x2 - beq _0804F586 - cmp r0, 0x3 - beq _0804F59C - b _0804F4BA -_0804F55A: - adds r0, r5, 0x1 - adds r1, r4, 0 - bl sub_8049590 - mov r1, r9 - mov r3, r8 - lsrs r2, r3, 24 - bl sub_804E9A8 - adds r5, 0x2 - b _0804F4BA -_0804F570: - subs r1, r4, 0x1 - adds r0, r5, 0 - bl sub_8049590 - mov r1, r9 - mov r3, r8 - lsrs r2, r3, 24 - bl sub_804E9A8 - subs r4, 0x2 - b _0804F4BA -_0804F586: - subs r0, r5, 0x1 - adds r1, r4, 0 - bl sub_8049590 - mov r1, r9 - mov r3, r8 - lsrs r2, r3, 24 - bl sub_804E9A8 - subs r5, 0x2 - b _0804F4BA -_0804F59C: - adds r1, r4, 0x1 - adds r0, r5, 0 - bl sub_8049590 - mov r1, r9 - mov r3, r8 - lsrs r2, r3, 24 - bl sub_804E9A8 - adds r4, 0x2 - b _0804F4BA -_0804F5B2: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804F494 - - thumb_func_start sub_804F5C4 -sub_804F5C4: - ldrh r3, [r0] - ldr r2, _0804F5D4 - ands r2, r3 - movs r3, 0x2 - orrs r2, r3 - orrs r2, r1 - strh r2, [r0] - bx lr - .align 2, 0 -_0804F5D4: .4byte 0x0000fffc - thumb_func_end sub_804F5C4 - - thumb_func_start sub_804F5D8 -sub_804F5D8: - push {r4-r7,lr} - adds r5, r0, 0 - movs r0, 0 - ldrsh r6, [r5, r0] - b _0804F60C -_0804F5E2: - movs r0, 0x2 - ldrsh r4, [r5, r0] - movs r1, 0x6 - ldrsh r0, [r5, r1] - adds r7, r6, 0x1 - cmp r4, r0 - bge _0804F60A -_0804F5F0: - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r2, [r0, 0x4] - movs r1, 0x20 - orrs r1, r2 - strh r1, [r0, 0x4] - adds r4, 0x1 - movs r1, 0x6 - ldrsh r0, [r5, r1] - cmp r4, r0 - blt _0804F5F0 -_0804F60A: - adds r6, r7, 0 -_0804F60C: - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r6, r0 - blt _0804F5E2 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804F5D8 - - thumb_func_start sub_804F61C -sub_804F61C: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r0 - mov r8, r1 - movs r7, 0x1 - negs r7, r7 - b _0804F67A -_0804F62E: - movs r5, 0x1 - negs r5, r5 - b _0804F666 -_0804F634: - cmp r7, 0 - beq _0804F63C - cmp r5, 0 - bne _0804F660 -_0804F63C: - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _0804F660 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_804954C - ldrb r0, [r0, 0x9] - cmp r0, 0xFF - bne _0804F660 - movs r0, 0x1 - b _0804F686 -_0804F660: - adds r5, 0x1 - cmp r5, 0x1 - bgt _0804F672 -_0804F666: - mov r0, r8 - adds r4, r0, r5 - cmp r4, 0 - blt _0804F660 - cmp r4, 0x1F - ble _0804F634 -_0804F672: - adds r7, 0x1 - cmp r7, 0x1 - bgt _0804F684 - mov r0, r9 -_0804F67A: - adds r6, r0, r7 - cmp r6, 0 - blt _0804F672 - cmp r6, 0x37 - ble _0804F62E -_0804F684: - movs r0, 0 -_0804F686: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_804F61C - - thumb_func_start sub_804F694 -sub_804F694: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r7, r0, 0 - movs r0, 0x6 - bl sub_8084100 - subs r0, 0x1 - cmp r0, 0x4 - bls _0804F6B0 - b _0804FBD6 -_0804F6B0: - lsls r0, 2 - ldr r1, _0804F6BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804F6BC: .4byte _0804F6C0 - .align 2, 0 -_0804F6C0: - .4byte _0804FB24 - .4byte _0804FA98 - .4byte _0804F9DC - .4byte _0804F826 - .4byte _0804F6D4 -_0804F6D4: - ldr r1, _0804F70C - ldr r0, [r1] - cmp r0, 0 - bne _0804F6DE - b _0804FBD6 -_0804F6DE: - subs r0, 0x1 - str r0, [r1] - adds r0, r7, 0 - bl sub_804F5D8 - movs r0, 0x2 - bl sub_8084100 - cmp r0, 0 - beq _0804F78E - movs r5, 0 - movs r1, 0 - ldrsh r0, [r7, r1] - movs r2, 0x4 - ldrsh r1, [r7, r2] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - mov r8, r0 - movs r3, 0x2 - ldrsh r4, [r7, r3] - b _0804F712 - .align 2, 0 -_0804F70C: .4byte gUnknown_202F1C8 -_0804F710: - adds r4, 0x1 -_0804F712: - movs r1, 0x6 - ldrsh r0, [r7, r1] - cmp r4, r0 - bge _0804F72A - mov r0, r8 - adds r1, r4, 0 - bl sub_804F61C - lsls r0, 24 - cmp r0, 0 - beq _0804F710 - movs r5, 0x1 -_0804F72A: - cmp r5, 0 - beq _0804F730 - b _0804FBD6 -_0804F730: - movs r2, 0x2 - ldrsh r4, [r7, r2] - movs r3, 0x6 - ldrsh r0, [r7, r3] - cmp r4, r0 - bge _0804F754 -_0804F73C: - mov r0, r8 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0 - bl sub_804F5C4 - adds r4, 0x1 - movs r5, 0x6 - ldrsh r0, [r7, r5] - cmp r4, r0 - blt _0804F73C -_0804F754: - movs r0, 0 - ldrsh r5, [r7, r0] - cmp r5, r8 - blt _0804F75E - b _0804FBD2 -_0804F75E: - movs r1, 0x2 - ldrsh r4, [r7, r1] - movs r2, 0x6 - ldrsh r0, [r7, r2] - adds r6, r5, 0x1 - cmp r4, r0 - bge _0804F786 -_0804F76C: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r2, [r0] - movs r1, 0x80 - orrs r1, r2 - strh r1, [r0] - adds r4, 0x1 - movs r3, 0x6 - ldrsh r0, [r7, r3] - cmp r4, r0 - blt _0804F76C -_0804F786: - adds r5, r6, 0 - cmp r5, r8 - blt _0804F75E - b _0804FBD2 -_0804F78E: - movs r5, 0 - movs r4, 0x2 - ldrsh r0, [r7, r4] - movs r2, 0x6 - ldrsh r1, [r7, r2] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - mov r8, r0 - movs r3, 0 - ldrsh r4, [r7, r3] - b _0804F7AA -_0804F7A8: - adds r4, 0x1 -_0804F7AA: - movs r1, 0x4 - ldrsh r0, [r7, r1] - cmp r4, r0 - bge _0804F7C2 - adds r0, r4, 0 - mov r1, r8 - bl sub_804F61C - lsls r0, 24 - cmp r0, 0 - beq _0804F7A8 - movs r5, 0x1 -_0804F7C2: - cmp r5, 0 - beq _0804F7C8 - b _0804FBD6 -_0804F7C8: - movs r2, 0 - ldrsh r4, [r7, r2] - movs r3, 0x4 - ldrsh r0, [r7, r3] - cmp r4, r0 - bge _0804F7EC -_0804F7D4: - adds r0, r4, 0 - mov r1, r8 - bl sub_8049590 - movs r1, 0 - bl sub_804F5C4 - adds r4, 0x1 - movs r5, 0x4 - ldrsh r0, [r7, r5] - cmp r4, r0 - blt _0804F7D4 -_0804F7EC: - movs r0, 0x2 - ldrsh r5, [r7, r0] - cmp r5, r8 - blt _0804F7F6 - b _0804FBD2 -_0804F7F6: - movs r1, 0 - ldrsh r4, [r7, r1] - movs r2, 0x4 - ldrsh r0, [r7, r2] - adds r6, r5, 0x1 - cmp r4, r0 - bge _0804F81E -_0804F804: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8049590 - ldrh r2, [r0] - movs r1, 0x80 - orrs r1, r2 - strh r1, [r0] - adds r4, 0x1 - movs r3, 0x4 - ldrsh r0, [r7, r3] - cmp r4, r0 - blt _0804F804 -_0804F81E: - adds r5, r6, 0 - cmp r5, r8 - blt _0804F7F6 - b _0804FBD2 -_0804F826: - movs r4, 0x4 - ldrsh r3, [r7, r4] - movs r5, 0 - ldrsh r1, [r7, r5] - subs r0, r3, r1 - cmp r0, 0x5 - bgt _0804F836 - b _0804FBD6 -_0804F836: - movs r0, 0x6 - ldrsh r4, [r7, r0] - movs r5, 0x2 - ldrsh r2, [r7, r5] - subs r0, r4, r2 - cmp r0, 0x5 - bgt _0804F846 - b _0804FBD6 -_0804F846: - adds r0, r1, r3 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - str r0, [sp] - adds r0, r2, r4 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - str r0, [sp, 0x4] - ldr r1, _0804F9D8 - ldr r0, [r1] - cmp r0, 0 - bne _0804F864 - b _0804FBD6 -_0804F864: - subs r0, 0x1 - str r0, [r1] - adds r0, r7, 0 - bl sub_804F5D8 - ldr r5, [sp] - subs r5, 0x2 - ldr r0, [sp, 0x4] - subs r0, 0x2 - mov r10, r0 - adds r0, r5, 0 - mov r1, r10 - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - ldr r1, [sp] - subs r1, 0x1 - mov r9, r1 - mov r0, r9 - mov r1, r10 - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - ldr r0, [sp] - mov r1, r10 - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - ldr r2, [sp] - adds r2, 0x1 - mov r8, r2 - mov r0, r8 - mov r1, r10 - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - ldr r6, [sp, 0x4] - subs r6, 0x1 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - adds r0, r5, 0 - ldr r1, [sp, 0x4] - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - ldr r4, [sp, 0x4] - adds r4, 0x1 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - mov r0, r9 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - ldr r0, [sp] - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - mov r0, r8 - mov r1, r10 - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - mov r0, r8 - adds r1, r6, 0 - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - mov r0, r8 - ldr r1, [sp, 0x4] - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - mov r0, r8 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0x4 - bl sub_804F5C4 - mov r0, r9 - adds r1, r6, 0 - bl sub_8049590 - ldrh r2, [r0, 0x4] - movs r1, 0x4 - orrs r1, r2 - strh r1, [r0, 0x4] - mov r0, r9 - adds r1, r6, 0 - bl sub_8049590 - ldrh r1, [r0, 0x4] - movs r2, 0x40 - orrs r1, r2 - strh r1, [r0, 0x4] - ldr r0, [sp] - adds r1, r6, 0 - bl sub_8049590 - ldrh r1, [r0, 0x4] - movs r4, 0x2 - orrs r1, r4 - strh r1, [r0, 0x4] - mov r0, r9 - ldr r1, [sp, 0x4] - bl sub_8049590 - ldrh r1, [r0, 0x4] - orrs r1, r4 - strh r1, [r0, 0x4] - ldr r0, [sp] - ldr r1, [sp, 0x4] - bl sub_8049590 - ldrh r1, [r0, 0x4] - orrs r1, r4 - strh r1, [r0, 0x4] - mov r0, r9 - adds r1, r6, 0 - bl sub_8049590 - ldrh r1, [r0, 0x4] - movs r4, 0x10 - orrs r1, r4 - strh r1, [r0, 0x4] - ldr r0, [sp] - adds r1, r6, 0 - bl sub_8049590 - ldrh r1, [r0, 0x4] - orrs r1, r4 - strh r1, [r0, 0x4] - mov r0, r9 - ldr r1, [sp, 0x4] - bl sub_8049590 - ldrh r1, [r0, 0x4] - orrs r1, r4 - strh r1, [r0, 0x4] - ldr r0, [sp] - ldr r1, [sp, 0x4] - bl sub_8049590 - ldrh r1, [r0, 0x4] - orrs r4, r1 - strh r4, [r0, 0x4] - b _0804FBD2 - .align 2, 0 -_0804F9D8: .4byte gUnknown_202F1C8 -_0804F9DC: - movs r4, 0x4 - ldrsh r3, [r7, r4] - movs r5, 0 - ldrsh r2, [r7, r5] - subs r0, r3, r2 - cmp r0, 0x4 - bgt _0804F9EC - b _0804FBD6 -_0804F9EC: - movs r1, 0x6 - ldrsh r0, [r7, r1] - movs r4, 0x2 - ldrsh r1, [r7, r4] - subs r0, r1 - cmp r0, 0x4 - bgt _0804F9FC - b _0804FBD6 -_0804F9FC: - adds r0, r2, 0x2 - subs r1, r3, 0x3 - bl sub_808411C - adds r4, r0, 0 - movs r5, 0x2 - ldrsh r0, [r7, r5] - adds r0, 0x2 - movs r2, 0x6 - ldrsh r1, [r7, r2] - subs r1, 0x3 - bl sub_808411C - mov r10, r0 - movs r3, 0 - ldrsh r0, [r7, r3] - adds r0, 0x2 - movs r5, 0x4 - ldrsh r1, [r7, r5] - subs r1, 0x3 - bl sub_808411C - mov r9, r0 - movs r1, 0x2 - ldrsh r0, [r7, r1] - adds r0, 0x2 - movs r2, 0x6 - ldrsh r1, [r7, r2] - subs r1, 0x3 - bl sub_808411C - adds r6, r0, 0 - ldr r1, _0804FA94 - ldr r0, [r1] - cmp r0, 0 - bne _0804FA46 - b _0804FBD6 -_0804FA46: - subs r0, 0x1 - str r0, [r1] - adds r0, r7, 0 - bl sub_804F5D8 - cmp r4, r9 - ble _0804FA5A - adds r0, r4, 0 - mov r4, r9 - mov r9, r0 -_0804FA5A: - cmp r10, r6 - ble _0804FA64 - mov r0, r10 - mov r10, r6 - adds r6, r0, 0 -_0804FA64: - adds r5, r4, 0 - cmp r5, r9 - ble _0804FA6C - b _0804FBD2 -_0804FA6C: - mov r4, r10 - adds r3, r5, 0x1 - mov r8, r3 - cmp r4, r6 - bgt _0804FA8A -_0804FA76: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0 - bl sub_804F5C4 - adds r4, 0x1 - cmp r4, r6 - ble _0804FA76 -_0804FA8A: - mov r5, r8 - cmp r5, r9 - ble _0804FA6C - b _0804FBD2 - .align 2, 0 -_0804FA94: .4byte gUnknown_202F1C8 -_0804FA98: - movs r4, 0x4 - ldrsh r0, [r7, r4] - movs r5, 0 - ldrsh r1, [r7, r5] - subs r0, r1 - movs r2, 0x1 - ands r0, r2 - cmp r0, 0 - bne _0804FAAC - b _0804FBD6 -_0804FAAC: - movs r1, 0x6 - ldrsh r0, [r7, r1] - movs r3, 0x2 - ldrsh r1, [r7, r3] - subs r0, r1 - ands r0, r2 - cmp r0, 0 - bne _0804FABE - b _0804FBD6 -_0804FABE: - ldr r1, _0804FB20 - ldr r0, [r1] - cmp r0, 0 - bne _0804FAC8 - b _0804FBD6 -_0804FAC8: - subs r0, 0x1 - str r0, [r1] - adds r0, r7, 0 - bl sub_804F5D8 - movs r6, 0x3F -_0804FAD4: - movs r4, 0x4 - ldrsh r0, [r7, r4] - movs r5, 0 - ldrsh r1, [r7, r5] - subs r0, r1 - bl sub_8084100 - adds r4, r0, 0 - movs r1, 0x6 - ldrsh r0, [r7, r1] - movs r2, 0x2 - ldrsh r1, [r7, r2] - subs r0, r1 - bl sub_8084100 - adds r2, r0, 0 - adds r0, r4, r2 - movs r5, 0x1 - ands r0, r5 - cmp r0, 0 - beq _0804FB14 - movs r3, 0 - ldrsh r0, [r7, r3] - adds r0, r4 - movs r4, 0x2 - ldrsh r1, [r7, r4] - adds r1, r2 - bl sub_8049590 - movs r1, 0 - bl sub_804F5C4 -_0804FB14: - subs r6, 0x1 - cmp r6, 0 - bge _0804FAD4 - strb r5, [r7, 0x9] - b _0804FBD6 - .align 2, 0 -_0804FB20: .4byte gUnknown_202F1C8 -_0804FB24: - ldr r1, _0804FBC0 - ldr r0, [r1] - cmp r0, 0 - beq _0804FBD6 - subs r0, 0x1 - str r0, [r1] - movs r5, 0x4 - ldrsh r3, [r7, r5] - movs r0, 0 - ldrsh r2, [r7, r0] - subs r6, r3, r2 - movs r4, 0x1 - adds r0, r6, 0 - ands r0, r4 - cmp r0, 0 - beq _0804FB54 - movs r1, 0x6 - ldrsh r0, [r7, r1] - movs r5, 0x2 - ldrsh r1, [r7, r5] - subs r0, r1 - ands r0, r4 - cmp r0, 0 - bne _0804FBC4 -_0804FB54: - adds r0, r2, r3 - lsrs r1, r0, 31 - adds r0, r1 - asrs r5, r0, 1 - movs r0, 0x2 - ldrsh r3, [r7, r0] - movs r1, 0x6 - ldrsh r2, [r7, r1] - adds r0, r3, r2 - lsrs r1, r0, 31 - adds r0, r1 - asrs r4, r0, 1 - cmp r6, 0x4 - ble _0804FBAE - subs r0, r2, r3 - cmp r0, 0x4 - ble _0804FBAE - adds r0, r5, 0x1 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0 - bl sub_804F5C4 - adds r1, r4, 0x1 - adds r0, r5, 0 - bl sub_8049590 - movs r1, 0 - bl sub_804F5C4 - subs r0, r5, 0x1 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0 - bl sub_804F5C4 - subs r1, r4, 0x1 - adds r0, r5, 0 - bl sub_8049590 - movs r1, 0 - bl sub_804F5C4 -_0804FBAE: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0 - bl sub_804F5C4 - b _0804FBD2 - .align 2, 0 -_0804FBC0: .4byte gUnknown_202F1C8 -_0804FBC4: - adds r0, r7, 0 - bl sub_804F5D8 - adds r0, r7, 0 - movs r1, 0x1 - bl sub_804F278 -_0804FBD2: - movs r0, 0x1 - strb r0, [r7, 0x9] -_0804FBD6: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804F694 - - thumb_func_start sub_804FBE8 -sub_804FBE8: - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r0, _0804FC6C - adds r5, r0, 0 -_0804FBF4: - movs r4, 0 - adds r3, r6, 0x1 - mov r8, r3 -_0804FBFA: - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_8049590 - adds r2, r0, 0 - ldrh r1, [r2] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - beq _0804FC2A - movs r7, 0x88 - lsls r7, 1 - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _0804FC24 - ldrh r0, [r2, 0x4] - ldr r3, _0804FC70 - adds r1, r3, 0 - ands r0, r1 - strh r0, [r2, 0x4] -_0804FC24: - ldrh r0, [r2, 0x4] - ands r0, r5 - strh r0, [r2, 0x4] -_0804FC2A: - ldrh r3, [r2, 0x4] - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0804FC46 - ldrh r0, [r2] - movs r7, 0x80 - lsls r7, 2 - adds r1, r7, 0 - orrs r1, r0 - strh r1, [r2] - adds r0, r3, 0 - ands r0, r5 - strh r0, [r2, 0x4] -_0804FC46: - ldrh r1, [r2, 0x4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0804FC56 - adds r0, r1, 0 - ands r0, r5 - strh r0, [r2, 0x4] -_0804FC56: - adds r4, 0x1 - cmp r4, 0x1F - ble _0804FBFA - mov r6, r8 - cmp r6, 0x37 - ble _0804FBF4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804FC6C: .4byte 0x0000fffb -_0804FC70: .4byte 0x0000fffd - thumb_func_end sub_804FBE8 - - thumb_func_start sub_804FC74 -sub_804FC74: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r5, 0 - movs r0, 0x3 - mov r8, r0 - ldr r0, _0804FCC8 - adds r7, r0, 0 -_0804FC86: - movs r4, 0 - adds r6, r5, 0x1 -_0804FC8A: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - bne _0804FCAE - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r1, [r0] - ands r1, r7 - mov r2, r8 - orrs r1, r2 - strh r1, [r0] -_0804FCAE: - adds r4, 0x1 - cmp r4, 0x1F - ble _0804FC8A - adds r5, r6, 0 - cmp r5, 0x37 - ble _0804FC86 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804FCC8: .4byte 0x0000fffc - thumb_func_end sub_804FC74 - - thumb_func_start sub_804FCCC -sub_804FCCC: - push {r4-r7,lr} - movs r5, 0 - ldr r0, _0804FD0C - adds r7, r0, 0 -_0804FCD4: - movs r4, 0 - adds r6, r5, 0x1 -_0804FCD8: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0804FCF8 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r1, [r0] - ands r1, r7 - strh r1, [r0] -_0804FCF8: - adds r4, 0x1 - cmp r4, 0x1F - ble _0804FCD8 - adds r5, r6, 0 - cmp r5, 0x37 - ble _0804FCD4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804FD0C: .4byte 0x0000fffc - thumb_func_end sub_804FCCC - - thumb_func_start sub_804FD10 -sub_804FD10: - movs r2, 0 - movs r3, 0 - strh r3, [r0] - strh r3, [r0, 0x4] - movs r1, 0xFF - strb r1, [r0, 0x9] - strb r2, [r0, 0x8] - strb r2, [r0, 0xA] - strb r2, [r0, 0xB] - strb r2, [r0, 0xC] - strb r2, [r0, 0xD] - strb r2, [r0, 0xE] - str r3, [r0, 0x10] - str r3, [r0, 0x14] - bx lr - thumb_func_end sub_804FD10 - - thumb_func_start sub_804FD30 -sub_804FD30: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r6, 0 -_0804FD3A: - movs r7, 0 - adds r4, r6, 0x1 -_0804FD3E: - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_8049590 - bl sub_804FD10 - subs r3, r7, 0x1 - cmp r6, 0 - blt _0804FD5C - cmp r3, 0 - blt _0804FD5C - cmp r6, 0x37 - bgt _0804FD5C - cmp r3, 0x1F - ble _0804FD60 -_0804FD5C: - movs r0, 0x1 - b _0804FD62 -_0804FD60: - movs r0, 0 -_0804FD62: - cmp r0, 0 - bne _0804FE24 - cmp r4, 0 - blt _0804FD76 - cmp r3, 0 - blt _0804FD76 - cmp r4, 0x37 - bgt _0804FD76 - cmp r3, 0x1F - ble _0804FD7A -_0804FD76: - movs r0, 0x1 - b _0804FD7C -_0804FD7A: - movs r0, 0 -_0804FD7C: - cmp r0, 0 - bne _0804FE24 - cmp r4, 0 - blt _0804FD90 - cmp r3, 0 - blt _0804FD90 - cmp r4, 0x37 - bgt _0804FD90 - cmp r3, 0x1F - ble _0804FD94 -_0804FD90: - movs r0, 0x1 - b _0804FD96 -_0804FD94: - movs r0, 0 -_0804FD96: - cmp r0, 0 - bne _0804FE24 - adds r2, r7, 0x1 - cmp r4, 0 - blt _0804FDAC - cmp r2, 0 - blt _0804FDAC - cmp r4, 0x37 - bgt _0804FDAC - cmp r2, 0x1F - ble _0804FDB0 -_0804FDAC: - movs r0, 0x1 - b _0804FDB2 -_0804FDB0: - movs r0, 0 -_0804FDB2: - cmp r0, 0 - bne _0804FE24 - cmp r6, 0 - blt _0804FDC6 - cmp r2, 0 - blt _0804FDC6 - cmp r6, 0x37 - bgt _0804FDC6 - cmp r2, 0x1F - ble _0804FDCA -_0804FDC6: - movs r0, 0x1 - b _0804FDCC -_0804FDCA: - movs r0, 0 -_0804FDCC: - cmp r0, 0 - bne _0804FE24 - adds r0, r2, 0 - subs r1, r6, 0x1 - cmp r1, 0 - blt _0804FDE4 - cmp r0, 0 - blt _0804FDE4 - cmp r1, 0x37 - bgt _0804FDE4 - cmp r2, 0x1F - ble _0804FDE8 -_0804FDE4: - movs r0, 0x1 - b _0804FDEA -_0804FDE8: - movs r0, 0 -_0804FDEA: - cmp r0, 0 - bne _0804FE24 - cmp r1, 0 - blt _0804FDFE - cmp r7, 0 - blt _0804FDFE - cmp r1, 0x37 - bgt _0804FDFE - cmp r7, 0x1F - ble _0804FE02 -_0804FDFE: - movs r0, 0x1 - b _0804FE04 -_0804FE02: - movs r0, 0 -_0804FE04: - cmp r0, 0 - bne _0804FE24 - adds r0, r3, 0 - cmp r1, 0 - blt _0804FE1A - cmp r0, 0 - blt _0804FE1A - cmp r1, 0x37 - bgt _0804FE1A - cmp r3, 0x1F - ble _0804FE1E -_0804FE1A: - movs r0, 0x1 - b _0804FE20 -_0804FE1E: - movs r0, 0 -_0804FE20: - cmp r0, 0 - beq _0804FE34 -_0804FE24: - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_8049590 - ldrh r2, [r0] - movs r1, 0x10 - orrs r1, r2 - strh r1, [r0] -_0804FE34: - adds r7, 0x1 - cmp r7, 0x1F - ble _0804FD3E - adds r6, 0x1 - cmp r6, 0x37 - bgt _0804FE42 - b _0804FD3A -_0804FE42: - ldr r3, _0804FEB4 - ldr r1, [r3] - ldr r0, _0804FEB8 - adds r2, r1, r0 - ldr r0, _0804FEBC - strh r0, [r2] - ldr r2, _0804FEC0 - adds r1, r2 - movs r0, 0x1 - negs r0, r0 - strh r0, [r1] - movs r6, 0 - mov r8, r3 - ldr r1, _0804FEC4 -_0804FE5E: - adds r5, r1, 0 - movs r4, 0 - movs r7, 0x7 -_0804FE64: - mov r2, r8 - ldr r0, [r2] - adds r0, r5 - adds r0, r4 - str r1, [sp] - bl sub_804FD10 - adds r4, 0x18 - subs r7, 0x1 - ldr r1, [sp] - cmp r7, 0 - bge _0804FE64 - adds r1, 0xC0 - adds r6, 0x1 - cmp r6, 0x7 - ble _0804FE5E - ldr r0, _0804FEB4 - ldr r1, [r0] - ldr r2, _0804FEC8 - adds r1, r2 - movs r2, 0 - strh r2, [r1] - movs r6, 0 - adds r4, r0, 0 - ldr r3, _0804FECC -_0804FE96: - ldr r0, [r4] - lsls r1, r6, 2 - adds r0, r3 - adds r0, r1 - ldr r0, [r0] - str r2, [r0] - adds r6, 0x1 - cmp r6, 0x3F - ble _0804FE96 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804FEB4: .4byte gUnknown_203B418 -_0804FEB8: .4byte 0x0000e21c -_0804FEBC: .4byte 0x0000ffff -_0804FEC0: .4byte 0x0000e21e -_0804FEC4: .4byte 0x0000e27c -_0804FEC8: .4byte 0x00003904 -_0804FECC: .4byte 0x0001371c - thumb_func_end sub_804FD30 - - thumb_func_start sub_804FED0 -sub_804FED0: - push {r4-r7,lr} - adds r7, r0, 0 - adds r5, r1, 0 - movs r6, 0 - b _0804FEFA -_0804FEDA: - adds r0, r5, 0 - bl sub_8084100 - adds r4, r0, 0 - adds r0, r5, 0 - bl sub_8084100 - lsls r4, 2 - adds r4, r7 - ldr r2, [r4] - lsls r0, 2 - adds r0, r7 - ldr r1, [r0] - str r1, [r4] - str r2, [r0] - adds r6, 0x1 -_0804FEFA: - lsls r0, r5, 1 - cmp r6, r0 - blt _0804FEDA - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_804FED0 - - thumb_func_start sub_804FF08 -sub_804FF08: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _08050234 - add sp, r4 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0xE0 - lsls r0, 5 - add r0, sp - str r1, [r0] - ldr r0, _08050238 - ldr r0, [r0] - mov r9, r0 - ldr r0, _0805023C - add r0, r9 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _0804FF46 - ldr r0, _08050240 - add r0, r9 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, r1 - bne _08050038 -_0804FF46: - movs r0, 0 - mov r8, r0 - movs r6, 0 -_0804FF4C: - movs r5, 0 - mov r1, r8 - lsls r0, r1, 2 - mov r2, sp - adds r4, r0, r2 -_0804FF56: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_804954C - adds r1, r0, 0 - ldrh r2, [r1] - movs r0, 0x3 - ands r0, r2 - cmp r0, 0x1 - bne _0804FFAA - ldrb r0, [r1, 0x9] - cmp r0, 0xFF - beq _0804FFAA - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - bne _0804FFAA - ldrh r1, [r1, 0x4] - movs r3, 0x8 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0804FFAA - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0804FFAA - adds r0, r3, 0 - ands r0, r2 - cmp r0, 0 - bne _0804FFAA - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - bne _0804FFAA - strb r6, [r4] - strb r5, [r4, 0x1] - adds r4, 0x4 - movs r2, 0x1 - add r8, r2 -_0804FFAA: - adds r5, 0x1 - cmp r5, 0x1F - ble _0804FF56 - adds r6, 0x1 - cmp r6, 0x37 - ble _0804FF4C - mov r0, r8 - cmp r0, 0 - beq _08050038 - bl sub_8084100 - lsls r0, 2 - mov r1, sp - adds r4, r1, r0 - ldrb r0, [r4] - ldrb r1, [r4, 0x1] - bl sub_8049590 - adds r5, r0, 0 - ldrh r1, [r5, 0x4] - movs r0, 0x1 - orrs r0, r1 - ldr r1, _08050244 - ands r0, r1 - strh r0, [r5, 0x4] - ldr r1, _08050248 - ldrb r0, [r5, 0x9] - strb r0, [r1] - ldrb r1, [r4] - ldr r0, _0805023C - add r0, r9 - strh r1, [r0] - ldrb r1, [r4, 0x1] - ldr r0, _08050240 - add r0, r9 - strh r1, [r0] - bl sub_8043D10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08050038 - ldrb r4, [r5, 0x9] - movs r6, 0 -_08050002: - movs r5, 0 -_08050004: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8049590 - adds r1, r0, 0 - ldrh r2, [r1] - movs r0, 0x3 - ands r0, r2 - cmp r0, 0x1 - bne _0805002C - ldrb r0, [r1, 0x9] - cmp r0, r4 - bne _0805002C - movs r0, 0x40 - orrs r0, r2 - strh r0, [r1] - ldrb r1, [r1, 0x9] - ldr r0, _0805024C - add r0, r9 - strb r1, [r0] -_0805002C: - adds r5, 0x1 - cmp r5, 0x1F - ble _08050004 - adds r6, 0x1 - cmp r6, 0x37 - ble _08050002 -_08050038: - movs r2, 0 - mov r8, r2 - movs r6, 0 -_0805003E: - movs r5, 0 - adds r7, r6, 0x1 - mov r1, r8 - lsls r0, r1, 2 - mov r2, sp - adds r4, r0, r2 -_0805004A: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_804954C - adds r1, r0, 0 - ldrh r2, [r1] - movs r0, 0x3 - ands r0, r2 - cmp r0, 0x1 - bne _08050092 - ldrb r0, [r1, 0x9] - cmp r0, 0xFF - beq _08050092 - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - bne _08050092 - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - bne _08050092 - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - bne _08050092 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - bne _08050092 - strb r6, [r4] - strb r5, [r4, 0x1] - adds r4, 0x4 - movs r2, 0x1 - add r8, r2 -_08050092: - adds r5, 0x1 - cmp r5, 0x1F - ble _0805004A - adds r6, r7, 0 - cmp r6, 0x37 - ble _0805003E - mov r0, r8 - cmp r0, 0 - beq _080500FA - mov r1, r10 - ldrb r4, [r1, 0xF] - cmp r4, 0 - beq _080500FA - subs r0, r4, 0x2 - adds r1, r4, 0x2 - bl sub_808411C - adds r4, r0, 0 - cmp r4, 0 - bgt _080500BC - movs r4, 0x1 -_080500BC: - mov r0, sp - mov r1, r8 - bl sub_804FED0 - mov r0, r8 - bl sub_8084100 - adds r5, r0, 0 - cmp r4, 0 - ble _080500FA - adds r6, r4, 0 - lsls r0, r5, 2 - mov r2, sp - adds r4, r0, r2 -_080500D8: - ldrb r0, [r4] - ldrb r1, [r4, 0x1] - bl sub_8049590 - ldrh r2, [r0, 0x4] - movs r1, 0x2 - orrs r1, r2 - strh r1, [r0, 0x4] - adds r4, 0x4 - adds r5, 0x1 - cmp r5, r8 - bne _080500F4 - mov r4, sp - movs r5, 0 -_080500F4: - subs r6, 0x1 - cmp r6, 0 - bne _080500D8 -_080500FA: - movs r0, 0 - mov r8, r0 - movs r6, 0 -_08050100: - movs r5, 0 - adds r7, r6, 0x1 - mov r1, r8 - lsls r0, r1, 2 - mov r2, sp - adds r4, r0, r2 -_0805010C: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08050128 - strb r6, [r4] - strb r5, [r4, 0x1] - adds r4, 0x4 - movs r0, 0x1 - add r8, r0 -_08050128: - adds r5, 0x1 - cmp r5, 0x1F - ble _0805010C - adds r6, r7, 0 - cmp r6, 0x37 - ble _08050100 - mov r1, r8 - cmp r1, 0 - beq _0805018E - mov r2, r10 - ldrb r4, [r2, 0x14] - cmp r4, 0 - beq _0805018E - subs r0, r4, 0x2 - adds r1, r4, 0x2 - bl sub_808411C - adds r4, r0, 0 - cmp r4, 0 - ble _0805018E - mov r0, sp - mov r1, r8 - bl sub_804FED0 - mov r0, r8 - bl sub_8084100 - adds r5, r0, 0 - cmp r4, 0 - ble _0805018E - adds r6, r4, 0 - lsls r0, r5, 2 - mov r1, sp - adds r4, r0, r1 -_0805016C: - ldrb r0, [r4] - ldrb r1, [r4, 0x1] - bl sub_8049590 - ldrh r2, [r0, 0x4] - movs r1, 0x2 - orrs r1, r2 - strh r1, [r0, 0x4] - adds r4, 0x4 - adds r5, 0x1 - cmp r5, r8 - bne _08050188 - mov r4, sp - movs r5, 0 -_08050188: - subs r6, 0x1 - cmp r6, 0 - bne _0805016C -_0805018E: - movs r2, 0 - mov r8, r2 - movs r0, 0xE0 - lsls r0, 5 - add r0, sp - ldr r0, [r0] - cmp r0, 0 - bne _080501E4 - movs r6, 0 -_080501A0: - movs r5, 0 - adds r7, r6, 0x1 - mov r1, r8 - lsls r0, r1, 2 - mov r2, sp - adds r4, r0, r2 -_080501AC: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _080501D8 - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080501D8 - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080501D8 - strb r6, [r4] - strb r5, [r4, 0x1] - adds r4, 0x4 - movs r0, 0x1 - add r8, r0 -_080501D8: - adds r5, 0x1 - cmp r5, 0x1F - ble _080501AC - adds r6, r7, 0 - cmp r6, 0x37 - ble _080501A0 -_080501E4: - mov r1, r8 - cmp r1, 0 - beq _08050294 - lsrs r4, r1, 31 - add r4, r8 - asrs r4, 1 - lsls r0, r1, 3 - movs r1, 0xA - bl __divsi3 - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_808411C - adds r4, r0, 0 - cmp r4, 0x5 - bgt _08050208 - movs r4, 0x6 -_08050208: - ldr r0, _08050250 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r4, r0 - blt _08050214 - adds r4, r0, 0 -_08050214: - mov r0, sp - mov r1, r8 - bl sub_804FED0 - mov r0, r8 - bl sub_8084100 - adds r5, r0, 0 - cmp r4, 0 - ble _08050294 - adds r6, r4, 0 - lsls r0, r5, 2 - mov r1, sp - adds r7, r0, r1 -_08050230: - ldrb r0, [r7] - b _08050254 - .align 2, 0 -_08050234: .4byte 0xffffe3fc -_08050238: .4byte gUnknown_203B418 -_0805023C: .4byte 0x0000e21c -_08050240: .4byte 0x0000e21e -_08050244: .4byte 0x0000fffd -_08050248: .4byte gUnknown_202F1B4 -_0805024C: .4byte 0x00003a0c -_08050250: .4byte gUnknown_80F4DA0 -_08050254: - ldrb r1, [r7, 0x1] - bl sub_8049590 - adds r4, r0, 0 - movs r0, 0x2 - bl sub_8084100 - cmp r0, 0 - beq _0805026C - ldrh r0, [r4, 0x4] - movs r1, 0x2 - b _0805027E -_0805026C: - ldr r0, _08050424 - ldr r0, [r0] - ldr r2, _08050428 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08050282 - ldrh r0, [r4, 0x4] - movs r1, 0x4 -_0805027E: - orrs r0, r1 - strh r0, [r4, 0x4] -_08050282: - adds r7, 0x4 - adds r5, 0x1 - cmp r5, r8 - bne _0805028E - mov r7, sp - movs r5, 0 -_0805028E: - subs r6, 0x1 - cmp r6, 0 - bne _08050230 -_08050294: - movs r0, 0 - mov r8, r0 - movs r6, 0 -_0805029A: - movs r5, 0 - adds r7, r6, 0x1 - mov r1, r8 - lsls r0, r1, 2 - mov r2, sp - adds r4, r0, r2 -_080502A6: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_804954C - adds r1, r0, 0 - ldrh r2, [r1] - movs r0, 0x3 - ands r0, r2 - cmp r0, 0x1 - bne _080502F0 - ldrb r0, [r1, 0x9] - cmp r0, 0xFF - beq _080502F0 - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - bne _080502F0 - ldrh r1, [r1, 0x4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080502F0 - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - bne _080502F0 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - bne _080502F0 - strb r6, [r4] - strb r5, [r4, 0x1] - adds r4, 0x4 - movs r2, 0x1 - add r8, r2 -_080502F0: - adds r5, 0x1 - cmp r5, 0x1F - ble _080502A6 - adds r6, r7, 0 - cmp r6, 0x37 - ble _0805029A - mov r0, r8 - cmp r0, 0 - beq _08050356 - mov r2, r10 - ldrb r1, [r2, 0x10] - lsrs r0, r1, 1 - bl sub_808411C - adds r4, r0, 0 - cmp r4, 0 - ble _08050356 - cmp r4, 0x37 - ble _08050318 - movs r4, 0x38 -_08050318: - mov r0, sp - mov r1, r8 - bl sub_804FED0 - mov r0, r8 - bl sub_8084100 - adds r5, r0, 0 - cmp r4, 0 - ble _08050356 - adds r6, r4, 0 - lsls r0, r5, 2 - mov r1, sp - adds r4, r0, r1 -_08050334: - ldrb r0, [r4] - ldrb r1, [r4, 0x1] - bl sub_8049590 - ldrh r2, [r0, 0x4] - movs r1, 0x4 - orrs r1, r2 - strh r1, [r0, 0x4] - adds r4, 0x4 - adds r5, 0x1 - cmp r5, r8 - bne _08050350 - mov r4, sp - movs r5, 0 -_08050350: - subs r6, 0x1 - cmp r6, 0 - bne _08050334 -_08050356: - ldr r0, _0805042C - add r0, r9 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _08050372 - ldr r0, _08050430 - add r0, r9 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, r1 - bne _08050410 -_08050372: - movs r0, 0 - mov r8, r0 - movs r6, 0 -_08050378: - movs r5, 0 - adds r7, r6, 0x1 - mov r1, r8 - lsls r0, r1, 2 - mov r2, sp - adds r4, r0, r2 -_08050384: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_804954C - adds r2, r0, 0 - ldrh r1, [r2] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _080503E2 - ldrb r0, [r2, 0x9] - cmp r0, 0xFF - beq _080503E2 - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _080503E2 - movs r3, 0x8 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _080503E2 - movs r0, 0x80 - lsls r0, 1 - mov r10, r0 - mov r0, r10 - ands r0, r1 - cmp r0, 0 - bne _080503E2 - ldrh r1, [r2, 0x4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080503E2 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _080503E2 - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080503E2 - strb r6, [r4] - strb r5, [r4, 0x1] - adds r4, 0x4 - movs r1, 0x1 - add r8, r1 -_080503E2: - adds r5, 0x1 - cmp r5, 0x1F - ble _08050384 - adds r6, r7, 0 - cmp r6, 0x37 - ble _08050378 - mov r2, r8 - cmp r2, 0 - beq _08050410 - mov r0, r8 - bl sub_8084100 - lsls r0, 2 - mov r1, sp - adds r2, r1, r0 - ldrb r1, [r2] - ldr r0, _0805042C - add r0, r9 - strh r1, [r0] - ldrb r1, [r2, 0x1] - ldr r0, _08050430 - add r0, r9 - strh r1, [r0] -_08050410: - ldr r3, _08050434 - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08050424: .4byte gUnknown_203B418 -_08050428: .4byte 0x0000065c -_0805042C: .4byte 0x0000e218 -_08050430: .4byte 0x0000e21a -_08050434: .4byte 0x00001c04 - thumb_func_end sub_804FF08 - - thumb_func_start sub_8050438 -sub_8050438: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _08050470 - add sp, r4 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0xE0 - lsls r2, 5 - add r2, sp - str r1, [r2] - ldr r1, _08050474 - ldr r1, [r1] - mov r10, r1 - ldrb r1, [r0, 0x6] - cmp r1, 0 - ble _08050478 - lsrs r0, r1, 1 - bl sub_808411C - adds r7, r0, 0 - cmp r7, 0 - bgt _0805047A - movs r7, 0x1 - b _0805047A - .align 2, 0 -_08050470: .4byte 0xffffe3f8 -_08050474: .4byte gUnknown_203B418 -_08050478: - adds r7, r1, 0 -_0805047A: - movs r0, 0 - mov r8, r0 - movs r6, 0 -_08050480: - movs r5, 0 - adds r1, r6, 0x1 - mov r9, r1 - mov r2, r8 - lsls r0, r2, 2 - mov r1, sp - adds r4, r0, r1 -_0805048E: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_804954C - adds r1, r0, 0 - ldrh r3, [r1] - movs r2, 0x3 - ands r2, r3 - cmp r2, 0x1 - bne _080504F6 - ldrb r0, [r1, 0x9] - cmp r0, 0xFF - beq _080504F6 - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - bne _080504F6 - ldrh r1, [r1, 0x4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080504F6 - ands r2, r1 - cmp r2, 0 - bne _080504F6 - movs r0, 0x8 - ands r0, r3 - cmp r0, 0 - bne _080504F6 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - bne _080504F6 - ldr r0, _080506A0 - add r0, r10 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r6, r0 - bne _080504EC - ldr r0, _080506A4 - add r0, r10 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r5, r0 - beq _080504F6 -_080504EC: - strb r6, [r4] - strb r5, [r4, 0x1] - adds r4, 0x4 - movs r0, 0x1 - add r8, r0 -_080504F6: - adds r5, 0x1 - cmp r5, 0x1F - ble _0805048E - mov r6, r9 - cmp r6, 0x37 - ble _08050480 - mov r1, r8 - cmp r1, 0 - beq _0805055E - ldr r0, _080506A8 - ldr r0, [r0] - movs r2, 0xD1 - lsls r2, 3 - adds r0, r2 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0805051C - adds r7, 0x1 -_0805051C: - cmp r7, 0 - beq _0805055E - mov r0, sp - mov r1, r8 - bl sub_804FED0 - mov r0, r8 - bl sub_8084100 - adds r5, r0, 0 - cmp r7, 0 - ble _0805055E - adds r6, r7, 0 - lsls r0, r5, 2 - mov r2, sp - adds r4, r0, r2 -_0805053C: - ldrb r0, [r4] - ldrb r1, [r4, 0x1] - bl sub_8049590 - ldrh r2, [r0, 0x4] - movs r1, 0x8 - orrs r1, r2 - strh r1, [r0, 0x4] - adds r4, 0x4 - adds r5, 0x1 - cmp r5, r8 - bne _08050558 - mov r4, sp - movs r5, 0 -_08050558: - subs r6, 0x1 - cmp r6, 0 - bne _0805053C -_0805055E: - ldr r0, _080506AC - add r0, r10 - ldrb r0, [r0] - cmp r0, 0 - bne _0805056A - b _0805068C -_0805056A: - ldr r0, _080506B0 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r2, _080506B4 - add r2, sp - str r1, [r2] - movs r0, 0 - mov r8, r0 - movs r1, 0xE0 - lsls r1, 5 - add r1, sp - ldr r1, [r1] - cmp r1, 0 - beq _0805058A - movs r0, 0x3 - str r0, [r2] -_0805058A: - ldr r1, _080506B4 - add r1, sp - ldr r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - ldr r1, _080506B4 - add r1, sp - str r0, [r1] - movs r6, 0 -_080505A2: - movs r5, 0 - adds r2, r6, 0x1 - mov r9, r2 - mov r1, r8 - lsls r0, r1, 2 - mov r2, sp - adds r4, r0, r2 -_080505B0: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_804954C - adds r1, r0, 0 - ldrh r2, [r1] - movs r0, 0x3 - ands r0, r2 - cmp r0, 0x1 - bne _08050608 - ldrb r0, [r1, 0x9] - cmp r0, 0xFF - beq _08050608 - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - bne _08050608 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - bne _08050608 - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - beq _08050608 - ldr r0, _080506A0 - add r0, r10 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r6, r0 - bne _080505FE - ldr r0, _080506A4 - add r0, r10 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r5, r0 - beq _08050608 -_080505FE: - strb r6, [r4] - strb r5, [r4, 0x1] - adds r4, 0x4 - movs r2, 0x1 - add r8, r2 -_08050608: - adds r5, 0x1 - cmp r5, 0x1F - ble _080505B0 - mov r6, r9 - cmp r6, 0x37 - ble _080505A2 - mov r0, r8 - cmp r0, 0 - beq _0805068C - lsls r4, r0, 3 - subs r0, r4, r0 - movs r1, 0xA - bl __divsi3 - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0xA - bl __divsi3 - adds r1, r0, 0 - adds r0, r5, 0 - bl sub_808411C - adds r7, r0, 0 - cmp r7, 0 - bne _0805063E - movs r7, 0x1 -_0805063E: - ldr r1, _080506B4 - add r1, sp - ldr r1, [r1] - cmp r7, r1 - blt _0805064E - ldr r2, _080506B4 - add r2, sp - ldr r7, [r2] -_0805064E: - mov r0, sp - mov r1, r8 - bl sub_804FED0 - mov r0, r8 - bl sub_8084100 - adds r5, r0, 0 - cmp r7, 0 - ble _0805068C - adds r6, r7, 0 - lsls r0, r5, 2 - mov r1, sp - adds r4, r0, r1 -_0805066A: - ldrb r0, [r4] - ldrb r1, [r4, 0x1] - bl sub_8049590 - ldrh r2, [r0, 0x4] - movs r1, 0x8 - orrs r1, r2 - strh r1, [r0, 0x4] - adds r4, 0x4 - adds r5, 0x1 - cmp r5, r8 - bne _08050686 - mov r4, sp - movs r5, 0 -_08050686: - subs r6, 0x1 - cmp r6, 0 - bne _0805066A -_0805068C: - ldr r3, _080506B8 - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080506A0: .4byte 0x0000e218 -_080506A4: .4byte 0x0000e21a -_080506A8: .4byte gUnknown_203B418 -_080506AC: .4byte 0x00003a08 -_080506B0: .4byte gUnknown_80F4DA4 -_080506B4: .4byte 0x00001c04 -_080506B8: .4byte 0x00001c08 - thumb_func_end sub_8050438 - - thumb_func_start sub_80506BC -sub_80506BC: - push {lr} - adds r3, r0, 0 - movs r2, 0x1 - ldrh r1, [r3] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080506CE - movs r2, 0 -_080506CE: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080506D8 - movs r2, 0 -_080506D8: - cmp r2, 0 - beq _080506E6 - ldr r0, _080506EC - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strh r0, [r3] -_080506E6: - pop {r0} - bx r0 - .align 2, 0 -_080506EC: .4byte 0x0000fffc - thumb_func_end sub_80506BC - - thumb_func_start sub_80506F0 -sub_80506F0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xA4 - str r1, [sp, 0x64] - ldrb r1, [r1, 0xD] - ands r1, r0 - cmp r1, 0 - bne _08050708 - b _08050C20 -_08050708: - ldr r4, _08050738 - movs r0, 0x8 - bl sub_8084100 - lsls r0, 2 - adds r0, r4 - ldr r4, [r0] - cmp r4, 0 - bne _0805071C - b _08050A7C -_0805071C: - movs r0, 0x64 - bl sub_8084100 - cmp r0, 0x31 - bgt _0805073C - movs r0, 0x1 - str r0, [sp, 0x74] - movs r1, 0x1F - mov r10, r1 - movs r2, 0x1 - negs r2, r2 - str r2, [sp, 0x70] - b _08050746 - .align 2, 0 -_08050738: .4byte gUnknown_80F6DF8 -_0805073C: - movs r0, 0 - str r0, [sp, 0x74] - mov r10, r0 - movs r1, 0x1 - str r1, [sp, 0x70] -_08050746: - movs r0, 0x32 - bl sub_8084100 - adds r0, 0xA - str r0, [sp, 0x78] - movs r0, 0x2 - movs r1, 0x36 - bl sub_808411C - mov r9, r0 - movs r2, 0 - str r2, [sp, 0x6C] - subs r4, 0x1 - str r4, [sp, 0x98] -_08050762: - movs r0, 0x6 - bl sub_8084100 - adds r0, 0x2 - str r0, [sp, 0x68] - cmp r0, 0 - bne _08050772 - b _08050A38 -_08050772: - mov r0, r9 - cmp r0, 0x37 - bhi _080507B8 - mov r1, r10 - bl sub_804954C - ldrh r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - bne _0805078A - b _08050A74 -_0805078A: - mov r1, r9 - cmp r1, 0 - blt _080507A2 - mov r2, r10 - cmp r2, 0 - blt _080507A2 - mov r0, r9 - cmp r0, 0x37 - bgt _080507A2 - mov r1, r10 - cmp r1, 0x1F - ble _080507A6 -_080507A2: - movs r0, 0x1 - b _080507A8 -_080507A6: - movs r0, 0 -_080507A8: - cmp r0, 0 - bne _080507B8 - mov r0, r9 - mov r1, r10 - bl sub_8049590 - bl sub_80506BC -_080507B8: - ldr r2, [sp, 0x68] - subs r2, 0x1 - str r2, [sp, 0x68] - ldr r0, [sp, 0x6C] - add r9, r0 - ldr r1, [sp, 0x70] - add r10, r1 - mov r2, r10 - cmp r2, 0x1F - bls _080507CE - b _08050A38 -_080507CE: - ldr r0, [sp, 0x78] - subs r0, 0x1 - str r0, [sp, 0x78] - cmp r0, 0 - beq _080507DA - b _08050A30 -_080507DA: - movs r1, 0x3F - str r1, [sp, 0x7C] -_080507DE: - movs r0, 0x7 - bl sub_8084100 - subs r0, 0x3 - str r0, [sp, 0x84] - movs r0, 0x7 - bl sub_8084100 - subs r1, r0, 0x3 - ldr r6, [sp, 0x84] - add r6, r9 - subs r0, r6, 0x2 - cmp r0, 0x33 - bhi _080508DA - mov r2, r10 - adds r5, r1, r2 - cmp r5, 0x1 - ble _080508DA - cmp r5, 0x1D - bgt _080508DA - adds r4, r6, 0x1 - adds r0, r5, 0x1 - mov r8, r0 - adds r0, r4, 0 - mov r1, r8 - bl sub_804954C - ldrh r1, [r0] - movs r2, 0x3 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x2 - beq _080508B2 - adds r0, r4, 0 - adds r1, r5, 0 - str r2, [sp, 0x9C] - bl sub_804954C - ldrh r1, [r0] - ldr r2, [sp, 0x9C] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x2 - beq _080508B2 - subs r7, r5, 0x1 - adds r0, r4, 0 - adds r1, r7, 0 - bl sub_804954C - ldrh r1, [r0] - ldr r2, [sp, 0x9C] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x2 - beq _080508B2 - adds r0, r6, 0 - mov r1, r8 - bl sub_804954C - ldrh r1, [r0] - ldr r2, [sp, 0x9C] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x2 - beq _080508B2 - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_804954C - ldrh r1, [r0] - ldr r2, [sp, 0x9C] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x2 - beq _080508B2 - subs r4, r6, 0x1 - adds r0, r4, 0 - mov r1, r8 - bl sub_804954C - ldrh r1, [r0] - ldr r2, [sp, 0x9C] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x2 - beq _080508B2 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_804954C - ldrh r1, [r0] - ldr r2, [sp, 0x9C] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x2 - beq _080508B2 - adds r0, r4, 0 - adds r1, r7, 0 - bl sub_804954C - ldrh r1, [r0] - ldr r2, [sp, 0x9C] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0x2 - bne _080508DA -_080508B2: - ldr r0, [sp, 0x84] - add r0, r9 - cmp r0, 0 - blt _080508C6 - cmp r5, 0 - blt _080508C6 - cmp r0, 0x37 - bgt _080508C6 - cmp r5, 0x1F - ble _080508CA -_080508C6: - movs r1, 0x1 - b _080508CC -_080508CA: - movs r1, 0 -_080508CC: - cmp r1, 0 - bne _080508DA - adds r1, r5, 0 - bl sub_8049590 - bl sub_80506BC -_080508DA: - ldr r1, [sp, 0x7C] - subs r1, 0x1 - str r1, [sp, 0x7C] - cmp r1, 0 - blt _080508E6 - b _080507DE -_080508E6: - movs r0, 0x3 - negs r0, r0 -_080508EA: - movs r2, 0x3 - negs r2, r2 - str r2, [sp, 0x80] - mov r1, r9 - adds r1, r0, r1 - str r1, [sp, 0x90] - adds r0, 0x1 - str r0, [sp, 0x8C] - adds r7, r1, 0 - mov r5, r10 - subs r5, 0x3 -_08050900: - movs r6, 0 - subs r0, r7, 0x2 - cmp r0, 0x33 - bls _0805090A - b _08050A1A -_0805090A: - str r5, [sp, 0x88] - str r5, [sp, 0x94] - cmp r5, 0x1 - bgt _08050914 - b _08050A1A -_08050914: - cmp r5, 0x1D - ble _0805091A - b _08050A1A -_0805091A: - adds r4, r7, 0x1 - adds r3, r5, 0x1 - adds r0, r4, 0 - adds r1, r3, 0 - str r3, [sp, 0xA0] - bl sub_804954C - ldrh r1, [r0] - movs r2, 0x3 - mov r8, r2 - mov r0, r8 - ands r0, r1 - ldr r3, [sp, 0xA0] - cmp r0, 0x2 - bne _0805093A - movs r6, 0x1 -_0805093A: - adds r0, r4, 0 - adds r1, r5, 0 - str r3, [sp, 0xA0] - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - ldr r3, [sp, 0xA0] - cmp r0, 0x2 - bne _08050952 - adds r6, 0x1 -_08050952: - subs r2, r5, 0x1 - adds r0, r4, 0 - adds r1, r2, 0 - str r2, [sp, 0x9C] - str r3, [sp, 0xA0] - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - ldr r2, [sp, 0x9C] - ldr r3, [sp, 0xA0] - cmp r0, 0x2 - bne _08050970 - adds r6, 0x1 -_08050970: - adds r0, r7, 0 - adds r1, r3, 0 - str r2, [sp, 0x9C] - str r3, [sp, 0xA0] - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - ldr r2, [sp, 0x9C] - ldr r3, [sp, 0xA0] - cmp r0, 0x2 - bne _0805098C - adds r6, 0x1 -_0805098C: - adds r0, r7, 0 - adds r1, r2, 0 - str r2, [sp, 0x9C] - str r3, [sp, 0xA0] - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - ldr r2, [sp, 0x9C] - ldr r3, [sp, 0xA0] - cmp r0, 0x2 - bne _080509A8 - adds r6, 0x1 -_080509A8: - subs r4, r7, 0x1 - adds r0, r4, 0 - adds r1, r3, 0 - str r2, [sp, 0x9C] - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - ldr r2, [sp, 0x9C] - cmp r0, 0x2 - bne _080509C2 - adds r6, 0x1 -_080509C2: - adds r0, r4, 0 - adds r1, r5, 0 - str r2, [sp, 0x9C] - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - ldr r2, [sp, 0x9C] - cmp r0, 0x2 - bne _080509DA - adds r6, 0x1 -_080509DA: - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_804954C - ldrh r1, [r0] - mov r0, r8 - ands r0, r1 - cmp r0, 0x2 - bne _080509EE - adds r6, 0x1 -_080509EE: - cmp r6, 0x3 - ble _08050A1A - cmp r7, 0 - blt _08050A04 - cmp r5, 0 - blt _08050A04 - cmp r7, 0x37 - bgt _08050A04 - ldr r0, [sp, 0x88] - cmp r0, 0x1F - ble _08050A08 -_08050A04: - movs r0, 0x1 - b _08050A0A -_08050A08: - movs r0, 0 -_08050A0A: - cmp r0, 0 - bne _08050A1A - ldr r0, [sp, 0x90] - ldr r1, [sp, 0x94] - bl sub_8049590 - bl sub_80506BC -_08050A1A: - adds r5, 0x1 - ldr r1, [sp, 0x80] - adds r1, 0x1 - str r1, [sp, 0x80] - cmp r1, 0x3 - bgt _08050A28 - b _08050900 -_08050A28: - ldr r0, [sp, 0x8C] - cmp r0, 0x3 - bgt _08050A30 - b _080508EA -_08050A30: - ldr r2, [sp, 0x68] - cmp r2, 0 - beq _08050A38 - b _08050772 -_08050A38: - ldr r0, [sp, 0x6C] - cmp r0, 0 - beq _08050A54 - movs r1, 0x1 - str r1, [sp, 0x70] - ldr r2, [sp, 0x74] - cmp r2, 0 - beq _08050A4E - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0x70] -_08050A4E: - movs r1, 0 - str r1, [sp, 0x6C] - b _08050A6C -_08050A54: - movs r0, 0x64 - bl sub_8084100 - movs r2, 0x1 - str r2, [sp, 0x6C] - cmp r0, 0x31 - bgt _08050A68 - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0x6C] -_08050A68: - movs r1, 0 - str r1, [sp, 0x70] -_08050A6C: - mov r2, r10 - cmp r2, 0x1F - bhi _08050A74 - b _08050762 -_08050A74: - ldr r4, [sp, 0x98] - cmp r4, 0 - beq _08050A7C - b _0805071C -_08050A7C: - movs r0, 0 - ldr r1, [sp, 0x64] - ldrb r1, [r1, 0x15] - cmp r0, r1 - blt _08050A88 - b _08050BAE -_08050A88: - movs r2, 0 - mov r8, r2 - mov r9, r2 - movs r5, 0 - adds r0, 0x1 - mov r10, r0 - b _08050A98 -_08050A96: - adds r5, 0x1 -_08050A98: - cmp r5, 0xC7 - bgt _08050AC2 - movs r0, 0 - movs r1, 0x38 - bl sub_808411C - mov r9, r0 - movs r0, 0 - movs r1, 0x20 - bl sub_808411C - mov r8, r0 - mov r0, r9 - subs r0, 0x1 - cmp r0, 0x35 - bhi _08050A96 - mov r0, r8 - cmp r0, 0 - ble _08050A96 - cmp r0, 0x1E - bgt _08050A96 -_08050AC2: - cmp r5, 0xC8 - beq _08050BA2 - movs r7, 0 - movs r3, 0x1 - movs r1, 0 -_08050ACC: - movs r2, 0 - lsls r0, r7, 2 - adds r4, r7, 0x1 - adds r0, r7 - lsls r0, 1 - add r0, sp -_08050AD8: - cmp r7, 0 - beq _08050AE8 - cmp r7, 0x9 - beq _08050AE8 - cmp r2, 0 - beq _08050AE8 - cmp r2, 0x9 - bne _08050AEC -_08050AE8: - strb r3, [r0] - b _08050AEE -_08050AEC: - strb r1, [r0] -_08050AEE: - adds r0, 0x1 - adds r2, 0x1 - cmp r2, 0x9 - ble _08050AD8 - adds r7, r4, 0 - cmp r7, 0x9 - ble _08050ACC - movs r5, 0x4F -_08050AFE: - movs r0, 0x8 - bl sub_8084100 - adds r4, r0, 0 - adds r7, r4, 0x1 - movs r0, 0x8 - bl sub_8084100 - adds r2, r0, 0x1 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 1 - adds r0, r2, r0 - add r0, sp - ldrb r0, [r0] - cmp r0, 0 - bne _08050B50 - adds r1, r7, 0x1 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - adds r0, r2, r0 - add r0, sp - ldrb r0, [r0] - cmp r0, 0 - bne _08050B50 - lsls r0, r7, 2 - adds r0, r7 - lsls r1, r0, 1 - subs r0, r1, 0x1 - adds r0, r2, r0 - add r0, sp - ldrb r0, [r0] - cmp r0, 0 - bne _08050B50 - adds r0, r1, 0x1 - adds r0, r2, r0 - add r0, sp - ldrb r0, [r0] - cmp r0, 0 - beq _08050B60 -_08050B50: - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 1 - adds r0, r2, r0 - mov r2, sp - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] -_08050B60: - subs r5, 0x1 - cmp r5, 0 - bge _08050AFE - movs r7, 0 -_08050B68: - lsls r0, r7, 2 - adds r4, r7, 0x1 - adds r0, r7 - lsls r0, 1 - mov r6, r8 - subs r6, 0x5 - mov r1, sp - adds r5, r0, r1 - add r7, r9 - movs r2, 0x9 -_08050B7C: - ldrb r0, [r5] - cmp r0, 0 - bne _08050B92 - subs r0, r7, 0x5 - adds r1, r6, 0 - str r2, [sp, 0x9C] - bl sub_8049590 - bl sub_80506BC - ldr r2, [sp, 0x9C] -_08050B92: - adds r6, 0x1 - adds r5, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _08050B7C - adds r7, r4, 0 - cmp r7, 0x9 - ble _08050B68 -_08050BA2: - mov r0, r10 - ldr r2, [sp, 0x64] - ldrb r2, [r2, 0x15] - cmp r0, r2 - bge _08050BAE - b _08050A88 -_08050BAE: - movs r0, 0 - mov r9, r0 - movs r6, 0x1 - ldr r1, _08050BF4 - adds r5, r1, 0 -_08050BB8: - movs r2, 0 - mov r10, r2 - mov r4, r9 - adds r4, 0x1 -_08050BC0: - mov r0, r9 - mov r1, r10 - bl sub_8049590 - adds r2, r0, 0 - ldrh r3, [r2] - movs r0, 0x3 - ands r0, r3 - cmp r0, 0x2 - bne _08050C10 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - bne _08050BEA - ldrh r1, [r2, 0x4] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08050BF8 -_08050BEA: - adds r0, r3, 0 - ands r0, r5 - orrs r0, r6 - b _08050C0E - .align 2, 0 -_08050BF4: .4byte 0x0000fffc -_08050BF8: - mov r0, r9 - subs r0, 0x2 - cmp r0, 0x34 - bhi _08050C0A - mov r0, r10 - cmp r0, 0x1 - ble _08050C0A - cmp r0, 0x1E - ble _08050C10 -_08050C0A: - ldrh r0, [r2] - ands r0, r5 -_08050C0E: - strh r0, [r2] -_08050C10: - movs r1, 0x1 - add r10, r1 - mov r2, r10 - cmp r2, 0x1F - ble _08050BC0 - mov r9, r4 - cmp r4, 0x37 - ble _08050BB8 -_08050C20: - add sp, 0xA4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80506F0 - - thumb_func_start sub_8050C30 -sub_8050C30: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _08050F3C - add sp, r4 - mov r8, r0 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0xE0 - lsls r0, 3 - add r0, sp - str r2, [r0] - movs r7, 0 - mov r1, r8 - lsls r1, 5 - movs r2, 0xE2 - lsls r2, 3 - add r2, sp - str r1, [r2] -_08050C5C: - movs r6, 0 - lsls r2, r7, 5 - adds r3, r7, 0x1 - mov r10, r3 - mov r5, sp - adds r4, r2, r5 -_08050C68: - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_8049590 - adds r2, r0, 0 - ldrh r0, [r2] - movs r3, 0x3 - ands r3, r0 - movs r0, 0 - strb r0, [r4] - movs r0, 0xE0 - lsls r0, 3 - add r0, sp - ldr r0, [r0] - cmp r0, 0 - beq _08050C92 - ldrh r0, [r2] - ldr r5, _08050F40 - adds r1, r5, 0 - ands r0, r1 - strh r0, [r2] -_08050C92: - cmp r3, 0x1 - beq _08050CA8 - ldrh r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _08050CA8 - ldrb r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] -_08050CA8: - cmp r3, 0x2 - bne _08050CBE - ldrh r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _08050CBE - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] -_08050CBE: - adds r4, 0x1 - adds r6, 0x1 - cmp r6, 0x1F - ble _08050C68 - mov r7, r10 - cmp r7, 0x37 - ble _08050C5C - movs r1, 0xE2 - lsls r1, 3 - add r1, sp - ldr r0, [r1] - add r0, r9 - mov r3, sp - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x50 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08050F44 - ldr r1, [r0] - ldr r5, _08050F48 - adds r0, r1, r5 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, r8 - beq _08050CF4 - b _08050F36 -_08050CF4: - ldr r3, _08050F4C - adds r0, r1, r3 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r0, r9 - beq _08050D02 - b _08050F36 -_08050D02: - ldr r1, _08050F50 - movs r0, 0 - str r0, [r1] - movs r0, 0x40 - mov r9, r0 -_08050D0C: - movs r1, 0 - ldr r2, _08050F54 - add r2, sp - str r1, [r2] - ldr r3, _08050F50 - ldr r0, [r3] - adds r0, 0x1 - str r0, [r3] - movs r7, 0 -_08050D1E: - movs r6, 0 - lsls r2, r7, 5 - adds r5, r7, 0x1 - mov r10, r5 - subs r0, r7, 0x1 - movs r1, 0xE1 - lsls r1, 3 - add r1, sp - str r0, [r1] - lsls r0, 5 - mov r1, sp - subs r1, 0x1 - adds r5, r2, r1 - add r0, sp - mov r8, r0 - mov r2, r10 - ldr r3, _08050F58 - add r3, sp - str r2, [r3] - lsls r0, r2, 5 - add r0, sp - mov r12, r0 -_08050D4A: - ldrb r1, [r5, 0x1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08050D56 - b _08050EDA -_08050D56: - movs r3, 0x40 - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _08050D62 - b _08050EDA -_08050D62: - ldr r2, _08050F54 - add r2, sp - ldr r0, [r2] - adds r0, 0x1 - str r0, [r2] - movs r0, 0xBF - ands r0, r1 - movs r2, 0 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r5, 0x1] - cmp r7, 0 - ble _08050D90 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x83 - ands r0, r1 - cmp r0, 0 - bne _08050D90 - adds r0, r1, 0 - orrs r0, r3 - mov r1, r8 - strb r0, [r1] -_08050D90: - cmp r6, 0 - ble _08050DA4 - ldrb r1, [r5] - movs r0, 0x83 - ands r0, r1 - cmp r0, 0 - bne _08050DA4 - mov r0, r9 - orrs r0, r1 - strb r0, [r5] -_08050DA4: - cmp r7, 0x36 - bgt _08050DBA - mov r2, r12 - ldrb r1, [r2] - movs r0, 0x83 - ands r0, r1 - cmp r0, 0 - bne _08050DBA - mov r0, r9 - orrs r0, r1 - strb r0, [r2] -_08050DBA: - cmp r6, 0x1E - bgt _08050DCE - ldrb r1, [r5, 0x2] - movs r0, 0x83 - ands r0, r1 - cmp r0, 0 - bne _08050DCE - mov r0, r9 - orrs r0, r1 - strb r0, [r5, 0x2] -_08050DCE: - cmp r7, 0 - ble _08050E12 - cmp r6, 0 - ble _08050E12 - movs r3, 0xE1 - lsls r3, 3 - add r3, sp - ldr r3, [r3] - lsls r1, r3, 5 - subs r0, r1, 0x1 - adds r0, r6, r0 - mov r2, sp - adds r4, r2, r0 - ldrb r3, [r4] - movs r0, 0x87 - ands r0, r3 - cmp r0, 0 - bne _08050E12 - adds r0, r6, r1 - add r0, sp - ldrb r1, [r0] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08050E12 - ldrb r1, [r5] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08050E12 - mov r0, r9 - orrs r0, r3 - strb r0, [r4] -_08050E12: - cmp r7, 0x36 - bgt _08050E54 - cmp r6, 0 - ble _08050E54 - ldr r3, _08050F58 - add r3, sp - ldr r3, [r3] - lsls r1, r3, 5 - subs r0, r1, 0x1 - adds r0, r6, r0 - mov r2, sp - adds r4, r2, r0 - ldrb r3, [r4] - movs r0, 0x87 - ands r0, r3 - cmp r0, 0 - bne _08050E54 - adds r0, r6, r1 - add r0, sp - ldrb r1, [r0] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08050E54 - ldrb r1, [r5] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08050E54 - mov r0, r9 - orrs r0, r3 - strb r0, [r4] -_08050E54: - cmp r7, 0 - ble _08050E98 - cmp r6, 0x1E - bgt _08050E98 - movs r3, 0xE1 - lsls r3, 3 - add r3, sp - ldr r3, [r3] - lsls r1, r3, 5 - adds r0, r1, 0x1 - adds r0, r6, r0 - mov r2, sp - adds r4, r2, r0 - ldrb r3, [r4] - movs r0, 0x87 - ands r0, r3 - cmp r0, 0 - bne _08050E98 - adds r0, r6, r1 - add r0, sp - ldrb r1, [r0] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08050E98 - ldrb r1, [r5, 0x2] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08050E98 - mov r0, r9 - orrs r0, r3 - strb r0, [r4] -_08050E98: - cmp r7, 0x36 - bgt _08050EDA - cmp r6, 0x1E - bgt _08050EDA - ldr r3, _08050F58 - add r3, sp - ldr r3, [r3] - lsls r1, r3, 5 - adds r0, r1, 0x1 - adds r0, r6, r0 - mov r2, sp - adds r4, r2, r0 - ldrb r3, [r4] - movs r0, 0x87 - ands r0, r3 - cmp r0, 0 - bne _08050EDA - adds r0, r6, r1 - add r0, sp - ldrb r1, [r0] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08050EDA - ldrb r1, [r5, 0x2] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08050EDA - mov r0, r9 - orrs r0, r3 - strb r0, [r4] -_08050EDA: - adds r5, 0x1 - movs r3, 0x1 - add r8, r3 - add r12, r3 - adds r6, 0x1 - cmp r6, 0x1F - bgt _08050EEA - b _08050D4A -_08050EEA: - mov r7, r10 - cmp r7, 0x37 - bgt _08050EF2 - b _08050D1E -_08050EF2: - ldr r5, _08050F54 - add r5, sp - ldr r5, [r5] - cmp r5, 0 - beq _08050EFE - b _08050D0C -_08050EFE: - movs r7, 0 -_08050F00: - movs r6, 0 - lsls r2, r7, 5 - mov r0, sp - adds r4, r2, r0 -_08050F08: - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_8049590 - adds r2, r0, 0 - ldrb r1, [r4] - movs r0, 0x87 - ands r0, r1 - cmp r0, 0 - bne _08050F68 - movs r1, 0xE0 - lsls r1, 3 - add r1, sp - ldr r1, [r1] - cmp r1, 0 - bne _08050F5C - ldrh r0, [r2] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08050F68 -_08050F36: - movs r0, 0 - b _08050F78 - .align 2, 0 -_08050F3C: .4byte 0xfffff8ec -_08050F40: .4byte 0x00007fff -_08050F44: .4byte gUnknown_203B418 -_08050F48: .4byte 0x0000e21c -_08050F4C: .4byte 0x0000e21e -_08050F50: .4byte gUnknown_202F1D4 -_08050F54: .4byte 0x00000704 -_08050F58: .4byte 0x0000070c -_08050F5C: - ldrh r1, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2] -_08050F68: - adds r4, 0x1 - adds r6, 0x1 - cmp r6, 0x1F - ble _08050F08 - adds r7, 0x1 - cmp r7, 0x37 - ble _08050F00 - movs r0, 0x1 -_08050F78: - ldr r3, _08050F8C - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08050F8C: .4byte 0x00000714 - thumb_func_end sub_8050C30 - - thumb_func_start sub_8050F90 -sub_8050F90: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - str r0, [sp] - str r1, [sp, 0x4] - str r2, [sp, 0x8] - str r3, [sp, 0xC] - movs r0, 0 - str r0, [sp, 0x10] - movs r1, 0 - str r1, [sp, 0x14] - movs r2, 0 - b _080511D0 -_08050FB0: - movs r4, 0 - str r4, [sp, 0x18] - ldr r5, [sp, 0x1C] - adds r5, 0x1 - str r5, [sp, 0x28] - ldr r6, [sp, 0x4] - cmp r4, r6 - blt _08050FC2 - b _080511CE -_08050FC2: - ldr r1, [sp, 0x18] - lsls r0, r1, 2 - ldr r2, [sp, 0xC] - adds r0, r2 - ldr r3, [r0] - adds r4, r3, 0x2 - mov r9, r4 - ldr r5, [sp, 0x1C] - lsls r1, r5, 2 - ldr r6, [sp, 0x5C] - adds r1, r6 - ldr r2, [r1] - adds r4, r2, 0x2 - mov r10, r4 - ldr r0, [r0, 0x4] - subs r0, r3 - subs r4, r0, 0x4 - ldr r0, [r1, 0x4] - subs r0, r2 - subs r7, r0, 0x4 - movs r3, 0x5 - movs r5, 0x5 - ldr r6, [sp, 0x4] - cmp r6, 0x2 - bgt _08050FF8 - movs r3, 0xA - movs r4, 0xE -_08050FF8: - ldr r0, [sp, 0x8] - cmp r0, 0x1 - bne _08051002 - movs r5, 0x10 - movs r7, 0x18 -_08051002: - ldr r2, [sp, 0x1C] - lsls r1, r2, 5 - ldr r6, [sp, 0x18] - lsls r2, r6, 4 - subs r0, r2, r6 - lsls r0, 5 - ldr r6, [sp] - adds r0, r6 - adds r6, r1, r0 - ldrb r0, [r6, 0xA] - str r1, [sp, 0x30] - str r2, [sp, 0x2C] - cmp r0, 0 - bne _08051020 - b _08051130 -_08051020: - ldr r0, [sp, 0x14] - ldr r1, [sp, 0x60] - cmp r0, r1 - beq _0805108C - adds r0, r3, 0 - adds r1, r4, 0 - bl sub_808411C - adds r6, r0, 0 - adds r0, r5, 0 - adds r1, r7, 0 - bl sub_808411C - adds r5, r0, 0 - movs r1, 0x1 - adds r0, r6, 0 - orrs r0, r1 - cmp r0, r4 - bge _08051048 - adds r6, r0, 0 -_08051048: - adds r0, r5, 0 - orrs r0, r1 - cmp r0, r7 - bge _08051052 - adds r5, r0, 0 -_08051052: - lsls r0, r5, 1 - adds r0, r5 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r6, r0 - ble _08051062 - adds r6, r0, 0 -_08051062: - lsls r0, r6, 1 - adds r0, r6 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - cmp r5, r0 - ble _08051072 - adds r5, r0, 0 -_08051072: - subs r0, r4, r6 - bl sub_8084100 - mov r2, r9 - adds r4, r0, r2 - subs r0, r7, r5 - bl sub_8084100 - mov r3, r10 - adds r7, r0, r3 - adds r3, r4, r6 - adds r6, r7, r5 - b _08051098 -_0805108C: - mov r4, r9 - mov r7, r10 - ldr r5, [sp, 0x64] - adds r3, r4, r5 - ldr r0, [sp, 0x68] - adds r6, r7, r0 -_08051098: - ldr r1, [sp, 0x2C] - ldr r2, [sp, 0x18] - subs r0, r1, r2 - lsls r0, 5 - ldr r5, [sp] - adds r0, r5 - ldr r1, [sp, 0x30] - adds r0, r1, r0 - strh r4, [r0] - strh r3, [r0, 0x4] - strh r7, [r0, 0x2] - strh r6, [r0, 0x6] - adds r5, r4, 0 - ldr r2, [sp, 0x10] - adds r2, 0x1 - str r2, [sp, 0x20] - ldr r4, [sp, 0x14] - adds r4, 0x1 - str r4, [sp, 0x24] - ldr r0, [sp, 0x18] - adds r0, 0x1 - mov r10, r0 - cmp r5, r3 - bge _08051108 -_080510C8: - adds r4, r7, 0 - adds r1, r5, 0x1 - mov r8, r1 - cmp r4, r6 - bge _08051102 - ldr r2, _0805112C - mov r9, r2 -_080510D6: - adds r0, r5, 0 - adds r1, r4, 0 - str r3, [sp, 0x38] - bl sub_8049590 - ldrh r1, [r0] - mov r2, r9 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - mov r1, sp - ldrb r1, [r1, 0x10] - strb r1, [r0, 0x9] - adds r4, 0x1 - ldr r3, [sp, 0x38] - cmp r4, r6 - blt _080510D6 -_08051102: - mov r5, r8 - cmp r5, r3 - blt _080510C8 -_08051108: - ldr r2, [sp, 0x14] - ldr r3, [sp, 0x60] - cmp r2, r3 - beq _08051124 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x18] - subs r0, r4, r5 - lsls r0, 5 - ldr r6, [sp] - adds r0, r6 - ldr r1, [sp, 0x30] - adds r0, r1, r0 - movs r1, 0x1 - strb r1, [r0, 0x1D] -_08051124: - ldr r2, [sp, 0x20] - str r2, [sp, 0x10] - b _080511BE - .align 2, 0 -_0805112C: .4byte 0x0000fffc -_08051130: - movs r1, 0x2 - movs r3, 0x4 - movs r2, 0x2 - mov r8, r3 - ldr r5, [sp, 0x18] - cmp r5, 0 - bne _08051140 - movs r1, 0x1 -_08051140: - ldr r0, [sp, 0x1C] - cmp r0, 0 - bne _08051148 - movs r2, 0x1 -_08051148: - ldr r0, [sp, 0x4] - subs r0, 0x1 - ldr r5, [sp, 0x18] - cmp r5, r0 - bne _08051154 - movs r3, 0x2 -_08051154: - ldr r0, [sp, 0x8] - subs r0, 0x1 - ldr r5, [sp, 0x1C] - cmp r5, r0 - bne _08051162 - movs r0, 0x2 - mov r8, r0 -_08051162: - mov r5, r9 - adds r0, r5, r1 - adds r1, r5, r4 - subs r1, r3 - str r2, [sp, 0x34] - bl sub_808411C - adds r5, r0, 0 - ldr r2, [sp, 0x34] - mov r1, r10 - adds r0, r1, r2 - adds r1, r7 - mov r2, r8 - subs r1, r2 - bl sub_808411C - adds r4, r0, 0 - strh r5, [r6] - adds r0, r5, 0x1 - strh r0, [r6, 0x4] - strh r4, [r6, 0x2] - adds r0, r4, 0x1 - strh r0, [r6, 0x6] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - ldrh r1, [r0] - ldr r3, _080511EC - adds r2, r3, 0 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strh r1, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8049590 - movs r1, 0xFF - strb r1, [r0, 0x9] - ldr r4, [sp, 0x14] - adds r4, 0x1 - str r4, [sp, 0x24] - ldr r5, [sp, 0x18] - adds r5, 0x1 - mov r10, r5 -_080511BE: - ldr r6, [sp, 0x24] - str r6, [sp, 0x14] - mov r0, r10 - str r0, [sp, 0x18] - ldr r1, [sp, 0x4] - cmp r0, r1 - bge _080511CE - b _08050FC2 -_080511CE: - ldr r2, [sp, 0x28] -_080511D0: - str r2, [sp, 0x1C] - ldr r3, [sp, 0x8] - cmp r2, r3 - bge _080511DA - b _08050FB0 -_080511DA: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080511EC: .4byte 0x0000fffc - thumb_func_end sub_8050F90 - - thumb_func_start sub_80511F0 -sub_80511F0: - push {r4-r6,lr} - ldr r6, _08051204 - ldrb r0, [r6] - cmp r0, 0 - beq _0805120C - subs r0, 0x1 - strb r0, [r6] - ldr r0, _08051208 - ldrb r0, [r0] - b _08051244 - .align 2, 0 -_08051204: .4byte gUnknown_202F1E1 -_08051208: .4byte gUnknown_202F1E0 -_0805120C: - ldr r1, _0805122C - ldr r5, _08051230 - ldr r2, [r5] - ldrb r3, [r2] - strb r3, [r1] - adds r4, r2, 0x1 - str r4, [r5] - lsls r0, r3, 24 - lsrs r0, 24 - cmp r0, 0xE - bne _08051234 - ldrb r0, [r2, 0x1] - strb r0, [r1] - adds r0, r4, 0x1 - str r0, [r5] - b _08051242 - .align 2, 0 -_0805122C: .4byte gUnknown_202F1E0 -_08051230: .4byte gUnknown_202F1DC -_08051234: - movs r0, 0xF - ands r0, r3 - strb r0, [r6] - movs r0, 0xF0 - ands r0, r3 - lsrs r0, 4 - strb r0, [r1] -_08051242: - ldrb r0, [r1] -_08051244: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80511F0 - - thumb_func_start sub_805124C -sub_805124C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r5, [sp, 0x1C] - lsls r1, 24 - lsrs r1, 24 - lsls r5, 24 - lsrs r5, 24 - ldrh r6, [r0] - movs r7, 0x80 - lsls r7, 1 - adds r4, r7, 0 - movs r7, 0 - mov r8, r7 - orrs r4, r6 - strh r4, [r0] - mov r4, r8 - strb r4, [r0, 0xE] - str r5, [sp] - bl sub_8051A74 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_805124C - - thumb_func_start sub_8051288 -sub_8051288: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - str r0, [sp, 0x4] - ldr r0, _08051374 - ldr r7, [r0] - ldr r0, _08051378 - adds r3, r7, r0 - ldr r0, [r3] - ldr r0, [r0, 0x4] - ldr r2, [sp, 0x4] - lsls r1, r2, 2 - adds r0, r1, r0 - ldr r0, [r0] - ldrb r2, [r0] - mov r10, r2 - ldrb r0, [r0, 0x1] - mov r9, r0 - ldr r2, _0805137C - adds r0, r7, r2 - movs r4, 0 - mov r2, r10 - strh r2, [r0] - ldr r2, _08051380 - adds r0, r7, r2 - mov r2, r9 - strh r2, [r0] - ldr r2, _08051384 - ldr r0, [r3] - ldr r0, [r0, 0x4] - adds r1, r0 - ldr r0, [r1] - adds r0, 0x3 - str r0, [r2] - ldr r0, _08051388 - strb r4, [r0] - movs r6, 0x5 - mov r0, r9 - adds r0, 0x5 - cmp r6, r0 - bge _0805132E - movs r1, 0x5 - add r1, r10 - mov r8, r1 - str r0, [sp, 0x8] -_080512E8: - movs r5, 0x5 - cmp r5, r8 - bge _08051326 -_080512EE: - bl sub_80511F0 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8049590 - movs r1, 0x1 - str r1, [sp] - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_805124C - lsls r0, 24 - cmp r0, 0 - beq _08051320 - ldr r2, _0805138C - adds r0, r7, r2 - strh r5, [r0] - ldr r1, _08051390 - adds r0, r7, r1 - strh r6, [r0] -_08051320: - adds r5, 0x1 - cmp r5, r8 - blt _080512EE -_08051326: - adds r6, 0x1 - ldr r2, [sp, 0x8] - cmp r6, r2 - blt _080512E8 -_0805132E: - movs r6, 0 - ldr r0, _08051394 - adds r7, r0, 0 -_08051334: - movs r5, 0 - adds r4, r6, 0x1 -_08051338: - cmp r5, 0x4 - ble _08051350 - mov r0, r10 - adds r0, 0x5 - cmp r5, r0 - bge _08051350 - cmp r6, 0x4 - ble _08051350 - mov r0, r9 - adds r0, 0x5 - cmp r6, r0 - blt _080513A0 -_08051350: - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8049590 - adds r2, r0, 0 - ldrh r1, [r2] - movs r0, 0x10 - movs r3, 0 - orrs r1, r0 - strh r1, [r2] - ldr r0, _08051398 - ldrb r0, [r0] - cmp r0, 0 - beq _0805139C - ands r1, r7 - movs r0, 0x3 - orrs r1, r0 - b _0805139E - .align 2, 0 -_08051374: .4byte gUnknown_203B418 -_08051378: .4byte 0x00013568 -_0805137C: .4byte 0x0000e260 -_08051380: .4byte 0x0000e262 -_08051384: .4byte gUnknown_202F1DC -_08051388: .4byte gUnknown_202F1E1 -_0805138C: .4byte 0x0000e21c -_08051390: .4byte 0x0000e21e -_08051394: .4byte 0x0000fffc -_08051398: .4byte gUnknown_202F1A8 -_0805139C: - ands r1, r7 -_0805139E: - strh r1, [r2] -_080513A0: - adds r5, 0x1 - cmp r5, 0x37 - ble _08051338 - adds r6, r4, 0 - cmp r6, 0x1F - ble _08051334 - ldr r1, [sp, 0x4] - cmp r1, 0x4 - bne _080513DA - movs r6, 0x5 - ldr r2, _0805142C - adds r7, r2, 0 -_080513B8: - movs r5, 0x2 - adds r4, r6, 0x1 -_080513BC: - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8049590 - ldrh r2, [r0] - movs r1, 0x10 - orrs r1, r2 - ands r1, r7 - strh r1, [r0] - adds r5, 0x1 - cmp r5, 0x4 - ble _080513BC - adds r6, r4, 0 - cmp r6, 0x10 - ble _080513B8 -_080513DA: - ldr r0, _08051430 - ldr r0, [r0] - ldr r1, _08051434 - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0x3F - ble _08051416 - movs r6, 0 -_080513EC: - movs r5, 0 - adds r4, r6, 0x1 -_080513F0: - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8049590 - adds r2, r0, 0 - ldrh r1, [r2] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0805140A - movs r0, 0x10 - orrs r0, r1 - strh r0, [r2] -_0805140A: - adds r5, 0x1 - cmp r5, 0x37 - ble _080513F0 - adds r6, r4, 0 - cmp r6, 0x1F - ble _080513EC -_08051416: - bl sub_804E9DC - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0805142C: .4byte 0x0000fffc -_08051430: .4byte gUnknown_203B418 -_08051434: .4byte 0x00003a0e - thumb_func_end sub_8051288 - - thumb_func_start sub_8051438 -sub_8051438: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - mov r9, r0 - ldr r0, _080515AC - ldr r0, [r0] - str r0, [sp, 0x4] - ldr r2, _080515B0 - ldr r4, _080515B4 - adds r3, r0, r4 - ldr r0, [r3] - ldr r0, [r0, 0x4] - lsls r1, 2 - adds r0, r1, r0 - ldr r0, [r0] - adds r0, 0x3 - str r0, [r2] - ldr r2, _080515B8 - movs r0, 0 - strb r0, [r2] - ldr r0, [r3] - ldr r0, [r0, 0x4] - adds r1, r0 - ldr r0, [r1] - ldrb r1, [r0, 0x2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0805147A - b _080515D8 -_0805147A: - ldr r5, [sp, 0x4] - ldr r0, _080515BC - adds r1, r5, r0 - mov r2, r9 - movs r3, 0 - ldrsh r0, [r2, r3] - str r0, [r1] - ldr r4, _080515C0 - adds r1, r5, r4 - movs r5, 0x2 - ldrsh r0, [r2, r5] - str r0, [r1] - ldr r0, [sp, 0x4] - ldr r2, _080515C4 - adds r1, r0, r2 - mov r3, r9 - movs r4, 0x4 - ldrsh r0, [r3, r4] - str r0, [r1] - ldr r5, [sp, 0x4] - ldr r0, _080515C8 - adds r1, r5, r0 - movs r2, 0x6 - ldrsh r0, [r3, r2] - str r0, [r1] - movs r3, 0 - str r3, [sp, 0x8] - mov r4, r9 - movs r5, 0x2 - ldrsh r4, [r4, r5] - mov r8, r4 - mov r1, r9 - movs r2, 0x6 - ldrsh r0, [r1, r2] - cmp r8, r0 - blt _080514C4 - b _08051640 -_080514C4: - mov r3, r9 - movs r4, 0 - ldrsh r7, [r3, r4] - movs r5, 0x4 - ldrsh r0, [r3, r5] - ldr r1, [sp, 0x8] - adds r1, 0x1 - str r1, [sp, 0x10] - mov r2, r8 - adds r2, 0x1 - str r2, [sp, 0xC] - cmp r7, r0 - bge _08051598 - ldr r4, _080515CC - ldr r3, [sp, 0x4] - adds r4, r3, r4 - str r4, [sp, 0x14] - movs r5, 0 - str r5, [sp, 0x18] - ldr r0, [sp, 0x8] - mov r10, r0 -_080514EE: - bl sub_80511F0 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r7, 0 - mov r1, r8 - bl sub_8049590 - adds r6, r0, 0 - ldr r1, [sp, 0x4] - ldr r2, _080515D0 - adds r0, r1, r2 - add r0, r10 - strb r5, [r0] - ldr r3, [sp, 0x8] - lsls r4, r3, 1 - adds r4, r3 - lsls r4, 3 - ldr r1, [sp, 0x14] - adds r0, r1, r4 - movs r2, 0 - str r2, [sp] - adds r1, r5, 0 - adds r2, r7, 0 - mov r3, r8 - bl sub_805124C - ldrb r1, [r6, 0x9] - ldr r3, [sp, 0x18] - adds r4, r3 - ldr r5, [sp, 0x4] - adds r4, r5, r4 - adds r0, r6, 0 - ldr r2, _080515CC - adds r4, r2 - ldm r4!, {r2,r3,r5} - stm r0!, {r2,r3,r5} - ldm r4!, {r2,r3,r5} - stm r0!, {r2,r3,r5} - mov r3, r9 - movs r4, 0 - ldrsh r0, [r3, r4] - adds r0, 0x2 - cmp r7, r0 - blt _08051572 - movs r5, 0x4 - ldrsh r0, [r3, r5] - subs r0, 0x2 - cmp r7, r0 - bge _08051572 - movs r2, 0x2 - ldrsh r0, [r3, r2] - adds r0, 0x2 - cmp r8, r0 - blt _08051572 - movs r4, 0x6 - ldrsh r0, [r3, r4] - subs r0, 0x2 - cmp r8, r0 - bge _08051572 - movs r0, 0x88 - lsls r0, 1 - strh r0, [r6] - movs r0, 0xE - strb r0, [r6, 0xE] -_08051572: - strb r1, [r6, 0x9] - ldr r5, [sp, 0x4] - ldr r2, _080515D4 - adds r0, r5, r2 - strb r1, [r0] - ldr r3, [sp, 0x14] - adds r3, 0xC0 - str r3, [sp, 0x14] - ldr r4, [sp, 0x18] - adds r4, 0xC0 - str r4, [sp, 0x18] - movs r5, 0x8 - add r10, r5 - adds r7, 0x1 - mov r1, r9 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r7, r0 - blt _080514EE -_08051598: - ldr r3, [sp, 0x10] - str r3, [sp, 0x8] - ldr r4, [sp, 0xC] - mov r8, r4 - mov r5, r9 - movs r1, 0x6 - ldrsh r0, [r5, r1] - cmp r8, r0 - blt _080514C4 - b _08051640 - .align 2, 0 -_080515AC: .4byte gUnknown_203B418 -_080515B0: .4byte gUnknown_202F1DC -_080515B4: .4byte 0x00013568 -_080515B8: .4byte gUnknown_202F1E1 -_080515BC: .4byte 0x0000e250 -_080515C0: .4byte 0x0000e254 -_080515C4: .4byte 0x0000e258 -_080515C8: .4byte 0x0000e25c -_080515CC: .4byte 0x0000e27c -_080515D0: .4byte 0x0000e87c -_080515D4: .4byte 0x0000e8bc -_080515D8: - mov r2, r9 - movs r3, 0x2 - ldrsh r2, [r2, r3] - mov r8, r2 - b _08051636 -_080515E2: - mov r0, r9 - movs r1, 0 - ldrsh r7, [r0, r1] - movs r2, 0x4 - ldrsh r0, [r0, r2] - mov r3, r8 - adds r3, 0x1 - str r3, [sp, 0xC] - cmp r7, r0 - bge _08051632 -_080515F6: - bl sub_80511F0 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r7, 0 - mov r1, r8 - bl sub_8049590 - adds r5, r0, 0 - ldrb r6, [r5, 0x9] - movs r0, 0x1 - str r0, [sp] - adds r0, r5, 0 - adds r1, r4, 0 - adds r2, r7, 0 - mov r3, r8 - bl sub_805124C - strb r6, [r5, 0x9] - ldr r4, [sp, 0x4] - ldr r5, _08051650 - adds r0, r4, r5 - strb r6, [r0] - adds r7, 0x1 - mov r1, r9 - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r7, r0 - blt _080515F6 -_08051632: - ldr r3, [sp, 0xC] - mov r8, r3 -_08051636: - mov r4, r9 - movs r5, 0x6 - ldrsh r0, [r4, r5] - cmp r8, r0 - blt _080515E2 -_08051640: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08051650: .4byte 0x0000e8bc - thumb_func_end sub_8051438 - - thumb_func_start sub_8051654 -sub_8051654: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - str r0, [sp] - ldr r4, _080516EC - ldr r1, [r4, 0x8] - ldr r0, [r4] - subs r1, r0 - subs r1, 0x2 - movs r0, 0x3 - bl sub_808411C - mov r8, r0 - cmp r0, 0x2 - bgt _0805167C - movs r0, 0x3 - mov r8, r0 -_0805167C: - ldr r1, [r4, 0xC] - ldr r0, [r4, 0x4] - subs r1, r0 - subs r1, 0x2 - movs r0, 0x3 - bl sub_808411C - mov r9, r0 - cmp r0, 0x2 - bgt _08051694 - movs r1, 0x3 - mov r9, r1 -_08051694: - movs r0, 0x2 - movs r1, 0x4 - bl sub_808411C - mov r10, r0 - movs r5, 0 - cmp r5, r10 - bge _08051734 - ldr r0, [r4, 0x8] - ldr r1, [r4] - subs r0, r1 - cmp r0, r8 - ble _08051734 - adds r6, r4, 0 -_080516B0: - movs r0, 0x64 - bl sub_8084100 - cmp r0, 0x31 - bgt _080516F4 - ldr r4, [r6, 0x4] - ldr r0, [r6, 0xC] - adds r7, r5, 0x1 - cmp r4, r0 - bge _080516E4 - ldr r5, _080516EC - ldr r0, _080516F0 - adds r2, r0, 0 -_080516CA: - ldr r0, [r5] - adds r1, r4, 0 - str r2, [sp, 0xC] - bl sub_8049590 - ldrh r1, [r0] - ldr r2, [sp, 0xC] - ands r1, r2 - strh r1, [r0] - adds r4, 0x1 - ldr r0, [r5, 0xC] - cmp r4, r0 - blt _080516CA -_080516E4: - ldr r0, [r6] - adds r0, 0x1 - str r0, [r6] - b _08051724 - .align 2, 0 -_080516EC: .4byte gUnknown_202F1B8 -_080516F0: .4byte 0x0000ffdf -_080516F4: - ldr r0, [r6, 0x8] - subs r0, 0x1 - str r0, [r6, 0x8] - ldr r4, [r6, 0x4] - ldr r0, [r6, 0xC] - adds r7, r5, 0x1 - cmp r4, r0 - bge _08051724 - ldr r5, _08051784 - ldr r1, _08051788 - adds r2, r1, 0 -_0805170A: - ldr r0, [r5, 0x8] - adds r1, r4, 0 - str r2, [sp, 0xC] - bl sub_8049590 - ldrh r1, [r0] - ldr r2, [sp, 0xC] - ands r1, r2 - strh r1, [r0] - adds r4, 0x1 - ldr r0, [r5, 0xC] - cmp r4, r0 - blt _0805170A -_08051724: - adds r5, r7, 0 - cmp r5, r10 - bge _08051734 - ldr r0, [r6, 0x8] - ldr r1, [r6] - subs r0, r1 - cmp r0, r8 - bgt _080516B0 -_08051734: - movs r5, 0 - ldr r3, _08051784 - cmp r5, r10 - bge _080517CE - ldr r0, [r3, 0xC] - ldr r1, [r3, 0x4] - subs r0, r1 - cmp r0, r9 - ble _080517CE - adds r6, r3, 0 -_08051748: - movs r0, 0x64 - bl sub_8084100 - cmp r0, 0x31 - bgt _0805178C - ldr r4, [r6] - ldr r0, [r6, 0x8] - adds r7, r5, 0x1 - cmp r4, r0 - bge _0805177C - ldr r5, _08051784 - ldr r0, _08051788 - adds r2, r0, 0 -_08051762: - ldr r1, [r5, 0x4] - adds r0, r4, 0 - str r2, [sp, 0xC] - bl sub_8049590 - ldrh r1, [r0] - ldr r2, [sp, 0xC] - ands r1, r2 - strh r1, [r0] - adds r4, 0x1 - ldr r0, [r5, 0x8] - cmp r4, r0 - blt _08051762 -_0805177C: - ldr r0, [r6, 0x4] - adds r0, 0x1 - str r0, [r6, 0x4] - b _080517BC - .align 2, 0 -_08051784: .4byte gUnknown_202F1B8 -_08051788: .4byte 0x0000ffdf -_0805178C: - ldr r0, [r6, 0xC] - subs r0, 0x1 - str r0, [r6, 0xC] - ldr r4, [r6] - ldr r0, [r6, 0x8] - adds r7, r5, 0x1 - cmp r4, r0 - bge _080517BC - ldr r5, _080518E4 - ldr r1, _080518E8 - adds r2, r1, 0 -_080517A2: - ldr r1, [r5, 0xC] - adds r0, r4, 0 - str r2, [sp, 0xC] - bl sub_8049590 - ldrh r1, [r0] - ldr r2, [sp, 0xC] - ands r1, r2 - strh r1, [r0] - adds r4, 0x1 - ldr r0, [r5, 0x8] - cmp r4, r0 - blt _080517A2 -_080517BC: - adds r5, r7, 0 - ldr r3, _080518E4 - cmp r5, r10 - bge _080517CE - ldr r1, [r6, 0xC] - ldr r0, [r6, 0x4] - subs r1, r0 - cmp r1, r9 - bgt _08051748 -_080517CE: - ldr r7, [r3] - ldr r0, [r3, 0x8] - cmp r7, r0 - bge _08051824 - adds r4, r3, 0 - mov r9, r3 -_080517DA: - ldr r5, [r4, 0x4] - ldr r0, [r4, 0xC] - adds r1, r7, 0x1 - mov r8, r1 - cmp r5, r0 - bge _0805181A - ldr r3, _080518E4 - ldr r0, _080518E8 - adds r6, r0, 0 -_080517EC: - adds r0, r7, 0 - adds r1, r5, 0 - str r3, [sp, 0x10] - bl sub_8049590 - adds r2, r0, 0 - ldrh r1, [r2] - movs r0, 0x20 - ands r0, r1 - ldr r3, [sp, 0x10] - cmp r0, 0 - beq _08051812 - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08051812 - adds r0, r1, 0 - ands r0, r6 - strh r0, [r2] -_08051812: - adds r5, 0x1 - ldr r0, [r4, 0xC] - cmp r5, r0 - blt _080517EC -_0805181A: - mov r7, r8 - mov r1, r9 - ldr r0, [r1, 0x8] - cmp r7, r0 - blt _080517DA -_08051824: - ldr r0, [r3] - ldr r1, [r3, 0x8] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r2, r0, 1 - ldr r0, [r3, 0x4] - ldr r1, [r3, 0xC] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - subs r0, 0x1 - mov r10, r0 - movs r0, 0 - mov r9, r0 - subs r7, r2, 0x1 - adds r0, r2, 0x2 - cmp r7, r0 - bge _080518D2 - adds r2, r0, 0 - str r2, [sp, 0x4] -_08051850: - mov r5, r10 - adds r0, r5, 0x3 - adds r1, r7, 0x1 - mov r8, r1 - mov r1, r9 - adds r1, 0x1 - str r1, [sp, 0x8] - cmp r5, r0 - bge _080518C6 - movs r3, 0 -_08051864: - adds r0, r7, 0 - adds r1, r5, 0 - str r3, [sp, 0x10] - bl sub_8049590 - adds r6, r0, 0 - ldrh r1, [r6] - movs r0, 0x20 - ands r0, r1 - ldr r3, [sp, 0x10] - cmp r0, 0 - beq _080518BA - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080518BA - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080518BA - mov r0, r9 - lsls r2, r0, 1 - adds r2, r3 - ldr r0, [sp] - ldrb r1, [r0, 0x18] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 1 - adds r2, r0 - ldr r1, _080518EC - adds r2, r1 - movs r0, 0 - ldrsh r4, [r2, r0] - movs r0, 0x64 - bl sub_8084100 - ldr r3, [sp, 0x10] - cmp r4, r0 - ble _080518BA - ldrh r1, [r6, 0x4] - movs r0, 0x2 - orrs r0, r1 - strh r0, [r6, 0x4] -_080518BA: - adds r5, 0x1 - adds r3, 0x6 - mov r0, r10 - adds r0, 0x3 - cmp r5, r0 - blt _08051864 -_080518C6: - mov r7, r8 - ldr r1, [sp, 0x8] - mov r9, r1 - ldr r0, [sp, 0x4] - cmp r7, r0 - blt _08051850 -_080518D2: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080518E4: .4byte gUnknown_202F1B8 -_080518E8: .4byte 0x0000ffdf -_080518EC: .4byte gUnknown_80F57D4 - thumb_func_end sub_8051654 - - thumb_func_start sub_80518F0 -sub_80518F0: - push {r4-r7,lr} - movs r5, 0 - movs r6, 0x10 - movs r7, 0 -_080518F8: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8049590 - adds r4, r0, 0 - bl sub_804FD10 - cmp r5, 0 - beq _0805190E - cmp r5, 0x37 - bne _08051914 -_0805190E: - ldrh r0, [r4] - orrs r0, r6 - strh r0, [r4] -_08051914: - adds r0, r5, 0 - movs r1, 0x1E - bl sub_8049590 - adds r4, r0, 0 - bl sub_804FD10 - cmp r5, 0 - beq _0805192A - cmp r5, 0x37 - bne _08051930 -_0805192A: - ldrh r0, [r4] - orrs r0, r6 - strh r0, [r4] -_08051930: - adds r5, 0x1 - cmp r5, 0x37 - ble _080518F8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80518F0 - - thumb_func_start sub_805193C -sub_805193C: - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r3, 0 - ldr r4, [sp, 0x18] - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 16 - lsls r2, 16 - lsrs r1, 16 - orrs r1, r2 - str r1, [sp, 0x4] - adds r0, r5, 0 - bl sub_805210C - lsls r0, 24 - cmp r0, 0 - beq _0805196A - mov r0, sp - movs r1, 0x76 - movs r2, 0 - bl sub_8090A8C - b _08051974 -_0805196A: - mov r0, sp - adds r1, r5, 0 - movs r2, 0 - bl sub_8090A8C -_08051974: - mov r0, sp - ldrb r0, [r0] - orrs r4, r0 - mov r0, sp - strb r4, [r0] - cmp r6, 0 - beq _08051984 - strb r6, [r0, 0x1] -_08051984: - add r0, sp, 0x4 - mov r1, sp - movs r2, 0x1 - bl sub_80460F8 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_805193C - - thumb_func_start sub_8051998 -sub_8051998: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r8, r1 - mov r9, r2 - lsls r0, 16 - asrs r0, 16 - adds r1, r0, 0 - lsls r3, 24 - lsrs r6, r3, 24 - adds r7, r6, 0 - ldr r0, _080519E4 - cmp r1, r0 - bne _080519E8 - mov r1, sp - movs r5, 0 - movs r4, 0 - movs r0, 0x3C - strh r0, [r1] - bl sub_803DA20 - mov r1, sp - strh r0, [r1, 0x8] - mov r0, sp - strb r6, [r0, 0x2] - str r4, [sp, 0x4] - strb r5, [r0, 0x10] - mov r1, r8 - strh r1, [r0, 0xC] - mov r1, r9 - strh r1, [r0, 0xE] - movs r1, 0x1 - bl sub_806B7F8 - b _08051A14 - .align 2, 0 -_080519E4: .4byte 0x000001a5 -_080519E8: - cmp r1, 0 - beq _08051A14 - mov r0, sp - movs r5, 0 - movs r4, 0 - strh r1, [r0] - adds r0, r1, 0 - bl sub_803DA20 - mov r1, sp - strh r0, [r1, 0x8] - mov r0, sp - strb r7, [r0, 0x2] - str r4, [sp, 0x4] - strb r5, [r0, 0x10] - mov r1, r8 - strh r1, [r0, 0xC] - mov r1, r9 - strh r1, [r0, 0xE] - movs r1, 0x1 - bl sub_806B7F8 -_08051A14: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8051998 - - thumb_func_start sub_8051A24 -sub_8051A24: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r6, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8049590 - adds r7, r0, 0 - lsls r4, 16 - lsls r5, 16 - lsrs r4, 16 - orrs r4, r5 - str r4, [sp] - adds r0, r6, 0 - mov r1, sp - movs r2, 0 - bl sub_8045684 - cmp r0, 0 - beq _08051A66 - str r0, [r7, 0x14] - adds r0, 0x20 - mov r1, r8 - strb r1, [r0] -_08051A66: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8051A24 - - thumb_func_start sub_8051A74 -sub_8051A74: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r2, 0 - adds r7, r3, 0 - ldr r0, [sp, 0x20] - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r1, 0xF - bls _08051AA2 - ldrh r0, [r4] - ldr r1, _08051AB4 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strh r1, [r4] -_08051AA2: - mov r0, r8 - cmp r0, 0x45 - bls _08051AAA - b _08051D68 -_08051AAA: - lsls r0, 2 - ldr r1, _08051AB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08051AB4: .4byte 0x0000fffc -_08051AB8: .4byte _08051ABC - .align 2, 0 -_08051ABC: - .4byte _08051BF0 - .4byte _08051C0C - .4byte _08051D50 - .4byte _08051E1A - .4byte _08051C20 - .4byte _08051C54 - .4byte _08051C64 - .4byte _08051C74 - .4byte _08051C94 - .4byte _08051D00 - .4byte _08051C7E - .4byte _08051D10 - .4byte _08051D24 - .4byte _08051D50 - .4byte _08051D50 - .4byte _08051E1A - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051D68 - .4byte _08051C94 - .4byte _08051CD4 - .4byte _08051BD4 -_08051BD4: - ldr r0, _08051BFC - ldr r0, [r0] - ldr r2, _08051C00 - adds r1, r0, r2 - strh r6, [r1] - ldr r3, _08051C04 - adds r0, r3 - strh r7, [r0] - movs r0, 0xB - adds r1, r6, 0 - adds r2, r7, 0 - movs r3, 0 - bl sub_8051A24 -_08051BF0: - ldrh r1, [r4] - ldr r0, _08051C08 - ands r0, r1 - movs r1, 0x1 - movs r2, 0 - b _08051D42 - .align 2, 0 -_08051BFC: .4byte gUnknown_203B418 -_08051C00: .4byte 0x00000684 -_08051C04: .4byte 0x00000686 -_08051C08: .4byte 0x0000fffc -_08051C0C: - ldrh r1, [r4] - ldr r0, _08051C18 - ands r0, r1 - ldr r1, _08051C1C - ands r0, r1 - b _08051D5A - .align 2, 0 -_08051C18: .4byte 0x0000fffc -_08051C1C: .4byte 0x0000feff -_08051C20: - ldrh r1, [r4] - ldr r0, _08051C44 - ands r0, r1 - movs r1, 0x1 - movs r2, 0 - orrs r0, r1 - strh r0, [r4] - ldr r0, _08051C48 - ldr r0, [r0] - ldr r3, _08051C4C - adds r1, r0, r3 - strh r6, [r1] - ldr r1, _08051C50 - adds r0, r1 - strh r7, [r0] - strb r2, [r4, 0x9] - b _08051E1A - .align 2, 0 -_08051C44: .4byte 0x0000fffc -_08051C48: .4byte gUnknown_203B418 -_08051C4C: .4byte 0x0000e218 -_08051C50: .4byte 0x0000e21a -_08051C54: - ldrh r1, [r4] - ldr r0, _08051C60 - ands r0, r1 - movs r2, 0 - movs r1, 0x2 - b _08051D42 - .align 2, 0 -_08051C60: .4byte 0x0000fffc -_08051C64: - ldrh r1, [r4] - ldr r0, _08051C70 - ands r0, r1 - movs r1, 0x3 - b _08051D58 - .align 2, 0 -_08051C70: .4byte 0x0000fffc -_08051C74: - ldr r1, _08051C8C - movs r0, 0x1 - strb r0, [r1] - bl sub_8049840 -_08051C7E: - ldrh r1, [r4] - ldr r0, _08051C90 - ands r0, r1 - movs r1, 0x3 - orrs r0, r1 - b _08051D56 - .align 2, 0 -_08051C8C: .4byte gUnknown_202F1A8 -_08051C90: .4byte 0x0000fffc -_08051C94: - ldrh r1, [r4] - ldr r0, _08051CC0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - ldrh r0, [r4, 0x4] - movs r2, 0 - orrs r0, r1 - ldr r1, _08051CC4 - ands r0, r1 - strh r0, [r4, 0x4] - strb r2, [r4, 0x9] - ldr r0, _08051CC8 - ldr r0, [r0] - ldr r2, _08051CCC - adds r1, r0, r2 - strh r6, [r1] - ldr r3, _08051CD0 - adds r0, r3 - strh r7, [r0] - b _08051E1A - .align 2, 0 -_08051CC0: .4byte 0x0000fffc -_08051CC4: .4byte 0x0000fffd -_08051CC8: .4byte gUnknown_203B418 -_08051CCC: .4byte 0x0000e21c -_08051CD0: .4byte 0x0000e21e -_08051CD4: - ldrh r1, [r4] - movs r2, 0x80 - lsls r2, 4 - adds r0, r2, 0 - orrs r0, r1 - ldr r1, _08051CF8 - ands r0, r1 - movs r1, 0x1 - movs r2, 0 - orrs r0, r1 - strh r0, [r4] - ldrh r1, [r4, 0x4] - ldr r0, _08051CFC - ands r0, r1 - strh r0, [r4, 0x4] - strb r2, [r4, 0x9] - b _08051E1A - .align 2, 0 -_08051CF8: .4byte 0x0000fffc -_08051CFC: .4byte 0x0000fffd -_08051D00: - ldrh r1, [r4] - ldr r0, _08051D0C - ands r0, r1 - movs r1, 0x1 - b _08051D58 - .align 2, 0 -_08051D0C: .4byte 0x0000fffc -_08051D10: - ldrh r1, [r4] - ldr r0, _08051D20 - ands r0, r1 - movs r1, 0x1 - movs r2, 0 - orrs r0, r1 - b _08051D3C - .align 2, 0 -_08051D20: .4byte 0x0000fffc -_08051D24: - ldrh r1, [r4] - ldr r0, _08051D4C - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - movs r2, 0x80 - lsls r2, 5 - adds r1, r2, 0 - orrs r0, r1 - movs r1, 0x10 - orrs r0, r1 - movs r2, 0 -_08051D3C: - movs r3, 0x80 - lsls r3, 4 - adds r1, r3, 0 -_08051D42: - orrs r0, r1 - strh r0, [r4] - strb r2, [r4, 0x9] - b _08051E1A - .align 2, 0 -_08051D4C: .4byte 0x0000fffc -_08051D50: - ldrh r1, [r4] - ldr r0, _08051D64 - ands r0, r1 -_08051D56: - movs r1, 0x10 -_08051D58: - orrs r0, r1 -_08051D5A: - strh r0, [r4] - movs r0, 0xFF - strb r0, [r4, 0x9] - b _08051E1A - .align 2, 0 -_08051D64: .4byte 0x0000fffc -_08051D68: - mov r0, r8 - subs r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xCB - bhi _08051E1A - mov r1, r8 - lsls r0, r1, 4 - ldr r1, _08051DA0 - adds r5, r0, r1 - ldrb r0, [r5, 0xC] - strb r0, [r4, 0x9] - ldrb r1, [r5] - cmp r1, 0 - beq _08051DB8 - mov r2, r9 - cmp r2, 0 - beq _08051DA4 - ldrb r0, [r5] - movs r1, 0x2 - ldrsh r3, [r5, r1] - ldr r1, [r5, 0x4] - str r1, [sp] - adds r1, r6, 0 - adds r2, r7, 0 - bl sub_805193C - b _08051DDC - .align 2, 0 -_08051DA0: .4byte gUnknown_80F6D20 -_08051DA4: - ldr r0, _08051DB0 - ldr r0, [r0] - ldr r2, _08051DB4 - adds r0, r2 - strb r1, [r0] - b _08051DDC - .align 2, 0 -_08051DB0: .4byte gUnknown_203B418 -_08051DB4: .4byte 0x0000068b -_08051DB8: - ldr r2, [r5, 0x4] - cmp r2, 0 - beq _08051DDC - ldr r0, _08051E2C - ldr r1, [r0] - subs r0, r2, 0x1 - lsls r0, 2 - adds r0, r1, r0 - ldr r3, _08051E30 - adds r0, r3 - strh r6, [r0] - ldr r0, [r5, 0x4] - subs r0, 0x1 - lsls r0, 2 - adds r1, r0 - ldr r0, _08051E34 - adds r1, r0 - strh r7, [r1] -_08051DDC: - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08051DF2 - ldrb r3, [r5, 0xA] - mov r1, r8 - str r1, [sp] - adds r1, r6, 0 - adds r2, r7, 0 - bl sub_8051998 -_08051DF2: - ldrb r0, [r5, 0xB] - cmp r0, 0x14 - beq _08051E08 - mov r2, r9 - cmp r2, 0 - beq _08051E08 - ldrb r3, [r5, 0xD] - adds r1, r6, 0 - adds r2, r7, 0 - bl sub_8051A24 -_08051E08: - ldrb r0, [r5, 0xE] - cmp r0, 0 - beq _08051E1A - ldrh r0, [r4] - ldr r1, _08051E38 - ands r1, r0 - movs r0, 0x2 - orrs r1, r0 - strh r1, [r4] -_08051E1A: - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08051E2C: .4byte gUnknown_203B418 -_08051E30: .4byte 0x0000e220 -_08051E34: .4byte 0x0000e222 -_08051E38: .4byte 0x0000fffc - thumb_func_end sub_8051A74 - - thumb_func_start sub_8051E3C -sub_8051E3C: - push {r4-r6,lr} - sub sp, 0x4 - movs r5, 0 -_08051E42: - movs r4, 0 - adds r6, r5, 0x1 -_08051E46: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8049590 - adds r2, r0, 0 - ldrb r0, [r2, 0xE] - cmp r0, 0xF - bls _08051E66 - adds r1, r0, 0 - movs r0, 0 - str r0, [sp] - adds r0, r2, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_8051A74 -_08051E66: - adds r4, 0x1 - cmp r4, 0x37 - ble _08051E46 - adds r5, r6, 0 - cmp r5, 0x1F - ble _08051E42 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8051E3C - - thumb_func_start sub_8051E7C -sub_8051E7C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r9, r0 - movs r1, 0x4 - ldrsh r0, [r0, r1] - mov r2, r9 - movs r3, 0x6 - ldrsh r1, [r2, r3] - subs r1, 0x1 - bl sub_8049590 - str r0, [sp, 0x8] - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - bne _08051EB8 - ldr r0, _08051EB4 - ldr r1, [r0] - mov r0, r9 - bl sub_80522A8 - b _080520F6 - .align 2, 0 -_08051EB4: .4byte gUnknown_80FDDF0 -_08051EB8: - ldr r0, _08051EF0 - ldr r0, [r0] - ldr r1, _08051EF4 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08051EC8 - b _080520EC -_08051EC8: - mov r2, r9 - ldrh r1, [r2, 0x6] - subs r1, 0x1 - lsls r1, 16 - ldrh r0, [r2, 0x4] - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, r9 - bl sub_80450FC - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0xC] - mov r3, r9 - movs r1, 0x6 - ldrsh r0, [r3, r1] - adds r6, r0, 0 - subs r6, 0x15 - b _08051FE0 - .align 2, 0 -_08051EF0: .4byte gUnknown_203B418 -_08051EF4: .4byte 0x00003a09 -_08051EF8: - mov r2, r9 - movs r3, 0x4 - ldrsh r0, [r2, r3] - adds r5, r0, 0 - subs r5, 0x14 - adds r0, 0x14 - adds r1, r6, 0x1 - str r1, [sp, 0x10] - cmp r5, r0 - bgt _08051FD8 - ldr r2, _080520C0 - mov r10, r2 -_08051F10: - mov r0, r10 - ldr r3, [r0] - ldr r1, _080520C4 - adds r0, r3, r1 - ldr r1, [r0] - subs r2, r5, r1 - mov r8, r2 - ldr r2, _080520C8 - adds r0, r3, r2 - ldr r2, [r0] - subs r7, r6, r2 - mov r0, r8 - cmp r0, 0 - blt _08051FCA - cmp r7, 0 - blt _08051FCA - cmp r0, 0x7 - bgt _08051FCA - cmp r7, 0x7 - bgt _08051FCA - adds r0, r1, 0x1 - cmp r5, r0 - blt _08051FCA - adds r0, r2, 0x1 - cmp r6, r0 - blt _08051FCA - ldr r1, _080520CC - adds r0, r3, r1 - ldr r0, [r0] - subs r0, 0x1 - cmp r5, r0 - bge _08051FCA - ldr r2, _080520D0 - adds r0, r3, r2 - ldr r0, [r0] - subs r0, 0x1 - cmp r6, r0 - bge _08051FCA - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8049590 - adds r4, r0, 0 - ldrh r0, [r4] - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08051F9A - mov r0, r10 - ldr r2, [r0] - lsls r1, r7, 1 - adds r1, r7 - lsls r1, 3 - mov r3, r8 - lsls r0, r3, 1 - add r0, r8 - lsls r0, 6 - adds r1, r0 - adds r2, r1 - ldr r1, _080520D4 - adds r0, r2, r1 - ldrh r0, [r0] - strh r0, [r4] - ldr r3, _080520D8 - adds r2, r3 - ldrh r0, [r2] - strh r0, [r4, 0x4] -_08051F9A: - mov r1, r10 - ldr r0, [r1] - mov r2, r8 - lsls r1, r2, 3 - adds r1, r7, r1 - ldr r3, _080520DC - adds r0, r3 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_8051A74 - ldrh r1, [r4, 0x4] - movs r0, 0x3 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r0, [sp, 0xC] - cmp r0, 0xFF - beq _08051FCA - strb r0, [r4, 0x9] -_08051FCA: - adds r5, 0x1 - mov r2, r9 - movs r3, 0x4 - ldrsh r0, [r2, r3] - adds r0, 0x14 - cmp r5, r0 - ble _08051F10 -_08051FD8: - ldr r6, [sp, 0x10] - mov r1, r9 - movs r2, 0x6 - ldrsh r0, [r1, r2] -_08051FE0: - adds r0, 0x13 - cmp r6, r0 - ble _08051EF8 - mov r3, r9 - movs r1, 0x6 - ldrsh r0, [r3, r1] - adds r6, r0, 0 - subs r6, 0x15 - adds r0, 0x13 - ldr r7, _080520C0 - cmp r6, r0 - bgt _0805207A -_08051FF8: - mov r2, r9 - movs r3, 0x4 - ldrsh r0, [r2, r3] - adds r5, r0, 0 - subs r5, 0x14 - adds r0, 0x14 - adds r1, r6, 0x1 - str r1, [sp, 0x10] - cmp r5, r0 - bgt _0805206C - ldr r7, _080520C0 -_0805200E: - ldr r0, _080520C0 - ldr r4, [r0] - ldr r2, _080520C4 - adds r0, r4, r2 - ldr r2, [r0] - subs r1, r5, r2 - ldr r3, _080520C8 - adds r0, r4, r3 - ldr r3, [r0] - subs r0, r6, r3 - cmp r1, 0 - blt _0805205E - cmp r0, 0 - blt _0805205E - cmp r1, 0x7 - bgt _0805205E - cmp r0, 0x7 - bgt _0805205E - adds r0, r2, 0x1 - cmp r5, r0 - blt _0805205E - adds r0, r3, 0x1 - cmp r6, r0 - blt _0805205E - ldr r1, _080520CC - adds r0, r4, r1 - ldr r0, [r0] - subs r0, 0x1 - cmp r5, r0 - bge _0805205E - ldr r2, _080520D0 - adds r0, r4, r2 - ldr r0, [r0] - subs r0, 0x1 - cmp r6, r0 - bge _0805205E - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80498A8 -_0805205E: - adds r5, 0x1 - mov r3, r9 - movs r1, 0x4 - ldrsh r0, [r3, r1] - adds r0, 0x14 - cmp r5, r0 - ble _0805200E -_0805206C: - ldr r6, [sp, 0x10] - mov r2, r9 - movs r3, 0x6 - ldrsh r0, [r2, r3] - adds r0, 0x13 - cmp r6, r0 - ble _08051FF8 -_0805207A: - ldr r0, [r7] - ldr r1, _080520E0 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r2, [sp, 0x8] - ldrh r1, [r2] - ldr r0, _080520E4 - ands r0, r1 - strh r0, [r2] - mov r3, r9 - movs r1, 0x4 - ldrsh r0, [r3, r1] - movs r2, 0x6 - ldrsh r1, [r3, r2] - subs r1, 0x1 - bl sub_80498A8 - bl sub_8049B8C - bl sub_8049ED4 - add r0, sp, 0x4 - bl sub_80429FC - ldr r0, _080520E8 - ldr r1, [r0] - mov r0, r9 - bl sub_80522A8 - movs r0, 0x14 - movs r1, 0x3C - bl sub_803E708 - b _080520F6 - .align 2, 0 -_080520C0: .4byte gUnknown_203B418 -_080520C4: .4byte 0x0000e250 -_080520C8: .4byte 0x0000e254 -_080520CC: .4byte 0x0000e258 -_080520D0: .4byte 0x0000e25c -_080520D4: .4byte 0x0000e27c -_080520D8: .4byte 0x0000e280 -_080520DC: .4byte 0x0000e87c -_080520E0: .4byte 0x00003a09 -_080520E4: .4byte 0x0000efef -_080520E8: .4byte gUnknown_80FDDD0 -_080520EC: - ldr r0, _08052108 - ldr r1, [r0] - mov r0, r9 - bl sub_80522A8 -_080520F6: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08052108: .4byte gUnknown_80FDDF0 - thumb_func_end sub_8051E7C - - thumb_func_start sub_805210C -sub_805210C: - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - ldr r7, _080521B4 - movs r4, 0x1 - ldr r2, [r7] -_0805211A: - ldrb r1, [r2] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0805212A - ldrb r0, [r2, 0x2] - cmp r0, r5 - beq _080521C8 -_0805212A: - adds r2, 0x4 - adds r3, 0x1 - cmp r3, 0x13 - ble _0805211A - movs r3, 0 - ldr r0, _080521B8 - ldr r4, [r0] - movs r6, 0x1 -_0805213A: - movs r0, 0x64 - adds r2, r3, 0 - muls r2, r0 - adds r0, r2, r4 - ldr r1, _080521BC - adds r0, r1 - ldrb r1, [r0] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0805216C - adds r0, r2, r4 - ldr r1, _080521C0 - adds r0, r1 - ldrb r1, [r0] - adds r0, r6, 0 - ands r0, r1 - adds r1, r2, r4 - cmp r0, 0 - beq _0805216C - ldr r2, _080521C4 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, r5 - beq _080521C8 -_0805216C: - adds r3, 0x1 - cmp r3, 0x3 - ble _0805213A - movs r3, 0 - ldr r0, _080521B8 - ldr r4, [r0] -_08052178: - movs r0, 0x58 - muls r0, r3 - adds r2, r0, r4 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08052196 - adds r0, r2, 0 - adds r0, 0x28 - ldrb r0, [r0] - cmp r0, 0 - beq _08052196 - cmp r0, r5 - beq _080521C8 -_08052196: - adds r3, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r3, r0 - ble _08052178 - ldr r0, [r7] - lsls r1, r5, 1 - adds r0, 0x50 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _080521C8 - movs r0, 0 - b _080521CA - .align 2, 0 -_080521B4: .4byte gUnknown_203B460 -_080521B8: .4byte gUnknown_203B45C -_080521BC: .4byte 0x00008df8 -_080521C0: .4byte 0x00008e38 -_080521C4: .4byte 0x00008e3a -_080521C8: - movs r0, 0x1 -_080521CA: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_805210C - - thumb_func_start sub_80521D0 -sub_80521D0: - push {r4-r6,lr} - movs r1, 0 - ldr r5, _08052200 - ldr r6, _08052204 - ldr r4, _08052208 - ldr r3, _0805220C - movs r2, 0 -_080521DE: - ldr r0, [r4] - adds r0, r3 - adds r0, r1 - strb r2, [r0] - adds r1, 0x1 - cmp r1, 0x9 - ble _080521DE - movs r0, 0 - str r0, [r5] - movs r0, 0x1 - strb r0, [r6] - movs r0, 0 - bl sub_8052210 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08052200: .4byte gUnknown_202F1E8 -_08052204: .4byte gUnknown_203B434 -_08052208: .4byte gUnknown_203B418 -_0805220C: .4byte 0x0001c054 - thumb_func_end sub_80521D0 - - thumb_func_start sub_8052210 -sub_8052210: - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r5, _08052280 -_0805221A: - lsls r0, r4, 6 - ldr r1, [r5] - adds r0, r1 - ldr r1, _08052284 - adds r0, r1 - ldr r1, _08052288 - bl strcpy - adds r4, 0x1 - cmp r4, 0x9 - ble _0805221A - ldr r1, _08052280 - ldr r0, [r1] - ldr r2, _0805228C - adds r0, r2 - movs r3, 0 - strb r3, [r0] - ldr r0, [r1] - adds r2, 0x1 - adds r1, r0, r2 - strh r3, [r1] - adds r2, 0x2 - adds r1, r0, r2 - strh r3, [r1] - adds r2, 0x2 - adds r1, r0, r2 - strh r3, [r1] - ldr r1, _08052290 - adds r2, r0, r1 - movs r1, 0x4 - strh r1, [r2] - ldr r2, _08052294 - adds r0, r2 - str r3, [r0] - cmp r6, 0 - beq _08052278 - ldr r0, _08052298 - ldr r0, [r0] - cmp r0, 0x3 - bne _08052278 - movs r0, 0 - movs r1, 0 - bl sub_803EAF0 - movs r0, 0xB - bl sub_803E46C -_08052278: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08052280: .4byte gUnknown_203B418 -_08052284: .4byte 0x0001bdd4 -_08052288: .4byte gUnknown_80F7AE8 -_0805228C: .4byte 0x0001c05f -_08052290: .4byte 0x0001c066 -_08052294: .4byte 0x0001c06c -_08052298: .4byte gUnknown_202EDD0 - thumb_func_end sub_8052210 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/code_803D110.s b/asm/code_803D110.s new file mode 100644 index 0000000..8220aa7 --- /dev/null +++ b/asm/code_803D110.s @@ -0,0 +1,43716 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_803D110 +sub_803D110: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x6C + adds r6, r0, 0 + mov r9, r1 + adds r5, r2, 0 + add r7, sp, 0x48 + adds r2, r7, 0 + movs r1, 0 + mov r0, sp + adds r0, 0x69 +_0803D12A: + strb r1, [r0] + subs r0, 0x1 + cmp r0, r2 + bge _0803D12A + movs r4, 0 + cmp r4, r5 + bge _0803D158 +_0803D138: + ldrb r0, [r6] + bl sub_803D0F0 + add r1, sp, 0x10 + adds r1, r4 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0803D150 + movs r0, 0 + b _0803D19A +_0803D150: + adds r6, 0x1 + adds r4, 0x1 + cmp r4, r5 + blt _0803D138 +_0803D158: + lsls r0, r5, 2 + adds r0, r5 + adds r2, r0, 0x5 + cmp r2, 0 + bge _0803D164 + adds r2, 0x7 +_0803D164: + asrs r2, 3 + mov r8, r2 + mov r0, sp + adds r1, r7, 0 + bl sub_809486C + movs r4, 0 + cmp r4, r5 + bge _0803D188 + add r6, sp, 0x10 +_0803D178: + adds r1, r6, r4 + mov r0, sp + movs r2, 0x5 + bl sub_809488C + adds r4, 0x1 + cmp r4, r5 + blt _0803D178 +_0803D188: + mov r0, sp + bl nullsub_102 + mov r0, r9 + adds r1, r7, 0 + mov r2, r8 + bl MemoryCopy8 + movs r0, 0x1 +_0803D19A: + add sp, 0x6C + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803D110 + + thumb_func_start sub_803D1A8 +sub_803D1A8: + push {r4-r7,lr} + sub sp, 0x48 + adds r7, r0, 0 + adds r5, r2, 0 + lsls r0, r5, 2 + adds r0, r5 + adds r2, r0, 0x5 + cmp r2, 0 + bge _0803D1BC + adds r2, 0x7 +_0803D1BC: + asrs r2, 3 + mov r0, sp + bl sub_809485C + movs r4, 0 + cmp r4, r5 + bge _0803D1DC + add r6, sp, 0x10 +_0803D1CC: + adds r1, r6, r4 + mov r0, sp + movs r2, 0x5 + bl sub_8094924 + adds r4, 0x1 + cmp r4, r5 + blt _0803D1CC +_0803D1DC: + mov r0, sp + bl nullsub_102 + movs r4, 0 + cmp r4, r5 + bge _0803D1FC + add r6, sp, 0x10 +_0803D1EA: + adds r0, r6, r4 + ldrb r0, [r0] + bl sub_803D100 + strb r0, [r7] + adds r7, 0x1 + adds r4, 0x1 + cmp r4, r5 + blt _0803D1EA +_0803D1FC: + add sp, 0x48 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_803D1A8 + + thumb_func_start sub_803D204 +sub_803D204: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xA4 + adds r2, r0, 0 + mov r9, r1 + movs r6, 0 + add r4, sp, 0x5C + adds r0, r4, 0 + adds r1, r2, 0 + movs r2, 0x36 + bl MemoryCopy8 + movs r2, 0 + mov r8, r4 + add r5, sp, 0x24 + ldr r4, _0803D2A8 + mov r12, r4 + mov r10, r5 +_0803D22E: + movs r1, 0 + mov r3, r12 + adds r0, r2, r3 + adds r3, r2, 0x1 + ldrb r0, [r0] + cmp r1, r0 + beq _0803D24A + adds r0, r2, r4 +_0803D23E: + adds r1, 0x1 + cmp r1, 0x35 + bgt _0803D24A + ldrb r7, [r0] + cmp r1, r7 + bne _0803D23E +_0803D24A: + mov r7, r10 + adds r0, r7, r2 + add r1, r8 + ldrb r1, [r1] + strb r1, [r0] + adds r2, r3, 0 + cmp r2, 0x35 + ble _0803D22E + adds r0, r5, 0 + mov r1, sp + movs r2, 0x36 + bl sub_803D110 + lsls r0, 24 + cmp r0, 0 + beq _0803D2AC + movs r2, 0x1 +_0803D26C: + mov r1, sp + adds r0, r1, r2 + ldrb r0, [r0] + adds r0, r2 + adds r0, r6, r0 + lsls r0, 24 + lsrs r6, r0, 24 + adds r2, 0x1 + cmp r2, 0x21 + ble _0803D26C + mov r0, sp + ldrb r0, [r0] + cmp r0, r6 + bne _0803D2AC + add r4, sp, 0x94 + adds r1, 0x1 + adds r0, r4, 0 + movs r2, 0x21 + bl sub_809485C + adds r0, r4, 0 + mov r1, r9 + bl sub_8095774 + adds r0, r4, 0 + bl nullsub_102 + movs r0, 0x1 + b _0803D2AE + .align 2, 0 +_0803D2A8: .4byte gUnknown_80F43F0 +_0803D2AC: + movs r0, 0 +_0803D2AE: + add sp, 0xA4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803D204 + + thumb_func_start sub_803D2C0 +sub_803D2C0: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xA4 + mov r9, r0 + adds r6, r1, 0 + movs r5, 0 + add r4, sp, 0x94 + mov r1, sp + adds r1, 0x1 + add r7, sp, 0x24 + add r0, sp, 0x5C + mov r8, r0 + movs r2, 0 + mov r0, sp + adds r0, 0x21 +_0803D2E2: + strb r2, [r0] + subs r0, 0x1 + cmp r0, sp + bge _0803D2E2 + adds r0, r4, 0 + movs r2, 0x21 + bl sub_809486C + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8095824 + adds r0, r4, 0 + bl nullsub_102 + movs r2, 0x1 +_0803D302: + mov r1, sp + adds r0, r1, r2 + ldrb r0, [r0] + adds r0, r2 + adds r0, r5, r0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r2, 0x1 + cmp r2, 0x21 + ble _0803D302 + mov r0, sp + strb r5, [r0] + adds r0, r7, 0 + movs r2, 0x36 + bl sub_803D1A8 + movs r2, 0 + mov r4, r8 + ldr r5, _0803D354 + adds r3, r7, 0 +_0803D32A: + adds r0, r2, r5 + ldrb r1, [r0] + adds r1, r4, r1 + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0x35 + ble _0803D32A + mov r0, r9 + mov r1, r8 + movs r2, 0x36 + bl MemoryCopy8 + add sp, 0xA4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803D354: .4byte gUnknown_80F43F0 + thumb_func_end sub_803D2C0 + + thumb_func_start sub_803D358 +sub_803D358: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x50 + adds r2, r0, 0 + mov r9, r1 + movs r6, 0 + add r4, sp, 0x28 + adds r0, r4, 0 + adds r1, r2, 0 + movs r2, 0x18 + bl MemoryCopy8 + movs r2, 0 + mov r8, r4 + add r5, sp, 0x10 + ldr r4, _0803D3FC + mov r12, r4 + mov r10, r5 +_0803D382: + movs r1, 0 + mov r3, r12 + adds r0, r2, r3 + adds r3, r2, 0x1 + ldrb r0, [r0] + cmp r1, r0 + beq _0803D39E + adds r0, r2, r4 +_0803D392: + adds r1, 0x1 + cmp r1, 0x17 + bgt _0803D39E + ldrb r7, [r0] + cmp r1, r7 + bne _0803D392 +_0803D39E: + mov r7, r10 + adds r0, r7, r2 + add r1, r8 + ldrb r1, [r1] + strb r1, [r0] + adds r2, r3, 0 + cmp r2, 0x17 + ble _0803D382 + adds r0, r5, 0 + mov r1, sp + movs r2, 0x18 + bl sub_803D110 + lsls r0, 24 + cmp r0, 0 + beq _0803D400 + movs r2, 0x1 +_0803D3C0: + mov r1, sp + adds r0, r1, r2 + ldrb r0, [r0] + adds r0, r2 + adds r0, r6, r0 + lsls r0, 24 + lsrs r6, r0, 24 + adds r2, 0x1 + cmp r2, 0xE + ble _0803D3C0 + mov r0, sp + ldrb r0, [r0] + cmp r0, r6 + bne _0803D400 + add r4, sp, 0x40 + adds r1, 0x1 + adds r0, r4, 0 + movs r2, 0xC + bl sub_809485C + adds r0, r4, 0 + mov r1, r9 + bl sub_80971EC + adds r0, r4, 0 + bl nullsub_102 + movs r0, 0x1 + b _0803D402 + .align 2, 0 +_0803D3FC: .4byte gUnknown_80F4426 +_0803D400: + movs r0, 0 +_0803D402: + add sp, 0x50 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803D358 + + thumb_func_start sub_803D414 +sub_803D414: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x50 + mov r9, r0 + adds r6, r1, 0 + movs r5, 0 + add r4, sp, 0x40 + mov r1, sp + adds r1, 0x1 + add r7, sp, 0x10 + add r0, sp, 0x28 + mov r8, r0 + movs r2, 0 + mov r0, sp + adds r0, 0xE +_0803D436: + strb r2, [r0] + subs r0, 0x1 + cmp r0, sp + bge _0803D436 + adds r0, r4, 0 + movs r2, 0xC + bl sub_809486C + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8097270 + adds r0, r4, 0 + bl nullsub_102 + movs r2, 0x1 +_0803D456: + mov r1, sp + adds r0, r1, r2 + ldrb r0, [r0] + adds r0, r2 + adds r0, r5, r0 + lsls r0, 24 + lsrs r5, r0, 24 + adds r2, 0x1 + cmp r2, 0xE + ble _0803D456 + mov r0, sp + strb r5, [r0] + adds r0, r7, 0 + movs r2, 0x18 + bl sub_803D1A8 + movs r2, 0 + mov r4, r8 + ldr r5, _0803D4A8 + adds r3, r7, 0 +_0803D47E: + adds r0, r2, r5 + ldrb r1, [r0] + adds r1, r4, r1 + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0x17 + ble _0803D47E + mov r0, r9 + mov r1, r8 + movs r2, 0x18 + bl MemoryCopy8 + add sp, 0x50 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803D4A8: .4byte gUnknown_80F4426 + thumb_func_end sub_803D414 + + thumb_func_start sub_803D4AC +sub_803D4AC: + ldr r2, _0803D4C4 + ldr r0, [r2] + ldr r1, _0803D4C8 + adds r0, r1 + movs r1, 0x63 + strb r1, [r0] + ldr r0, [r2] + ldr r1, _0803D4CC + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + bx lr + .align 2, 0 +_0803D4C4: .4byte gUnknown_203B418 +_0803D4C8: .4byte 0x0001c570 +_0803D4CC: .4byte 0x0001c571 + thumb_func_end sub_803D4AC + + thumb_func_start sub_803D4D0 +sub_803D4D0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1FC + ldr r6, _0803D654 + ldr r1, [r6] + movs r4, 0xC9 + lsls r4, 3 + adds r0, r1, r4 + ldr r2, _0803D658 + adds r1, r2 + bl sub_80901D8 + ldr r0, [r6] + ldr r3, _0803D65C + adds r2, r0, r3 + adds r1, r0, r4 + ldrh r0, [r2] + ldrh r4, [r1] + cmp r0, r4 + bne _0803D500 + b _0803D6E0 +_0803D500: + ldr r0, [r1] + str r0, [r2] + ldr r0, _0803D660 + ldr r1, _0803D664 + bl OpenFileAndGetFileDataPtr + mov r9, r0 + ldr r3, [r0, 0x4] + ldr r2, [r6] + ldr r7, _0803D65C + adds r0, r2, r7 + ldrb r1, [r0] + ldr r0, [r3] + lsls r1, 2 + adds r1, r0 + ldr r3, _0803D668 + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, 4 + ldr r1, [r1] + adds r1, r0 + mov r8, r1 + ldr r4, _0803D658 + adds r2, r4 + ldrb r0, [r2] + bl sub_8090298 + ldr r1, [r6] + ldr r7, _0803D66C + adds r1, r7 + strb r0, [r1] + ldr r0, [r6] + adds r0, r4 + ldrb r0, [r0] + bl sub_80902C8 + ldr r1, [r6] + strh r0, [r1, 0x14] + mov r2, r9 + ldr r0, [r2, 0x4] + mov r3, r8 + movs r4, 0 + ldrsh r2, [r3, r4] + ldr r3, [r0, 0x4] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + ldr r7, _0803D670 + adds r1, r7 + adds r0, r3 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldr r0, [r0] + str r0, [r1] + movs r5, 0 + mov r10, r6 + ldr r4, _0803D674 +_0803D576: + mov r6, r10 + ldr r2, [r6] + lsls r3, r5, 1 + adds r2, r4 + adds r2, r3 + mov r7, r9 + ldr r1, [r7, 0x4] + mov r6, r8 + movs r7, 0x4 + ldrsh r0, [r6, r7] + ldr r1, [r1, 0x10] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + adds r3, r0 + ldrh r0, [r3] + strh r0, [r2] + adds r5, 0x1 + cmp r5, 0x13 + ble _0803D576 + movs r5, 0 + adds r6, 0x6 + str r6, [sp, 0x1F8] + ldr r6, _0803D678 + mov r10, r6 +_0803D5A8: + ldr r1, _0803D654 + ldr r0, [r1] + lsls r3, r5, 3 + mov r2, r10 + adds r4, r0, r2 + adds r4, r3 + mov r12, r4 + mov r4, r9 + ldr r2, [r4, 0x4] + mov r7, r8 + movs r4, 0x2 + ldrsh r1, [r7, r4] + ldr r2, [r2, 0xC] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + adds r3, r1 + ldr r1, [r3] + ldr r2, [r3, 0x4] + mov r7, r12 + str r1, [r7] + str r2, [r7, 0x4] + adds r0, r6 + bl sub_808E9B8 + lsls r0, 16 + cmp r0, 0 + beq _0803D5E8 + adds r6, 0x8 + adds r5, 0x1 + cmp r5, 0x1E + ble _0803D5A8 +_0803D5E8: + cmp r5, 0x1F + bgt _0803D606 + ldr r6, _0803D654 + lsls r0, r5, 3 + ldr r1, _0803D678 + adds r4, r0, r1 +_0803D5F4: + ldr r0, [r6] + adds r0, r4 + movs r1, 0 + bl sub_808E9C4 + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0x1F + ble _0803D5F4 +_0803D606: + movs r5, 0 + ldr r2, _0803D67C + mov r10, r2 +_0803D60C: + mov r3, r9 + ldr r1, [r3, 0x4] + lsls r0, r5, 1 + ldr r4, [sp, 0x1F8] + adds r0, r4, r0 + movs r6, 0 + ldrsh r0, [r0, r6] + ldr r1, [r1, 0x8] + lsls r0, 2 + adds r0, r1 + movs r4, 0 + adds r7, r5, 0x1 + mov r8, r7 + lsls r1, r5, 6 + mov r12, r1 + ldr r3, [r0] + mov r2, sp +_0803D62E: + ldrh r0, [r3] + cmp r0, r10 + bls _0803D684 + ldrh r0, [r3] + ldr r6, _0803D680 + adds r1, r0, r6 + cmp r1, 0 + beq _0803D68A + movs r6, 0 + lsls r0, r4, 1 + add r0, sp +_0803D644: + strh r6, [r0] + adds r0, 0x2 + adds r2, 0x2 + adds r4, 0x1 + subs r1, 0x1 + cmp r1, 0 + bne _0803D644 + b _0803D68A + .align 2, 0 +_0803D654: .4byte gUnknown_203B418 +_0803D658: .4byte 0x00000644 +_0803D65C: .4byte 0x0001c570 +_0803D660: .4byte gUnknown_80F4D8C +_0803D664: .4byte gUnknown_83B0000 +_0803D668: .4byte 0x0001c571 +_0803D66C: .4byte 0x0001cec8 +_0803D670: .4byte 0x0001c574 +_0803D674: .4byte 0x0001cd70 +_0803D678: .4byte 0x0001cd98 +_0803D67C: .4byte 0x0000752f +_0803D680: .4byte 0xffff8ad0 +_0803D684: + strh r0, [r2] + adds r2, 0x2 + adds r4, 0x1 +_0803D68A: + adds r3, 0x2 + cmp r4, 0xFB + ble _0803D62E + ldr r7, _0803D6F0 + mov r1, r12 + subs r0, r1, r5 + movs r4, 0xB + mov r3, sp + lsls r2, r0, 3 + ldr r6, _0803D6F4 +_0803D69E: + ldr r0, [r7] + adds r0, r6 + adds r0, r2 + ldrh r1, [r3] + strh r1, [r0] + adds r3, 0x2 + adds r2, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _0803D69E + ldr r6, _0803D6F0 + mov r2, r12 + subs r0, r2, r5 + lsls r3, r0, 3 + add r2, sp, 0x18 + ldr r5, _0803D6F8 + movs r4, 0xEF +_0803D6C0: + ldr r0, [r6] + adds r0, r5 + adds r0, r3 + ldrh r1, [r2] + strh r1, [r0] + adds r2, 0x2 + adds r3, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _0803D6C0 + mov r5, r8 + cmp r5, 0x3 + ble _0803D60C + mov r0, r9 + bl CloseFile +_0803D6E0: + add sp, 0x1FC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803D6F0: .4byte gUnknown_203B418 +_0803D6F4: .4byte 0x0001c590 +_0803D6F8: .4byte 0x0001c5a8 + thumb_func_end sub_803D4D0 + + thumb_func_start sub_803D6FC +sub_803D6FC: + push {r4,lr} + ldr r0, _0803D720 + bl sub_8084100 + adds r3, r0, 0 + movs r2, 0 + ldr r0, _0803D724 + ldr r0, [r0] + ldr r4, _0803D728 + adds r1, r0, r4 +_0803D710: + ldrh r0, [r1] + cmp r0, 0 + beq _0803D72C + cmp r0, r3 + blt _0803D72C + lsls r0, r2, 24 + lsrs r0, 24 + b _0803D736 + .align 2, 0 +_0803D720: .4byte 0x00002710 +_0803D724: .4byte gUnknown_203B418 +_0803D728: .4byte 0x0001cd70 +_0803D72C: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x13 + ble _0803D710 + movs r0, 0x10 +_0803D736: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_803D6FC + + thumb_func_start sub_803D73C +sub_803D73C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r4, r0, 0 + ldr r0, _0803D784 + bl sub_8084100 + adds r7, r0, 0 + movs r0, 0xC + mov r8, r0 + movs r6, 0 + ldr r0, _0803D788 + ldr r2, [r0] + lsls r1, r4, 6 + subs r0, r1, r4 + adds r5, r1, 0 + lsls r0, 3 + ldr r1, _0803D78C + adds r2, r1 + adds r1, r0, r2 +_0803D766: + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _0803D772 + cmp r0, r7 + bge _0803D790 +_0803D772: + adds r1, 0x2 + adds r6, 0x1 + cmp r6, 0xB + ble _0803D766 +_0803D77A: + mov r0, r8 + cmp r0, 0xC + bne _0803D79C + b _0803D7EC + .align 2, 0 +_0803D784: .4byte 0x00002710 +_0803D788: .4byte gUnknown_203B418 +_0803D78C: .4byte 0x0001c590 +_0803D790: + lsls r0, r6, 24 + lsrs r0, 24 + mov r8, r0 + b _0803D77A +_0803D798: + adds r0, r5, 0 + b _0803D7EE +_0803D79C: + ldr r0, _0803D7FC + bl sub_8084100 + adds r7, r0, 0 + movs r6, 0 + ldr r2, _0803D800 + subs r0, r5, r4 + ldr r1, _0803D804 + lsls r4, r0, 3 +_0803D7AE: + ldr r0, [r2] + adds r0, r1 + adds r0, r4 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + beq _0803D7E4 + lsls r0, r6, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + str r1, [sp] + str r2, [sp, 0x4] + bl sub_8090BD0 + lsls r0, 24 + lsrs r0, 24 + ldr r1, [sp] + ldr r2, [sp, 0x4] + cmp r0, r8 + bne _0803D7E4 + ldr r0, [r2] + adds r0, r1 + adds r0, r4 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, r7 + bge _0803D798 +_0803D7E4: + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0xEF + ble _0803D7AE +_0803D7EC: + movs r0, 0x69 +_0803D7EE: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803D7FC: .4byte 0x00002710 +_0803D800: .4byte gUnknown_203B418 +_0803D804: .4byte 0x0001c5a8 + thumb_func_end sub_803D73C + + thumb_func_start sub_803D808 +sub_803D808: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r7, r1, 0 + movs r6, 0 + ldr r2, _0803D820 + lsls r1, r7, 3 + adds r1, r0 + mov r8, r1 + b _0803D840 + .align 2, 0 +_0803D820: .4byte 0x0001cd98 +_0803D824: + ldr r0, [r5] + ldr r1, _0803D868 + adds r0, r1 + adds r0, r4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + mov r3, r8 + adds r3, 0x8 + mov r8, r3 + subs r3, 0x8 + stm r3!, {r0,r1} + adds r7, 0x1 + adds r2, 0x8 + adds r6, 0x1 +_0803D840: + cmp r6, 0x1F + bgt _0803D85A + ldr r5, _0803D86C + lsls r4, r6, 3 + ldr r0, [r5] + adds r0, r2 + str r2, [sp] + bl sub_808E9B8 + lsls r0, 16 + ldr r2, [sp] + cmp r0, 0 + bne _0803D824 +_0803D85A: + adds r0, r7, 0 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803D868: .4byte 0x0001cd98 +_0803D86C: .4byte gUnknown_203B418 + thumb_func_end sub_803D808 + + thumb_func_start sub_803D870 +sub_803D870: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r1, 0 + movs r5, 0 + lsls r1, r6, 3 + adds r1, r0 + mov r9, r1 + b _0803D8B8 +_0803D884: + bl sub_808DACC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _0803D8B6 + ldr r1, [r7] + adds r0, r1, r4 + ldr r2, _0803D8E4 + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _0803D8B6 + mov r2, r8 + adds r0, r1, r2 + adds r0, r4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + mov r2, r9 + adds r2, 0x8 + mov r9, r2 + subs r2, 0x8 + stm r2!, {r0,r1} + adds r6, 0x1 +_0803D8B6: + adds r5, 0x1 +_0803D8B8: + cmp r5, 0x1F + bgt _0803D8D6 + ldr r7, _0803D8E8 + lsls r4, r5, 3 + ldr r0, _0803D8EC + mov r8, r0 + adds r1, r4, r0 + ldr r0, [r7] + adds r0, r1 + bl sub_808E9B8 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _0803D884 +_0803D8D6: + adds r0, r6, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803D8E4: .4byte 0x0001cd9a +_0803D8E8: .4byte gUnknown_203B418 +_0803D8EC: .4byte 0x0001cd98 + thumb_func_end sub_803D870 + + thumb_func_start sub_803D8F0 +sub_803D8F0: + push {r4,lr} + ldr r4, _0803D920 + ldr r0, [r4] + ldr r2, _0803D924 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + bne _0803D918 + movs r0, 0x1 + strb r0, [r1] + ldr r0, [r4] + ldr r1, _0803D928 + adds r0, r1 + movs r1, 0 + bl sub_803D808 + ldr r1, [r4] + ldr r2, _0803D92C + adds r1, r2 + str r0, [r1] +_0803D918: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803D920: .4byte gUnknown_203B418 +_0803D924: .4byte 0x000037ec +_0803D928: .4byte 0x0000343c +_0803D92C: .4byte 0x000037e4 + thumb_func_end sub_803D8F0 + + thumb_func_start sub_803D930 +sub_803D930: + push {r4-r7,lr} + lsls r0, 16 + asrs r6, r0, 16 + movs r5, 0 + ldr r7, _0803D940 + ldr r4, _0803D944 + b _0803D954 + .align 2, 0 +_0803D940: .4byte gUnknown_203B418 +_0803D944: .4byte 0x0001cd98 +_0803D948: + cmp r0, r6 + bne _0803D950 + movs r0, 0x1 + b _0803D96A +_0803D950: + adds r4, 0x8 + adds r5, 0x1 +_0803D954: + cmp r5, 0x1F + bgt _0803D968 + ldr r0, [r7] + adds r0, r4 + bl sub_808E9B8 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _0803D948 +_0803D968: + movs r0, 0 +_0803D96A: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803D930 + + thumb_func_start sub_803D970 +sub_803D970: + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _0803D9EC + bl sub_8084100 + adds r6, r0, 0 + movs r3, 0 + ldr r1, _0803D9F0 + ldr r0, [r1] + ldr r2, _0803D9F4 + adds r0, r2 + ldr r0, [r0] + cmp r3, r0 + bge _0803D9BA + ldr r4, _0803D9F8 +_0803D98E: + ldr r2, [r1] + lsls r1, r5, 1 + lsls r0, r3, 3 + adds r1, r0 + ldr r7, _0803D9FC + adds r0, r2, r7 + adds r1, r0, r1 + movs r7, 0 + ldrsh r0, [r1, r7] + cmp r0, 0 + beq _0803D9A8 + cmp r0, r6 + bge _0803D9E0 +_0803D9A8: + adds r4, 0x8 + adds r3, 0x1 + ldr r1, _0803D9F0 + ldr r0, [r1] + ldr r2, _0803D9F4 + adds r0, r2 + ldr r0, [r0] + cmp r3, r0 + blt _0803D98E +_0803D9BA: + movs r3, 0 + ldr r0, _0803D9F0 + ldr r1, [r0] + ldr r7, _0803D9F4 + adds r1, r7 + ldr r1, [r1] + adds r6, r0, 0 + cmp r3, r1 + bge _0803DA10 + ldr r4, _0803D9F8 + lsls r1, r5, 1 +_0803D9D0: + ldr r2, [r6] + ldr r5, _0803D9FC + adds r0, r2, r5 + adds r0, r1 + movs r7, 0 + ldrsh r0, [r0, r7] + cmp r0, 0 + beq _0803DA00 +_0803D9E0: + adds r0, r2, r4 + bl sub_808E9B8 + lsls r0, 16 + asrs r0, 16 + b _0803DA14 + .align 2, 0 +_0803D9EC: .4byte 0x00002710 +_0803D9F0: .4byte gUnknown_203B418 +_0803D9F4: .4byte 0x000037e4 +_0803D9F8: .4byte 0x0000343c +_0803D9FC: .4byte 0x0000343e +_0803DA00: + adds r4, 0x8 + adds r1, 0x8 + adds r3, 0x1 + ldr r5, _0803DA1C + adds r0, r2, r5 + ldr r0, [r0] + cmp r3, r0 + blt _0803D9D0 +_0803DA10: + movs r0, 0xBE + lsls r0, 1 +_0803DA14: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803DA1C: .4byte 0x000037e4 + thumb_func_end sub_803D970 + + thumb_func_start sub_803DA20 +sub_803DA20: + push {r4-r7,lr} + lsls r0, 16 + asrs r7, r0, 16 + movs r5, 0 + ldr r1, _0803DA54 + ldr r0, [r1] + ldr r2, _0803DA58 + adds r0, r2 + ldr r0, [r0] + cmp r5, r0 + bge _0803DA70 + adds r6, r1, 0 + ldr r4, _0803DA5C +_0803DA3A: + ldr r0, [r6] + adds r0, r4 + bl sub_808E9B8 + lsls r0, 16 + asrs r0, 16 + cmp r0, r7 + bne _0803DA60 + ldr r0, [r6] + adds r0, r4 + bl sub_808E9E4 + b _0803DA72 + .align 2, 0 +_0803DA54: .4byte gUnknown_203B418 +_0803DA58: .4byte 0x000037e4 +_0803DA5C: .4byte 0x0000343c +_0803DA60: + adds r4, 0x8 + adds r5, 0x1 + ldr r0, [r6] + ldr r1, _0803DA78 + adds r0, r1 + ldr r0, [r0] + cmp r5, r0 + blt _0803DA3A +_0803DA70: + movs r0, 0x1 +_0803DA72: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803DA78: .4byte 0x000037e4 + thumb_func_end sub_803DA20 + + thumb_func_start ShowDungeonNameBanner +ShowDungeonNameBanner: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x68 + ldr r0, _0803DB84 + ldr r4, _0803DB88 + adds r1, r4, 0 + bl OpenFileAndGetFileDataPtr + ldr r5, _0803DB8C + str r0, [r5] + ldr r0, _0803DB90 + adds r1, r4, 0 + bl OpenFileAndGetFileDataPtr + ldr r1, _0803DB94 + str r0, [r1] + ldr r1, _0803DB98 + ldr r0, [r0, 0x4] + ldr r0, [r0, 0x4] + str r0, [r1] + movs r4, 0 +_0803DAAA: + adds r0, r4, 0 + adds r0, 0xE0 + ldr r1, [r5] + lsls r2, r4, 2 + ldr r1, [r1, 0x4] + adds r1, r2 + bl SetBGPaletteBufferColorArray + adds r4, 0x1 + cmp r4, 0xF + ble _0803DAAA + ldr r0, _0803DB9C + movs r1, 0xE0 + lsls r1, 5 + bl CpuClear + bl sub_80848EC + lsls r0, 24 + cmp r0, 0 + bne _0803DAD6 + b _0803DBEA +_0803DAD6: + ldr r0, _0803DBA0 + ldr r0, [r0] + ldr r1, _0803DBA4 + adds r2, r0, r1 + movs r3, 0x14 + ldrsh r1, [r0, r3] + ldrb r2, [r2] + adds r2, r1 + mov r8, r2 + ldr r1, _0803DBA8 + adds r0, r1 + ldrb r0, [r0] + bl GetDungeonName2 + mov r9, r0 + movs r5, 0xA + movs r0, 0 +_0803DAF8: + movs r4, 0 + adds r6, r0, 0x4 + adds r7, r0, 0x1 +_0803DAFE: + adds r4, 0x1 + ldr r3, _0803DBAC + adds r0, r3, 0 + adds r2, r5, 0 + orrs r2, r0 + lsls r2, 16 + lsrs r2, 16 + adds r0, r4, 0 + adds r1, r6, 0 + movs r3, 0 + bl sub_8008DC8 + adds r5, 0x1 + cmp r4, 0x1B + ble _0803DAFE + adds r0, r7, 0 + cmp r0, 0x7 + ble _0803DAF8 + mov r0, r9 + bl CalcStringWidth + movs r1, 0xE0 + subs r1, r0 + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + mov r0, r9 + movs r2, 0 + bl sub_803DC14 + adds r7, r0, 0 + ldr r0, _0803DBA0 + ldr r0, [r0] + ldr r1, _0803DBA8 + adds r0, r1 + ldrb r0, [r0] + bl GetStairDirection + lsls r0, 24 + ldr r6, _0803DBB0 + cmp r0, 0 + beq _0803DB54 + ldr r6, _0803DBB4 +_0803DB54: + mov r3, r8 + cmp r3, 0x9 + ble _0803DBBC + ldr r5, _0803DBB8 + mov r0, r8 + movs r1, 0xA + bl __divsi3 + adds r4, r0, 0 + adds r4, 0x30 + mov r0, r8 + movs r1, 0xA + bl __modsi3 + adds r0, 0x30 + str r0, [sp] + add r0, sp, 0x4 + adds r1, r5, 0 + adds r2, r6, 0 + adds r3, r4, 0 + bl sub_800D158 + b _0803DBCA + .align 2, 0 +_0803DB84: .4byte gUnknown_80F60F8 +_0803DB88: .4byte gUnknown_83B0000 +_0803DB8C: .4byte gDungeonNameBannerPalette +_0803DB90: .4byte gUnknown_80F6100 +_0803DB94: .4byte gDungeonNameBannerFontFile +_0803DB98: .4byte gDungeonNameBannerFont +_0803DB9C: .4byte 0x06000140 +_0803DBA0: .4byte gUnknown_203B418 +_0803DBA4: .4byte 0x00000645 +_0803DBA8: .4byte 0x00000644 +_0803DBAC: .4byte 0xffffe000 +_0803DBB0: .4byte gUnknown_80F610C +_0803DBB4: .4byte gUnknown_80F6108 +_0803DBB8: .4byte gUnknown_80F6110 +_0803DBBC: + ldr r1, _0803DC08 + mov r3, r8 + adds r3, 0x30 + add r0, sp, 0x4 + adds r2, r6, 0 + bl sub_800D158 +_0803DBCA: + add r0, sp, 0x4 + bl CalcStringWidth + movs r1, 0xE0 + subs r1, r0 + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + adds r2, r7, 0 + adds r2, 0x20 + add r0, sp, 0x4 + bl sub_803DC14 + ldr r1, _0803DC0C + movs r0, 0x1 + strb r0, [r1] +_0803DBEA: + ldr r0, _0803DC10 + ldr r0, [r0] + bl CloseFile + movs r0, 0x2 + bl sub_803E46C + add sp, 0x68 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803DC08: .4byte gUnknown_80F6118 +_0803DC0C: .4byte gUnknown_20274A5 +_0803DC10: .4byte gDungeonNameBannerFontFile + thumb_func_end ShowDungeonNameBanner + + thumb_func_start sub_803DC14 +sub_803DC14: + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + b _0803DC5C +_0803DC1E: + ldrb r1, [r4] + adds r4, 0x1 + cmp r1, 0x2F + bne _0803DC2C + movs r5, 0 + adds r6, 0x18 + b _0803DC5C +_0803DC2C: + cmp r1, 0x23 + bne _0803DC34 + adds r5, 0x8 + b _0803DC5C +_0803DC34: + cmp r1, 0x20 + bne _0803DC3C + adds r5, 0xC + b _0803DC5C +_0803DC3C: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0803DC50 + ldrb r0, [r4] + cmp r0, 0 + beq _0803DC50 + lsls r1, 8 + orrs r1, r0 + adds r4, 0x1 +_0803DC50: + adds r0, r1, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_803DC6C + adds r5, r0 +_0803DC5C: + ldrb r0, [r4] + cmp r0, 0 + bne _0803DC1E + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_803DC14 + + thumb_func_start sub_803DC6C +sub_803DC6C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x120 + adds r7, r1, 0 + adds r5, r2, 0 + bl sub_803DEC8 + adds r4, r0, 0 + ldr r0, [r4] + mov r1, sp + bl sub_803DD30 + ldrb r4, [r4, 0x6] + mov r9, r4 + mov r6, sp + adds r0, r5, 0 + cmp r5, 0 + bge _0803DC96 + adds r0, r5, 0x7 +_0803DC96: + asrs r0, 3 + lsls r3, r0, 3 + subs r0, r3, r0 + lsls r0, 2 + adds r1, r7, 0 + cmp r7, 0 + bge _0803DCA6 + adds r1, r7, 0x7 +_0803DCA6: + asrs r1, 3 + adds r0, r1 + lsls r0, 5 + ldr r4, _0803DD28 + adds r2, r0, r4 + subs r0, r5, r3 + lsls r0, 2 + adds r2, r0 + lsls r1, 3 + subs r1, r7, r1 + lsls r1, 4 + ldr r0, _0803DD2C + adds r4, r1, r0 + movs r0, 0 +_0803DCC2: + adds r3, r2, 0 + adds r7, r3, 0x4 + adds r5, 0x1 + mov r12, r5 + adds r0, 0x1 + mov r8, r0 + movs r5, 0x2 +_0803DCD0: + ldr r2, [r6] + cmp r2, 0 + beq _0803DCF6 + ldr r1, [r4] + ands r1, r2 + ldr r0, [r4, 0x8] + lsls r1, r0 + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + adds r3, 0x20 + ldr r0, [r4, 0x4] + ands r2, r0 + ldr r0, [r4, 0xC] + lsrs r2, r0 + ldr r0, [r3] + orrs r0, r2 + str r0, [r3] + subs r3, 0x20 +_0803DCF6: + adds r6, 0x4 + adds r3, 0x20 + subs r5, 0x1 + cmp r5, 0 + bge _0803DCD0 + adds r2, r7, 0 + mov r5, r12 + movs r0, 0x7 + ands r0, r5 + cmp r0, 0 + bne _0803DD12 + movs r0, 0xD8 + lsls r0, 2 + adds r2, r7, r0 +_0803DD12: + mov r0, r8 + cmp r0, 0x17 + ble _0803DCC2 + mov r0, r9 + add sp, 0x120 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803DD28: .4byte 0x06000140 +_0803DD2C: .4byte gUnknown_80F6120 + thumb_func_end sub_803DC6C + + thumb_func_start sub_803DD30 +sub_803DD30: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _0803DDBC + add sp, r4 + adds r4, r0, 0 + mov r10, r1 + movs r3, 0 + movs r5, 0 + ldr r0, _0803DDC0 + mov r8, r0 + movs r6, 0xF + movs r7, 0xF + mov r2, sp +_0803DD50: + ldrb r0, [r4] + lsrs r1, r0, 4 + ands r1, r6 + strb r1, [r2] + adds r1, r7, 0 + ands r1, r0 + strb r1, [r2, 0x1] + adds r4, 0x1 + adds r2, 0x2 + adds r5, 0x2 + cmp r5, r8 + ble _0803DD50 + ldr r1, _0803DDC0 + cmp r3, r1 + bgt _0803DDF8 + movs r0, 0x90 + lsls r0, 2 + mov r2, sp + adds r2, r0 + mov r12, r2 + mov r8, r1 + mov r2, sp + mov r9, r0 +_0803DD7E: + ldrb r1, [r2] + adds r2, 0x1 + movs r6, 0x7 + ands r6, r1 + movs r0, 0x8 + ands r1, r0 + cmp r1, 0 + beq _0803DDC4 + ldrb r1, [r2] + adds r2, 0x1 + movs r4, 0 + cmp r4, r6 + bge _0803DDF4 + mov r5, r12 + adds r0, r5, r3 + strb r1, [r0] + adds r3, 0x1 + cmp r3, r8 + bgt _0803DDF8 + mov r5, sp + add r5, r9 + ldr r7, _0803DDC0 +_0803DDAA: + adds r4, 0x1 + cmp r4, r6 + bge _0803DDF4 + adds r0, r5, r3 + strb r1, [r0] + adds r3, 0x1 + cmp r3, r7 + ble _0803DDAA + b _0803DDF4 + .align 2, 0 +_0803DDBC: .4byte 0xfffffb80 +_0803DDC0: .4byte 0x0000023f +_0803DDC4: + movs r4, 0 + cmp r4, r6 + bge _0803DDF4 + ldrb r1, [r2] + adds r2, 0x1 + mov r5, r12 + adds r0, r5, r3 + strb r1, [r0] + adds r3, 0x1 + cmp r3, r8 + bgt _0803DDF8 + mov r5, sp + add r5, r9 + ldr r7, _0803DE78 +_0803DDE0: + adds r4, 0x1 + cmp r4, r6 + bge _0803DDF4 + ldrb r1, [r2] + adds r2, 0x1 + adds r0, r5, r3 + strb r1, [r0] + adds r3, 0x1 + cmp r3, r7 + ble _0803DDE0 +_0803DDF4: + cmp r3, r8 + ble _0803DD7E +_0803DDF8: + movs r5, 0 + ldr r4, _0803DE78 + add r3, sp, 0x240 +_0803DDFE: + ldrb r2, [r3, 0x7] + lsls r2, 28 + ldrb r0, [r3, 0x6] + lsls r0, 24 + movs r1, 0xF0 + lsls r1, 20 + ands r0, r1 + orrs r2, r0 + ldrb r0, [r3, 0x5] + lsls r0, 20 + movs r1, 0xF0 + lsls r1, 16 + ands r0, r1 + orrs r2, r0 + ldrb r0, [r3, 0x4] + lsls r0, 16 + movs r1, 0xF0 + lsls r1, 12 + ands r0, r1 + orrs r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 12 + movs r1, 0xF0 + lsls r1, 8 + ands r0, r1 + orrs r2, r0 + ldrb r0, [r3, 0x2] + lsls r0, 8 + movs r1, 0xF0 + lsls r1, 4 + ands r0, r1 + orrs r2, r0 + ldrb r0, [r3, 0x1] + lsls r0, 4 + movs r1, 0xF0 + ands r0, r1 + orrs r2, r0 + ldrb r1, [r3] + movs r0, 0xF + ands r0, r1 + orrs r2, r0 + mov r0, r10 + adds r0, 0x4 + mov r10, r0 + subs r0, 0x4 + stm r0!, {r2} + adds r3, 0x8 + adds r5, 0x8 + cmp r5, r4 + ble _0803DDFE + movs r3, 0x90 + lsls r3, 3 + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803DE78: .4byte 0x0000023f + thumb_func_end sub_803DD30 + + thumb_func_start CalcStringWidth +CalcStringWidth: + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0 + b _0803DEBA +_0803DE84: + ldrb r1, [r4] + adds r4, 0x1 + cmp r1, 0x23 + bne _0803DE90 + adds r5, 0x8 + b _0803DEBA +_0803DE90: + cmp r1, 0x20 + bne _0803DE98 + adds r5, 0xC + b _0803DEBA +_0803DE98: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0803DEAC + ldrb r0, [r4] + cmp r0, 0 + beq _0803DEAC + lsls r1, 8 + orrs r1, r0 + adds r4, 0x1 +_0803DEAC: + adds r0, r1, 0 + bl sub_803DEC8 + cmp r0, 0 + beq _0803DEBA + ldrb r0, [r0, 0x6] + adds r5, r0 +_0803DEBA: + ldrb r0, [r4] + cmp r0, 0 + bne _0803DE84 + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end CalcStringWidth + + thumb_func_start sub_803DEC8 +sub_803DEC8: + push {r4,r5,lr} + adds r3, r0, 0 + ldr r0, _0803DEFC + ldr r0, [r0] + ldr r0, [r0, 0x4] + ldr r5, [r0] + ldr r0, _0803DF00 + adds r1, r3, r0 + ldr r0, _0803DF04 + cmp r1, r0 + bhi _0803DF08 + movs r2, 0xFF + ands r2, r3 + movs r1, 0xFF + lsls r1, 8 + ands r1, r3 + asrs r1, 8 + subs r2, 0x20 + subs r1, 0xF8 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 5 + adds r0, r2 + lsls r0, 3 + adds r1, r5, r0 + b _0803DF56 + .align 2, 0 +_0803DEFC: .4byte gDungeonNameBannerFontFile +_0803DF00: .4byte 0xffff0800 +_0803DF04: .4byte 0x000007fe +_0803DF08: + movs r4, 0 + ldr r0, _0803DF1C + ldr r0, [r0] + subs r2, r0, 0x1 + cmp r4, r2 + bge _0803DF48 + lsrs r0, r2, 31 + adds r0, r2, r0 + b _0803DF3A + .align 2, 0 +_0803DF1C: .4byte gDungeonNameBannerFont +_0803DF20: + lsls r0, r1, 3 + adds r0, r5 + ldrh r0, [r0, 0x4] + cmp r0, r3 + bge _0803DF2E + adds r4, r1, 0x1 + b _0803DF30 +_0803DF2E: + adds r2, r1, 0 +_0803DF30: + cmp r4, r2 + bge _0803DF48 + adds r0, r4, r2 + lsrs r1, r0, 31 + adds r0, r1 +_0803DF3A: + asrs r1, r0, 1 + lsls r0, r1, 3 + adds r0, r5 + ldrh r0, [r0, 0x4] + cmp r0, r3 + bne _0803DF20 + adds r4, r1, 0 +_0803DF48: + lsls r0, r4, 3 + adds r1, r5, r0 + ldrh r0, [r1, 0x4] + cmp r0, r3 + beq _0803DF56 + adds r1, r5, 0 + adds r1, 0x8 +_0803DF56: + adds r0, r1, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_803DEC8 + + thumb_func_start sub_803DF60 +sub_803DF60: + push {r4-r7,lr} + ldr r0, _0803DFF8 + ldr r1, _0803DFFC + bl OpenFileAndGetFileDataPtr + adds r7, r0, 0 + ldr r0, [r7, 0x4] + ldr r5, [r0] + ldm r5!, {r4} + ldr r6, _0803E000 + cmp r4, 0 + beq _0803DF8C +_0803DF78: + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x20 + bl CpuCopy + adds r6, 0x20 + adds r5, 0x20 + subs r4, 0x1 + cmp r4, 0 + bne _0803DF78 +_0803DF8C: + adds r0, r7, 0 + bl CloseFile + ldr r0, _0803E004 + ldr r1, _0803DFFC + bl OpenFileAndGetFileDataPtr + adds r7, r0, 0 + ldr r5, [r7, 0x4] + ldm r5!, {r4} + ldr r6, _0803E008 + cmp r4, 0 + beq _0803DFBA +_0803DFA6: + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x20 + bl CpuCopy + adds r6, 0x20 + adds r5, 0x20 + subs r4, 0x1 + cmp r4, 0 + bne _0803DFA6 +_0803DFBA: + adds r0, r7, 0 + bl CloseFile + ldr r0, _0803E00C + ldr r4, _0803DFFC + adds r1, r4, 0 + bl OpenFileAndGetFileDataPtr + ldr r1, _0803E010 + str r0, [r1] + ldr r0, _0803E014 + adds r1, r4, 0 + bl OpenFileAndGetFileDataPtr + ldr r1, _0803E018 + str r0, [r1] + ldr r0, _0803E01C + adds r1, r4, 0 + bl OpenFileAndGetFileDataPtr + ldr r1, _0803E020 + str r0, [r1] + ldr r0, _0803E024 + adds r1, r4, 0 + bl OpenFileAndGetFileDataPtr + ldr r1, _0803E028 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803DFF8: .4byte gUnknown_80F61A8 +_0803DFFC: .4byte gUnknown_83B0000 +_0803E000: .4byte 0x06013400 +_0803E004: .4byte gUnknown_80F61B0 +_0803E008: .4byte 0x06014000 +_0803E00C: .4byte gUnknown_80F61B8 +_0803E010: .4byte gUnknown_202EC94 +_0803E014: .4byte gUnknown_80F61C4 +_0803E018: .4byte gUnknown_202EC98 +_0803E01C: .4byte gUnknown_80F61CC +_0803E020: .4byte gUnknown_202EC9C +_0803E024: .4byte gUnknown_80F61D4 +_0803E028: .4byte gUnknown_202ECA0 + thumb_func_end sub_803DF60 + + thumb_func_start sub_803E02C +sub_803E02C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + bl sub_803E13C + mov r1, sp + ldr r0, _0803E118 + ldm r0!, {r2,r3} + stm r1!, {r2,r3} + ldr r1, _0803E11C + mov r0, sp + bl OpenFileAndGetFileDataPtr + adds r7, r0, 0 + ldr r0, [r7, 0x4] + ldr r5, [r0] + ldm r5!, {r4} + ldr r6, _0803E120 + cmp r4, 0 + beq _0803E06C +_0803E058: + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x20 + bl CpuCopy + adds r6, 0x20 + adds r5, 0x20 + subs r4, 0x1 + cmp r4, 0 + bne _0803E058 +_0803E06C: + ldr r0, _0803E124 + ldr r1, [r7, 0x4] + ldr r1, [r1, 0x4] + movs r2, 0x80 + bl CpuCopy + adds r0, r7, 0 + bl CloseFile + movs r6, 0x80 + lsls r6, 2 + movs r4, 0 + ldr r0, _0803E128 + mov r9, r0 + ldr r1, _0803E12C + mov r12, r1 + movs r7, 0 + ldr r2, _0803E130 + mov r8, r2 +_0803E092: + mov r3, r12 + ldrh r0, [r3] + lsls r5, r0, 12 + adds r2, r7, 0 + movs r3, 0x8 +_0803E09C: + mov r0, r9 + ldr r1, [r0] + add r1, r8 + adds r1, r2 + adds r0, r5, 0 + orrs r0, r6 + strh r0, [r1] + adds r6, 0x1 + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _0803E09C + movs r1, 0x2 + add r12, r1 + adds r7, 0x12 + adds r4, 0x1 + cmp r4, 0x1C + ble _0803E092 + movs r4, 0 + ldr r5, _0803E128 + ldr r3, _0803E134 + movs r2, 0xC0 + lsls r2, 8 +_0803E0CA: + ldr r0, [r5] + lsls r1, r4, 1 + adds r0, r3 + adds r0, r1 + strh r2, [r0] + adds r4, 0x1 + cmp r4, 0x8 + ble _0803E0CA + movs r4, 0 + ldr r2, _0803E128 + movs r6, 0xBE + lsls r6, 1 + ldr r5, _0803E138 + movs r3, 0xBF + lsls r3, 1 +_0803E0E8: + ldr r0, [r2] + lsls r1, r4, 2 + adds r0, r1 + adds r0, r6 + strb r4, [r0] + ldr r0, [r2] + adds r0, r1 + adds r0, r5 + strb r4, [r0] + ldr r0, [r2] + adds r0, r1 + adds r0, r3 + strb r4, [r0] + adds r4, 0x1 + cmp r4, 0xFF + ble _0803E0E8 + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803E118: .4byte gUnknown_80F61DC +_0803E11C: .4byte gUnknown_83B0000 +_0803E120: .4byte 0x0600c000 +_0803E124: .4byte gUnknown_202ECA4 +_0803E128: .4byte gUnknown_203B418 +_0803E12C: .4byte gUnknown_80F5F70 +_0803E130: .4byte 0x00012a18 +_0803E134: .4byte 0x00013554 +_0803E138: .4byte 0x0000017d + thumb_func_end sub_803E02C + + thumb_func_start sub_803E13C +sub_803E13C: + push {r4,r5,lr} + bl sub_8094C14 + ldr r0, _0803E170 + ldr r0, [r0] + ldrb r0, [r0, 0xB] + ldr r5, _0803E174 + cmp r0, 0 + beq _0803E154 + movs r0, 0x80 + lsls r0, 1 + adds r5, r0 +_0803E154: + movs r4, 0 +_0803E156: + adds r0, r4, 0 + adds r0, 0xF0 + adds r1, r5, 0 + bl SetBGPaletteBufferColorArray + adds r5, 0x4 + adds r4, 0x1 + cmp r4, 0xF + ble _0803E156 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803E170: .4byte gUnknown_203B46C +_0803E174: .4byte gUnknown_202D038 + thumb_func_end sub_803E13C + + thumb_func_start sub_803E178 +sub_803E178: + push {r4,lr} + bl sub_8043D10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0803E1E0 + ldr r0, _0803E1AC + ldr r2, [r0] + ldr r3, _0803E1B0 + adds r1, r2, r3 + ldrb r1, [r1] + adds r3, r0, 0 + cmp r1, 0x15 + bne _0803E1BC + ldr r1, _0803E1B4 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0803E1BC + ldr r3, _0803E1B8 + adds r1, r2, r3 + movs r0, 0x1C + strh r0, [r1] + b _0803E204 + .align 2, 0 +_0803E1AC: .4byte gUnknown_203B418 +_0803E1B0: .4byte 0x00000644 +_0803E1B4: .4byte 0x000037fe +_0803E1B8: .4byte 0x00003a12 +_0803E1BC: + ldr r4, [r3] + ldr r1, _0803E1D8 + adds r0, r4, r1 + ldrb r0, [r0] + bl GetStairDirection + lsls r0, 24 + movs r1, 0x16 + cmp r0, 0 + beq _0803E1D2 + movs r1, 0x17 +_0803E1D2: + ldr r2, _0803E1DC + adds r0, r4, r2 + b _0803E202 + .align 2, 0 +_0803E1D8: .4byte 0x00000644 +_0803E1DC: .4byte 0x00003a12 +_0803E1E0: + cmp r0, 0x1 + bne _0803E1F8 + ldr r0, _0803E1F0 + ldr r0, [r0] + ldr r3, _0803E1F4 + adds r0, r3 + movs r1, 0x6 + b _0803E202 + .align 2, 0 +_0803E1F0: .4byte gUnknown_203B418 +_0803E1F4: .4byte 0x00003a12 +_0803E1F8: + ldr r0, _0803E20C + ldr r0, [r0] + ldr r1, _0803E210 + adds r0, r1 + movs r1, 0x18 +_0803E202: + strh r1, [r0] +_0803E204: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803E20C: .4byte gUnknown_203B418 +_0803E210: .4byte 0x00003a12 + thumb_func_end sub_803E178 + + thumb_func_start sub_803E214 +sub_803E214: + push {lr} + ldr r0, _0803E23C + ldr r0, [r0] + bl CloseFile + ldr r0, _0803E240 + ldr r0, [r0] + bl CloseFile + ldr r0, _0803E244 + ldr r0, [r0] + bl CloseFile + ldr r0, _0803E248 + ldr r0, [r0] + bl CloseFile + pop {r0} + bx r0 + .align 2, 0 +_0803E23C: .4byte gUnknown_202EC94 +_0803E240: .4byte gUnknown_202EC98 +_0803E244: .4byte gUnknown_202EC9C +_0803E248: .4byte gUnknown_202ECA0 + thumb_func_end sub_803E214 + + thumb_func_start nullsub_56 +nullsub_56: + bx lr + thumb_func_end nullsub_56 + + thumb_func_start sub_803E250 +sub_803E250: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r1, _0803E3FC + ldr r0, _0803E400 + str r0, [r1] + ldr r0, _0803E404 + movs r1, 0 + str r1, [r0] + ldr r0, _0803E408 + strb r1, [r0] + ldr r0, _0803E40C + strh r1, [r0] + ldr r5, _0803E410 + ldrh r0, [r5, 0x6] + movs r3, 0xF + adds r2, r3, 0 + ands r2, r0 + ldrh r4, [r5] + ldr r1, _0803E414 + adds r0, r1, 0 + ands r0, r4 + ldr r4, _0803E418 + ands r0, r4 + ldr r6, _0803E41C + ands r0, r6 + ldr r7, _0803E420 + ands r0, r7 + ldr r4, _0803E424 + mov r12, r4 + ands r0, r4 + ldr r4, _0803E428 + ands r0, r4 + strh r0, [r5] + movs r0, 0x80 + lsls r0, 7 + strh r0, [r5, 0x2] + movs r0, 0 + strh r0, [r5, 0x4] + ldr r0, _0803E42C + mov r10, r0 + ands r2, r0 + subs r0, 0x1 + mov r9, r0 + ands r2, r0 + subs r0, 0x2 + mov r8, r0 + ands r2, r0 + strh r2, [r5, 0x6] + ldr r2, _0803E430 + ldrh r0, [r2, 0x6] + ands r3, r0 + ldrh r0, [r2] + ands r1, r0 + ldr r0, _0803E418 + ands r1, r0 + ands r1, r6 + ands r1, r7 + mov r7, r12 + ands r1, r7 + ands r1, r4 + strh r1, [r2] + movs r0, 0 + strh r0, [r2, 0x2] + movs r0, 0xB8 + lsls r0, 7 + strh r0, [r2, 0x4] + mov r0, r10 + ands r3, r0 + mov r1, r9 + ands r3, r1 + mov r7, r8 + ands r3, r7 + strh r3, [r2, 0x6] + movs r0, 0 + mov r8, r0 +_0803E2EE: + movs r1, 0 + mov r9, r1 + mov r2, r8 + lsls r0, r2, 3 + lsls r2, 1 + mov r12, r2 + mov r3, r8 + adds r3, 0x1 + str r3, [sp] + mov r10, r1 + add r0, r8 + lsls r5, r0, 3 + ldr r4, _0803E434 + adds r4, r5, r4 + str r4, [sp, 0x4] + ldr r7, _0803E438 + adds r6, r5, r7 + ldr r0, _0803E43C + adds r3, r5, r0 + ldr r1, _0803E440 + adds r4, r5, r1 +_0803E318: + mov r7, r10 + adds r2, r5, r7 + ldrh r1, [r3] + ldr r0, _0803E414 + ands r0, r1 + ldr r1, _0803E418 + ands r0, r1 + ldr r1, _0803E41C + ands r0, r1 + ldr r1, _0803E420 + ands r0, r1 + ldr r1, _0803E424 + ands r0, r1 + strh r0, [r3] + ldr r1, [r4] + movs r7, 0x3 + ands r1, r7 + lsls r1, 14 + ldr r7, _0803E428 + ands r0, r7 + orrs r0, r1 + strh r0, [r3] + ldrh r1, [r3, 0x2] + ldr r0, _0803E444 + ands r0, r1 + strh r0, [r3, 0x2] + ldr r1, _0803E440 + adds r1, 0x4 + adds r2, r1 + ldr r1, [r2] + movs r2, 0x3 + ands r1, r2 + lsls r1, 14 + ands r0, r7 + orrs r0, r1 + strh r0, [r3, 0x2] + ldr r1, [r6] + ldr r0, _0803E448 + ands r1, r0 + ldrh r2, [r3, 0x4] + movs r0, 0xFC + lsls r0, 8 + ands r0, r2 + orrs r0, r1 + ldr r7, _0803E41C + ands r0, r7 + movs r1, 0xC0 + lsls r1, 4 + orrs r0, r1 + movs r2, 0 + orrs r0, r2 + ldr r1, _0803E44C + ands r0, r1 + strh r0, [r3, 0x4] + ldrh r1, [r3, 0x6] + ldr r0, _0803E42C + ands r0, r1 + ldr r1, _0803E450 + ands r0, r1 + strh r0, [r3, 0x6] + mov r7, r9 + lsls r1, r7, 2 + mov r0, r12 + add r0, r8 + lsls r0, 3 + adds r1, r0 + ldr r0, _0803E454 + adds r1, r0, r1 + ldr r0, [r1] + ldr r1, [sp, 0x4] + str r0, [r1] + adds r1, 0xC + str r1, [sp, 0x4] + adds r6, 0xC + adds r3, 0xC + adds r4, 0xC + movs r2, 0xC + add r10, r2 + movs r7, 0x1 + add r9, r7 + mov r0, r9 + cmp r0, 0x5 + ble _0803E318 + ldr r1, [sp] + mov r8, r1 + cmp r1, 0x1 + ble _0803E2EE + movs r2, 0 + ldr r3, _0803E458 + ldr r0, [r3] + ldr r4, _0803E45C + adds r0, r4 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r3] + ldr r7, _0803E460 + adds r0, r7 + strb r1, [r0] + ldr r0, _0803E464 + str r2, [r0] + movs r0, 0xF8 + ldr r1, _0803E468 + movs r3, 0 + bl SetBGPaletteBufferColorRGB + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803E3FC: .4byte gUnknown_202EDD0 +_0803E400: .4byte 0x000003e7 +_0803E404: .4byte gUnknown_202EDD4 +_0803E408: .4byte gUnknown_203B40D +_0803E40C: .4byte gUnknown_202EDE8 +_0803E410: .4byte gUnknown_202EDC0 +_0803E414: .4byte 0x0000feff +_0803E418: .4byte 0x0000fdff +_0803E41C: .4byte 0x0000f3ff +_0803E420: .4byte 0x0000efff +_0803E424: .4byte 0x0000dfff +_0803E428: .4byte 0x00003fff +_0803E42C: .4byte 0x0000fffe +_0803E430: .4byte gUnknown_202EDB8 +_0803E434: .4byte gUnknown_202ED30 +_0803E438: .4byte gUnknown_80F6224 +_0803E43C: .4byte gUnknown_202ED28 +_0803E440: .4byte gUnknown_80F621C +_0803E444: .4byte 0x0000c1ff +_0803E448: .4byte 0x000003ff +_0803E44C: .4byte 0x00000fff +_0803E450: .4byte 0x0000fffd +_0803E454: .4byte gUnknown_80F61EC +_0803E458: .4byte gUnknown_203B418 +_0803E45C: .4byte 0x00018217 +_0803E460: .4byte 0x00018218 +_0803E464: .4byte gUnknown_202EDC8 +_0803E468: .4byte gUnknown_202D058 + thumb_func_end sub_803E250 + + thumb_func_start sub_803E46C +sub_803E46C: + push {lr} + adds r1, r0, 0 + ldr r0, _0803E480 + ldrb r0, [r0] + cmp r0, 0 + beq _0803E484 + adds r0, r1, 0 + bl sub_803E490 + b _0803E48A + .align 2, 0 +_0803E480: .4byte gUnknown_203B40C +_0803E484: + adds r0, r1, 0 + bl sub_803E668 +_0803E48A: + pop {r0} + bx r0 + thumb_func_end sub_803E46C + + thumb_func_start sub_803E490 +sub_803E490: + push {r4,r5,lr} + sub sp, 0x8 + ldr r1, _0803E4D8 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bl xxx_draw_string_80524F0 + bl sub_8085F78 + movs r0, 0x1 + bl sub_803F580 + ldr r2, _0803E4DC + ldr r1, [r2] + ldr r3, _0803E4E0 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _0803E4EC + ldr r4, _0803E4E4 + adds r1, r4 + movs r0, 0x2 + strb r0, [r1] + ldr r1, [r2] + ldr r2, _0803E4E8 + adds r0, r1, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + subs r4, 0x16 + adds r1, r4 + movs r2, 0 + ldrsh r1, [r1, r2] + bl sub_800CCA0 + b _0803E4FC + .align 2, 0 +_0803E4D8: .4byte gUnknown_202EDD4 +_0803E4DC: .4byte gUnknown_203B418 +_0803E4E0: .4byte 0x0001821a +_0803E4E4: .4byte 0x00018208 +_0803E4E8: .4byte 0x000181f0 +_0803E4EC: + ldr r3, _0803E628 + adds r1, r3 + movs r0, 0x3 + strb r0, [r1] + movs r0, 0 + movs r1, 0 + bl sub_800CCA0 +_0803E4FC: + ldr r4, _0803E62C + ldr r2, [r4] + ldr r5, _0803E630 + adds r0, r2, r5 + movs r1, 0 + ldrsh r0, [r0, r1] + ldr r3, _0803E634 + adds r1, r2, r3 + movs r3, 0 + ldrsh r1, [r1, r3] + ldr r3, _0803E638 + adds r2, r3 + ldr r2, [r2] + subs r1, r2 + bl sub_800CCAC + bl sub_806CC10 + bl sub_804522C + bl sub_803F9CC + ldr r0, [r4] + adds r0, r5 + bl sub_800F7D0 + ldr r1, [r4] + ldrh r2, [r1, 0x12] + movs r3, 0x12 + ldrsh r0, [r1, r3] + cmp r0, 0x63 + bgt _0803E540 + adds r0, r2, 0x1 + strh r0, [r1, 0x12] +_0803E540: + ldr r0, [r4] + adds r0, r5 + bl sub_800E90C + bl sub_8042E5C + ldr r0, _0803E63C + ldr r0, [r0] + cmp r0, 0 + beq _0803E562 + cmp r0, 0x3 + beq _0803E562 + ldr r0, _0803E640 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r0, 0x6 + bne _0803E566 +_0803E562: + bl sub_8040894 +_0803E566: + bl sub_803ECE0 + bl sub_803EDF0 + ldr r0, _0803E62C + ldr r3, [r0] + ldr r4, _0803E644 + adds r0, r3, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0803E5A2 + ldr r1, _0803E648 + adds r0, r3, r1 + ldr r0, [r0] + cmp r0, 0x3 + beq _0803E5A2 + ldr r0, _0803E64C + ldrb r0, [r0] + ldr r1, _0803E650 + ldr r2, _0803E654 + ldr r2, [r2] + str r2, [sp] + movs r4, 0xBE + lsls r4, 1 + adds r2, r3, r4 + str r2, [sp, 0x4] + movs r2, 0xA0 + movs r3, 0x20 + bl sub_8004AF0 +_0803E5A2: + ldr r0, _0803E640 + ldr r0, [r0] + ldrb r0, [r0, 0xA] + bl nullsub_8 + bl sub_8005180 + bl nullsub_12 + bl sub_80060EC + ldr r1, _0803E658 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, _0803E65C + ldr r0, [r0] + bl sub_8094FB4 + bl sub_800CB20 + bl sub_800485C + bl CopySpritesToOam + bl nullsub_13 + bl sub_8005304 + bl nullsub_14 + bl TransferBGPaletteBuffer + bl sub_8009908 + bl xxx_call_update_bg_vram + bl sub_8040788 + bl xxx_call_update_bg_sound_input + ldr r0, _0803E62C + ldr r0, [r0] + ldr r1, _0803E660 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bl sub_8083F58 + bl sub_8011860 + bl sub_8040B60 + movs r0, 0 + bl ResetSprites + movs r0, 0 + bl nullsub_10 + ldr r1, _0803E664 + ldr r0, [r1] + subs r0, 0x1 + str r0, [r1] + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803E628: .4byte 0x00018208 +_0803E62C: .4byte gUnknown_203B418 +_0803E630: .4byte 0x000181f0 +_0803E634: .4byte 0x000181f2 +_0803E638: .4byte 0x000181fc +_0803E63C: .4byte gUnknown_202EDD0 +_0803E640: .4byte gUnknown_203B46C +_0803E644: .4byte 0x00018215 +_0803E648: .4byte 0x0001c06c +_0803E64C: .4byte gUnknown_203B40D +_0803E650: .4byte gUnknown_202EE8C +_0803E654: .4byte gUnknown_202EDC8 +_0803E658: .4byte gUnknown_202EDCC +_0803E65C: .4byte gUnknown_203B47C +_0803E660: .4byte 0x00018213 +_0803E664: .4byte gUnknown_202EDD4 + thumb_func_end sub_803E490 + + thumb_func_start sub_803E668 +sub_803E668: + push {r4,lr} + ldr r4, _0803E6F0 + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + ldr r0, _0803E6F4 + ldr r0, [r0] + ldrb r0, [r0, 0xA] + bl nullsub_8 + bl sub_8005180 + bl nullsub_12 + movs r0, 0 + movs r1, 0 + bl sub_8005838 + bl sub_80060EC + ldr r1, _0803E6F8 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, _0803E6FC + ldr r0, [r0] + bl sub_8094FB4 + bl sub_800CB20 + bl sub_800485C + bl CopySpritesToOam + bl nullsub_13 + bl sub_8005304 + bl nullsub_14 + bl TransferBGPaletteBuffer + bl sub_8009908 + bl xxx_call_update_bg_vram + bl xxx_call_update_bg_sound_input + ldr r0, _0803E700 + ldr r0, [r0] + ldr r1, _0803E704 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bl sub_8011860 + movs r0, 0 + bl ResetSprites + movs r0, 0 + bl nullsub_10 + ldr r0, [r4] + subs r0, 0x1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803E6F0: .4byte gUnknown_202EDD4 +_0803E6F4: .4byte gUnknown_203B46C +_0803E6F8: .4byte gUnknown_202EDCC +_0803E6FC: .4byte gUnknown_203B47C +_0803E700: .4byte gUnknown_203B418 +_0803E704: .4byte 0x00018213 + thumb_func_end sub_803E668 + + thumb_func_start sub_803E708 +sub_803E708: + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + cmp r4, 0 + beq _0803E71E +_0803E712: + adds r0, r5, 0 + bl sub_803E46C + subs r4, 0x1 + cmp r4, 0 + bne _0803E712 +_0803E71E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_803E708 + + thumb_func_start sub_803E724 +sub_803E724: + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _0803E744 + movs r6, 0xF0 +_0803E72C: + adds r0, r4, 0 + bl sub_803E46C + ldrh r1, [r5] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _0803E72C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803E744: .4byte gUnknown_20255F0 + thumb_func_end sub_803E724 + + thumb_func_start sub_803E748 +sub_803E748: + push {r4,r5,lr} + movs r5, 0x1F + ldr r1, _0803E7B8 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _0803E7BC + movs r0, 0 + str r0, [r1] + movs r0, 0x1 + movs r1, 0x1F + bl sub_803E874 + movs r4, 0 +_0803E762: + cmp r4, 0x1F + bgt _0803E780 + subs r5, 0x2 + cmp r5, 0 + bgt _0803E780 + movs r5, 0 + movs r0, 0x1 + movs r1, 0 + bl sub_803EAF0 + ldr r0, _0803E7C0 + ldr r0, [r0] + ldr r1, _0803E7C4 + adds r0, r1 + strb r5, [r0] +_0803E780: + cmp r4, 0xB + ble _0803E790 + ldr r1, _0803E7BC + ldr r0, [r1] + cmp r0, 0x1E + bgt _0803E790 + adds r0, 0x1 + str r0, [r1] +_0803E790: + movs r0, 0x1 + adds r1, r5, 0 + bl sub_803E874 + movs r0, 0x5 + bl sub_803E46C + adds r4, 0x1 + cmp r4, 0x2B + ble _0803E762 + ldr r1, _0803E7B8 + movs r0, 0 + strb r0, [r1] + ldr r1, _0803E7BC + movs r0, 0x1F + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803E7B8: .4byte gUnknown_203B40D +_0803E7BC: .4byte gUnknown_202EDC8 +_0803E7C0: .4byte gUnknown_203B418 +_0803E7C4: .4byte 0x00018217 + thumb_func_end sub_803E748 + + thumb_func_start sub_803E7C8 +sub_803E7C8: + push {r4,r5,lr} + movs r4, 0x1F + ldr r1, _0803E820 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _0803E824 + movs r0, 0 + str r0, [r1] + movs r0, 0x5 + bl sub_803E46C + movs r5, 0 +_0803E7E0: + movs r0, 0x1 + adds r1, r4, 0 + bl sub_803E874 + cmp r5, 0x1F + bgt _0803E806 + subs r4, 0x2 + cmp r4, 0 + bgt _0803E806 + movs r4, 0 + movs r0, 0x1 + movs r1, 0 + bl sub_803EAF0 + ldr r0, _0803E828 + ldr r0, [r0] + ldr r1, _0803E82C + adds r0, r1 + strb r4, [r0] +_0803E806: + movs r0, 0x5 + bl sub_803E46C + adds r5, 0x1 + cmp r5, 0x2B + ble _0803E7E0 + ldr r1, _0803E820 + movs r0, 0 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803E820: .4byte gUnknown_203B40D +_0803E824: .4byte gUnknown_202EDC8 +_0803E828: .4byte gUnknown_203B418 +_0803E82C: .4byte 0x00018217 + thumb_func_end sub_803E7C8 + + thumb_func_start sub_803E830 +sub_803E830: + push {r4,r5,lr} + ldr r1, _0803E86C + movs r0, 0x1 + strb r0, [r1] + ldr r5, _0803E870 + movs r4, 0x1F +_0803E83C: + movs r0, 0 + movs r1, 0 + bl sub_803E874 + movs r0, 0x5 + bl sub_803E46C + ldr r0, [r5] + cmp r0, 0 + ble _0803E854 + subs r0, 0x1 + str r0, [r5] +_0803E854: + subs r4, 0x1 + cmp r4, 0 + bge _0803E83C + ldr r0, _0803E870 + movs r1, 0 + str r1, [r0] + ldr r0, _0803E86C + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803E86C: .4byte gUnknown_203B40D +_0803E870: .4byte gUnknown_202EDC8 + thumb_func_end sub_803E830 + + thumb_func_start sub_803E874 +sub_803E874: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r9, r1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, _0803E9A4 + ldr r0, [r0] + ldr r5, [r0, 0x4] + ldr r1, _0803E9A8 + ldr r0, _0803E9AC + ldr r2, [r0] + ldr r0, _0803E9B0 + ldr r3, [r0] + movs r0, 0xBE + lsls r0, 1 + adds r3, r0 + movs r0, 0 + bl SetBGPaletteBufferColorRGB + adds r5, 0x4 + movs r6, 0x1 + movs r4, 0x9F +_0803E8AA: + ldr r1, _0803E9AC + mov r8, r1 + ldr r2, [r1] + ldr r7, _0803E9B0 + ldr r3, [r7] + movs r0, 0xBE + lsls r0, 1 + adds r3, r0 + adds r0, r6, 0 + adds r1, r5, 0 + bl SetBGPaletteBufferColorRGB + adds r5, 0x4 + adds r6, 0x1 + subs r4, 0x1 + cmp r4, 0 + bne _0803E8AA + ldr r3, [r7] + ldr r1, _0803E9B4 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0803E8E2 + ldr r2, _0803E9B8 + adds r0, r3, r2 + ldr r0, [r0] + cmp r0, 0x3 + bne _0803E8FC +_0803E8E2: + ldr r1, _0803E9BC + mov r2, r8 + ldr r0, [r2] + str r0, [sp] + movs r2, 0xBE + lsls r2, 1 + adds r0, r3, r2 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0xA0 + movs r3, 0x20 + bl sub_8004AF0 +_0803E8FC: + adds r6, 0x20 + ldr r5, _0803E9C0 + movs r4, 0x20 +_0803E902: + ldr r0, _0803E9AC + ldr r2, [r0] + ldr r0, _0803E9B0 + ldr r3, [r0] + movs r0, 0xBE + lsls r0, 1 + adds r3, r0 + adds r0, r6, 0 + adds r1, r5, 0 + bl SetBGPaletteBufferColorRGB + adds r5, 0x4 + adds r6, 0x1 + subs r4, 0x1 + cmp r4, 0 + bne _0803E902 + mov r1, r10 + cmp r1, 0 + beq _0803E948 + movs r6, 0xE0 + ldr r0, _0803E9C4 + ldr r0, [r0] + ldr r5, [r0, 0x4] + movs r4, 0x10 +_0803E932: + adds r0, r6, 0 + adds r1, r5, 0 + mov r2, r9 + movs r3, 0 + bl SetBGPaletteBufferColorRGB + adds r5, 0x4 + adds r6, 0x1 + subs r4, 0x1 + cmp r4, 0 + bne _0803E932 +_0803E948: + ldr r1, _0803E9C8 + ldr r4, _0803E9AC + ldr r2, [r4] + movs r0, 0xF8 + movs r3, 0 + bl SetBGPaletteBufferColorRGB + ldr r0, _0803E9B0 + ldr r0, [r0] + ldr r2, _0803E9CC + adds r0, r2 + ldr r0, [r0] + ldr r5, [r0, 0x4] + movs r6, 0x80 + lsls r6, 1 + adds r7, r4, 0 + movs r4, 0xD0 +_0803E96A: + ldr r2, [r7] + ldr r0, _0803E9B0 + ldr r3, [r0] + movs r0, 0xBE + lsls r0, 1 + adds r3, r0 + adds r0, r6, 0 + adds r1, r5, 0 + bl SetBGPaletteBufferColorRGB + ldr r2, [r7] + adds r0, r6, 0 + adds r1, r5, 0 + movs r3, 0 + bl nullsub_4 + adds r5, 0x4 + adds r6, 0x1 + subs r4, 0x1 + cmp r4, 0 + bne _0803E96A + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803E9A4: .4byte gUnknown_202EE88 +_0803E9A8: .4byte gUnknown_80F62AC +_0803E9AC: .4byte gUnknown_202EDC8 +_0803E9B0: .4byte gUnknown_203B418 +_0803E9B4: .4byte 0x00018215 +_0803E9B8: .4byte 0x0001c06c +_0803E9BC: .4byte gUnknown_202EE8C +_0803E9C0: .4byte gUnknown_202ECA4 +_0803E9C4: .4byte gDungeonNameBannerPalette +_0803E9C8: .4byte gUnknown_202D058 +_0803E9CC: .4byte 0x000181e4 + thumb_func_end sub_803E874 + + thumb_func_start sub_803E9D0 +sub_803E9D0: + push {r4-r7,lr} + ldr r0, _0803EA04 + ldr r0, [r0] + ldr r1, _0803EA08 + adds r0, r1 + ldr r0, [r0] + ldr r4, [r0, 0x4] + movs r6, 0x80 + lsls r6, 1 + ldr r7, _0803EA0C + movs r5, 0xD0 +_0803E9E6: + ldr r2, [r7] + adds r0, r6, 0 + adds r1, r4, 0 + movs r3, 0 + bl nullsub_4 + adds r4, 0x4 + adds r6, 0x1 + subs r5, 0x1 + cmp r5, 0 + bne _0803E9E6 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803EA04: .4byte gUnknown_203B418 +_0803EA08: .4byte 0x000181e4 +_0803EA0C: .4byte gUnknown_202EDC8 + thumb_func_end sub_803E9D0 + + thumb_func_start sub_803EA10 +sub_803EA10: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r0, _0803EACC + ldr r0, [r0] + ldr r4, [r0, 0x4] + ldr r1, _0803EAD0 + ldr r0, _0803EAD4 + ldr r2, [r0] + ldr r0, _0803EAD8 + ldr r3, [r0] + movs r0, 0xBE + lsls r0, 1 + adds r3, r0 + movs r0, 0 + bl SetBGPaletteBufferColorRGB + adds r4, 0x4 + movs r6, 0x1 + movs r5, 0x9F +_0803EA3A: + ldr r1, _0803EAD4 + mov r8, r1 + ldr r2, [r1] + ldr r7, _0803EAD8 + ldr r3, [r7] + movs r0, 0xBE + lsls r0, 1 + adds r3, r0 + adds r0, r6, 0 + adds r1, r4, 0 + bl SetBGPaletteBufferColorRGB + adds r4, 0x4 + adds r6, 0x1 + subs r5, 0x1 + cmp r5, 0 + bne _0803EA3A + ldr r3, [r7] + ldr r1, _0803EADC + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0803EA72 + ldr r2, _0803EAE0 + adds r0, r3, r2 + ldr r0, [r0] + cmp r0, 0x3 + bne _0803EA8C +_0803EA72: + ldr r1, _0803EAE4 + mov r2, r8 + ldr r0, [r2] + str r0, [sp] + movs r2, 0xBE + lsls r2, 1 + adds r0, r3, r2 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0xA0 + movs r3, 0x20 + bl sub_8004AF0 +_0803EA8C: + adds r6, 0x20 + ldr r4, _0803EAE8 + movs r5, 0x20 +_0803EA92: + ldr r7, _0803EAD4 + ldr r2, [r7] + ldr r0, _0803EAD8 + ldr r3, [r0] + movs r0, 0xBE + lsls r0, 1 + adds r3, r0 + adds r0, r6, 0 + adds r1, r4, 0 + bl SetBGPaletteBufferColorRGB + adds r4, 0x4 + adds r6, 0x1 + subs r5, 0x1 + cmp r5, 0 + bne _0803EA92 + ldr r1, _0803EAEC + ldr r2, [r7] + movs r0, 0xF8 + movs r3, 0 + bl SetBGPaletteBufferColorRGB + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803EACC: .4byte gUnknown_202EE88 +_0803EAD0: .4byte gUnknown_80F62AC +_0803EAD4: .4byte gUnknown_202EDC8 +_0803EAD8: .4byte gUnknown_203B418 +_0803EADC: .4byte 0x00018215 +_0803EAE0: .4byte 0x0001c06c +_0803EAE4: .4byte gUnknown_202EE8C +_0803EAE8: .4byte gUnknown_202ECA4 +_0803EAEC: .4byte gUnknown_202D058 + thumb_func_end sub_803EA10 + + thumb_func_start sub_803EAF0 +sub_803EAF0: + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldr r0, _0803EB20 + ldr r0, [r0] + cmp r4, r0 + bne _0803EB00 + b _0803EC88 +_0803EB00: + cmp r4, 0x5 + bne _0803EB06 + b _0803EC1C +_0803EB06: + cmp r4, 0x5 + bhi _0803EB2E + cmp r4, 0x2 + bne _0803EB10 + b _0803EBFC +_0803EB10: + cmp r4, 0x2 + bhi _0803EB24 + cmp r4, 0 + beq _0803EB70 + cmp r4, 0x1 + beq _0803EB50 + b _0803EC84 + .align 2, 0 +_0803EB20: .4byte gUnknown_202EDD0 +_0803EB24: + cmp r4, 0x3 + beq _0803EB98 + cmp r4, 0x4 + beq _0803EBFC + b _0803EC84 +_0803EB2E: + cmp r4, 0x8 + bne _0803EB34 + b _0803EC34 +_0803EB34: + cmp r4, 0x8 + bhi _0803EB42 + cmp r4, 0x6 + beq _0803EBBC + cmp r4, 0x7 + beq _0803EBDC + b _0803EC84 +_0803EB42: + cmp r4, 0xA + bne _0803EB48 + b _0803EC80 +_0803EB48: + cmp r4, 0xA + bcs _0803EB4E + b _0803EC54 +_0803EB4E: + b _0803EC84 +_0803EB50: + ldr r0, _0803EB6C + ldrb r0, [r0] + cmp r0, 0 + beq _0803EB5E + movs r0, 0 + bl sub_8052210 +_0803EB5E: + bl sub_8004914 + bl sub_803EC94 + movs r0, 0 + movs r1, 0x1 + b _0803EC6E + .align 2, 0 +_0803EB6C: .4byte gUnknown_203B40C +_0803EB70: + bl sub_803EC94 + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, _0803EB94 + ldrb r0, [r0] + cmp r0, 0 + bne _0803EB88 + b _0803EC84 +_0803EB88: + bl sub_8040A84 + movs r0, 0 + bl sub_8040ABC + b _0803EC84 + .align 2, 0 +_0803EB94: .4byte gUnknown_203B40C +_0803EB98: + ldr r0, _0803EBB4 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, _0803EBB8 + ldrb r0, [r0] + cmp r0, 0 + beq _0803EC84 + movs r0, 0x1 + bl sub_8040ABC + b _0803EC84 + .align 2, 0 +_0803EBB4: .4byte gUnknown_80F62B0 +_0803EBB8: .4byte gUnknown_203B40C +_0803EBBC: + ldr r0, _0803EBD4 + ldrb r0, [r0] + cmp r0, 0 + beq _0803EBCA + movs r0, 0 + bl sub_8052210 +_0803EBCA: + bl sub_8004914 + ldr r0, _0803EBD8 + movs r1, 0x1 + b _0803EC6E + .align 2, 0 +_0803EBD4: .4byte gUnknown_203B40C +_0803EBD8: .4byte gUnknown_80F6310 +_0803EBDC: + ldr r0, _0803EBF4 + ldrb r0, [r0] + cmp r0, 0 + beq _0803EBEA + movs r0, 0 + bl sub_8052210 +_0803EBEA: + bl sub_8004914 + ldr r0, _0803EBF8 + movs r1, 0x1 + b _0803EC6E + .align 2, 0 +_0803EBF4: .4byte gUnknown_203B40C +_0803EBF8: .4byte gUnknown_80F6370 +_0803EBFC: + ldr r0, _0803EC18 + ldrb r0, [r0] + cmp r0, 0 + beq _0803EC0A + movs r0, 0 + bl sub_8052210 +_0803EC0A: + bl sub_8004914 + bl sub_803EC94 + movs r0, 0 + movs r1, 0x1 + b _0803EC6E + .align 2, 0 +_0803EC18: .4byte gUnknown_203B40C +_0803EC1C: + ldr r0, _0803EC30 + ldrb r0, [r0] + cmp r0, 0 + beq _0803EC2A + movs r0, 0 + bl sub_8052210 +_0803EC2A: + movs r0, 0 + movs r1, 0x1 + b _0803EC6E + .align 2, 0 +_0803EC30: .4byte gUnknown_203B40C +_0803EC34: + ldr r0, _0803EC50 + ldrb r0, [r0] + cmp r0, 0 + beq _0803EC46 + bl sub_8083D44 + movs r0, 0 + bl sub_8052210 +_0803EC46: + movs r0, 0x2 + adds r1, r5, 0 + bl sub_801602C + b _0803EC84 + .align 2, 0 +_0803EC50: .4byte gUnknown_203B40C +_0803EC54: + ldr r0, _0803EC78 + ldrb r0, [r0] + cmp r0, 0 + beq _0803EC66 + movs r0, 0 + bl sub_8052210 + bl sub_8083D44 +_0803EC66: + bl sub_8004914 + ldr r0, _0803EC7C + movs r1, 0 +_0803EC6E: + movs r2, 0x1 + bl sub_800641C + b _0803EC84 + .align 2, 0 +_0803EC78: .4byte gUnknown_203B40C +_0803EC7C: .4byte gUnknown_80F63D0 +_0803EC80: + bl sub_8083D44 +_0803EC84: + ldr r0, _0803EC90 + str r4, [r0] +_0803EC88: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803EC90: .4byte gUnknown_202EDD0 + thumb_func_end sub_803EAF0 + + thumb_func_start sub_803EC94 +sub_803EC94: + push {lr} + ldr r0, _0803ECB0 + movs r1, 0 + strh r1, [r0, 0x1E] + strh r1, [r0, 0x20] + strh r1, [r0, 0xC] + strh r1, [r0, 0xE] + strh r1, [r0, 0x14] + adds r0, 0x28 + bl sub_801317C + pop {r0} + bx r0 + .align 2, 0 +_0803ECB0: .4byte gUnknown_202EE10 + thumb_func_end sub_803EC94 + + thumb_func_start sub_803ECB4 +sub_803ECB4: + push {r4,r5,lr} + adds r5, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + ldr r1, _0803ECDC + movs r0, 0xA + str r0, [r1] + movs r0, 0 + bl sub_8052210 + bl sub_8004914 + adds r0, r5, 0 + movs r1, 0x1 + adds r2, r4, 0 + bl sub_800641C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803ECDC: .4byte gUnknown_202EDD0 + thumb_func_end sub_803ECB4 + + thumb_func_start sub_803ECE0 +sub_803ECE0: + push {lr} + ldr r1, _0803ED24 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + cmp r0, 0 + bge _0803ECF2 + movs r0, 0 + str r0, [r1] +_0803ECF2: + ldr r0, [r1] + cmp r0, 0xB + ble _0803ECFC + movs r0, 0 + str r0, [r1] +_0803ECFC: + ldr r0, _0803ED28 + ldr r2, [r0] + ldr r0, [r1] + cmp r0, 0 + bge _0803ED08 + adds r0, 0x3 +_0803ED08: + asrs r1, r0, 2 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 6 + ldr r1, [r2, 0x4] + adds r1, r0 + movs r2, 0x90 + lsls r2, 2 + ldr r0, _0803ED2C + bl sub_80098BC + pop {r0} + bx r0 + .align 2, 0 +_0803ED24: .4byte gUnknown_202EDD8 +_0803ED28: .4byte gUnknown_202EC94 +_0803ED2C: .4byte 0x06014400 + thumb_func_end sub_803ECE0 + + thumb_func_start sub_803ED30 +sub_803ED30: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + adds r7, r1, 0 + mov r9, r3 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + cmp r5, 0 + beq _0803EDDA + ldr r0, _0803EDAC + ldr r0, [r0] + ldr r1, _0803EDB0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0803EDDA + movs r4, 0 + ldr r1, _0803EDB4 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _0803ED78 + adds r6, r1, 0 +_0803ED64: + movs r0, 0x29 + bl sub_803E46C + adds r4, 0x1 + cmp r4, 0x13 + bgt _0803ED78 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _0803ED64 +_0803ED78: + adds r0, r5, 0 + mov r1, r8 + bl sub_803EF90 + ldr r3, _0803EDB4 + movs r2, 0 + movs r1, 0x3C + strh r1, [r3] + str r7, [r3, 0x4] + ldrh r1, [r7, 0x26] + str r1, [r3, 0x8] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 8 + negs r1, r1 + str r1, [r3, 0xC] + str r2, [r3, 0x10] + mov r2, r9 + cmp r2, 0 + bge _0803EDC8 + ldr r0, _0803EDB8 + cmp r5, r0 + bge _0803EDBC + movs r0, 0x6 + b _0803EDCA + .align 2, 0 +_0803EDAC: .4byte gUnknown_203B418 +_0803EDB0: .4byte 0x0001820a +_0803EDB4: .4byte gUnknown_202EDE8 +_0803EDB8: .4byte 0xfffffc19 +_0803EDBC: + cmp r5, 0 + blt _0803EDC4 + movs r0, 0xA + b _0803EDCA +_0803EDC4: + movs r0, 0x3 + b _0803EDCA +_0803EDC8: + mov r0, r9 +_0803EDCA: + strh r0, [r3, 0x2] + ldr r0, _0803EDE8 + ldr r1, _0803EDEC + ldr r1, [r1] + adds r1, 0x18 + movs r2, 0x80 + bl sub_80098BC +_0803EDDA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803EDE8: .4byte 0x060142c0 +_0803EDEC: .4byte gUnknown_203B418 + thumb_func_end sub_803ED30 + + thumb_func_start sub_803EDF0 +sub_803EDF0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r6, _0803EE18 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _0803EE06 + b _0803EF42 +_0803EE06: + ldr r0, [r6, 0x4] + bl sub_80450E0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0803EE1C + strh r0, [r6] + b _0803EF42 + .align 2, 0 +_0803EE18: .4byte gUnknown_202EDE8 +_0803EE1C: + ldr r1, [r6, 0x4] + ldr r0, [r6, 0x8] + ldrh r2, [r1, 0x26] + cmp r0, r2 + beq _0803EE2C + movs r0, 0 + strh r0, [r6] + b _0803EF42 +_0803EE2C: + ldrh r0, [r6] + subs r0, 0x1 + strh r0, [r6] + ldr r4, [r6, 0x10] + adds r3, r4, 0 + subs r3, 0x2E + str r3, [r6, 0x10] + ldr r2, [r1, 0x70] + movs r5, 0xB8 + lsls r5, 1 + adds r0, r2, r5 + movs r1, 0 + ldrsh r0, [r0, r1] + ldr r1, [r6, 0xC] + cmp r1, 0 + bge _0803EE4E + adds r1, 0xFF +_0803EE4E: + asrs r1, 8 + adds r1, r0, r1 + ldr r0, _0803EF50 + ldr r0, [r0] + mov r12, r0 + ldr r0, _0803EF54 + add r0, r12 + movs r5, 0 + ldrsh r0, [r0, r5] + subs r7, r1, r0 + movs r1, 0xB9 + lsls r1, 1 + adds r0, r2, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r1, r3, 0 + cmp r1, 0 + bge _0803EE76 + adds r1, r4, 0 + adds r1, 0xD1 +_0803EE76: + asrs r1, 8 + adds r1, r0, r1 + ldr r0, _0803EF58 + add r0, r12 + movs r3, 0 + ldrsh r0, [r0, r3] + adds r0, 0x18 + subs r2, r1, r0 + movs r0, 0x20 + negs r0, r0 + cmp r7, r0 + blt _0803EF42 + adds r0, 0x18 + cmp r2, r0 + blt _0803EF42 + cmp r7, 0xEF + bgt _0803EF42 + cmp r2, 0x9F + bgt _0803EF42 + ldr r1, _0803EF5C + ands r1, r2 + lsls r1, 4 + ldr r0, _0803EF60 + ldrh r2, [r0, 0x6] + movs r4, 0xF + mov r8, r4 + mov r3, r8 + ands r3, r2 + orrs r3, r1 + strh r3, [r0, 0x6] + ldrh r2, [r0] + ldr r1, _0803EF64 + ands r1, r2 + ldr r2, _0803EF68 + ands r1, r2 + movs r5, 0x3 + mov r9, r5 + ldr r2, _0803EF6C + mov r10, r2 + ands r1, r2 + ldr r2, _0803EF70 + ands r1, r2 + ldr r2, _0803EF74 + ands r1, r2 + movs r5, 0x80 + lsls r5, 7 + ldr r4, _0803EF78 + ands r1, r4 + orrs r1, r5 + strh r1, [r0] + ldr r1, _0803EF7C + ands r7, r1 + ldrh r2, [r0, 0x2] + movs r1, 0xFE + lsls r1, 8 + ands r1, r2 + orrs r1, r7 + ldr r2, _0803EF80 + ands r1, r2 + ands r1, r4 + orrs r1, r5 + strh r1, [r0, 0x2] + ldr r4, _0803EF84 + ldrh r2, [r0, 0x4] + movs r1, 0xFC + lsls r1, 8 + ands r1, r2 + orrs r1, r4 + movs r2, 0 + orrs r1, r2 + strh r1, [r0, 0x4] + ldr r2, _0803EF88 + add r2, r12 + ldrb r2, [r2] + mov r4, r9 + ands r2, r4 + lsls r2, 10 + mov r5, r10 + ands r1, r5 + orrs r1, r2 + movs r4, 0x2 + ldrsh r2, [r6, r4] + mov r5, r8 + ands r2, r5 + lsls r2, 12 + ldr r4, _0803EF5C + ands r1, r4 + orrs r1, r2 + strh r1, [r0, 0x4] + ldr r1, _0803EF8C + ands r3, r1 + subs r1, 0x1 + ands r3, r1 + subs r1, 0x2 + ands r3, r1 + strh r3, [r0, 0x6] + movs r1, 0x80 + lsls r1, 1 + movs r2, 0 + movs r3, 0 + bl AddSprite +_0803EF42: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803EF50: .4byte gUnknown_203B418 +_0803EF54: .4byte 0x000181f0 +_0803EF58: .4byte 0x000181f2 +_0803EF5C: .4byte 0x00000fff +_0803EF60: .4byte gUnknown_202EDDC +_0803EF64: .4byte 0x0000feff +_0803EF68: .4byte 0x0000fdff +_0803EF6C: .4byte 0x0000f3ff +_0803EF70: .4byte 0x0000efff +_0803EF74: .4byte 0x0000dfff +_0803EF78: .4byte 0x00003fff +_0803EF7C: .4byte 0x000001ff +_0803EF80: .4byte 0x0000c1ff +_0803EF84: .4byte 0x00000216 +_0803EF88: .4byte 0x00018208 +_0803EF8C: .4byte 0x0000fffe + thumb_func_end sub_803EDF0 + + thumb_func_start sub_803EF90 +sub_803EF90: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x58 + str r0, [sp, 0x48] + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _0803F060 + ldr r0, [r0] + adds r0, 0x18 + mov r8, r0 + ldr r0, _0803F064 + ldr r1, [r0] + ldr r0, [r1, 0x4] + movs r2, 0x92 + lsls r2, 1 + adds r0, r2 + str r0, [sp, 0x24] + ldr r0, [r1, 0x4] + movs r3, 0x82 + lsls r3, 1 + adds r0, r3 + str r0, [sp, 0x28] + ldr r0, [r1, 0x4] + adds r0, 0xE4 + str r0, [sp, 0x2C] + ldr r0, [r1, 0x4] + adds r0, 0xC4 + str r0, [sp, 0x30] + ldr r0, [r1, 0x4] + adds r0, 0xA4 + str r0, [sp, 0x34] + ldr r0, [r1, 0x4] + adds r0, 0x84 + str r0, [sp, 0x38] + ldr r0, [r1, 0x4] + adds r0, 0x64 + str r0, [sp, 0x3C] + ldr r0, [r1, 0x4] + adds r0, 0x44 + str r0, [sp, 0x40] + ldr r0, [r1, 0x4] + adds r0, 0x24 + str r0, [sp, 0x44] + add r4, sp, 0x24 + mov r0, sp + adds r1, r4, 0 + movs r2, 0x24 + bl memcpy + movs r1, 0 + movs r6, 0x3 + mov r0, r8 +_0803EFFE: + stm r0!, {r1} + stm r0!, {r1} + stm r0!, {r1} + stm r0!, {r1} + stm r0!, {r1} + stm r0!, {r1} + stm r0!, {r1} + stm r0!, {r1} + subs r6, 0x1 + cmp r6, 0 + bge _0803EFFE + ldr r0, _0803F068 + ldr r1, [sp, 0x48] + cmp r1, r0 + bne _0803F0A6 + adds r0, r4, 0 + ldr r1, _0803F06C + ldm r1!, {r2,r3,r5} + stm r0!, {r2,r3,r5} + ldr r1, [r1] + str r1, [r0] + movs r5, 0 + movs r2, 0 + mov r12, r4 + movs r0, 0x20 + mov r10, r0 +_0803F032: + mov r3, r8 + ldr r0, _0803F064 + ldr r1, [r0] + lsls r0, r2, 2 + add r0, r12 + ldr r0, [r0] + lsls r0, 5 + adds r0, 0x4 + ldr r1, [r1, 0x4] + adds r4, r1, r0 + movs r1, 0x18 + adds r1, r5 + mov r9, r1 + adds r2, 0x1 + str r2, [sp, 0x54] + mov r2, r10 + subs r7, r2, r5 + movs r6, 0x7 +_0803F056: + cmp r5, 0 + bne _0803F070 + movs r1, 0 + ldr r2, [r4] + b _0803F07A + .align 2, 0 +_0803F060: .4byte gUnknown_203B418 +_0803F064: .4byte gUnknown_202EC9C +_0803F068: .4byte 0x0000270f +_0803F06C: .4byte gUnknown_80F6478 +_0803F070: + ldr r0, [r4] + adds r1, r0, 0 + lsrs r1, r7 + adds r2, r0, 0 + lsls r2, r5 +_0803F07A: + adds r4, 0x4 + ldr r0, [r3] + orrs r0, r2 + str r0, [r3] + ldr r0, [r3, 0x20] + orrs r0, r1 + str r0, [r3, 0x20] + adds r3, 0x4 + subs r6, 0x1 + cmp r6, 0 + bge _0803F056 + mov r5, r9 + cmp r5, 0x1F + ble _0803F09C + subs r5, 0x20 + movs r3, 0x20 + add r8, r3 +_0803F09C: + ldr r2, [sp, 0x54] + cmp r2, 0x3 + ble _0803F032 + movs r0, 0x4 + b _0803F26A +_0803F0A6: + ldr r0, _0803F0D8 + ldr r1, [sp, 0x48] + cmp r1, r0 + ble _0803F0B0 + str r0, [sp, 0x48] +_0803F0B0: + ldr r0, _0803F0DC + ldr r2, [sp, 0x48] + cmp r2, r0 + bge _0803F0BA + str r0, [sp, 0x48] +_0803F0BA: + ldr r1, _0803F0E0 + ldr r0, [r1] + ldr r0, [r0, 0x4] + movs r3, 0xC2 + lsls r3, 1 + adds r2, r0, r3 + cmp r5, 0 + beq _0803F0F4 + ldr r5, [sp, 0x48] + cmp r5, 0 + ble _0803F0E4 + movs r1, 0xA2 + lsls r1, 1 + adds r2, r0, r1 + b _0803F0F4 + .align 2, 0 +_0803F0D8: .4byte 0x000003e7 +_0803F0DC: .4byte 0xfffffc19 +_0803F0E0: .4byte gUnknown_202EC9C +_0803F0E4: + ldr r3, [sp, 0x48] + cmp r3, 0 + bge _0803F0F4 + movs r5, 0xB2 + lsls r5, 1 + adds r2, r0, r5 + negs r3, r3 + str r3, [sp, 0x48] +_0803F0F4: + ldm r2!, {r0} + mov r1, r8 + str r0, [r1] + ldm r2!, {r0} + str r0, [r1, 0x4] + ldm r2!, {r0} + str r0, [r1, 0x8] + ldm r2!, {r0} + str r0, [r1, 0xC] + ldm r2!, {r0} + str r0, [r1, 0x10] + ldm r2!, {r0} + str r0, [r1, 0x14] + ldm r2!, {r0} + str r0, [r1, 0x18] + ldr r0, [r2] + str r0, [r1, 0x1C] + movs r5, 0x18 + movs r2, 0x1 + str r2, [sp, 0x4C] + movs r3, 0 + str r3, [sp, 0x50] + movs r2, 0 +_0803F122: + movs r0, 0 + mov r10, r0 + adds r1, r2, 0x1 + str r1, [sp, 0x54] + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + mov r1, sp + ldr r2, _0803F15C + adds r7, r0, r2 +_0803F136: + ldr r0, [r7] + ldr r3, [sp, 0x48] + cmp r0, r3 + bgt _0803F1A2 + ldr r4, [r1] + mov r2, r8 + movs r0, 0x18 + adds r0, r5 + mov r9, r0 + movs r1, 0x20 + subs r1, r5 + mov r12, r1 + movs r6, 0x7 +_0803F150: + cmp r5, 0 + bne _0803F160 + movs r3, 0 + ldr r1, [r4] + b _0803F16C + .align 2, 0 +_0803F15C: .4byte gUnknown_80F6430 +_0803F160: + ldr r0, [r4] + adds r3, r0, 0 + mov r1, r12 + lsrs r3, r1 + adds r1, r0, 0 + lsls r1, r5 +_0803F16C: + adds r4, 0x4 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r0, [r2, 0x20] + orrs r0, r3 + str r0, [r2, 0x20] + adds r2, 0x4 + movs r3, 0x1 + str r3, [sp, 0x50] + subs r6, 0x1 + cmp r6, 0 + bge _0803F150 + mov r5, r9 + cmp r5, 0x1F + ble _0803F192 + subs r5, 0x20 + movs r0, 0x20 + add r8, r0 +_0803F192: + ldr r0, [r7] + ldr r1, [sp, 0x48] + subs r1, r0 + str r1, [sp, 0x48] + ldr r2, [sp, 0x4C] + adds r2, 0x1 + str r2, [sp, 0x4C] + b _0803F1B0 +_0803F1A2: + adds r1, 0x4 + adds r7, 0x4 + movs r3, 0x1 + add r10, r3 + mov r0, r10 + cmp r0, 0x8 + ble _0803F136 +_0803F1B0: + mov r1, r10 + cmp r1, 0x9 + bne _0803F212 + ldr r2, [sp, 0x50] + cmp r2, 0 + beq _0803F212 + ldr r3, _0803F1DC + ldr r0, [r3] + ldr r0, [r0, 0x4] + adds r4, r0, 0x4 + mov r2, r8 + movs r0, 0x18 + adds r0, r5 + mov r9, r0 + movs r1, 0x20 + subs r7, r1, r5 + movs r6, 0x7 +_0803F1D2: + cmp r5, 0 + bne _0803F1E0 + movs r3, 0 + ldr r1, [r4] + b _0803F1EA + .align 2, 0 +_0803F1DC: .4byte gUnknown_202EC9C +_0803F1E0: + ldr r0, [r4] + adds r3, r0, 0 + lsrs r3, r7 + adds r1, r0, 0 + lsls r1, r5 +_0803F1EA: + adds r4, 0x4 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r0, [r2, 0x20] + orrs r0, r3 + str r0, [r2, 0x20] + adds r2, 0x4 + subs r6, 0x1 + cmp r6, 0 + bge _0803F1D2 + mov r5, r9 + cmp r5, 0x1F + ble _0803F20C + subs r5, 0x20 + movs r2, 0x20 + add r8, r2 +_0803F20C: + ldr r3, [sp, 0x4C] + adds r3, 0x1 + str r3, [sp, 0x4C] +_0803F212: + ldr r2, [sp, 0x54] + cmp r2, 0x1 + ble _0803F122 + ldr r0, _0803F240 + ldr r1, [r0] + ldr r2, [sp, 0x48] + lsls r0, r2, 5 + adds r0, 0x4 + ldr r1, [r1, 0x4] + adds r1, r0 + mov r3, r8 + ldr r0, [sp, 0x4C] + adds r0, 0x1 + mov r8, r0 + movs r0, 0x20 + subs r7, r0, r5 + movs r6, 0x7 +_0803F234: + cmp r5, 0 + bne _0803F244 + movs r4, 0 + ldr r2, [r1] + b _0803F24E + .align 2, 0 +_0803F240: .4byte gUnknown_202EC9C +_0803F244: + ldr r0, [r1] + adds r4, r0, 0 + lsrs r4, r7 + adds r2, r0, 0 + lsls r2, r5 +_0803F24E: + adds r1, 0x4 + ldr r0, [r3] + orrs r0, r2 + str r0, [r3] + ldr r0, [r3, 0x20] + orrs r0, r4 + str r0, [r3, 0x20] + adds r3, 0x4 + subs r6, 0x1 + cmp r6, 0 + bge _0803F234 + mov r1, r8 + str r1, [sp, 0x4C] + adds r0, r1, 0 +_0803F26A: + add sp, 0x58 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803EF90 + + thumb_func_start sub_803F27C +sub_803F27C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + adds r7, r0, 0 + ldr r0, _0803F360 + mov r8, r0 + ldr r4, [r0] + ldr r2, _0803F364 + adds r1, r4, r2 + movs r2, 0 + movs r3, 0 + strh r3, [r1, 0x8] + strh r3, [r1, 0xA] + strh r3, [r1] + strh r3, [r1, 0x2] + strh r3, [r1, 0xC] + strh r3, [r1, 0xE] + strh r3, [r1, 0x4] + strh r3, [r1, 0x6] + str r3, [r1, 0x14] + ldr r5, _0803F368 + adds r0, r4, r5 + strb r2, [r0] + ldr r6, _0803F36C + adds r0, r4, r6 + movs r5, 0x1 + strb r5, [r0] + adds r6, 0x1 + adds r0, r4, r6 + strb r5, [r0] + adds r6, 0x1 + adds r0, r4, r6 + strb r2, [r0] + str r3, [r1, 0x18] + str r3, [r1, 0x1C] + cmp r7, 0 + bne _0803F2FA + subs r6, 0xF + adds r0, r4, r6 + strb r2, [r0] + adds r6, 0x6 + adds r0, r4, r6 + strb r2, [r0] + subs r6, 0x1 + adds r0, r4, r6 + strb r2, [r0] + subs r6, 0x2 + adds r0, r4, r6 + strb r2, [r0] + adds r6, 0x4 + adds r0, r4, r6 + strb r2, [r0] + subs r6, 0x3 + adds r0, r4, r6 + strb r2, [r0] + subs r6, 0x3 + adds r0, r4, r6 + strb r2, [r0] + adds r6, 0x1 + adds r0, r4, r6 + strb r2, [r0] +_0803F2FA: + str r3, [r1, 0x10] + ldr r1, _0803F370 + adds r0, r4, r1 + movs r6, 0x3 + strb r6, [r0] + adds r1, 0x12 + adds r0, r4, r1 + strb r2, [r0] + subs r1, 0x8 + adds r0, r4, r1 + strb r2, [r0] + adds r1, 0x9 + adds r0, r4, r1 + strb r2, [r0] + adds r1, 0x1 + adds r0, r4, r1 + strb r2, [r0] + subs r1, 0x8 + adds r0, r4, r1 + strb r2, [r0] + ldr r2, _0803F374 + adds r0, r4, r2 + strb r5, [r0] + bl sub_803F38C + ldr r1, _0803F378 + ldr r0, _0803F37C + str r0, [r1] + cmp r7, 0 + bne _0803F354 + mov r1, r8 + ldr r0, [r1] + ldr r2, _0803F380 + adds r0, r2 + ldrb r1, [r0] + adds r0, r6, 0 + ands r0, r1 + ldr r6, _0803F384 + adds r1, r4, r6 + strb r0, [r1] + cmp r0, 0 + bne _0803F354 + ldr r1, _0803F388 + adds r0, r4, r1 + strb r5, [r0] +_0803F354: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803F360: .4byte gUnknown_203B418 +_0803F364: .4byte 0x000181e8 +_0803F368: .4byte 0x00018216 +_0803F36C: .4byte 0x00018217 +_0803F370: .4byte 0x00018208 +_0803F374: .4byte 0x00018215 +_0803F378: .4byte gUnknown_202EDFC +_0803F37C: .4byte 0x0000ffff +_0803F380: .4byte 0x0001c58a +_0803F384: .4byte 0x00018209 +_0803F388: .4byte 0x0001820c + thumb_func_end sub_803F27C + + thumb_func_start sub_803F38C +sub_803F38C: + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, _0803F410 + ldr r1, [r0] + ldr r0, _0803F414 + adds r2, r1, r0 + ldr r0, _0803F418 + strh r0, [r2, 0x3A] + movs r0, 0x1 + negs r0, r0 + strh r0, [r2, 0x3C] + strh r0, [r2, 0x3E] + ldr r0, _0803F41C + adds r1, r0 + movs r0, 0x1 + negs r0, r0 + strh r0, [r1] + strh r0, [r2, 0x36] + strh r0, [r2, 0x38] + ldr r0, _0803F420 + ldr r0, [r0] + ldrb r0, [r0, 0xB] + negs r4, r0 + orrs r4, r0 + asrs r4, 31 + movs r0, 0x80 + lsls r0, 1 + ands r4, r0 + ldr r5, _0803F424 + adds r0, r4, r5 + mov r8, r0 + movs r0, 0xFD + mov r1, r8 + bl SetBGPaletteBufferColorArray + adds r6, r5, 0x4 + adds r6, r4, r6 + movs r0, 0xFE + adds r1, r6, 0 + bl SetBGPaletteBufferColorArray + adds r5, 0x8 + adds r4, r5 + movs r0, 0xFF + adds r1, r4, 0 + bl SetBGPaletteBufferColorArray + movs r0, 0xFD + mov r1, r8 + bl nullsub_5 + movs r0, 0xFE + adds r1, r6, 0 + bl nullsub_5 + movs r0, 0xFF + adds r1, r4, 0 + bl nullsub_5 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803F410: .4byte gUnknown_203B418 +_0803F414: .4byte 0x000181e8 +_0803F418: .4byte 0x0000ffff +_0803F41C: .4byte 0x00018228 +_0803F420: .4byte gUnknown_203B46C +_0803F424: .4byte gUnknown_202D06C + thumb_func_end sub_803F38C + + thumb_func_start sub_803F428 +sub_803F428: + push {r4-r6,lr} + adds r4, r0, 0 + ldr r0, _0803F484 + ldr r3, [r0] + ldr r0, _0803F488 + adds r2, r3, r0 + ldr r5, [r2, 0x10] + movs r6, 0 + ldrsh r1, [r2, r6] + movs r6, 0 + ldrsh r0, [r4, r6] + subs r1, r0 + cmp r1, 0 + bge _0803F446 + negs r1, r1 +_0803F446: + cmp r1, 0x6 + bgt _0803F498 + movs r0, 0x2 + ldrsh r1, [r2, r0] + movs r6, 0x2 + ldrsh r0, [r4, r6] + subs r1, r0 + cmp r1, 0 + bge _0803F45A + negs r1, r1 +_0803F45A: + cmp r1, 0x5 + bgt _0803F498 + ldr r1, _0803F48C + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0803F494 + ldr r6, _0803F490 + adds r0, r3, r6 + ldrb r0, [r0] + cmp r0, 0 + bne _0803F494 + cmp r5, 0 + beq _0803F494 + adds r0, r2, 0 + adds r1, r4, 0 + bl sub_8083294 + lsls r0, 24 + lsrs r0, 24 + b _0803F49A + .align 2, 0 +_0803F484: .4byte gUnknown_203B418 +_0803F488: .4byte 0x000181e8 +_0803F48C: .4byte 0x0001820b +_0803F490: .4byte 0x0001820c +_0803F494: + movs r0, 0x1 + b _0803F49A +_0803F498: + movs r0, 0 +_0803F49A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_803F428 + + thumb_func_start sub_803F4A0 +sub_803F4A0: + push {lr} + adds r2, r0, 0 + ldr r0, _0803F4B8 + ldr r1, [r0] + ldr r3, _0803F4BC + adds r0, r1, r3 + str r2, [r0, 0x10] + cmp r2, 0 + bne _0803F4C0 + adds r3, 0x2E + b _0803F4CA + .align 2, 0 +_0803F4B8: .4byte gUnknown_203B418 +_0803F4BC: .4byte 0x000181e8 +_0803F4C0: + ldr r0, [r2, 0x70] + ldrb r2, [r0, 0x7] + cmp r2, 0 + bne _0803F4D4 + ldr r3, _0803F4D0 +_0803F4CA: + adds r0, r1, r3 + strb r2, [r0] + b _0803F4DC + .align 2, 0 +_0803F4D0: .4byte 0x00018216 +_0803F4D4: + ldr r0, _0803F4FC + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] +_0803F4DC: + movs r0, 0 + bl sub_803F580 + bl sub_803F38C + ldr r0, _0803F500 + ldr r0, [r0] + ldr r1, _0803F504 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0803F4F8 + bl sub_806CD90 +_0803F4F8: + pop {r0} + bx r0 + .align 2, 0 +_0803F4FC: .4byte 0x00018216 +_0803F500: .4byte gUnknown_203B418 +_0803F504: .4byte 0x0001356c + thumb_func_end sub_803F4A0 + + thumb_func_start sub_803F508 +sub_803F508: + push {r4,r5,lr} + adds r3, r0, 0 + ldr r0, _0803F520 + ldr r1, [r0] + ldr r0, _0803F524 + adds r4, r1, r0 + cmp r3, 0 + bne _0803F52C + ldr r2, _0803F528 + adds r0, r1, r2 + strb r3, [r0] + b _0803F548 + .align 2, 0 +_0803F520: .4byte gUnknown_203B418 +_0803F524: .4byte 0x000181e8 +_0803F528: .4byte 0x00018216 +_0803F52C: + ldr r0, [r3, 0x70] + ldrb r2, [r0, 0x7] + cmp r2, 0 + bne _0803F540 + ldr r5, _0803F53C + adds r0, r1, r5 + strb r2, [r0] + b _0803F548 + .align 2, 0 +_0803F53C: .4byte 0x00018216 +_0803F540: + ldr r0, _0803F574 + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] +_0803F548: + str r3, [r4, 0x10] + movs r0, 0 + bl sub_803F580 + bl sub_803F38C + ldr r0, _0803F578 + ldr r0, [r0] + ldr r1, _0803F57C + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0803F566 + bl sub_806CD90 +_0803F566: + bl sub_8049ED4 + bl sub_8040A84 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803F574: .4byte 0x00018216 +_0803F578: .4byte gUnknown_203B418 +_0803F57C: .4byte 0x0001356c + thumb_func_end sub_803F508 + + thumb_func_start sub_803F580 +sub_803F580: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _0803F600 + ldr r4, [r0] + ldr r0, _0803F604 + adds r5, r4, r0 + ldr r6, [r5, 0x10] + cmp r6, 0 + bne _0803F59E + b _0803F7A0 +_0803F59E: + adds r0, r6, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + bne _0803F5AC + b _0803F7A0 +_0803F5AC: + ldr r7, [r6, 0x70] + ldr r0, [r5, 0x8] + str r0, [r5, 0xC] + ldr r0, [r5] + str r0, [r5, 0x4] + ldrh r0, [r6, 0x4] + strh r0, [r5] + ldrh r0, [r6, 0x6] + strh r0, [r5, 0x2] + ldr r0, [r6, 0xC] + cmp r0, 0 + bge _0803F5C6 + adds r0, 0xFF +_0803F5C6: + asrs r0, 8 + subs r0, 0x78 + strh r0, [r5, 0x8] + ldr r0, [r6, 0x10] + cmp r0, 0 + bge _0803F5D4 + adds r0, 0xFF +_0803F5D4: + asrs r0, 8 + subs r0, 0x60 + strh r0, [r5, 0xA] + adds r0, r6, 0 + movs r1, 0x11 + bl sub_8046CB0 + lsls r0, 24 + cmp r0, 0 + beq _0803F610 + ldrb r0, [r7, 0x7] + cmp r0, 0 + beq _0803F610 + ldr r1, _0803F608 + adds r0, r4, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r2, _0803F60C + adds r0, r4, r2 + strb r1, [r0] + b _0803F626 + .align 2, 0 +_0803F600: .4byte gUnknown_203B418 +_0803F604: .4byte 0x000181e8 +_0803F608: .4byte 0x0001820d +_0803F60C: .4byte 0x0001820e +_0803F610: + adds r0, r7, 0 + adds r0, 0xF0 + ldrb r0, [r0] + adds r1, r5, 0 + adds r1, 0x25 + strb r0, [r1] + adds r0, r7, 0 + adds r0, 0xF1 + ldrb r0, [r0] + adds r1, 0x1 + strb r0, [r1] +_0803F626: + adds r0, r7, 0 + adds r0, 0xF2 + ldrb r0, [r0] + adds r1, r5, 0 + adds r1, 0x29 + strb r0, [r1] + subs r1, 0x7 + ldrb r0, [r1] + mov r8, r0 + adds r0, r5, 0 + adds r0, 0x2C + ldrb r2, [r0] + adds r4, r1, 0 + cmp r2, 0 + bne _0803F670 + adds r0, r7, 0 + adds r0, 0xE8 + ldrb r1, [r0] + adds r7, r0, 0 + cmp r1, 0x1 + bne _0803F656 + strb r1, [r4] + movs r1, 0xE + b _0803F65A +_0803F656: + strb r2, [r4] + movs r1, 0 +_0803F65A: + ldr r2, _0803F66C + ldr r0, [r2] + cmp r0, r1 + beq _0803F678 + str r1, [r2] + adds r0, r1, 0 + bl SetBGOBJEnableFlags + b _0803F678 + .align 2, 0 +_0803F66C: .4byte gUnknown_202EDFC +_0803F670: + ldr r1, _0803F698 + ldr r0, _0803F69C + str r0, [r1] + adds r7, 0xE8 +_0803F678: + ldrb r4, [r4] + cmp r8, r4 + beq _0803F684 + movs r0, 0 + bl sub_8041888 +_0803F684: + adds r0, r5, 0 + adds r0, 0x28 + ldrb r1, [r0] + mov r8, r1 + ldrb r1, [r7] + adds r2, r0, 0 + cmp r1, 0x2 + bne _0803F6A0 + movs r0, 0x1 + b _0803F6A2 + .align 2, 0 +_0803F698: .4byte gUnknown_202EDFC +_0803F69C: .4byte 0x0000ffff +_0803F6A0: + movs r0, 0 +_0803F6A2: + strb r0, [r2] + ldrb r2, [r2] + cmp r8, r2 + beq _0803F6B4 + bl sub_806CC70 + movs r0, 0 + bl sub_8041888 +_0803F6B4: + adds r4, r5, 0 + adds r4, 0x27 + ldrb r2, [r4] + mov r8, r2 + adds r0, r6, 0 + bl sub_8071884 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _0803F6CC + movs r0, 0x1 +_0803F6CC: + strb r0, [r4] + ldrb r4, [r4] + cmp r8, r4 + beq _0803F6E2 + bl sub_8049ED4 + bl sub_8040A84 + movs r0, 0 + bl sub_8041888 +_0803F6E2: + mov r0, r9 + cmp r0, 0 + beq _0803F76A + adds r0, r5, 0 + adds r0, 0x2B + ldrb r1, [r0] + adds r4, r0, 0 + cmp r1, 0 + bne _0803F76A + movs r2, 0xC + ldrsh r1, [r5, r2] + movs r2, 0x8 + ldrsh r0, [r5, r2] + subs r1, r0 + cmp r1, 0 + bge _0803F704 + negs r1, r1 +_0803F704: + cmp r1, 0x7 + bgt _0803F71C + movs r0, 0xE + ldrsh r1, [r5, r0] + movs r2, 0xA + ldrsh r0, [r5, r2] + subs r1, r0 + cmp r1, 0 + bge _0803F718 + negs r1, r1 +_0803F718: + cmp r1, 0x7 + ble _0803F726 +_0803F71C: + bl sub_8049ED4 + movs r0, 0x1 + strb r0, [r4] + b _0803F76A +_0803F726: + movs r0, 0xC + ldrsh r1, [r5, r0] + movs r2, 0x8 + ldrsh r0, [r5, r2] + cmp r1, r0 + bge _0803F73C + movs r0, 0xF0 + movs r1, 0 + bl sub_804A1F0 + b _0803F748 +_0803F73C: + cmp r1, r0 + ble _0803F748 + movs r0, 0 + movs r1, 0 + bl sub_804A1F0 +_0803F748: + movs r0, 0xE + ldrsh r1, [r5, r0] + movs r2, 0xA + ldrsh r0, [r5, r2] + cmp r1, r0 + bge _0803F75E + movs r0, 0 + movs r1, 0xA0 + bl sub_804A49C + b _0803F76A +_0803F75E: + cmp r1, r0 + ble _0803F76A + movs r0, 0 + movs r1, 0 + bl sub_804A49C +_0803F76A: + ldr r1, [r5] + ldr r0, [r5, 0x4] + cmp r1, r0 + beq _0803F7A0 + movs r5, 0 +_0803F774: + ldr r0, _0803F7B4 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _0803F7B8 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _0803F79A + movs r1, 0x4 + ldrsh r0, [r4, r1] + movs r2, 0x6 + ldrsh r1, [r4, r2] + bl sub_80402AC +_0803F79A: + adds r5, 0x1 + cmp r5, 0x13 + ble _0803F774 +_0803F7A0: + bl sub_80400D4 + bl sub_803F7BC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803F7B4: .4byte gUnknown_203B418 +_0803F7B8: .4byte 0x000135cc + thumb_func_end sub_803F580 + + thumb_func_start sub_803F7BC +sub_803F7BC: + push {r4-r6,lr} + sub sp, 0x10 + ldr r6, _0803F800 + ldr r4, [r6] + ldr r0, _0803F804 + adds r5, r4, r0 + movs r1, 0 + ldrsh r0, [r5, r1] + movs r2, 0x2 + ldrsh r1, [r5, r2] + bl sub_804954C + ldrb r1, [r0, 0x9] + ldr r2, _0803F808 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0803F7F4 + adds r2, 0x1 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0803F7F4 + adds r2, 0xB + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _0803F80C +_0803F7F4: + movs r0, 0 + movs r1, 0 + bl sub_8005838 + b _0803F86A + .align 2, 0 +_0803F800: .4byte gUnknown_203B418 +_0803F804: .4byte 0x000181e8 +_0803F808: .4byte 0x0001820b +_0803F80C: + cmp r1, 0xFF + bne _0803F82C + ldr r1, _0803F828 + adds r0, r4, r1 + ldrb r0, [r0] + movs r1, 0x2 + cmp r0, 0x2 + bne _0803F81E + movs r1, 0x1 +_0803F81E: + movs r0, 0 + bl sub_8005838 + b _0803F86A + .align 2, 0 +_0803F828: .4byte 0x00018209 +_0803F82C: + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r2, _0803F874 + adds r0, r2 + ldr r2, [r6] + adds r2, r0 + movs r0, 0x8 + ldrsh r1, [r5, r0] + ldr r0, [r2, 0xC] + subs r0, r1 + str r0, [sp] + movs r0, 0xA + ldrsh r1, [r5, r0] + ldr r0, [r2, 0x10] + subs r0, r1 + str r0, [sp, 0x4] + movs r0, 0x8 + ldrsh r1, [r5, r0] + ldr r0, [r2, 0x14] + subs r0, r1 + str r0, [sp, 0x8] + movs r0, 0xA + ldrsh r1, [r5, r0] + ldr r0, [r2, 0x18] + subs r0, r1 + str r0, [sp, 0xC] + mov r0, sp + movs r1, 0x3 + bl sub_8005838 +_0803F86A: + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803F874: .4byte 0x000104c4 + thumb_func_end sub_803F7BC + + thumb_func_start sub_803F878 +sub_803F878: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r2, r0, 0 + adds r6, r1, 0 + ldr r0, _0803F92C + ldr r7, [r0] + ldr r0, _0803F930 + adds r5, r7, r0 + ldr r0, [r5, 0x8] + str r0, [r5, 0xC] + ldr r0, [r5] + str r0, [r5, 0x4] + adds r0, r2, 0 + cmp r2, 0 + bge _0803F89A + adds r0, 0xFF +_0803F89A: + asrs r0, 8 + subs r0, 0x78 + movs r1, 0 + mov r8, r1 + strh r0, [r5, 0x8] + adds r0, r6, 0 + cmp r6, 0 + bge _0803F8AC + adds r0, 0xFF +_0803F8AC: + asrs r0, 8 + subs r0, 0x60 + strh r0, [r5, 0xA] + movs r4, 0xC0 + lsls r4, 5 + adds r0, r2, 0 + adds r1, r4, 0 + bl __divsi3 + strh r0, [r5] + adds r0, r6, 0 + adds r1, r4, 0 + bl __divsi3 + strh r0, [r5, 0x2] + ldr r2, _0803F934 + adds r0, r7, r2 + mov r1, r8 + strb r1, [r0] + adds r2, 0x1 + adds r0, r7, r2 + strb r1, [r0] + ldr r1, _0803F938 + adds r0, r7, r1 + mov r2, r8 + strb r2, [r0] + adds r1, 0x5 + adds r0, r7, r1 + strb r2, [r0] + ldr r1, _0803F93C + ldr r0, [r1] + cmp r0, 0 + beq _0803F8F6 + movs r0, 0 + str r0, [r1] + bl SetBGOBJEnableFlags +_0803F8F6: + movs r2, 0xC + ldrsh r1, [r5, r2] + movs r2, 0x8 + ldrsh r0, [r5, r2] + subs r1, r0 + cmp r1, 0 + bge _0803F906 + negs r1, r1 +_0803F906: + cmp r1, 0x7 + bgt _0803F91E + movs r0, 0xE + ldrsh r1, [r5, r0] + movs r2, 0xA + ldrsh r0, [r5, r2] + subs r1, r0 + cmp r1, 0 + bge _0803F91A + negs r1, r1 +_0803F91A: + cmp r1, 0x7 + ble _0803F940 +_0803F91E: + bl sub_8049ED4 + adds r1, r5, 0 + adds r1, 0x2B + movs r0, 0x1 + strb r0, [r1] + b _0803F984 + .align 2, 0 +_0803F92C: .4byte gUnknown_203B418 +_0803F930: .4byte 0x000181e8 +_0803F934: .4byte 0x0001820d +_0803F938: .4byte 0x00018211 +_0803F93C: .4byte gUnknown_202EDFC +_0803F940: + movs r0, 0xC + ldrsh r1, [r5, r0] + movs r2, 0x8 + ldrsh r0, [r5, r2] + cmp r1, r0 + bge _0803F956 + movs r0, 0xF0 + movs r1, 0 + bl sub_804A1F0 + b _0803F962 +_0803F956: + cmp r1, r0 + ble _0803F962 + movs r0, 0 + movs r1, 0 + bl sub_804A1F0 +_0803F962: + movs r0, 0xE + ldrsh r1, [r5, r0] + movs r2, 0xA + ldrsh r0, [r5, r2] + cmp r1, r0 + bge _0803F978 + movs r0, 0 + movs r1, 0xA0 + bl sub_804A49C + b _0803F984 +_0803F978: + cmp r1, r0 + ble _0803F984 + movs r0, 0 + movs r1, 0 + bl sub_804A49C +_0803F984: + bl sub_803F7BC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_803F878 + + thumb_func_start sub_803F994 +sub_803F994: + ldr r0, _0803F9A8 + ldr r0, [r0] + ldr r1, _0803F9AC + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + adds r0, 0x78 + lsls r0, 8 + bx lr + .align 2, 0 +_0803F9A8: .4byte gUnknown_203B418 +_0803F9AC: .4byte 0x000181e8 + thumb_func_end sub_803F994 + + thumb_func_start sub_803F9B0 +sub_803F9B0: + ldr r0, _0803F9C4 + ldr r0, [r0] + ldr r1, _0803F9C8 + adds r0, r1 + movs r1, 0xA + ldrsh r0, [r0, r1] + adds r0, 0x60 + lsls r0, 8 + bx lr + .align 2, 0 +_0803F9C4: .4byte gUnknown_203B418 +_0803F9C8: .4byte 0x000181e8 + thumb_func_end sub_803F9B0 + + thumb_func_start sub_803F9CC +sub_803F9CC: + push {r4,r5,lr} + ldr r0, _0803FA24 + ldr r1, [r0] + ldr r2, _0803FA28 + adds r0, r1, r2 + ldr r4, [r0] + movs r5, 0 + ldr r2, _0803FA2C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0803FA0C + ldr r2, _0803FA30 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0803FA0C + bl sub_800EC74 + lsls r0, 24 + cmp r0, 0 + bne _0803FA0C + cmp r4, 0 + beq _0803FA08 + adds r0, r4, 0 + bl sub_80450F8 + cmp r0, 0x1 + bne _0803FA08 + movs r5, 0x1 +_0803FA08: + cmp r5, 0 + bne _0803FA38 +_0803FA0C: + ldr r0, _0803FA34 + movs r2, 0 + adds r0, 0x2 + movs r1, 0x1C +_0803FA14: + strh r2, [r0] + adds r0, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _0803FA14 + bl sub_803F38C + b _0803FA3C + .align 2, 0 +_0803FA24: .4byte gUnknown_203B418 +_0803FA28: .4byte 0x000181f8 +_0803FA2C: .4byte 0x0001356c +_0803FA30: .4byte 0x00018218 +_0803FA34: .4byte gUnknown_202B038 +_0803FA38: + bl sub_803FB74 +_0803FA3C: + ldr r1, _0803FA48 + movs r0, 0x1 + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803FA48: .4byte gUnknown_20274A5 + thumb_func_end sub_803F9CC + + thumb_func_start sub_803FA4C +sub_803FA4C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + adds r4, r0, 0 + mov r8, r1 + lsls r2, 24 + lsrs r2, 24 + mov r12, r2 + ldr r0, _0803FB4C + ldr r3, [r0] + ldr r0, _0803FB50 + adds r0, r3, r0 + str r0, [sp, 0x24] + ldr r7, _0803FB54 + mov r1, sp + ldr r0, _0803FB58 + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldr r0, _0803FB5C + mov r10, r0 + ldr r1, _0803FB60 + mov r9, r1 + ldr r2, [sp, 0x24] + movs r5, 0x3E + ldrsh r0, [r2, r5] + cmp r4, r0 + bne _0803FA9C + ldr r6, _0803FB64 + adds r0, r3, r6 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r8, r0 + beq _0803FB3A +_0803FA9C: + mov r2, r12 + cmp r2, 0 + bne _0803FAA6 + ldr r5, _0803FB68 + mov r9, r5 +_0803FAA6: + ldr r6, [sp, 0x24] + strh r4, [r6, 0x3E] + ldr r1, _0803FB64 + adds r0, r3, r1 + mov r2, r8 + strh r2, [r0] + mov r5, r8 + cmp r5, 0x5F + ble _0803FAC8 + movs r5, 0x60 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 5 + mov r1, r8 + bl __divsi3 + adds r4, r0, 0 +_0803FAC8: + movs r3, 0 + mov r8, r3 + movs r6, 0x58 + mov r12, r6 +_0803FAD0: + ldr r6, _0803FB6C + adds r2, r4, 0 + adds r0, r5, 0 + cmp r4, 0x7 + ble _0803FADC + movs r2, 0x8 +_0803FADC: + cmp r5, 0x7 + ble _0803FAE2 + movs r0, 0x8 +_0803FAE2: + lsls r0, 2 + mov r3, sp + adds r1, r3, r0 + lsls r0, r2, 2 + add r0, sp + ldr r2, [r0] + ldr r3, [r1] + adds r1, r3, 0 + bics r1, r2 + mov r0, r10 + ands r1, r0 + mov r0, r9 + ands r0, r2 + orrs r0, r1 + ands r6, r3 + mov r1, r8 + stm r7!, {r1} + stm r7!, {r6} + stm r7!, {r0} + stm r7!, {r0} + stm r7!, {r0} + stm r7!, {r0} + stm r7!, {r6} + stm r7!, {r1} + subs r4, 0x8 + subs r5, 0x8 + cmp r4, 0 + bge _0803FB1C + movs r4, 0 +_0803FB1C: + cmp r5, 0 + bge _0803FB22 + movs r5, 0 +_0803FB22: + movs r2, 0x8 + negs r2, r2 + add r12, r2 + mov r3, r12 + cmp r3, 0 + bge _0803FAD0 + ldr r0, _0803FB70 + movs r2, 0xC0 + lsls r2, 1 + ldr r1, _0803FB54 + bl sub_80098BC +_0803FB3A: + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803FB4C: .4byte gUnknown_203B418 +_0803FB50: .4byte 0x000181e8 +_0803FB54: .4byte gUnknown_3001018 +_0803FB58: .4byte gUnknown_80F6490 +_0803FB5C: .4byte 0x22222222 +_0803FB60: .4byte 0x44444444 +_0803FB64: .4byte 0x00018228 +_0803FB68: .4byte 0x55555555 +_0803FB6C: .4byte 0x77777777 +_0803FB70: .4byte 0x06005980 + thumb_func_end sub_803FA4C + + thumb_func_start sub_803FB74 +sub_803FB74: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _0803FBE8 + ldr r0, [r0] + ldr r1, _0803FBEC + adds r7, r0, r1 + movs r4, 0 + movs r2, 0 + str r2, [sp] + ldr r0, [r7, 0x10] + ldr r0, [r0, 0x70] + movs r1, 0xE + ldrsh r3, [r0, r1] + mov r9, r3 + movs r3, 0x10 + ldrsh r2, [r0, r3] + mov r8, r2 + ldrb r1, [r0, 0x9] + mov r10, r1 + movs r2, 0xE + ldrsh r1, [r0, r2] + cmp r1, 0 + ble _0803FBBA + mov r0, r8 + cmp r0, 0 + bge _0803FBB2 + adds r0, 0x3 +_0803FBB2: + asrs r0, 2 + cmp r1, r0 + bgt _0803FBBA + movs r4, 0x1 +_0803FBBA: + ldr r0, [r7, 0x10] + ldr r0, [r0, 0x70] + movs r3, 0x9E + lsls r3, 1 + adds r0, r3 + ldr r0, [r0] + bl sub_8094450 + cmp r0, 0 + bne _0803FBD2 + movs r0, 0x1 + str r0, [sp] +_0803FBD2: + cmp r4, 0 + beq _0803FBF4 + ldr r0, _0803FBF0 + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0803FBF4 + movs r5, 0x20 + movs r6, 0x20 + b _0803FBF8 + .align 2, 0 +_0803FBE8: .4byte gUnknown_203B418 +_0803FBEC: .4byte 0x000181e8 +_0803FBF0: .4byte gUnknown_202EDCC +_0803FBF4: + movs r5, 0 + movs r6, 0 +_0803FBF8: + ldr r1, [sp] + cmp r1, 0 + beq _0803FC0E + ldr r0, _0803FC20 + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0803FC0E + movs r5, 0x30 + movs r6, 0x30 +_0803FC0E: + cmp r5, 0 + bne _0803FC30 + adds r0, r7, 0 + adds r0, 0x2A + ldrb r0, [r0] + cmp r0, 0 + beq _0803FC24 + movs r5, 0x60 + b _0803FC30 + .align 2, 0 +_0803FC20: .4byte gUnknown_202EDCC +_0803FC24: + ldr r0, _0803FCE4 + ldr r0, [r0] + ldrb r0, [r0, 0xB] + cmp r0, 0 + beq _0803FC30 + movs r5, 0x40 +_0803FC30: + cmp r6, 0 + bne _0803FC40 + ldr r0, _0803FCE4 + ldr r0, [r0] + ldrb r0, [r0, 0xB] + cmp r0, 0 + beq _0803FC40 + movs r6, 0x40 +_0803FC40: + movs r2, 0x36 + ldrsh r0, [r7, r2] + cmp r0, r5 + beq _0803FC78 + strh r5, [r7, 0x36] + lsls r5, 2 + ldr r4, _0803FCE8 + adds r1, r5, r4 + movs r0, 0xFC + bl SetBGPaletteBufferColorArray + adds r1, r4, 0x4 + adds r1, r5, r1 + movs r0, 0xFD + bl SetBGPaletteBufferColorArray + adds r1, r4, 0 + adds r1, 0x8 + adds r1, r5, r1 + movs r0, 0xFE + bl SetBGPaletteBufferColorArray + adds r4, 0xC + adds r5, r4 + movs r0, 0xFF + adds r1, r5, 0 + bl SetBGPaletteBufferColorArray +_0803FC78: + movs r3, 0x38 + ldrsh r0, [r7, r3] + cmp r0, r6 + beq _0803FCB0 + strh r6, [r7, 0x38] + lsls r5, r6, 2 + ldr r4, _0803FCE8 + adds r1, r5, r4 + movs r0, 0xFC + bl nullsub_5 + adds r1, r4, 0x4 + adds r1, r5, r1 + movs r0, 0xFD + bl nullsub_5 + adds r1, r4, 0 + adds r1, 0x8 + adds r1, r5, r1 + movs r0, 0xFE + bl nullsub_5 + adds r4, 0xC + adds r5, r4 + movs r0, 0xFF + adds r1, r5, 0 + bl nullsub_5 +_0803FCB0: + ldr r5, _0803FCEC + ldr r0, _0803FCF0 + ldr r2, [r0] + ldr r0, _0803FCF4 + adds r1, r2, r0 + movs r3, 0x14 + ldrsh r0, [r2, r3] + ldrb r1, [r1] + adds r6, r0, r1 + movs r1, 0x3A + ldrsh r0, [r7, r1] + adds r4, r7, 0 + adds r4, 0x2E + cmp r0, r6 + beq _0803FD3E + strh r6, [r7, 0x3A] + ldr r3, _0803FCF8 + adds r0, r2, r3 + ldrb r0, [r0] + bl GetStairDirection + lsls r0, 24 + cmp r0, 0 + beq _0803FCFC + movs r0, 0 + b _0803FD00 + .align 2, 0 +_0803FCE4: .4byte gUnknown_203B46C +_0803FCE8: .4byte gUnknown_202D068 +_0803FCEC: .4byte gUnknown_202B038 +_0803FCF0: .4byte gUnknown_203B418 +_0803FCF4: .4byte 0x00000645 +_0803FCF8: .4byte 0x00000644 +_0803FCFC: + ldr r1, _0803FD20 + adds r0, r1, 0 +_0803FD00: + strh r0, [r5, 0x2] + cmp r6, 0x9 + bgt _0803FD28 + adds r1, r5, 0x4 + adds r4, r7, 0 + adds r4, 0x2E + ldrb r2, [r4] + adds r0, r6, 0 + movs r3, 0x1 + bl sub_803FE30 + ldr r2, _0803FD24 + adds r0, r2, 0 + strh r0, [r5, 0x6] + b _0803FD3E + .align 2, 0 +_0803FD20: .4byte 0x0000f2be +_0803FD24: .4byte 0x0000f2b8 +_0803FD28: + adds r1, r5, 0x4 + adds r4, r7, 0 + adds r4, 0x2E + ldrb r2, [r4] + adds r0, r6, 0 + movs r3, 0 + bl sub_803FE30 + ldr r3, _0803FE10 + adds r0, r3, 0 + strh r0, [r5, 0x8] +_0803FD3E: + movs r1, 0x3C + ldrsh r0, [r7, r1] + cmp r0, r10 + beq _0803FD64 + mov r2, r10 + strh r2, [r7, 0x3C] + ldr r3, _0803FE14 + adds r0, r3, 0 + strh r0, [r5, 0xA] + ldr r1, _0803FE18 + adds r0, r1, 0 + strh r0, [r5, 0xC] + adds r1, r5, 0 + adds r1, 0xE + ldrb r2, [r4] + mov r0, r10 + movs r3, 0 + bl sub_803FE30 +_0803FD64: + movs r2, 0x3E + ldrsh r0, [r7, r2] + cmp r0, r9 + beq _0803FD84 + ldr r3, _0803FE1C + adds r0, r3, 0 + strh r0, [r5, 0x12] + ldr r1, _0803FE20 + adds r0, r1, 0 + strh r0, [r5, 0x14] + adds r1, r5, 0 + adds r1, 0x16 + ldrb r2, [r4] + mov r0, r9 + bl sub_803FF18 +_0803FD84: + adds r6, r7, 0 + adds r6, 0x40 + movs r2, 0 + ldrsh r0, [r6, r2] + cmp r0, r8 + beq _0803FDA2 + ldr r3, _0803FE24 + adds r0, r3, 0 + strh r0, [r5, 0x1C] + adds r1, r5, 0 + adds r1, 0x1E + ldrb r2, [r4] + mov r0, r8 + bl sub_803FF18 +_0803FDA2: + ldrb r2, [r4] + mov r0, r9 + mov r1, r8 + bl sub_803FA4C + mov r0, r8 + strh r0, [r6] + mov r1, r9 + strh r1, [r7, 0x3E] + mov r0, r8 + cmp r0, 0 + bge _0803FDBC + adds r0, 0x7 +_0803FDBC: + asrs r1, r0, 3 + adds r4, r7, 0 + adds r4, 0x42 + strh r1, [r4] + movs r0, 0x7 + mov r2, r8 + ands r2, r0 + cmp r2, 0 + beq _0803FDD2 + adds r0, r1, 0x1 + strh r0, [r4] +_0803FDD2: + movs r3, 0 + ldrsh r0, [r4, r3] + cmp r0, 0xB + ble _0803FDDE + movs r0, 0xC + strh r0, [r4] +_0803FDDE: + movs r1, 0 + ldr r0, _0803FE28 + movs r2, 0xB3 + lsls r2, 2 + adds r4, r2, 0 + ldr r2, _0803FE2C + adds r3, r2, 0 + adds r2, r0, 0 + adds r2, 0x24 +_0803FDF0: + adds r0, r1, r4 + orrs r0, r3 + strh r0, [r2] + adds r2, 0x2 + adds r1, 0x1 + cmp r1, 0xB + ble _0803FDF0 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803FE10: .4byte 0x0000f2b8 +_0803FE14: .4byte 0x0000f2b9 +_0803FE18: .4byte 0x0000f2ba +_0803FE1C: .4byte 0x0000f2bb +_0803FE20: .4byte 0x0000f2bc +_0803FE24: .4byte 0x0000f2bd +_0803FE28: .4byte gUnknown_202B038 +_0803FE2C: .4byte 0xfffff000 + thumb_func_end sub_803FB74 + + thumb_func_start sub_803FE30 +sub_803FE30: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + adds r4, r1, 0 + lsls r2, 24 + lsrs r2, 24 + adds r1, r2, 0 + lsls r3, 24 + lsrs r3, 24 + mov r12, r3 + movs r0, 0 + cmp r2, 0 + bne _0803FE4E + movs r0, 0x37 +_0803FE4E: + cmp r5, 0x64 + ble _0803FE70 + cmp r2, 0 + beq _0803FE60 + ldr r1, _0803FE5C + adds r0, r1, 0 + b _0803FE64 + .align 2, 0 +_0803FE5C: .4byte 0x0000f291 +_0803FE60: + ldr r2, _0803FE6C + adds r0, r2, 0 +_0803FE64: + strh r0, [r4] + strh r0, [r4, 0x2] + b _0803FF00 + .align 2, 0 +_0803FE6C: .4byte 0x0000f2c8 +_0803FE70: + cmp r5, 0x64 + bne _0803FEBC + ldr r1, _0803FE84 + adds r0, r1, 0 + strh r0, [r4] + ldr r2, _0803FE88 + adds r0, r2, 0 + strh r0, [r4, 0x2] + b _0803FF00 + .align 2, 0 +_0803FE84: .4byte 0x0000f294 +_0803FE88: .4byte 0x0000f295 +_0803FE8C: + ldr r1, _0803FEB4 + lsls r0, r6, 3 + adds r0, r6 + adds r0, r2 + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r4] + subs r0, r5, r3 + adds r0, r7 + movs r1, 0x96 + lsls r1, 2 + adds r0, r1 + ldr r2, _0803FEB8 + adds r1, r2, 0 + orrs r0, r1 + mov r1, r8 + strh r0, [r1] + b _0803FF00 + .align 2, 0 +_0803FEB4: .4byte gUnknown_80F64D8 +_0803FEB8: .4byte 0xfffff000 +_0803FEBC: + adds r2, r4, 0x2 + mov r8, r2 + adds r7, r0, 0 + adds r7, 0x30 + cmp r5, 0x9 + ble _0803FEE2 + movs r6, 0 + cmp r1, 0 + bne _0803FED0 + movs r6, 0x1 +_0803FED0: + movs r2, 0 + ldr r0, _0803FF0C +_0803FED4: + ldr r3, [r0] + cmp r3, r5 + ble _0803FE8C + adds r0, 0x4 + adds r2, 0x1 + cmp r2, 0x8 + ble _0803FED4 +_0803FEE2: + mov r0, r12 + cmp r0, 0 + bne _0803FEF0 + ldr r1, _0803FF10 + adds r0, r1, 0 + strh r0, [r4] + adds r4, 0x2 +_0803FEF0: + adds r0, r5, r7 + movs r2, 0x96 + lsls r2, 2 + adds r0, r2 + ldr r2, _0803FF14 + adds r1, r2, 0 + orrs r0, r1 + strh r0, [r4] +_0803FF00: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803FF0C: .4byte gUnknown_80F64B4 +_0803FF10: .4byte 0x0000f278 +_0803FF14: .4byte 0xfffff000 + thumb_func_end sub_803FE30 + + thumb_func_start sub_803FF18 +sub_803FF18: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + adds r3, r1, 0 + lsls r2, 24 + lsrs r2, 24 + movs r6, 0 + cmp r2, 0 + bne _0803FF2E + movs r6, 0x1 +_0803FF2E: + movs r1, 0 + cmp r2, 0 + bne _0803FF36 + movs r1, 0x37 +_0803FF36: + ldr r0, _0803FF54 + cmp r5, r0 + ble _0803FF7C + ldr r0, _0803FF58 + lsls r1, r6, 3 + adds r1, r6 + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strh r0, [r3] + adds r3, 0x2 + strh r0, [r3] + strh r0, [r3, 0x2] + b _0804001A + .align 2, 0 +_0803FF54: .4byte 0x000003e7 +_0803FF58: .4byte gUnknown_80F6544 +_0803FF5C: + ldr r1, _0803FF78 + lsls r0, r6, 3 + adds r0, r6 + adds r0, r4 + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3] + adds r3, 0x2 + subs r5, r2 + mov r1, r8 + lsls r0, r1, 24 + lsrs r7, r0, 24 + b _0803FF98 + .align 2, 0 +_0803FF78: .4byte gUnknown_80F6544 +_0803FF7C: + movs r7, 0x20 + movs r4, 0 + adds r1, 0x30 + mov r8, r1 + ldr r2, _0803FFC0 + mov r12, r2 + ldr r0, _0803FFC4 +_0803FF8A: + ldr r2, [r0] + cmp r2, r5 + ble _0803FF5C + adds r0, 0x4 + adds r4, 0x1 + cmp r4, 0x8 + ble _0803FF8A +_0803FF98: + cmp r4, 0x9 + bne _0803FFAC + movs r1, 0x96 + lsls r1, 2 + adds r0, r7, r1 + ldr r2, _0803FFC8 + adds r1, r2, 0 + orrs r0, r1 + strh r0, [r3] + adds r3, 0x2 +_0803FFAC: + movs r4, 0 + mov r0, r12 + ldr r2, [r0] + cmp r2, r5 + bgt _0803FFD0 + ldr r0, _0803FFCC + lsls r1, r6, 3 + adds r1, r6 + b _0803FFE8 + .align 2, 0 +_0803FFC0: .4byte gUnknown_80F6520 +_0803FFC4: .4byte gUnknown_80F64FC +_0803FFC8: .4byte 0xfffff000 +_0803FFCC: .4byte gUnknown_80F6544 +_0803FFD0: + adds r4, 0x1 + cmp r4, 0x8 + bgt _0803FFF4 + lsls r0, r4, 2 + add r0, r12 + ldr r2, [r0] + cmp r2, r5 + bgt _0803FFD0 + ldr r0, _08040024 + lsls r1, r6, 3 + adds r1, r6 + adds r1, r4 +_0803FFE8: + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strh r0, [r3] + adds r3, 0x2 + subs r5, r2 +_0803FFF4: + cmp r4, 0x9 + bne _08040008 + movs r1, 0x96 + lsls r1, 2 + adds r0, r7, r1 + ldr r2, _08040028 + adds r1, r2, 0 + orrs r0, r1 + strh r0, [r3] + adds r3, 0x2 +_08040008: + mov r1, r8 + adds r0, r5, r1 + movs r2, 0x96 + lsls r2, 2 + adds r0, r2 + ldr r2, _08040028 + adds r1, r2, 0 + orrs r0, r1 + strh r0, [r3] +_0804001A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08040024: .4byte gUnknown_80F6544 +_08040028: .4byte 0xfffff000 + thumb_func_end sub_803FF18 + + thumb_func_start sub_804002C +sub_804002C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r0 + ldr r0, _08040088 + ldr r0, [r0] + ldr r1, _0804008C + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + movs r5, 0 + movs r7, 0x1 +_08040046: + movs r4, 0 + adds r6, r5, 0x1 +_0804004A: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8049590 + ldrh r1, [r0, 0x4] + orrs r1, r7 + strh r1, [r0, 0x4] + adds r4, 0x1 + cmp r4, 0x37 + ble _0804004A + adds r5, r6, 0 + cmp r5, 0x1F + ble _08040046 + movs r0, 0 + bl sub_803F580 + bl sub_8049ED4 + bl sub_8040A84 + ldr r0, _08040090 + ldr r1, [r0] + mov r0, r8 + bl sub_80522A8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08040088: .4byte gUnknown_203B418 +_0804008C: .4byte 0x0001820b +_08040090: .4byte gUnknown_80FD040 + thumb_func_end sub_804002C + + thumb_func_start sub_8040094 +sub_8040094: + push {lr} + ldr r1, _080400C8 + ldr r1, [r1] + ldr r2, _080400CC + adds r1, r2 + strb r0, [r1] + bl sub_803F7BC + bl sub_80060EC + ldr r0, _080400D0 + ldr r0, [r0] + bl sub_8094FB4 + bl sub_800CB20 + bl sub_800485C + bl xxx_call_update_bg_sound_input + bl sub_8083F58 + bl sub_8011860 + pop {r0} + bx r0 + .align 2, 0 +_080400C8: .4byte gUnknown_203B418 +_080400CC: .4byte 0x00018217 +_080400D0: .4byte gUnknown_203B47C + thumb_func_end sub_8040094 + + thumb_func_start sub_80400D4 +sub_80400D4: + push {r4,lr} + ldr r0, _08040114 + ldr r4, [r0] + movs r0, 0xC1 + lsls r0, 9 + adds r3, r4, r0 + ldr r0, [r3] + cmp r0, 0 + beq _0804010C + cmp r0, 0x1E + ble _080400EC + movs r0, 0x1F +_080400EC: + ldr r1, _08040118 + adds r2, r4, r1 + ldr r1, _0804011C + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + ldr r0, [r3] + subs r0, 0x1 + str r0, [r3] + cmp r0, 0 + bne _0804010C + ldr r1, _08040120 + adds r0, r4, r1 + ldr r0, [r0] + str r0, [r3] +_0804010C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08040114: .4byte gUnknown_203B418 +_08040118: .4byte 0x000181fc +_0804011C: .4byte gUnknown_80F6568 +_08040120: .4byte 0x00018204 + thumb_func_end sub_80400D4 + + thumb_func_start sub_8040124 +sub_8040124: + ldr r1, _0804012C + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_0804012C: .4byte gUnknown_202EE01 + thumb_func_end sub_8040124 + + thumb_func_start sub_8040130 +sub_8040130: + push {lr} + ldr r0, _08040144 + ldr r1, _08040148 + bl OpenFileAndGetFileDataPtr + ldr r1, _0804014C + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08040144: .4byte gUnknown_80F6604 +_08040148: .4byte gUnknown_83B0000 +_0804014C: .4byte gUnknown_202EE04 + thumb_func_end sub_8040130 + + thumb_func_start sub_8040150 +sub_8040150: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r0, 0 + ldr r2, _080401EC +_08040164: + movs r4, 0 + lsls r1, r0, 3 + adds r3, r0, 0x1 + mov r8, r3 + subs r1, r0 + lsls r0, r1, 7 + ldr r3, _080401F0 + adds r6, r0, r3 + lsls r5, r1, 2 +_08040176: + ldr r0, [r2] + adds r0, r6 + lsls r1, r4, 5 + adds r0, r1 + movs r1, 0x20 + str r2, [sp] + bl CpuClear + ldr r2, [sp] + ldr r0, [r2] + adds r1, r4, r5 + ldr r3, _080401F4 + adds r0, r3 + adds r0, r1 + movs r7, 0 + strb r7, [r0] + adds r4, 0x1 + cmp r4, 0x1B + ble _08040176 + mov r0, r8 + cmp r0, 0xF + ble _08040164 + mov r0, r9 + cmp r0, 0 + bne _080401B0 + ldr r1, _080401F8 + movs r0, 0x64 + strh r0, [r1] + strh r0, [r1, 0x2] +_080401B0: + ldr r3, _080401EC + ldr r0, [r3] + ldr r2, _080401FC + adds r1, r0, r2 + str r7, [r1] + ldr r1, _08040200 + adds r0, r1 + movs r2, 0x1 + strb r2, [r0] + ldr r0, [r3] + ldr r3, _08040204 + adds r0, r3 + strb r7, [r0] + ldr r0, _08040208 + strb r2, [r0] + ldr r1, _0804020C + ldr r0, _08040210 + str r0, [r1] + ldr r0, _08040214 + strb r2, [r0] + bl sub_8040238 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080401EC: .4byte gUnknown_203B418 +_080401F0: .4byte 0x0001822c +_080401F4: .4byte 0x0001ba2c +_080401F8: .4byte gUnknown_203B410 +_080401FC: .4byte 0x0001bdcc +_08040200: .4byte 0x0001bdd0 +_08040204: .4byte 0x0001bdd2 +_08040208: .4byte gUnknown_202EE00 +_0804020C: .4byte gUnknown_202EE08 +_08040210: .4byte 0x06001700 +_08040214: .4byte gUnknown_202EE01 + thumb_func_end sub_8040150 + + thumb_func_start sub_8040218 +sub_8040218: + push {lr} + ldr r0, _08040230 + ldr r0, [r0] + cmp r0, 0 + beq _08040226 + bl CloseFile +_08040226: + bl sub_8040124 + pop {r0} + bx r0 + .align 2, 0 +_08040230: .4byte gUnknown_202EE04 + thumb_func_end sub_8040218 + + thumb_func_start nullsub_203 +nullsub_203: + bx lr + thumb_func_end nullsub_203 + + thumb_func_start sub_8040238 +sub_8040238: + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, _0804026C + ldr r0, [r1] + cmp r0, 0 + beq _080402A0 + ldr r0, _08040270 + ldrb r0, [r0] + cmp r0, 0 + beq _080402A0 + movs r6, 0 + ldr r0, _08040274 + mov r8, r0 + adds r7, r1, 0 +_08040256: + cmp r6, 0xE + bne _08040278 + movs r0, 0xEE + mov r1, r8 + bl SetBGPaletteBufferColorArray + movs r0, 0xEE + mov r1, r8 + bl nullsub_5 + b _0804029A + .align 2, 0 +_0804026C: .4byte gUnknown_202EE04 +_08040270: .4byte gUnknown_202EE01 +_08040274: .4byte gUnknown_202D03C +_08040278: + adds r5, r6, 0 + adds r5, 0xE0 + ldr r0, [r7] + ldr r0, [r0, 0x4] + lsls r4, r6, 2 + ldr r1, [r0, 0x4] + adds r1, r4 + adds r0, r5, 0 + bl SetBGPaletteBufferColorArray + ldr r0, [r7] + ldr r0, [r0, 0x4] + ldr r1, [r0, 0x4] + adds r1, r4 + adds r0, r5, 0 + bl nullsub_5 +_0804029A: + adds r6, 0x1 + cmp r6, 0xF + ble _08040256 +_080402A0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8040238 + + thumb_func_start sub_80402AC +sub_80402AC: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + mov r8, r0 + str r1, [sp] + ldr r4, _0804034C + ldr r0, [r4] + str r0, [sp, 0x4] + movs r1, 0x1 + mov r10, r1 + ldr r0, _08040350 + ldr r0, [r0] + cmp r0, 0 + bne _080402D0 + b _08040776 +_080402D0: + ldr r0, _08040354 + ldrb r0, [r0] + cmp r0, 0 + bne _080402DA + b _08040776 +_080402DA: + bl sub_800EC74 + lsls r0, 24 + cmp r0, 0 + beq _080402E6 + b _08040776 +_080402E6: + mov r2, r8 + cmp r2, 0 + bge _080402EE + b _08040776 +_080402EE: + ldr r3, [sp] + cmp r3, 0x1 + bgt _080402F6 + b _08040776 +_080402F6: + cmp r2, 0x37 + ble _080402FC + b _08040776 +_080402FC: + cmp r3, 0x1E + ble _08040302 + b _08040776 +_08040302: + mov r0, r8 + adds r1, r3, 0 + bl sub_804954C + mov r9, r0 + ldrh r0, [r0] + movs r5, 0x3 + ands r5, r0 + str r5, [sp, 0x8] + ldr r0, [r4] + ldr r7, _08040358 + adds r1, r0, r7 + ldrb r1, [r1] + str r1, [sp, 0xC] + ldr r2, _0804035C + adds r1, r0, r2 + ldrb r5, [r1] + ldr r3, _08040360 + adds r1, r0, r3 + ldrb r1, [r1] + str r1, [sp, 0x14] + subs r7, 0x2 + adds r1, r0, r7 + ldrb r1, [r1] + str r1, [sp, 0x10] + ldr r1, _08040364 + adds r0, r1 + ldrb r0, [r0] + cmp r5, 0 + beq _08040368 + mov r2, r9 + ldrb r0, [r2, 0x4] + mov r7, r10 + ands r7, r0 + movs r3, 0 + str r3, [sp, 0x18] + b _0804039C + .align 2, 0 +_0804034C: .4byte gUnknown_203B418 +_08040350: .4byte gUnknown_202EE04 +_08040354: .4byte gUnknown_202EE01 +_08040358: .4byte 0x00018210 +_0804035C: .4byte 0x0001820a +_08040360: .4byte 0x0001820f +_08040364: .4byte 0x0001820b +_08040368: + cmp r0, 0 + beq _08040370 + movs r7, 0x1 + b _08040378 +_08040370: + mov r7, r9 + ldrb r0, [r7, 0x4] + mov r7, r10 + ands r7, r0 +_08040378: + bl sub_8043D10 + lsls r0, 24 + cmp r0, 0 + bne _08040398 + ldr r0, _08040390 + ldr r0, [r0] + ldr r1, _08040394 + adds r0, r1 + ldrb r0, [r0] + str r0, [sp, 0x18] + b _0804039C + .align 2, 0 +_08040390: .4byte gUnknown_203B418 +_08040394: .4byte 0x00018211 +_08040398: + movs r2, 0 + str r2, [sp, 0x18] +_0804039C: + bl sub_8094C48 + lsls r0, 24 + cmp r0, 0 + bne _080403A8 + b _08040632 +_080403A8: + ldr r0, _080403FC + ldr r0, [r0] + ldr r3, _08040400 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _080403B8 + b _08040632 +_080403B8: + movs r6, 0 + cmp r5, 0 + bne _0804045E + mov r0, r9 + ldr r4, [r0, 0x10] + cmp r4, 0 + beq _0804045E + adds r0, r4, 0 + bl sub_80450F8 + adds r1, r0, 0 + ldr r0, _08040404 + ldrb r0, [r0] + cmp r0, 0 + beq _0804045E + cmp r1, 0x1 + bne _0804045E + adds r0, r4, 0 + bl sub_8045804 + lsls r0, 24 + cmp r0, 0 + beq _0804045E + ldr r1, [r4, 0x70] + adds r0, r1, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x4A + beq _080403F6 + cmp r0, 0x47 + bne _08040408 +_080403F6: + movs r0, 0x1 + b _0804040A + .align 2, 0 +_080403FC: .4byte gUnknown_203B418 +_08040400: .4byte 0x0001356c +_08040404: .4byte gUnknown_202EE00 +_08040408: + movs r0, 0 +_0804040A: + cmp r0, 0 + bne _08040458 + adds r0, r1, 0 + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08040458 + cmp r0, 0x4 + beq _08040458 + ldrb r0, [r1, 0x6] + cmp r0, 0 + beq _08040426 + movs r6, 0x2 + b _0804045A +_08040426: + ldrb r0, [r1, 0x7] + cmp r0, 0 + beq _08040458 + ldr r0, _0804044C + mov r1, r8 + strh r1, [r0] + mov r2, sp + ldrh r2, [r2] + strh r2, [r0, 0x2] + ldr r0, _08040450 + ldr r0, [r0] + ldr r3, _08040454 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _0804045A + movs r6, 0x8 + b _0804045A + .align 2, 0 +_0804044C: .4byte gUnknown_203B410 +_08040450: .4byte gUnknown_203B418 +_08040454: .4byte 0x00018214 +_08040458: + movs r6, 0xA +_0804045A: + movs r0, 0 + mov r10, r0 +_0804045E: + mov r1, r10 + cmp r1, 0 + beq _0804054E + cmp r5, 0 + bne _08040548 + mov r2, r9 + ldr r4, [r2, 0x14] + cmp r4, 0 + beq _08040500 + adds r0, r4, 0 + bl sub_80450F8 + adds r5, r0, 0 + cmp r7, 0 + bne _0804049E + movs r6, 0 + cmp r5, 0x3 + bne _0804054E + ldr r3, [sp, 0x10] + cmp r3, 0 + bne _08040494 + mov r5, r9 + ldrh r1, [r5, 0x4] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0804054E +_08040494: + ldr r0, [sp, 0x8] + cmp r0, 0 + beq _0804054E + movs r6, 0x3 + b _0804054E +_0804049E: + cmp r5, 0x2 + bne _080404C4 + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + bne _080404B2 + ldr r1, [sp, 0x14] + cmp r1, 0 + beq _080404C4 +_080404B2: + adds r0, r4, 0 + bl sub_8045104 + ldr r1, _080404FC + ldrb r0, [r0] + adds r0, r1 + ldrb r6, [r0] + movs r2, 0 + mov r10, r2 +_080404C4: + mov r3, r10 + cmp r3, 0 + beq _0804054E + cmp r5, 0x3 + bne _080404EC + ldr r5, [sp, 0x10] + cmp r5, 0 + bne _080404E0 + mov r0, r9 + ldrh r1, [r0, 0x4] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080404EC +_080404E0: + ldr r1, [sp, 0x8] + cmp r1, 0 + beq _080404EC + movs r6, 0x3 + movs r2, 0 + mov r10, r2 +_080404EC: + mov r3, r10 + cmp r3, 0 + beq _0804054E + ldr r5, [sp, 0x8] + cmp r5, 0x1 + beq _08040548 + movs r6, 0 + b _0804054E + .align 2, 0 +_080404FC: .4byte gUnknown_80F65F0 +_08040500: + cmp r7, 0 + bne _08040528 + ldr r0, [sp, 0x18] + cmp r0, 0 + beq _08040548 + mov r2, r9 + ldrh r1, [r2] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _08040548 + bl sub_8043D10 + lsls r0, 24 + movs r6, 0x5 + cmp r0, 0 + bne _0804054E + movs r6, 0x6 + b _0804054E +_08040528: + mov r3, r9 + ldrh r1, [r3] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _08040548 + bl sub_8043D10 + lsls r0, 24 + movs r6, 0x5 + cmp r0, 0 + bne _08040544 + movs r6, 0x6 +_08040544: + movs r5, 0 + mov r10, r5 +_08040548: + mov r0, r10 + cmp r0, 0 + bne _0804055A +_0804054E: + ldr r1, [sp, 0xC] + cmp r1, 0 + beq _0804055A + cmp r6, 0 + beq _0804055E + movs r6, 0xB +_0804055A: + cmp r6, 0 + bne _08040606 +_0804055E: + cmp r7, 0 + beq _08040568 + ldr r2, [sp, 0x8] + cmp r2, 0x1 + beq _0804056C +_08040568: + movs r6, 0x1 + b _08040606 +_0804056C: + movs r4, 0xF + ldr r3, [sp] + cmp r3, 0x1E + bgt _0804058A + adds r1, r3, 0 + adds r1, 0x1 + mov r0, r8 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _0804058A + movs r4, 0xE +_0804058A: + ldr r5, [sp] + cmp r5, 0 + ble _080405AA + adds r1, r5, 0 + subs r1, 0x1 + mov r0, r8 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _080405AA + movs r0, 0x5 + negs r0, r0 + ands r4, r0 +_080405AA: + mov r7, r8 + cmp r7, 0x36 + bgt _080405CA + mov r0, r8 + adds r0, 0x1 + ldr r1, [sp] + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _080405CA + movs r0, 0x3 + negs r0, r0 + ands r4, r0 +_080405CA: + mov r0, r8 + cmp r0, 0 + ble _080405E8 + subs r0, 0x1 + ldr r1, [sp] + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _080405E8 + movs r0, 0x9 + negs r0, r0 + ands r4, r0 +_080405E8: + lsls r0, r4, 16 + asrs r6, r0, 16 + mov r2, r9 + ldrh r1, [r2, 0x4] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080405FE + adds r0, r6, 0 + adds r0, 0x10 + b _08040602 +_080405FE: + adds r0, r6, 0 + adds r0, 0x20 +_08040602: + lsls r0, 16 + asrs r6, r0, 16 +_08040606: + ldr r0, _08040618 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r0, 0x6 + bne _0804061C + adds r0, r6, 0 + adds r0, 0x80 + b _0804062C + .align 2, 0 +_08040618: .4byte gUnknown_203B46C +_0804061C: + bl sub_8094C68 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0804063A + adds r0, r6, 0 + adds r0, 0x40 +_0804062C: + lsls r0, 16 + asrs r6, r0, 16 + b _0804063A +_08040632: + movs r6, 0x1 + ldr r1, _0804074C + movs r0, 0x64 + strh r0, [r1] +_0804063A: + mov r3, r8 + lsrs r0, r3, 31 + add r0, r8 + asrs r0, 1 + mov r9, r0 + ldr r0, [sp] + subs r0, 0x2 + lsrs r1, r0, 31 + adds r1, r0, r1 + asrs r1, 1 + mov r5, r9 + lsls r3, r5, 1 + mov r7, r8 + subs r3, r7, r3 + lsls r2, r1, 1 + subs r0, r2 + lsls r0, 1 + adds r3, r0 + lsls r0, r1, 3 + subs r5, r0, r1 + lsls r0, r5, 7 + ldr r1, _08040750 + adds r0, r1 + ldr r2, [sp, 0x4] + adds r0, r2, r0 + mov r7, r9 + lsls r1, r7, 5 + adds r4, r0, r1 + ldr r0, _08040754 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r6, 2 + adds r0, r3 + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + ldr r2, [r0] + ldr r0, [r4] + ldr r1, [r2] + ands r0, r1 + ldr r1, [r2, 0x4] + orrs r0, r1 + str r0, [r4] + ldr r0, [r4, 0x4] + ldr r1, [r2, 0x8] + ands r0, r1 + ldr r1, [r2, 0xC] + orrs r0, r1 + str r0, [r4, 0x4] + ldr r0, [r4, 0x8] + ldr r1, [r2, 0x10] + ands r0, r1 + ldr r1, [r2, 0x14] + orrs r0, r1 + str r0, [r4, 0x8] + ldr r0, [r4, 0xC] + ldr r1, [r2, 0x18] + ands r0, r1 + ldr r1, [r2, 0x1C] + orrs r0, r1 + str r0, [r4, 0xC] + ldr r0, [r4, 0x10] + ldr r1, [r2, 0x20] + ands r0, r1 + ldr r1, [r2, 0x24] + orrs r0, r1 + str r0, [r4, 0x10] + ldr r0, [r4, 0x14] + ldr r1, [r2, 0x28] + ands r0, r1 + ldr r1, [r2, 0x2C] + orrs r0, r1 + str r0, [r4, 0x14] + ldr r0, [r4, 0x18] + ldr r1, [r2, 0x30] + ands r0, r1 + ldr r1, [r2, 0x34] + orrs r0, r1 + str r0, [r4, 0x18] + ldr r0, [r4, 0x1C] + ldr r1, [r2, 0x38] + ands r0, r1 + ldr r1, [r2, 0x3C] + orrs r0, r1 + str r0, [r4, 0x1C] + ldr r0, [sp, 0x4] + ldr r1, _08040758 + adds r2, r0, r1 + ldrb r0, [r2] + cmp r0, 0 + bne _08040776 + lsls r5, 2 + mov r10, r5 + mov r3, r9 + add r3, r10 + ldr r5, _0804075C + mov r8, r5 + ldr r0, [sp, 0x4] + add r0, r8 + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, 0 + bne _08040776 + movs r0, 0x1 + strb r0, [r1] + ldr r7, [sp, 0x4] + ldr r1, _08040760 + adds r6, r7, r1 + ldr r5, [r6] + cmp r5, 0x27 + bgt _08040774 + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 2 + ldr r0, _08040764 + adds r2, r7, r0 + adds r2, r1 + ldr r0, _08040768 + lsls r3, 5 + ldr r0, [r0] + adds r0, r3 + str r0, [r2] + ldr r2, _0804076C + adds r0, r7, r2 + adds r0, r1 + str r4, [r0] + ldr r3, _08040770 + adds r2, r7, r3 + adds r2, r1 + mov r0, r10 + add r0, r8 + adds r0, r7, r0 + add r0, r9 + str r0, [r2] + adds r0, r5, 0x1 + str r0, [r6] + b _08040776 + .align 2, 0 +_0804074C: .4byte gUnknown_203B410 +_08040750: .4byte 0x0001822c +_08040754: .4byte gUnknown_202EE04 +_08040758: .4byte 0x0001bdd1 +_0804075C: .4byte 0x0001ba2c +_08040760: .4byte 0x0001bdcc +_08040764: .4byte 0x0001bbec +_08040768: .4byte gUnknown_202EE08 +_0804076C: .4byte 0x0001bbf0 +_08040770: .4byte 0x0001bbf4 +_08040774: + strb r0, [r2] +_08040776: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80402AC + + thumb_func_start sub_8040788 +sub_8040788: + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08040814 + ldr r0, [r0] + mov r8, r0 + cmp r0, 0 + beq _08040870 + ldr r0, _08040818 + add r0, r8 + ldrb r0, [r0] + cmp r0, 0 + beq _08040870 + bl sub_800EC74 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _08040870 + ldr r1, _0804081C + add r1, r8 + ldrb r0, [r1] + cmp r0, 0 + bne _0804082C + movs r6, 0 + ldr r1, _08040820 + add r1, r8 + ldr r0, [r1] + cmp r6, r0 + bge _08040868 + adds r5, r1, 0 + movs r4, 0 +_080407C8: + ldr r1, _08040824 + adds r0, r4, r1 + mov r1, r8 + adds r3, r1, r0 + ldr r1, [r3, 0x4] + ldr r2, [r3] + ldr r0, _08040828 + ldr r0, [r0] + cmp r0, 0 + beq _080407E0 + cmp r0, 0x3 + bne _08040800 +_080407E0: + ldm r1!, {r0} + stm r2!, {r0} + ldm r1!, {r0} + stm r2!, {r0} + ldm r1!, {r0} + stm r2!, {r0} + ldm r1!, {r0} + stm r2!, {r0} + ldm r1!, {r0} + stm r2!, {r0} + ldm r1!, {r0} + stm r2!, {r0} + ldm r1!, {r0} + stm r2!, {r0} + ldr r0, [r1] + str r0, [r2] +_08040800: + ldr r0, [r3, 0x8] + movs r1, 0 + strb r1, [r0] + adds r4, 0xC + adds r6, 0x1 + ldr r0, [r5] + cmp r6, r0 + blt _080407C8 + b _08040868 + .align 2, 0 +_08040814: .4byte gUnknown_203B418 +_08040818: .4byte 0x0001bdd0 +_0804081C: .4byte 0x0001bdd1 +_08040820: .4byte 0x0001bdcc +_08040824: .4byte 0x0001bbec +_08040828: .4byte gUnknown_202EDD0 +_0804082C: + strb r2, [r1] + ldr r0, _0804087C + ldr r5, [r0] + ldr r4, _08040880 + add r4, r8 + movs r6, 0 + movs r7, 0x80 + lsls r7, 1 +_0804083C: + ldr r0, _08040884 + ldr r0, [r0] + cmp r0, 0 + beq _08040848 + cmp r0, 0x3 + bne _08040854 +_08040848: + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x80 + lsls r2, 1 + bl CpuCopy +_08040854: + adds r5, r7 + adds r4, r7 + adds r6, 0x8 + ldr r0, _08040888 + cmp r6, r0 + ble _0804083C + ldr r1, _0804088C + add r1, r8 + movs r0, 0x1 + strb r0, [r1] +_08040868: + ldr r1, _08040890 + add r1, r8 + movs r0, 0 + str r0, [r1] +_08040870: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804087C: .4byte gUnknown_202EE08 +_08040880: .4byte 0x0001822c +_08040884: .4byte gUnknown_202EDD0 +_08040888: .4byte 0x000001bf +_0804088C: .4byte 0x0001bdd2 +_08040890: .4byte 0x0001bdcc + thumb_func_end sub_8040788 + + thumb_func_start sub_8040894 +sub_8040894: + push {r4-r7,lr} + sub sp, 0x8 + ldr r0, _080409F4 + ldr r1, [r0] + ldr r2, _080409F8 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080408A8 + b _08040A6A +_080408A8: + adds r2, 0x5 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080408B4 + b _08040A6A +_080408B4: + ldr r7, _080409FC + movs r1, 0 + ldrsh r0, [r7, r1] + cmp r0, 0x63 + ble _080408C0 + b _08040A6A +_080408C0: + ldr r0, _08040A00 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + movs r0, 0x8 + ands r1, r0 + cmp r1, 0 + beq _080408D2 + b _08040A6A +_080408D2: + movs r0, 0 + movs r1, 0 + str r0, [sp] + str r1, [sp, 0x4] + mov r0, sp + ldrh r0, [r0] + ldr r1, _08040A04 + ands r1, r0 + ldr r3, _08040A08 + ldr r0, [sp] + ands r0, r3 + orrs r0, r1 + str r0, [sp] + mov r1, sp + ldrh r1, [r1] + adds r2, r3, 0 + ands r2, r0 + orrs r2, r1 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r0, _08040A0C + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + adds r2, r3, 0 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r5, _08040A10 + adds r0, r5, 0 + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + adds r2, r3, 0 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r0, _08040A14 + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + adds r2, r3, 0 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r0, _08040A18 + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + adds r2, r3, 0 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r4, _08040A1C + adds r0, r4, 0 + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + ands r3, r1 + orrs r3, r0 + str r3, [sp] + mov r3, sp + ldrh r0, [r3, 0x2] + ldr r6, _08040A20 + ands r6, r0 + ands r6, r4 + strh r6, [r3, 0x2] + ldr r2, _08040A24 + ldrh r1, [r3, 0x4] + movs r0, 0xFC + lsls r0, 8 + ands r0, r1 + orrs r0, r2 + ands r0, r5 + movs r5, 0xF + lsls r1, r5, 12 + ldr r4, _08040A28 + ands r0, r4 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r3, 0x6] + ldr r2, _08040A2C + ands r2, r0 + ldr r0, _08040A30 + ands r2, r0 + strh r2, [r3, 0x6] + ldr r0, _08040A34 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r0, 0x6 + bne _08040A3C + movs r1, 0 + ldrsh r0, [r7, r1] + lsls r0, 2 + adds r0, 0x10 + ldr r1, _08040A38 + ands r0, r1 + strh r0, [r3, 0x2] + movs r1, 0x2 + ldrsh r0, [r7, r1] + adds r0, 0x1 + lsls r0, 2 + ands r0, r4 + lsls r0, 4 + adds r1, r2, 0 + ands r1, r5 + orrs r1, r0 + strh r1, [r3, 0x6] + movs r1, 0x80 + lsls r1, 1 + mov r0, sp + movs r2, 0 + movs r3, 0 + bl nullsub_11 + b _08040A6A + .align 2, 0 +_080409F4: .4byte gUnknown_203B418 +_080409F8: .4byte 0x00018214 +_080409FC: .4byte gUnknown_203B410 +_08040A00: .4byte gUnknown_202EE02 +_08040A04: .4byte 0x0000feff +_08040A08: .4byte 0xffff0000 +_08040A0C: .4byte 0x0000fdff +_08040A10: .4byte 0x0000f3ff +_08040A14: .4byte 0x0000efff +_08040A18: .4byte 0x0000dfff +_08040A1C: .4byte 0x00003fff +_08040A20: .4byte 0x0000c1ff +_08040A24: .4byte 0x00000215 +_08040A28: .4byte 0x00000fff +_08040A2C: .4byte 0x0000fffe +_08040A30: .4byte 0x0000fffd +_08040A34: .4byte gUnknown_203B46C +_08040A38: .4byte 0x000001ff +_08040A3C: + movs r1, 0 + ldrsh r0, [r7, r1] + lsls r0, 2 + adds r0, 0x8 + ldr r1, _08040A74 + ands r0, r1 + strh r0, [r3, 0x2] + movs r1, 0x2 + ldrsh r0, [r7, r1] + lsls r0, 2 + ands r0, r4 + lsls r0, 4 + adds r1, r2, 0 + ands r1, r5 + orrs r1, r0 + strh r1, [r3, 0x6] + movs r1, 0x80 + lsls r1, 1 + mov r0, sp + movs r2, 0 + movs r3, 0 + bl AddSprite +_08040A6A: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08040A74: .4byte 0x000001ff + thumb_func_end sub_8040894 + + thumb_func_start sub_8040A78 +sub_8040A78: + ldr r1, _08040A80 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_08040A80: .4byte gUnknown_202EE02 + thumb_func_end sub_8040A78 + + thumb_func_start sub_8040A84 +sub_8040A84: + push {r4-r6,lr} + ldr r0, _08040AB4 + ldr r0, [r0] + ldr r1, _08040AB8 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + movs r5, 0 +_08040A94: + movs r4, 0 + adds r6, r5, 0x1 +_08040A98: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80402AC + adds r4, 0x1 + cmp r4, 0x37 + ble _08040A98 + adds r5, r6, 0 + cmp r5, 0x1F + ble _08040A94 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08040AB4: .4byte gUnknown_203B418 +_08040AB8: .4byte 0x0001bdd1 + thumb_func_end sub_8040A84 + + thumb_func_start sub_8040ABC +sub_8040ABC: + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _08040AD8 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r0, 0x6 + bne _08040ADC + movs r7, 0xF + movs r0, 0 + b _08040AEC + .align 2, 0 +_08040AD8: .4byte gUnknown_203B46C +_08040ADC: + cmp r1, 0 + beq _08040AE8 + movs r7, 0xE + movs r4, 0 + mov r8, r4 + b _08040AEE +_08040AE8: + movs r7, 0x10 + movs r0, 0x3 +_08040AEC: + mov r8, r0 +_08040AEE: + ldr r6, _08040B58 + movs r2, 0x1 + movs r1, 0 + cmp r1, r7 + bge _08040B22 + ldr r4, _08040B5C + mov r12, r4 +_08040AFC: + lsls r0, r2, 6 + mov r4, r12 + adds r3, r0, r4 + adds r4, r2, 0x1 + adds r5, r1, 0x1 + movs r2, 0x1B +_08040B08: + adds r1, r6, 0 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + strh r1, [r3] + adds r3, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _08040B08 + adds r2, r4, 0 + adds r1, r5, 0 + cmp r1, r7 + blt _08040AFC +_08040B22: + movs r1, 0 + cmp r1, r8 + bge _08040B4C + ldr r6, _08040B5C + movs r0, 0xE0 + lsls r0, 8 + adds r3, r0, 0 +_08040B30: + lsls r0, r2, 6 + adds r0, r6 + adds r4, r2, 0x1 + adds r5, r1, 0x1 + movs r2, 0x1B +_08040B3A: + strh r3, [r0] + adds r0, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _08040B3A + adds r2, r4, 0 + adds r1, r5, 0 + cmp r1, r8 + blt _08040B30 +_08040B4C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08040B58: .4byte 0x0000e0b8 +_08040B5C: .4byte gUnknown_202B03A + thumb_func_end sub_8040ABC + + thumb_func_start sub_8040B60 +sub_8040B60: + push {r4,r5,lr} + ldr r0, _08040BA4 + ldr r3, [r0] + ldr r1, _08040BA8 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08040B9E + movs r1, 0 + ldr r2, _08040BAC + adds r5, r3, r2 + movs r4, 0 +_08040B78: + lsls r0, r1, 3 + adds r2, r1, 0x1 + subs r0, r1 + movs r1, 0x37 + lsls r0, 2 + adds r0, r5 + adds r0, 0x37 +_08040B86: + strb r4, [r0] + subs r0, 0x1 + subs r1, 0x1 + cmp r1, 0 + bge _08040B86 + adds r1, r2, 0 + cmp r1, 0x1F + ble _08040B78 + movs r1, 0 + ldr r2, _08040BA8 + adds r0, r3, r2 + strb r1, [r0] +_08040B9E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08040BA4: .4byte gUnknown_203B418 +_08040BA8: .4byte 0x0001bdd2 +_08040BAC: .4byte 0x0001ba2c + thumb_func_end sub_8040B60 + + thumb_func_start sub_8040BB0 +sub_8040BB0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r6, r0, 0 + adds r7, r1, 0 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + bl sub_804143C + mov r8, r0 + ldrh r4, [r7, 0x2] + adds r0, r6, 0 + bl sub_807E580 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + mov r2, r8 + bl sub_804141C + lsls r0, 24 + lsrs r5, r0, 24 + mov r9, r5 + ldrh r4, [r7, 0x2] + adds r0, r6, 0 + bl sub_807E580 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + mov r2, r8 + bl sub_80412E0 + lsls r0, 16 + lsrs r0, 16 + bl sub_800ECB8 + movs r1, 0 + ldrsh r4, [r0, r1] + adds r0, r6, 0 + bl sub_8042768 + lsls r0, 24 + cmp r0, 0 + beq _08040C28 + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_80414C0 + lsls r0, 24 + cmp r0, 0 + bne _08040C28 + mov r0, r10 + cmp r0, 0 + bne _08040C2C +_08040C28: + adds r0, r5, 0 + b _08040C3C +_08040C2C: + cmp r4, 0 + beq _08040C3A + adds r0, r6, 0 + adds r1, r7, 0 + mov r2, r8 + bl sub_8040C4C +_08040C3A: + mov r0, r9 +_08040C3C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8040BB0 + + thumb_func_start sub_8040C4C +sub_8040C4C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + adds r7, r0, 0 + adds r4, r1, 0 + adds r6, r2, 0 + ldrh r5, [r4, 0x2] + bl sub_807E580 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + adds r2, r6, 0 + bl sub_80412E0 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldr r6, [r7, 0x70] + ldrh r0, [r4, 0x2] + bl sub_800EC94 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0x4 + ldrsh r5, [r6, r0] + ldrh r4, [r4, 0x2] + adds r0, r7, 0 + bl sub_807E580 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + movs r2, 0x1 + bl sub_80412E0 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_800E710 + adds r2, r0, 0 + movs r0, 0x1 + negs r0, r0 + cmp r2, r0 + beq _08040CC4 + add r0, sp, 0x8 + adds r1, r7, 0 + adds r1, 0x28 + lsls r2, 24 + lsrs r2, 24 + bl sub_800569C + b _08040CC8 +_08040CC4: + movs r0, 0 + str r0, [sp, 0x8] +_08040CC8: + mov r0, sp + mov r1, r9 + strh r1, [r0] + mov r1, sp + ldrh r0, [r6, 0x4] + strh r0, [r1, 0x2] + ldr r0, [r7, 0xC] + cmp r0, 0 + bge _08040CDC + adds r0, 0xFF +_08040CDC: + asrs r0, 8 + strh r0, [r1, 0x4] + mov r1, sp + ldr r0, [r7, 0x10] + cmp r0, 0 + bge _08040CEA + adds r0, 0xFF +_08040CEA: + asrs r0, 8 + strh r0, [r1, 0x6] + adds r0, r6, 0 + adds r0, 0x46 + ldrb r0, [r0] + str r0, [sp, 0xC] + movs r0, 0 + str r0, [sp, 0x10] + mov r0, sp + bl sub_8041500 + mov r0, r9 + bl sub_800EEC8 + bl sub_800EF64 + movs r0, 0x58 + bl sub_803E46C + mov r0, sp + bl sub_800EA84 + adds r4, r0, 0 + adds r1, r7, 0 + movs r2, 0x5 + bl sub_8042DD4 + ldr r0, _08040D28 + ldrb r5, [r0] + ldr r6, _08040D2C + b _08040D78 + .align 2, 0 +_08040D28: .4byte gUnknown_203B40D +_08040D2C: .4byte 0x00001010 +_08040D30: + ldr r0, _08040D58 + movs r1, 0x1 + strb r1, [r0] + ldr r1, _08040D5C + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, r6 + beq _08040D48 + ldr r3, _08040D60 + adds r0, r2, r3 + strh r0, [r1] +_08040D48: + ldr r1, _08040D64 + ldr r0, [r1] + cmp r0, 0x4 + ble _08040D68 + subs r0, 0x4 + str r0, [r1] + b _08040D6E + .align 2, 0 +_08040D58: .4byte gUnknown_203B40D +_08040D5C: .4byte gUnknown_2026E4E +_08040D60: .4byte 0x00000101 +_08040D64: .4byte gUnknown_202EDC8 +_08040D68: + movs r0, 0 + str r0, [r1] + mov r8, r0 +_08040D6E: + bl sub_803EA10 + movs r0, 0x26 + bl sub_803E46C +_08040D78: + adds r0, r4, 0 + bl sub_800E9A8 + lsls r0, 24 + cmp r0, 0 + beq _08040D8A + mov r0, r8 + cmp r0, 0 + bne _08040D30 +_08040D8A: + ldr r0, _08040D9C + strb r5, [r0] + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08040D9C: .4byte gUnknown_203B40D + thumb_func_end sub_8040C4C + + thumb_func_start sub_8040DA0 +sub_8040DA0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + adds r7, r0, 0 + mov r8, r1 + bl sub_804143C + mov r9, r0 + movs r0, 0 + str r0, [sp, 0x14] + ldr r1, [r7, 0x70] + mov r10, r1 + movs r0, 0x4 + ldrsh r5, [r1, r0] + mov r1, r8 + ldrh r4, [r1, 0x2] + adds r0, r7, 0 + bl sub_807E580 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + mov r2, r9 + bl sub_80412E0 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_800EA44 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x18] + mov r0, sp + adds r1, r7, 0 + mov r2, r8 + mov r3, r9 + bl sub_8041038 + mov r0, sp + movs r1, 0x1 + bl sub_800E838 + lsls r0, 24 + cmp r0, 0 + bne _08040E0E + mov r1, r8 + ldrh r0, [r1, 0x2] + cmp r0, 0x52 + bne _08040E24 +_08040E0E: + ldr r0, _08040E1C + ldr r0, [r0] + ldr r1, _08040E20 + adds r0, r1 + ldr r6, [r0] + b _08040E26 + .align 2, 0 +_08040E1C: .4byte gUnknown_203B418 +_08040E20: .4byte 0x000181f8 +_08040E24: + adds r6, r7, 0 +_08040E26: + adds r0, r6, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + bne _08040E34 + adds r6, r7, 0 +_08040E34: + mov r1, sp + ldr r0, [r6, 0xC] + cmp r0, 0 + bge _08040E3E + adds r0, 0xFF +_08040E3E: + asrs r0, 8 + strh r0, [r1, 0x4] + mov r1, sp + ldr r0, [r6, 0x10] + cmp r0, 0 + bge _08040E4C + adds r0, 0xFF +_08040E4C: + asrs r0, 8 + strh r0, [r1, 0x6] + adds r0, r6, 0 + bl sub_8042768 + lsls r0, 24 + cmp r0, 0 + bne _08040E5E + b _08041026 +_08040E5E: + adds r0, r7, 0 + mov r1, r8 + bl sub_80414C0 + lsls r0, 24 + cmp r0, 0 + beq _08040E6E + b _08041026 +_08040E6E: + mov r0, r8 + ldrh r1, [r0, 0x2] + movs r0, 0x94 + lsls r0, 1 + cmp r1, r0 + bne _08040ED0 + movs r0, 0x7 + bl sub_8084100 + ldr r1, _08040EB8 + str r0, [r1] + ldr r1, _08040EBC + ldr r2, [r1] + ldr r1, _08040EC0 + adds r4, r2, r1 + subs r1, 0x4 + adds r2, r1 + ldr r3, _08040EC4 + lsls r1, r0, 2 + adds r1, r3 + ldr r1, [r1] + str r1, [r2] + str r1, [r4] + ldr r1, _08040EC8 + adds r0, 0x4 + str r0, [r1] + ldr r0, _08040ECC + ldr r1, [r0] + adds r0, r6, 0 + bl sub_80522A8 + movs r1, 0xD2 + lsls r1, 1 + adds r0, r6, 0 + bl sub_80421C0 + b _08040EF0 + .align 2, 0 +_08040EB8: .4byte gUnknown_202F224 +_08040EBC: .4byte gUnknown_203B418 +_08040EC0: .4byte 0x00018204 +_08040EC4: .4byte gUnknown_8106A8C +_08040EC8: .4byte gUnknown_202DE30 +_08040ECC: .4byte gUnknown_8100224 +_08040ED0: + cmp r1, 0x76 + bne _08040EF0 + ldr r0, _08040F70 + ldr r0, [r0] + ldr r1, _08040F74 + adds r2, r0, r1 + subs r1, 0x4 + adds r0, r1 + movs r1, 0xC + str r1, [r0] + str r1, [r2] + movs r1, 0xD2 + lsls r1, 1 + adds r0, r6, 0 + bl sub_80421C0 +_08040EF0: + mov r0, r10 + movs r1, 0x4 + ldrsh r5, [r0, r1] + mov r0, r8 + ldrh r4, [r0, 0x2] + adds r0, r7, 0 + bl sub_807E580 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + mov r2, r9 + bl sub_80412E0 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_800E790 + adds r1, r0, 0 + ldr r0, _08040F78 + cmp r1, r0 + beq _08040F2A + lsls r0, r1, 16 + lsrs r0, 16 + bl sub_8083E38 +_08040F2A: + ldr r1, [sp, 0x18] + cmp r1, 0x63 + bne _08040F7C + adds r0, r6, 0 + bl sub_8042768 + lsls r0, 24 + cmp r0, 0 + beq _08041026 + mov r0, r10 + adds r0, 0x46 + ldrb r4, [r0] + mov r0, sp + adds r1, r7, 0 + mov r2, r8 + mov r3, r9 + bl sub_8041108 + movs r6, 0x7 + movs r5, 0x7 +_08040F52: + subs r4, 0x1 + ands r4, r6 + adds r0, r7, 0 + movs r1, 0 + adds r2, r4, 0 + bl sub_806CDD4 + movs r0, 0x2 + movs r1, 0x15 + bl sub_803E708 + subs r5, 0x1 + cmp r5, 0 + bge _08040F52 + b _08041026 + .align 2, 0 +_08040F70: .4byte gUnknown_203B418 +_08040F74: .4byte 0x00018204 +_08040F78: .4byte 0x000003e5 +_08040F7C: + ldr r0, [sp, 0x18] + cmp r0, 0x62 + bne _08040FC2 + adds r0, r6, 0 + bl sub_8042768 + lsls r0, 24 + cmp r0, 0 + beq _08041026 + mov r0, r10 + adds r0, 0x46 + ldrb r4, [r0] + mov r0, sp + adds r1, r7, 0 + mov r2, r8 + mov r3, r9 + bl sub_8041108 + movs r6, 0x7 + movs r5, 0x8 +_08040FA4: + ands r4, r6 + adds r0, r7, 0 + movs r1, 0 + adds r2, r4, 0 + bl sub_806CDD4 + movs r0, 0x2 + movs r1, 0x15 + bl sub_803E708 + adds r4, 0x1 + subs r5, 0x1 + cmp r5, 0 + bge _08040FA4 + b _08041026 +_08040FC2: + mov r0, r10 + adds r0, 0x46 + ldrb r2, [r0] + adds r0, r7, 0 + ldr r1, [sp, 0x18] + bl sub_806CDD4 + adds r0, r7, 0 + adds r0, 0x21 + movs r1, 0 + strb r1, [r0] + movs r5, 0 + adds r6, r0, 0 + b _08040FE6 +_08040FDE: + ldrb r0, [r6] + cmp r0, 0 + bne _08041022 + adds r5, 0x1 +_08040FE6: + cmp r5, 0x77 + bgt _08041022 + movs r0, 0x59 + bl sub_803E46C + ldr r4, [r7, 0x40] + ldr r1, [sp, 0x18] + cmp r1, 0x9 + bne _08040FFC + movs r0, 0x2 + orrs r4, r0 +_08040FFC: + movs r0, 0x2 + ands r0, r4 + cmp r0, 0 + beq _0804101A + ldr r0, [sp, 0x14] + cmp r0, 0 + bne _0804101A + mov r0, sp + adds r1, r7, 0 + mov r2, r8 + mov r3, r9 + bl sub_8041108 + movs r1, 0x1 + str r1, [sp, 0x14] +_0804101A: + movs r0, 0x1 + ands r4, r0 + cmp r4, 0 + beq _08040FDE +_08041022: + movs r0, 0 + strb r0, [r6] +_08041026: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8040DA0 + + thumb_func_start sub_8041038 +sub_8041038: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r6, r0, 0 + adds r7, r1, 0 + mov r8, r2 + mov r10, r3 + ldr r0, [r7, 0x70] + mov r9, r0 + ldrh r4, [r2, 0x2] + adds r0, r7, 0 + bl sub_807E580 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + mov r2, r10 + bl sub_80412E0 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + bl sub_800ECB8 + movs r1, 0x2 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080410F4 + mov r0, r9 + movs r1, 0x4 + ldrsh r5, [r0, r1] + mov r0, r8 + ldrh r4, [r0, 0x2] + adds r0, r7, 0 + bl sub_807E580 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + mov r2, r10 + bl sub_80412E0 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_800E710 + adds r2, r0, 0 + movs r0, 0x1 + negs r0, r0 + cmp r2, r0 + beq _080410BE + adds r0, r6, 0 + adds r0, 0x8 + adds r1, r7, 0 + adds r1, 0x28 + lsls r2, 24 + lsrs r2, 24 + bl sub_800569C + b _080410C2 +_080410BE: + movs r0, 0 + str r0, [r6, 0x8] +_080410C2: + mov r1, sp + ldrh r1, [r1] + strh r1, [r6] + mov r1, r9 + ldrh r0, [r1, 0x4] + strh r0, [r6, 0x2] + ldr r0, [r7, 0xC] + cmp r0, 0 + bge _080410D6 + adds r0, 0xFF +_080410D6: + asrs r0, 8 + strh r0, [r6, 0x4] + ldr r0, [r7, 0x10] + cmp r0, 0 + bge _080410E2 + adds r0, 0xFF +_080410E2: + asrs r0, 8 + strh r0, [r6, 0x6] + mov r0, r9 + adds r0, 0x46 + ldrb r0, [r0] + str r0, [r6, 0xC] + movs r0, 0 + str r0, [r6, 0x10] + b _080410F6 +_080410F4: + strh r0, [r6] +_080410F6: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8041038 + + thumb_func_start sub_8041108 +sub_8041108: + push {r4-r7,lr} + adds r6, r0, 0 + adds r7, r1, 0 + adds r5, r3, 0 + ldrh r4, [r2, 0x2] + adds r0, r7, 0 + bl sub_807E580 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + adds r2, r5, 0 + bl sub_80412E0 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_800ECB8 + movs r2, 0x2 + ldrsh r1, [r0, r2] + ldrh r0, [r6] + cmp r0, 0 + beq _08041162 + cmp r1, 0 + beq _08041162 + adds r0, r6, 0 + bl sub_8041500 + adds r0, r4, 0 + bl sub_800EEF8 + bl sub_800EF64 + movs r0, 0x5A + bl sub_803E46C + adds r0, r6, 0 + bl sub_800E52C + adds r1, r7, 0 + movs r2, 0x1 + bl sub_8042DD4 +_08041162: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8041108 + + thumb_func_start sub_8041168 +sub_8041168: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + mov r8, r0 + adds r6, r1, 0 + adds r7, r2, 0 + mov r9, r3 + adds r1, r7, 0 + bl sub_804143C + adds r5, r0, 0 + cmp r5, 0 + beq _0804118A + movs r5, 0x1 +_0804118A: + ldrh r4, [r7, 0x2] + mov r0, r8 + bl sub_807E580 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + adds r2, r5, 0 + bl sub_80412E0 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + bl sub_800ECB8 + movs r1, 0x4 + ldrsh r5, [r0, r1] + movs r2, 0 + str r2, [sp, 0x14] + adds r0, r6, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080411CA + ldr r0, [r6, 0x70] + str r0, [sp, 0x14] + adds r0, r6, 0 + bl sub_8042768 + b _080411D0 +_080411CA: + mov r0, r9 + bl sub_803F428 +_080411D0: + lsls r0, 24 + cmp r0, 0 + beq _080412CE + mov r0, r8 + adds r1, r7, 0 + bl sub_80414C0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080412CE + cmp r5, 0 + beq _080412CE + adds r0, r5, 0 + bl sub_800ECA4 + ldr r5, [r0, 0x1C] + movs r0, 0x1 + negs r0, r0 + cmp r5, r0 + beq _08041216 + adds r0, r6, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08041216 + add r0, sp, 0x8 + adds r1, r6, 0 + adds r1, 0x28 + lsls r2, r5, 24 + lsrs r2, 24 + bl sub_800569C + b _08041218 +_08041216: + str r4, [sp, 0x8] +_08041218: + mov r0, sp + mov r1, r10 + strh r1, [r0] + ldr r2, [sp, 0x14] + cmp r2, 0 + beq _08041248 + mov r1, sp + ldrh r0, [r2, 0x4] + strh r0, [r1, 0x2] + ldr r0, [r6, 0xC] + cmp r0, 0 + bge _08041232 + adds r0, 0xFF +_08041232: + asrs r0, 8 + strh r0, [r1, 0x4] + mov r1, sp + ldr r0, [r6, 0x10] + cmp r0, 0 + bge _08041240 + adds r0, 0xFF +_08041240: + asrs r0, 8 + strh r0, [r1, 0x6] + movs r0, 0 + b _0804128C +_08041248: + mov r1, sp + movs r0, 0x1 + strh r0, [r1, 0x2] + mov r0, r9 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + mov r1, sp + movs r2, 0xC0 + lsls r2, 4 + adds r0, r2 + cmp r0, 0 + bge _08041268 + adds r0, 0xFF +_08041268: + asrs r0, 8 + strh r0, [r1, 0x4] + mov r0, r9 + movs r2, 0x2 + ldrsh r1, [r0, r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + mov r1, sp + movs r2, 0x80 + lsls r2, 5 + adds r0, r2 + cmp r0, 0 + bge _08041286 + adds r0, 0xFF +_08041286: + asrs r0, 8 + strh r0, [r1, 0x6] + ldr r0, [sp, 0x14] +_0804128C: + str r0, [sp, 0xC] + movs r0, 0 + str r0, [sp, 0x10] + mov r0, sp + bl sub_8041500 + mov r0, r10 + bl sub_800EEE0 + bl sub_800EF64 + mov r0, sp + bl sub_800EBC8 + adds r4, r0, 0 + movs r0, 0x5B + bl sub_803E46C + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0x6 + bl sub_8042DD4 + b _080412C2 +_080412BC: + movs r0, 0x28 + bl sub_803E46C +_080412C2: + adds r0, r4, 0 + bl sub_800E9A8 + lsls r0, 24 + cmp r0, 0 + bne _080412BC +_080412CE: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8041168 + + thumb_func_start sub_80412E0 +sub_80412E0: + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 24 + lsrs r0, r1, 24 + adds r3, r4, 0 + cmp r3, 0x1F + bne _08041344 + cmp r0, 0x7 + bls _080412F6 + b _080413F6 +_080412F6: + lsls r0, 2 + ldr r1, _08041300 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08041300: .4byte _08041304 + .align 2, 0 +_08041304: + .4byte _080413F4 + .4byte _08041324 + .4byte _0804132A + .4byte _080413F4 + .4byte _08041334 + .4byte _0804133A + .4byte _080413F4 + .4byte _0804133A +_08041324: + movs r3, 0xCF + lsls r3, 1 + b _080413F6 +_0804132A: + ldr r3, _08041330 + b _080413F6 + .align 2, 0 +_08041330: .4byte 0x000001a1 +_08041334: + movs r3, 0xD0 + lsls r3, 1 + b _080413F6 +_0804133A: + ldr r3, _08041340 + b _080413F6 + .align 2, 0 +_08041340: .4byte 0x0000019f +_08041344: + cmp r2, 0 + beq _080413F6 + cmp r3, 0x97 + beq _080413B4 + cmp r3, 0x97 + bgt _0804136C + cmp r3, 0x3C + beq _0804139C + cmp r3, 0x3C + bgt _08041362 + cmp r3, 0x8 + beq _08041396 + cmp r3, 0x19 + beq _080413E4 + b _080413F4 +_08041362: + cmp r3, 0x4B + beq _080413A4 + cmp r3, 0x64 + beq _080413AA + b _080413F4 +_0804136C: + cmp r3, 0xCD + beq _080413CA + cmp r3, 0xCD + bgt _0804137E + cmp r3, 0x99 + beq _080413BA + cmp r3, 0x9C + beq _080413C4 + b _080413F4 +_0804137E: + cmp r3, 0xED + beq _080413DA + cmp r3, 0xED + bgt _0804138C + cmp r3, 0xE3 + beq _080413EA + b _080413F4 +_0804138C: + movs r0, 0xAE + lsls r0, 1 + cmp r3, r0 + beq _080413D4 + b _080413F4 +_08041396: + movs r3, 0xD1 + lsls r3, 1 + b _080413F6 +_0804139C: + ldr r3, _080413A0 + b _080413F6 + .align 2, 0 +_080413A0: .4byte 0x000001a3 +_080413A4: + movs r3, 0xD2 + lsls r3, 1 + b _080413F6 +_080413AA: + ldr r3, _080413B0 + b _080413F6 + .align 2, 0 +_080413B0: .4byte 0x000001a5 +_080413B4: + movs r3, 0xD3 + lsls r3, 1 + b _080413F6 +_080413BA: + ldr r3, _080413C0 + b _080413F6 + .align 2, 0 +_080413C0: .4byte 0x000001a7 +_080413C4: + movs r3, 0xD4 + lsls r3, 1 + b _080413F6 +_080413CA: + ldr r3, _080413D0 + b _080413F6 + .align 2, 0 +_080413D0: .4byte 0x000001a9 +_080413D4: + movs r3, 0xD5 + lsls r3, 1 + b _080413F6 +_080413DA: + ldr r3, _080413E0 + b _080413F6 + .align 2, 0 +_080413E0: .4byte 0x000001ab +_080413E4: + movs r3, 0xD6 + lsls r3, 1 + b _080413F6 +_080413EA: + ldr r3, _080413F0 + b _080413F6 + .align 2, 0 +_080413F0: .4byte 0x000001ad +_080413F4: + adds r3, r4, 0 +_080413F6: + adds r0, r3, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80412E0 + + thumb_func_start sub_8041400 +sub_8041400: + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r1, 24 + bl sub_80412E0 + lsls r0, 16 + lsrs r0, 16 + bl sub_800ED20 + pop {r1} + bx r1 + thumb_func_end sub_8041400 + + thumb_func_start sub_804141C +sub_804141C: + push {lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 24 + lsrs r1, 24 + bl sub_80412E0 + lsls r0, 16 + lsrs r0, 16 + bl sub_800EC84 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_804141C + + thumb_func_start sub_804143C +sub_804143C: + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldrh r0, [r5, 0x2] + cmp r0, 0xED + bne _08041476 + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080414A4 + adds r0, r4, 0 + bl sub_80450F8 + cmp r0, 0x1 + bne _080414A4 + ldr r1, [r4, 0x70] + adds r0, r1, 0 + adds r0, 0x5C + ldrb r0, [r0] + cmp r0, 0xE + beq _080414A0 + adds r0, r1, 0 + adds r0, 0x5D + ldrb r0, [r0] + cmp r0, 0xE + beq _080414A0 + b _0804148A +_08041476: + cmp r0, 0x19 + beq _0804147E + cmp r0, 0xE3 + bne _0804148E +_0804147E: + adds r0, r4, 0 + bl sub_8070B28 + lsls r0, 24 + cmp r0, 0 + beq _080414A0 +_0804148A: + movs r0, 0 + b _080414B8 +_0804148E: + cmp r0, 0x97 + bne _080414A4 + adds r0, r4, 0 + bl sub_807E580 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080414A4 +_080414A0: + movs r0, 0x1 + b _080414B8 +_080414A4: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80570AC + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_080414B8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_804143C + + thumb_func_start sub_80414C0 +sub_80414C0: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldrh r0, [r4, 0x2] + cmp r0, 0x9C + bne _080414DC + adds r0, r5, 0 + bl sub_8045128 + bl sub_804AF20 + lsls r0, 24 + cmp r0, 0 + bne _080414F2 +_080414DC: + ldrh r0, [r4, 0x2] + cmp r0, 0x8 + bne _080414F6 + adds r0, r5, 0 + bl sub_8045128 + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _080414F6 +_080414F2: + movs r0, 0x1 + b _080414F8 +_080414F6: + movs r0, 0 +_080414F8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80414C0 + + thumb_func_start sub_8041500 +sub_8041500: + push {lr} + bl sub_800E7D0 + lsls r0, 24 + cmp r0, 0 + beq _08041518 + movs r0, 0x5C + bl sub_803E46C + movs r0, 0x5D + bl sub_8052740 +_08041518: + pop {r0} + bx r0 + thumb_func_end sub_8041500 + + thumb_func_start sub_804151C +sub_804151C: + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + adds r5, r1, 0 + lsls r4, r2, 24 + lsrs r4, 24 + adds r0, r5, 0 + bl sub_800DC9C + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x2 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8041550 + add sp, 0x8 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_804151C + + thumb_func_start sub_8041550 +sub_8041550: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x30 + adds r7, r0, 0 + mov r10, r1 + ldr r0, [sp, 0x54] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x2C] + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r7, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _0804159C + ldr r0, [r7, 0x70] + mov r8, r0 + adds r0, r7, 0 + bl sub_8042768 + lsls r0, 24 + cmp r0, 0 + beq _0804159C + cmp r6, 0 + bne _080415A2 + mov r0, r8 + adds r0, 0xFF + ldrb r0, [r0] + cmp r0, 0x2 + bne _080415A2 +_0804159C: + movs r0, 0x1 + negs r0, r0 + b _08041692 +_080415A2: + ldr r1, [sp, 0x50] + cmp r1, 0 + beq _080415B4 + movs r0, 0 + cmp r1, 0x2 + bne _080415B0 + movs r0, 0x1 +_080415B0: + bl sub_804178C +_080415B4: + add r6, sp, 0x28 + adds r1, r7, 0 + adds r1, 0x28 + adds r0, r6, 0 + mov r2, r9 + bl sub_800569C + movs r2, 0 + ldrsh r0, [r6, r2] + cmp r0, 0x63 + beq _080415F2 + ldrh r0, [r6, 0x2] + cmp r0, 0x63 + beq _080415F2 + movs r1, 0 + ldrsh r0, [r6, r1] + lsls r0, 8 + ldr r1, [r7, 0xC] + adds r4, r1, r0 + movs r2, 0x2 + ldrsh r0, [r6, r2] + lsls r0, 8 + ldr r2, [r7, 0x10] + adds r0, r2, r0 + movs r1, 0xBA + lsls r1, 1 + add r1, r8 + ldr r1, [r1] + subs r5, r0, r1 + adds r1, r2, 0 + b _08041600 +_080415F2: + ldr r4, [r7, 0xC] + movs r0, 0xBA + lsls r0, 1 + add r0, r8 + ldr r1, [r7, 0x10] + ldr r0, [r0] + subs r5, r1, r0 +_08041600: + cmp r1, 0 + bge _08041606 + adds r1, 0xFF +_08041606: + asrs r1, 8 + ldr r0, _0804166C + ldr r0, [r0] + ldr r2, _08041670 + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + subs r1, r0 + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r1, r0, 1 + adds r1, 0x1 + mov r0, r10 + str r0, [sp] + movs r3, 0 + str r3, [sp, 0x4] + movs r6, 0x1 + negs r6, r6 + str r6, [sp, 0x8] + mov r2, sp + adds r0, r4, 0 + cmp r4, 0 + bge _08041636 + adds r0, 0xFF +_08041636: + asrs r0, 8 + strh r0, [r2, 0xC] + mov r2, sp + adds r0, r5, 0 + cmp r0, 0 + bge _08041644 + adds r0, 0xFF +_08041644: + asrs r0, 8 + strh r0, [r2, 0xE] + str r6, [sp, 0x14] + mov r0, sp + strh r3, [r0, 0x10] + strh r3, [r0, 0x12] + str r1, [sp, 0x18] + add r0, sp, 0x1C + bl sub_8004E8C + mov r0, sp + movs r1, 0 + bl sub_8041764 + adds r4, r0, 0 + ldr r1, [sp, 0x2C] + cmp r1, 0 + beq _08041690 + movs r5, 0 + b _0804167C + .align 2, 0 +_0804166C: .4byte gUnknown_203B418 +_08041670: .4byte 0x000181f2 +_08041674: + movs r0, 0x42 + bl sub_803E46C + adds r5, 0x1 +_0804167C: + cmp r5, 0x63 + bgt _0804168C + adds r0, r4, 0 + bl sub_800E9A8 + lsls r0, 24 + cmp r0, 0 + bne _08041674 +_0804168C: + movs r4, 0x1 + negs r4, r4 +_08041690: + adds r0, r4, 0 +_08041692: + add sp, 0x30 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8041550 + + thumb_func_start sub_80416A4 +sub_80416A4: + push {r4,lr} + sub sp, 0x8 + lsls r2, 24 + lsrs r2, 24 + movs r3, 0 + ldrsh r4, [r0, r3] + lsls r3, r4, 1 + adds r3, r4 + lsls r3, 11 + movs r4, 0xC0 + lsls r4, 4 + adds r3, r4 + str r3, [sp] + movs r4, 0x2 + ldrsh r3, [r0, r4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 11 + movs r3, 0x80 + lsls r3, 5 + adds r0, r3 + str r0, [sp, 0x4] + mov r0, sp + bl sub_80416E0 + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80416A4 + + thumb_func_start sub_80416E0 +sub_80416E0: + push {r4,r5,lr} + sub sp, 0x28 + adds r3, r0, 0 + lsls r2, 24 + lsrs r5, r2, 24 + str r1, [sp] + movs r2, 0 + str r2, [sp, 0x4] + movs r4, 0x1 + negs r4, r4 + str r4, [sp, 0x8] + mov r1, sp + ldr r0, [r3] + cmp r0, 0 + bge _08041700 + adds r0, 0xFF +_08041700: + asrs r0, 8 + strh r0, [r1, 0xC] + mov r1, sp + ldr r0, [r3, 0x4] + cmp r0, 0 + bge _0804170E + adds r0, 0xFF +_0804170E: + asrs r0, 8 + strh r0, [r1, 0xE] + str r4, [sp, 0x14] + mov r0, sp + strh r2, [r0, 0x10] + strh r2, [r0, 0x12] + ldr r0, _08041738 + str r0, [sp, 0x18] + add r0, sp, 0x1C + bl sub_8004E8C + mov r0, sp + movs r1, 0 + bl sub_8041764 + adds r4, r0, 0 + cmp r5, 0 + beq _08041758 + movs r5, 0 + b _08041744 + .align 2, 0 +_08041738: .4byte 0x0000ffff +_0804173C: + movs r0, 0x42 + bl sub_803E46C + adds r5, 0x1 +_08041744: + cmp r5, 0x63 + bgt _08041754 + adds r0, r4, 0 + bl sub_800E9A8 + lsls r0, 24 + cmp r0, 0 + bne _0804173C +_08041754: + movs r4, 0x1 + negs r4, r4 +_08041758: + adds r0, r4, 0 + add sp, 0x28 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80416E0 + + thumb_func_start sub_8041764 +sub_8041764: + push {r4,r5,lr} + adds r5, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + ldr r0, [r5] + bl sub_800EE5C + bl sub_800EF64 + cmp r4, 0 + beq _08041780 + movs r0, 0x42 + bl sub_803E46C +_08041780: + adds r0, r5, 0 + bl sub_800E890 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8041764 + + thumb_func_start sub_804178C +sub_804178C: + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _080417B0 + ldr r0, [r0] + ldr r1, _080417B4 + adds r0, r1 + str r4, [r0] + adds r0, r5, 0 + bl sub_800E9FC + lsls r0, 24 + cmp r0, 0 + beq _080417E0 + ldr r6, _080417B8 + b _080417C4 + .align 2, 0 +_080417B0: .4byte gUnknown_203B418 +_080417B4: .4byte 0x00018204 +_080417B8: .4byte 0x000003e7 +_080417BC: + movs r0, 0x4A + bl sub_803E46C + adds r4, 0x1 +_080417C4: + cmp r4, r6 + bgt _080417D4 + adds r0, r5, 0 + bl sub_800E9FC + lsls r0, 24 + cmp r0, 0 + bne _080417BC +_080417D4: + movs r0, 0x4A + bl sub_803E46C + movs r0, 0x4A + bl sub_803E46C +_080417E0: + movs r0, 0xFA + lsls r0, 2 + cmp r4, r0 + beq _080417EC + cmp r5, 0 + beq _080417F0 +_080417EC: + bl sub_800DBBC +_080417F0: + ldr r2, _08041824 + ldr r0, [r2] + cmp r0, 0x1E + bgt _08041860 + ldr r1, _08041828 + ldrb r7, [r1] + movs r0, 0x1 + strb r0, [r1] + movs r4, 0 + adds r5, r2, 0 + ldr r6, _0804182C +_08041806: + ldr r0, [r5] + cmp r0, 0x1E + bgt _08041838 + adds r0, 0x4 + str r0, [r5] + ldr r1, _08041830 + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, r6 + beq _0804183C + ldr r3, _08041834 + adds r0, r2, r3 + strh r0, [r1] + b _0804183C + .align 2, 0 +_08041824: .4byte gUnknown_202EDC8 +_08041828: .4byte gUnknown_203B40D +_0804182C: .4byte 0x00000808 +_08041830: .4byte gUnknown_2026E4E +_08041834: .4byte 0xfffffeff +_08041838: + movs r0, 0x1F + str r0, [r5] +_0804183C: + bl sub_803EA10 + movs r0, 0x4A + bl sub_803E46C + ldr r0, [r5] + cmp r0, 0x1F + beq _08041854 + adds r4, 0x1 + ldr r0, _0804186C + cmp r4, r0 + ble _08041806 +_08041854: + ldr r0, _08041870 + ldr r2, _08041874 + adds r1, r2, 0 + strh r1, [r0] + ldr r0, _08041878 + strb r7, [r0] +_08041860: + bl sub_8042E98 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804186C: .4byte 0x000003e7 +_08041870: .4byte gUnknown_2026E4E +_08041874: .4byte 0x00000808 +_08041878: .4byte gUnknown_203B40D + thumb_func_end sub_804178C + + thumb_func_start sub_804187C +sub_804187C: + ldr r0, [r0, 0x70] + movs r1, 0x80 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + bx lr + thumb_func_end sub_804187C + + thumb_func_start sub_8041888 +sub_8041888: + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 +_08041890: + ldr r0, _080418CC + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _080418D0 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080418C0 + ldr r1, [r4, 0x70] + cmp r6, 0 + beq _080418BA + movs r0, 0xA6 + lsls r0, 1 + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] +_080418BA: + adds r0, r4, 0 + bl sub_80418D4 +_080418C0: + adds r5, 0x1 + cmp r5, 0x13 + ble _08041890 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080418CC: .4byte gUnknown_203B418 +_080418D0: .4byte 0x000135cc + thumb_func_end sub_8041888 + + thumb_func_start sub_80418D4 +sub_80418D4: + push {r4,lr} + adds r4, r0, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + bne _080418E4 + b _08041A8C +_080418E4: + ldr r2, [r4, 0x70] + movs r3, 0 + movs r1, 0x1 + movs r4, 0x2 + ldrsh r0, [r2, r4] + cmp r0, 0xB9 + bne _08041902 + adds r0, r2, 0 + adds r0, 0xA9 + ldrb r0, [r0] + movs r1, 0x7F + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 +_08041902: + cmp r1, 0 + beq _08041914 + ldr r1, _08041A94 + adds r0, r2, 0 + adds r0, 0xA8 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r3, [r0] +_08041914: + ldr r1, _08041A98 + adds r0, r2, 0 + adds r0, 0xAC + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r3, r0 + ldr r1, _08041A9C + adds r0, r2, 0 + adds r0, 0xB0 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r3, r0 + ldr r1, _08041AA0 + adds r0, r2, 0 + adds r0, 0xBC + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r3, r0 + ldr r1, _08041AA4 + adds r0, r2, 0 + adds r0, 0xC0 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r3, r0 + ldr r1, _08041AA8 + adds r0, r2, 0 + adds r0, 0xC4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r3, r0 + ldr r1, _08041AAC + adds r0, r2, 0 + adds r0, 0xC8 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r3, r0 + ldr r1, _08041AB0 + adds r0, r2, 0 + adds r0, 0xD0 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r3, r0 + ldr r1, _08041AB4 + adds r0, r2, 0 + adds r0, 0xDC + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r3, r0 + ldr r1, _08041AB8 + adds r0, r2, 0 + adds r0, 0xE0 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r3, r0 + ldr r1, _08041ABC + adds r0, r2, 0 + adds r0, 0xE4 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r3, r0 + ldr r1, _08041AC0 + adds r0, r2, 0 + adds r0, 0xE8 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r3, r0 + ldr r1, _08041AC4 + adds r0, r2, 0 + adds r0, 0xEC + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r3, r0 + adds r0, r2, 0 + adds r0, 0xF4 + ldrb r0, [r0] + cmp r0, 0 + beq _080419E4 + movs r0, 0x80 + lsls r0, 17 + orrs r3, r0 +_080419E4: + adds r0, r2, 0 + adds r0, 0xF5 + ldrb r0, [r0] + cmp r0, 0 + beq _080419F4 + movs r0, 0x80 + lsls r0, 18 + orrs r3, r0 +_080419F4: + ldrb r0, [r2, 0x6] + cmp r0, 0 + bne _08041A14 + movs r0, 0x10 + ldrsh r1, [r2, r0] + cmp r1, 0 + bge _08041A04 + adds r1, 0x3 +_08041A04: + asrs r1, 2 + movs r4, 0xE + ldrsh r0, [r2, r4] + cmp r1, r0 + ble _08041A14 + movs r0, 0x80 + lsls r0, 6 + orrs r3, r0 +_08041A14: + ldr r0, _08041AC8 + ldr r0, [r0] + ldr r1, _08041ACC + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08041A36 + adds r0, r2, 0 + adds r0, 0x60 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08041A36 + movs r0, 0x80 + lsls r0, 6 + orrs r3, r0 +_08041A36: + ldr r0, [r2, 0x2C] + cmp r0, 0xFF + ble _08041A7E + ldr r0, [r2, 0x30] + cmp r0, 0xFF + ble _08041A7E + ldr r0, [r2, 0x34] + cmp r0, 0xFF + ble _08041A7E + ldr r0, [r2, 0x38] + cmp r0, 0xFF + ble _08041A7E + movs r4, 0x1C + ldrsh r0, [r2, r4] + cmp r0, 0x9 + ble _08041A7E + movs r1, 0x1E + ldrsh r0, [r2, r1] + cmp r0, 0x9 + ble _08041A7E + movs r4, 0x20 + ldrsh r0, [r2, r4] + cmp r0, 0x9 + ble _08041A7E + movs r1, 0x22 + ldrsh r0, [r2, r1] + cmp r0, 0x9 + ble _08041A7E + movs r4, 0x24 + ldrsh r0, [r2, r4] + cmp r0, 0x9 + ble _08041A7E + movs r1, 0x26 + ldrsh r0, [r2, r1] + cmp r0, 0x9 + bgt _08041A84 +_08041A7E: + movs r0, 0x80 + lsls r0, 20 + orrs r3, r0 +_08041A84: + movs r4, 0x80 + lsls r4, 2 + adds r0, r2, r4 + str r3, [r0] +_08041A8C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08041A94: .4byte gUnknown_80F669C +_08041A98: .4byte gUnknown_80F66B4 +_08041A9C: .4byte gUnknown_80F66C8 +_08041AA0: .4byte gUnknown_80F66E8 +_08041AA4: .4byte gUnknown_80F6708 +_08041AA8: .4byte gUnknown_80F673C +_08041AAC: .4byte gUnknown_80F6778 +_08041AB0: .4byte gUnknown_80F6788 +_08041AB4: .4byte gUnknown_80F6794 +_08041AB8: .4byte gUnknown_80F67A8 +_08041ABC: .4byte gUnknown_80F67B4 +_08041AC0: .4byte gUnknown_80F67C4 +_08041AC4: .4byte gUnknown_80F67D4 +_08041AC8: .4byte gUnknown_203B418 +_08041ACC: .4byte 0x00000676 + thumb_func_end sub_80418D4 + + thumb_func_start sub_8041AD0 +sub_8041AD0: + push {lr} + movs r1, 0xA2 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041AD0 + + thumb_func_start sub_8041AE0 +sub_8041AE0: + push {lr} + ldr r1, _08041AF0 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041AF0: .4byte 0x00000143 + thumb_func_end sub_8041AE0 + + thumb_func_start sub_8041AF4 +sub_8041AF4: + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x25 + movs r2, 0x1 + bl sub_804151C + ldr r1, _08041B10 + adds r0, r4, 0 + bl sub_80421C0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08041B10: .4byte 0x00000197 + thumb_func_end sub_8041AF4 + + thumb_func_start nullsub_57 +nullsub_57: + bx lr + thumb_func_end nullsub_57 + + thumb_func_start sub_8041B18 +sub_8041B18: + push {lr} + ldr r1, _08041B28 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041B28: .4byte 0x00000141 + thumb_func_end sub_8041B18 + + thumb_func_start nullsub_58 +nullsub_58: + bx lr + thumb_func_end nullsub_58 + + thumb_func_start nullsub_59 +nullsub_59: + bx lr + thumb_func_end nullsub_59 + + thumb_func_start sub_8041B34 +sub_8041B34: + push {lr} + movs r1, 0x7 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041B34 + + thumb_func_start nullsub_60 +nullsub_60: + bx lr + thumb_func_end nullsub_60 + + thumb_func_start sub_8041B48 +sub_8041B48: + push {lr} + movs r1, 0x4 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041B48 + + thumb_func_start nullsub_61 +nullsub_61: + bx lr + thumb_func_end nullsub_61 + + thumb_func_start sub_8041B5C +sub_8041B5C: + push {lr} + ldr r1, _08041B6C + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041B6C: .4byte 0x00000171 + thumb_func_end sub_8041B5C + + thumb_func_start nullsub_62 +nullsub_62: + bx lr + thumb_func_end nullsub_62 + + thumb_func_start sub_8041B74 +sub_8041B74: + push {lr} + ldr r1, _08041B84 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041B84: .4byte 0x00000171 + thumb_func_end sub_8041B74 + + thumb_func_start nullsub_63 +nullsub_63: + bx lr + thumb_func_end nullsub_63 + + thumb_func_start nullsub_64 +nullsub_64: + bx lr + thumb_func_end nullsub_64 + + thumb_func_start sub_8041B90 +sub_8041B90: + push {lr} + movs r1, 0xD6 + lsls r1, 1 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041B90 + + thumb_func_start nullsub_65 +nullsub_65: + bx lr + thumb_func_end nullsub_65 + + thumb_func_start nullsub_66 +nullsub_66: + bx lr + thumb_func_end nullsub_66 + + thumb_func_start sub_8041BA8 +sub_8041BA8: + push {lr} + movs r1, 0x4 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041BA8 + + thumb_func_start nullsub_67 +nullsub_67: + bx lr + thumb_func_end nullsub_67 + + thumb_func_start sub_8041BBC +sub_8041BBC: + push {lr} + movs r1, 0xD4 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041BBC + + thumb_func_start nullsub_68 +nullsub_68: + bx lr + thumb_func_end nullsub_68 + + thumb_func_start sub_8041BD0 +sub_8041BD0: + push {lr} + lsls r1, 24 + cmp r1, 0 + beq _08041BDE + ldr r1, _08041BE4 + bl sub_80421C0 +_08041BDE: + pop {r0} + bx r0 + .align 2, 0 +_08041BE4: .4byte 0x000001a5 + thumb_func_end sub_8041BD0 + + thumb_func_start sub_8041BE8 +sub_8041BE8: + push {lr} + movs r1, 0xCB + lsls r1, 1 + bl sub_80421C0 + pop {r0} + bx r0 + thumb_func_end sub_8041BE8 + + thumb_func_start sub_8041BF8 +sub_8041BF8: + push {lr} + movs r1, 0xA + movs r2, 0x8 + bl sub_806CDD4 + pop {r0} + bx r0 + thumb_func_end sub_8041BF8 + + thumb_func_start sub_8041C08 +sub_8041C08: + push {lr} + ldr r1, _08041C18 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041C18: .4byte 0x000001a7 + thumb_func_end sub_8041C08 + + thumb_func_start sub_8041C1C +sub_8041C1C: + push {lr} + ldr r1, _08041C2C + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041C2C: .4byte 0x000001a7 + thumb_func_end sub_8041C1C + + thumb_func_start nullsub_69 +nullsub_69: + bx lr + thumb_func_end nullsub_69 + + thumb_func_start sub_8041C34 +sub_8041C34: + push {lr} + movs r1, 0x4C + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041C34 + + thumb_func_start nullsub_70 +nullsub_70: + bx lr + thumb_func_end nullsub_70 + + thumb_func_start nullsub_71 +nullsub_71: + bx lr + thumb_func_end nullsub_71 + + thumb_func_start sub_8041C4C +sub_8041C4C: + push {lr} + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041C4C + + thumb_func_start sub_8041C58 +sub_8041C58: + push {lr} + ldr r1, _08041C68 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041C68: .4byte 0x000001a9 + thumb_func_end sub_8041C58 + + thumb_func_start sub_8041C6C +sub_8041C6C: + push {lr} + movs r1, 0x9D + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041C6C + + thumb_func_start sub_8041C7C +sub_8041C7C: + push {lr} + movs r1, 0x9D + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041C7C + + thumb_func_start nullsub_72 +nullsub_72: + bx lr + thumb_func_end nullsub_72 + + thumb_func_start nullsub_73 +nullsub_73: + bx lr + thumb_func_end nullsub_73 + + thumb_func_start sub_8041C94 +sub_8041C94: + push {lr} + ldr r1, _08041CA4 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041CA4: .4byte 0x00000171 + thumb_func_end sub_8041C94 + + thumb_func_start sub_8041CA8 +sub_8041CA8: + push {lr} + movs r1, 0x7 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041CA8 + + thumb_func_start sub_8041CB8 +sub_8041CB8: + push {lr} + ldr r1, _08041CC8 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041CC8: .4byte 0x0000018b + thumb_func_end sub_8041CB8 + + thumb_func_start sub_8041CCC +sub_8041CCC: + push {lr} + movs r1, 0xC5 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041CCC + + thumb_func_start sub_8041CDC +sub_8041CDC: + push {lr} + movs r1, 0x5 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041CDC + + thumb_func_start sub_8041CEC +sub_8041CEC: + push {lr} + ldr r1, _08041CF8 + bl sub_80421C0 + pop {r0} + bx r0 + .align 2, 0 +_08041CF8: .4byte 0x0000019d + thumb_func_end sub_8041CEC + + thumb_func_start nullsub_74 +nullsub_74: + bx lr + thumb_func_end nullsub_74 + + thumb_func_start sub_8041D00 +sub_8041D00: + push {r4,lr} + adds r4, r0, 0 + adds r0, r1, 0 + movs r1, 0x2F + movs r2, 0x1 + bl sub_804151C + adds r0, r4, 0 + movs r1, 0x30 + movs r2, 0x1 + bl sub_804151C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8041D00 + + thumb_func_start nullsub_75 +nullsub_75: + bx lr + thumb_func_end nullsub_75 + + thumb_func_start nullsub_76 +nullsub_76: + bx lr + thumb_func_end nullsub_76 + + thumb_func_start nullsub_77 +nullsub_77: + bx lr + thumb_func_end nullsub_77 + + thumb_func_start nullsub_78 +nullsub_78: + bx lr + thumb_func_end nullsub_78 + + thumb_func_start nullsub_79 +nullsub_79: + bx lr + thumb_func_end nullsub_79 + + thumb_func_start nullsub_80 +nullsub_80: + bx lr + thumb_func_end nullsub_80 + + thumb_func_start sub_8041D38 +sub_8041D38: + push {lr} + movs r1, 0x21 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041D38 + + thumb_func_start sub_8041D48 +sub_8041D48: + push {lr} + ldr r1, _08041D54 + bl sub_80421C0 + pop {r0} + bx r0 + .align 2, 0 +_08041D54: .4byte 0x00000191 + thumb_func_end sub_8041D48 + + thumb_func_start nullsub_81 +nullsub_81: + bx lr + thumb_func_end nullsub_81 + + thumb_func_start sub_8041D5C +sub_8041D5C: + push {r4,lr} + adds r4, r0, 0 + bl sub_8042768 + lsls r0, 24 + cmp r0, 0 + beq _08041D7E + ldr r0, [r4, 0x70] + movs r1, 0x89 + lsls r1, 1 + adds r0, r1 + ldrb r0, [r0] + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0xB + bl sub_803ED30 +_08041D7E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8041D5C + + thumb_func_start sub_8041D84 +sub_8041D84: + push {lr} + ldr r1, _08041D90 + bl sub_80421C0 + pop {r0} + bx r0 + .align 2, 0 +_08041D90: .4byte 0x0000019f + thumb_func_end sub_8041D84 + + thumb_func_start nullsub_82 +nullsub_82: + bx lr + thumb_func_end nullsub_82 + + thumb_func_start nullsub_83 +nullsub_83: + bx lr + thumb_func_end nullsub_83 + + thumb_func_start sub_8041D9C +sub_8041D9C: + push {lr} + ldr r1, _08041DAC + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041DAC: .4byte 0x00000131 + thumb_func_end sub_8041D9C + + thumb_func_start sub_8041DB0 +sub_8041DB0: + push {lr} + movs r1, 0x30 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041DB0 + + thumb_func_start nullsub_84 +nullsub_84: + bx lr + thumb_func_end nullsub_84 + + thumb_func_start nullsub_85 +nullsub_85: + bx lr + thumb_func_end nullsub_85 + + thumb_func_start nullsub_204 +nullsub_204: + bx lr + thumb_func_end nullsub_204 + + thumb_func_start nullsub_86 +nullsub_86: + bx lr + thumb_func_end nullsub_86 + + thumb_func_start nullsub_87 +nullsub_87: + bx lr + thumb_func_end nullsub_87 + + thumb_func_start nullsub_88 +nullsub_88: + bx lr + thumb_func_end nullsub_88 + + thumb_func_start sub_8041DD8 +sub_8041DD8: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 16 + asrs r5, r1, 16 + movs r1, 0xE + bl sub_8071858 + lsls r0, 24 + cmp r0, 0 + beq _08041DF8 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_804151C + b _08041E02 +_08041DF8: + adds r0, r4, 0 + movs r1, 0xE + movs r2, 0x1 + bl sub_804151C +_08041E02: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8041DD8 + + thumb_func_start nullsub_89 +nullsub_89: + bx lr + thumb_func_end nullsub_89 + + thumb_func_start sub_8041E0C +sub_8041E0C: + push {lr} + movs r1, 0x41 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041E0C + + thumb_func_start sub_8041E1C +sub_8041E1C: + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x8F + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + movs r1, 0xCE + lsls r1, 1 + adds r0, r4, 0 + bl sub_80421C0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8041E1C + + thumb_func_start sub_8041E3C +sub_8041E3C: + push {lr} + movs r1, 0xD7 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041E3C + + thumb_func_start sub_8041E4C +sub_8041E4C: + push {lr} + ldr r1, _08041E5C + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041E5C: .4byte 0x000001b1 + thumb_func_end sub_8041E4C + + thumb_func_start sub_8041E60 +sub_8041E60: + push {lr} + ldr r1, _08041E70 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041E70: .4byte 0x000001a9 + thumb_func_end sub_8041E60 + + thumb_func_start sub_8041E74 +sub_8041E74: + push {lr} + movs r1, 0xC9 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041E74 + + thumb_func_start sub_8041E84 +sub_8041E84: + push {lr} + movs r1, 0xC7 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041E84 + + thumb_func_start sub_8041E94 +sub_8041E94: + push {lr} + movs r1, 0xC8 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041E94 + + thumb_func_start sub_8041EA4 +sub_8041EA4: + push {lr} + movs r1, 0x15 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041EA4 + + thumb_func_start sub_8041EB4 +sub_8041EB4: + push {lr} + ldr r1, _08041EC4 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08041EC4: .4byte 0x00000171 + thumb_func_end sub_8041EB4 + + thumb_func_start sub_8041EC8 +sub_8041EC8: + push {lr} + ldr r1, _08041ED4 + bl sub_80421C0 + pop {r0} + bx r0 + .align 2, 0 +_08041ED4: .4byte 0x00000197 + thumb_func_end sub_8041EC8 + + thumb_func_start sub_8041ED8 +sub_8041ED8: + push {lr} + ldr r1, _08041EE4 + bl sub_80421C0 + pop {r0} + bx r0 + .align 2, 0 +_08041EE4: .4byte 0x00000197 + thumb_func_end sub_8041ED8 + + thumb_func_start sub_8041EE8 +sub_8041EE8: + push {lr} + movs r1, 0x15 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041EE8 + + thumb_func_start sub_8041EF8 +sub_8041EF8: + push {lr} + movs r1, 0xF + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8041EF8 + + thumb_func_start sub_8041F08 +sub_8041F08: + push {lr} + sub sp, 0x8 + movs r1, 0x2 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x15 + movs r2, 0x1 + movs r3, 0x3 + bl sub_8041550 + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_8041F08 + + thumb_func_start nullsub_90 +nullsub_90: + bx lr + thumb_func_end nullsub_90 + + thumb_func_start sub_8041F28 +sub_8041F28: + push {lr} + cmp r1, 0 + bne _08041F3A + movs r1, 0xCA + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + b _08041F42 +_08041F3A: + ldr r1, _08041F48 + movs r2, 0x1 + bl sub_804151C +_08041F42: + pop {r0} + bx r0 + .align 2, 0 +_08041F48: .4byte 0x00000193 + thumb_func_end sub_8041F28 + + thumb_func_start sub_8041F4C +sub_8041F4C: + push {lr} + cmp r1, 0 + bne _08041F60 + ldr r1, _08041F5C + movs r2, 0x1 + bl sub_804151C + b _08041F68 + .align 2, 0 +_08041F5C: .4byte 0x0000018f +_08041F60: + ldr r1, _08041F6C + movs r2, 0x1 + bl sub_804151C +_08041F68: + pop {r0} + bx r0 + .align 2, 0 +_08041F6C: .4byte 0x00000191 + thumb_func_end sub_8041F4C + + thumb_func_start sub_8041F70 +sub_8041F70: + push {lr} + cmp r1, 0 + bne _08041F84 + ldr r1, _08041F80 + movs r2, 0x1 + bl sub_804151C + b _08041F8E + .align 2, 0 +_08041F80: .4byte 0x000001a9 +_08041F84: + movs r1, 0xC9 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C +_08041F8E: + pop {r0} + bx r0 + thumb_func_end sub_8041F70 + + thumb_func_start sub_8041F94 +sub_8041F94: + push {lr} + cmp r1, 0 + bne _08041FA6 + movs r1, 0xC7 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + b _08041FB0 +_08041FA6: + movs r1, 0xC8 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C +_08041FB0: + pop {r0} + bx r0 + thumb_func_end sub_8041F94 + + thumb_func_start sub_8041FB4 +sub_8041FB4: + push {lr} + cmp r1, 0 + bne _08041FC8 + ldr r1, _08041FC4 + movs r2, 0x1 + bl sub_804151C + b _08041FD2 + .align 2, 0 +_08041FC4: .4byte 0x000001a9 +_08041FC8: + movs r1, 0xC9 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C +_08041FD2: + pop {r0} + bx r0 + thumb_func_end sub_8041FB4 + + thumb_func_start sub_8041FD8 +sub_8041FD8: + push {lr} + cmp r1, 0 + bne _08041FEA + movs r1, 0xCA + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + b _08041FF2 +_08041FEA: + ldr r1, _08041FF8 + movs r2, 0x1 + bl sub_804151C +_08041FF2: + pop {r0} + bx r0 + .align 2, 0 +_08041FF8: .4byte 0x00000193 + thumb_func_end sub_8041FD8 + + thumb_func_start sub_8041FFC +sub_8041FFC: + push {lr} + cmp r1, 0 + bne _0804200E + movs r1, 0xC7 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + b _08042018 +_0804200E: + movs r1, 0xC8 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C +_08042018: + pop {r0} + bx r0 + thumb_func_end sub_8041FFC + + thumb_func_start sub_804201C +sub_804201C: + push {lr} + cmp r1, 0 + bne _08042030 + ldr r1, _0804202C + movs r2, 0x1 + bl sub_804151C + b _08042038 + .align 2, 0 +_0804202C: .4byte 0x0000018f +_08042030: + ldr r1, _0804203C + movs r2, 0x1 + bl sub_804151C +_08042038: + pop {r0} + bx r0 + .align 2, 0 +_0804203C: .4byte 0x00000191 + thumb_func_end sub_804201C + + thumb_func_start sub_8042040 +sub_8042040: + push {lr} + cmp r1, 0 + bne _08042052 + movs r1, 0xC6 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + b _0804205A +_08042052: + movs r1, 0xD + movs r2, 0x1 + bl sub_804151C +_0804205A: + pop {r0} + bx r0 + thumb_func_end sub_8042040 + + thumb_func_start sub_8042060 +sub_8042060: + push {lr} + cmp r1, 0 + bne _08042074 + ldr r1, _08042070 + movs r2, 0x1 + bl sub_804151C + b _0804207C + .align 2, 0 +_08042070: .4byte 0x0000018d +_08042074: + movs r1, 0xE + movs r2, 0x1 + bl sub_804151C +_0804207C: + pop {r0} + bx r0 + thumb_func_end sub_8042060 + + thumb_func_start sub_8042080 +sub_8042080: + push {lr} + cmp r1, 0 + bne _08042092 + movs r1, 0xC6 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + b _0804209A +_08042092: + movs r1, 0xD + movs r2, 0x1 + bl sub_804151C +_0804209A: + pop {r0} + bx r0 + thumb_func_end sub_8042080 + + thumb_func_start sub_80420A0 +sub_80420A0: + push {lr} + ldr r1, _080420B0 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_080420B0: .4byte 0x00000143 + thumb_func_end sub_80420A0 + + thumb_func_start nullsub_91 +nullsub_91: + bx lr + thumb_func_end nullsub_91 + + thumb_func_start sub_80420B8 +sub_80420B8: + push {lr} + movs r1, 0x19 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_80420B8 + + thumb_func_start sub_80420C8 +sub_80420C8: + push {lr} + sub sp, 0x8 + movs r1, 0x2 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x15 + movs r2, 0x1 + movs r3, 0x3 + bl sub_8041550 + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_80420C8 + + thumb_func_start nullsub_92 +nullsub_92: + bx lr + thumb_func_end nullsub_92 + + thumb_func_start sub_80420E8 +sub_80420E8: + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r1, [r1, 0x8] + ldr r0, _0804211C + ldr r0, [r0] + ldr r2, _08042120 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _08042106 + adds r0, r1, 0 + bl sub_806F62C + adds r1, r0, 0 +_08042106: + cmp r1, 0x1 + beq _08042124 + cmp r1, 0x1 + bcc _08042116 + cmp r1, 0x2 + beq _08042128 + cmp r1, 0x3 + beq _0804212C +_08042116: + movs r1, 0x8 + b _0804212E + .align 2, 0 +_0804211C: .4byte gUnknown_203B418 +_08042120: .4byte 0x0000016d +_08042124: + movs r1, 0x9 + b _0804212E +_08042128: + movs r1, 0xA + b _0804212E +_0804212C: + movs r1, 0xB +_0804212E: + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl sub_8041550 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80420E8 + + thumb_func_start sub_8042148 +sub_8042148: + push {r4,lr} + adds r4, r0, 0 + ldr r1, _08042164 + bl sub_80421C0 + movs r1, 0x9F + lsls r1, 1 + adds r0, r4, 0 + movs r2, 0x1 + bl sub_804151C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08042164: .4byte 0x000001a7 + thumb_func_end sub_8042148 + + thumb_func_start nullsub_93 +nullsub_93: + bx lr + thumb_func_end nullsub_93 + + thumb_func_start sub_804216C +sub_804216C: + push {lr} + adds r0, r1, 0 + cmp r2, 0x1 + bne _0804217E + movs r1, 0xF8 + movs r2, 0x1 + bl sub_804151C + b _08042186 +_0804217E: + movs r1, 0xF9 + movs r2, 0x1 + bl sub_804151C +_08042186: + pop {r0} + bx r0 + thumb_func_end sub_804216C + + thumb_func_start sub_804218C +sub_804218C: + push {lr} + adds r0, r1, 0 + movs r1, 0x2A + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_804218C + + thumb_func_start sub_804219C +sub_804219C: + push {lr} + movs r1, 0x90 + movs r2, 0x1 + bl sub_80416E0 + pop {r0} + bx r0 + thumb_func_end sub_804219C + + thumb_func_start sub_80421AC +sub_80421AC: + push {lr} + adds r0, r1, 0 + ldr r1, _080421BC + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_080421BC: .4byte 0x00000167 + thumb_func_end sub_80421AC + + thumb_func_start sub_80421C0 +sub_80421C0: + push {r4,lr} + adds r2, r0, 0 + lsls r1, 16 + lsrs r0, r1, 16 + adds r4, r0, 0 + cmp r2, 0 + bne _080421D4 + bl sub_8083E38 + b _080421E6 +_080421D4: + adds r0, r2, 0 + bl sub_8042768 + lsls r0, 24 + cmp r0, 0 + beq _080421E6 + adds r0, r4, 0 + bl sub_8083E38 +_080421E6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80421C0 + + thumb_func_start sub_80421EC +sub_80421EC: + push {r4,lr} + lsls r1, 16 + lsrs r4, r1, 16 + bl sub_803F428 + lsls r0, 24 + cmp r0, 0 + beq _08042202 + adds r0, r4, 0 + bl sub_8083E38 +_08042202: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80421EC + + thumb_func_start sub_8042208 +sub_8042208: + push {lr} + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0 + bne _0804221C + movs r0, 0xA9 + lsls r0, 1 + bl sub_8083E38 + b _08042234 +_0804221C: + cmp r1, 0x1 + bne _0804222C + ldr r0, _08042228 + bl sub_8083E38 + b _08042234 + .align 2, 0 +_08042228: .4byte 0x00000151 +_0804222C: + movs r0, 0xA8 + lsls r0, 1 + bl sub_8083E38 +_08042234: + pop {r0} + bx r0 + thumb_func_end sub_8042208 + + thumb_func_start sub_8042238 +sub_8042238: + push {lr} + ldr r0, [r1, 0x70] + ldrb r0, [r0, 0x6] + cmp r0, 0 + beq _08042250 + ldr r0, _0804224C + bl sub_8083E38 + b _08042258 + .align 2, 0 +_0804224C: .4byte 0x00000157 +_08042250: + movs r0, 0xAB + lsls r0, 1 + bl sub_8083E38 +_08042258: + pop {r0} + bx r0 + thumb_func_end sub_8042238 + + thumb_func_start sub_804225C +sub_804225C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + mov r8, r0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r4, r2, 24 + adds r7, r4, 0 + cmp r4, 0x11 + bne _08042274 + b _08042384 +_08042274: + adds r0, r5, 0 + bl sub_803F428 + lsls r0, 24 + cmp r0, 0 + bne _08042282 + b _08042384 +_08042282: + adds r0, r4, 0 + bl sub_800EF28 + bl sub_800EF64 + movs r0, 0x4 + movs r1, 0x42 + bl sub_803E708 + movs r0, 0 + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + movs r1, 0xC0 + lsls r1, 4 + adds r0, r1 + cmp r0, 0 + bge _080422AA + adds r0, 0xFF +_080422AA: + lsls r0, 8 + lsrs r0, 16 + ldr r1, _080422FC + ldr r2, [sp] + ands r2, r1 + orrs r2, r0 + str r2, [sp] + movs r0, 0x2 + ldrsh r1, [r5, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + movs r1, 0x80 + lsls r1, 5 + adds r0, r1 + cmp r0, 0 + bge _080422CE + adds r0, 0xFF +_080422CE: + lsls r0, 8 + lsrs r0, 16 + lsls r0, 16 + ldr r1, _08042300 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + adds r0, r4, 0 + mov r1, sp + bl sub_800E448 + adds r6, r0, 0 + cmp r4, 0x4 + bne _08042308 + ldr r1, _08042304 + movs r0, 0 + bl sub_80421C0 + movs r0, 0x28 + movs r1, 0x33 + bl sub_803E708 + b _08042360 + .align 2, 0 +_080422FC: .4byte 0xffff0000 +_08042300: .4byte 0x0000ffff +_08042304: .4byte 0x00000193 +_08042308: + cmp r7, 0x8 + bne _08042358 + mov r0, r8 + ldr r7, [r0, 0x70] + adds r0, r7, 0 + adds r0, 0x46 + ldrb r4, [r0] + movs r5, 0 + b _0804231C +_0804231A: + adds r5, 0x2 +_0804231C: + ldr r0, _08042354 + cmp r5, r0 + bgt _08042346 + subs r4, 0x1 + movs r0, 0x7 + ands r4, r0 + mov r0, r8 + movs r1, 0 + adds r2, r4, 0 + bl sub_806CDD4 + movs r0, 0x2 + movs r1, 0x33 + bl sub_803E708 + adds r0, r6, 0 + bl sub_800E9A8 + lsls r0, 24 + cmp r0, 0 + bne _0804231A +_08042346: + movs r0, 0x7 + ands r4, r0 + adds r0, r7, 0 + adds r0, 0x46 + strb r4, [r0] + b _08042360 + .align 2, 0 +_08042354: .4byte 0x000003e7 +_08042358: + movs r0, 0x28 + movs r1, 0x33 + bl sub_803E708 +_08042360: + movs r5, 0 + ldr r4, _08042368 + b _0804236E + .align 2, 0 +_08042368: .4byte 0x000003e7 +_0804236C: + adds r5, 0x1 +_0804236E: + cmp r5, r4 + bgt _08042384 + movs r0, 0x42 + bl sub_803E46C + adds r0, r6, 0 + bl sub_800E9A8 + lsls r0, 24 + cmp r0, 0 + bne _0804236C +_08042384: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804225C + + thumb_func_start sub_8042390 +sub_8042390: + push {r4-r6,lr} + sub sp, 0x18 + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_8042768 + lsls r0, 24 + cmp r0, 0 + beq _08042454 + ldrb r1, [r4] + movs r0, 0x8 + ands r0, r1 + movs r6, 0 + cmp r0, 0 + bne _080423B0 + ldrb r6, [r4, 0x2] +_080423B0: + adds r0, r6, 0 + movs r1, 0 + bl sub_800EF40 + bl sub_800EF64 + movs r0, 0x4 + movs r1, 0x42 + bl sub_803E708 + ldr r0, [r5, 0xC] + cmp r0, 0 + bge _080423CC + adds r0, 0xFF +_080423CC: + lsls r0, 8 + lsrs r0, 16 + ldr r1, _08042428 + ldr r2, [sp, 0x14] + ands r2, r1 + orrs r2, r0 + str r2, [sp, 0x14] + ldr r0, [r5, 0x10] + cmp r0, 0 + bge _080423E2 + adds r0, 0xFF +_080423E2: + lsls r0, 8 + lsrs r0, 16 + lsls r0, 16 + ldr r4, _0804242C + ands r4, r2 + orrs r4, r0 + str r4, [sp, 0x14] + asrs r4, 16 + ldr r0, _08042430 + ldr r0, [r0] + ldr r1, _08042434 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + subs r4, r0 + lsrs r0, r4, 31 + adds r4, r0 + asrs r4, 1 + adds r4, 0x1 + adds r1, r5, 0 + adds r1, 0x28 + add r0, sp, 0x4 + bl sub_8005700 + add r1, sp, 0x14 + str r4, [sp] + adds r0, r6, 0 + add r2, sp, 0x4 + movs r3, 0 + bl sub_800E49C + adds r5, r0, 0 + movs r4, 0 + ldr r6, _08042438 + b _0804243E + .align 2, 0 +_08042428: .4byte 0xffff0000 +_0804242C: .4byte 0x0000ffff +_08042430: .4byte gUnknown_203B418 +_08042434: .4byte 0x000181f2 +_08042438: .4byte 0x000003e7 +_0804243C: + adds r4, 0x1 +_0804243E: + cmp r4, r6 + bgt _08042454 + movs r0, 0x42 + bl sub_803E46C + adds r0, r5, 0 + bl sub_800E9A8 + lsls r0, 24 + cmp r0, 0 + bne _0804243C +_08042454: + add sp, 0x18 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8042390 + + thumb_func_start sub_804245C +sub_804245C: + push {r4-r6,lr} + sub sp, 0x18 + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_8042768 + lsls r0, 24 + cmp r0, 0 + beq _08042518 + ldrb r1, [r4] + movs r0, 0x8 + ands r0, r1 + movs r6, 0 + cmp r0, 0 + bne _0804247C + ldrb r6, [r4, 0x2] +_0804247C: + bl sub_800EF64 + movs r0, 0x4 + movs r1, 0x42 + bl sub_803E708 + ldr r0, [r5, 0xC] + cmp r0, 0 + bge _08042490 + adds r0, 0xFF +_08042490: + lsls r0, 8 + lsrs r0, 16 + ldr r1, _080424EC + ldr r2, [sp, 0x14] + ands r2, r1 + orrs r2, r0 + str r2, [sp, 0x14] + ldr r0, [r5, 0x10] + cmp r0, 0 + bge _080424A6 + adds r0, 0xFF +_080424A6: + lsls r0, 8 + lsrs r0, 16 + lsls r0, 16 + ldr r4, _080424F0 + ands r4, r2 + orrs r4, r0 + str r4, [sp, 0x14] + asrs r4, 16 + ldr r0, _080424F4 + ldr r0, [r0] + ldr r1, _080424F8 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + subs r4, r0 + lsrs r0, r4, 31 + adds r4, r0 + asrs r4, 1 + adds r4, 0x1 + adds r1, r5, 0 + adds r1, 0x28 + add r0, sp, 0x4 + bl sub_8005700 + add r1, sp, 0x14 + str r4, [sp] + adds r0, r6, 0 + add r2, sp, 0x4 + movs r3, 0x1 + bl sub_800E49C + adds r5, r0, 0 + movs r4, 0 + ldr r6, _080424FC + b _08042502 + .align 2, 0 +_080424EC: .4byte 0xffff0000 +_080424F0: .4byte 0x0000ffff +_080424F4: .4byte gUnknown_203B418 +_080424F8: .4byte 0x000181f2 +_080424FC: .4byte 0x000003e7 +_08042500: + adds r4, 0x1 +_08042502: + cmp r4, r6 + bgt _08042518 + movs r0, 0x42 + bl sub_803E46C + adds r0, r5, 0 + bl sub_800E9A8 + lsls r0, 24 + cmp r0, 0 + bne _08042500 +_08042518: + add sp, 0x18 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_804245C + + thumb_func_start sub_8042520 +sub_8042520: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x3C + adds r4, r0, 0 + bl sub_8045888 + lsls r0, 24 + cmp r0, 0 + bne _0804253A + b _08042664 +_0804253A: + ldr r0, [r4, 0x70] + adds r0, 0x46 + ldrb r5, [r0] + ldr r0, [r4, 0xC] + cmp r0, 0 + bge _08042548 + adds r0, 0xFF +_08042548: + lsls r0, 8 + lsrs r0, 16 + ldr r1, _0804264C + ldr r2, [sp, 0x2C] + ands r2, r1 + orrs r2, r0 + str r2, [sp, 0x2C] + ldr r0, [r4, 0x10] + cmp r0, 0 + bge _0804255E + adds r0, 0xFF +_0804255E: + lsls r0, 8 + lsrs r0, 16 + lsls r0, 16 + ldr r1, _08042650 + ands r1, r2 + orrs r1, r0 + str r1, [sp, 0x2C] + asrs r1, 16 + ldr r0, _08042654 + ldr r0, [r0] + ldr r2, _08042658 + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + subs r1, r0 + lsrs r0, r1, 31 + adds r1, r0 + asrs r7, r1, 1 + ldr r0, _0804265C + str r0, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + str r5, [sp, 0xC] + add r1, sp, 0x4 + add r4, sp, 0x2C + ldrh r0, [r4] + strh r0, [r1, 0xC] + ldr r0, [sp, 0x2C] + asrs r0, 16 + strh r0, [r1, 0xE] + adds r0, r1, 0 + strh r2, [r0, 0x10] + strh r2, [r0, 0x12] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0x18] + str r7, [sp, 0x1C] + add r0, sp, 0x20 + bl sub_8004E8C + add r0, sp, 0x4 + movs r1, 0 + bl sub_8041764 + adds r6, r0, 0 + mov r10, r4 + lsls r1, r5, 2 + mov r0, sp + adds r0, 0x30 + str r0, [sp, 0x38] + ldr r0, _08042660 + adds r5, r1, r0 + movs r1, 0x5 + mov r8, r1 + mov r9, r10 +_080425CC: + movs r0, 0 + str r0, [sp] + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0 + adds r3, r7, 0 + bl sub_800E8AC + movs r0, 0x42 + bl sub_803E46C + movs r2, 0 + ldrsh r0, [r5, r2] + lsls r0, 2 + mov r1, r9 + ldrh r1, [r1] + adds r0, r1 + mov r2, r9 + strh r0, [r2] + movs r0, 0x2 + ldrsh r1, [r5, r0] + lsls r1, 2 + ldrh r0, [r4, 0x2] + adds r0, r1 + strh r0, [r4, 0x2] + movs r2, 0x2 + ldrsh r1, [r4, r2] + ldr r0, _08042654 + ldr r0, [r0] + ldr r2, _08042658 + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + subs r1, r0 + lsrs r0, r1, 31 + adds r1, r0 + asrs r7, r1, 1 + movs r0, 0x1 + negs r0, r0 + add r8, r0 + mov r1, r8 + cmp r1, 0 + bge _080425CC + bl sub_800DBBC + mov r2, r10 + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r0, 8 + str r0, [sp, 0x30] + add r0, sp, 0x2C + movs r2, 0x2 + ldrsh r0, [r0, r2] + lsls r0, 8 + ldr r1, [sp, 0x38] + str r0, [r1, 0x4] + movs r1, 0xD0 + lsls r1, 1 + ldr r0, [sp, 0x38] + movs r2, 0x1 + bl sub_80416E0 + adds r6, r0, 0 + b _08042668 + .align 2, 0 +_0804264C: .4byte 0xffff0000 +_08042650: .4byte 0x0000ffff +_08042654: .4byte gUnknown_203B418 +_08042658: .4byte 0x000181f2 +_0804265C: .4byte 0x00000165 +_08042660: .4byte gUnknown_80F4448 +_08042664: + movs r6, 0x1 + negs r6, r6 +_08042668: + adds r0, r6, 0 + add sp, 0x3C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8042520 + + thumb_func_start sub_804267C +sub_804267C: + push {r4,lr} + ldr r4, _080426B8 + bl sub_8043D10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08042694 + cmp r0, 0 + blt _08042694 + cmp r0, 0x2 + ble _080426AC +_08042694: + ldr r0, _080426BC + ldr r0, [r0] + ldr r1, _080426C0 + adds r0, r1 + ldrb r0, [r0] + bl GetStairDirection + lsls r0, 24 + ldr r4, _080426C4 + cmp r0, 0 + beq _080426AC + subs r4, 0x1 +_080426AC: + adds r0, r4, 0 + bl sub_8083E38 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080426B8: .4byte 0x000003e5 +_080426BC: .4byte gUnknown_203B418 +_080426C0: .4byte 0x00000644 +_080426C4: .4byte 0x00000155 + thumb_func_end sub_804267C + + thumb_func_start sub_80426C8 +sub_80426C8: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + cmp r4, 0x3 + bne _080426D8 + movs r0, 0 + bl sub_8083E88 +_080426D8: + cmp r5, 0x4 + beq _080426F0 + ldr r0, _080426EC + lsls r1, r4, 1 + adds r1, r0 + ldrh r0, [r1] + bl sub_8083E38 + b _080426FC + .align 2, 0 +_080426EC: .4byte gUnknown_80F67DC +_080426F0: + ldr r0, _08042708 + lsls r1, r4, 1 + adds r1, r0 + ldrh r0, [r1] + bl sub_8083E38 +_080426FC: + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x80 + bl sub_8042B34 + b _08042712 + .align 2, 0 +_08042708: .4byte gUnknown_80F67E4 +_0804270C: + movs r0, 0x46 + bl sub_803E46C +_08042712: + bl sub_8042CC0 + lsls r0, 24 + cmp r0, 0 + bne _0804270C + bl sub_8042D7C + bl sub_8040238 + movs r0, 0x1 + bl sub_8052210 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80426C8 + + thumb_func_start sub_8042730 +sub_8042730: + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x8 + movs r2, 0x8 + bl sub_806CDD4 + movs r5, 0 + b _08042742 +_08042740: + adds r5, 0x1 +_08042742: + cmp r5, 0x63 + bgt _08042760 + movs r0, 0x51 + bl sub_803E46C + ldr r0, [r4, 0x40] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08042760 + adds r0, r4, 0 + adds r0, 0x6B + ldrb r0, [r0] + cmp r0, 0x8 + beq _08042740 +_08042760: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8042730 + + thumb_func_start sub_8042768 +sub_8042768: + push {lr} + adds r1, r0, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + bne _08042778 +_08042774: + movs r0, 0 + b _080427A6 +_08042778: + ldr r0, _08042794 + ldr r2, [r0] + ldr r3, _08042798 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _0804279C + subs r3, 0x12 + adds r0, r2, r3 + ldr r0, [r0] + cmp r0, r1 + bne _08042774 + movs r0, 0x1 + b _080427A6 + .align 2, 0 +_08042794: .4byte gUnknown_203B418 +_08042798: .4byte 0x0001820a +_0804279C: + adds r0, r1, 0 + bl sub_8045888 + lsls r0, 24 + lsrs r0, 24 +_080427A6: + pop {r1} + bx r1 + thumb_func_end sub_8042768 + + thumb_func_start sub_80427AC +sub_80427AC: + push {r4-r6,lr} + movs r6, 0 +_080427B0: + ldr r0, _08042808 + ldr r0, [r0] + lsls r1, r6, 2 + ldr r2, _0804280C + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080427FA + ldr r5, [r4, 0x70] + adds r1, r5, 0 + adds r1, 0xF3 + ldrb r0, [r1] + cmp r0, 0 + beq _080427FA + movs r0, 0 + strb r0, [r1] + adds r0, r4, 0 + bl sub_80429A0 + ldrb r0, [r5, 0x6] + cmp r0, 0 + bne _080427FA + ldr r0, _08042810 + adds r1, r4, 0 + movs r2, 0 + bl sub_8045B94 + ldr r0, _08042814 + ldr r1, [r0] + adds r0, r4, 0 + bl sub_805239C +_080427FA: + adds r6, 0x1 + cmp r6, 0x13 + ble _080427B0 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08042808: .4byte gUnknown_203B418 +_0804280C: .4byte 0x000135cc +_08042810: .4byte gUnknown_202DF98 +_08042814: .4byte gUnknown_8100270 + thumb_func_end sub_80427AC + + thumb_func_start sub_8042818 +sub_8042818: + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r0, _08042874 + ldr r0, [r0] + ldr r1, _08042878 + adds r0, r1 + ldr r4, [r0] + cmp r4, 0 + bne _08042836 + bl sub_8083600 + adds r4, r0, 0 +_08042836: + ldr r1, _0804287C + lsls r0, r5, 1 + adds r2, r0, r1 + ldrh r1, [r2] + ldr r0, _08042880 + cmp r1, r0 + beq _0804284A + adds r0, r4, 0 + bl sub_80421C0 +_0804284A: + ldr r0, _08042884 + lsls r1, r5, 2 + adds r0, r1, r0 + ldr r5, [r0] + adds r6, r1, 0 + cmp r5, 0 + blt _08042896 + cmp r7, 0 + beq _08042888 + bl sub_80441BC + lsls r0, 24 + cmp r0, 0 + bne _08042888 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl sub_804151C + b _08042896 + .align 2, 0 +_08042874: .4byte gUnknown_203B418 +_08042878: .4byte 0x000181f8 +_0804287C: .4byte gUnknown_80F682C +_08042880: .4byte 0x000003e5 +_08042884: .4byte gUnknown_80F67EC +_08042888: + ldr r0, _0804289C + adds r0, r6, r0 + ldr r1, [r0] + adds r0, r4, 0 + movs r2, 0 + bl sub_804151C +_08042896: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804289C: .4byte gUnknown_80F680C + thumb_func_end sub_8042818 + + thumb_func_start sub_80428A0 +sub_80428A0: + push {lr} + movs r1, 0x29 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_80428A0 + + thumb_func_start sub_80428B0 +sub_80428B0: + push {lr} + ldr r1, _080428C0 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_080428C0: .4byte 0x000001a9 + thumb_func_end sub_80428B0 + + thumb_func_start sub_80428C4 +sub_80428C4: + push {lr} + ldr r1, _080428D4 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_080428D4: .4byte 0x000001a9 + thumb_func_end sub_80428C4 + + thumb_func_start sub_80428D8 +sub_80428D8: + push {lr} + ldr r1, _080428E8 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_080428E8: .4byte 0x000001a9 + thumb_func_end sub_80428D8 + + thumb_func_start sub_80428EC +sub_80428EC: + push {lr} + ldr r1, _080428FC + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_080428FC: .4byte 0x000001a9 + thumb_func_end sub_80428EC + + thumb_func_start sub_8042900 +sub_8042900: + push {lr} + movs r1, 0xD4 + lsls r1, 1 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8042900 + + thumb_func_start sub_8042910 +sub_8042910: + push {lr} + movs r1, 0x29 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8042910 + + thumb_func_start sub_8042920 +sub_8042920: + push {lr} + movs r1, 0x48 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8042920 + + thumb_func_start sub_8042930 +sub_8042930: + push {lr} + movs r1, 0xD3 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8042930 + + thumb_func_start sub_8042940 +sub_8042940: + push {lr} + movs r1, 0xC7 + lsls r1, 1 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8042940 + + thumb_func_start sub_8042950 +sub_8042950: + push {lr} + movs r1, 0xD8 + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + movs r0, 0xA + movs r1, 0x42 + bl sub_803E708 + pop {r0} + bx r0 + thumb_func_end sub_8042950 + + thumb_func_start sub_8042968 +sub_8042968: + push {lr} + movs r1, 0xD4 + lsls r1, 1 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8042968 + + thumb_func_start sub_8042978 +sub_8042978: + push {lr} + ldr r1, _08042988 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_08042988: .4byte 0x000001a9 + thumb_func_end sub_8042978 + + thumb_func_start sub_804298C +sub_804298C: + push {lr} + ldr r1, _0804299C + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_0804299C: .4byte 0x000001a9 + thumb_func_end sub_804298C + + thumb_func_start sub_80429A0 +sub_80429A0: + push {lr} + ldr r1, _080429B0 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_080429B0: .4byte 0x00000199 + thumb_func_end sub_80429A0 + + thumb_func_start sub_80429B4 +sub_80429B4: + push {lr} + ldr r1, _080429C4 + movs r2, 0 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_080429C4: .4byte 0x000001ab + thumb_func_end sub_80429B4 + + thumb_func_start sub_80429C8 +sub_80429C8: + push {lr} + movs r1, 0x4 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_80429C8 + + thumb_func_start sub_80429D8 +sub_80429D8: + push {lr} + movs r1, 0x8F + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_80429D8 + + thumb_func_start sub_80429E8 +sub_80429E8: + push {lr} + ldr r1, _080429F8 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + .align 2, 0 +_080429F8: .4byte 0x0000011d + thumb_func_end sub_80429E8 + + thumb_func_start sub_80429FC +sub_80429FC: + push {lr} + movs r1, 0xCF + lsls r1, 1 + movs r2, 0x1 + bl sub_80416A4 + movs r0, 0 + movs r1, 0xD4 + bl sub_80421C0 + pop {r0} + bx r0 + thumb_func_end sub_80429FC + + thumb_func_start sub_8042A14 +sub_8042A14: + push {lr} + movs r1, 0x36 + movs r2, 0x1 + bl sub_80416A4 + pop {r0} + bx r0 + thumb_func_end sub_8042A14 + + thumb_func_start sub_8042A24 +sub_8042A24: + push {lr} + movs r1, 0x15 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8042A24 + + thumb_func_start sub_8042A34 +sub_8042A34: + push {lr} + movs r1, 0x9F + lsls r1, 1 + movs r2, 0 + bl sub_80416A4 + pop {r0} + bx r0 + thumb_func_end sub_8042A34 + + thumb_func_start sub_8042A44 +sub_8042A44: + push {lr} + movs r1, 0xDA + lsls r1, 1 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8042A44 + + thumb_func_start sub_8042A54 +sub_8042A54: + push {lr} + movs r1, 0x37 + movs r2, 0x1 + bl sub_80416A4 + pop {r0} + bx r0 + thumb_func_end sub_8042A54 + + thumb_func_start sub_8042A64 +sub_8042A64: + push {lr} + movs r1, 0x29 + movs r2, 0x1 + bl sub_80416A4 + pop {r0} + bx r0 + thumb_func_end sub_8042A64 + + thumb_func_start sub_8042A74 +sub_8042A74: + push {lr} + movs r1, 0x18 + movs r2, 0x1 + bl sub_804151C + pop {r0} + bx r0 + thumb_func_end sub_8042A74 + + thumb_func_start sub_8042A84 +sub_8042A84: + push {r4-r7,lr} + adds r4, r1, 0 + adds r7, r2, 0 + lsls r0, 16 + asrs r5, r0, 16 + movs r6, 0x80 + lsls r6, 2 + adds r0, r4, 0 + bl sub_8042768 + lsls r0, 24 + cmp r0, 0 + beq _08042AF8 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl sub_804151C + adds r0, r7, 0 + movs r1, 0x42 + bl sub_803E708 + adds r5, r4, 0 + adds r5, 0x20 +_08042AB4: + ldr r1, [r4, 0x1C] + ldr r0, _08042B00 + cmp r1, r0 + bgt _08042AF0 + movs r0, 0x42 + bl sub_803E46C + ldr r1, [r4, 0x1C] + adds r1, r6 + str r1, [r4, 0x1C] + movs r0, 0x80 + lsls r0, 1 + adds r6, r0 + ldr r0, [r4, 0x10] + subs r0, r1 + cmp r0, 0 + bge _08042AD8 + adds r0, 0xFF +_08042AD8: + asrs r1, r0, 8 + ldr r0, _08042B04 + ldr r0, [r0] + ldr r2, _08042B08 + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + subs r1, r0 + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + bge _08042AB4 +_08042AF0: + movs r0, 0 + strb r0, [r5] + bl sub_804178C +_08042AF8: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08042B00: .4byte 0x0000c7ff +_08042B04: .4byte gUnknown_203B418 +_08042B08: .4byte 0x000181f2 + thumb_func_end sub_8042A84 + + thumb_func_start sub_8042B0C +sub_8042B0C: + push {lr} + adds r1, r0, 0 + movs r0, 0x9F + lsls r0, 1 + movs r2, 0x5 + bl sub_8042A84 + pop {r0} + bx r0 + thumb_func_end sub_8042B0C + + thumb_func_start sub_8042B20 +sub_8042B20: + push {lr} + adds r1, r0, 0 + movs r0, 0xDE + lsls r0, 1 + movs r2, 0xE + bl sub_8042A84 + pop {r0} + bx r0 + thumb_func_end sub_8042B20 + + thumb_func_start sub_8042B34 +sub_8042B34: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + adds r5, r0, 0 + adds r4, r1, 0 + adds r6, r2, 0 + movs r0, 0 + mov r8, r0 + bl sub_8085480 + mov r10, r0 + ldr r7, _08042CB0 + movs r0, 0xCC + movs r1, 0x7 + bl MemoryAlloc + str r0, [r7] + str r5, [r0] + adds r4, 0x1 + lsls r4, 2 + str r4, [r0, 0x8] + ldr r4, _08042CB4 + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 3 + adds r0, r4 + movs r1, 0 + ldrsh r0, [r0, r1] + bl sub_800EE5C + bl sub_800EF64 + movs r0, 0x46 + bl sub_803E46C + ldr r0, [r7] + str r6, [r0, 0x4] + movs r5, 0 + ldr r0, [r0, 0x8] + cmp r5, r0 + blt _08042B8E + b _08042C9E +_08042B8E: + mov r9, sp +_08042B90: + mov r2, r8 + lsls r6, r2, 3 + ldr r0, [r7] + ldr r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r6, r0 + ldr r3, _08042CB4 + adds r0, r3 + movs r1, 0 + ldrsh r0, [r0, r1] + str r0, [sp] + str r5, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + mov r2, r10 + ldr r0, [r2, 0xC] + cmp r0, 0 + bge _08042BBA + adds r0, 0xFF +_08042BBA: + asrs r0, 8 + mov r3, r9 + strh r0, [r3, 0xC] + mov r1, sp + mov r2, r10 + ldr r0, [r2, 0x10] + cmp r0, 0 + bge _08042BCC + adds r0, 0xFF +_08042BCC: + asrs r0, 8 + strh r0, [r1, 0xE] + movs r0, 0x2 + bl RandomCapped + ldr r1, [r7] + lsls r4, r5, 2 + adds r3, r1, 0 + adds r3, 0x4C + adds r3, r4 + ldr r2, [r1] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 3 + adds r1, r6, r1 + ldr r2, _08042CB4 + adds r2, 0x4 + adds r1, r2 + ldr r1, [r1] + lsls r1, 1 + adds r1, r0 + str r1, [r3] + movs r0, 0xF0 + bl RandomCapped + ldr r1, [r7] + adds r1, r4 + adds r0, 0x98 + adds r1, 0x8C + strh r0, [r1] + lsls r0, r5, 1 + adds r0, 0x8 + bl RandomCapped + ldr r1, [r7] + adds r2, r1, r4 + adds r3, r0, 0 + adds r3, 0x18 + adds r1, r5, 0 + cmp r5, 0 + bge _08042C20 + adds r1, r5, 0x3 +_08042C20: + asrs r1, 2 + lsls r1, 2 + subs r1, r5, r1 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + subs r0, r3, r0 + adds r1, r2, 0 + adds r1, 0x8E + strh r0, [r1] + adds r0, r2, 0 + adds r0, 0x8C + ldrh r0, [r0] + mov r3, r9 + strh r0, [r3, 0x10] + ldrh r0, [r1] + strh r0, [r3, 0x12] + movs r0, 0x4 + str r0, [sp, 0x14] + ldr r0, _08042CB8 + str r0, [sp, 0x18] + add r1, sp, 0x1C + ldr r0, _08042CBC + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + mov r0, sp + bl sub_800E890 + ldr r2, [r7] + adds r1, r2, 0 + adds r1, 0xC + adds r1, r4 + str r0, [r1] + movs r6, 0x1 + add r8, r6 + mov r0, r8 + cmp r0, 0x2 + bgt _08042C82 + ldr r0, [r2] + lsls r1, r0, 1 + adds r1, r0 + add r1, r8 + lsls r1, 3 + ldr r2, _08042CB4 + adds r1, r2 + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _08042C86 +_08042C82: + movs r6, 0 + mov r8, r6 +_08042C86: + ldr r0, [sp] + bl sub_800ECA4 + ldr r0, [r0, 0x4] + bl sub_800F15C + adds r5, 0x1 + ldr r0, [r7] + ldr r0, [r0, 0x8] + cmp r5, r0 + bge _08042C9E + b _08042B90 +_08042C9E: + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08042CB0: .4byte gUnknown_203B414 +_08042CB4: .4byte gUnknown_80F6624 +_08042CB8: .4byte 0x0000ffff +_08042CBC: .4byte gUnknown_80F683C + thumb_func_end sub_8042B34 + + thumb_func_start sub_8042CC0 +sub_8042CC0: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r7, 0 + ldr r2, _08042D20 + ldr r1, [r2] + ldr r0, [r1, 0x4] + cmp r0, 0 + beq _08042CDC + movs r7, 0x1 + subs r0, 0x1 + str r0, [r1, 0x4] +_08042CDC: + movs r5, 0 + ldr r0, [r2] + ldr r0, [r0, 0x8] + cmp r5, r0 + bge _08042D56 + adds r6, r2, 0 + movs r0, 0x98 + negs r0, r0 + mov r9, r0 + movs r4, 0 + ldr r1, _08042D24 + mov r8, r1 +_08042CF4: + ldr r3, [r6] + adds r0, r3, r4 + adds r2, r0, 0 + adds r2, 0x8C + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r4 + ldr r1, [r0] + ldrh r0, [r2] + subs r0, r1 + strh r0, [r2] + lsls r0, 16 + asrs r0, 16 + cmp r0, r9 + bgt _08042D2E + ldr r0, [r3, 0x4] + cmp r0, 0 + ble _08042D28 + movs r0, 0x98 + strh r0, [r2] + b _08042D30 + .align 2, 0 +_08042D20: .4byte gUnknown_203B414 +_08042D24: .4byte 0x0000ff68 +_08042D28: + mov r0, r8 + strh r0, [r2] + b _08042D30 +_08042D2E: + movs r7, 0x1 +_08042D30: + ldr r2, [r6] + adds r0, r2, 0 + adds r0, 0xC + adds r0, r4 + ldr r0, [r0] + adds r1, r4, 0 + adds r1, 0x8C + adds r2, r1 + movs r1, 0 + str r1, [sp] + movs r3, 0 + bl sub_800E8AC + adds r4, 0x4 + adds r5, 0x1 + ldr r0, [r6] + ldr r0, [r0, 0x8] + cmp r5, r0 + blt _08042CF4 +_08042D56: + ldr r0, _08042D74 + ldr r0, [r0] + ldr r1, _08042D78 + adds r0, r1 + bl sub_800E90C + adds r0, r7, 0 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08042D74: .4byte gUnknown_203B418 +_08042D78: .4byte 0x000181f0 + thumb_func_end sub_8042CC0 + + thumb_func_start sub_8042D7C +sub_8042D7C: + push {r4-r6,lr} + ldr r1, _08042DD0 + ldr r0, [r1] + cmp r0, 0 + beq _08042DCA + movs r5, 0 + ldr r0, [r0, 0x8] + cmp r5, r0 + bge _08042DBA + adds r6, r1, 0 +_08042D90: + ldr r0, [r6] + lsls r4, r5, 2 + adds r0, 0xC + adds r0, r4 + ldr r0, [r0] + bl sub_800E9A8 + lsls r0, 24 + cmp r0, 0 + beq _08042DB0 + ldr r0, [r6] + adds r0, 0xC + adds r0, r4 + ldr r0, [r0] + bl sub_800DC14 +_08042DB0: + adds r5, 0x1 + ldr r0, [r6] + ldr r0, [r0, 0x8] + cmp r5, r0 + blt _08042D90 +_08042DBA: + bl sub_800DBBC + ldr r4, _08042DD0 + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_08042DCA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08042DD0: .4byte gUnknown_203B414 + thumb_func_end sub_8042D7C + + thumb_func_start sub_8042DD4 +sub_8042DD4: + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r1, 0 + adds r7, r2, 0 + movs r2, 0 + ldr r0, _08042E04 + mov r12, r0 + ldr r3, _08042E08 +_08042DE4: + mov r1, r12 + ldr r0, [r1] + adds r4, r0, r3 + ldr r1, [r4] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _08042E0C + str r5, [r4] + str r6, [r4, 0xC] + str r7, [r4, 0x4] + adds r0, r5, 0 + bl sub_800E6D8 + str r0, [r4, 0x8] + b _08042E14 + .align 2, 0 +_08042E04: .4byte gUnknown_203B418 +_08042E08: .4byte 0x000005c4 +_08042E0C: + adds r3, 0x10 + adds r2, 0x1 + cmp r2, 0x2 + ble _08042DE4 +_08042E14: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8042DD4 + + thumb_func_start sub_8042E1C +sub_8042E1C: + push {r4-r6,lr} + movs r5, 0 + ldr r6, _08042E44 + ldr r4, _08042E48 +_08042E24: + ldr r0, [r6] + adds r0, r4 + ldr r1, [r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08042E4C + adds r0, r1, 0 + bl sub_800E9A8 + lsls r0, 24 + cmp r0, 0 + beq _08042E4C + movs r0, 0x1 + b _08042E56 + .align 2, 0 +_08042E44: .4byte gUnknown_203B418 +_08042E48: .4byte 0x000005c4 +_08042E4C: + adds r4, 0x10 + adds r5, 0x1 + cmp r5, 0x2 + ble _08042E24 + movs r0, 0 +_08042E56: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8042E1C + + thumb_func_start sub_8042E5C +sub_8042E5C: + push {r4-r7,lr} + ldr r7, _08042E90 + ldr r6, _08042E94 + movs r5, 0x2 +_08042E64: + ldr r0, [r7] + adds r4, r0, r6 + ldr r0, [r4] + cmp r0, 0 + blt _08042E82 + bl sub_800E9A8 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08042E82 + movs r0, 0x1 + negs r0, r0 + str r0, [r4] + str r1, [r4, 0xC] +_08042E82: + adds r6, 0x10 + subs r5, 0x1 + cmp r5, 0 + bge _08042E64 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08042E90: .4byte gUnknown_203B418 +_08042E94: .4byte 0x000005c4 + thumb_func_end sub_8042E5C + + thumb_func_start sub_8042E98 +sub_8042E98: + push {r4,r5,lr} + ldr r5, _08042EC0 + movs r4, 0x1 + negs r4, r4 + movs r3, 0 + ldr r2, _08042EC4 + movs r1, 0x2 +_08042EA6: + ldr r0, [r5] + adds r0, r2 + str r4, [r0] + str r3, [r0, 0x4] + str r3, [r0, 0xC] + adds r2, 0x10 + subs r1, 0x1 + cmp r1, 0 + bge _08042EA6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08042EC0: .4byte gUnknown_203B418 +_08042EC4: .4byte 0x000005c4 + thumb_func_end sub_8042E98 + + thumb_func_start sub_8042EC8 +sub_8042EC8: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r6, r0, 0 + mov r8, r1 + movs r7, 0 +_08042ED6: + ldr r1, _08042F5C + lsls r0, r7, 4 + ldr r2, _08042F60 + adds r0, r2 + ldr r1, [r1] + adds r4, r1, r0 + ldr r0, [r4] + cmp r0, 0 + blt _08042F4A + ldr r0, [r4, 0xC] + cmp r0, r6 + bne _08042F4A + ldr r0, [r6, 0xC] + cmp r0, 0 + bge _08042EF6 + adds r0, 0xFF +_08042EF6: + lsls r0, 8 + lsrs r0, 16 + ldr r1, _08042F64 + ldr r2, [sp, 0x8] + ands r2, r1 + orrs r2, r0 + str r2, [sp, 0x8] + ldr r1, [r6, 0x10] + cmp r1, 0 + bge _08042F0C + adds r1, 0xFF +_08042F0C: + lsls r1, 8 + lsrs r1, 16 + lsls r1, 16 + ldr r0, _08042F68 + ands r2, r0 + orrs r2, r1 + str r2, [sp, 0x8] + movs r0, 0 + str r0, [sp, 0x4] + ldr r5, [r6, 0x70] + ldr r2, [r4, 0x8] + subs r0, 0x1 + cmp r2, r0 + beq _08042F36 + lsls r2, 24 + lsrs r2, 24 + add r0, sp, 0x4 + adds r1, r6, 0 + adds r1, 0x28 + bl sub_800569C +_08042F36: + ldr r0, [r4] + adds r1, r5, 0 + adds r1, 0x46 + ldrb r1, [r1] + str r1, [sp] + add r1, sp, 0x8 + add r2, sp, 0x4 + mov r3, r8 + bl sub_800EB24 +_08042F4A: + adds r7, 0x1 + cmp r7, 0x2 + ble _08042ED6 + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08042F5C: .4byte gUnknown_203B418 +_08042F60: .4byte 0x000005c4 +_08042F64: .4byte 0xffff0000 +_08042F68: .4byte 0x0000ffff + thumb_func_end sub_8042EC8 + + thumb_func_start xxx_dungeon_8042F6C +xxx_dungeon_8042F6C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + mov r8, r0 + ldr r1, _0804310C + movs r0, 0 + strb r0, [r1] + mov r0, r8 + ldrb r6, [r0, 0x8] + ldrb r1, [r0, 0x11] + mov r9, r1 + ldrb r2, [r0, 0x10] + mov r10, r2 + ldr r0, _08043110 + mov r3, r8 + ldr r1, [r3, 0x74] + str r1, [r0] + ldr r2, _08043114 + ldr r0, [r3, 0x78] + str r0, [r2] + cmp r6, 0 + bne _08042FA0 + strb r6, [r1] +_08042FA0: + ldr r2, [r2] + movs r1, 0 + ldr r4, _08043118 + ldr r5, _0804311C + mov r0, sp + adds r0, 0x4 + str r0, [sp, 0x8] + mov r3, r8 + adds r3, 0x7C + str r3, [sp, 0xC] + movs r3, 0 +_08042FB6: + adds r0, r2, r1 + strb r3, [r0] + adds r1, 0x1 + cmp r1, r4 + bls _08042FB6 + movs r7, 0 + movs r0, 0x64 + strh r0, [r5] + cmp r6, 0 + bne _0804300C + ldr r4, _08043114 + ldr r0, [r4] + mov r5, r8 + ldrb r1, [r5, 0xF] + movs r2, 0xCF + lsls r2, 3 + adds r0, r2 + strb r1, [r0] + ldr r2, [r4] + ldr r3, _08043120 + adds r2, r3 + ldr r0, [r5, 0x14] + ldr r1, [r5, 0x18] + str r0, [r2] + str r1, [r2, 0x4] + ldrb r0, [r5, 0x4] + bl GetUnkC + ldr r1, [r4] + ldr r5, _08043124 + adds r2, r1, r5 + strh r0, [r2] + ldr r0, _08043128 + adds r1, r0 + strb r7, [r1] + mov r1, r8 + ldrb r0, [r1, 0x4] + bl GetUnk3 + ldr r1, [r4] + ldr r2, _0804312C + adds r1, r2 + strb r0, [r1] +_0804300C: + ldr r4, _08043114 + ldr r0, [r4] + movs r3, 0xD3 + lsls r3, 3 + adds r0, r3 + strb r7, [r0] + ldr r0, [r4] + ldr r5, _08043130 + adds r0, r5 + strb r7, [r0] + ldr r0, [r4] + mov r2, r8 + ldrb r1, [r2, 0x9] + subs r3, 0x3C + adds r0, r3 + strb r1, [r0] + ldr r0, [r4] + ldrb r1, [r2, 0xC] + subs r5, 0x3F + adds r0, r5 + strb r1, [r0] + ldr r0, [r4] + ldrb r1, [r2, 0xA] + movs r2, 0xCB + lsls r2, 3 + adds r0, r2 + strb r1, [r0] + ldr r0, [r4] + mov r3, r8 + ldrb r1, [r3, 0xB] + subs r5, 0x1 + adds r0, r5 + strb r1, [r0] + ldr r0, [r4] + ldrb r1, [r3, 0xD] + adds r2, 0x3 + adds r0, r2 + strb r1, [r0] + ldr r0, [r4] + ldrb r1, [r3, 0xE] + ldr r3, _08043134 + adds r0, r3 + strb r1, [r0] + bl sub_8083F34 + bl sub_803D4AC + bl sub_804513C + bl sub_8043CD8 + bl sub_80495E4 + bl sub_803E250 + bl sub_8040130 + bl sub_8040124 + movs r0, 0x1 + bl sub_803F27C + ldr r1, _08043138 + ldr r5, _0804313C + adds r0, r5, 0 + strh r0, [r1] + movs r0, 0x1 + movs r1, 0x14 + bl sub_80095CC + movs r0, 0 + bl sub_800DAC0 + movs r0, 0x1 + bl xxx_update_some_bg_tiles + bl sub_803DF60 + bl sub_803E02C + bl sub_8042E98 + ldr r0, _08043140 + strb r7, [r0] + cmp r6, 0 + beq _080430C8 + ldr r0, _08043110 + ldr r0, [r0] + movs r1, 0x90 + lsls r1, 7 + bl sub_8081BF4 + bl sub_8049840 +_080430C8: + mov r0, r9 + cmp r0, 0 + beq _080430D2 + bl sub_8043D60 +_080430D2: + cmp r6, 0 + beq _080430D8 + b _080431DC +_080430D8: + ldr r0, [r4] + ldr r1, _08043144 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r4] + ldr r2, _08043148 + adds r0, r2 + strb r1, [r0] + ldr r2, [r4] + movs r3, 0xCF + lsls r3, 3 + adds r0, r2, r3 + ldrb r3, [r0] + cmp r3, 0x1 + bne _08043154 + mov r5, r8 + ldrb r1, [r5, 0x14] + ldr r5, _0804314C + adds r0, r2, r5 + strb r1, [r0] + ldr r0, [r4] + ldr r1, _08043150 + adds r0, r1 + strb r3, [r0] + b _0804315E + .align 2, 0 +_0804310C: .4byte gUnknown_203B40C +_08043110: .4byte gUnknown_203B41C +_08043114: .4byte gUnknown_203B418 +_08043118: .4byte 0x0001cedb +_0804311C: .4byte gUnknown_203B410 +_08043120: .4byte 0x0000064c +_08043124: .4byte 0x00000666 +_08043128: .4byte 0x0000067a +_0804312C: .4byte 0x0000067b +_08043130: .4byte 0x00000699 +_08043134: .4byte 0x0000065d +_08043138: .4byte gUnknown_2026E4E +_0804313C: .4byte 0x00000808 +_08043140: .4byte gUnknown_202F32C +_08043144: .4byte 0x0001820b +_08043148: .4byte 0x0001820c +_0804314C: .4byte 0x00000644 +_08043150: .4byte 0x00000645 +_08043154: + ldr r3, _0804318C + adds r1, r2, r3 + mov r5, r8 + ldr r0, [r5, 0x4] + str r0, [r1] +_0804315E: + ldr r4, _08043190 + ldr r0, [r4] + ldr r1, _08043194 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bl sub_8044124 + cmp r6, 0 + bne _080431DC + ldr r1, [r4] + movs r2, 0xCF + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0804319C + ldr r3, _08043198 + adds r1, r3 + mov r5, r8 + ldr r0, [r5, 0x18] + str r0, [r1] + b _080431AC + .align 2, 0 +_0804318C: .4byte 0x00000644 +_08043190: .4byte gUnknown_203B418 +_08043194: .4byte 0x00000674 +_08043198: .4byte 0x0000067c +_0804319C: + bl Random + ldr r2, [r4] + ldr r1, _08043208 + adds r2, r1 + ldr r1, _0804320C + ands r1, r0 + str r1, [r2] +_080431AC: + ldr r4, _08043210 + ldr r0, [r4] + ldr r2, _08043208 + adds r0, r2 + ldr r0, [r0] + bl sub_808408C + cmp r6, 0 + bne _080431DC + bl sub_80980A4 + lsls r0, 24 + cmp r0, 0 + bne _080431D8 + ldr r0, [r4] + ldr r3, _08043214 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080431D8 + bl sub_8043FD0 +_080431D8: + bl sub_806890C +_080431DC: + mov r5, r9 + cmp r5, 0 + beq _08043230 + ldr r1, _08043218 + ldr r0, _08043210 + ldr r0, [r0] + ldr r2, _0804321C + adds r0, r2 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + str r0, [r1] + cmp r0, 0 + beq _08043224 + ldr r0, _08043220 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + b _08043230 + .align 2, 0 +_08043208: .4byte 0x0000067c +_0804320C: .4byte 0x00ffffff +_08043210: .4byte gUnknown_203B418 +_08043214: .4byte 0x00000644 +_08043218: .4byte gUnknown_202DE30 +_0804321C: .4byte 0x0000067b +_08043220: .4byte gUnknown_80FEC48 +_08043224: + ldr r0, _080432B4 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage +_08043230: + mov r3, r10 + cmp r3, 0 + beq _0804326A + mov r1, r8 + adds r1, 0x44 + movs r0, 0 + strb r0, [r1] + ldr r0, _080432B8 + ldr r0, [r0] + ldr r5, _080432BC + adds r0, r5 + ldrb r0, [r0] + bl GetLevelCondition + lsls r0, 24 + mov r4, r8 + adds r4, 0x1C + cmp r0, 0 + beq _0804325C + adds r0, r4, 0 + bl sub_808D0D8 +_0804325C: + adds r0, r4, 0 + bl sub_8068A84 + cmp r6, 0 + beq _0804326A + bl sub_806B404 +_0804326A: + bl sub_8068614 + cmp r6, 0 + bne _080432F4 + ldr r0, _080432B8 + ldr r0, [r0] + movs r1, 0xCF + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080432F4 + mov r0, sp + bl sub_8099394 + lsls r0, 24 + cmp r0, 0 + beq _080432F4 + mov r0, sp + ldrb r0, [r0] + bl sub_8095228 + adds r2, r0, 0 + adds r2, 0x2C + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + beq _080432E8 + ldr r1, _080432C0 + str r0, [r1] + ldr r0, _080432C4 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + b _080432F4 + .align 2, 0 +_080432B4: .4byte gUnknown_80FEC7C +_080432B8: .4byte gUnknown_203B418 +_080432BC: .4byte 0x00000644 +_080432C0: .4byte gUnknown_202DE30 +_080432C4: .4byte gUnknown_81002B8 +_080432C8: + ldr r4, _080432CC + b _080432D2 + .align 2, 0 +_080432CC: .4byte 0x00000226 +_080432D0: + ldr r4, _080432E4 +_080432D2: + bl sub_8083600 + adds r2, r0, 0 + adds r0, r4, 0 + movs r1, 0 + bl sub_8083AB0 + bl _08043AF4 + .align 2, 0 +_080432E4: .4byte 0x00000227 +_080432E8: + ldr r0, _080434B8 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage +_080432F4: + movs r2, 0 + mov r10, r2 + movs r3, 0 + mov r9, r3 +_080432FC: + bl sub_8098080 + bl nullsub_16 + bl sub_80521D0 + bl sub_80531A8 + bl sub_800F690 + cmp r6, 0 + bne _08043318 + bl sub_804513C +_08043318: + ldr r0, _080434BC + movs r5, 0 + str r5, [r0] + ldr r4, _080434C0 + ldr r0, [r4] + strb r5, [r0] + cmp r6, 0 + bne _08043346 + bl sub_80840A4 + ldr r1, [r4] + movs r3, 0xD0 + lsls r3, 3 + adds r2, r1, r3 + str r0, [r2] + movs r0, 0xCD + lsls r0, 3 + adds r1, r0 + movs r0, 0xA + strh r0, [r1] + ldr r0, [r2] + bl sub_80840D8 +_08043346: + ldr r0, [r4] + ldr r1, _080434C4 + adds r0, r1 + strb r5, [r0] + cmp r6, 0 + bne _08043390 + ldr r0, [r4] + ldr r2, _080434C8 + adds r0, r2 + strb r6, [r0] + movs r0, 0x4 + bl sub_8084100 + ldr r1, [r4] + ldr r3, _080434CC + adds r1, r3 + strb r6, [r1] + ldr r1, [r4] + ldr r2, _080434D0 + adds r1, r2 + strb r6, [r1] + ldr r2, [r4] + ldr r1, _080434D4 + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + adds r3, 0x3 + adds r0, r2, r3 + strh r1, [r0] + ldr r0, _080434D8 + adds r2, r0 + mov r1, r10 + strb r1, [r2] + ldr r0, [r4] + ldr r2, _080434DC + adds r0, r2 + strb r1, [r0] +_08043390: + bl sub_803D4D0 + ldr r0, [r4] + strb r5, [r0, 0x1] + ldr r0, [r4] + strb r5, [r0, 0x10] + ldr r0, [r4] + strb r5, [r0, 0x2] + ldr r0, [r4] + strb r5, [r0, 0x4] + ldr r0, [r4] + strb r5, [r0, 0x11] + ldr r0, [r4] + strb r5, [r0, 0x8] + ldr r0, [r4] + strb r5, [r0, 0x3] + ldr r0, [r4] + strb r5, [r0, 0x6] + ldr r0, [r4] + strb r5, [r0, 0xF] + ldr r2, [r4] + movs r3, 0xB8 + lsls r3, 3 + adds r1, r2, r3 + movs r0, 0x1 + negs r0, r0 + str r0, [r1] + strb r5, [r2, 0x7] + ldr r0, [r4] + strb r5, [r0, 0x9] + ldr r0, [r4] + strb r5, [r0, 0xA] + ldr r0, [r4] + movs r1, 0x1 + strb r1, [r0, 0xB] + ldr r0, [r4] + strb r1, [r0, 0xD] + ldr r0, [r4] + strb r5, [r0, 0xE] + ldr r0, [r4] + ldr r2, _080434E0 + adds r0, r2 + strb r5, [r0] + cmp r6, 0 + bne _080434A6 + ldr r0, [r4] + adds r3, 0xB9 + adds r0, r3 + strb r6, [r0] + ldr r1, [r4] + ldr r5, _080434E4 + adds r0, r1, r5 + str r6, [r0] + movs r2, 0xD2 + lsls r2, 3 + adds r0, r1, r2 + str r6, [r0] + adds r3, 0x1B + adds r0, r1, r3 + str r6, [r0] + subs r5, 0x2C + adds r0, r1, r5 + strh r6, [r0] + subs r2, 0x2E + adds r0, r1, r2 + strh r6, [r0] + subs r3, 0x26 + adds r1, r3 + mov r5, r10 + strb r5, [r1] + ldr r0, [r4] + ldr r1, _080434E8 + adds r0, r1 + strb r5, [r0] + ldr r0, [r4] + adds r2, 0xE + adds r0, r2 + strb r5, [r0] + ldr r0, [r4] + adds r3, 0x8 + adds r0, r3 + strb r5, [r0] + ldr r0, [r4] + ldr r5, _080434EC + adds r0, r5 + mov r1, r10 + strb r1, [r0] + ldr r0, [r4] + adds r2, 0x2 + adds r0, r2 + strb r1, [r0] + ldr r1, [r4] + subs r3, 0xC + adds r2, r1, r3 + ldr r0, _080434F0 + strh r0, [r2] + adds r5, 0x17 + adds r0, r1, r5 + strh r6, [r0] + ldr r0, _080434F4 + adds r1, r0 + mov r2, r10 + strb r2, [r1] + ldr r1, [r4] + adds r3, 0x1A + adds r0, r1, r3 + movs r2, 0x63 + strh r2, [r0] + subs r5, 0x2 + adds r0, r1, r5 + strh r2, [r0] + ldr r0, _080434F8 + adds r1, r0 + mov r2, r10 + strb r2, [r1] + ldr r1, [r4] + ldr r3, _080434FC + adds r0, r1, r3 + ldrb r2, [r0] + ldr r5, _08043500 + adds r0, r1, r5 + strh r2, [r0] + ldr r2, _08043504 + adds r0, r1, r2 + ldrb r2, [r0] + ldr r3, _08043508 + adds r0, r1, r3 + strh r2, [r0] + ldr r5, _0804350C + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _08043510 + adds r1, r2 + strh r0, [r1] + movs r0, 0 + bl sub_807E5E4 + bl sub_80842F0 +_080434A6: + bl sub_803D8F0 + bl sub_8068658 + cmp r6, 0 + bne _08043514 + bl sub_80687AC + b _0804351C + .align 2, 0 +_080434B8: .4byte gUnknown_81002D8 +_080434BC: .4byte gUnknown_203B450 +_080434C0: .4byte gUnknown_203B418 +_080434C4: .4byte 0x000037ec +_080434C8: .4byte 0x000037fc +_080434CC: .4byte 0x000037fd +_080434D0: .4byte 0x000037fe +_080434D4: .4byte gUnknown_80F6850 +_080434D8: .4byte 0x000037ff +_080434DC: .4byte 0x00000675 +_080434E0: .4byte 0x0001c05e +_080434E4: .4byte 0x0000068c +_080434E8: .4byte 0x0000066f +_080434EC: .4byte 0x00000671 +_080434F0: .4byte 0x000003e7 +_080434F4: .4byte 0x0000068a +_080434F8: .4byte 0x0000e264 +_080434FC: .4byte 0x0001c576 +_08043500: .4byte 0x00003a0e +_08043504: .4byte 0x0001c577 +_08043508: .4byte 0x00003a10 +_0804350C: .4byte 0x0001c586 +_08043510: .4byte 0x00003a14 +_08043514: + bl sub_8068768 + bl sub_8082B40 +_0804351C: + bl sub_806C42C + bl sub_806AD3C + cmp r6, 0 + bne _08043544 + ldr r1, _080435B4 + ldr r3, _080435B8 + ldr r0, [r3] + ldr r5, _080435BC + adds r0, r5 + movs r2, 0 + ldrsh r0, [r0, r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + bl sub_8083E88 + bl sub_80847D4 +_08043544: + bl sub_8049840 + bl sub_803E178 + ldr r0, _080435C0 + mov r3, r9 + str r3, [r0] + bl sub_8040124 + movs r0, 0x4 + movs r1, 0 + bl sub_803EAF0 + movs r0, 0 + bl sub_8052210 + adds r0, r6, 0 + bl sub_803F27C + bl ShowDungeonNameBanner + cmp r6, 0 + bne _08043594 + bl sub_804AFAC + ldr r5, _080435B8 + ldr r0, [r5] + ldr r1, _080435C4 + adds r0, r1 + ldrb r0, [r0] + bl GetUnkC + ldr r2, [r5] + ldr r3, _080435C8 + adds r1, r2, r3 + strh r0, [r1] + ldr r5, _080435CC + adds r2, r5 + mov r0, r10 + strb r0, [r2] +_08043594: + bl sub_804AAD4 + bl sub_8049B8C + bl sub_804966C + cmp r6, 0 + bne _080435D0 + bl sub_806B168 + bl sub_806C3C0 + bl sub_806B6C4 + b _080435D4 + .align 2, 0 +_080435B4: .4byte gUnknown_80F5668 +_080435B8: .4byte gUnknown_203B418 +_080435BC: .4byte 0x00003a10 +_080435C0: .4byte gUnknown_202EDC8 +_080435C4: .4byte 0x00000644 +_080435C8: .4byte 0x00000666 +_080435CC: .4byte 0x0000067a +_080435D0: + bl sub_806B678 +_080435D4: + ldr r4, _0804362C + ldr r1, [r4] + ldr r2, _08043630 + adds r0, r1, r2 + mov r3, r9 + str r3, [r0] + ldr r5, _08043634 + adds r0, r1, r5 + str r3, [r0] + adds r2, 0x4 + adds r0, r1, r2 + str r3, [r0] + ldr r3, _08043638 + adds r0, r1, r3 + mov r5, r9 + str r5, [r0] + adds r2, 0x4 + adds r0, r1, r2 + str r5, [r0] + adds r3, 0x4 + adds r1, r3 + str r5, [r1] + cmp r6, 0 + bne _08043644 + bl sub_807FA18 + bl sub_8045CB0 + ldr r1, [r4] + ldr r5, _0804363C + adds r2, r1, r5 + ldr r3, _08043640 + adds r0, r1, r3 + ldr r0, [r0] + str r0, [r2] + subs r5, 0x4 + adds r1, r5 + str r6, [r1] + bl sub_8051E3C + bl sub_804AAAC + b _08043648 + .align 2, 0 +_0804362C: .4byte gUnknown_203B418 +_08043630: .4byte 0x00017b2c +_08043634: .4byte 0x00017b38 +_08043638: .4byte 0x00017b3c +_0804363C: .4byte 0x00000694 +_08043640: .4byte 0x0000068c +_08043644: + bl sub_806A338 +_08043648: + bl sub_8068F80 + bl sub_8049884 + bl sub_8049ED4 + cmp r6, 0 + bne _08043664 + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_806A914 + b _0804366C +_08043664: + bl sub_806CF60 + bl sub_806A974 +_0804366C: + movs r0, 0x1 + bl sub_8041888 + cmp r6, 0 + bne _0804367E + bl sub_80848F0 + bl sub_8097890 +_0804367E: + ldr r0, _080436A0 + movs r1, 0x1 + strb r1, [r0] + cmp r6, 0 + beq _08043690 + bl sub_807E88C + bl sub_806AB2C +_08043690: + ldr r2, _080436A4 + ldr r0, [r2] + ldrb r0, [r0, 0x7] + cmp r0, 0 + bne _080436A8 + bl sub_803E748 + b _080436AC + .align 2, 0 +_080436A0: .4byte gUnknown_203B40C +_080436A4: .4byte gUnknown_203B418 +_080436A8: + bl sub_803E7C8 +_080436AC: + movs r0, 0 + bl sub_8040094 + movs r0, 0 + movs r1, 0 + bl sub_803EAF0 + adds r0, r6, 0 + bl sub_8040150 + bl sub_8040A84 + ldr r4, _08043730 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0xB8 + mov r3, r9 + str r3, [r0] + ldr r5, _08043734 + adds r1, r5 + strb r3, [r1] + ldr r0, [r4] + ldr r1, _08043738 + adds r0, r1 + mov r2, r9 + strb r2, [r0] + ldr r1, [r4] + movs r5, 0 + movs r0, 0x63 + strh r0, [r1, 0x12] + movs r3, 0x1 + strb r3, [r1] + cmp r6, 0 + bne _08043706 + bl sub_8052DD0 + ldr r1, [r4] + ldrb r0, [r1, 0x9] + cmp r0, 0 + beq _08043706 + strb r5, [r1, 0x9] + bl sub_8083D68 + bl sub_8052F80 +_08043706: + ldr r0, _0804373C + mov r5, r9 + str r5, [r0] + ldr r4, _08043730 + ldr r0, [r4] + strb r5, [r0, 0x5] + cmp r6, 0 + bne _08043778 + bl sub_8084B64 + ldr r1, [r4] + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _08043728 + ldrb r0, [r1, 0x2] + cmp r0, 0 + beq _08043740 +_08043728: + movs r0, 0x1 + strb r0, [r1, 0x5] + b _0804374C + .align 2, 0 +_08043730: .4byte gUnknown_203B418 +_08043734: .4byte 0x0000066c +_08043738: .4byte 0x0000066d +_0804373C: .4byte gUnknown_203B450 +_08043740: + bl sub_8083600 + bl sub_803F4A0 + bl sub_8040A84 +_0804374C: + cmp r6, 0 + bne _08043778 + ldr r1, _08043774 + ldr r0, [r1] + ldrb r0, [r0, 0x5] + cmp r0, 0 + bne _0804377C + bl sub_807E5AC + movs r0, 0 + bl sub_807E580 + lsls r0, 24 + cmp r0, 0 + beq _0804377C + movs r0, 0x1 + bl sub_807E7FC + b _0804377C + .align 2, 0 +_08043774: .4byte gUnknown_203B418 +_08043778: + bl sub_8069E8C +_0804377C: + cmp r6, 0 + beq _08043784 + movs r6, 0 + b _080437A2 +_08043784: + bl sub_80427AC + bl sub_8083600 + ldr r2, _08043960 + ldr r1, [r2] + ldr r3, _08043964 + adds r1, r3 + ldrb r1, [r1] + bl sub_8075900 + movs r0, 0x1 + movs r1, 0 + bl sub_807EAA0 +_080437A2: + bl nullsub_16 + ldr r2, _08043960 + ldr r0, [r2] + ldrb r1, [r0, 0x5] + cmp r1, 0 + bne _080437DA + movs r4, 0x1 + ldr r5, _08043968 + adds r0, r5 + strb r1, [r0] + ldr r0, [r2] + ldr r3, _0804396C + adds r0, r3 + strb r1, [r0] + ldr r0, [r2] + ldr r5, _08043970 + adds r0, r5 + strb r4, [r0] +_080437C8: + adds r0, r4, 0 + bl RunDungeon + movs r4, 0 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _080437C8 +_080437DA: + bl sub_8083600 + adds r4, r0, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080437F0 + adds r0, r4, 0 + bl sub_8071DA4 +_080437F0: + ldr r5, _08043960 + ldr r0, [r5] + ldr r4, _08043968 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08043822 + movs r0, 0x1 + bl sub_8043ED0 + lsls r0, 24 + cmp r0, 0 + beq _08043812 + ldr r0, [r5] + adds r0, r4 + movs r1, 0x1 + strb r1, [r0] +_08043812: + ldr r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08043822 + ldrb r0, [r1, 0x11] + cmp r0, 0 + beq _08043830 +_08043822: + ldr r2, _08043960 + ldr r0, [r2] + ldrb r0, [r0, 0x6] + cmp r0, 0 + bne _08043830 + bl sub_806AA70 +_08043830: + bl sub_8083600 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _0804384A + movs r0, 0x4F + bl sub_80526D0 + movs r0, 0x4F + bl sub_8052740 +_0804384A: + bl sub_8040124 + movs r0, 0x1 + movs r1, 0 + bl sub_803EAF0 + ldr r3, _08043960 + ldr r0, [r3] + ldr r5, _08043970 + adds r0, r5 + mov r1, r9 + strb r1, [r0] + ldr r0, [r3] + ldr r2, _0804396C + adds r0, r2 + movs r3, 0x1 + strb r3, [r0] + ldr r5, _08043960 + ldr r1, [r5] + ldrb r0, [r1, 0x3] + cmp r0, 0 + bne _08043896 + ldrb r0, [r1, 0x6] + cmp r0, 0 + bne _08043896 + ldr r2, _08043974 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, 0x72 + bne _08043896 + ldr r3, _08043978 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0x1B + bne _08043896 + movs r0, 0x3C + bl sub_8083ED8 +_08043896: + movs r0, 0x4 + movs r1, 0x4F + bl sub_803E708 + ldr r5, _08043960 + ldr r0, [r5] + ldrb r0, [r0, 0x7] + cmp r0, 0 + bne _080438AC + bl sub_803E830 +_080438AC: + movs r0, 0 + bl SetBGOBJEnableFlags + ldr r1, _0804397C + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0x60 + orrs r0, r1 + ldr r1, _08043980 + ands r0, r1 + movs r1, 0x80 + lsls r1, 8 + orrs r0, r1 + ldr r1, _08043984 + ands r0, r1 + movs r1, 0xF8 + lsls r1, 16 + orrs r0, r1 + str r0, [sp, 0x4] + ldr r0, _08043988 + ldr r2, [r0] + movs r0, 0xFD + ldr r1, [sp, 0x8] + movs r3, 0 + bl SetBGPaletteBufferColorRGB + movs r0, 0x1 + bl sub_8040094 + ldr r0, [r5] + ldr r1, _0804396C + adds r0, r1 + movs r7, 0 + movs r2, 0x1 + strb r2, [r0] + ldr r1, [r5] + ldrb r0, [r1, 0x10] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08043926 + ldrb r0, [r1, 0x6] + cmp r0, 0 + beq _08043926 + bl sub_8083600 + adds r4, r0, 0 + ldr r0, _0804398C + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + ldr r0, [r5] + strb r7, [r0, 0x6] + ldr r0, _08043990 + adds r1, r4, 0 + adds r2, r4, 0 + bl sub_8083AB0 +_08043926: + bl sub_80688CC + bl sub_8049820 + ldr r0, _08043994 + ldr r0, [r0] + bl CloseFile + bl sub_800F740 + ldr r0, _08043998 + mov r3, r10 + strb r3, [r0] + ldr r4, _08043960 + ldr r1, [r4] + ldrb r0, [r1, 0x3] + cmp r0, 0 + beq _0804394C + b _08043BFC +_0804394C: + ldrb r0, [r1, 0x6] + cmp r0, 0 + beq _080439A0 + ldr r0, _0804399C + ldr r0, [r0] + movs r1, 0x90 + lsls r1, 7 + bl sub_8080B30 + b _080439A6 + .align 2, 0 +_08043960: .4byte gUnknown_203B418 +_08043964: .4byte 0x00003a08 +_08043968: .4byte 0x00000654 +_0804396C: .4byte 0x00018218 +_08043970: .4byte 0x00018219 +_08043974: .4byte 0x0001ceda +_08043978: .4byte 0x00000644 +_0804397C: .4byte 0xffffff00 +_08043980: .4byte 0xffff00ff +_08043984: .4byte 0xff00ffff +_08043988: .4byte gUnknown_202EDC8 +_0804398C: .4byte gUnknown_81006A4 +_08043990: .4byte 0x00000222 +_08043994: .4byte gDungeonNameBannerPalette +_08043998: .4byte gUnknown_203B40C +_0804399C: .4byte gUnknown_203B41C +_080439A0: + movs r0, 0x2 + bl sub_8046F84 +_080439A6: + bl sub_806C1D8 + ldr r4, _080439CC + ldr r1, [r4] + ldr r5, _080439D0 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080439D4 + adds r5, 0x1A + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0 + bne _080439C4 + b _08043AF4 +_080439C4: + bl sub_804700C + b _08043AF4 + .align 2, 0 +_080439CC: .4byte gUnknown_203B418 +_080439D0: .4byte 0x00000654 +_080439D4: + ldrb r0, [r1, 0x11] + cmp r0, 0x1 + bne _080439DC + b _080432C8 +_080439DC: + cmp r0, 0x2 + bne _08043A00 + bl sub_8083600 + adds r2, r0, 0 + ldr r0, _080439F8 + movs r1, 0 + bl sub_8083AB0 + ldr r0, [r4] + ldr r1, _080439FC + adds r0, r1 + b _08043A62 + .align 2, 0 +_080439F8: .4byte 0x00000229 +_080439FC: .4byte 0x0000066e +_08043A00: + cmp r0, 0x3 + bne _08043A24 + bl sub_8083600 + adds r2, r0, 0 + ldr r0, _08043A1C + movs r1, 0 + bl sub_8083AB0 + ldr r0, [r4] + ldr r2, _08043A20 + adds r0, r2 + b _08043A62 + .align 2, 0 +_08043A1C: .4byte 0x0000022a +_08043A20: .4byte 0x0000066e +_08043A24: + cmp r0, 0x4 + bne _08043A2A + b _080432D0 +_08043A2A: + movs r3, 0xCF + lsls r3, 3 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08043A74 + bl sub_8043D10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08043A74 + ldr r0, [r4] + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0x2 + bne _08043A74 + bl sub_8083600 + adds r2, r0, 0 + movs r0, 0x8A + lsls r0, 2 + movs r1, 0 + bl sub_8083AB0 + ldr r0, [r4] + ldr r5, _08043A70 + adds r0, r5 +_08043A62: + ldrb r0, [r0] + cmp r0, 0 + beq _08043AF4 + bl sub_8097810 + b _08043AF4 + .align 2, 0 +_08043A70: .4byte 0x0000066e +_08043A74: + ldr r4, _08043ACC + ldr r0, [r4] + ldr r1, _08043AD0 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08043A86 + bl sub_8097810 +_08043A86: + ldr r1, [r4] + ldr r3, _08043AD4 + adds r2, r1, r3 + ldrb r0, [r2] + adds r0, 0x1 + ldr r5, _08043AD8 + adds r1, r5 + ldrb r1, [r1] + cmp r0, r1 + bge _08043AE4 + strb r0, [r2] + ldr r0, [r4] + ldr r1, _08043ADC + adds r0, r1 + ldrh r1, [r0] + ldr r0, _08043AE0 + cmp r1, r0 + beq _08043AAC + b _080432FC +_08043AAC: + movs r0, 0x1F + bl sub_8098100 + lsls r0, 24 + cmp r0, 0 + beq _08043ABA + b _080432FC +_08043ABA: + movs r0, 0x1F + bl sub_8097FA8 + bl sub_8086130 + bl sub_8097FF8 + b _080432FC + .align 2, 0 +_08043ACC: .4byte gUnknown_203B418 +_08043AD0: .4byte 0x0000066e +_08043AD4: .4byte 0x00000645 +_08043AD8: .4byte 0x0001cec8 +_08043ADC: .4byte 0x00000644 +_08043AE0: .4byte 0x0000060b +_08043AE4: + ldr r4, _08043B80 + bl sub_8083600 + adds r2, r0, 0 + adds r0, r4, 0 + movs r1, 0 + bl sub_8083AB0 +_08043AF4: + ldr r1, _08043B84 + movs r0, 0 + strb r0, [r1] + mov r4, r8 + adds r4, 0x7E + movs r0, 0 + strb r0, [r4] + bl sub_8097FF8 + movs r0, 0x1 + movs r1, 0x14 + bl sub_80095CC + bl sub_803E13C + movs r0, 0x4 + bl sub_800CDA8 + ldr r0, _08043B88 + ldr r1, [r0] + ldrb r0, [r1, 0x6] + cmp r0, 0 + bne _08043B38 + movs r2, 0xCF + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + bl sub_8083C88 + lsls r0, 24 + cmp r0, 0 + beq _08043B38 + bl sub_80841EC +_08043B38: + bl sub_8083C24 + lsls r0, 24 + cmp r0, 0 + beq _08043BA4 + ldr r5, _08043B88 + ldr r0, [r5] + ldrb r0, [r0, 0x6] + cmp r0, 0 + beq _08043B98 + ldr r0, _08043B8C + ldr r3, [sp, 0xC] + strh r0, [r3] + mov r4, r8 + adds r4, 0x84 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x8 + bl memset + mov r3, r8 + adds r3, 0x80 + ldr r1, [r5] + ldr r5, _08043B90 + adds r2, r1, r5 + ldr r0, [r2] + str r0, [r3] + ldr r0, [r2] + str r0, [r4] + mov r2, r8 + adds r2, 0x88 + ldr r0, _08043B94 + adds r1, r0 + ldr r0, [r1] + str r0, [r2] + b _08043C32 + .align 2, 0 +_08043B80: .4byte 0x00000227 +_08043B84: .4byte gUnknown_203B40C +_08043B88: .4byte gUnknown_203B418 +_08043B8C: .4byte 0x0000fffe +_08043B90: .4byte 0x00000644 +_08043B94: .4byte 0x0000067c +_08043B98: + ldr r0, _08043BA0 + ldr r1, [sp, 0xC] + strh r0, [r1] + b _08043C32 + .align 2, 0 +_08043BA0: .4byte 0x0000ffff +_08043BA4: + bl sub_8083C50 + lsls r0, 24 + cmp r0, 0 + beq _08043C28 + ldr r0, _08043BC8 + ldr r0, [r0] + movs r2, 0xCF + lsls r2, 3 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08043BCC + movs r0, 0x4 + ldr r3, [sp, 0xC] + strh r0, [r3] + b _08043BE6 + .align 2, 0 +_08043BC8: .4byte gUnknown_203B418 +_08043BCC: + cmp r0, 0 + bne _08043BDC + movs r0, 0x1 + ldr r5, [sp, 0xC] + strh r0, [r5] + bl sub_8084424 + b _08043BE6 +_08043BDC: + movs r0, 0x1 + ldr r1, [sp, 0xC] + strh r0, [r1] + bl sub_8084424 +_08043BE6: + ldr r0, _08043BF4 + ldr r0, [r0] + ldr r2, _08043BF8 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r4] + b _08043C32 + .align 2, 0 +_08043BF4: .4byte gUnknown_203B418 +_08043BF8: .4byte 0x00000674 +_08043BFC: + ldr r0, _08043C20 + ldr r0, [r0] + movs r1, 0x90 + lsls r1, 7 + bl sub_8080B30 + movs r0, 0x3 + ldr r3, [sp, 0xC] + strh r0, [r3] + mov r1, r8 + adds r1, 0x80 + ldr r0, [r4] + ldr r5, _08043C24 + adds r0, r5 + ldr r0, [r0] + str r0, [r1] + b _08043C32 + .align 2, 0 +_08043C20: .4byte gUnknown_203B41C +_08043C24: .4byte 0x00000644 +_08043C28: + movs r0, 0x2 + ldr r1, [sp, 0xC] + strh r0, [r1] + bl sub_8084424 +_08043C32: + bl sub_806863C + bl sub_803E214 + bl nullsub_56 + bl sub_8040218 + ldr r2, [sp, 0xC] + movs r3, 0 + ldrsh r0, [r2, r3] + cmp r0, 0x1 + beq _08043C54 + cmp r0, 0x4 + beq _08043C54 + cmp r0, 0x2 + bne _08043C58 +_08043C54: + bl sub_8047104 +_08043C58: + ldr r5, [sp, 0xC] + movs r0, 0 + ldrsh r1, [r5, r0] + cmp r1, 0x1 + beq _08043C8A + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _08043C78 + cmp r1, 0x4 + beq _08043C78 + adds r0, 0x1 + cmp r1, r0 + beq _08043C78 + cmp r1, 0x2 + bne _08043CAC +_08043C78: + ldr r2, [sp, 0xC] + movs r3, 0 + ldrsh r1, [r2, r3] + cmp r1, 0x1 + beq _08043C8A + cmp r1, 0x4 + beq _08043C8A + cmp r1, 0x2 + bne _08043C92 +_08043C8A: + movs r0, 0x1 + bl sub_8068BDC + b _08043CAC +_08043C92: + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + bne _08043CA2 + movs r0, 0 + bl sub_8068BDC + b _08043CAC +_08043CA2: + bl sub_8068F28 + movs r0, 0 + bl sub_8068BDC +_08043CAC: + bl sub_800DB7C + ldr r0, _08043CD0 + movs r1, 0 + str r1, [r0] + ldr r0, _08043CD4 + str r1, [r0] + bl nullsub_16 + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08043CD0: .4byte gUnknown_203B418 +_08043CD4: .4byte gUnknown_203B41C + thumb_func_end xxx_dungeon_8042F6C + + thumb_func_start sub_8043CD8 +sub_8043CD8: + push {lr} + bl sub_8009804 + pop {r0} + bx r0 + thumb_func_end sub_8043CD8 + + thumb_func_start sub_8043CE4 +sub_8043CE4: + push {lr} + adds r1, r0, 0 + ldr r0, _08043CF4 + ldrb r0, [r0] + cmp r0, 0 + beq _08043CF8 + movs r0, 0x1 + b _08043D08 + .align 2, 0 +_08043CF4: .4byte gUnknown_202F1A8 +_08043CF8: + movs r2, 0 + ldr r0, _08043D0C + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0x2 + bne _08043D06 + movs r2, 0x1 +_08043D06: + adds r0, r2, 0 +_08043D08: + pop {r1} + bx r1 + .align 2, 0 +_08043D0C: .4byte gUnknown_810ACC0 + thumb_func_end sub_8043CE4 + + thumb_func_start sub_8043D10 +sub_8043D10: + push {lr} + ldr r0, _08043D38 + ldr r1, [r0] + movs r2, 0xCF + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08043D3C + subs r2, 0x2B + adds r0, r1, r2 + subs r2, 0x8 + adds r1, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _08043D3C + movs r0, 0x2 + b _08043D4C + .align 2, 0 +_08043D38: .4byte gUnknown_203B418 +_08043D3C: + bl sub_80441BC + lsls r0, 24 + cmp r0, 0 + bne _08043D4A + movs r0, 0 + b _08043D4C +_08043D4A: + movs r0, 0x1 +_08043D4C: + pop {r1} + bx r1 + thumb_func_end sub_8043D10 + + thumb_func_start sub_8043D50 +sub_8043D50: + ldr r2, _08043D5C + str r2, [r1] + movs r1, 0x90 + lsls r1, 7 + str r1, [r0] + bx lr + .align 2, 0 +_08043D5C: .4byte 0x0001cedc + thumb_func_end sub_8043D50 + + thumb_func_start sub_8043D60 +sub_8043D60: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r5, 0 +_08043D6A: + ldr r0, _08043DA4 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _08043DA8 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08043DCE + ldr r2, [r4, 0x70] + movs r1, 0x1 + ldrb r0, [r2, 0x8] + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 + adds r0, r2, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x4A + beq _08043DA0 + cmp r0, 0x47 + bne _08043DAC +_08043DA0: + movs r0, 0x1 + b _08043DAE + .align 2, 0 +_08043DA4: .4byte gUnknown_203B418 +_08043DA8: .4byte 0x0001358c +_08043DAC: + movs r0, 0 +_08043DAE: + cmp r0, 0 + beq _08043DB4 + movs r1, 0 +_08043DB4: + adds r0, r2, 0 + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08043DC0 + movs r1, 0 +_08043DC0: + cmp r1, 0 + beq _08043DCE + adds r0, r4, 0 + ldr r1, _08043EC0 + adds r2, r4, 0 + bl sub_8068FE0 +_08043DCE: + adds r5, 0x1 + cmp r5, 0xF + ble _08043D6A + movs r5, 0 + ldr r0, _08043EC4 + mov r9, r0 + mov r8, r5 +_08043DDC: + mov r1, r9 + ldr r0, [r1] + lsls r1, r5, 2 + ldr r2, _08043EC8 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + adds r7, r5, 0x1 + cmp r0, 0 + beq _08043E62 + adds r0, r4, 0 + adds r0, 0x22 + mov r1, r8 + strb r1, [r0] + adds r1, r4, 0 + adds r1, 0x20 + movs r0, 0x1 + strb r0, [r1] + ldr r4, [r4, 0x70] + ldrh r0, [r4, 0x10] + strh r0, [r4, 0xE] + movs r2, 0x9E + lsls r2, 1 + adds r1, r4, r2 + adds r2, 0x4 + adds r0, r4, r2 + ldr r0, [r0] + str r0, [r1] + mov r1, r9 + ldr r0, [r1] + ldr r2, _08043ECC + adds r0, r2 + mov r1, r8 + strb r1, [r0] + adds r0, r4, 0 + movs r1, 0 + bl sub_806BFC0 + ldrh r0, [r4, 0x2] + strh r0, [r4, 0x4] + adds r0, r4, 0 + adds r0, 0xFD + mov r2, r8 + strb r2, [r0] + movs r0, 0x8C + lsls r0, 1 + adds r5, r4, r0 + adds r4, r5, 0 + movs r6, 0x3 +_08043E46: + ldrb r1, [r4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08043E58 + adds r0, r5, 0 + bl sub_8092BF4 + strb r0, [r4, 0x4] +_08043E58: + adds r4, 0x8 + adds r5, 0x8 + subs r6, 0x1 + cmp r6, 0 + bge _08043E46 +_08043E62: + adds r5, r7, 0 + cmp r5, 0x3 + ble _08043DDC + movs r6, 0 +_08043E6A: + movs r5, 0 + adds r7, r6, 0x1 +_08043E6E: + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8049590 + ldr r4, [r0, 0x14] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08043EA0 + adds r0, r4, 0 + bl sub_80450F8 + cmp r0, 0x2 + bne _08043EA0 + adds r0, r4, 0 + bl sub_8045104 + adds r1, r0, 0 + ldrb r0, [r1] + cmp r0, 0x1B + bne _08043EA0 + movs r0, 0x5 + strb r0, [r1] +_08043EA0: + adds r5, 0x1 + cmp r5, 0x37 + ble _08043E6E + adds r6, r7, 0 + cmp r6, 0x1F + ble _08043E6A + movs r0, 0x2 + bl sub_8046F84 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08043EC0: .4byte 0x00000207 +_08043EC4: .4byte gUnknown_203B418 +_08043EC8: .4byte 0x0001357c +_08043ECC: .4byte 0x00000676 + thumb_func_end sub_8043D60 + + thumb_func_start sub_8043ED0 +sub_8043ED0: + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r7, 0 + cmp r5, 0 + bne _08043EEA + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08043EEA + movs r0, 0 + b _08043FB8 +_08043EEA: + ldr r6, _08043F2C + ldr r0, [r6] + ldrb r0, [r0, 0x10] + cmp r0, 0x1 + bne _08043F40 + bl sub_8083600 + adds r4, r0, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08043FB6 + cmp r5, 0 + bne _08043F20 + ldr r0, _08043F30 + ldr r1, [r6] + ldr r2, _08043F34 + adds r1, r2 + bl strcpy + ldr r0, _08043F38 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage +_08043F20: + adds r0, r4, 0 + bl sub_8042B0C + ldr r1, _08043F3C + b _08043FAC + .align 2, 0 +_08043F2C: .4byte gUnknown_203B418 +_08043F30: .4byte gUnknown_202DF98 +_08043F34: .4byte 0x000005f4 +_08043F38: .4byte gUnknown_80F89B4 +_08043F3C: .4byte 0x0000021f +_08043F40: + cmp r0, 0x2 + bne _08043F74 + bl sub_8083600 + adds r4, r0, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08043FB6 + cmp r5, 0 + bne _08043FA4 + ldr r0, _08043F68 + ldr r1, [r6] + ldr r2, _08043F6C + adds r1, r2 + bl strcpy + ldr r0, _08043F70 + b _08043F9A + .align 2, 0 +_08043F68: .4byte gUnknown_202DF98 +_08043F6C: .4byte 0x000005f4 +_08043F70: .4byte gUnknown_80F89D4 +_08043F74: + cmp r0, 0x3 + bne _08043FB6 + bl sub_8083600 + adds r4, r0, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08043FB6 + cmp r5, 0 + bne _08043FA4 + ldr r0, _08043FC0 + ldr r1, [r6] + ldr r2, _08043FC4 + adds r1, r2 + bl strcpy + ldr r0, _08043FC8 +_08043F9A: + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage +_08043FA4: + adds r0, r4, 0 + bl sub_8042B0C + ldr r1, _08043FCC +_08043FAC: + adds r0, r4, 0 + adds r2, r4, 0 + bl sub_8068FE0 + movs r7, 0x1 +_08043FB6: + adds r0, r7, 0 +_08043FB8: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08043FC0: .4byte gUnknown_202DF98 +_08043FC4: .4byte 0x000005f4 +_08043FC8: .4byte gUnknown_80F89D8 +_08043FCC: .4byte 0x00000222 + thumb_func_end sub_8043ED0 + + thumb_func_start sub_8043FD0 +sub_8043FD0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x44 + movs r0, 0x2 + mov r9, r0 + movs r1, 0x1 + mov r10, r1 + movs r0, 0xFF + mov r8, r0 +_08043FE8: + movs r3, 0 + mov r1, r9 + adds r1, 0x1 + str r1, [sp, 0x3C] +_08043FF0: + ldr r2, _080440E4 + movs r0, 0x58 + adds r1, r3, 0 + muls r1, r0 + ldr r0, [r2] + adds r4, r0, r1 + ldrh r1, [r4] + mov r0, r10 + ands r0, r1 + adds r3, 0x1 + str r3, [sp, 0x40] + cmp r0, 0 + beq _080440FE + lsrs r0, r1, 1 + mov r1, r10 + ands r0, r1 + cmp r0, 0 + beq _080440FE + add r5, sp, 0x20 + movs r0, 0x8 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + mov r2, r9 + bl sub_808E010 + mov r1, r9 + strb r1, [r4, 0x3] + ldr r0, [sp, 0x20] + str r0, [r4, 0x1C] + ldrh r0, [r5, 0x4] + ldrh r1, [r4, 0x16] + adds r0, r1 + movs r2, 0 + strh r0, [r4, 0x16] + lsls r0, 16 + ldr r1, _080440E8 + cmp r0, r1 + ble _08044040 + ldr r0, _080440EC + strh r0, [r4, 0x16] +_08044040: + ldrb r0, [r4, 0x18] + str r0, [sp, 0x2C] + ldrb r0, [r4, 0x19] + str r0, [sp, 0x30] + ldrb r0, [r4, 0x1A] + str r0, [sp, 0x34] + ldrb r0, [r4, 0x1B] + str r0, [sp, 0x38] + ldrb r1, [r5, 0x6] + ldr r0, [sp, 0x2C] + adds r0, r1 + str r0, [sp, 0x2C] + ldrb r1, [r5, 0x7] + ldr r0, [sp, 0x30] + adds r0, r1 + str r0, [sp, 0x30] + ldrb r1, [r5, 0x8] + ldr r0, [sp, 0x34] + adds r0, r1 + str r0, [sp, 0x34] + ldrb r1, [r5, 0x9] + ldr r0, [sp, 0x38] + adds r0, r1 + str r0, [sp, 0x38] + ldr r0, [sp, 0x2C] + cmp r0, 0xFE + ble _0804407A + mov r0, r8 + str r0, [sp, 0x2C] +_0804407A: + ldr r0, [sp, 0x30] + cmp r0, 0xFE + ble _08044084 + mov r1, r8 + str r1, [sp, 0x30] +_08044084: + ldr r0, [sp, 0x34] + cmp r0, 0xFE + ble _0804408E + mov r0, r8 + str r0, [sp, 0x34] +_0804408E: + ldr r0, [sp, 0x38] + cmp r0, 0xFE + ble _08044098 + mov r1, r8 + str r1, [sp, 0x38] +_08044098: + ldr r0, [sp, 0x2C] + strb r0, [r4, 0x18] + ldr r0, [sp, 0x30] + strb r0, [r4, 0x19] + ldr r0, [sp, 0x34] + strb r0, [r4, 0x1A] + ldr r0, [sp, 0x38] + strb r0, [r4, 0x1B] + movs r0, 0x8 + ldrsh r1, [r4, r0] + ldrb r2, [r4, 0x3] + mov r0, sp + ldr r3, _080440EC + bl sub_808E0AC + adds r6, r0, 0 + cmp r6, 0 + beq _080440FE + movs r0, 0 + cmp r0, r6 + bge _080440FE +_080440C2: + movs r3, 0 + adds r7, r0, 0x1 + lsls r0, 1 + mov r1, sp + adds r5, r1, r0 + adds r2, r4, 0 + adds r2, 0x2C +_080440D0: + ldrb r1, [r2] + mov r0, r10 + ands r0, r1 + cmp r0, 0 + bne _080440F0 + ldrh r1, [r5] + adds r0, r2, 0 + bl sub_8092AD4 + b _080440F8 + .align 2, 0 +_080440E4: .4byte gUnknown_203B45C +_080440E8: .4byte 0x03e60000 +_080440EC: .4byte 0x000003e7 +_080440F0: + adds r2, 0x8 + adds r3, 0x1 + cmp r3, 0x3 + ble _080440D0 +_080440F8: + adds r0, r7, 0 + cmp r0, r6 + blt _080440C2 +_080440FE: + ldr r3, [sp, 0x40] + movs r0, 0xCE + lsls r0, 1 + cmp r3, r0 + bgt _0804410A + b _08043FF0 +_0804410A: + ldr r0, [sp, 0x3C] + mov r9, r0 + cmp r0, 0x5 + bgt _08044114 + b _08043FE8 +_08044114: + add sp, 0x44 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8043FD0 + + thumb_func_start sub_8044124 +sub_8044124: + push {r4,r5,lr} + ldr r0, _080441AC + ldr r0, [r0] + ldr r1, _080441B0 + adds r0, r1 + ldrb r0, [r0] + bl GetMaxItemCount + cmp r0, 0 + bne _08044182 + movs r3, 0 + ldr r4, _080441B4 + movs r2, 0 +_0804413E: + lsls r1, r3, 2 + ldr r0, [r4] + adds r1, r0 + strb r2, [r1, 0x2] + strb r2, [r1, 0x1] + strb r2, [r1] + adds r3, 0x1 + cmp r3, 0x13 + ble _0804413E + movs r3, 0 + ldr r5, _080441B8 + movs r4, 0x1 +_08044156: + movs r0, 0x58 + adds r1, r3, 0 + muls r1, r0 + ldr r0, [r5] + adds r1, r0, r1 + ldrh r2, [r1] + adds r0, r4, 0 + ands r0, r2 + cmp r0, 0 + beq _08044178 + lsrs r0, r2, 1 + ands r0, r4 + cmp r0, 0 + beq _08044178 + adds r1, 0x28 + movs r0, 0 + strb r0, [r1] +_08044178: + adds r3, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r3, r0 + ble _08044156 +_08044182: + ldr r0, _080441AC + ldr r0, [r0] + ldr r2, _080441B0 + adds r0, r2 + ldrb r0, [r0] + bl GetMoneyCondition + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080441A4 + ldr r0, _080441B4 + ldr r0, [r0] + movs r2, 0x98 + lsls r2, 2 + adds r0, r2 + str r1, [r0] +_080441A4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080441AC: .4byte gUnknown_203B418 +_080441B0: .4byte 0x00000644 +_080441B4: .4byte gUnknown_203B460 +_080441B8: .4byte gUnknown_203B45C + thumb_func_end sub_8044124 + + thumb_func_start sub_80441BC +sub_80441BC: + push {lr} + ldr r0, _080441D8 + ldr r0, [r0] + ldr r1, _080441DC + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080441E0 + cmp r0, 0x31 + bgt _080441E0 + movs r0, 0x1 + b _080441E2 + .align 2, 0 +_080441D8: .4byte gUnknown_203B418 +_080441DC: .4byte 0x00003a14 +_080441E0: + movs r0, 0 +_080441E2: + pop {r1} + bx r1 + thumb_func_end sub_80441BC + + thumb_func_start sub_80441E8 +sub_80441E8: + push {lr} + ldr r0, _08044200 + ldr r0, [r0] + ldr r1, _08044204 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x3F + bgt _08044208 + movs r0, 0 + b _0804420A + .align 2, 0 +_08044200: .4byte gUnknown_203B418 +_08044204: .4byte 0x00003a0e +_08044208: + movs r0, 0x1 +_0804420A: + pop {r1} + bx r1 + thumb_func_end sub_80441E8 + + thumb_func_start sub_8044210 +sub_8044210: + push {lr} + ldr r0, _0804422C + ldr r0, [r0] + ldr r1, _08044230 + adds r0, r1 + ldrb r0, [r0] + subs r0, 0x4B + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x16 + bls _08044234 + movs r0, 0 + b _08044236 + .align 2, 0 +_0804422C: .4byte gUnknown_203B418 +_08044230: .4byte 0x00000644 +_08044234: + movs r0, 0x1 +_08044236: + pop {r1} + bx r1 + thumb_func_end sub_8044210 + + thumb_func_start RunDungeon +RunDungeon: + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _080442C6 + bl sub_8044994 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _080442C6 + adds r0, r4, 0 + bl xxx_dungeon_80442D0 + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _080442C6 + cmp r4, 0 + beq _08044280 + bl sub_807E378 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _080442C6 +_08044280: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _080442C6 + bl sub_8044574 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _080442C6 + bl sub_8044820 + bl sub_8044B28 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080442C6 + bl sub_8044AB4 + ldr r0, _080442CC + ldr r0, [r0] + movs r2, 0xCC + lsls r2, 3 + adds r1, r0, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x18 + bne _080442C6 + strh r4, [r1] +_080442C6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080442CC: .4byte gUnknown_203B418 + thumb_func_end RunDungeon + + thumb_func_start xxx_dungeon_80442D0 +xxx_dungeon_80442D0: + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + bl sub_8083600 + adds r5, r0, 0 + cmp r5, 0 + beq _0804431A + bl sub_8069E8C + adds r0, r5, 0 + bl sub_8070774 + ldr r3, _08044320 + ldr r1, _08044324 + ldr r1, [r1] + movs r2, 0xCC + lsls r2, 3 + adds r1, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + lsls r1, 1 + movs r2, 0x32 + muls r0, r2 + adds r1, r0 + adds r1, r3 + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _0804431A + ldr r0, [r5, 0x70] + movs r1, 0xA4 + lsls r1, 1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08044328 +_0804431A: + movs r0, 0 + b _0804444E + .align 2, 0 +_08044320: .4byte gUnknown_80F6860 +_08044324: .4byte gUnknown_203B418 +_08044328: + bl sub_8083600 + adds r5, r0, 0 + cmp r5, 0 + beq _0804431A + movs r0, 0 + bl sub_807520C + lsls r0, 24 + cmp r0, 0 + bne _0804435C + ldr r0, _08044388 + ldr r1, [r0] + ldr r2, _0804438C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _08044356 + ldr r3, _08044390 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _0804435C +_08044356: + movs r0, 0xC + bl sub_803E46C +_0804435C: + ldr r0, [r5, 0x70] + adds r0, 0xF8 + movs r1, 0 + strb r1, [r0] + bl sub_8044B28 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _0804431A + ldr r0, _08044388 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0xB8 + str r5, [r0] + adds r1, 0xBC + str r2, [r1] + cmp r7, 0 + beq _08044394 + movs r7, 0 + b _0804439A + .align 2, 0 +_08044388: .4byte gUnknown_203B418 +_0804438C: .4byte 0x0000066c +_08044390: .4byte 0x00000673 +_08044394: + adds r0, r5, 0 + bl sub_8074B54 +_0804439A: + bl sub_8044B28 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0804431A + adds r0, r5, 0 + bl sub_8071DA4 + ldr r6, _08044434 + ldr r1, [r6] + movs r0, 0x1 + strb r0, [r1, 0xF] + bl sub_805D8C8 + ldr r0, [r6] + strb r4, [r0, 0xF] + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _0804444C + adds r0, r5, 0 + bl sub_8072CF4 + bl sub_8086AC0 + movs r0, 0 + bl sub_8043ED0 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _0804444C + ldr r2, [r5, 0x70] + ldrh r1, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _08044400 + subs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + movs r3, 0x80 + lsls r3, 7 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] +_08044400: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _0804444C + bl sub_8044454 + bl sub_8044B28 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0804444C + ldr r2, [r6] + adds r0, r2, 0 + adds r0, 0xBC + ldr r1, [r0] + cmp r1, 0 + beq _08044438 + bl sub_805F02C + ldr r0, [r6] + adds r0, 0xBC + str r4, [r0] + movs r7, 0x1 + b _08044328 + .align 2, 0 +_08044434: .4byte gUnknown_203B418 +_08044438: + ldr r0, [r5, 0x70] + adds r0, 0xF8 + ldrb r0, [r0] + cmp r0, 0 + beq _0804444C + movs r3, 0xCC + lsls r3, 3 + adds r0, r2, r3 + strh r1, [r0] + b _08044328 +_0804444C: + movs r0, 0x1 +_0804444E: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end xxx_dungeon_80442D0 + + thumb_func_start sub_8044454 +sub_8044454: + push {r4-r6,lr} + ldr r0, _080444E8 + ldr r1, [r0] + ldrb r0, [r1, 0xE] + cmp r0, 0 + beq _080444E2 + movs r0, 0 + strb r0, [r1, 0xE] + movs r6, 0 +_08044466: + ldr r0, _080444E8 + ldr r0, [r0] + lsls r1, r6, 2 + ldr r2, _080444EC + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080444DC + ldr r5, [r4, 0x70] + ldrh r0, [r5] + movs r2, 0x80 + lsls r2, 8 + adds r1, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080444DC + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _080444E2 + adds r0, r4, 0 + bl sub_8074B54 + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080444DC + adds r0, r4, 0 + bl sub_8071DA4 + adds r0, r4, 0 + movs r1, 0 + bl sub_8075990 + adds r0, r4, 0 + bl sub_8072CF4 + bl sub_8086AC0 + movs r0, 0 + bl sub_8043ED0 + ldrh r0, [r5] + ldr r2, _080444F0 + adds r1, r2, 0 + ands r0, r1 + movs r2, 0x80 + lsls r2, 7 + adds r1, r2, 0 + orrs r0, r1 + strh r0, [r5] +_080444DC: + adds r6, 0x1 + cmp r6, 0x13 + ble _08044466 +_080444E2: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080444E8: .4byte gUnknown_203B418 +_080444EC: .4byte 0x000135cc +_080444F0: .4byte 0x00007fff + thumb_func_end sub_8044454 + + thumb_func_start sub_80444F4 +sub_80444F4: + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_8083600 + cmp r6, r0 + bne _08044566 + ldr r0, _0804456C + ldr r1, [r0] + ldrb r0, [r1, 0xE] + cmp r0, 0 + beq _08044566 + movs r0, 0 + strb r0, [r1, 0xE] + movs r5, 0 +_08044510: + ldr r0, _0804456C + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _08044570 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08044560 + cmp r6, r4 + beq _08044560 + ldr r0, [r4, 0x70] + ldrh r0, [r0] + movs r2, 0x80 + lsls r2, 8 + adds r1, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _08044560 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _08044566 + adds r0, r4, 0 + movs r1, 0 + bl sub_8075990 + adds r0, r4, 0 + bl sub_8072CF4 + bl sub_8086AC0 + movs r0, 0 + bl sub_8043ED0 +_08044560: + adds r5, 0x1 + cmp r5, 0x13 + ble _08044510 +_08044566: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804456C: .4byte gUnknown_203B418 +_08044570: .4byte 0x000135cc + thumb_func_end sub_80444F4 + + thumb_func_start sub_8044574 +sub_8044574: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x44 + bl sub_8083600 + mov r10, r0 + movs r7, 0 + mov r0, sp + adds r0, 0x4 + str r0, [sp, 0x40] + ldr r1, _08044634 + mov r9, r1 +_08044592: + mov r2, r9 + ldr r0, [r2] + lsls r1, r7, 2 + ldr r3, _08044638 + adds r0, r3 + adds r0, r1 + ldr r5, [r0] + adds r0, r5, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080446A4 + ldr r6, [r5, 0x70] + mov r8, r6 + ldrb r0, [r6, 0x7] + cmp r0, 0 + bne _080446A4 + bl sub_8044B28 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080446AC + mov r1, r9 + ldr r0, [r1] + adds r0, 0xB8 + str r5, [r0] + bl sub_8069E8C + movs r2, 0xA2 + lsls r2, 1 + adds r0, r6, r2 + strb r4, [r0] + adds r0, r5, 0 + bl sub_8070774 + mov r3, r9 + ldr r1, [r3] + movs r2, 0xCC + lsls r2, 3 + adds r1, r2 + movs r3, 0 + ldrsh r1, [r1, r3] + lsls r1, 1 + movs r2, 0x32 + muls r0, r2 + adds r1, r0 + ldr r0, _0804463C + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080446A4 + movs r3, 0xA4 + lsls r3, 1 + adds r0, r6, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080446A4 + ldrh r1, [r6] + movs r2, 0x80 + lsls r2, 8 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080446A4 + movs r3, 0x80 + lsls r3, 7 + adds r0, r3, 0 + ands r0, r1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + beq _08044644 + ldr r2, _08044640 + adds r0, r2, 0 + ands r0, r1 + strh r0, [r6] + b _080446A4 + .align 2, 0 +_08044634: .4byte gUnknown_203B418 +_08044638: .4byte 0x0001357c +_0804463C: .4byte gUnknown_80F6860 +_08044640: .4byte 0x0000bfff +_08044644: + ldr r1, _08044668 + add r1, r8 + strb r0, [r1] + adds r0, r5, 0 + bl sub_8074B54 + adds r0, r5, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080446A4 + adds r0, r5, 0 + bl sub_8071DA4 + movs r4, 0 + b _0804466E + .align 2, 0 +_08044668: .4byte 0x00000145 +_0804466C: + adds r4, 0x1 +_0804466E: + cmp r4, 0x2 + bgt _080446A4 + adds r0, r5, 0 + movs r1, 0 + bl sub_8075990 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _080446A4 + adds r0, r5, 0 + bl sub_8072CF4 + lsls r0, 24 + cmp r0, 0 + beq _080446A4 + bl sub_8086AC0 + movs r0, 0 + bl sub_8043ED0 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _0804466C +_080446A4: + adds r7, 0x1 + cmp r7, 0x3 + bgt _080446AC + b _08044592 +_080446AC: + movs r0, 0 + mov r8, r0 +_080446B0: + adds r0, 0x1 + mov r9, r0 + add r2, sp, 0x8 + ldr r1, [sp, 0x40] + mov r0, sp + movs r7, 0x2 +_080446BC: + mov r3, r8 + str r3, [r0] + str r2, [r1] + adds r2, 0x8 + adds r1, 0x8 + adds r0, 0x8 + subs r7, 0x1 + cmp r7, 0 + bge _080446BC + str r3, [sp, 0x18] + str r3, [sp, 0x1C] + movs r7, 0 +_080446D4: + ldr r0, _08044710 + ldr r0, [r0] + lsls r1, r7, 2 + ldr r2, _08044714 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08044760 + ldr r1, [r4, 0x70] + movs r3, 0xA2 + lsls r3, 1 + adds r2, r1, r3 + ldrb r0, [r2] + cmp r0, 0 + beq _08044760 + ldrb r0, [r1, 0x7] + cmp r0, 0 + beq _08044718 + adds r3, 0x1 + adds r0, r1, r3 + mov r1, r8 + strb r1, [r0] + strb r1, [r2] + b _08044760 + .align 2, 0 +_08044710: .4byte gUnknown_203B418 +_08044714: .4byte 0x0001357c +_08044718: + mov r2, r10 + movs r3, 0x4 + ldrsh r1, [r2, r3] + movs r2, 0x4 + ldrsh r0, [r4, r2] + subs r2, r1, r0 + cmp r2, 0 + bge _0804472A + negs r2, r2 +_0804472A: + mov r3, r10 + movs r0, 0x6 + ldrsh r1, [r3, r0] + movs r3, 0x6 + ldrsh r0, [r4, r3] + subs r1, r0 + cmp r1, 0 + bge _0804473C + negs r1, r1 +_0804473C: + cmp r1, r2 + bge _08044742 + adds r1, r2, 0 +_08044742: + cmp r1, 0x2 + ble _08044748 + movs r1, 0x2 +_08044748: + add r3, sp, 0x20 + lsls r0, r7, 3 + adds r3, r0 + str r4, [r3] + add r2, sp, 0x24 + adds r2, r0 + lsls r1, 3 + ldr r0, [sp, 0x40] + adds r1, r0, r1 + ldr r0, [r1] + str r0, [r2] + str r3, [r1] +_08044760: + adds r7, 0x1 + cmp r7, 0x3 + ble _080446D4 + mov r5, sp + movs r6, 0 +_0804476A: + ldr r4, [r5] + cmp r4, 0 + beq _080447A0 + ldr r1, [r4, 0x70] + ldr r3, _08044814 + adds r2, r1, r3 + movs r0, 0x1 + strb r0, [r2] + movs r2, 0xA2 + lsls r2, 1 + adds r0, r1, r2 + strb r6, [r0] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8075990 + adds r0, r4, 0 + bl sub_8072CF4 + bl sub_8086AC0 + movs r0, 0 + bl sub_8043ED0 + adds r0, r4, 0 + bl sub_80450E0 +_080447A0: + ldr r5, [r5, 0x4] + cmp r5, 0 + bne _0804476A + mov r0, r9 + cmp r0, 0x2 + ble _080446B0 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _08044802 + movs r7, 0 +_080447B8: + ldr r0, _08044818 + ldr r0, [r0] + lsls r1, r7, 2 + ldr r3, _0804481C + adds r0, r3 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080447FC + ldr r0, [r4, 0x70] + movs r1, 0xA2 + lsls r1, 1 + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, 0 + beq _080447FC + adds r0, r4, 0 + bl sub_8074094 + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080447FC + adds r0, r4, 0 + bl sub_8071DA4 + movs r0, 0 + strb r0, [r5] +_080447FC: + adds r7, 0x1 + cmp r7, 0x3 + ble _080447B8 +_08044802: + add sp, 0x44 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08044814: .4byte 0x00000145 +_08044818: .4byte gUnknown_203B418 +_0804481C: .4byte 0x0001357c + thumb_func_end sub_8044574 + + thumb_func_start sub_8044820 +sub_8044820: + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r7, 0 + ldr r0, _08044830 + mov r8, r0 + b _080448FC + .align 2, 0 +_08044830: .4byte gUnknown_80F6860 +_08044834: + ldr r4, [r5, 0x70] + ldr r0, [r6] + adds r0, 0xB8 + str r5, [r0] + bl sub_8069E8C + ldrh r2, [r4] + movs r1, 0x80 + lsls r1, 8 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + bne _080448FA + movs r1, 0x80 + lsls r1, 7 + adds r0, r1, 0 + ands r0, r2 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _0804486C + ldr r1, _08044868 + adds r0, r1, 0 + ands r0, r2 + strh r0, [r4] + b _080448FA + .align 2, 0 +_08044868: .4byte 0x0000bfff +_0804486C: + movs r2, 0xA2 + lsls r2, 1 + adds r0, r4, r2 + strb r1, [r0] + adds r0, r5, 0 + bl sub_8070774 + ldr r1, [r6] + movs r2, 0xCC + lsls r2, 3 + adds r1, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + lsls r1, 1 + movs r2, 0x32 + muls r0, r2 + adds r1, r0 + add r1, r8 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080448FA + movs r1, 0xA4 + lsls r1, 1 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080448FA + ldrh r1, [r4] + ldr r2, _08044984 + adds r0, r2, 0 + ands r1, r0 + movs r0, 0 + strh r1, [r4] + ldr r2, _08044988 + adds r1, r4, r2 + strb r0, [r1] + adds r0, r5, 0 + bl sub_8074B54 + adds r0, r5, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080448FA + adds r0, r5, 0 + bl sub_8071DA4 + adds r0, r5, 0 + movs r1, 0 + bl sub_8075990 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _08044924 + adds r0, r5, 0 + bl sub_8072CF4 + bl sub_8086AC0 + movs r0, 0 + bl sub_8043ED0 + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _08044924 +_080448FA: + adds r7, 0x1 +_080448FC: + cmp r7, 0xF + bgt _08044924 + ldr r6, _0804498C + ldr r0, [r6] + lsls r1, r7, 2 + ldr r2, _08044990 + adds r0, r2 + adds r0, r1 + ldr r5, [r0] + adds r0, r5, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080448FA + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + beq _08044834 +_08044924: + bl sub_8044B28 + lsls r0, 24 + cmp r0, 0 + bne _0804497A + movs r7, 0 +_08044930: + ldr r0, _0804498C + ldr r0, [r0] + lsls r1, r7, 2 + ldr r2, _08044990 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08044974 + ldr r0, [r4, 0x70] + movs r1, 0xA2 + lsls r1, 1 + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, 0 + beq _08044974 + adds r0, r4, 0 + bl sub_8074094 + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08044974 + adds r0, r4, 0 + bl sub_8071DA4 + movs r0, 0 + strb r0, [r5] +_08044974: + adds r7, 0x1 + cmp r7, 0xF + ble _08044930 +_0804497A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08044984: .4byte 0x00003fff +_08044988: .4byte 0x00000145 +_0804498C: .4byte gUnknown_203B418 +_08044990: .4byte 0x0001358c + thumb_func_end sub_8044820 + + thumb_func_start sub_8044994 +sub_8044994: + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, _08044A94 + ldr r4, _08044A98 + ldr r0, [r4] + movs r2, 0xCC + lsls r2, 3 + adds r0, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + lsls r0, 1 + adds r1, 0x32 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _08044A8A + bl sub_8071B48 + ldr r0, [r4] + ldr r2, _08044A9C + adds r0, r2 + movs r2, 0 + strb r2, [r0] + ldr r0, [r4] + ldr r3, _08044AA0 + adds r0, r3 + strb r2, [r0] + ldr r0, [r4] + ldr r1, _08044AA4 + adds r0, r1 + strb r2, [r0] + ldr r0, [r4] + adds r3, 0x2 + adds r0, r3 + strb r2, [r0] + ldr r0, [r4] + ldr r3, _08044AA8 + adds r1, r0, r3 + str r2, [r1] + ldr r1, _08044AAC + adds r0, r1 + movs r1, 0x2 + str r1, [r0] + mov r8, r2 + adds r7, r4, 0 +_080449F2: + ldr r0, [r7] + mov r2, r8 + lsls r1, r2, 2 + ldr r3, _08044AB0 + adds r0, r3 + adds r0, r1 + ldr r5, [r0] + adds r0, r5, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08044A7A + ldr r0, [r5, 0x70] + adds r4, r0, 0 + movs r0, 0xA4 + lsls r0, 1 + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] + ldrb r0, [r4, 0x6] + movs r6, 0x1 + cmp r0, 0 + beq _08044A24 + movs r6, 0 +_08044A24: + adds r0, r5, 0 + movs r1, 0x32 + bl sub_8071824 + lsls r0, 24 + cmp r0, 0 + beq _08044A46 + ldr r1, [r7] + ldr r2, _08044AA8 + adds r0, r1, r2 + str r5, [r0] + ldr r3, _08044AAC + adds r1, r3 + adds r0, r4, 0 + adds r0, 0x98 + ldr r0, [r0] + str r0, [r1] +_08044A46: + adds r0, r5, 0 + movs r1, 0x3F + bl sub_8071824 + lsls r0, 24 + cmp r0, 0 + beq _08044A60 + ldr r0, [r7] + ldr r1, _08044AA4 + adds r0, r1 + adds r0, r6 + movs r1, 0x1 + strb r1, [r0] +_08044A60: + adds r0, r5, 0 + movs r1, 0x38 + bl sub_8071824 + lsls r0, 24 + cmp r0, 0 + beq _08044A7A + ldr r0, [r7] + ldr r2, _08044A9C + adds r0, r2 + adds r0, r6 + movs r1, 0x1 + strb r1, [r0] +_08044A7A: + movs r3, 0x1 + add r8, r3 + mov r0, r8 + cmp r0, 0x13 + ble _080449F2 + movs r0, 0 + bl sub_8043ED0 +_08044A8A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08044A94: .4byte gUnknown_80F6860 +_08044A98: .4byte gUnknown_203B418 +_08044A9C: .4byte 0x000037f8 +_08044AA0: .4byte 0x000037f9 +_08044AA4: .4byte 0x000037fa +_08044AA8: .4byte 0x00017b2c +_08044AAC: .4byte 0x00017b38 +_08044AB0: .4byte 0x000135cc + thumb_func_end sub_8044994 + + thumb_func_start sub_8044AB4 +sub_8044AB4: + push {r4,lr} + ldr r1, _08044ADC + ldr r0, _08044AE0 + ldr r0, [r0] + movs r2, 0xCC + lsls r2, 3 + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r0, 0x1 + lsls r0, 1 + adds r1, 0x32 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _08044B1A + movs r4, 0 + b _08044AE6 + .align 2, 0 +_08044ADC: .4byte gUnknown_80F6860 +_08044AE0: .4byte gUnknown_203B418 +_08044AE4: + adds r4, 0x1 +_08044AE6: + cmp r4, 0x13 + bgt _08044B08 + ldr r0, _08044B20 + ldr r0, [r0] + lsls r1, r4, 2 + ldr r2, _08044B24 + adds r0, r2 + adds r0, r1 + ldr r0, [r0] + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08044AE4 + movs r0, 0 + bl sub_807520C +_08044B08: + movs r0, 0x1 + movs r1, 0 + bl sub_807EAA0 + bl sub_8086AC0 + movs r0, 0 + bl sub_8043ED0 +_08044B1A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08044B20: .4byte gUnknown_203B418 +_08044B24: .4byte 0x000135cc + thumb_func_end sub_8044AB4 + + thumb_func_start sub_8044B28 +sub_8044B28: + push {r4,lr} + ldr r4, _08044B48 + ldr r0, [r4] + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _08044B76 + bl sub_8083600 + cmp r0, 0 + bne _08044B50 + ldr r0, [r4] + ldr r1, _08044B4C + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + b _08044B76 + .align 2, 0 +_08044B48: .4byte gUnknown_203B418 +_08044B4C: .4byte 0x00000654 +_08044B50: + ldr r0, [r4] + ldrb r2, [r0, 0x2] + cmp r2, 0x1 + bne _08044B68 + ldr r2, _08044B64 + adds r1, r0, r2 + movs r0, 0x2 + strb r0, [r1] + b _08044B76 + .align 2, 0 +_08044B64: .4byte 0x00000654 +_08044B68: + cmp r2, 0x2 + beq _08044B70 + movs r0, 0 + b _08044B78 +_08044B70: + ldr r1, _08044B80 + adds r0, r1 + strb r2, [r0] +_08044B76: + movs r0, 0x1 +_08044B78: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08044B80: .4byte 0x00000654 + thumb_func_end sub_8044B28 + + thumb_func_start sub_8044B84 +sub_8044B84: + push {lr} + ldr r0, _08044B9C + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0 + bne _08044BA0 + bl sub_8044B28 + lsls r0, 24 + lsrs r0, 24 + b _08044BA2 + .align 2, 0 +_08044B9C: .4byte gUnknown_203B418 +_08044BA0: + movs r0, 0x1 +_08044BA2: + pop {r1} + bx r1 + thumb_func_end sub_8044B84 + + thumb_func_start sub_8044BA8 +sub_8044BA8: + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r4, 0x26 + bne _08044BCC + bl sub_8043D10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08044BCC + ldr r0, _08044BC8 + b _08044C02 + .align 2, 0 +_08044BC8: .4byte gUnknown_80F91EC +_08044BCC: + ldr r1, _08044BEC + lsls r0, r4, 3 + adds r4, r0, r1 + ldr r0, [r4] + ldr r1, _08044BF0 + bl strcmp + cmp r0, 0 + beq _08044BE0 + movs r0, 0x1 +_08044BE0: + lsls r0, 24 + cmp r0, 0 + beq _08044BF4 + ldr r0, [r4] + b _08044C04 + .align 2, 0 +_08044BEC: .4byte gUnknown_80F7C50 +_08044BF0: .4byte gUnknown_80F697C +_08044BF4: + ldr r4, _08044C0C + adds r0, r5, 0 + bl sub_8090D6C + lsls r0, 3 + adds r4, 0x4 + adds r0, r4 +_08044C02: + ldr r0, [r0] +_08044C04: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08044C0C: .4byte gUnknown_80F7B14 + thumb_func_end sub_8044BA8 + + thumb_func_start sub_8044C10 +sub_8044C10: + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8083654 + adds r2, r0, 0 + adds r1, r2, 0 + adds r1, 0x44 + movs r3, 0 + movs r0, 0 + strh r0, [r1] + cmp r4, 0 + beq _08044C44 + adds r0, r2, 0 + adds r0, 0x48 + strb r3, [r0] + adds r0, 0x8 + strb r3, [r0] + adds r1, 0x14 + ldr r0, _08044C4C + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1 + negs r0, r0 + strh r0, [r1] +_08044C44: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08044C4C: .4byte 0x0000ffff + thumb_func_end sub_8044C10 + + thumb_func_start sub_8044C50 +sub_8044C50: + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_8083654 + adds r2, r0, 0 + adds r0, 0x44 + movs r1, 0 + strh r4, [r0] + adds r0, 0x4 + strb r1, [r0] + adds r0, 0x8 + strb r1, [r0] + adds r1, r2, 0 + adds r1, 0x58 + ldr r0, _08044C84 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1 + negs r0, r0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08044C84: .4byte 0x0000ffff + thumb_func_end sub_8044C50 + + thumb_func_start sub_8044C88 +sub_8044C88: + movs r2, 0 + movs r1, 0 + strh r1, [r0] + strb r2, [r0, 0x4] + strb r2, [r0, 0xC] + bx lr + thumb_func_end sub_8044C88 + + thumb_func_start sub_8044C94 +sub_8044C94: + movs r2, 0 + strh r1, [r0] + strb r2, [r0, 0x4] + strb r2, [r0, 0xC] + bx lr + thumb_func_end sub_8044C94 + + thumb_func_start sub_8044CA0 +sub_8044CA0: + push {r4,lr} + adds r4, r0, 0 + lsls r0, r1, 16 + asrs r0, 16 + bl sub_808DB48 + lsls r0, 24 + cmp r0, 0 + beq _08044CB6 + movs r0, 0x2 + b _08044CB8 +_08044CB6: + movs r0, 0x1 +_08044CB8: + strh r0, [r4] + movs r0, 0 + strb r0, [r4, 0x4] + strb r0, [r4, 0xC] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8044CA0 + + thumb_func_start sub_8044CC8 +sub_8044CC8: + push {lr} + adds r3, r0, 0 + adds r2, r1, 0 + ldrb r1, [r2] + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bhi _08044CEC + ldr r0, _08044CE8 + ldrb r1, [r2] + lsls r1, 2 + subs r1, 0x4 + ldr r0, [r0] + adds r0, r1 + b _08044D34 + .align 2, 0 +_08044CE8: .4byte gUnknown_203B460 +_08044CEC: + adds r0, r1, 0 + cmp r0, 0x80 + bne _08044D06 + movs r1, 0x4 + ldrsh r0, [r2, r1] + movs r3, 0x6 + ldrsh r1, [r2, r3] + bl sub_804954C + ldr r0, [r0, 0x14] + bl sub_8045108 + b _08044D34 +_08044D06: + cmp r0, 0x81 + bne _08044D0E + ldr r0, [r3, 0x70] + b _08044D32 +_08044D0E: + adds r0, r1, 0 + adds r0, 0x70 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _08044D1E + movs r0, 0 + b _08044D34 +_08044D1E: + ldr r0, _08044D38 + ldr r1, [r0] + ldrb r0, [r2] + subs r0, 0x90 + lsls r0, 2 + ldr r2, _08044D3C + adds r1, r2 + adds r1, r0 + ldr r0, [r1] + ldr r0, [r0, 0x70] +_08044D32: + adds r0, 0x60 +_08044D34: + pop {r1} + bx r1 + .align 2, 0 +_08044D38: .4byte gUnknown_203B418 +_08044D3C: .4byte 0x0001357c + thumb_func_end sub_8044CC8 + + thumb_func_start sub_8044D40 +sub_8044D40: + push {lr} + lsls r1, 3 + adds r1, 0x4 + adds r2, r0, r1 + ldrb r1, [r2] + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bhi _08044D74 + ldr r1, _08044D70 + ldrb r0, [r2] + lsls r0, 2 + subs r0, 0x4 + ldr r1, [r1] + adds r1, r0 + movs r0, 0 + strb r0, [r1, 0x2] + strb r0, [r1, 0x1] + strb r0, [r1] + bl sub_80910B4 + b _08044D88 + .align 2, 0 +_08044D70: .4byte gUnknown_203B460 +_08044D74: + lsls r0, r1, 24 + lsrs r0, 24 + cmp r0, 0x80 + beq _08044D80 + movs r0, 0 + b _08044D8A +_08044D80: + adds r0, r2, 0x4 + movs r1, 0x1 + bl sub_80461C8 +_08044D88: + movs r0, 0x1 +_08044D8A: + pop {r1} + bx r1 + thumb_func_end sub_8044D40 + + thumb_func_start sub_8044D90 +sub_8044D90: + push {lr} + ldr r3, [r0, 0x70] + lsls r1, 3 + adds r1, 0x48 + adds r3, r1 + adds r1, r3, 0 + bl sub_8044CC8 + pop {r1} + bx r1 + thumb_func_end sub_8044D90 + + thumb_func_start sub_8044DA4 +sub_8044DA4: + ldr r0, [r0, 0x70] + ldr r2, _08044DC0 + ldr r2, [r2] + lsls r1, 3 + adds r0, r1 + adds r0, 0x48 + ldrb r0, [r0] + lsls r0, 2 + ldr r1, _08044DC4 + adds r2, r1 + adds r2, r0 + ldr r0, [r2] + bx lr + .align 2, 0 +_08044DC0: .4byte gUnknown_203B418 +_08044DC4: .4byte 0x0001357c + thumb_func_end sub_8044DA4 + + thumb_func_start sub_8044DC8 +sub_8044DC8: + push {r4,lr} + adds r1, r0, 0 + ldrb r0, [r1, 0x2] + cmp r0, 0xE9 + beq _08044DE8 + ldr r4, _08044DE4 + bl sub_8090BD0 + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrh r0, [r0] + b _08044DEA + .align 2, 0 +_08044DE4: .4byte gUnknown_80F6964 +_08044DE8: + movs r0, 0x35 +_08044DEA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8044DC8 + + thumb_func_start sub_8044DF0 +sub_8044DF0: + push {r4,lr} + ldr r4, [r0, 0x70] + bl sub_8044D90 + adds r1, r0, 0 + adds r0, r4, 0 + adds r0, 0x48 + ldrb r0, [r0] + cmp r0, 0x80 + bne _08044E10 + adds r0, r4, 0 + adds r0, 0x4C + movs r1, 0x1 + bl sub_80461C8 + b _08044E1C +_08044E10: + movs r0, 0 + strb r0, [r1, 0x2] + strb r0, [r1, 0x1] + strb r0, [r1] + bl sub_80910B4 +_08044E1C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8044DF0 + + thumb_func_start sub_8044E24 +sub_8044E24: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r4, r0, 0 + adds r6, r1, 0 + adds r7, r2, 0 + bl sub_8044D90 + adds r5, r0, 0 + ldr r0, [r4, 0x70] + mov r8, r0 + ldrb r0, [r5, 0x2] + bl sub_80915A0 + lsls r0, 24 + cmp r0, 0 + bne _08044EBA + ldrb r0, [r5, 0x2] + bl sub_8090BD0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bne _08044EB0 + lsls r1, r6, 3 + mov r2, r8 + adds r0, r2, r1 + adds r0, 0x48 + ldrb r0, [r0] + cmp r0, 0x80 + bne _08044EA4 + ldr r0, [r5] + str r0, [sp] + adds r4, r1, r2 + adds r4, 0x4C + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80461C8 + ldrb r1, [r5, 0x2] + subs r1, 0x7D + lsls r1, 24 + lsrs r1, 16 + ldr r2, _08044E9C + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + ldr r1, _08044EA0 + ands r0, r1 + movs r1, 0xF8 + lsls r1, 15 + orrs r0, r1 + str r0, [sp] + adds r0, r4, 0 + mov r1, sp + movs r2, 0x1 + bl sub_80460F8 + b _08044EBA + .align 2, 0 +_08044E9C: .4byte 0xffff00ff +_08044EA0: .4byte 0xff00ffff +_08044EA4: + ldrb r0, [r5, 0x2] + subs r0, 0x7D + strb r0, [r5, 0x1] + movs r0, 0x7C + strb r0, [r5, 0x2] + b _08044EBA +_08044EB0: + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r7, 0 + bl sub_8044DF0 +_08044EBA: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8044E24 + + thumb_func_start sub_8044EC8 +sub_8044EC8: + push {r4,r5,lr} + adds r5, r0, 0 + ldr r1, _08044EE8 + lsls r0, r5, 2 + adds r0, r1 + ldrh r4, [r0] + cmp r4, 0x26 + bne _08044EF0 + bl sub_8043D10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08044EF0 + ldr r0, _08044EEC + b _08044F2C + .align 2, 0 +_08044EE8: .4byte gUnknown_202EE44 +_08044EEC: .4byte gUnknown_80F91EC +_08044EF0: + ldr r1, _08044F10 + lsls r0, r4, 3 + adds r4, r0, r1 + ldr r0, [r4] + ldr r1, _08044F14 + bl strcmp + cmp r0, 0 + beq _08044F04 + movs r0, 0x1 +_08044F04: + lsls r0, 24 + cmp r0, 0 + beq _08044F18 + ldr r0, [r4] + b _08044F2E + .align 2, 0 +_08044F10: .4byte gUnknown_80F7C50 +_08044F14: .4byte gUnknown_80F697C +_08044F18: + ldr r4, _08044F34 + ldr r1, _08044F38 + lsls r0, r5, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + bl sub_8090D6C + lsls r0, 3 + adds r4, 0x4 + adds r0, r4 +_08044F2C: + ldr r0, [r0] +_08044F2E: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08044F34: .4byte gUnknown_80F7B14 +_08044F38: .4byte gUnknown_202EE44 + thumb_func_end sub_8044EC8 + + thumb_func_start sub_8044F3C +sub_8044F3C: + push {lr} + adds r1, r0, 0 + cmp r1, 0 + blt _08044F54 + ldr r0, _08044F50 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x3] + b _08044F56 + .align 2, 0 +_08044F50: .4byte gUnknown_202EE44 +_08044F54: + movs r0, 0 +_08044F56: + pop {r1} + bx r1 + thumb_func_end sub_8044F3C + + thumb_func_start sub_8044F5C +sub_8044F5C: + push {r4-r7,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r0, _08044FAC + ldr r2, [r0] + adds r6, r0, 0 + cmp r2, 0x9 + bgt _08044FA4 + movs r3, 0 + ldr r5, _08044FB0 + cmp r3, r2 + bge _08044F8A + adds r1, r2, 0 + adds r2, r5, 0 +_08044F7C: + ldrh r0, [r2] + cmp r0, r4 + beq _08044FA4 + adds r2, 0x4 + adds r3, 0x1 + cmp r3, r1 + blt _08044F7C +_08044F8A: + ldr r0, [r6] + lsls r0, 2 + adds r0, r5 + strh r4, [r0] + strb r7, [r0, 0x2] + ldr r0, [r6] + lsls r0, 2 + adds r0, r5 + movs r1, 0x1 + strb r1, [r0, 0x3] + ldr r0, [r6] + adds r0, 0x1 + str r0, [r6] +_08044FA4: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08044FAC: .4byte gUnknown_202EE6C +_08044FB0: .4byte gUnknown_202EE44 + thumb_func_end sub_8044F5C + + thumb_func_start sub_8044FB4 +sub_8044FB4: + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + movs r1, 0 + ldr r0, _08044FD4 + ldr r0, [r0] + cmp r1, r0 + bge _08044FE4 + adds r3, r0, 0 + ldr r2, _08044FD8 +_08044FC8: + ldrh r0, [r2] + cmp r0, r4 + bne _08044FDC + adds r0, r1, 0 + b _08044FE8 + .align 2, 0 +_08044FD4: .4byte gUnknown_202EE6C +_08044FD8: .4byte gUnknown_202EE44 +_08044FDC: + adds r2, 0x4 + adds r1, 0x1 + cmp r1, r3 + blt _08044FC8 +_08044FE4: + movs r0, 0x1 + negs r0, r0 +_08044FE8: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8044FB4 + + thumb_func_start sub_8044FF0 +sub_8044FF0: + push {r4,r5,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r1, _08045010 + ldr r0, [r1] + cmp r2, r0 + bge _08045022 + movs r5, 0 + adds r4, r1, 0 + ldr r1, _08045014 +_08045006: + ldrh r0, [r1] + cmp r0, r3 + bne _08045018 + strb r5, [r1, 0x3] + b _08045022 + .align 2, 0 +_08045010: .4byte gUnknown_202EE6C +_08045014: .4byte gUnknown_202EE44 +_08045018: + adds r1, 0x4 + adds r2, 0x1 + ldr r0, [r4] + cmp r2, r0 + blt _08045006 +_08045022: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8044FF0 + + thumb_func_start sub_8045028 +sub_8045028: + push {r4,lr} + adds r2, r0, 0 + lsls r1, 24 + ldr r0, [r2, 0x70] + adds r4, r0, 0 + adds r4, 0x44 + cmp r1, 0 + beq _08045044 + adds r0, r2, 0 + bl sub_8045888 + lsls r0, 24 + cmp r0, 0 + beq _0804505A +_08045044: + ldrh r0, [r4] + cmp r0, 0 + beq _0804505A + cmp r0, 0x2 + beq _0804505A + cmp r0, 0x1 + beq _0804505A + cmp r0, 0x5 + beq _0804505A + movs r0, 0 + b _0804505C +_0804505A: + movs r0, 0x1 +_0804505C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8045028 + + thumb_func_start sub_8045064 +sub_8045064: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r1, 0 + ldr r0, _080450D4 + mov r8, r0 + ldr r0, [r0] + cmp r1, r0 + bge _080450C8 + mov r7, r8 + ldr r2, _080450D8 + mov r9, r2 + ldr r0, _080450DC + mov r12, r0 +_08045082: + adds r4, r1, 0x1 + ldr r0, [r7] + adds r5, r4, 0 + cmp r5, r0 + bge _080450BE + lsls r0, r1, 2 + mov r1, r12 + adds r3, r0, r1 + mov r6, r9 + lsls r0, r5, 2 + adds r2, r0, r1 +_08045098: + ldrh r1, [r3] + lsls r1, 3 + adds r1, r6 + ldrh r0, [r2] + lsls r0, 3 + adds r0, r6 + ldr r1, [r1] + ldr r0, [r0] + cmp r1, r0 + ble _080450B4 + ldr r1, [r3] + ldr r0, [r2] + str r0, [r3] + str r1, [r2] +_080450B4: + adds r2, 0x4 + adds r4, 0x1 + ldr r0, [r7] + cmp r4, r0 + blt _08045098 +_080450BE: + adds r1, r5, 0 + mov r2, r8 + ldr r0, [r2] + cmp r1, r0 + blt _08045082 +_080450C8: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080450D4: .4byte gUnknown_202EE6C +_080450D8: .4byte gUnknown_80F7C54 +_080450DC: .4byte gUnknown_202EE44 + thumb_func_end sub_8045064 + + thumb_func_start sub_80450E0 +sub_80450E0: + push {lr} + cmp r0, 0 + bne _080450EA + movs r0, 0 + b _080450F2 +_080450EA: + ldr r0, [r0] + cmp r0, 0 + beq _080450F2 + movs r0, 0x1 +_080450F2: + pop {r1} + bx r1 + thumb_func_end sub_80450E0 + + thumb_func_start sub_80450F8 +sub_80450F8: + ldr r0, [r0] + bx lr + thumb_func_end sub_80450F8 + + thumb_func_start sub_80450FC +sub_80450FC: + adds r0, 0x25 + ldrb r0, [r0] + bx lr + thumb_func_end sub_80450FC + + thumb_func_start sub_8045104 +sub_8045104: + ldr r0, [r0, 0x70] + bx lr + thumb_func_end sub_8045104 + + thumb_func_start sub_8045108 +sub_8045108: + ldr r0, [r0, 0x70] + bx lr + thumb_func_end sub_8045108 + + thumb_func_start sub_804510C +sub_804510C: + ldr r0, [r0, 0x70] + bx lr + thumb_func_end sub_804510C + + thumb_func_start sub_8045110 +sub_8045110: + ldr r0, [r0, 0x70] + bx lr + thumb_func_end sub_8045110 + + thumb_func_start sub_8045114 +sub_8045114: + push {lr} + movs r1, 0x4 + ldrsh r2, [r0, r1] + movs r3, 0x6 + ldrsh r1, [r0, r3] + adds r0, r2, 0 + bl sub_804954C + pop {r1} + bx r1 + thumb_func_end sub_8045114 + + thumb_func_start sub_8045128 +sub_8045128: + push {lr} + movs r1, 0x4 + ldrsh r2, [r0, r1] + movs r3, 0x6 + ldrsh r1, [r0, r3] + adds r0, r2, 0 + bl sub_8049590 + pop {r1} + bx r1 + thumb_func_end sub_8045128 + + thumb_func_start sub_804513C +sub_804513C: + push {r4-r7,lr} + movs r3, 0 + ldr r7, _080451FC + ldr r6, _08045200 + ldr r4, _08045204 + movs r5, 0 +_08045148: + ldr r0, [r7] + lsls r2, r3, 2 + adds r1, r0, r6 + adds r1, r2 + adds r0, r4 + str r0, [r1] + str r5, [r0] + adds r4, 0x74 + adds r3, 0x1 + cmp r3, 0x3 + ble _08045148 + ldr r1, _08045208 + movs r2, 0 + adds r0, r1, 0x5 +_08045164: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _08045164 + movs r3, 0 + ldr r7, _080451FC + ldr r6, _0804520C + ldr r4, _08045210 + movs r5, 0 +_08045176: + ldr r0, [r7] + lsls r2, r3, 2 + adds r1, r0, r6 + adds r1, r2 + adds r0, r4 + str r0, [r1] + str r5, [r0] + adds r4, 0x74 + adds r3, 0x1 + cmp r3, 0xF + ble _08045176 + ldr r1, _08045214 + movs r2, 0 + adds r0, r1, 0 + adds r0, 0xF +_08045194: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _08045194 + movs r3, 0 + ldr r5, _080451FC + ldr r4, _08045218 + movs r2, 0 +_080451A4: + ldr r0, [r5] + lsls r1, r3, 2 + adds r0, r4 + adds r0, r1 + str r2, [r0] + adds r3, 0x1 + cmp r3, 0x13 + ble _080451A4 + movs r3, 0 + ldr r7, _080451FC + ldr r6, _0804521C + ldr r4, _08045220 + movs r5, 0 +_080451BE: + ldr r0, [r7] + lsls r2, r3, 2 + adds r1, r0, r6 + adds r1, r2 + adds r0, r4 + str r0, [r1] + str r5, [r0] + adds r4, 0x74 + adds r3, 0x1 + cmp r3, 0x3F + ble _080451BE + movs r3, 0 + ldr r7, _080451FC + ldr r6, _08045224 + ldr r4, _08045228 + movs r5, 0 +_080451DE: + ldr r0, [r7] + lsls r2, r3, 2 + adds r1, r0, r6 + adds r1, r2 + adds r0, r4 + str r0, [r1] + str r5, [r0] + adds r4, 0x74 + adds r3, 0x1 + cmp r3, 0x3F + ble _080451DE + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080451FC: .4byte gUnknown_203B418 +_08045200: .4byte 0x0001357c +_08045204: .4byte 0x0001381c +_08045208: .4byte gUnknown_202EE70 +_0804520C: .4byte 0x0001358c +_08045210: .4byte 0x000139ec +_08045214: .4byte gUnknown_202EE76 +_08045218: .4byte 0x000135cc +_0804521C: .4byte 0x0001361c +_08045220: .4byte 0x0001412c +_08045224: .4byte 0x0001371c +_08045228: .4byte 0x00015e2c + thumb_func_end sub_804513C + + thumb_func_start sub_804522C +sub_804522C: + push {r4-r7,lr} + sub sp, 0x4 + ldr r2, _08045274 + ldr r0, [r2] + ldr r3, _08045278 + adds r1, r0, r3 + ldrb r7, [r1] + ldr r1, _0804527C + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080452AA + movs r6, 0 + adds r7, r2, 0 +_08045248: + ldr r0, [r7] + lsls r1, r6, 2 + ldr r2, _08045280 + adds r0, r2 + adds r0, r1 + ldr r5, [r0] + adds r0, r5, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080452A2 + ldr r0, [r7] + ldr r3, _08045284 + adds r0, r3 + ldr r0, [r0] + cmp r5, r0 + bne _08045288 + adds r0, r5, 0 + bl sub_806C51C + b _080452A2 + .align 2, 0 +_08045274: .4byte gUnknown_203B418 +_08045278: .4byte 0x00018210 +_0804527C: .4byte 0x0001820a +_08045280: .4byte 0x000135cc +_08045284: .4byte 0x000181f8 +_08045288: + ldr r4, [r5, 0x70] + adds r0, r5, 0 + bl sub_804187C + adds r2, r0, 0 + adds r0, r4, 0 + adds r0, 0x98 + ldr r0, [r0] + movs r3, 0x4 + ldrsh r1, [r4, r3] + movs r3, 0 + bl sub_800F75C +_080452A2: + adds r6, 0x1 + cmp r6, 0x13 + ble _08045248 + b _0804533E +_080452AA: + movs r6, 0 +_080452AC: + ldr r0, _08045348 + ldr r0, [r0] + lsls r1, r6, 2 + ldr r2, _0804534C + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080452CC + adds r0, r4, 0 + bl sub_806C51C +_080452CC: + adds r6, 0x1 + cmp r6, 0x3 + ble _080452AC + movs r6, 0 +_080452D4: + ldr r5, _08045348 + ldr r0, [r5] + lsls r1, r6, 2 + ldr r3, _08045350 + adds r0, r3 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080452F4 + adds r0, r4, 0 + bl sub_806C51C +_080452F4: + adds r6, 0x1 + cmp r6, 0xF + ble _080452D4 + movs r6, 0 + ldr r0, [r5] + ldr r1, _08045354 + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r6, r0 + bge _08045336 + adds r4, r5, 0 +_0804530C: + ldr r0, [r4] + lsls r1, r6, 2 + ldr r3, _08045358 + adds r0, r3 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + str r1, [sp] + adds r1, r7, 0 + movs r2, 0x1 + movs r3, 0xFF + bl sub_80462AC + adds r6, 0x1 + ldr r0, [r4] + ldr r1, _08045354 + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r6, r0 + blt _0804530C +_08045336: + cmp r7, 0 + beq _0804533E + bl sub_807FA9C +_0804533E: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08045348: .4byte gUnknown_203B418 +_0804534C: .4byte 0x0001357c +_08045350: .4byte 0x0001358c +_08045354: .4byte 0x00003904 +_08045358: .4byte 0x0001361c + thumb_func_end sub_804522C + + thumb_func_start sub_804535C +sub_804535C: + push {lr} + adds r2, r0, 0 + cmp r1, 0 + beq _0804536C + ldr r0, [r1] + str r0, [r2, 0xC] + ldr r0, [r1, 0x4] + b _0804538E +_0804536C: + movs r0, 0x4 + ldrsh r1, [r2, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + movs r1, 0xC0 + lsls r1, 4 + adds r0, r1 + str r0, [r2, 0xC] + movs r0, 0x6 + ldrsh r1, [r2, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + movs r1, 0x80 + lsls r1, 5 + adds r0, r1 +_0804538E: + str r0, [r2, 0x10] + pop {r0} + bx r0 + thumb_func_end sub_804535C + + thumb_func_start sub_8045394 +sub_8045394: + str r1, [r0, 0xC] + str r2, [r0, 0x10] + bx lr + thumb_func_end sub_8045394 + + thumb_func_start sub_804539C +sub_804539C: + ldr r3, [r0, 0xC] + adds r3, r1 + str r3, [r0, 0xC] + ldr r1, [r0, 0x10] + adds r1, r2 + str r1, [r0, 0x10] + bx lr + thumb_func_end sub_804539C + + thumb_func_start sub_80453AC +sub_80453AC: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + asrs r0, 16 + mov r8, r0 + movs r0, 0x1 + negs r0, r0 + mov r9, r0 + mov r0, r8 + bl sub_808DACC + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + movs r0, 0x6 + subs r3, r0, r6 + ldr r4, _080453D8 + b _080453DE + .align 2, 0 +_080453D8: .4byte gUnknown_202EE70 +_080453DC: + adds r5, 0x1 +_080453DE: + cmp r5, r3 + bgt _08045400 + movs r2, 0 + cmp r2, r6 + bge _080453FA + adds r1, r5, r4 + b _080453F4 +_080453EC: + adds r1, 0x1 + adds r2, 0x1 + cmp r2, r6 + bge _080453FA +_080453F4: + ldrb r0, [r1] + cmp r0, 0 + beq _080453EC +_080453FA: + cmp r2, r6 + bne _080453DC + mov r9, r5 +_08045400: + movs r0, 0x1 + negs r0, r0 + cmp r9, r0 + beq _080454FC + movs r5, 0 + ldr r7, _080454DC +_0804540C: + ldr r1, _080454E0 + ldr r0, [r1] + lsls r1, r5, 2 + ldr r2, _080454E4 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + cmp r0, 0 + bne _080454F0 + movs r0, 0x1 + str r0, [r4] + adds r0, r4, 0 + adds r0, 0x24 + strb r5, [r0] + ldr r1, _080454E0 + ldr r0, [r1] + adds r0, r7 + str r0, [r4, 0x70] + mov r2, r8 + strh r2, [r0, 0x2] + movs r0, 0 + mov r1, r8 + bl sub_8069F54 + ldr r1, [r4, 0x70] + strh r0, [r1, 0x4] + ldr r0, [r4, 0x70] + movs r5, 0 + strb r5, [r0, 0x6] + movs r0, 0 + mov r1, r8 + bl sub_8069F54 + lsls r0, 16 + asrs r0, 16 + bl sub_80687D0 + str r0, [r4, 0x64] + mov r1, r9 + lsls r0, r1, 4 + adds r0, 0x40 + adds r1, r4, 0 + adds r1, 0x68 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x7 + strb r0, [r1] + adds r0, r4, 0 + adds r0, 0x6C + movs r2, 0 + strb r2, [r0] + adds r1, 0x1 + movs r0, 0xFF + strb r0, [r1] + adds r0, r4, 0 + adds r0, 0x6D + movs r5, 0x1 + strb r5, [r0] + adds r0, 0x2 + strb r5, [r0] + mov r0, r10 + str r0, [r4, 0x1C] + bl sub_8045ACC + ldr r0, [r4, 0x70] + ldr r1, _080454E8 + adds r0, r1 + mov r2, r9 + strb r2, [r0] + ldr r0, [r4, 0x70] + movs r5, 0xB4 + lsls r5, 1 + adds r0, r5 + strb r6, [r0] + cmp r6, 0 + beq _080454C6 + ldr r3, _080454EC + movs r2, 0x1 + adds r1, r6, 0 +_080454B6: + mov r5, r9 + adds r0, r5, r3 + strb r2, [r0] + movs r0, 0x1 + add r9, r0 + subs r1, 0x1 + cmp r1, 0 + bne _080454B6 +_080454C6: + ldr r1, _080454E0 + ldr r0, [r1] + movs r2, 0xCD + lsls r2, 3 + adds r0, r2 + ldrh r2, [r0] + adds r1, r2, 0x1 + strh r1, [r0] + strh r2, [r4, 0x26] + adds r0, r4, 0 + b _080454FE + .align 2, 0 +_080454DC: .4byte 0x0000069c +_080454E0: .4byte gUnknown_203B418 +_080454E4: .4byte 0x0001357c +_080454E8: .4byte 0x00000167 +_080454EC: .4byte gUnknown_202EE70 +_080454F0: + movs r0, 0x82 + lsls r0, 2 + adds r7, r0 + adds r5, 0x1 + cmp r5, 0x3 + ble _0804540C +_080454FC: + movs r0, 0 +_080454FE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80453AC + + thumb_func_start sub_804550C +sub_804550C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 16 + asrs r0, 16 + mov r8, r0 + movs r0, 0x1 + negs r0, r0 + mov r9, r0 + mov r0, r8 + bl sub_808DACC + lsls r0, 24 + lsrs r7, r0, 24 + movs r5, 0 + movs r0, 0x10 + subs r3, r0, r7 + ldr r4, _08045538 + b _0804553E + .align 2, 0 +_08045538: .4byte gUnknown_202EE76 +_0804553C: + adds r5, 0x1 +_0804553E: + cmp r5, r3 + bgt _08045560 + movs r2, 0 + cmp r2, r7 + bge _0804555A + adds r1, r5, r4 + b _08045554 +_0804554C: + adds r1, 0x1 + adds r2, 0x1 + cmp r2, r7 + bge _0804555A +_08045554: + ldrb r0, [r1] + cmp r0, 0 + beq _0804554C +_0804555A: + cmp r2, r7 + bne _0804553C + mov r9, r5 +_08045560: + movs r0, 0x1 + negs r0, r0 + cmp r9, r0 + bne _0804556A + b _08045670 +_0804556A: + movs r5, 0 + movs r1, 0x1 + mov r10, r1 + ldr r2, _08045650 + mov r3, r9 + lsls r0, r3, 4 + adds r0, 0xA0 + str r0, [sp] +_0804557A: + ldr r1, _08045654 + ldr r0, [r1] + lsls r1, r5, 2 + ldr r3, _08045658 + adds r0, r3 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + str r2, [sp, 0x4] + bl sub_80450E0 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, [sp, 0x4] + cmp r6, 0 + bne _08045664 + mov r0, r10 + str r0, [r4] + adds r0, r4, 0 + adds r0, 0x24 + strb r5, [r0] + subs r0, 0x2 + strb r6, [r0] + ldr r1, _08045654 + ldr r0, [r1] + adds r0, r2 + str r0, [r4, 0x70] + mov r2, r8 + strh r2, [r0, 0x2] + movs r0, 0 + mov r1, r8 + bl sub_8069F54 + ldr r1, [r4, 0x70] + strh r0, [r1, 0x4] + ldr r0, [r4, 0x70] + mov r3, r10 + strb r3, [r0, 0x6] + movs r0, 0 + mov r1, r8 + bl sub_8069F54 + lsls r0, 16 + asrs r0, 16 + bl sub_80687D0 + str r0, [r4, 0x64] + adds r0, r4, 0 + adds r0, 0x68 + mov r5, sp + ldrh r5, [r5] + strh r5, [r0] + adds r1, r4, 0 + adds r1, 0x6A + movs r0, 0x7 + strb r0, [r1] + adds r0, r4, 0 + adds r0, 0x6C + movs r1, 0 + strb r1, [r0] + adds r1, r4, 0 + adds r1, 0x6B + movs r0, 0xFF + strb r0, [r1] + adds r0, r4, 0 + adds r0, 0x6D + mov r2, r10 + strb r2, [r0] + adds r0, 0x2 + strb r2, [r0] + str r6, [r4, 0x1C] + ldr r0, [r4, 0x70] + ldr r3, _0804565C + adds r0, r3 + mov r5, r9 + strb r5, [r0] + ldr r0, [r4, 0x70] + movs r1, 0xB4 + lsls r1, 1 + adds r0, r1 + strb r7, [r0] + cmp r7, 0 + beq _08045636 + ldr r3, _08045660 + movs r2, 0x1 + adds r1, r7, 0 +_08045626: + mov r5, r9 + adds r0, r5, r3 + strb r2, [r0] + movs r0, 0x1 + add r9, r0 + subs r1, 0x1 + cmp r1, 0 + bne _08045626 +_08045636: + bl sub_8045ACC + ldr r1, _08045654 + ldr r0, [r1] + movs r2, 0xCD + lsls r2, 3 + adds r0, r2 + ldrh r2, [r0] + adds r1, r2, 0x1 + strh r1, [r0] + strh r2, [r4, 0x26] + adds r0, r4, 0 + b _08045672 + .align 2, 0 +_08045650: .4byte 0x00000ebc +_08045654: .4byte gUnknown_203B418 +_08045658: .4byte 0x0001358c +_0804565C: .4byte 0x00000167 +_08045660: .4byte gUnknown_202EE76 +_08045664: + movs r3, 0x82 + lsls r3, 2 + adds r2, r3 + adds r5, 0x1 + cmp r5, 0xF + ble _0804557A +_08045670: + movs r0, 0 +_08045672: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_804550C + + thumb_func_start sub_8045684 +sub_8045684: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + movs r5, 0 + ldr r7, _080456E4 + ldr r6, _080456E8 +_080456A2: + ldr r0, [r7] + lsls r1, r5, 2 + ldr r2, _080456EC + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080456F0 + movs r0, 0x2 + str r0, [r4] + ldr r0, [r7] + adds r0, r6 + str r0, [r4, 0x70] + mov r2, r8 + strb r2, [r0] + ldr r0, [r4, 0x70] + mov r2, r9 + strb r2, [r0, 0x1] + str r1, [r4, 0x1C] + adds r0, r4, 0 + adds r0, 0x22 + strb r1, [r0] + mov r2, r10 + ldr r0, [r2] + str r0, [r4, 0x4] + strh r1, [r4, 0x26] + adds r0, r4, 0 + b _080456FA + .align 2, 0 +_080456E4: .4byte gUnknown_203B418 +_080456E8: .4byte 0x00003908 +_080456EC: .4byte 0x0001371c +_080456F0: + adds r6, 0x4 + adds r5, 0x1 + cmp r5, 0x3F + ble _080456A2 + movs r0, 0 +_080456FA: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8045684 + + thumb_func_start sub_8045708 +sub_8045708: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r0 + ldr r1, _08045744 + ldr r0, _08045748 + ldr r0, [r0] + ldr r2, _0804574C + adds r0, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0804579C + mov r1, r8 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r3, 0x2 + ldrsh r1, [r1, r3] + bl sub_8049590 + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + bne _0804579C + b _080457C4 + .align 2, 0 +_08045744: .4byte gUnknown_810ACC0 +_08045748: .4byte gUnknown_203B418 +_0804574C: .4byte 0x00003a0e +_08045750: + movs r0, 0x3 + str r0, [r4] + ldr r0, _08045798 + adds r1, r6, r0 + mov r2, r9 + ldr r0, [r2] + adds r0, r1 + str r0, [r4, 0x70] + mov r3, r8 + ldr r0, [r3] + str r0, [r4, 0x4] + movs r1, 0 + ldrsh r0, [r3, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, 0x4 + lsls r1, 8 + movs r2, 0x2 + ldrsh r0, [r3, r2] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 3 + adds r2, 0x4 + lsls r2, 8 + adds r0, r4, 0 + bl sub_8045394 + movs r0, 0 + strh r7, [r4, 0x26] + adds r1, r4, 0 + adds r1, 0x22 + strb r0, [r1] + str r7, [r4, 0x1C] + adds r0, r4, 0 + b _080457C6 + .align 2, 0 +_08045798: .4byte 0x00003804 +_0804579C: + movs r5, 0 + ldr r3, _080457D4 + mov r9, r3 +_080457A2: + mov r1, r9 + ldr r0, [r1] + lsls r6, r5, 2 + ldr r2, _080457D8 + adds r0, r2 + adds r0, r6 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0 + beq _08045750 + adds r5, 0x1 + cmp r5, 0x3F + ble _080457A2 +_080457C4: + movs r0, 0 +_080457C6: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080457D4: .4byte gUnknown_203B418 +_080457D8: .4byte 0x0001361c + thumb_func_end sub_8045708 + + thumb_func_start sub_80457DC +sub_80457DC: + push {r4-r6,lr} + adds r4, r0, 0 + movs r0, 0x5 + str r0, [r4] + movs r6, 0 + movs r5, 0 + strh r5, [r4, 0x4] + strh r5, [r4, 0x6] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl sub_8045394 + strh r5, [r4, 0x26] + adds r4, 0x22 + strb r6, [r4] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80457DC + + thumb_func_start sub_8045804 +sub_8045804: + push {r4-r6,lr} + adds r4, r0, 0 + bl sub_80450F8 + cmp r0, 0x1 + beq _0804581C + cmp r0, 0x1 + bcc _08045880 + cmp r0, 0x5 + beq _08045880 +_08045818: + movs r0, 0x1 + b _08045882 +_0804581C: + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _08045880 + ldr r0, _08045874 + ldr r1, [r0] + ldr r0, _08045878 + adds r2, r1, r0 + ldr r5, [r2, 0x10] + ldr r3, [r4, 0x70] + ldrb r0, [r3, 0x6] + cmp r0, 0 + beq _08045818 + ldr r6, _0804587C + adds r0, r1, r6 + ldrb r0, [r0] + cmp r0, 0 + bne _0804584C + adds r0, r3, 0 + adds r0, 0xE4 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08045880 +_0804584C: + adds r0, r2, 0 + adds r0, 0x23 + ldrb r0, [r0] + cmp r0, 0 + bne _08045818 + adds r0, r2, 0 + adds r0, 0x25 + ldrb r0, [r0] + cmp r0, 0 + bne _08045818 + cmp r5, 0 + beq _08045880 + adds r1, r4, 0x4 + adds r0, r2, 0 + bl sub_8083294 + lsls r0, 24 + lsrs r0, 24 + b _08045882 + .align 2, 0 +_08045874: .4byte gUnknown_203B418 +_08045878: .4byte 0x000181e8 +_0804587C: .4byte 0x0001820f +_08045880: + movs r0, 0 +_08045882: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8045804 + + thumb_func_start sub_8045888 +sub_8045888: + push {r4,r5,lr} + adds r4, r0, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _08045988 + ldr r1, [r4, 0xC] + cmp r1, 0 + bge _0804589C + adds r1, 0xFF +_0804589C: + asrs r1, 8 + ldr r0, _080458F0 + ldr r2, [r0] + ldr r3, _080458F4 + adds r0, r2, r3 + movs r5, 0 + ldrsh r0, [r0, r5] + subs r3, r1, r0 + ldr r0, [r4, 0x10] + cmp r0, 0 + bge _080458B4 + adds r0, 0xFF +_080458B4: + asrs r0, 8 + ldr r5, _080458F8 + adds r1, r2, r5 + movs r5, 0 + ldrsh r1, [r1, r5] + subs r1, r0, r1 + movs r0, 0x20 + negs r0, r0 + cmp r3, r0 + blt _08045988 + cmp r1, r0 + blt _08045988 + movs r0, 0x88 + lsls r0, 1 + cmp r3, r0 + bgt _08045988 + cmp r1, 0xC0 + bgt _08045988 + ldr r0, _080458FC + adds r5, r2, r0 + adds r0, r4, 0 + bl sub_80450F8 + cmp r0, 0x5 + bhi _08045984 + lsls r0, 2 + ldr r1, _08045900 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080458F0: .4byte gUnknown_203B418 +_080458F4: .4byte 0x000181f0 +_080458F8: .4byte 0x000181f2 +_080458FC: .4byte 0x000181e8 +_08045900: .4byte _08045904 + .align 2, 0 +_08045904: + .4byte _08045988 + .4byte _08045934 + .4byte _08045964 + .4byte _0804591C + .4byte _08045984 + .4byte _08045988 +_0804591C: + adds r0, r5, 0 + adds r0, 0x26 +_08045920: + ldrb r0, [r0] + cmp r0, 0 + bne _08045984 + adds r0, r4, 0x4 + bl sub_803F428 + lsls r0, 24 +_0804592E: + cmp r0, 0 + bne _08045984 + b _08045988 +_08045934: + ldr r1, [r4, 0x70] + ldrb r0, [r1, 0x6] + cmp r0, 0 + beq _08045984 + ldr r0, _0804595C + ldr r0, [r0] + ldr r2, _08045960 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _08045954 + adds r0, r1, 0 + adds r0, 0xE4 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08045988 +_08045954: + adds r0, r5, 0 + adds r0, 0x25 + b _08045920 + .align 2, 0 +_0804595C: .4byte gUnknown_203B418 +_08045960: .4byte 0x0001820f +_08045964: + ldr r0, _0804597C + ldr r0, [r0] + ldr r3, _08045980 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _08045984 + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + b _0804592E + .align 2, 0 +_0804597C: .4byte gUnknown_203B418 +_08045980: .4byte 0x0001820f +_08045984: + movs r0, 0x1 + b _0804598A +_08045988: + movs r0, 0 +_0804598A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8045888 + + thumb_func_start sub_8045990 +sub_8045990: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080459E8 + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080459E8 + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _080459E8 + ldr r0, [r4] + cmp r0, 0x1 + bne _080459EC + ldr r0, [r5] + cmp r0, 0x1 + bne _080459DE + adds r0, r5, 0 + bl sub_8071884 + lsls r0, 24 + cmp r0, 0 + bne _080459D8 + ldr r0, [r4, 0x70] + adds r0, 0xE4 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080459E8 +_080459D8: + ldr r0, [r5, 0x70] + adds r0, 0xE8 + b _080459E2 +_080459DE: + ldr r0, [r4, 0x70] + adds r0, 0xE4 +_080459E2: + ldrb r0, [r0] + cmp r0, 0x1 + bne _080459EC +_080459E8: + movs r0, 0 + b _080459F8 +_080459EC: + adds r0, r5, 0x4 + adds r1, r4, 0x4 + bl sub_8083294 + lsls r0, 24 + lsrs r0, 24 +_080459F8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8045990 + + thumb_func_start sub_8045A00 +sub_8045A00: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08045A58 + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08045A58 + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _08045A58 + ldr r0, [r4] + cmp r0, 0x1 + bne _08045A5C + ldr r0, [r5] + cmp r0, 0x1 + bne _08045A4E + adds r0, r5, 0 + bl sub_8071884 + lsls r0, 24 + cmp r0, 0 + bne _08045A48 + ldr r0, [r4, 0x70] + adds r0, 0xE4 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08045A58 +_08045A48: + ldr r0, [r5, 0x70] + adds r0, 0xE8 + b _08045A52 +_08045A4E: + ldr r0, [r4, 0x70] + adds r0, 0xE4 +_08045A52: + ldrb r0, [r0] + cmp r0, 0x1 + bne _08045A5C +_08045A58: + movs r0, 0 + b _08045A68 +_08045A5C: + adds r0, r5, 0x4 + adds r1, r4, 0x4 + bl sub_808333C + lsls r0, 24 + lsrs r0, 24 +_08045A68: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8045A00 + + thumb_func_start sub_8045A70 +sub_8045A70: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08045AA4 + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08045AA4 + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _08045AA4 + adds r0, r5, 0x4 + adds r1, r4, 0x4 + bl sub_8083294 + lsls r0, 24 + lsrs r0, 24 + b _08045AA6 +_08045AA4: + movs r0, 0 +_08045AA6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8045A70 + + thumb_func_start sub_8045AAC +sub_8045AAC: + push {lr} + adds r0, 0x4 + bl sub_8083294 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_8045AAC + + thumb_func_start sub_8045ABC +sub_8045ABC: + push {lr} + adds r0, 0x4 + bl sub_808333C + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_8045ABC + + thumb_func_start sub_8045ACC +sub_8045ACC: + push {r4-r7,lr} + movs r6, 0 + movs r5, 0 + ldr r7, _08045B50 +_08045AD4: + ldr r0, [r7] + lsls r1, r5, 2 + ldr r2, _08045B54 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08045AFA + ldr r0, [r7] + lsls r1, r6, 2 + ldr r2, _08045B58 + adds r0, r2 + adds r0, r1 + str r4, [r0] + adds r6, 0x1 +_08045AFA: + adds r5, 0x1 + cmp r5, 0x3 + ble _08045AD4 + movs r5, 0 + ldr r7, _08045B50 +_08045B04: + ldr r0, [r7] + lsls r1, r5, 2 + ldr r2, _08045B5C + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08045B2A + ldr r0, [r7] + lsls r1, r6, 2 + ldr r2, _08045B58 + adds r0, r2 + adds r0, r1 + str r4, [r0] + adds r6, 0x1 +_08045B2A: + adds r5, 0x1 + cmp r5, 0xF + ble _08045B04 + cmp r6, 0x13 + bgt _08045B4A + ldr r4, _08045B50 + ldr r3, _08045B58 + movs r2, 0 +_08045B3A: + ldr r0, [r4] + lsls r1, r6, 2 + adds r0, r3 + adds r0, r1 + str r2, [r0] + adds r6, 0x1 + cmp r6, 0x13 + ble _08045B3A +_08045B4A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08045B50: .4byte gUnknown_203B418 +_08045B54: .4byte 0x0001357c +_08045B58: .4byte 0x000135cc +_08045B5C: .4byte 0x0001358c + thumb_func_end sub_8045ACC + + thumb_func_start sub_8045B60 +sub_8045B60: + push {r4,lr} + adds r3, r0, 0 + movs r2, 0 + ldr r0, _08045B78 + ldr r0, [r0] + ldr r4, _08045B7C + adds r1, r0, r4 +_08045B6E: + ldr r0, [r1] + cmp r3, r0 + bne _08045B80 + adds r0, r2, 0 + b _08045B8C + .align 2, 0 +_08045B78: .4byte gUnknown_203B418 +_08045B7C: .4byte 0x0001357c +_08045B80: + adds r1, 0x4 + adds r2, 0x1 + cmp r2, 0x3 + ble _08045B6E + movs r0, 0x1 + negs r0, r0 +_08045B8C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8045B60 + + thumb_func_start sub_8045B94 +sub_8045B94: + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + adds r6, r2, 0 + adds r0, r4, 0 + bl sub_80450F8 + cmp r0, 0x2 + beq _08045BD2 + cmp r0, 0x2 + bhi _08045BB0 + cmp r0, 0x1 + beq _08045BB6 + b _08045BE2 +_08045BB0: + cmp r0, 0x3 + beq _08045BC2 + b _08045BE2 +_08045BB6: + ldr r1, [r4, 0x70] + adds r0, r5, 0 + adds r2, r6, 0 + bl sub_80708B4 + b _08045BEC +_08045BC2: + adds r0, r4, 0 + bl sub_8045110 + adds r1, r0, 0 + adds r0, r5, 0 + bl sub_8045BF8 + b _08045BEC +_08045BD2: + adds r0, r4, 0 + bl sub_804510C + ldrb r1, [r0] + adds r0, r5, 0 + bl sub_807FE84 + b _08045BEC +_08045BE2: + ldr r0, _08045BF4 + ldr r1, [r0] + adds r0, r5, 0 + bl strcpy +_08045BEC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08045BF4: .4byte gUnknown_80FE6F4 + thumb_func_end sub_8045B94 + + thumb_func_start sub_8045BF8 +sub_8045BF8: + push {lr} + ldr r2, _08045C04 + bl sub_8090E14 + pop {r0} + bx r0 + .align 2, 0 +_08045C04: .4byte gUnknown_80F699C + thumb_func_end sub_8045BF8 + + thumb_func_start sub_8045C08 +sub_8045C08: + push {lr} + ldr r2, _08045C14 + bl sub_8090E14 + pop {r0} + bx r0 + .align 2, 0 +_08045C14: .4byte gUnknown_80F69A8 + thumb_func_end sub_8045C08 + + thumb_func_start sub_8045C18 +sub_8045C18: + push {lr} + ldr r2, _08045C24 + bl sub_8090E14 + pop {r0} + bx r0 + .align 2, 0 +_08045C24: .4byte gUnknown_80F6990 + thumb_func_end sub_8045C18 + + thumb_func_start sub_8045C28 +sub_8045C28: + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r2, 0 + lsls r1, 24 + lsrs r4, r1, 24 + adds r1, r4, 0 + movs r2, 0 + bl sub_8090A8C + movs r7, 0 + adds r0, r4, 0 + bl sub_8091544 + lsls r0, 24 + cmp r0, 0 + beq _08045C72 + cmp r6, 0 + bne _08045C6C + movs r0, 0x64 + bl sub_8084100 + ldr r1, _08045C64 + ldr r1, [r1] + ldr r2, _08045C68 + adds r1, r2 + ldrb r1, [r1] + cmp r0, r1 + bge _08045C72 + b _08045C76 + .align 2, 0 +_08045C64: .4byte gUnknown_203B418 +_08045C68: .4byte 0x0001c57e +_08045C6C: + cmp r6, 0x1 + bne _08045C72 + movs r7, 0x1 +_08045C72: + cmp r7, 0 + beq _08045C7E +_08045C76: + ldrb r1, [r5] + movs r0, 0x8 + orrs r0, r1 + strb r0, [r5] +_08045C7E: + adds r0, r4, 0 + bl sub_8090BD0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _08045CA2 + ldr r0, _08045CA8 + ldr r0, [r0] + ldr r1, _08045CAC + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r0, r5, 0 + bl sub_8046CE4 +_08045CA2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08045CA8: .4byte gUnknown_203B418 +_08045CAC: .4byte 0x0001c58b + thumb_func_end sub_8045C28 + + thumb_func_start sub_8045CB0 +sub_8045CB0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r0, 0x38 + bl sub_8084100 + adds r5, r0, 0 + movs r0, 0x20 + bl sub_8084100 + adds r6, r0, 0 + ldr r0, _08045D34 + ldr r0, [r0] + ldr r1, _08045D38 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + movs r0, 0 +_08045CDA: + adds r6, 0x1 + cmp r6, 0x20 + bne _08045CE2 + movs r6, 0 +_08045CE2: + adds r0, 0x1 + mov r10, r0 + movs r3, 0x2 + mov r9, r3 + movs r0, 0x37 + mov r8, r0 +_08045CEE: + adds r5, 0x1 + cmp r5, 0x38 + bne _08045CF6 + movs r5, 0 +_08045CF6: + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_804954C + adds r2, r0, 0 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 2 + adds r1, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _08045D92 + ldrh r1, [r2, 0x4] + mov r0, r9 + ands r0, r1 + cmp r0, 0 + beq _08045D92 + movs r7, 0 + lsls r0, r5, 16 + lsls r1, r6, 16 + lsrs r0, 16 + orrs r0, r1 + str r0, [sp, 0x4] + ldrh r1, [r2] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08045D3C + movs r7, 0x1 + movs r0, 0x1 + b _08045D58 + .align 2, 0 +_08045D34: .4byte gUnknown_203B418 +_08045D38: .4byte 0x00003904 +_08045D3C: + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08045D48 + movs r0, 0x3 + b _08045D58 +_08045D48: + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r0, 16 + negs r0, r0 + asrs r0, 31 + mov r1, r9 + ands r0, r1 +_08045D58: + bl sub_803D73C + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + bl sub_80914E4 + lsls r0, 24 + cmp r0, 0 + bne _08045D6E + movs r7, 0 +_08045D6E: + mov r0, sp + adds r1, r4, 0 + movs r2, 0 + bl sub_8045C28 + cmp r7, 0 + beq _08045D88 + mov r0, sp + ldrb r1, [r0] + mov r0, r9 + orrs r0, r1 + mov r1, sp + strb r0, [r1] +_08045D88: + add r0, sp, 0x4 + mov r1, sp + movs r2, 0x1 + bl sub_80460F8 +_08045D92: + movs r3, 0x1 + negs r3, r3 + add r8, r3 + mov r0, r8 + cmp r0, 0 + bge _08045CEE + mov r0, r10 + cmp r0, 0x1F + ble _08045CDA + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8045CB0 + + thumb_func_start sub_8045DB4 +sub_8045DB4: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xB8 + mov r10, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0xA8] + bl sub_8083600 + adds r7, r0, 0 + ldr r0, [r7, 0x70] + str r0, [sp, 0xAC] + mov r1, r10 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r3, 0x2 + ldrsh r1, [r1, r3] + bl sub_804954C + ldr r4, [r0, 0x14] + cmp r4, 0 + bne _08045DE8 + b _080460E0 +_08045DE8: + adds r0, r4, 0 + bl sub_80450F8 + cmp r0, 0x3 + beq _08045DF4 + b _080460E0 +_08045DF4: + adds r0, r4, 0 + bl sub_8045108 + adds r5, r0, 0 + ldr r0, [sp, 0xAC] + adds r0, 0x48 + ldrb r0, [r0] + cmp r0, 0 + bne _08045E08 + b _0804602E +_08045E08: + adds r0, r7, 0 + movs r1, 0x1 + bl sub_8071518 + lsls r0, 24 + cmp r0, 0 + beq _08045E40 + ldr r0, [sp, 0xA8] + cmp r0, 0 + bne _08045E1E + b _080460E0 +_08045E1E: + ldr r0, _08045E34 + adds r1, r5, 0 + bl sub_8045BF8 + ldr r0, _08045E38 + adds r1, r7, 0 + movs r2, 0 + bl sub_8045B94 + ldr r0, _08045E3C + b _08046048 + .align 2, 0 +_08045E34: .4byte gUnknown_202DE58 +_08045E38: .4byte gUnknown_202DF98 +_08045E3C: .4byte gUnknown_80F8F88 +_08045E40: + ldrb r0, [r5, 0x2] + bl sub_8090BD0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _08045E7C + movs r0, 0xA6 + lsls r0, 1 + bl sub_8083E38 + adds r0, r5, 0 + bl sub_80915D4 + bl sub_80913A0 + ldr r0, _08045E74 + adds r1, r5, 0 + bl sub_8045BF8 + mov r0, r10 + movs r1, 0x1 + bl sub_80461C8 + ldr r0, _08045E78 + b _08045FD0 + .align 2, 0 +_08045E74: .4byte gUnknown_202DE58 +_08045E78: .4byte gUnknown_80F8FFC +_08045E7C: + ldr r0, _08045EA8 + ldr r0, [r0] + ldr r1, _08045EAC + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08045EB4 + movs r4, 0 + ldr r0, _08045EB0 + mov r2, sp + ldr r0, [r0] + add r1, sp, 0x54 +_08045E94: + stm r1!, {r0} + stm r2!, {r4} + adds r0, 0x4 + adds r4, 0x1 + cmp r4, 0x13 + ble _08045E94 + movs r2, 0x14 + mov r8, r2 + b _08045EC4 + .align 2, 0 +_08045EA8: .4byte gUnknown_203B418 +_08045EAC: .4byte 0x0000065b +_08045EB0: .4byte gUnknown_203B460 +_08045EB4: + ldr r0, [sp, 0xAC] + adds r0, 0x60 + str r0, [sp, 0x54] + movs r0, 0x1 + negs r0, r0 + str r0, [sp] + movs r3, 0x1 + mov r8, r3 +_08045EC4: + ldrb r0, [r5, 0x2] + add r6, sp, 0xB0 + strb r0, [r6] + cmp r0, 0x8 + bls _08045ED0 + b _08046000 +_08045ED0: + ldrb r1, [r5] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08045EDC + b _08046000 +_08045EDC: + movs r1, 0x1 + negs r1, r1 + mov r12, r1 + mov r2, r12 + str r2, [sp, 0xB4] + movs r4, 0 + cmp r4, r8 + bge _08045F2C + ldr r3, _08045FDC + mov r9, r3 + add r3, sp, 0x54 +_08045EF2: + ldr r2, [r3] + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08045F24 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08045F24 + ldr r1, [r5] + mov r6, r9 + ands r1, r6 + ldr r0, [r2] + ands r0, r6 + cmp r1, r0 + bne _08045F24 + ldrb r0, [r2, 0x1] + cmp r0, 0x63 + beq _08045F24 + ldr r1, [sp, 0xB4] + cmp r1, r0 + bge _08045F24 + str r0, [sp, 0xB4] + mov r12, r4 +_08045F24: + adds r3, 0x4 + adds r4, 0x1 + cmp r4, r8 + blt _08045EF2 +_08045F2C: + movs r0, 0x1 + negs r0, r0 + cmp r12, r0 + bne _08045F80 + mov r2, r12 + str r2, [sp, 0xB4] + movs r4, 0 + cmp r4, r8 + bge _08045F78 + add r3, sp, 0xB0 + ldrb r3, [r3] + mov r9, r3 + add r3, sp, 0x54 +_08045F46: + ldr r2, [r3] + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08045F70 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08045F70 + ldrb r6, [r2, 0x2] + cmp r9, r6 + bne _08045F70 + ldrb r0, [r2, 0x1] + cmp r0, 0x63 + beq _08045F70 + ldr r1, [sp, 0xB4] + cmp r1, r0 + bge _08045F70 + str r0, [sp, 0xB4] + mov r12, r4 +_08045F70: + adds r3, 0x4 + adds r4, 0x1 + cmp r4, r8 + blt _08045F46 +_08045F78: + movs r0, 0x1 + negs r0, r0 + cmp r12, r0 + beq _08046000 +_08045F80: + add r0, sp, 0x54 + mov r2, r12 + lsls r4, r2, 2 + adds r3, r0, r4 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r5, 0x1] + adds r1, r0 + cmp r1, 0x62 + ble _08045F96 + movs r1, 0x63 +_08045F96: + strb r1, [r2, 0x1] + ldrb r1, [r5] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08045FAC + ldr r0, [r3] + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] +_08045FAC: + ldr r0, _08045FE0 + adds r1, r5, 0 + bl sub_8045BF8 + mov r0, r10 + movs r1, 0x1 + bl sub_80461C8 + movs r0, 0xA5 + lsls r0, 1 + bl sub_8083E38 + mov r3, sp + adds r0, r3, r4 + ldr r0, [r0] + cmp r0, 0 + bge _08045FE8 + ldr r0, _08045FE4 +_08045FD0: + ldr r1, [r0] + adds r0, r7, 0 + bl sub_80522A8 + b _08045FF2 + .align 2, 0 +_08045FDC: .4byte 0x00ff0008 +_08045FE0: .4byte gUnknown_202DE58 +_08045FE4: .4byte gUnknown_80F8FC4 +_08045FE8: + ldr r0, _08045FFC + ldr r1, [r0] + adds r0, r7, 0 + bl sub_80522A8 +_08045FF2: + ldrb r0, [r5, 0x2] + bl sub_8052EC0 + b _080460E0 + .align 2, 0 +_08045FFC: .4byte gUnknown_80F8FF8 +_08046000: + movs r4, 0 + cmp r4, r8 + bge _0804602A + ldr r0, [sp, 0x54] + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0804602A + movs r3, 0x1 + add r2, sp, 0x54 +_08046016: + adds r2, 0x4 + adds r4, 0x1 + cmp r4, r8 + bge _0804602A + ldr r0, [r2] + ldrb r1, [r0] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _08046016 +_0804602A: + cmp r4, r8 + bne _08046060 +_0804602E: + ldr r6, [sp, 0xA8] + cmp r6, 0 + beq _080460E0 + ldr r0, _08046054 + adds r1, r5, 0 + bl sub_8045BF8 + ldr r0, _08046058 + adds r1, r7, 0 + movs r2, 0 + bl sub_8045B94 + ldr r0, _0804605C +_08046048: + ldr r1, [r0] + adds r0, r7, 0 + bl sub_80522A8 + b _080460E0 + .align 2, 0 +_08046054: .4byte gUnknown_202DE58 +_08046058: .4byte gUnknown_202DF98 +_0804605C: .4byte gUnknown_80F8F54 +_08046060: + movs r0, 0xA5 + lsls r0, 1 + bl sub_8083E38 + lsls r0, r4, 2 + add r0, sp + ldr r0, [r0] + cmp r0, 0 + bge _08046094 + ldr r0, [r5] + ldr r1, [sp, 0xAC] + str r0, [r1, 0x60] + ldr r0, _0804608C + adds r1, r5, 0 + bl sub_8045BF8 + mov r0, r10 + movs r1, 0x1 + bl sub_80461C8 + ldr r0, _08046090 + b _080460AC + .align 2, 0 +_0804608C: .4byte gUnknown_202DE58 +_08046090: .4byte gUnknown_80F8FC4 +_08046094: + adds r0, r5, 0 + bl sub_8091290 + lsls r0, 24 + cmp r0, 0 + beq _080460C0 + ldr r0, _080460B8 + adds r1, r7, 0 + movs r2, 0 + bl sub_8045B94 + ldr r0, _080460BC +_080460AC: + ldr r1, [r0] + adds r0, r7, 0 + bl sub_80522A8 + b _080460DA + .align 2, 0 +_080460B8: .4byte gUnknown_202DF98 +_080460BC: .4byte gUnknown_80F8FAC +_080460C0: + ldr r0, _080460F0 + adds r1, r5, 0 + bl sub_8045BF8 + mov r0, r10 + movs r1, 0x1 + bl sub_80461C8 + ldr r0, _080460F4 + ldr r1, [r0] + adds r0, r7, 0 + bl sub_80522A8 +_080460DA: + ldrb r0, [r5, 0x2] + bl sub_8052EC0 +_080460E0: + add sp, 0xB8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080460F0: .4byte gUnknown_202DE58 +_080460F4: .4byte gUnknown_80F8FF8 + thumb_func_end sub_8045DB4 + + thumb_func_start sub_80460F8 +sub_80460F8: + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r1, 0 + lsls r2, 24 + lsrs r7, r2, 24 + bl sub_8045708 + adds r4, r0, 0 + cmp r4, 0 + bne _08046110 + movs r0, 0 + b _080461B6 +_08046110: + ldr r1, [r4, 0x70] + ldr r0, [r6] + str r0, [r1] + ldr r2, [r4, 0x70] + ldrb r1, [r2] + movs r0, 0xEF + ands r0, r1 + strb r0, [r2] + adds r1, r4, 0 + adds r1, 0x20 + movs r0, 0x1 + strb r0, [r1] + movs r1, 0 + ldrsh r0, [r5, r1] + movs r2, 0x2 + ldrsh r1, [r5, r2] + bl sub_8049590 + str r4, [r0, 0x14] + ldrh r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08046186 + ldrb r0, [r6, 0x2] + bl sub_80914E4 + lsls r0, 24 + cmp r0, 0 + beq _08046186 + ldrb r1, [r6] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08046170 + cmp r7, 0 + beq _08046186 + adds r0, r6, 0 + bl sub_8090C7C + ldr r1, _08046168 + ldr r2, [r1] + ldr r1, _0804616C + b _0804617E + .align 2, 0 +_08046168: .4byte gUnknown_203B418 +_0804616C: .4byte 0x0000068c +_08046170: + adds r0, r6, 0 + bl sub_8090CCC + ldr r1, _080461BC + ldr r2, [r1] + movs r1, 0xD2 + lsls r1, 3 +_0804617E: + adds r2, r1 + ldr r1, [r2] + adds r1, r0 + str r1, [r2] +_08046186: + movs r6, 0 + movs r4, 0 +_0804618A: + ldr r5, _080461BC + ldr r0, [r5] + lsls r1, r4, 2 + ldr r2, _080461C0 + adds r0, r2 + adds r0, r1 + ldr r0, [r0] + bl sub_80450E0 + lsls r0, 24 + adds r1, r4, 0x1 + cmp r0, 0 + beq _080461A6 + adds r6, r1, 0 +_080461A6: + adds r4, r1, 0 + cmp r4, 0x3F + ble _0804618A + ldr r0, [r5] + ldr r1, _080461C4 + adds r0, r1 + strh r6, [r0] + movs r0, 0x1 +_080461B6: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080461BC: .4byte gUnknown_203B418 +_080461C0: .4byte 0x0001361c +_080461C4: .4byte 0x00003904 + thumb_func_end sub_80460F8 + + thumb_func_start sub_80461C8 +sub_80461C8: + push {r4-r7,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r7, r1, 24 + movs r1, 0 + ldrsh r0, [r2, r1] + movs r3, 0x2 + ldrsh r1, [r2, r3] + bl sub_8049590 + adds r6, r0, 0 + ldr r5, [r6, 0x14] + cmp r5, 0 + beq _080461EE + adds r0, r5, 0 + bl sub_80450F8 + cmp r0, 0x3 + beq _080461F2 +_080461EE: + movs r0, 0 + b _08046284 +_080461F2: + adds r0, r5, 0 + bl sub_8045108 + adds r4, r0, 0 + ldrh r1, [r6] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0804624E + ldrb r0, [r4, 0x2] + bl sub_80914E4 + lsls r0, 24 + cmp r0, 0 + beq _0804624E + ldrb r1, [r4] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08046238 + cmp r7, 0 + beq _0804624E + adds r0, r4, 0 + bl sub_8090C7C + ldr r1, _08046230 + ldr r2, [r1] + ldr r1, _08046234 + adds r2, r1 + b _08046248 + .align 2, 0 +_08046230: .4byte gUnknown_203B418 +_08046234: .4byte 0x0000068c +_08046238: + adds r0, r4, 0 + bl sub_8090CCC + ldr r1, _0804628C + ldr r2, [r1] + movs r3, 0xD2 + lsls r3, 3 + adds r2, r3 +_08046248: + ldr r1, [r2] + subs r1, r0 + str r1, [r2] +_0804624E: + movs r0, 0 + str r0, [r6, 0x14] + str r0, [r5] + movs r6, 0 + movs r4, 0 +_08046258: + ldr r5, _0804628C + ldr r0, [r5] + lsls r1, r4, 2 + ldr r2, _08046290 + adds r0, r2 + adds r0, r1 + ldr r0, [r0] + bl sub_80450E0 + lsls r0, 24 + adds r1, r4, 0x1 + cmp r0, 0 + beq _08046274 + adds r6, r1, 0 +_08046274: + adds r4, r1, 0 + cmp r4, 0x3F + ble _08046258 + ldr r0, [r5] + ldr r3, _08046294 + adds r0, r3 + strh r6, [r0] + movs r0, 0x1 +_08046284: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0804628C: .4byte gUnknown_203B418 +_08046290: .4byte 0x0001361c +_08046294: .4byte 0x00003904 + thumb_func_end sub_80461C8 + + thumb_func_start sub_8046298 +sub_8046298: + ldrb r0, [r0, 0x2] + ldr r1, _080462A8 + ldr r1, [r1] + lsls r0, 5 + adds r0, r1 + ldrb r0, [r0, 0xD] + bx lr + .align 2, 0 +_080462A8: .4byte gItemParametersFile + 4 + thumb_func_end sub_8046298 + + thumb_func_start sub_80462AC +sub_80462AC: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r4, r0, 0 + ldr r0, [sp, 0x28] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + bne _080462E4 + b _08046498 +_080462E4: + cmp r5, 0 + beq _08046316 + movs r1, 0x4 + ldrsh r0, [r4, r1] + movs r2, 0x6 + ldrsh r1, [r4, r2] + bl sub_804954C + ldrh r0, [r0] + movs r1, 0x3 + ands r1, r0 + cmp r1, 0 + bne _08046300 + b _08046498 +_08046300: + cmp r1, 0x2 + bne _08046308 + movs r3, 0x1 + str r3, [sp, 0x4] +_08046308: + adds r0, r4, 0 + bl sub_8045888 + lsls r0, 24 + cmp r0, 0 + bne _08046316 + b _08046498 +_08046316: + ldr r1, [r4, 0xC] + cmp r1, 0 + bge _0804631E + adds r1, 0xFF +_0804631E: + asrs r1, 8 + ldr r0, _080463A4 + ldr r2, [r0] + ldr r5, _080463A8 + adds r0, r2, r5 + movs r3, 0 + ldrsh r0, [r0, r3] + subs r6, r1, r0 + ldr r3, [r4, 0x10] + ldr r0, [r4, 0x1C] + subs r1, r3, r0 + cmp r1, 0 + bge _0804633A + adds r1, 0xFF +_0804633A: + asrs r1, 8 + ldr r5, _080463AC + adds r0, r2, r5 + movs r5, 0 + ldrsh r2, [r0, r5] + subs r1, r2 + mov r8, r1 + adds r0, r3, 0 + cmp r0, 0 + bge _08046350 + adds r0, 0xFF +_08046350: + asrs r0, 8 + subs r0, r2 + adds r7, r0, 0 + adds r7, 0x8 + lsrs r0, r7, 31 + adds r0, r7, r0 + asrs r7, r0, 1 + movs r0, 0x20 + negs r0, r0 + cmp r6, r0 + bge _08046368 + b _08046498 +_08046368: + cmp r8, r0 + bge _0804636E + b _08046498 +_0804636E: + movs r0, 0x88 + lsls r0, 1 + cmp r6, r0 + ble _08046378 + b _08046498 +_08046378: + mov r0, r8 + cmp r0, 0xC0 + ble _08046380 + b _08046498 +_08046380: + ldr r5, _080463B0 + ldrh r1, [r5, 0x2] + ldr r0, _080463B4 + ands r0, r1 + strh r0, [r5, 0x2] + mov r1, r10 + cmp r1, 0 + beq _080463BC + movs r2, 0x17 + mov r10, r2 + movs r2, 0xA0 + lsls r2, 8 + ldrh r1, [r5, 0x4] + ldr r0, _080463B8 + ands r0, r1 + orrs r0, r2 + strh r0, [r5, 0x4] + b _08046408 + .align 2, 0 +_080463A4: .4byte gUnknown_203B418 +_080463A8: .4byte 0x000181f0 +_080463AC: .4byte 0x000181f2 +_080463B0: .4byte gUnknown_202EDC0 +_080463B4: .4byte 0x0000c1ff +_080463B8: .4byte 0x00000fff +_080463BC: + ldr r0, [r4, 0x70] + bl sub_8046298 + mov r10, r0 + mov r3, r9 + cmp r3, 0xFF + beq _080463EE + cmp r0, 0 + bne _080463EE + ldr r0, _08046478 + add r0, r9 + ldrb r0, [r0] + mov r10, r0 + ldr r0, _0804647C + add r0, r9 + ldrb r1, [r0] + lsls r1, 3 + movs r0, 0x1F + ands r1, r0 + lsls r1, 9 + ldrh r2, [r5, 0x2] + ldr r0, _08046480 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x2] +_080463EE: + ldr r0, [r4, 0x70] + ldrb r0, [r0, 0x2] + bl sub_8090D58 + movs r1, 0xF + ands r0, r1 + lsls r0, 12 + ldr r3, _08046484 + ldrh r2, [r3, 0x4] + ldr r1, _08046488 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x4] +_08046408: + ldr r1, _08046488 + mov r5, r8 + ands r1, r5 + lsls r1, 4 + ldr r4, _08046484 + ldrh r2, [r4, 0x6] + movs r0, 0xF + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x6] + ldr r0, _0804648C + ands r6, r0 + ldrh r1, [r4, 0x2] + movs r0, 0xFE + lsls r0, 8 + ands r0, r1 + orrs r0, r6 + strh r0, [r4, 0x2] + ldr r0, [sp, 0x4] + lsls r3, r0, 10 + ldrh r2, [r4] + ldr r1, _08046490 + adds r0, r1, 0 + ands r0, r2 + orrs r0, r3 + strh r0, [r4] + movs r2, 0xC0 + lsls r2, 4 + ldrh r0, [r4, 0x4] + ands r1, r0 + orrs r1, r2 + mov r2, r10 + lsls r0, r2, 2 + movs r3, 0xD0 + lsls r3, 1 + adds r0, r3 + ldr r2, _08046494 + ands r0, r2 + movs r2, 0xFC + lsls r2, 8 + ands r1, r2 + orrs r1, r0 + strh r1, [r4, 0x4] + ldr r5, [sp] + cmp r5, 0 + bne _08046466 + movs r7, 0x1 +_08046466: + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0 + movs r3, 0 + bl AddSprite + movs r0, 0x1 + b _0804649A + .align 2, 0 +_08046478: .4byte gUnknown_203B420 +_0804647C: .4byte gUnknown_203B428 +_08046480: .4byte 0x0000c1ff +_08046484: .4byte gUnknown_202EDC0 +_08046488: .4byte 0x00000fff +_0804648C: .4byte 0x000001ff +_08046490: .4byte 0x0000f3ff +_08046494: .4byte 0x000003ff +_08046498: + movs r0, 0 +_0804649A: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80462AC + + thumb_func_start sub_80464AC +sub_80464AC: + push {r4,lr} + ldr r4, _080464C4 + ldrb r0, [r0, 0x2] + bl sub_8090D6C + lsls r0, 3 + adds r0, r4 + ldr r0, [r0] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080464C4: .4byte gUnknown_80F7B14 + thumb_func_end sub_80464AC + + thumb_func_start sub_80464C8 +sub_80464C8: + push {r4-r6,lr} + sub sp, 0x78 + adds r6, r0, 0 + adds r3, r1, 0 + adds r5, r2, 0 + movs r0, 0x3 + str r0, [sp, 0x4] + add r0, sp, 0x28 + movs r4, 0 + strb r4, [r0] + add r1, sp, 0x24 + movs r0, 0x1 + strb r0, [r1] + mov r0, sp + adds r0, 0x26 + strb r4, [r0] + str r5, [sp, 0x74] + ldr r0, [r3] + str r0, [sp, 0x8] + movs r1, 0 + ldrsh r0, [r3, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, 0x4 + lsls r1, 8 + movs r2, 0x2 + ldrsh r0, [r3, r2] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 3 + adds r2, 0x4 + lsls r2, 8 + add r0, sp, 0x4 + bl sub_8045394 + add r0, sp, 0x4 + strh r4, [r0, 0x26] + str r4, [sp] + adds r0, r6, 0 + add r1, sp, 0x4 + adds r2, r5, 0 + movs r3, 0x1 + bl sub_804652C + add sp, 0x78 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80464C8 + + thumb_func_start sub_804652C +sub_804652C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + mov r10, r0 + adds r5, r1, 0 + mov r9, r2 + lsls r3, 24 + lsrs r6, r3, 24 + movs r1, 0x4 + ldrsh r0, [r5, r1] + movs r2, 0x6 + ldrsh r1, [r5, r2] + bl sub_804954C + adds r4, r0, 0 + ldr r0, [r4, 0x14] + movs r3, 0 + str r3, [sp, 0xC] + cmp r0, 0 + beq _0804658C + bl sub_80450F8 + cmp r0, 0x2 + bne _0804658C + adds r4, r5, 0x4 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8046734 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_807FE44 + ldr r0, _080465A4 + ldr r1, [r0] + mov r0, r10 + bl sub_80522A8 + mov r0, r9 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0804658C + b _0804671E +_0804658C: + ldrh r1, [r5, 0x6] + lsls r1, 16 + ldrh r0, [r5, 0x4] + orrs r0, r1 + str r0, [sp] + mov r8, r0 + movs r7, 0x1 + cmp r6, 0 + beq _08046632 + movs r7, 0 + b _08046632 + .align 2, 0 +_080465A4: .4byte gUnknown_80FED30 +_080465A8: + lsls r3, r7, 2 + adds r3, r0 + ldrh r0, [r3] + ldrh r1, [r5, 0x4] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _08046628 + ldr r2, [sp] + ands r2, r1 + orrs r2, r0 + str r2, [sp] + ldrh r0, [r3, 0x2] + ldrh r3, [r5, 0x6] + adds r0, r3 + lsls r0, 16 + ldr r1, _0804662C + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + asrs r1, 16 + bl sub_804954C + adds r4, r0, 0 + ldrh r1, [r4] + movs r6, 0x3 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08046630 + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + bne _08046630 + ldr r0, [r4, 0x14] + cmp r0, 0 + bne _08046630 + adds r0, r5, 0 + mov r1, sp + bl sub_8046734 + ldr r3, [sp] + mov r8, r3 + ldrh r1, [r4] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0x3 + beq _08046620 + mov r0, sp + mov r1, r9 + movs r2, 0x1 + bl sub_80460F8 + lsls r0, 24 + cmp r0, 0 + beq _08046644 +_08046620: + movs r0, 0x1 + str r0, [sp, 0xC] + b _08046644 + .align 2, 0 +_08046628: .4byte 0xffff0000 +_0804662C: .4byte 0x0000ffff +_08046630: + adds r7, 0x1 +_08046632: + ldr r0, _08046688 + lsls r1, r7, 2 + adds r1, r0 + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r1, 0x63 + bne _080465A8 + movs r3, 0 + str r3, [sp, 0xC] +_08046644: + ldr r0, _0804668C + mov r1, r9 + bl sub_8045BF8 + ldr r0, [sp, 0xC] + cmp r0, 0 + beq _080466C8 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + mov r4, sp + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl sub_80402AC + mov r0, sp + movs r3, 0 + ldrsh r0, [r0, r3] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl sub_804954C + ldrh r0, [r0] + movs r1, 0x3 + ands r1, r0 + adds r0, r1, 0 + cmp r1, 0x1 + beq _0804669A + cmp r1, 0x1 + bgt _08046690 + cmp r1, 0 + beq _080466AC + b _0804671E + .align 2, 0 +_08046688: .4byte gUnknown_80F4468 +_0804668C: .4byte gUnknown_202DE58 +_08046690: + cmp r0, 0x2 + beq _080466A4 + cmp r0, 0x3 + beq _080466B4 + b _0804671E +_0804669A: + ldr r0, _080466A0 + b _080466B6 + .align 2, 0 +_080466A0: .4byte gUnknown_80F93E8 +_080466A4: + ldr r0, _080466A8 + b _080466B6 + .align 2, 0 +_080466A8: .4byte gUnknown_80F9408 +_080466AC: + ldr r0, _080466B0 + b _080466B6 + .align 2, 0 +_080466B0: .4byte gUnknown_80F9424 +_080466B4: + ldr r0, _080466C4 +_080466B6: + ldr r2, [r0] + mov r0, r10 + mov r1, sp + bl sub_8052364 + b _0804671E + .align 2, 0 +_080466C4: .4byte gUnknown_80F949C +_080466C8: + mov r3, r8 + lsls r1, r3, 16 + asrs r1, 16 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + movs r1, 0xC0 + lsls r1, 4 + adds r0, r1 + str r0, [sp, 0x4] + asrs r1, r3, 16 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + movs r2, 0xC0 + lsls r2, 4 + adds r0, r2 + add r2, sp, 0x4 + str r0, [r2, 0x4] + ldr r3, [sp, 0x30] + cmp r3, 0 + beq _0804670C + movs r1, 0 + ldrsh r0, [r3, r1] + lsls r0, 8 + ldr r1, [sp, 0x4] + adds r0, r1 + str r0, [sp, 0x4] + movs r1, 0x2 + ldrsh r0, [r3, r1] + lsls r0, 8 + ldr r1, [r2, 0x4] + adds r0, r1 + str r0, [r2, 0x4] +_0804670C: + adds r0, r2, 0 + bl sub_804219C + ldr r0, _08046730 + ldr r2, [r0] + mov r0, r10 + mov r1, sp + bl sub_8052364 +_0804671E: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08046730: .4byte gUnknown_80F943C + thumb_func_end sub_804652C + + thumb_func_start sub_8046734 +sub_8046734: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + mov r8, r0 + ldr r0, _08046858 + ldr r0, [r0] + ldr r2, _0804685C + adds r0, r2 + ldrb r0, [r0] + str r0, [sp, 0xC] + movs r0, 0 + ldrsh r2, [r1, r0] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r0, 0x4 + lsls r4, r0, 8 + movs r2, 0x2 + ldrsh r1, [r1, r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x4 + lsls r5, r0, 8 + mov r1, r8 + ldr r0, [r1, 0xC] + subs r0, r4 + cmp r0, 0 + bge _08046776 + negs r0, r0 +_08046776: + mov r2, r8 + ldr r2, [r2, 0x10] + mov r9, r2 + cmp r0, 0xB + bgt _0804678C + subs r0, r2, r5 + cmp r0, 0 + bge _08046788 + negs r0, r0 +_08046788: + cmp r0, 0xB + ble _08046822 +_0804678C: + movs r0, 0 + mov r10, r0 + movs r1, 0 + str r1, [sp, 0x10] + mov r2, r8 + ldr r0, [r2, 0xC] + str r0, [sp, 0x4] + mov r1, r9 + str r1, [sp, 0x8] + subs r0, r4, r0 + movs r1, 0x18 + bl __divsi3 + adds r6, r0, 0 + mov r2, r9 + subs r0, r5, r2 + movs r1, 0x18 + bl __divsi3 + adds r7, r0, 0 + movs r0, 0 + mov r9, r0 + mov r1, sp + adds r1, 0x4 + str r1, [sp, 0x14] +_080467BE: + ldr r0, [sp, 0x4] + adds r0, r6 + str r0, [sp, 0x4] + ldr r2, [sp, 0x14] + ldr r0, [r2, 0x4] + adds r0, r7 + str r0, [r2, 0x4] + ldr r0, [sp, 0x10] + bl sub_8009C7C + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + mov r0, r8 + str r1, [r0, 0x1C] + add r1, sp, 0x4 + bl sub_804535C + mov r1, r10 + lsls r3, r1, 24 + lsrs r3, 24 + movs r0, 0 + str r0, [sp] + mov r0, r8 + ldr r1, [sp, 0xC] + movs r2, 0 + bl sub_80462AC + movs r0, 0x13 + bl sub_803E46C + ldr r2, [sp, 0x10] + adds r2, 0x55 + str r2, [sp, 0x10] + movs r0, 0x3 + mov r1, r9 + ands r0, r1 + cmp r0, 0 + bne _08046810 + movs r2, 0x1 + add r10, r2 +_08046810: + movs r0, 0x7 + mov r1, r10 + ands r1, r0 + mov r10, r1 + movs r2, 0x1 + add r9, r2 + mov r0, r9 + cmp r0, 0x17 + ble _080467BE +_08046822: + mov r0, r8 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8045394 + movs r0, 0 + mov r1, r8 + str r0, [r1, 0x1C] + str r0, [sp] + mov r0, r8 + ldr r1, [sp, 0xC] + movs r2, 0x1 + movs r3, 0xFF + bl sub_80462AC + movs r0, 0x13 + bl sub_803E46C + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08046858: .4byte gUnknown_203B418 +_0804685C: .4byte 0x00018210 + thumb_func_end sub_8046734 + + thumb_func_start sub_8046860 +sub_8046860: + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r1, 0 + adds r5, r2, 0 + str r3, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_804687C + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8046860 + + thumb_func_start sub_804687C +sub_804687C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _08046970 + add sp, r4 + ldr r5, _08046974 + add r5, sp + str r0, [r5] + movs r0, 0xA5 + lsls r0, 3 + add r0, sp + str r1, [r0] + mov r8, r2 + ldr r1, _08046978 + add r1, sp + str r3, [r1] + movs r1, 0 + movs r7, 0x1D + ldr r0, _0804697C + add r0, sp +_080468A8: + strb r1, [r0] + subs r0, 0x1 + subs r7, 0x1 + cmp r7, 0 + bge _080468A8 + movs r7, 0 + movs r2, 0xAD + lsls r2, 3 + add r2, sp + ldr r2, [r2] + cmp r7, r2 + blt _080468C2 + b _080469DE +_080468C2: + ldr r3, _08046980 + mov r9, r3 + ldr r5, _08046984 + movs r0, 0 + ldrsh r5, [r5, r0] + ldr r0, _08046988 + add r0, sp + str r5, [r0] +_080468D2: + mov r1, r8 + ldrh r0, [r1] + ldr r1, _0804698C + ands r4, r1 + orrs r4, r0 + mov r2, r8 + ldrh r0, [r2, 0x2] + lsls r0, 16 + mov r3, r9 + ands r4, r3 + orrs r4, r0 + movs r5, 0 + adds r0, r7, 0x1 + mov r10, r0 + ldr r1, _08046984 + ldr r2, _08046988 + add r2, sp + ldr r2, [r2] + cmp r2, 0x63 + beq _080469B0 + ldr r3, _08046990 + add r3, sp + ldr r0, _08046994 + add r0, sp + str r3, [r0] +_08046904: + ldr r0, _08046998 + add r0, sp + adds r6, r0, r5 + ldrb r0, [r6] + cmp r0, 0 + bne _0804699C + lsls r2, r5, 2 + adds r2, r1 + ldrh r0, [r2] + mov r1, r8 + ldrh r1, [r1] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0804698C + ands r4, r1 + orrs r4, r0 + ldrh r0, [r2, 0x2] + mov r2, r8 + ldrh r2, [r2, 0x2] + adds r0, r2 + lsls r0, 16 + mov r3, r9 + ands r4, r3 + orrs r4, r0 + lsls r0, r4, 16 + asrs r0, 16 + asrs r1, r4, 16 + bl sub_804954C + adds r2, r0, 0 + ldrh r1, [r2] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0804699C + movs r3, 0x80 + lsls r3, 2 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0804699C + ldr r0, [r2, 0x14] + cmp r0, 0 + bne _0804699C + lsls r0, r7, 2 + ldr r5, _08046994 + add r5, sp + ldr r5, [r5] + adds r0, r5, r0 + str r4, [r0] + movs r0, 0x1 + strb r0, [r6] + b _080469CE + .align 2, 0 +_08046970: .4byte 0xfffffab8 +_08046974: .4byte 0x00000524 +_08046978: .4byte 0x0000052c +_0804697C: .4byte 0x00000521 +_08046980: .4byte 0x0000ffff +_08046984: .4byte gUnknown_80F4468 +_08046988: .4byte 0x00000534 +_0804698C: .4byte 0xffff0000 +_08046990: .4byte 0x0000048c +_08046994: .4byte 0x00000544 +_08046998: .4byte 0x00000504 +_0804699C: + adds r5, 0x1 + cmp r5, 0x1D + bgt _080469B0 + lsls r0, r5, 2 + ldr r1, _08046A18 + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0x63 + bne _08046904 +_080469B0: + movs r3, 0 + cmp r3, 0 + bne _080469CE + ldr r1, _08046A1C + add r1, sp + lsls r0, r7, 2 + adds r1, r0 + ldrh r2, [r1] + mov r0, r9 + orrs r0, r2 + strh r0, [r1] + ldrh r2, [r1, 0x2] + mov r0, r9 + orrs r0, r2 + strh r0, [r1, 0x2] +_080469CE: + mov r7, r10 + movs r5, 0xAD + lsls r5, 3 + add r5, sp + ldr r5, [r5] + cmp r7, r5 + bge _080469DE + b _080468D2 +_080469DE: + movs r1, 0 + mov r9, r1 + movs r7, 0 + movs r0, 0xAD + lsls r0, 3 + add r0, sp + ldr r0, [r0] + cmp r7, r0 + blt _080469F2 + b _08046B0A +_080469F2: + movs r2, 0 + mov r8, r2 +_080469F6: + ldr r0, _08046A1C + add r0, sp + lsls r2, r7, 2 + adds r3, r0, r2 + movs r4, 0 + ldrsh r0, [r3, r4] + cmp r0, 0 + bge _08046A20 + movs r0, 0x74 + muls r0, r7 + add r0, sp + adds r0, 0x4 + mov r5, r8 + str r5, [r0] + movs r0, 0x1 + mov r9, r0 + b _08046AFA + .align 2, 0 +_08046A18: .4byte gUnknown_80F4468 +_08046A1C: .4byte 0x0000048c +_08046A20: + movs r0, 0x74 + adds r6, r7, 0 + muls r6, r0 + mov r4, sp + adds r4, r6 + adds r4, 0x4 + movs r0, 0x3 + str r0, [r4] + adds r0, r4, 0 + adds r0, 0x24 + mov r1, r8 + strb r1, [r0] + adds r1, r4, 0 + adds r1, 0x20 + movs r0, 0x1 + strb r0, [r1] + adds r0, r4, 0 + adds r0, 0x22 + mov r5, r8 + strb r5, [r0] + add r0, sp, 0x74 + adds r0, r6 + ldr r1, _08046B2C + add r1, sp + ldr r1, [r1] + adds r2, r1, r2 + str r2, [r0] + add r0, sp, 0x8 + adds r0, r6 + ldr r1, [r3] + str r1, [r0] + movs r2, 0xA5 + lsls r2, 3 + add r2, sp + ldr r2, [r2] + movs r5, 0 + ldrsh r0, [r2, r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, 0x4 + lsls r1, 8 + movs r5, 0x2 + ldrsh r0, [r2, r5] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 3 + adds r2, 0x4 + lsls r2, 8 + adds r0, r4, 0 + movs r5, 0xA8 + lsls r5, 3 + add r5, sp + str r3, [r5] + bl sub_8045394 + mov r0, r8 + strh r0, [r4, 0x26] + ldr r4, _08046B30 + add r4, sp + lsls r5, r7, 3 + adds r4, r5 + movs r1, 0xA8 + lsls r1, 3 + add r1, sp + ldr r3, [r1] + movs r2, 0 + ldrsh r1, [r3, r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x4 + lsls r0, 8 + add r1, sp, 0x10 + adds r1, r6 + ldr r1, [r1] + subs r0, r1 + movs r1, 0x18 + movs r2, 0xA8 + lsls r2, 3 + add r2, sp + str r3, [r2] + bl __divsi3 + str r0, [r4] + movs r4, 0x97 + lsls r4, 3 + add r4, sp + adds r4, r5 + movs r5, 0xA8 + lsls r5, 3 + add r5, sp + ldr r3, [r5] + movs r0, 0x2 + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x4 + lsls r0, 8 + add r1, sp, 0x14 + adds r1, r6 + ldr r1, [r1] + subs r0, r1 + movs r1, 0x18 + bl __divsi3 + str r0, [r4] + movs r1, 0x1 +_08046AFA: + adds r7, 0x1 + movs r2, 0xAD + lsls r2, 3 + add r2, sp + ldr r2, [r2] + cmp r7, r2 + bge _08046B0A + b _080469F6 +_08046B0A: + cmp r1, 0 + bne _08046B54 + movs r3, 0xAD + lsls r3, 3 + add r3, sp + ldr r3, [r3] + cmp r3, 0x1 + ble _08046B3C + ldr r0, _08046B34 + ldr r1, [r0] + ldr r4, _08046B38 + add r4, sp + ldr r0, [r4] + bl sub_80522A8 + b _08046C7C + .align 2, 0 +_08046B2C: .4byte 0x0000052c +_08046B30: .4byte 0x000004b4 +_08046B34: .4byte gUnknown_80F945C +_08046B38: .4byte 0x00000524 +_08046B3C: + ldr r0, _08046B4C + ldr r1, [r0] + ldr r5, _08046B50 + add r5, sp + ldr r0, [r5] + bl sub_80522A8 + b _08046C7C + .align 2, 0 +_08046B4C: .4byte gUnknown_80F943C +_08046B50: .4byte 0x00000524 +_08046B54: + mov r0, r9 + cmp r0, 0 + beq _08046B68 + ldr r0, _08046C90 + ldr r1, [r0] + ldr r2, _08046C94 + add r2, sp + ldr r0, [r2] + bl sub_80522A8 +_08046B68: + movs r3, 0 + mov r9, r3 + ldr r0, _08046C98 + ldr r0, [r0] + ldr r4, _08046C9C + adds r0, r4 + ldrb r0, [r0] + movs r5, 0xA6 + lsls r5, 3 + add r5, sp + str r0, [r5] + mov r10, r3 + movs r6, 0 +_08046B82: + movs r7, 0 + mov r0, r10 + adds r0, 0x55 + movs r1, 0xA7 + lsls r1, 3 + add r1, sp + str r0, [r1] + adds r2, r6, 0x1 + ldr r3, _08046CA0 + add r3, sp + str r2, [r3] + movs r4, 0xAD + lsls r4, 3 + add r4, sp + ldr r4, [r4] + cmp r7, r4 + bge _08046C14 + mov r5, r9 + lsls r5, 24 + mov r8, r5 +_08046BAA: + movs r0, 0x74 + adds r5, r7, 0 + muls r5, r0 + mov r4, sp + adds r4, r5 + adds r4, 0x4 + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08046C06 + ldr r0, _08046CA4 + add r0, sp + lsls r2, r7, 3 + adds r0, r2 + ldr r1, [r0] + movs r0, 0x97 + lsls r0, 3 + add r0, sp + adds r0, r2 + ldr r2, [r0] + adds r0, r4, 0 + bl sub_804539C + mov r0, r10 + bl sub_8009C7C + add r2, sp, 0x20 + adds r2, r5 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + str r1, [r2] + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r2, 0xA6 + lsls r2, 3 + add r2, sp + ldr r1, [r2] + movs r2, 0x1 + mov r4, r8 + lsrs r3, r4, 24 + bl sub_80462AC +_08046C06: + adds r7, 0x1 + movs r5, 0xAD + lsls r5, 3 + add r5, sp + ldr r5, [r5] + cmp r7, r5 + blt _08046BAA +_08046C14: + movs r0, 0x13 + bl sub_803E46C + movs r0, 0xA7 + lsls r0, 3 + add r0, sp + ldr r0, [r0] + mov r10, r0 + movs r0, 0x3 + ands r0, r6 + cmp r0, 0 + bne _08046C30 + movs r1, 0x1 + add r9, r1 +_08046C30: + movs r0, 0x7 + mov r2, r9 + ands r2, r0 + mov r9, r2 + ldr r3, _08046CA0 + add r3, sp + ldr r6, [r3] + cmp r6, 0x17 + ble _08046B82 + movs r4, 0xAD + lsls r4, 3 + add r4, sp + ldr r4, [r4] + cmp r4, 0 + ble _08046C7C + ldr r0, _08046CA8 + add r0, sp + ldr r5, [r0] + ldr r4, _08046CAC + add r4, sp + movs r1, 0xAD + lsls r1, 3 + add r1, sp + ldr r7, [r1] +_08046C60: + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0 + blt _08046C72 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_80460F8 +_08046C72: + adds r5, 0x4 + adds r4, 0x4 + subs r7, 0x1 + cmp r7, 0 + bne _08046C60 +_08046C7C: + movs r3, 0xA9 + lsls r3, 3 + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08046C90: .4byte gUnknown_80F947C +_08046C94: .4byte 0x00000524 +_08046C98: .4byte gUnknown_203B418 +_08046C9C: .4byte 0x00018210 +_08046CA0: .4byte 0x0000053c +_08046CA4: .4byte 0x000004b4 +_08046CA8: .4byte 0x0000052c +_08046CAC: .4byte 0x0000048c + thumb_func_end sub_804687C + + thumb_func_start sub_8046CB0 +sub_8046CB0: + push {lr} + lsls r1, 24 + lsrs r1, 24 + ldr r0, [r0, 0x70] + adds r3, r0, 0 + adds r0, 0x60 + ldrb r2, [r0] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _08046CDC + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + bne _08046CDC + adds r0, r3, 0 + adds r0, 0x62 + ldrb r0, [r0] + cmp r0, r1 + bne _08046CDC + movs r0, 0x1 + b _08046CDE +_08046CDC: + movs r0, 0 +_08046CDE: + pop {r1} + bx r1 + thumb_func_end sub_8046CB0 + + thumb_func_start sub_8046CE4 +sub_8046CE4: + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + movs r0, 0x64 + bl sub_8084100 + adds r1, r0, 0 + movs r2, 0 + ldr r3, _08046D04 +_08046CF6: + lsls r0, r1, 2 + adds r0, r3 + ldr r0, [r0] + cmp r0, r5 + bgt _08046D08 + strb r1, [r4, 0x1] + b _08046D18 + .align 2, 0 +_08046D04: .4byte gUnknown_810A3F0 +_08046D08: + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r1, r0, 1 + adds r2, 0x1 + cmp r2, 0xC7 + ble _08046CF6 + movs r0, 0x1 + strb r0, [r4, 0x1] +_08046D18: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8046CE4 + + thumb_func_start sub_8046D20 +sub_8046D20: + push {r4,r5,lr} + ldr r4, _08046D5C + ldr r0, [r4] + ldrb r5, [r0, 0x8] + bl sub_8046D70 + ldr r1, [r4] + strb r0, [r1, 0x8] + ldr r0, [r4] + ldrb r0, [r0, 0x8] + cmp r0, 0x1 + bne _08046D64 + cmp r5, 0 + bne _08046D64 + ldr r0, _08046D60 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl sub_8052B8C + adds r1, r0, 0 + cmp r1, 0x1 + bne _08046D64 + ldr r0, [r4] + strb r1, [r0, 0x4] + ldr r1, [r4] + movs r0, 0x2 + strb r0, [r1, 0x11] + b _08046D68 + .align 2, 0 +_08046D5C: .4byte gUnknown_203B418 +_08046D60: .4byte gUnknown_80FA408 +_08046D64: + bl sub_8046D8C +_08046D68: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8046D20 + + thumb_func_start sub_8046D70 +sub_8046D70: + push {lr} + ldr r0, _08046D84 + ldr r0, [r0] + ldr r1, _08046D88 + adds r0, r1 + ldrb r0, [r0] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08046D84: .4byte gUnknown_203B418 +_08046D88: .4byte 0x0000068a + thumb_func_end sub_8046D70 + + thumb_func_start sub_8046D8C +sub_8046D8C: + push {r4-r7,lr} + sub sp, 0xC + movs r6, 0 + ldr r5, _08046EDC + movs r4, 0 +_08046D96: + movs r7, 0 + movs r0, 0x1 + negs r0, r0 + str r0, [sp] + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r3, 0 + ldr r2, [r5] +_08046DA6: + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08046DC8 + ldrb r0, [r2, 0x2] + cmp r0, 0x79 + bne _08046DB8 + str r3, [sp] +_08046DB8: + ldrb r0, [r2, 0x2] + cmp r0, 0x77 + bne _08046DC0 + str r3, [sp, 0x4] +_08046DC0: + ldrb r0, [r2, 0x2] + cmp r0, 0x78 + bne _08046DC8 + str r3, [sp, 0x8] +_08046DC8: + adds r2, 0x4 + adds r3, 0x1 + cmp r3, 0x13 + ble _08046DA6 + ldr r1, [sp] + cmp r1, 0 + blt _08046E1E + ldr r0, [sp, 0x4] + cmp r0, 0 + blt _08046E1E + ldr r0, [sp, 0x8] + cmp r0, 0 + blt _08046E1E + movs r7, 0x1 + movs r6, 0x1 + lsls r1, 2 + ldr r0, [r5] + adds r1, r0 + strb r4, [r1, 0x2] + strb r4, [r1, 0x1] + strb r4, [r1] + ldr r0, [sp, 0x4] + lsls r0, 2 + ldr r1, [r5] + adds r0, r1 + strb r4, [r0, 0x2] + strb r4, [r0, 0x1] + strb r4, [r0] + ldr r0, [sp, 0x8] + lsls r0, 2 + ldr r1, [r5] + adds r0, r1 + strb r4, [r0, 0x2] + strb r4, [r0, 0x1] + strb r4, [r0] + ldr r1, [sp] + lsls r1, 2 + ldr r0, [r5] + adds r0, r1 + movs r1, 0x7A + movs r2, 0 + bl sub_8090A8C +_08046E1E: + cmp r7, 0 + bne _08046D96 + bl sub_80910B4 + cmp r6, 0 + beq _08046ED4 + bl sub_8083600 + adds r4, r0, 0 + ldr r0, _08046EE0 + bl sub_80855E4 + ldr r6, _08046EE4 + ldr r0, [r6] + ldr r5, _08046EE8 + adds r0, r5 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _08046EEC + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + movs r0, 0x3C + movs r1, 0x41 + bl sub_803E708 + ldr r0, _08046EF0 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + adds r0, r4, 0 + movs r1, 0x4 + movs r2, 0xA + movs r3, 0 + bl sub_80869E4 + adds r0, r4, 0 + adds r0, 0xC + movs r1, 0x86 + lsls r1, 1 + movs r2, 0 + bl sub_80416E0 + adds r0, r4, 0 + movs r1, 0xD7 + bl sub_80421C0 + movs r0, 0x3C + movs r1, 0x41 + bl sub_803E708 + ldr r0, _08046EF4 + adds r1, r4, 0 + movs r2, 0 + bl sub_8045B94 + ldr r0, _08046EF8 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + movs r0, 0xA + movs r1, 0x41 + bl sub_803E708 + movs r0, 0xD4 + bl sub_8083E38 + ldr r0, _08046EFC + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + movs r0, 0xA + movs r1, 0x41 + bl sub_803E708 + movs r0, 0x1 + bl sub_804178C + ldr r0, [r6] + adds r0, r5 + strb r7, [r0] + bl sub_8040A84 +_08046ED4: + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08046EDC: .4byte gUnknown_203B460 +_08046EE0: .4byte sub_80861A8 +_08046EE4: .4byte gUnknown_203B418 +_08046EE8: .4byte 0x0001356c +_08046EEC: .4byte gUnknown_810531C +_08046EF0: .4byte gUnknown_8105360 +_08046EF4: .4byte gUnknown_202DF98 +_08046EF8: .4byte gUnknown_81053A8 +_08046EFC: .4byte gUnknown_8105434 + thumb_func_end sub_8046D8C + + thumb_func_start sub_8046F00 +sub_8046F00: + push {r4-r7,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0x2] + bl sub_8090BD0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bne _08046F7C + ldrb r0, [r4, 0x2] + bl sub_80913CC + lsls r0, 16 + lsrs r7, r0, 16 + ldrb r0, [r4, 0x2] + bl sub_80915A0 + lsls r0, 24 + cmp r0, 0 + bne _08046F6E + movs r6, 0 +_08046F2A: + ldr r0, _08046F74 + ldr r0, [r0] + lsls r1, r6, 2 + ldr r2, _08046F78 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08046F68 + ldr r0, [r4, 0x70] + movs r2, 0x2 + ldrsh r1, [r0, r2] + adds r0, r7, 0 + bl sub_808E190 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + movs r1, 0 + bl sub_8070B6C + lsls r0, 24 + cmp r0, 0 + beq _08046F64 + movs r5, 0 +_08046F64: + cmp r5, 0 + bne _08046F7C +_08046F68: + adds r6, 0x1 + cmp r6, 0x3 + ble _08046F2A +_08046F6E: + movs r0, 0 + b _08046F7E + .align 2, 0 +_08046F74: .4byte gUnknown_203B418 +_08046F78: .4byte 0x0001357c +_08046F7C: + movs r0, 0x1 +_08046F7E: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8046F00 + + thumb_func_start sub_8046F84 +sub_8046F84: + push {r4-r7,lr} + adds r7, r0, 0 + movs r5, 0 + ldr r4, _08047000 + movs r6, 0x1 + movs r3, 0 +_08046F90: + lsls r1, r5, 2 + ldr r0, [r4] + adds r2, r0, r1 + ldrb r1, [r2] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08046FAE + ldrb r0, [r2] + ands r0, r7 + cmp r0, 0 + beq _08046FAE + strb r3, [r2, 0x2] + strb r3, [r2, 0x1] + strb r3, [r2] +_08046FAE: + adds r5, 0x1 + cmp r5, 0x13 + ble _08046F90 + bl sub_80910B4 + movs r5, 0 + movs r6, 0 +_08046FBC: + ldr r0, _08047004 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _08047008 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08046FF4 + ldr r0, [r4, 0x70] + adds r2, r0, 0 + adds r2, 0x60 + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08046FF4 + ldrb r0, [r2] + ands r0, r7 + cmp r0, 0 + beq _08046FF4 + strb r6, [r2, 0x2] + strb r6, [r2, 0x1] + strb r6, [r2] +_08046FF4: + adds r5, 0x1 + cmp r5, 0x3 + ble _08046FBC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08047000: .4byte gUnknown_203B460 +_08047004: .4byte gUnknown_203B418 +_08047008: .4byte 0x0001357c + thumb_func_end sub_8046F84 + + thumb_func_start sub_804700C +sub_804700C: + push {r4,r5,lr} + movs r5, 0 + ldr r4, _08047078 +_08047012: + lsls r1, r5, 2 + ldr r0, [r4] + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0804702C + adds r0, r2, 0 + movs r1, 0x46 + movs r2, 0 + bl sub_8090A8C +_0804702C: + adds r5, 0x1 + cmp r5, 0x13 + ble _08047012 + bl sub_80910B4 + movs r5, 0 +_08047038: + ldr r0, _0804707C + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _08047080 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _0804706C + ldr r0, [r4, 0x70] + adds r2, r0, 0 + adds r2, 0x60 + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0804706C + adds r0, r2, 0 + movs r1, 0x46 + movs r2, 0 + bl sub_8090A8C +_0804706C: + adds r5, 0x1 + cmp r5, 0x3 + ble _08047038 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08047078: .4byte gUnknown_203B460 +_0804707C: .4byte gUnknown_203B418 +_08047080: .4byte 0x0001357c + thumb_func_end sub_804700C + + thumb_func_start sub_8047084 +sub_8047084: + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 + ldr r0, _080470E8 + ldr r2, [r0] + movs r3, 0x1 +_08047090: + ldrb r1, [r2] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080470A2 + ldrb r0, [r2] + ands r0, r6 + cmp r0, 0 + bne _080470E2 +_080470A2: + adds r2, 0x4 + adds r5, 0x1 + cmp r5, 0x13 + ble _08047090 + bl sub_80910B4 + movs r5, 0 +_080470B0: + ldr r0, _080470EC + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _080470F0 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _080470F4 + ldr r0, [r4, 0x70] + adds r2, r0, 0 + adds r2, 0x60 + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080470F4 + ldrb r0, [r2] + ands r0, r6 + cmp r0, 0 + beq _080470F4 +_080470E2: + movs r0, 0x1 + b _080470FC + .align 2, 0 +_080470E8: .4byte gUnknown_203B460 +_080470EC: .4byte gUnknown_203B418 +_080470F0: .4byte 0x0001357c +_080470F4: + adds r5, 0x1 + cmp r5, 0x3 + ble _080470B0 + movs r0, 0 +_080470FC: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8047084 + + thumb_func_start sub_8047104 +sub_8047104: + push {r4-r6,lr} + movs r6, 0 + movs r5, 0 +_0804710A: + ldr r0, _08047154 + lsls r1, r6, 2 + ldr r0, [r0] + adds r4, r0, r1 + ldrb r1, [r4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08047142 + ldrb r0, [r4, 0x2] + cmp r0, 0x69 + bne _08047132 + adds r0, r4, 0 + bl sub_80915D4 + bl sub_80913A0 + strb r5, [r4, 0x2] + strb r5, [r4, 0x1] + strb r5, [r4] +_08047132: + ldrb r1, [r4] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08047142 + strb r5, [r4, 0x2] + strb r5, [r4, 0x1] + strb r5, [r4] +_08047142: + adds r6, 0x1 + cmp r6, 0x13 + ble _0804710A + bl sub_80910B4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08047154: .4byte gUnknown_203B460 + thumb_func_end sub_8047104 + + thumb_func_start sub_8047158 +sub_8047158: + push {r4-r6,lr} + movs r3, 0 + ldr r5, _0804718C + movs r6, 0x1 + movs r4, 0x4 +_08047162: + lsls r1, r3, 2 + ldr r0, [r5] + adds r2, r0, r1 + ldrb r1, [r2] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08047180 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _08047180 + movs r0, 0xFB + ands r0, r1 + strb r0, [r2] +_08047180: + adds r3, 0x1 + cmp r3, 0x13 + ble _08047162 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804718C: .4byte gUnknown_203B460 + thumb_func_end sub_8047158 + + thumb_func_start sub_8047190 +sub_8047190: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _080472E8 + add sp, r4 + mov r9, r0 + str r1, [sp, 0x214] + ldr r6, _080472EC + ldr r1, [r6] + ldr r4, _080472F0 + adds r0, r1, r4 + ldrb r0, [r0] + str r0, [sp, 0x220] + mov r8, r3 + adds r7, r1, 0 + adds r7, 0xC0 + movs r0, 0x3 + str r0, [r7] + adds r0, r1, 0 + adds r0, 0xE4 + movs r4, 0 + strb r4, [r0] + subs r0, 0x4 + movs r5, 0x1 + strb r5, [r0] + adds r0, 0x2 + strb r4, [r0] + ldr r0, [sp, 0x214] + str r0, [r7, 0x70] + str r4, [r7, 0x1C] + ldr r0, [r2] + str r0, [r7, 0x4] + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, 0x4 + lsls r1, 8 + movs r3, 0x2 + ldrsh r0, [r2, r3] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 11 + adds r0, r7, 0 + bl sub_8045394 + strh r4, [r7, 0x26] + str r4, [sp, 0x224] + mov r0, r9 + bl sub_80450F8 + cmp r0, 0x1 + bne _08047214 + mov r0, r9 + movs r1, 0x2A + bl sub_8046CB0 + lsls r0, 24 + lsrs r0, 24 + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 + str r1, [sp, 0x224] +_08047214: + ldr r0, [sp, 0x260] + movs r1, 0x2 + ldrsh r0, [r0, r1] + str r0, [sp, 0x218] + movs r2, 0 + str r2, [sp, 0x21C] + ldr r0, [r6] + ldr r3, _080472F4 + adds r0, r3 + strb r5, [r0] +_08047228: + ldr r4, [r7, 0x4] + mov r10, r4 + ldr r1, [sp, 0x260] + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _080472AE + ldrb r0, [r1] + cmp r0, 0 + bne _080472AE + movs r2, 0x4 + ldrsh r0, [r7, r2] + ldr r2, _080472F8 + mov r3, r8 + lsls r4, r3, 2 + adds r2, r4, r2 + movs r3, 0 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r3, 0x6 + ldrsh r1, [r7, r3] + movs r3, 0x2 + ldrsh r2, [r2, r3] + adds r1, r2 + bl sub_804954C + adds r5, r0, 0 + ldrh r1, [r5] + movs r0, 0x3 + ands r0, r1 + str r4, [sp, 0x230] + cmp r0, 0 + bne _080472AE + movs r6, 0 + ldr r1, _080472FC + mov r4, r10 + lsls r0, r4, 16 + asrs r0, 16 + str r0, [sp, 0x23C] + ldr r0, [sp, 0x230] + adds r5, r0, r1 + asrs r2, r4, 16 +_0804727A: + ldrb r4, [r5] + cmp r4, 0x7 + bgt _080472A6 + ldr r0, _080472F8 + lsls r1, r4, 2 + adds r1, r0 + movs r3, 0 + ldrsh r0, [r1, r3] + ldr r3, [sp, 0x23C] + adds r0, r3 + movs r3, 0x2 + ldrsh r1, [r1, r3] + adds r1, r2 + str r2, [sp, 0x234] + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + ldr r2, [sp, 0x234] + cmp r0, 0 + bne _08047300 +_080472A6: + adds r5, 0x1 + adds r6, 0x1 + cmp r6, 0x3 + ble _0804727A +_080472AE: + ldr r0, _080472F8 + mov r4, r8 + lsls r2, r4, 2 + adds r3, r2, r0 + ldrh r1, [r3] + ldrh r0, [r7, 0x4] + adds r1, r0 + strh r1, [r7, 0x4] + ldrh r0, [r3, 0x2] + ldrh r4, [r7, 0x6] + adds r0, r4 + strh r0, [r7, 0x6] + lsls r1, 16 + asrs r1, 16 + str r2, [sp, 0x230] + cmp r1, 0 + blt _080472E0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + blt _080472E0 + cmp r1, 0x37 + bgt _080472E0 + cmp r0, 0x1F + ble _08047304 +_080472E0: + movs r0, 0x2 + mov r10, r0 + b _0804744C + .align 2, 0 +_080472E8: .4byte 0xfffffdc0 +_080472EC: .4byte gUnknown_203B418 +_080472F0: .4byte 0x00018210 +_080472F4: .4byte 0x0001c05e +_080472F8: .4byte gUnknown_80F4448 +_080472FC: .4byte gUnknown_80F4D64 +_08047300: + mov r8, r4 + b _080472AE +_08047304: + movs r1, 0 + ldrsh r0, [r3, r1] + lsls r0, 10 + str r0, [sp, 0x228] + movs r2, 0x2 + ldrsh r0, [r3, r2] + lsls r0, 10 + str r0, [sp, 0x22C] + mov r3, r8 + lsls r6, r3, 24 + movs r5, 0x5 +_0804731A: + movs r4, 0 + adds r0, r7, 0 + ldr r1, [sp, 0x228] + ldr r2, [sp, 0x22C] + bl sub_804539C + bl sub_804AF74 + lsls r0, 24 + movs r2, 0 + cmp r0, 0 + beq _08047334 + movs r2, 0x3 +_08047334: + ldr r0, [r7, 0xC] + cmp r0, 0 + bge _0804733C + adds r0, 0xFF +_0804733C: + asrs r0, 8 + adds r0, 0x8 + ldr r1, [r7, 0x10] + cmp r1, 0 + bge _08047348 + adds r1, 0xFF +_08047348: + asrs r1, 8 + adds r1, 0x10 + bl sub_8083568 + lsls r0, 24 + cmp r0, 0 + beq _08047358 + movs r4, 0x1 +_08047358: + movs r0, 0x1 + str r0, [sp] + adds r0, r7, 0 + ldr r1, [sp, 0x220] + movs r2, 0 + lsrs r3, r6, 24 + bl sub_80462AC + lsls r0, 24 + cmp r0, 0 + beq _08047370 + movs r4, 0x1 +_08047370: + cmp r4, 0 + beq _0804737A + movs r0, 0x12 + bl sub_803E46C +_0804737A: + subs r5, 0x1 + cmp r5, 0 + bge _0804731A + movs r4, 0x4 + ldrsh r0, [r7, r4] + movs r2, 0x6 + ldrsh r1, [r7, r2] + bl sub_804954C + adds r5, r0, 0 + ldrh r1, [r5] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _080473A2 + ldr r3, [sp, 0x260] + ldrb r0, [r3] + cmp r0, 0 + bne _080473A2 + b _0804757A +_080473A2: + ldr r1, [r5, 0x10] + cmp r1, 0 + beq _08047436 + movs r4, 0 + ldr r2, [sp, 0x260] + ldrb r0, [r2] + cmp r0, 0 + bne _080473CE + adds r0, r1, 0 + bl sub_80450F8 + cmp r0, 0x1 + bne _080473CE + ldr r0, [r5, 0x10] + movs r1, 0x26 + bl sub_8046CB0 + lsls r0, 24 + lsrs r0, 24 + negs r1, r0 + orrs r1, r0 + lsrs r4, r1, 31 +_080473CE: + cmp r4, 0 + beq _080473E0 + movs r3, 0x4 + add r8, r3 + movs r0, 0x7 + mov r4, r8 + ands r4, r0 + mov r8, r4 + b _08047436 +_080473E0: + movs r6, 0x1 + ldr r0, [r5, 0x10] + bl sub_80450F8 + cmp r0, 0x1 + bne _08047406 + add r4, sp, 0x208 + adds r0, r4, 0 + ldr r1, _080474B8 + bl sub_8092A88 + ldr r0, [r5, 0x10] + adds r1, r4, 0 + bl sub_80571F0 + lsls r0, 24 + cmp r0, 0 + beq _08047406 + movs r6, 0 +_08047406: + cmp r6, 0 + beq _08047436 + ldr r0, [sp, 0x21C] + cmp r0, 0x3F + bgt _0804742C + lsls r0, 3 + mov r4, sp + adds r4, r0 + adds r4, 0x8 + ldr r0, [r5, 0x10] + str r0, [r4] + ldr r1, [r5, 0x10] + mov r0, r9 + bl sub_8047930 + strb r0, [r4, 0x4] + ldr r1, [sp, 0x21C] + adds r1, 0x1 + str r1, [sp, 0x21C] +_0804742C: + ldr r2, [sp, 0x260] + ldrb r0, [r2] + cmp r0, 0 + bne _08047436 + b _08047574 +_08047436: + ldr r3, [sp, 0x218] + subs r3, 0x1 + str r3, [sp, 0x218] + cmp r3, 0 + ble _08047442 + b _08047228 +_08047442: + movs r4, 0x1 + mov r10, r4 + mov r0, r8 + lsls r0, 2 + str r0, [sp, 0x230] +_0804744C: + ldr r0, _080474BC + ldr r0, [r0] + ldr r1, _080474C0 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r2, [sp, 0x21C] + cmp r2, 0 + ble _0804752C + add r5, sp, 0x8 + adds r6, r2, 0 +_08047462: + ldr r4, [r5] + ldrb r0, [r5, 0x4] + cmp r0, 0 + beq _080474D0 + ldr r0, _080474C4 + adds r1, r4, 0 + movs r2, 0 + bl sub_8045B94 + ldr r0, _080474C8 + ldr r1, [sp, 0x214] + bl sub_8045C08 + ldr r0, _080474CC + ldr r2, [r0] + mov r0, r9 + adds r1, r4, 0 + bl sub_80522F4 + mov r0, r9 + adds r1, r4, 0 + bl sub_807A96C + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r3, [sp, 0x224] + cmp r3, 0 + bne _080474A4 + ldr r3, [sp, 0x260] + ldrb r0, [r3] + cmp r0, 0 + beq _080474A6 +_080474A4: + movs r1, 0x1 +_080474A6: + str r4, [sp] + ldr r4, [sp, 0x214] + str r4, [sp, 0x4] + movs r0, 0x1 + mov r3, r9 + bl sub_80479B8 + b _08047524 + .align 2, 0 +_080474B8: .4byte 0x00000195 +_080474BC: .4byte gUnknown_203B418 +_080474C0: .4byte 0x0001c05e +_080474C4: .4byte gUnknown_202DF98 +_080474C8: .4byte gUnknown_202DE58 +_080474CC: .4byte gUnknown_80F94C4 +_080474D0: + ldr r1, [sp, 0x260] + ldrb r0, [r1] + cmp r0, 0 + bne _080474E2 + ldr r2, [sp, 0x21C] + cmp r2, 0x1 + bne _080474E2 + movs r3, 0x1 + mov r10, r3 +_080474E2: + ldr r0, _0804750C + adds r1, r4, 0 + movs r2, 0 + bl sub_8045B94 + ldr r0, _08047510 + ldr r1, [sp, 0x214] + bl sub_8045BF8 + ldr r1, [sp, 0x260] + ldrb r0, [r1] + cmp r0, 0 + beq _08047518 + ldr r0, _08047514 + ldr r2, [r0] + mov r0, r9 + adds r1, r4, 0 + bl sub_80522F4 + b _08047524 + .align 2, 0 +_0804750C: .4byte gUnknown_202DF98 +_08047510: .4byte gUnknown_202DE58 +_08047514: .4byte gUnknown_80F94D8 +_08047518: + ldr r0, _08047564 + ldr r2, [r0] + mov r0, r9 + adds r1, r4, 0 + bl sub_80522F4 +_08047524: + adds r5, 0x8 + subs r6, 0x1 + cmp r6, 0 + bne _08047462 +_0804752C: + ldr r2, _08047568 + ldr r3, [sp, 0x230] + adds r2, r3, r2 + movs r4, 0 + ldrsh r1, [r2, r4] + lsls r1, 19 + lsrs r1, 16 + ldr r4, _0804756C + add r3, sp, 0x210 + ldr r0, [r3] + ands r0, r4 + orrs r0, r1 + str r0, [r3] + movs r4, 0x2 + ldrsh r1, [r2, r4] + lsls r1, 19 + ldr r2, _08047570 + ands r0, r2 + orrs r0, r1 + str r0, [r3] + mov r0, r10 + cmp r0, 0x1 + beq _08047584 + cmp r0, 0x1 + bcc _080475A8 + cmp r0, 0x2 + beq _08047596 + b _080475A8 + .align 2, 0 +_08047564: .4byte gUnknown_80F94F0 +_08047568: .4byte gUnknown_80F4448 +_0804756C: .4byte 0xffff0000 +_08047570: .4byte 0x0000ffff +_08047574: + movs r1, 0 + mov r10, r1 + b _0804744C +_0804757A: + mov r2, r10 + str r2, [r7, 0x4] + movs r3, 0x1 + mov r10, r3 + b _0804744C +_08047584: + add r0, sp, 0x210 + str r0, [sp] + mov r0, r9 + adds r1, r7, 0 + ldr r2, [sp, 0x214] + movs r3, 0x1 + bl sub_804652C + b _080475A8 +_08047596: + ldr r0, _080475BC + ldr r1, [sp, 0x214] + bl sub_8045C08 + ldr r0, _080475C0 + ldr r1, [r0] + mov r0, r9 + bl sub_80522A8 +_080475A8: + movs r3, 0x90 + lsls r3, 2 + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080475BC: .4byte gUnknown_202DE58 +_080475C0: .4byte gUnknown_80F9530 + thumb_func_end sub_8047190 + + thumb_func_start sub_80475C4 +sub_80475C4: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x44 + str r0, [sp, 0x10] + str r1, [sp, 0x14] + adds r7, r2, 0 + str r3, [sp, 0x18] + ldr r0, _08047848 + mov r8, r0 + ldr r2, [r0] + ldr r1, _0804784C + adds r0, r2, r1 + ldrb r0, [r0] + str r0, [sp, 0x24] + movs r4, 0 + movs r5, 0 + adds r3, r2, 0 + adds r3, 0xC0 + str r3, [sp, 0x1C] + movs r0, 0x3 + str r0, [r3] + adds r0, r2, 0 + adds r0, 0xE4 + strb r4, [r0] + adds r1, r2, 0 + adds r1, 0xE0 + movs r0, 0x1 + strb r0, [r1] + adds r0, r2, 0 + adds r0, 0xE2 + strb r4, [r0] + ldr r0, [sp, 0x14] + str r0, [r3, 0x70] + str r5, [r3, 0x1C] + ldr r0, [r7] + str r0, [r3, 0x4] + movs r1, 0 + ldrsh r0, [r7, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, 0x4 + lsls r1, 8 + movs r2, 0x2 + ldrsh r0, [r7, r2] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 3 + adds r2, 0x4 + lsls r2, 8 + ldr r0, [sp, 0x1C] + bl sub_8045394 + ldr r3, [sp, 0x1C] + strh r4, [r3, 0x26] + movs r0, 0x1 + str r0, [sp, 0x20] + movs r1, 0 + str r1, [sp, 0x28] + ldr r0, [sp, 0x10] + bl sub_80450F8 + cmp r0, 0x1 + bne _0804765E + ldr r0, [sp, 0x10] + movs r1, 0x2A + bl sub_8046CB0 + lsls r0, 24 + lsrs r0, 24 + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 + str r1, [sp, 0x28] +_0804765E: + adds r0, r7, 0 + bl sub_803F428 + lsls r0, 24 + lsrs r0, 24 + negs r1, r0 + orrs r1, r0 + lsrs r4, r1, 31 + ldr r0, [sp, 0x18] + bl sub_803F428 + lsls r0, 24 + cmp r0, 0 + beq _0804767C + movs r4, 0x1 +_0804767C: + mov r2, r8 + ldr r0, [r2] + ldr r3, _08047850 + adds r0, r3 + add r1, sp, 0x20 + ldrb r1, [r1] + strb r1, [r0] + cmp r4, 0 + bne _08047690 + b _080477D0 +_08047690: + ldr r2, [sp, 0x1C] + movs r3, 0x4 + ldrsh r0, [r2, r3] + ldr r1, [sp, 0x18] + movs r2, 0 + ldrsh r1, [r1, r2] + mov r9, r1 + subs r1, r0, r1 + cmp r1, 0 + bge _080476A6 + negs r1, r1 +_080476A6: + ldr r3, [sp, 0x1C] + movs r2, 0x6 + ldrsh r0, [r3, r2] + ldr r3, [sp, 0x18] + movs r2, 0x2 + ldrsh r3, [r3, r2] + mov r10, r3 + subs r0, r3 + cmp r0, 0 + bge _080476BC + negs r0, r0 +_080476BC: + adds r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r4, r0, 2 + adds r3, r4, 0 + adds r3, 0xC + str r3, [sp, 0x30] + cmp r3, 0x3F + ble _080476D2 + movs r0, 0x40 + str r0, [sp, 0x30] +_080476D2: + movs r1, 0 + str r1, [sp, 0x3C] + movs r0, 0x80 + lsls r0, 12 + adds r1, r4, 0 + bl __divsi3 + str r0, [sp, 0x40] + movs r2, 0 + ldrsh r1, [r7, r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 11 + mov r8, r0 + movs r3, 0x2 + ldrsh r1, [r7, r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r7, r0, 11 + mov r1, r9 + lsls r0, r1, 1 + add r0, r9 + lsls r0, 11 + mov r2, r8 + subs r0, r2 + adds r1, r4, 0 + bl __divsi3 + str r0, [sp, 0x34] + mov r3, r10 + lsls r0, r3, 1 + add r0, r10 + lsls r0, 11 + subs r0, r7 + adds r1, r4, 0 + bl __divsi3 + str r0, [sp, 0x38] + subs r0, r4, 0x3 + cmp r0, 0 + ble _080477D0 + str r0, [sp, 0x2C] +_08047726: + movs r0, 0 + mov r10, r0 + ldr r0, [sp, 0x3C] + cmp r0, 0 + bge _08047732 + adds r0, 0xFF +_08047732: + asrs r0, 8 + bl sub_8009C7C + ldr r2, [sp, 0x30] + adds r1, r0, 0 + muls r1, r2 + movs r0, 0x80 + lsls r0, 3 + mov r2, r8 + adds r3, r2, r0 + adds r2, r7, r0 + ldr r0, [sp, 0x1C] + str r1, [r0, 0x1C] + mov r0, r8 + cmp r0, 0 + bge _08047754 + adds r0, 0xFF +_08047754: + asrs r0, 8 + adds r0, 0x8 + mov r9, r0 + adds r0, r7, 0 + cmp r7, 0 + bge _08047762 + adds r0, 0xFF +_08047762: + asrs r0, 8 + adds r4, r0, 0 + adds r4, 0x10 + ldr r1, [sp, 0x3C] + ldr r0, [sp, 0x40] + adds r1, r0 + str r1, [sp, 0x3C] + ldr r0, [sp, 0x1C] + adds r1, r3, 0 + bl sub_8045394 + bl sub_804AF74 + lsls r0, 24 + movs r2, 0 + cmp r0, 0 + beq _08047786 + movs r2, 0x3 +_08047786: + mov r0, r9 + adds r1, r4, 0 + bl sub_8083568 + lsls r0, 24 + cmp r0, 0 + beq _08047798 + movs r1, 0x1 + mov r10, r1 +_08047798: + movs r0, 0x1 + str r0, [sp] + ldr r0, [sp, 0x1C] + ldr r1, [sp, 0x24] + movs r2, 0 + movs r3, 0xFF + bl sub_80462AC + lsls r0, 24 + cmp r0, 0 + beq _080477B2 + movs r2, 0x1 + mov r10, r2 +_080477B2: + mov r3, r10 + cmp r3, 0 + beq _080477BE + movs r0, 0x17 + bl sub_803E46C +_080477BE: + ldr r0, [sp, 0x34] + add r8, r0 + ldr r1, [sp, 0x38] + adds r7, r1 + ldr r2, [sp, 0x2C] + subs r2, 0x1 + str r2, [sp, 0x2C] + cmp r2, 0 + bne _08047726 +_080477D0: + ldr r3, [sp, 0x18] + ldr r0, [r3] + ldr r1, [sp, 0x1C] + str r0, [r1, 0x4] + ldr r0, _08047848 + ldr r0, [r0] + ldr r2, _08047850 + adds r0, r2 + movs r1, 0 + strb r1, [r0] + movs r1, 0 + ldrsh r0, [r3, r1] + movs r2, 0x2 + ldrsh r1, [r3, r2] + bl sub_804954C + adds r4, r0, 0 + ldr r0, [r4, 0x10] + cmp r0, 0 + bne _080477FA + b _08047904 +_080477FA: + movs r3, 0x1 + mov r8, r3 + movs r7, 0 + bl sub_80450F8 + cmp r0, 0x1 + bne _08047834 + ldr r0, [r4, 0x10] + movs r1, 0x26 + bl sub_8046CB0 + lsls r0, 24 + lsrs r0, 24 + negs r1, r0 + orrs r1, r0 + lsrs r7, r1, 31 + ldr r1, _08047854 + add r0, sp, 0x8 + bl sub_8092A88 + ldr r0, [r4, 0x10] + add r1, sp, 0x8 + bl sub_80571F0 + lsls r0, 24 + cmp r0, 0 + beq _08047834 + movs r0, 0 + mov r8, r0 +_08047834: + mov r1, r8 + cmp r1, 0 + beq _08047904 + ldr r1, [r4, 0x10] + adds r5, r1, 0 + cmp r7, 0 + beq _0804785C + ldr r0, _08047858 + ands r6, r0 + b _0804786E + .align 2, 0 +_08047848: .4byte gUnknown_203B418 +_0804784C: .4byte 0x00018210 +_08047850: .4byte 0x0001c05e +_08047854: .4byte 0x00000195 +_08047858: .4byte 0xffffff00 +_0804785C: + ldr r0, [sp, 0x10] + bl sub_8047930 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080478CC + ands r1, r6 + adds r6, r1, 0 + orrs r6, r0 +_0804786E: + ldr r0, _080478D0 + ldr r1, [sp, 0x14] + bl sub_8045C08 + ldr r0, _080478D4 + adds r1, r5, 0 + movs r2, 0 + bl sub_8045B94 + lsls r0, r6, 24 + cmp r0, 0 + beq _080478DC + adds r0, r5, 0 + movs r1, 0x8 + bl sub_806CE94 + ldr r0, _080478D8 + ldr r2, [r0] + ldr r0, [sp, 0x10] + adds r1, r5, 0 + bl sub_80522F4 + ldr r0, [sp, 0x10] + adds r1, r5, 0 + bl sub_807A96C + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r3, [sp, 0x28] + cmp r3, 0 + bne _080478B6 + ldr r0, [sp, 0x64] + ldrb r0, [r0] + cmp r0, 0 + beq _080478B8 +_080478B6: + movs r1, 0x1 +_080478B8: + str r5, [sp] + ldr r0, [sp, 0x14] + str r0, [sp, 0x4] + movs r0, 0x1 + ldr r3, [sp, 0x10] + bl sub_80479B8 + movs r1, 0 + str r1, [sp, 0x20] + b _08047904 + .align 2, 0 +_080478CC: .4byte 0xffffff00 +_080478D0: .4byte gUnknown_202DE58 +_080478D4: .4byte gUnknown_202DF98 +_080478D8: .4byte gUnknown_80F94C4 +_080478DC: + cmp r7, 0 + beq _080478F4 + ldr r0, _080478F0 + ldr r2, [r0] + ldr r0, [sp, 0x10] + adds r1, r5, 0 + bl sub_80522F4 + b _08047900 + .align 2, 0 +_080478F0: .4byte gUnknown_80F9510 +_080478F4: + ldr r0, _0804792C + ldr r2, [r0] + ldr r0, [sp, 0x10] + adds r1, r5, 0 + bl sub_80522F4 +_08047900: + movs r2, 0x1 + str r2, [sp, 0x20] +_08047904: + ldr r3, [sp, 0x20] + cmp r3, 0x1 + bne _0804791A + movs r0, 0 + str r0, [sp] + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x1C] + ldr r2, [sp, 0x14] + movs r3, 0 + bl sub_804652C +_0804791A: + add sp, 0x44 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804792C: .4byte gUnknown_80F94F0 + thumb_func_end sub_80475C4 + + thumb_func_start sub_8047930 +sub_8047930: + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldr r1, [r5, 0x70] + ldrb r0, [r1, 0x8] + cmp r0, 0x1 + beq _0804794C + adds r0, r1, 0 + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x4 + beq _0804794C + cmp r0, 0x1 + bne _08047950 +_0804794C: + movs r0, 0 + b _080479B0 +_08047950: + movs r0, 0x64 + bl sub_8084100 + ldr r1, _08047980 + movs r2, 0 + ldrsh r1, [r1, r2] + movs r6, 0 + cmp r0, r1 + bge _08047964 + movs r6, 0x1 +_08047964: + adds r0, r4, 0 + bl sub_80450F8 + cmp r0, 0x1 + bne _08047994 + adds r0, r4, 0 + movs r1, 0x28 + bl sub_8046CB0 + lsls r0, 24 + cmp r0, 0 + beq _08047984 + movs r6, 0 + b _08047994 + .align 2, 0 +_08047980: .4byte gUnknown_80F4FA2 +_08047984: + adds r0, r4, 0 + movs r1, 0x2A + bl sub_8046CB0 + lsls r0, 24 + cmp r0, 0 + beq _08047994 + movs r6, 0x1 +_08047994: + adds r0, r5, 0 + bl sub_80450F8 + cmp r0, 0x1 + bne _080479AE + adds r0, r5, 0 + movs r1, 0x25 + bl sub_8046CB0 + lsls r0, 24 + cmp r0, 0 + beq _080479AE + movs r6, 0 +_080479AE: + adds r0, r6, 0 +_080479B0: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8047930 + + thumb_func_start sub_80479B8 +sub_80479B8: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + adds r4, r3, 0 + ldr r5, [sp, 0x3C] + ldr r7, [sp, 0x40] + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + cmp r6, 0 + beq _08047AD0 + cmp r1, 0 + bne _08047ABC + movs r0, 0 + mov r8, r0 + ldr r1, [r5, 0x70] + mov r9, r1 + ldrb r0, [r1, 0x6] + cmp r0, 0 + beq _08047A20 + ldrb r0, [r7, 0x2] + bl sub_8090BD0 + lsls r0, 24 + cmp r0, 0 + beq _08047A3C + ldrb r0, [r7, 0x2] + bl sub_8090BD0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _08047A3C + ldrb r0, [r7, 0x2] + bl sub_8090BD0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + eors r0, r1 + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 + mov r8, r1 + b _08047A3C +_08047A20: + ldrb r0, [r7, 0x2] + bl sub_8090BD0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _08047A3C + adds r0, r5, 0 + movs r1, 0x2 + bl sub_80718D8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 +_08047A3C: + adds r0, r5, 0 + bl sub_8070C60 + lsls r0, 24 + cmp r0, 0 + beq _08047A4C + movs r0, 0 + mov r8, r0 +_08047A4C: + mov r1, r8 + cmp r1, 0 + beq _08047ABC + mov r0, r9 + adds r0, 0x60 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08047ABC + mov r1, r9 + ldrb r0, [r1, 0x8] + cmp r0, 0x1 + bne _08047A76 + adds r1, r5, 0x4 + adds r0, r4, 0 + adds r2, r7, 0 + bl sub_80464C8 + bl _080482BA +_08047A76: + ldr r0, _08047AAC + bl sub_8083E38 + ldr r0, _08047AB0 + adds r1, r7, 0 + bl sub_8045BF8 + ldr r0, _08047AB4 + adds r1, r5, 0 + movs r2, 0 + bl sub_8045B94 + ldr r0, _08047AB8 + ldr r2, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80522F4 + ldr r0, [r7] + mov r1, r9 + str r0, [r1, 0x60] + adds r0, r5, 0 + bl sub_806A6E8 + bl _080482BA + .align 2, 0 +_08047AAC: .4byte 0x0000014d +_08047AB0: .4byte gUnknown_202DE58 +_08047AB4: .4byte gUnknown_202DF98 +_08047AB8: .4byte gUnknown_80FDBB8 +_08047ABC: + cmp r6, 0 + beq _08047AD0 + adds r0, r5, 0 + adds r1, r7, 0 + bl sub_8042390 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_806F450 +_08047AD0: + ldrb r1, [r7] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08047B2C + ldr r0, _08047B1C + adds r1, r7, 0 + bl sub_8045BF8 + ldr r0, _08047B20 + ldr r2, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80522F4 + cmp r6, 0 + beq _08047B30 + ldr r0, _08047B24 + movs r1, 0 + ldrsh r2, [r0, r1] + add r0, sp, 0x18 + str r0, [sp] + movs r1, 0 + str r1, [sp, 0x4] + ldr r0, _08047B28 + str r0, [sp, 0x8] + str r1, [sp, 0xC] + str r1, [sp, 0x10] + str r1, [sp, 0x14] + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0x1 + bl sub_806F370 + adds r0, r4, 0 + bl sub_8071DA4 + b _080482BA + .align 2, 0 +_08047B1C: .4byte gUnknown_202DE58 +_08047B20: .4byte gUnknown_80FE3E8 +_08047B24: .4byte gUnknown_80F4FAE +_08047B28: .4byte 0x00000217 +_08047B2C: + cmp r6, 0 + bne _08047B38 +_08047B30: + adds r0, r5, 0 + adds r1, r7, 0 + bl sub_804245C +_08047B38: + ldrb r0, [r7, 0x2] + bl sub_8090BD0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08047B56 + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x5 + movs r3, 0 + bl sub_8078B5C +_08047B56: + ldrb r0, [r7, 0x2] + bl sub_8090BD0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + beq _08047B72 + ldrb r0, [r7, 0x2] + bl sub_8090BD0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _08047B9C +_08047B72: + cmp r6, 0 + beq _08047B88 + ldr r0, _08047B84 + movs r1, 0 + ldrsh r2, [r0, r1] + mov r0, sp + adds r0, 0x19 + b _08048284 + .align 2, 0 +_08047B84: .4byte gUnknown_80F4FAC +_08047B88: + ldr r0, _08047B98 + ldr r2, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80522F4 + b _080482B4 + .align 2, 0 +_08047B98: .4byte gUnknown_80FE458 +_08047B9C: + ldrb r0, [r7, 0x2] + subs r0, 0x1 + cmp r0, 0xE8 + bls _08047BA6 + b _08048276 +_08047BA6: + lsls r0, 2 + ldr r1, _08047BB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08047BB0: .4byte _08047BB4 + .align 2, 0 +_08047BB4: + .4byte _08047F58 + .4byte _08047F70 + .4byte _08047F88 + .4byte _08047FA0 + .4byte _08047FB8 + .4byte _08047FD0 + .4byte _08047FF0 + .4byte _08047FE8 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048004 + .4byte _0804825E + .4byte _08048010 + .4byte _0804801A + .4byte _0804804C + .4byte _08048276 + .4byte _0804802E + .4byte _0804809C + .4byte _08048038 + .4byte _08048024 + .4byte _080480BA + .4byte _080480C4 + .4byte _08048042 + .4byte _0804806A + .4byte _08048060 + .4byte _08048056 + .4byte _0804807E + .4byte _080480B0 + .4byte _08048074 + .4byte _080480D8 + .4byte _080480CE + .4byte _08048092 + .4byte _08048088 + .4byte _080480A6 + .4byte _080480E4 + .4byte _080480EE + .4byte _080480F8 + .4byte _08048102 + .4byte _0804810C + .4byte _08048212 + .4byte _08048122 + .4byte _0804813C + .4byte _0804812A + .4byte _08048146 + .4byte _08048152 + .4byte _0804815E + .4byte _0804816A + .4byte _08048176 + .4byte _08048182 + .4byte _0804818E + .4byte _0804819A + .4byte _080481A6 + .4byte _080481B2 + .4byte _080481BE + .4byte _080481CA + .4byte _080481D6 + .4byte _080481E2 + .4byte _080481EE + .4byte _080481FA + .4byte _08048206 + .4byte _08048212 + .4byte _08048220 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _0804823A + .4byte _08048252 + .4byte _08048246 + .4byte _0804826A + .4byte _0804822E + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048276 + .4byte _08048116 +_08047F58: + ldr r0, _08047F6C + movs r1, 0 + ldrsh r2, [r0, r1] + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0x1 + bl sub_80482FC + b _080482B4 + .align 2, 0 +_08047F6C: .4byte gUnknown_80F503A +_08047F70: + ldr r0, _08047F84 + movs r1, 0 + ldrsh r2, [r0, r1] + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0x2 + bl sub_80482FC + b _080482B4 + .align 2, 0 +_08047F84: .4byte gUnknown_80F503C +_08047F88: + ldr r0, _08047F9C + movs r1, 0 + ldrsh r2, [r0, r1] + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0x3 + bl sub_80482FC + b _080482B4 + .align 2, 0 +_08047F9C: .4byte gUnknown_80F503E +_08047FA0: + ldr r0, _08047FB4 + movs r1, 0 + ldrsh r2, [r0, r1] + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0x4 + bl sub_80482FC + b _080482B4 + .align 2, 0 +_08047FB4: .4byte gUnknown_80F5040 +_08047FB8: + ldr r0, _08047FCC + movs r1, 0 + ldrsh r2, [r0, r1] + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0x5 + bl sub_80482FC + b _080482B4 + .align 2, 0 +_08047FCC: .4byte gUnknown_80F5042 +_08047FD0: + ldr r0, _08047FE4 + movs r1, 0 + ldrsh r2, [r0, r1] + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0x6 + bl sub_80482FC + b _080482B4 + .align 2, 0 +_08047FE4: .4byte gUnknown_80F5044 +_08047FE8: + ldr r0, _08047FEC + b _08047FF2 + .align 2, 0 +_08047FEC: .4byte gUnknown_80F5048 +_08047FF0: + ldr r0, _08048000 +_08047FF2: + movs r1, 0 + ldrsh r2, [r0, r1] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8048340 + b _080482B4 + .align 2, 0 +_08048000: .4byte gUnknown_80F5046 +_08048004: + adds r0, r4, 0 + adds r1, r5, 0 + mov r2, r10 + bl sub_8048364 + b _080482B4 +_08048010: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8048374 + b _080482B4 +_0804801A: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_804839C + b _080482B4 +_08048024: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80483D4 + b _080482B4 +_0804802E: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80483F4 + b _080482B4 +_08048038: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8048400 + b _080482B4 +_08048042: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_804840C + b _080482B4 +_0804804C: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_804841C + b _080482B4 +_08048056: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_804849C + b _080482B4 +_08048060: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8048428 + b _080482B4 +_0804806A: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8048450 + b _080482B4 +_08048074: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8048480 + b _080482B4 +_0804807E: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80482D4 + b _080482B4 +_08048088: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8048490 + b _080482B4 +_08048092: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80484A8 + b _080482B4 +_0804809C: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80484DC + b _080482B4 +_080480A6: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80484BC + b _080482B4 +_080480B0: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80484C8 + b _080482B4 +_080480BA: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80484E8 + b _080482B4 +_080480C4: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8048524 + b _080482B4 +_080480CE: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80485B0 + b _080482B4 +_080480D8: + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_804869C + b _080482B4 +_080480E4: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80483C4 + b _080482B4 +_080480EE: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_804891C + b _080482B4 +_080480F8: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8048928 + b _080482B4 +_08048102: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8048934 + b _080482B4 +_0804810C: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8048940 + b _080482B4 +_08048116: + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl nullsub_94 + b _080482B4 +_08048122: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x64 + b _08048130 +_0804812A: + ldr r2, _08048138 + adds r0, r4, 0 + adds r1, r5, 0 +_08048130: + movs r3, 0xA + bl sub_80487CC + b _080482B4 + .align 2, 0 +_08048138: .4byte 0x000003e7 +_0804813C: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8048E04 + b _080482B4 +_08048146: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_80487E0 + b _080482B4 +_08048152: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x2 + bl sub_80487E0 + b _080482B4 +_0804815E: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x3 + bl sub_80487E0 + b _080482B4 +_0804816A: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x4 + bl sub_80487E0 + b _080482B4 +_08048176: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x5 + bl sub_80487E0 + b _080482B4 +_08048182: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x6 + bl sub_80487E0 + b _080482B4 +_0804818E: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x7 + bl sub_80487E0 + b _080482B4 +_0804819A: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x8 + bl sub_80487E0 + b _080482B4 +_080481A6: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x9 + bl sub_80487E0 + b _080482B4 +_080481B2: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xA + bl sub_80487E0 + b _080482B4 +_080481BE: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xB + bl sub_80487E0 + b _080482B4 +_080481CA: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xC + bl sub_80487E0 + b _080482B4 +_080481D6: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xD + bl sub_80487E0 + b _080482B4 +_080481E2: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xE + bl sub_80487E0 + b _080482B4 +_080481EE: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xF + bl sub_80487E0 + b _080482B4 +_080481FA: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x10 + bl sub_80487E0 + b _080482B4 +_08048206: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x11 + bl sub_80487E0 + b _080482B4 +_08048212: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x32 + movs r3, 0x5 + bl sub_80487CC + b _080482B4 +_08048220: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xA + movs r3, 0 + bl sub_80487CC + b _080482B4 +_0804822E: + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_8048DB8 + b _080482B4 +_0804823A: + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_8048EB0 + b _080482B4 +_08048246: + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_8048EC4 + b _080482B4 +_08048252: + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_8048ED8 + b _080482B4 +_0804825E: + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_8048EEC + b _080482B4 +_0804826A: + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_8048F00 + b _080482B4 +_08048276: + cmp r6, 0 + beq _080482A8 + ldr r0, _080482A0 + movs r1, 0 + ldrsh r2, [r0, r1] + mov r0, sp + adds r0, 0x1A +_08048284: + str r0, [sp] + movs r1, 0 + str r1, [sp, 0x4] + ldr r0, _080482A4 + str r0, [sp, 0x8] + str r1, [sp, 0xC] + str r1, [sp, 0x10] + str r1, [sp, 0x14] + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0x1 + bl sub_806F370 + b _080482B4 + .align 2, 0 +_080482A0: .4byte gUnknown_80F4FAC +_080482A4: .4byte 0x00000217 +_080482A8: + ldr r0, _080482CC + ldr r2, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80522F4 +_080482B4: + adds r0, r4, 0 + bl sub_8071DA4 +_080482BA: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080482CC: .4byte gUnknown_80FE458 + thumb_func_end sub_80479B8 + + thumb_func_start nullsub_205 +nullsub_205: + bx lr + thumb_func_end nullsub_205 + + thumb_func_start sub_80482D4 +sub_80482D4: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldr r1, _080482F8 + adds r0, r4, 0 + movs r2, 0x1 + bl sub_808417C + adds r2, r0, 0 + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8075C58 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080482F8: .4byte gUnknown_80F4E74 + thumb_func_end sub_80482D4 + + thumb_func_start sub_80482FC +sub_80482FC: + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0xC + mov r8, r0 + mov r9, r1 + adds r6, r2, 0 + lsls r4, r3, 24 + lsrs r4, 24 + add r5, sp, 0x4 + ldr r1, _0804833C + adds r0, r5, 0 + bl sub_8092A88 + strb r6, [r5, 0x4] + movs r3, 0x80 + lsls r3, 1 + str r4, [sp] + mov r0, r8 + mov r1, r9 + add r2, sp, 0x4 + bl sub_8055640 + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804833C: .4byte 0x00000195 + thumb_func_end sub_80482FC + + thumb_func_start sub_8048340 +sub_8048340: + push {r4,lr} + sub sp, 0x18 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + movs r3, 0x84 + lsls r3, 2 + str r3, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + str r4, [sp, 0x14] + movs r3, 0x1 + bl sub_806F370 + add sp, 0x18 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8048340 + + thumb_func_start sub_8048364 +sub_8048364: + push {lr} + lsls r3, r2, 24 + lsrs r3, 24 + movs r2, 0x1 + bl sub_8079F20 + pop {r0} + bx r0 + thumb_func_end sub_8048364 + + thumb_func_start sub_8048374 +sub_8048374: + push {r4,lr} + sub sp, 0x4 + ldr r2, _08048394 + movs r3, 0 + ldrsh r2, [r2, r3] + ldr r3, _08048398 + movs r4, 0 + ldrsh r3, [r3, r4] + movs r4, 0x1 + str r4, [sp] + bl sub_8077C44 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08048394: .4byte gUnknown_80F4FB6 +_08048398: .4byte gUnknown_80F4FB8 + thumb_func_end sub_8048374 + + thumb_func_start sub_804839C +sub_804839C: + push {r4,lr} + sub sp, 0x4 + ldr r2, _080483BC + movs r3, 0 + ldrsh r2, [r2, r3] + ldr r3, _080483C0 + movs r4, 0 + ldrsh r3, [r3, r4] + movs r4, 0x1 + str r4, [sp] + bl sub_8077C44 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080483BC: .4byte gUnknown_80F4FBA +_080483C0: .4byte gUnknown_80F4FBC + thumb_func_end sub_804839C + + thumb_func_start sub_80483C4 +sub_80483C4: + push {lr} + ldr r2, _080483D0 + bl sub_80792F8 + pop {r0} + bx r0 + .align 2, 0 +_080483D0: .4byte 0x000003e7 + thumb_func_end sub_80483C4 + + thumb_func_start sub_80483D4 +sub_80483D4: + push {r4,lr} + sub sp, 0x4 + ldr r2, _080483F0 + movs r4, 0 + ldrsh r3, [r2, r4] + movs r2, 0x1 + str r2, [sp] + movs r2, 0 + bl sub_8077C44 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080483F0: .4byte gUnknown_80F4FBE + thumb_func_end sub_80483D4 + + thumb_func_start sub_80483F4 +sub_80483F4: + push {lr} + bl sub_8079140 + pop {r0} + bx r0 + thumb_func_end sub_80483F4 + + thumb_func_start sub_8048400 +sub_8048400: + push {lr} + bl sub_80791D8 + pop {r0} + bx r0 + thumb_func_end sub_8048400 + + thumb_func_start sub_804840C +sub_804840C: + push {lr} + movs r2, 0 + movs r3, 0x1 + bl sub_8077910 + pop {r0} + bx r0 + thumb_func_end sub_804840C + + thumb_func_start sub_804841C +sub_804841C: + push {lr} + bl sub_8079270 + pop {r0} + bx r0 + thumb_func_end sub_804841C + + thumb_func_start sub_8048428 +sub_8048428: + push {lr} + adds r3, r0, 0 + ldr r0, [r1, 0x70] + adds r0, 0xAC + ldrb r0, [r0] + cmp r0, 0x4 + bne _0804843E + adds r0, r3, 0 + bl sub_807A290 + b _08048448 +_0804843E: + ldr r0, _0804844C + ldr r2, [r0] + adds r0, r3, 0 + bl sub_80522F4 +_08048448: + pop {r0} + bx r0 + .align 2, 0 +_0804844C: .4byte gUnknown_80F89F4 + thumb_func_end sub_8048428 + + thumb_func_start sub_8048450 +sub_8048450: + push {lr} + adds r3, r0, 0 + ldr r0, [r1, 0x70] + adds r0, 0xAC + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _0804846C + adds r0, r3, 0 + bl sub_807A290 + b _08048476 +_0804846C: + ldr r0, _0804847C + ldr r2, [r0] + adds r0, r3, 0 + bl sub_80522F4 +_08048476: + pop {r0} + bx r0 + .align 2, 0 +_0804847C: .4byte gUnknown_80F89F4 + thumb_func_end sub_8048450 + + thumb_func_start sub_8048480 +sub_8048480: + push {lr} + movs r2, 0 + movs r3, 0 + bl sub_807D148 + pop {r0} + bx r0 + thumb_func_end sub_8048480 + + thumb_func_start sub_8048490 +sub_8048490: + push {lr} + bl sub_8075FCC + pop {r0} + bx r0 + thumb_func_end sub_8048490 + + thumb_func_start sub_804849C +sub_804849C: + push {lr} + movs r2, 0x1 + bl sub_8077AE4 + pop {r0} + bx r0 + thumb_func_end sub_804849C + + thumb_func_start sub_80484A8 +sub_80484A8: + push {lr} + sub sp, 0x4 + movs r2, 0x1 + str r2, [sp] + movs r3, 0x1 + bl sub_8072008 + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_80484A8 + + thumb_func_start sub_80484BC +sub_80484BC: + push {lr} + bl sub_8076D10 + pop {r0} + bx r0 + thumb_func_end sub_80484BC + + thumb_func_start sub_80484C8 +sub_80484C8: + push {lr} + ldr r2, _080484D8 + ldr r2, [r2] + bl sub_80522F4 + pop {r0} + bx r0 + .align 2, 0 +_080484D8: .4byte gUnknown_80F89F4 + thumb_func_end sub_80484C8 + + thumb_func_start sub_80484DC +sub_80484DC: + push {lr} + movs r2, 0x1 + bl sub_807232C + pop {r0} + bx r0 + thumb_func_end sub_80484DC + + thumb_func_start sub_80484E8 +sub_80484E8: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldr r0, [r4, 0x70] + adds r0, 0xAC + ldrb r0, [r0] + cmp r0, 0x1 + bne _08048500 + adds r0, r5, 0 + bl sub_807A290 + b _08048516 +_08048500: + ldr r0, _0804851C + adds r1, r4, 0 + movs r2, 0 + bl sub_8045B94 + ldr r0, _08048520 + ldr r2, [r0] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80522F4 +_08048516: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804851C: .4byte gUnknown_202DF98 +_08048520: .4byte gUnknown_80FB580 + thumb_func_end sub_80484E8 + + thumb_func_start sub_8048524 +sub_8048524: + push {r4-r6,lr} + sub sp, 0x4 + adds r6, r0, 0 + adds r4, r1, 0 + ldr r0, [r4, 0x70] + adds r5, r0, 0 + ldrb r0, [r5, 0x7] + cmp r0, 0 + beq _08048542 + adds r0, r6, 0 + movs r2, 0 + movs r3, 0x5 + bl sub_8078A58 + b _080485A4 +_08048542: + ldr r0, _08048560 + adds r1, r4, 0 + movs r2, 0 + bl sub_8045B94 + adds r0, r4, 0 + movs r1, 0x12 + bl sub_80718D8 + lsls r0, 24 + cmp r0, 0 + beq _08048568 + ldr r0, _08048564 + b _08048586 + .align 2, 0 +_08048560: .4byte gUnknown_202DF98 +_08048564: .4byte gUnknown_8100298 +_08048568: + movs r0, 0x9E + lsls r0, 1 + adds r5, r0 + ldr r0, [r5] + bl sub_8094450 + cmp r0, 0 + beq _08048598 + mov r0, sp + movs r1, 0 + bl sub_80943A0 + ldr r0, [sp] + str r0, [r5] + ldr r0, _08048594 +_08048586: + ldr r2, [r0] + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80522F4 + b _080485A4 + .align 2, 0 +_08048594: .4byte gUnknown_80F9740 +_08048598: + ldr r0, _080485AC + ldr r2, [r0] + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80522F4 +_080485A4: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080485AC: .4byte gUnknown_80F9760 + thumb_func_end sub_8048524 + + thumb_func_start sub_80485B0 +sub_80485B0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r9, r0 + mov r8, r1 + movs r0, 0 + str r0, [sp] + movs r2, 0x1 + mov r10, r2 + ldr r4, [r1, 0x70] + movs r0, 0x64 + bl sub_8084100 + ldr r1, _0804865C + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + bge _080485DE + movs r0, 0x3 + mov r10, r0 +_080485DE: + ldrb r0, [r4, 0x7] + cmp r0, 0 + beq _0804867C + movs r2, 0x8C + lsls r2, 1 + adds r4, r2 + adds r5, r4, 0 + movs r7, 0x3 +_080485EE: + ldrb r1, [r4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0804862C + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0804862C + adds r0, r5, 0 + bl sub_8092BC0 + cmp r0, 0 + beq _0804862C + ldrb r6, [r4, 0x5] + adds r0, r5, 0 + bl sub_8092C0C + adds r1, r0, 0 + ldrb r0, [r4, 0x5] + add r0, r10 + strb r0, [r4, 0x5] + ldrb r0, [r4, 0x5] + cmp r0, r1 + blt _08048622 + strb r1, [r4, 0x5] +_08048622: + ldrb r0, [r4, 0x5] + cmp r6, r0 + beq _0804862C + movs r2, 0x1 + str r2, [sp] +_0804862C: + adds r4, 0x8 + adds r5, 0x8 + subs r7, 0x1 + cmp r7, 0 + bge _080485EE + ldr r0, [sp] + cmp r0, 0 + beq _08048668 + ldr r0, _08048660 + ldr r2, [r0] + mov r0, r9 + mov r1, r8 + bl sub_80522F4 + mov r2, r10 + cmp r2, 0x1 + beq _08048688 + movs r0, 0xA + movs r1, 0x40 + bl sub_803E708 + ldr r0, _08048664 + b _0804866A + .align 2, 0 +_0804865C: .4byte gUnknown_80F4F46 +_08048660: .4byte gUnknown_80FE454 +_08048664: .4byte gUnknown_80FE434 +_08048668: + ldr r0, _08048678 +_0804866A: + ldr r2, [r0] + mov r0, r9 + mov r1, r8 + bl sub_80522F4 + b _08048688 + .align 2, 0 +_08048678: .4byte gUnknown_80FE40C +_0804867C: + ldr r0, _08048698 + ldr r2, [r0] + mov r0, r9 + mov r1, r8 + bl sub_80522F4 +_08048688: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08048698: .4byte gUnknown_80FE40C + thumb_func_end sub_80485B0 + + thumb_func_start sub_804869C +sub_804869C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x1C + adds r4, r0, 0 + adds r7, r1, 0 + lsls r2, 24 + cmp r2, 0 + beq _08048724 + ldr r5, [r7, 0x70] + ldr r0, _080486D4 + ldr r0, [r0] + ldr r1, _080486D8 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080486E4 + ldr r0, _080486DC + movs r1, 0 + ldrsh r6, [r0, r1] + ldr r0, _080486E0 + ldr r2, [r0] + adds r0, r4, 0 + adds r1, r7, 0 + bl sub_80522F4 + b _080486EA + .align 2, 0 +_080486D4: .4byte gUnknown_203B418 +_080486D8: .4byte 0x00000675 +_080486DC: .4byte gUnknown_80F4FA8 +_080486E0: .4byte gUnknown_80FEAE8 +_080486E4: + ldr r0, _0804871C + movs r1, 0 + ldrsh r6, [r0, r1] +_080486EA: + adds r0, r5, 0 + adds r0, 0xB0 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080486FC + adds r0, r4, 0 + adds r1, r7, 0 + bl sub_807A324 +_080486FC: + add r0, sp, 0x18 + str r0, [sp] + movs r1, 0 + str r1, [sp, 0x4] + ldr r0, _08048720 + str r0, [sp, 0x8] + str r1, [sp, 0xC] + str r1, [sp, 0x10] + str r1, [sp, 0x14] + adds r0, r4, 0 + adds r1, r7, 0 + adds r2, r6, 0 + movs r3, 0x1 + bl sub_806F370 + b _080487B6 + .align 2, 0 +_0804871C: .4byte gUnknown_80F4FA4 +_08048720: .4byte 0x00000216 +_08048724: + adds r0, r4, 0 + bl sub_8042520 + adds r0, r4, 0 + bl sub_80696FC + adds r5, r0, 0 + cmp r5, 0 + bne _08048748 + ldr r0, _08048744 + ldr r2, [r0] + adds r0, r4, 0 + adds r1, r7, 0 + bl sub_80522F4 + b _080487B6 + .align 2, 0 +_08048744: .4byte gUnknown_80FDBA0 +_08048748: + ldr r1, [r5, 0x70] + mov r8, r1 + ldr r0, _08048770 + ldr r0, [r0] + ldr r1, _08048774 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08048780 + ldr r0, _08048778 + movs r1, 0 + ldrsh r6, [r0, r1] + ldr r0, _0804877C + ldr r2, [r0] + adds r0, r4, 0 + adds r1, r7, 0 + bl sub_80522F4 + b _08048786 + .align 2, 0 +_08048770: .4byte gUnknown_203B418 +_08048774: .4byte 0x00000675 +_08048778: .4byte gUnknown_80F4FAA +_0804877C: .4byte gUnknown_80FEAE8 +_08048780: + ldr r0, _080487C4 + movs r1, 0 + ldrsh r6, [r0, r1] +_08048786: + mov r0, r8 + adds r0, 0xB0 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08048798 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_807A324 +_08048798: + add r0, sp, 0x18 + str r0, [sp] + movs r1, 0 + str r1, [sp, 0x4] + ldr r0, _080487C8 + str r0, [sp, 0x8] + str r1, [sp, 0xC] + str r1, [sp, 0x10] + str r1, [sp, 0x14] + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + movs r3, 0x1 + bl sub_806F370 +_080487B6: + add sp, 0x1C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080487C4: .4byte gUnknown_80F4FA6 +_080487C8: .4byte 0x00000216 + thumb_func_end sub_804869C + + thumb_func_start sub_80487CC +sub_80487CC: + push {r4,lr} + sub sp, 0x4 + movs r4, 0x1 + str r4, [sp] + bl sub_8078B5C + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80487CC + + thumb_func_start sub_80487E0 +sub_80487E0: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + mov r9, r0 + mov r8, r1 + lsls r3, r2, 24 + ldr r5, [r1, 0x70] + ldr r4, _08048858 + lsrs r3, 23 + adds r0, r5, 0 + adds r0, 0x5C + ldrb r0, [r0] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r3, r1 + adds r0, r1, r4 + movs r2, 0 + ldrsh r6, [r0, r2] + adds r0, r5, 0 + adds r0, 0x5D + ldrb r2, [r0] + lsls r0, r2, 3 + adds r0, r2 + lsls r0, 2 + adds r3, r0 + adds r4, r3, r4 + movs r2, 0 + ldrsh r0, [r4, r2] + adds r6, r0 + ldr r0, _0804885C + adds r1, r0 + movs r4, 0 + ldrsh r2, [r1, r4] + adds r3, r0 + movs r1, 0 + ldrsh r0, [r3, r1] + adds r2, r0 + movs r0, 0x1 + str r0, [sp] + mov r0, r9 + mov r1, r8 + movs r3, 0 + bl sub_8078B5C + ldrb r0, [r5, 0x6] + cmp r0, 0 + bne _08048906 + adds r0, r5, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x4A + beq _08048852 + cmp r0, 0x47 + bne _08048860 +_08048852: + movs r0, 0x1 + b _08048862 + .align 2, 0 +_08048858: .4byte gUnknown_810A580 +_0804885C: .4byte gUnknown_810A808 +_08048860: + movs r0, 0 +_08048862: + cmp r0, 0 + bne _08048906 + movs r2, 0xC + ldrsh r7, [r5, r2] + ldrh r0, [r5, 0xC] + adds r0, r6 + strh r0, [r5, 0xC] + adds r2, r7, r6 + lsls r0, 16 + cmp r0, 0 + bgt _0804887C + movs r0, 0x1 + strh r0, [r5, 0xC] +_0804887C: + movs r4, 0xC + ldrsh r0, [r5, r4] + ldr r1, _080488A0 + cmp r0, r1 + ble _08048888 + strh r1, [r5, 0xC] +_08048888: + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r7, r0 + bne _080488A8 + ldr r0, _080488A4 + ldr r2, [r0] + mov r0, r9 + mov r1, r8 + bl sub_80522F4 + b _08048906 + .align 2, 0 +_080488A0: .4byte 0x000003e7 +_080488A4: .4byte gUnknown_80FD644 +_080488A8: + subs r0, r2, r7 + movs r2, 0 + cmp r0, 0x8 + bgt _080488BE + movs r2, 0x1 + cmp r0, 0x4 + bgt _080488BE + movs r2, 0x3 + cmp r0, 0x2 + ble _080488BE + movs r2, 0x2 +_080488BE: + movs r4, 0xC + ldrsh r0, [r5, r4] + subs r0, r7 + movs r4, 0 + cmp r0, 0x8 + bgt _080488D8 + movs r4, 0x1 + cmp r0, 0x4 + bgt _080488D8 + movs r4, 0x3 + cmp r0, 0x2 + ble _080488D8 + movs r4, 0x2 +_080488D8: + ldr r1, _08048914 + lsls r0, r2, 2 + adds r0, r1 + ldr r2, [r0] + mov r0, r9 + mov r1, r8 + bl sub_80522F4 + ldr r1, _08048918 + lsls r0, r4, 2 + adds r0, r1 + ldr r2, [r0] + mov r0, r9 + mov r1, r8 + bl sub_80522F4 + mov r0, r8 + bl sub_807191C + adds r0, r5, 0 + adds r1, r7, 0 + bl sub_806A7E8 +_08048906: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08048914: .4byte gUnknown_80FD648 +_08048918: .4byte gUnknown_80FD6E8 + thumb_func_end sub_80487E0 + + thumb_func_start sub_804891C +sub_804891C: + push {lr} + movs r2, 0x3 + bl sub_80793B0 + pop {r0} + bx r0 + thumb_func_end sub_804891C + + thumb_func_start sub_8048928 +sub_8048928: + push {lr} + movs r2, 0x3 + bl sub_8079420 + pop {r0} + bx r0 + thumb_func_end sub_8048928 + + thumb_func_start sub_8048934 +sub_8048934: + push {lr} + movs r2, 0x3 + bl sub_8079490 + pop {r0} + bx r0 + thumb_func_end sub_8048934 + + thumb_func_start sub_8048940 +sub_8048940: + push {lr} + movs r2, 0x3 + bl sub_8079500 + pop {r0} + bx r0 + thumb_func_end sub_8048940 + + thumb_func_start nullsub_94 +nullsub_94: + bx lr + thumb_func_end nullsub_94 + + thumb_func_start sub_8048950 +sub_8048950: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r0 + mov r8, r1 + ldrb r0, [r1, 0x2] + bl sub_80913CC + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08048988 + ldr r0, _08048984 +_08048978: + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + b _08048A58 + .align 2, 0 +_08048984: .4byte gUnknown_80FE3E8 +_08048988: + mov r1, r8 + ldrb r0, [r1, 0x2] + bl sub_80915A0 + lsls r0, 24 + cmp r0, 0 + beq _080489A0 + ldr r0, _0804899C + b _08048978 + .align 2, 0 +_0804899C: .4byte gUnknown_81006CC +_080489A0: + movs r7, 0 +_080489A2: + ldr r0, _080489FC + ldr r0, [r0] + lsls r1, r7, 2 + ldr r2, _08048A00 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08048A12 + ldr r6, [r4, 0x70] + movs r0, 0x2 + ldrsh r1, [r6, r0] + mov r0, r9 + bl sub_808E190 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + movs r1, 0 + bl sub_8070B6C + lsls r0, 24 + cmp r0, 0 + beq _080489DC + movs r5, 0 +_080489DC: + adds r0, r6, 0 + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080489E8 + movs r5, 0 +_080489E8: + adds r0, r6, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x4A + beq _080489F6 + cmp r0, 0x47 + bne _08048A04 +_080489F6: + movs r0, 0x1 + b _08048A06 + .align 2, 0 +_080489FC: .4byte gUnknown_203B418 +_08048A00: .4byte 0x0001357c +_08048A04: + movs r0, 0 +_08048A06: + cmp r0, 0 + beq _08048A0C + movs r5, 0 +_08048A0C: + ldr r1, _08048A50 + adds r0, r6, r1 + strb r5, [r0] +_08048A12: + adds r7, 0x1 + cmp r7, 0x3 + ble _080489A2 + movs r0, 0 + movs r1, 0x1 + bl sub_8062978 + adds r4, r0, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08048A58 + mov r0, r10 + mov r1, r8 + bl sub_804245C + adds r0, r4, 0 + mov r1, r9 + bl sub_8072938 + lsls r0, 24 + cmp r0, 0 + beq _08048A58 + ldr r2, _08048A54 + mov r0, r10 + movs r1, 0 + bl sub_8044E24 + movs r0, 0x1 + b _08048A5A + .align 2, 0 +_08048A50: .4byte 0x00000157 +_08048A54: .4byte 0x00000141 +_08048A58: + movs r0, 0 +_08048A5A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8048950 + + thumb_func_start sub_8048A68 +sub_8048A68: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r0 + mov r8, r1 + ldrb r1, [r1] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08048A90 + ldr r0, _08048A8C +_08048A80: + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + b _08048B8C + .align 2, 0 +_08048A8C: .4byte gUnknown_80FE3E8 +_08048A90: + ldr r0, _08048AA4 + ldr r0, [r0] + ldr r1, _08048AA8 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08048AB0 + ldr r0, _08048AAC + b _08048A80 + .align 2, 0 +_08048AA4: .4byte gUnknown_203B418 +_08048AA8: .4byte 0x0000065c +_08048AAC: .4byte gUnknown_80F9BD8 +_08048AB0: + movs r7, 0 +_08048AB2: + ldr r0, _08048B24 + ldr r0, [r0] + lsls r1, r7, 2 + ldr r2, _08048B28 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08048B4A + ldr r5, [r4, 0x70] + movs r6, 0x1 + ldrb r0, [r5, 0xA] + cmp r0, 0x3 + bhi _08048AF4 + ldr r2, _08048B2C + ldrb r1, [r5, 0xA] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08048B30 + adds r1, r0 + ldr r0, [r2] + adds r0, r1 + movs r1, 0xA + ldrsh r0, [r0, r1] + bl sub_806A538 + lsls r0, 24 + cmp r0, 0 + beq _08048AF6 +_08048AF4: + movs r6, 0 +_08048AF6: + adds r0, r4, 0 + movs r1, 0 + bl sub_8070B6C + lsls r0, 24 + cmp r0, 0 + beq _08048B06 + movs r6, 0 +_08048B06: + adds r0, r5, 0 + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08048B12 + movs r6, 0 +_08048B12: + adds r0, r5, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x4A + beq _08048B20 + cmp r0, 0x47 + bne _08048B34 +_08048B20: + movs r0, 0x1 + b _08048B36 + .align 2, 0 +_08048B24: .4byte gUnknown_203B418 +_08048B28: .4byte 0x0001357c +_08048B2C: .4byte gUnknown_203B45C +_08048B30: .4byte 0x00008df8 +_08048B34: + movs r0, 0 +_08048B36: + cmp r0, 0 + beq _08048B3C + movs r6, 0 +_08048B3C: + ldrb r0, [r5, 0x7] + cmp r0, 0 + beq _08048B44 + movs r6, 0 +_08048B44: + ldr r2, _08048B84 + adds r0, r5, r2 + strb r6, [r0] +_08048B4A: + adds r7, 0x1 + cmp r7, 0x3 + ble _08048AB2 + movs r0, 0 + movs r1, 0x1 + bl sub_8062978 + adds r4, r0, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _08048B8C + mov r0, r9 + mov r1, r8 + bl sub_804245C + ldr r0, _08048B88 + ldr r0, [r0] + adds r0, 0xBC + str r4, [r0] + movs r2, 0xA1 + lsls r2, 1 + mov r0, r9 + movs r1, 0 + bl sub_8044E24 + movs r0, 0x1 + b _08048B8E + .align 2, 0 +_08048B84: .4byte 0x00000157 +_08048B88: .4byte gUnknown_203B418 +_08048B8C: + movs r0, 0 +_08048B8E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8048A68 + + thumb_func_start sub_8048B9C +sub_8048B9C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x20 + mov r9, r0 + movs r0, 0 + mov r8, r0 + mov r2, r9 + ldr r0, [r2, 0x70] + adds r6, r0, 0 + adds r6, 0x44 + ldrb r1, [r1] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08048BD4 + ldr r0, _08048BD0 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage + movs r0, 0 + b _08048D40 + .align 2, 0 +_08048BD0: .4byte gUnknown_80FE3E8 +_08048BD4: + movs r2, 0 +_08048BD6: + ldr r0, _08048C28 + ldr r0, [r0] + lsls r1, r2, 2 + ldr r3, _08048C2C + adds r0, r3 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + str r2, [sp, 0x1C] + bl sub_80450E0 + lsls r0, 24 + ldr r2, [sp, 0x1C] + cmp r0, 0 + beq _08048C3E + ldr r5, [r4, 0x70] + movs r7, 0x1 + adds r0, r4, 0 + movs r1, 0 + bl sub_8070B6C + lsls r0, 24 + ldr r2, [sp, 0x1C] + cmp r0, 0 + beq _08048C0A + movs r7, 0 +_08048C0A: + adds r0, r5, 0 + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08048C16 + movs r7, 0 +_08048C16: + adds r0, r5, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x4A + beq _08048C24 + cmp r0, 0x47 + bne _08048C30 +_08048C24: + movs r0, 0x1 + b _08048C32 + .align 2, 0 +_08048C28: .4byte gUnknown_203B418 +_08048C2C: .4byte 0x0001357c +_08048C30: + movs r0, 0 +_08048C32: + cmp r0, 0 + beq _08048C38 + movs r7, 0 +_08048C38: + ldr r4, _08048C5C + adds r0, r5, r4 + strb r7, [r0] +_08048C3E: + adds r2, 0x1 + cmp r2, 0x3 + ble _08048BD6 + movs r0, 0 + movs r1, 0x1 + bl sub_8062978 + adds r4, r0, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + bne _08048C60 + movs r0, 0 + b _08048D40 + .align 2, 0 +_08048C5C: .4byte 0x00000157 +_08048C60: + add r1, sp, 0x4 + adds r0, r6, 0 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + b _08048CE2 +_08048C6E: + ldrh r0, [r6] + cmp r0, 0x1D + bne _08048C7C + adds r0, r6, 0 + bl sub_80637E8 + b _08048CE2 +_08048C7C: + cmp r0, 0x20 + bne _08048C9A + movs r0, 0 + movs r1, 0 + bl sub_803EAF0 + adds r0, r6, 0 + bl sub_8063BB4 + movs r0, 0x1 + bl sub_8044C10 + movs r5, 0x1 + mov r8, r5 + b _08048CE2 +_08048C9A: + cmp r0, 0x21 + bne _08048CB6 + movs r0, 0 + movs r1, 0 + bl sub_803EAF0 + adds r0, r6, 0 + movs r1, 0 + bl sub_8063CF0 + movs r0, 0x1 + bl sub_8044C10 + b _08048CE2 +_08048CB6: + cmp r0, 0x1E + beq _08048CBE + cmp r0, 0x33 + bne _08048CD0 +_08048CBE: + movs r0, 0 + movs r1, 0 + bl sub_803EAF0 + adds r0, r6, 0 + movs r1, 0 + bl sub_8063A70 + b _08048CE2 +_08048CD0: + cmp r0, 0x1F + bne _08048CE2 + movs r0, 0 + movs r1, 0 + bl sub_803EAF0 + adds r0, r6, 0 + bl sub_8063B54 +_08048CE2: + adds r0, r6, 0 + bl sub_8044C88 + movs r0, 0x1 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + movs r3, 0 + bl sub_8062F90 + lsls r0, 24 + cmp r0, 0 + beq _08048C6E + mov r0, r8 + cmp r0, 0 + beq _08048D38 + ldr r0, _08048D34 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl sub_8052B8C + cmp r0, 0x1 + bne _08048C6E + adds r1, r6, 0 + add r0, sp, 0x4 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + mov r0, r9 + movs r1, 0 + movs r2, 0x6E + bl sub_8044DF0 + adds r0, r6, 0 + movs r1, 0x2C + bl sub_8044C94 + b _08048D3E + .align 2, 0 +_08048D34: .4byte gUnknown_80FECA0 +_08048D38: + movs r0, 0x1 + bl sub_8044C10 +_08048D3E: + mov r0, r8 +_08048D40: + add sp, 0x20 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8048B9C + + thumb_func_start sub_8048D50 +sub_8048D50: + push {r4,lr} + adds r4, r0, 0 + adds r2, r1, 0 + ldr r3, [r4, 0x70] + ldrb r1, [r2] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08048D78 + ldr r0, _08048D70 + adds r1, r2, 0 + bl sub_8045BF8 + ldr r0, _08048D74 + b _08048D9A + .align 2, 0 +_08048D70: .4byte gUnknown_202DE58 +_08048D74: .4byte gUnknown_80FE3E8 +_08048D78: + adds r0, r3, 0 + adds r0, 0xEC + ldrb r0, [r0] + cmp r0, 0x1 + bne _08048DB0 + ldrb r0, [r2, 0x2] + bl sub_8091570 + lsls r0, 24 + cmp r0, 0 + beq _08048DB0 + ldr r0, _08048DA8 + adds r1, r4, 0 + movs r2, 0 + bl sub_8045B94 + ldr r0, _08048DAC +_08048D9A: + ldr r1, [r0] + adds r0, r4, 0 + bl sub_80522A8 + movs r0, 0 + b _08048DB2 + .align 2, 0 +_08048DA8: .4byte gUnknown_202DF98 +_08048DAC: .4byte gUnknown_80FDCA4 +_08048DB0: + movs r0, 0x1 +_08048DB2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8048D50 + + thumb_func_start sub_8048DB8 +sub_8048DB8: + push {r4,lr} + sub sp, 0x1C + adds r3, r0, 0 + adds r4, r1, 0 + lsls r2, 24 + cmp r2, 0 + beq _08048DF4 + ldr r0, _08048DEC + movs r1, 0 + ldrsh r2, [r0, r1] + add r0, sp, 0x18 + str r0, [sp] + movs r1, 0 + str r1, [sp, 0x4] + ldr r0, _08048DF0 + str r0, [sp, 0x8] + str r1, [sp, 0xC] + str r1, [sp, 0x10] + str r1, [sp, 0x14] + adds r0, r3, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl sub_806F370 + b _08048DFA + .align 2, 0 +_08048DEC: .4byte gUnknown_80F4FAC +_08048DF0: .4byte 0x00000217 +_08048DF4: + adds r0, r3, 0 + bl sub_8051E7C +_08048DFA: + add sp, 0x1C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8048DB8 + + thumb_func_start sub_8048E04 +sub_8048E04: + push {r4-r6,lr} + sub sp, 0x8 + adds r5, r0, 0 + adds r6, r1, 0 + movs r0, 0x1 + str r0, [sp] + adds r0, r5, 0 + movs r2, 0x1E + movs r3, 0 + bl sub_8078B5C + movs r0, 0x5 + bl sub_8084100 + cmp r0, 0x4 + bhi _08048E9E + lsls r0, 2 + ldr r1, _08048E30 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08048E30: .4byte _08048E34 + .align 2, 0 +_08048E34: + .4byte _08048E48 + .4byte _08048E54 + .4byte _08048E5E + .4byte _08048E6C + .4byte _08048E78 +_08048E48: + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x1 + bl sub_80763F8 + b _08048E9E +_08048E54: + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_80769CC + b _08048E9E +_08048E5E: + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0x1 + bl sub_8076210 + b _08048E9E +_08048E6C: + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x1 + bl sub_8077780 + b _08048E9E +_08048E78: + ldr r0, _08048EA8 + ldr r2, [r0] + movs r4, 0x1 + str r4, [sp] + str r4, [sp, 0x4] + adds r0, r5, 0 + adds r1, r6, 0 + movs r3, 0x3 + bl sub_8076E20 + ldr r0, _08048EAC + ldr r2, [r0] + str r4, [sp] + str r4, [sp, 0x4] + adds r0, r5, 0 + adds r1, r6, 0 + movs r3, 0x3 + bl sub_8076E20 +_08048E9E: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08048EA8: .4byte gUnknown_8106A4C +_08048EAC: .4byte gUnknown_8106A50 + thumb_func_end sub_8048E04 + + thumb_func_start sub_8048EB0 +sub_8048EB0: + push {lr} + ldr r1, _08048EC0 + ldr r1, [r1] + bl sub_80522A8 + pop {r0} + bx r0 + .align 2, 0 +_08048EC0: .4byte gUnknown_81003E0 + thumb_func_end sub_8048EB0 + + thumb_func_start sub_8048EC4 +sub_8048EC4: + push {lr} + ldr r1, _08048ED4 + ldr r1, [r1] + bl sub_80522A8 + pop {r0} + bx r0 + .align 2, 0 +_08048ED4: .4byte gUnknown_8100404 + thumb_func_end sub_8048EC4 + + thumb_func_start sub_8048ED8 +sub_8048ED8: + push {lr} + ldr r1, _08048EE8 + ldr r1, [r1] + bl sub_80522A8 + pop {r0} + bx r0 + .align 2, 0 +_08048EE8: .4byte gUnknown_8100428 + thumb_func_end sub_8048ED8 + + thumb_func_start sub_8048EEC +sub_8048EEC: + push {lr} + ldr r1, _08048EFC + ldr r1, [r1] + bl sub_80522A8 + pop {r0} + bx r0 + .align 2, 0 +_08048EFC: .4byte gUnknown_810044C + thumb_func_end sub_8048EEC + + thumb_func_start sub_8048F00 +sub_8048F00: + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xD6 + bl sub_80421C0 + ldr r0, _08048F24 + ldr r1, [r0] + adds r0, r4, 0 + bl sub_80522A8 + movs r0, 0x3C + movs r1, 0x46 + bl sub_803E708 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08048F24: .4byte gUnknown_8100494 + thumb_func_end sub_8048F00 + + thumb_func_start sub_8048F28 +sub_8048F28: + push {r4-r7,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r3, [r4, 0x70] + movs r6, 0 + movs r0, 0x1 + adds r5, r2, 0 + ands r5, r0 + lsrs r2, 1 + movs r0, 0x1 + ands r2, r0 + ldrb r0, [r1, 0x2] + subs r0, 0x1 + cmp r0, 0xCC + bls _08048F48 + b _080494E0 +_08048F48: + lsls r0, 2 + ldr r1, _08048F54 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08048F54: .4byte _08048F58 + .align 2, 0 +_08048F58: + .4byte _0804928C + .4byte _0804928C + .4byte _0804928C + .4byte _0804928C + .4byte _0804928C + .4byte _0804928C + .4byte _0804928C + .4byte _0804928C + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _08049408 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _08049296 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080492B0 + .4byte _080492B0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _08049320 + .4byte _080494E0 + .4byte _080492B8 + .4byte _080492B8 + .4byte _0804935E + .4byte _080494E0 + .4byte _080493E0 + .4byte _0804948E + .4byte _08049394 + .4byte _08049344 + .4byte _0804946E + .4byte _0804947A + .4byte _08049378 + .4byte _080493CE + .4byte _080493AC + .4byte _080493B8 + .4byte _08049436 + .4byte _080494E0 + .4byte _080493F6 + .4byte _080494B2 + .4byte _0804946A + .4byte _08049462 + .4byte _08049454 + .4byte _08049498 + .4byte _080492DC + .4byte _0804932C + .4byte _08049338 + .4byte _0804933C + .4byte _08049340 + .4byte _080494C2 + .4byte _080494C2 + .4byte _080494D6 + .4byte _080494C2 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494E0 + .4byte _080494DA +_0804928C: + cmp r5, 0 + bne _08049292 + b _080494E2 +_08049292: + movs r6, 0x46 + b _080494E2 +_08049296: + cmp r5, 0 + bne _0804929C + b _080494E0 +_0804929C: + movs r1, 0x9E + lsls r1, 1 + adds r0, r3, r1 + ldr r0, [r0] + bl sub_8094450 + cmp r0, 0 + ble _080492AE + b _0804948A +_080492AE: + b _080494E0 +_080492B0: + cmp r5, 0 + beq _080492B6 + b _0804948A +_080492B6: + b _080494E0 +_080492B8: + movs r2, 0xE + ldrsh r1, [r3, r2] + movs r2, 0x10 + ldrsh r0, [r3, r2] + cmp r1, r0 + blt _080492C6 + b _080494E2 +_080492C6: + cmp r0, 0 + bge _080492CC + adds r0, 0x3 +_080492CC: + asrs r0, 2 + cmp r1, r0 + ble _080492D4 + b _080494E2 +_080492D4: + cmp r5, 0 + bne _080492DA + b _08049420 +_080492DA: + b _08049432 +_080492DC: + movs r6, 0 + movs r0, 0x8C + lsls r0, 1 + adds r5, r3, r0 + adds r7, r5, 0 + movs r2, 0x3 +_080492E8: + ldrb r1, [r5] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0804930C + ldrb r0, [r5, 0x4] + cmp r0, 0 + bne _080492FA + adds r6, 0x1E +_080492FA: + ldrb r4, [r5, 0x4] + adds r0, r7, 0 + str r2, [sp] + bl sub_8092BF4 + ldr r2, [sp] + cmp r4, r0 + beq _0804930C + adds r6, 0x6 +_0804930C: + adds r5, 0x8 + adds r7, 0x8 + subs r2, 0x1 + cmp r2, 0 + bge _080492E8 + cmp r6, 0x62 + bgt _0804931C + b _080494E2 +_0804931C: + movs r6, 0x63 + b _080494E2 +_08049320: + adds r0, r4, 0 + bl sub_8070A58 + lsls r0, 24 + movs r6, 0 + b _080494BC +_0804932C: + ldrb r0, [r3, 0x14] +_0804932E: + movs r6, 0x64 + cmp r0, 0xF9 + bhi _08049336 + b _080494E2 +_08049336: + b _080494E0 +_08049338: + ldrb r0, [r3, 0x15] + b _0804932E +_0804933C: + ldrb r0, [r3, 0x16] + b _0804932E +_08049340: + ldrb r0, [r3, 0x17] + b _0804932E +_08049344: + cmp r5, 0 + beq _0804934A + b _080494E0 +_0804934A: + adds r0, r4, 0 + bl sub_80494EC + lsls r0, 24 + movs r6, 0x64 + cmp r0, 0 + bne _0804935A + b _080494E2 +_0804935A: + movs r6, 0xA + b _080494E2 +_0804935E: + adds r0, r4, 0 + bl sub_8071884 + lsls r0, 24 + cmp r0, 0 + beq _0804936C + b _080494A2 +_0804936C: + adds r0, r4, 0 + bl sub_80494EC + lsls r0, 24 + movs r6, 0x5 + b _080494BC +_08049378: + ldr r0, [r4, 0x70] + movs r1, 0x82 + lsls r1, 1 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x3 + ble _08049388 + b _080494A2 +_08049388: + adds r0, r4, 0 + bl sub_80494EC + lsls r0, 24 + movs r6, 0x5 + b _080494BC +_08049394: + adds r0, r3, 0 + adds r0, 0xE8 + ldrb r0, [r0] + cmp r0, 0x2 + bne _080493A0 + b _080494A2 +_080493A0: + adds r0, r4, 0 + bl sub_80494EC + lsls r0, 24 + movs r6, 0x5 + b _080494BC +_080493AC: + adds r0, r3, 0 + adds r0, 0xAC + ldrb r0, [r0] + cmp r0, 0x4 + bne _080494A2 + b _080494B2 +_080493B8: + adds r0, r3, 0 + adds r0, 0xBC + ldrb r0, [r0] + cmp r0, 0x2 + beq _080494A2 + adds r0, r4, 0 + bl sub_80494EC + lsls r0, 24 + movs r6, 0xF + b _080494BC +_080493CE: + adds r0, r3, 0 + adds r0, 0xAC + ldrb r0, [r0] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _080494A2 + b _08049420 +_080493E0: + adds r0, r3, 0 + adds r0, 0xE8 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080494A2 + adds r0, r4, 0 + bl sub_80494EC + lsls r0, 24 + movs r6, 0x5 + b _080494BC +_080493F6: + cmp r2, 0 + bne _0804940C + adds r0, r4, 0 + bl sub_80494EC + lsls r0, 24 + movs r6, 0x5 + cmp r0, 0 + beq _080494E2 +_08049408: + movs r6, 0x28 + b _080494E2 +_0804940C: + movs r2, 0xE + ldrsh r1, [r3, r2] + movs r2, 0x10 + ldrsh r0, [r3, r2] + cmp r1, r0 + bge _080494E2 + cmp r1, 0x13 + bgt _080494E2 + cmp r5, 0 + bne _08049432 +_08049420: + adds r0, r4, 0 + bl sub_80494EC + lsls r0, 24 + movs r6, 0x32 + cmp r0, 0 + beq _080494E2 + movs r6, 0x64 + b _080494E2 +_08049432: + movs r6, 0x32 + b _080494E2 +_08049436: + adds r0, r3, 0 + adds r0, 0xA8 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080494A2 + cmp r0, 0x5 + beq _080494A2 + cmp r0, 0x3 + beq _080494A2 + adds r0, r4, 0 + bl sub_80494EC + lsls r0, 24 + movs r6, 0x5 + b _080494BC +_08049454: + adds r0, r3, 0 + adds r0, 0xA8 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080494A2 + movs r6, 0x5 + b _080494E2 +_08049462: + ldrb r0, [r3, 0x9] + movs r6, 0 + cmp r0, 0x62 + bhi _080494E2 +_0804946A: + movs r6, 0x50 + b _080494E2 +_0804946E: + adds r0, r3, 0 + adds r0, 0xAC + ldrb r0, [r0] + cmp r0, 0x1 + beq _0804948A + b _080494E0 +_0804947A: + movs r1, 0x9E + lsls r1, 1 + adds r0, r3, r1 + ldr r0, [r0] + bl sub_8094450 + cmp r0, 0 + ble _080494E0 +_0804948A: + movs r0, 0x32 + b _080494E4 +_0804948E: + ldrb r0, [r3, 0x9] + movs r6, 0 + cmp r0, 0x1 + bls _080494E2 + b _0804946A +_08049498: + adds r0, r3, 0 + adds r0, 0xB0 + ldrb r0, [r0] + cmp r0, 0x6 + bne _080494A6 +_080494A2: + movs r0, 0 + b _080494E4 +_080494A6: + adds r0, r4, 0 + bl sub_80494EC + lsls r0, 24 + movs r6, 0x5 + b _080494BC +_080494B2: + adds r0, r4, 0 + bl sub_80494EC + lsls r0, 24 + movs r6, 0x1E +_080494BC: + cmp r0, 0 + beq _080494E2 + b _0804946A +_080494C2: + movs r2, 0x9E + lsls r2, 1 + adds r0, r3, r2 + ldr r0, [r0] + bl sub_8094450 + cmp r0, 0x9 + bgt _080494E0 + movs r0, 0x64 + b _080494E4 +_080494D6: + movs r6, 0x1E + b _080494E2 +_080494DA: + movs r6, 0x14 + cmp r5, 0 + beq _080494E2 +_080494E0: + movs r6, 0 +_080494E2: + adds r0, r6, 0 +_080494E4: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8048F28 + + thumb_func_start sub_80494EC +sub_80494EC: + push {r4-r6,lr} + adds r5, r0, 0 + movs r6, 0 +_080494F2: + movs r1, 0x4 + ldrsh r0, [r5, r1] + ldr r1, _08049538 + lsls r2, r6, 2 + adds r2, r1 + movs r3, 0 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r3, 0x6 + ldrsh r1, [r5, r3] + movs r3, 0x2 + ldrsh r2, [r2, r3] + adds r1, r2 + bl sub_804954C + ldr r4, [r0, 0x10] + cmp r4, 0 + beq _0804953C + adds r0, r4, 0 + bl sub_80450F8 + cmp r0, 0 + beq _0804953C + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_8071598 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0804953C + movs r0, 0x1 + b _08049544 + .align 2, 0 +_08049538: .4byte gUnknown_80F4448 +_0804953C: + adds r6, 0x1 + cmp r6, 0x7 + ble _080494F2 + movs r0, 0 +_08049544: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80494EC + + thumb_func_start sub_804954C +sub_804954C: + push {lr} + adds r2, r0, 0 + adds r3, r1, 0 + cmp r2, 0 + blt _08049584 + cmp r3, 0 + blt _08049584 + cmp r2, 0x37 + bgt _08049584 + cmp r3, 0x1F + bgt _08049584 + ldr r0, _0804957C + ldr r1, [r0] + lsls r2, 2 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 5 + adds r2, r0 + ldr r0, _08049580 + adds r1, r0 + adds r1, r2 + ldr r0, [r1] + b _08049588 + .align 2, 0 +_0804957C: .4byte gUnknown_203B418 +_08049580: .4byte 0x0000e8c0 +_08049584: + ldr r0, _0804958C + ldr r0, [r0] +_08049588: + pop {r1} + bx r1 + .align 2, 0 +_0804958C: .4byte gUnknown_203B430 + thumb_func_end sub_804954C + + thumb_func_start sub_8049590 +sub_8049590: + push {r4,r5,lr} + adds r2, r0, 0 + adds r3, r1, 0 + cmp r2, 0 + blt _080495A6 + cmp r3, 0 + blt _080495A6 + cmp r2, 0x37 + bgt _080495A6 + cmp r3, 0x1F + ble _080495C0 +_080495A6: + ldr r0, _080495B8 + ldr r1, _080495BC + adds r2, r0, 0 + ldr r1, [r1] + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + b _080495D6 + .align 2, 0 +_080495B8: .4byte gUnknown_202F190 +_080495BC: .4byte gUnknown_203B430 +_080495C0: + ldr r0, _080495DC + ldr r1, [r0] + lsls r2, 2 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 5 + adds r2, r0 + ldr r0, _080495E0 + adds r1, r0 + adds r1, r2 + ldr r0, [r1] +_080495D6: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080495DC: .4byte gUnknown_203B418 +_080495E0: .4byte 0x0000e8c0 + thumb_func_end sub_8049590 + + thumb_func_start sub_80495E4 +sub_80495E4: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r2, 0 + ldr r0, _08049658 + mov r9, r0 + mov r12, r9 + ldr r7, _0804965C + ldr r1, _08049660 + mov r8, r1 +_080495FA: + lsls r1, r2, 3 + lsls r0, r2, 2 + adds r6, r2, 0x1 + subs r1, r2 + adds r0, r2 + lsls r0, 2 + adds r0, r2 + lsls r0, 6 + movs r4, 0 + lsls r2, r1, 5 + mov r3, r8 + adds r5, r0, r3 + movs r3, 0x37 +_08049614: + mov r1, r12 + ldr r0, [r1] + adds r1, r0, r7 + adds r1, r2 + adds r0, r5 + adds r0, r4 + str r0, [r1] + adds r4, 0x18 + adds r2, 0x4 + subs r3, 0x1 + cmp r3, 0 + bge _08049614 + adds r2, r6, 0 + cmp r2, 0x1F + ble _080495FA + movs r2, 0 + mov r3, r9 + ldr r1, [r3] + ldr r4, _08049664 + adds r0, r1, r4 + movs r3, 0 + strh r2, [r0] + adds r4, 0x2 + adds r0, r1, r4 + strh r2, [r0] + ldr r0, _08049668 + adds r1, r0 + strb r3, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08049658: .4byte gUnknown_203B418 +_0804965C: .4byte 0x0000e8c0 +_08049660: .4byte 0x00003a18 +_08049664: .4byte 0x00003a0e +_08049668: .4byte 0x00013570 + thumb_func_end sub_80495E4 + + thumb_func_start sub_804966C +sub_804966C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + ldr r1, _08049734 + ldr r0, _08049738 + mov r8, r0 + ldr r6, _0804973C + ldr r0, [r6] + ldr r5, _08049740 + adds r0, r5 + movs r2, 0 + ldrsh r0, [r0, r2] + add r0, r8 + ldrb r2, [r0] + mov r0, sp + bl sprintf + ldr r7, _08049744 + mov r0, sp + adds r1, r7, 0 + bl OpenFileAndGetFileDataPtr + adds r4, r0, 0 + ldr r0, _08049748 + movs r1, 0 + adds r2, r4, 0 + bl sub_800AE28 + adds r0, r4, 0 + bl CloseFile + ldr r1, _0804974C + ldr r0, [r6] + adds r0, r5 + movs r3, 0 + ldrsh r2, [r0, r3] + mov r0, sp + bl sprintf + mov r0, sp + adds r1, r7, 0 + bl OpenFileAndGetFileDataPtr + ldr r1, _08049750 + str r0, [r1] + ldr r1, _08049754 + ldr r0, [r6] + adds r0, r5 + movs r4, 0 + ldrsh r0, [r0, r4] + add r0, r8 + ldrb r2, [r0] + mov r0, sp + bl sprintf + mov r0, sp + adds r1, r7, 0 + bl OpenFileAndGetFileDataPtr + adds r4, r0, 0 + ldr r0, [r6] + ldr r1, _08049758 + adds r0, r1 + ldr r1, _0804975C + adds r2, r4, 0 + bl sub_800AAA8 + adds r0, r4, 0 + bl CloseFile + ldr r0, [r6] + adds r2, r0, r5 + movs r3, 0 + ldrsh r0, [r2, r3] + cmp r0, 0x3F + bgt _08049768 + ldr r1, _08049760 + add r0, r8 + ldrb r2, [r0] + mov r0, sp + bl sprintf + mov r0, sp + adds r1, r7, 0 + bl OpenFileAndGetFileDataPtr + adds r4, r0, 0 + ldr r0, [r6] + ldr r1, _08049764 + adds r0, r1 + movs r1, 0x93 + lsls r1, 4 + adds r2, r4, 0 + bl sub_800AAA8 + adds r0, r4, 0 + bl CloseFile + b _08049794 + .align 2, 0 +_08049734: .4byte gUnknown_80F6A04 +_08049738: .4byte gUnknown_8108EC0 +_0804973C: .4byte gUnknown_203B418 +_08049740: .4byte 0x00003a0e +_08049744: .4byte gUnknown_83B0000 +_08049748: .4byte 0x06008000 +_0804974C: .4byte gUnknown_80F6A10 +_08049750: .4byte gUnknown_202EE88 +_08049754: .4byte gUnknown_80F6A1C +_08049758: .4byte 0x00011884 +_0804975C: .4byte 0x00001194 +_08049760: .4byte gUnknown_80F6A28 +_08049764: .4byte 0x00012c24 +_08049768: + ldr r1, _080497E8 + movs r3, 0 + ldrsh r2, [r2, r3] + mov r0, sp + bl sprintf + mov r0, sp + adds r1, r7, 0 + bl OpenFileAndGetFileDataPtr + adds r4, r0, 0 + ldr r0, [r6] + ldr r1, _080497EC + adds r0, r1 + movs r1, 0x90 + lsls r1, 2 + adds r2, r4, 0 + bl sub_800AAA8 + adds r0, r4, 0 + bl CloseFile +_08049794: + ldr r1, _080497F0 + ldr r5, _080497F4 + ldr r0, [r5] + ldr r4, _080497F8 + adds r0, r4 + movs r3, 0 + ldrsh r2, [r0, r3] + mov r0, sp + bl sprintf + ldr r1, _080497FC + mov r0, sp + bl OpenFileAndGetFileDataPtr + adds r1, r0, 0 + ldr r0, _08049800 + str r1, [r0] + ldr r0, _08049804 + movs r2, 0x20 + bl sub_8004AA4 + ldr r2, _08049808 + movs r6, 0 + strb r6, [r2] + movs r3, 0x1 + strb r3, [r2, 0x1] + movs r0, 0x2 + strb r0, [r2, 0x2] + movs r0, 0x3 + strb r0, [r2, 0x3] + ldr r1, _0804980C + ldr r0, [r5] + adds r0, r4 + movs r4, 0 + ldrsh r0, [r0, r4] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08049810 + strb r3, [r2, 0x4] + strb r6, [r2, 0x5] + b _08049814 + .align 2, 0 +_080497E8: .4byte gUnknown_80F6A34 +_080497EC: .4byte 0x00012c24 +_080497F0: .4byte gUnknown_80F6A40 +_080497F4: .4byte gUnknown_203B418 +_080497F8: .4byte 0x00003a0e +_080497FC: .4byte gUnknown_83B0000 +_08049800: .4byte gUnknown_202F18C +_08049804: .4byte gUnknown_202EE8C +_08049808: .4byte gUnknown_202F314 +_0804980C: .4byte gUnknown_810ACC0 +_08049810: + strb r6, [r2, 0x4] + strb r3, [r2, 0x5] +_08049814: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804966C + + thumb_func_start sub_8049820 +sub_8049820: + push {lr} + ldr r0, _08049838 + ldr r0, [r0] + bl CloseFile + ldr r0, _0804983C + ldr r0, [r0] + bl CloseFile + pop {r0} + bx r0 + .align 2, 0 +_08049838: .4byte gUnknown_202F18C +_0804983C: .4byte gUnknown_202EE88 + thumb_func_end sub_8049820 + + thumb_func_start sub_8049840 +sub_8049840: + push {lr} + ldr r0, _08049860 + ldr r0, [r0] + ldr r1, _08049864 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + bl sub_8043CE4 + lsls r0, 24 + cmp r0, 0 + beq _08049870 + ldr r1, _08049868 + ldr r0, _0804986C + b _08049874 + .align 2, 0 +_08049860: .4byte gUnknown_203B418 +_08049864: .4byte 0x00003a0e +_08049868: .4byte gUnknown_203B430 +_0804986C: .4byte gUnknown_80F69EC +_08049870: + ldr r1, _0804987C + ldr r0, _08049880 +_08049874: + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0804987C: .4byte gUnknown_203B430 +_08049880: .4byte gUnknown_80F69D4 + thumb_func_end sub_8049840 + + thumb_func_start sub_8049884 +sub_8049884: + push {r4-r6,lr} + movs r5, 0 +_08049888: + movs r4, 0 + adds r6, r5, 0x1 +_0804988C: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80498A8 + adds r4, 0x1 + cmp r4, 0x37 + ble _0804988C + adds r5, r6, 0 + cmp r5, 0x1F + ble _08049888 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8049884 + + thumb_func_start sub_80498A8 +sub_80498A8: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + mov r10, r0 + mov r9, r1 + cmp r0, 0 + bge _080498BE + b _08049B72 +_080498BE: + cmp r1, 0 + bge _080498C4 + b _08049B72 +_080498C4: + cmp r0, 0x37 + ble _080498CA + b _08049B72 +_080498CA: + cmp r1, 0x1F + ble _080498D0 + b _08049B72 +_080498D0: + movs r7, 0 + bl sub_804954C + ldrh r0, [r0] + movs r1, 0x3 + mov r8, r1 + mov r6, r8 + ands r6, r0 + str r6, [sp, 0x20] + ldr r4, _08049914 + ldr r0, [r4] + ldr r3, _08049918 + adds r0, r3 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x3F + ble _08049928 + mov r3, r10 + cmp r3, 0x17 + bgt _0804991C + mov r0, r9 + cmp r0, 0x17 + bgt _0804991C + mov r0, r10 + mov r1, r9 + bl sub_8049590 + ldr r2, [r4] + mov r3, r9 + lsls r1, r3, 1 + add r1, r9 + lsls r1, 3 + add r1, r10 + b _08049B68 + .align 2, 0 +_08049914: .4byte gUnknown_203B418 +_08049918: .4byte 0x00003a0e +_0804991C: + mov r0, r10 + mov r1, r9 + bl sub_8049590 + movs r1, 0 + b _08049B70 +_08049928: + mov r0, r9 + adds r0, 0x1 + str r0, [sp, 0x24] + mov r0, r10 + ldr r1, [sp, 0x24] + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + str r0, [sp] + mov r4, r10 + adds r4, 0x1 + adds r0, r4, 0 + ldr r1, [sp, 0x24] + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + str r0, [sp, 0x4] + adds r0, r4, 0 + mov r1, r9 + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + str r0, [sp, 0x8] + mov r5, r9 + subs r5, 0x1 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + str r0, [sp, 0xC] + mov r0, r10 + adds r1, r5, 0 + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + str r0, [sp, 0x10] + subs r4, 0x2 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + mov r1, r9 + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + str r0, [sp, 0x18] + adds r0, r4, 0 + ldr r1, [sp, 0x24] + bl sub_804954C + ldrh r0, [r0] + mov r1, r8 + ands r1, r0 + str r1, [sp, 0x1C] + cmp r6, 0x1 + bne _08049A1E + movs r7, 0xFF + ldr r0, [sp] + cmp r0, 0 + bne _080499C6 + movs r7, 0xFE +_080499C6: + ldr r0, [sp, 0x4] + cmp r0, 0 + bne _080499D2 + movs r0, 0x3 + negs r0, r0 + ands r7, r0 +_080499D2: + ldr r0, [sp, 0x8] + cmp r0, 0 + bne _080499DE + movs r0, 0x5 + negs r0, r0 + ands r7, r0 +_080499DE: + ldr r0, [sp, 0xC] + cmp r0, 0 + bne _080499EA + movs r0, 0x9 + negs r0, r0 + ands r7, r0 +_080499EA: + ldr r0, [sp, 0x10] + cmp r0, 0 + bne _080499F6 + movs r0, 0x11 + negs r0, r0 + ands r7, r0 +_080499F6: + ldr r0, [sp, 0x14] + cmp r0, 0 + bne _08049A02 + movs r0, 0x21 + negs r0, r0 + ands r7, r0 +_08049A02: + ldr r0, [sp, 0x18] + cmp r0, 0 + bne _08049A0E + movs r0, 0x41 + negs r0, r0 + ands r7, r0 +_08049A0E: + cmp r1, 0 + bne _08049A18 + movs r0, 0x81 + negs r0, r0 + ands r7, r0 +_08049A18: + movs r0, 0x80 + lsls r0, 2 + b _08049B3A +_08049A1E: + cmp r6, 0x2 + bne _08049A84 + movs r7, 0xFF + ldr r0, [sp] + cmp r0, 0x2 + beq _08049A2C + movs r7, 0xFE +_08049A2C: + ldr r0, [sp, 0x4] + cmp r0, 0x2 + beq _08049A38 + movs r0, 0x3 + negs r0, r0 + ands r7, r0 +_08049A38: + ldr r0, [sp, 0x8] + cmp r0, 0x2 + beq _08049A44 + movs r0, 0x5 + negs r0, r0 + ands r7, r0 +_08049A44: + ldr r0, [sp, 0xC] + cmp r0, 0x2 + beq _08049A50 + movs r0, 0x9 + negs r0, r0 + ands r7, r0 +_08049A50: + ldr r0, [sp, 0x10] + cmp r0, 0x2 + beq _08049A5C + movs r0, 0x11 + negs r0, r0 + ands r7, r0 +_08049A5C: + ldr r0, [sp, 0x14] + cmp r0, 0x2 + beq _08049A68 + movs r0, 0x21 + negs r0, r0 + ands r7, r0 +_08049A68: + ldr r0, [sp, 0x18] + cmp r0, 0x2 + beq _08049A74 + movs r0, 0x41 + negs r0, r0 + ands r7, r0 +_08049A74: + cmp r1, 0x2 + beq _08049A7E + movs r0, 0x81 + negs r0, r0 + ands r7, r0 +_08049A7E: + movs r0, 0x80 + lsls r0, 1 + b _08049B3A +_08049A84: + ldr r1, [sp, 0x20] + cmp r1, 0x3 + bne _08049AEE + movs r7, 0xFF + ldr r0, [sp] + cmp r0, 0x3 + beq _08049A94 + movs r7, 0xFE +_08049A94: + ldr r0, [sp, 0x4] + cmp r0, 0x3 + beq _08049AA0 + movs r0, 0x3 + negs r0, r0 + ands r7, r0 +_08049AA0: + ldr r0, [sp, 0x8] + cmp r0, 0x3 + beq _08049AAC + movs r0, 0x5 + negs r0, r0 + ands r7, r0 +_08049AAC: + ldr r0, [sp, 0xC] + cmp r0, 0x3 + beq _08049AB8 + movs r0, 0x9 + negs r0, r0 + ands r7, r0 +_08049AB8: + ldr r0, [sp, 0x10] + cmp r0, 0x3 + beq _08049AC4 + movs r0, 0x11 + negs r0, r0 + ands r7, r0 +_08049AC4: + ldr r0, [sp, 0x14] + cmp r0, 0x3 + beq _08049AD0 + movs r0, 0x21 + negs r0, r0 + ands r7, r0 +_08049AD0: + ldr r0, [sp, 0x18] + cmp r0, 0x3 + beq _08049ADC + movs r0, 0x41 + negs r0, r0 + ands r7, r0 +_08049ADC: + ldr r0, [sp, 0x1C] + cmp r0, 0x3 + beq _08049AE8 + movs r0, 0x81 + negs r0, r0 + ands r7, r0 +_08049AE8: + movs r0, 0x80 + lsls r0, 1 + b _08049B3A +_08049AEE: + ldr r0, [sp] + cmp r0, 0 + bne _08049AF6 + movs r7, 0x1 +_08049AF6: + ldr r0, [sp, 0x4] + cmp r0, 0 + bne _08049B00 + movs r0, 0x2 + orrs r7, r0 +_08049B00: + ldr r0, [sp, 0x8] + cmp r0, 0 + bne _08049B0A + movs r0, 0x4 + orrs r7, r0 +_08049B0A: + ldr r0, [sp, 0xC] + cmp r0, 0 + bne _08049B14 + movs r0, 0x8 + orrs r7, r0 +_08049B14: + ldr r0, [sp, 0x10] + cmp r0, 0 + bne _08049B1E + movs r0, 0x10 + orrs r7, r0 +_08049B1E: + ldr r0, [sp, 0x14] + cmp r0, 0 + bne _08049B28 + movs r0, 0x20 + orrs r7, r0 +_08049B28: + ldr r0, [sp, 0x18] + cmp r0, 0 + bne _08049B32 + movs r0, 0x40 + orrs r7, r0 +_08049B32: + ldr r0, [sp, 0x1C] + cmp r0, 0 + bne _08049B3C + movs r0, 0x80 +_08049B3A: + orrs r7, r0 +_08049B3C: + movs r0, 0x4 + bl RandomCapped + adds r4, r0, 0 + cmp r4, 0x3 + bne _08049B4A + movs r4, 0 +_08049B4A: + bl sub_80441BC + lsls r0, 24 + cmp r0, 0 + beq _08049B56 + movs r4, 0 +_08049B56: + mov r0, r10 + mov r1, r9 + bl sub_8049590 + ldr r1, _08049B84 + ldr r2, [r1] + lsls r1, r7, 1 + adds r1, r7 + adds r1, r4, r1 +_08049B68: + ldr r3, _08049B88 + adds r2, r3 + adds r2, r1 + ldrb r1, [r2] +_08049B70: + strb r1, [r0, 0x8] +_08049B72: + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08049B84: .4byte gUnknown_203B418 +_08049B88: .4byte 0x00012c24 + thumb_func_end sub_80498A8 + + thumb_func_start sub_8049B8C +sub_8049B8C: + push {r4-r6,lr} + movs r5, 0 +_08049B90: + movs r4, 0 + adds r6, r5, 0x1 +_08049B94: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8049BB0 + adds r4, 0x1 + cmp r4, 0x37 + ble _08049B94 + adds r5, r6, 0 + cmp r5, 0x1F + ble _08049B90 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8049B8C + + thumb_func_start sub_8049BB0 +sub_8049BB0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x44 + mov r10, r0 + str r1, [sp, 0x40] + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + adds r0, r1, 0 + adds r0, 0x1 + mov r9, r0 + mov r0, r10 + mov r1, r9 + bl sub_804954C + ldrh r1, [r0] + movs r4, 0x3 + adds r0, r4, 0 + ands r0, r1 + add r6, sp, 0x18 + str r0, [sp, 0x18] + mov r5, r10 + adds r5, 0x1 + adds r0, r5, 0 + mov r1, r9 + bl sub_804954C + ldrh r1, [r0] + adds r0, r4, 0 + ands r0, r1 + str r0, [r6, 0x4] + adds r0, r5, 0 + ldr r1, [sp, 0x40] + bl sub_804954C + ldrh r1, [r0] + adds r0, r4, 0 + ands r0, r1 + str r0, [r6, 0x8] + ldr r0, [sp, 0x40] + subs r0, 0x1 + mov r8, r0 + adds r0, r5, 0 + mov r1, r8 + bl sub_804954C + ldrh r1, [r0] + adds r0, r4, 0 + ands r0, r1 + str r0, [r6, 0xC] + mov r0, r10 + mov r1, r8 + bl sub_804954C + ldrh r1, [r0] + adds r0, r4, 0 + ands r0, r1 + str r0, [r6, 0x10] + subs r5, 0x2 + adds r0, r5, 0 + mov r1, r8 + bl sub_804954C + ldrh r1, [r0] + adds r0, r4, 0 + ands r0, r1 + str r0, [r6, 0x14] + adds r0, r5, 0 + ldr r1, [sp, 0x40] + bl sub_804954C + ldrh r1, [r0] + adds r0, r4, 0 + ands r0, r1 + str r0, [r6, 0x18] + adds r0, r5, 0 + mov r1, r9 + bl sub_804954C + ldrh r0, [r0] + ands r4, r0 + str r4, [r6, 0x1C] + ldr r1, [sp, 0x18] + cmp r1, 0x1 + bne _08049C6A + ldr r0, [sp] + orrs r0, r1 + str r0, [sp] +_08049C6A: + ldr r0, [r6, 0x8] + cmp r0, 0x1 + bne _08049C78 + ldr r0, [sp] + movs r1, 0x4 + orrs r0, r1 + str r0, [sp] +_08049C78: + ldr r0, [r6, 0x10] + cmp r0, 0x1 + bne _08049C86 + ldr r0, [sp] + movs r1, 0x10 + orrs r0, r1 + str r0, [sp] +_08049C86: + ldr r0, [r6, 0x18] + cmp r0, 0x1 + bne _08049C94 + ldr r0, [sp] + movs r1, 0x40 + orrs r0, r1 + str r0, [sp] +_08049C94: + ldr r2, [sp, 0x18] + cmp r2, 0 + beq _08049CAE + ldr r0, [r6, 0x4] + cmp r0, 0x1 + bne _08049CAE + ldr r0, [r6, 0x8] + cmp r0, 0 + beq _08049CC8 + ldr r0, [sp] + movs r1, 0x2 + orrs r0, r1 + str r0, [sp] +_08049CAE: + ldr r0, [r6, 0x8] + cmp r0, 0 + beq _08049CC8 + ldr r0, [r6, 0xC] + cmp r0, 0x1 + bne _08049CC8 + ldr r0, [r6, 0x10] + cmp r0, 0 + beq _08049CE2 + ldr r0, [sp] + movs r1, 0x8 + orrs r0, r1 + str r0, [sp] +_08049CC8: + ldr r0, [r6, 0x10] + cmp r0, 0 + beq _08049CE2 + ldr r0, [r6, 0x14] + cmp r0, 0x1 + bne _08049CE2 + ldr r0, [r6, 0x18] + cmp r0, 0 + beq _08049CFA + ldr r0, [sp] + movs r1, 0x20 + orrs r0, r1 + str r0, [sp] +_08049CE2: + ldr r0, [r6, 0x18] + cmp r0, 0 + beq _08049CFA + ldr r0, [r6, 0x1C] + cmp r0, 0x1 + bne _08049CFA + cmp r2, 0 + beq _08049CFA + ldr r0, [sp] + movs r1, 0x80 + orrs r0, r1 + str r0, [sp] +_08049CFA: + add r4, sp, 0x38 + movs r7, 0x1 + adds r2, r4, 0 + adds r1, r6, 0 + movs r5, 0 + movs r3, 0x7 +_08049D06: + ldr r0, [r1] + subs r0, 0x1 + cmp r0, 0x1 + bhi _08049D12 + strb r7, [r2] + b _08049D14 +_08049D12: + strb r5, [r2] +_08049D14: + adds r2, 0x1 + adds r1, 0x4 + subs r3, 0x1 + cmp r3, 0 + bge _08049D06 + ldrb r0, [r4] + cmp r0, 0 + beq _08049D2C + ldr r0, [sp, 0x4] + movs r1, 0x1 + orrs r0, r1 + str r0, [sp, 0x4] +_08049D2C: + ldrb r0, [r4, 0x2] + cmp r0, 0 + beq _08049D3A + ldr r0, [sp, 0x4] + movs r1, 0x4 + orrs r0, r1 + str r0, [sp, 0x4] +_08049D3A: + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _08049D48 + ldr r0, [sp, 0x4] + movs r1, 0x10 + orrs r0, r1 + str r0, [sp, 0x4] +_08049D48: + ldrb r0, [r4, 0x6] + cmp r0, 0 + beq _08049D56 + ldr r0, [sp, 0x4] + movs r1, 0x40 + orrs r0, r1 + str r0, [sp, 0x4] +_08049D56: + ldr r2, [sp, 0x18] + cmp r2, 0 + beq _08049D70 + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _08049D70 + ldr r0, [r6, 0x8] + cmp r0, 0 + beq _08049D8A + ldr r0, [sp, 0x4] + movs r1, 0x2 + orrs r0, r1 + str r0, [sp, 0x4] +_08049D70: + ldr r0, [r6, 0x8] + cmp r0, 0 + beq _08049D8A + ldrb r0, [r4, 0x3] + cmp r0, 0 + beq _08049D8A + ldr r0, [r6, 0x10] + cmp r0, 0 + beq _08049DA4 + ldr r0, [sp, 0x4] + movs r1, 0x8 + orrs r0, r1 + str r0, [sp, 0x4] +_08049D8A: + ldr r0, [r6, 0x10] + cmp r0, 0 + beq _08049DA4 + ldrb r0, [r4, 0x5] + cmp r0, 0 + beq _08049DA4 + ldr r0, [r6, 0x18] + cmp r0, 0 + beq _08049DBC + ldr r0, [sp, 0x4] + movs r1, 0x20 + orrs r0, r1 + str r0, [sp, 0x4] +_08049DA4: + ldr r0, [r6, 0x18] + cmp r0, 0 + beq _08049DBC + ldrb r0, [r4, 0x7] + cmp r0, 0 + beq _08049DBC + cmp r2, 0 + beq _08049DC8 + ldr r0, [sp, 0x4] + movs r1, 0x80 + orrs r0, r1 + str r0, [sp, 0x4] +_08049DBC: + cmp r2, 0 + beq _08049DC8 + ldr r0, [sp, 0x8] + movs r1, 0x1 + orrs r0, r1 + str r0, [sp, 0x8] +_08049DC8: + ldr r0, [r6, 0x8] + cmp r0, 0 + beq _08049DD6 + ldr r0, [sp, 0x8] + movs r1, 0x4 + orrs r0, r1 + str r0, [sp, 0x8] +_08049DD6: + ldr r0, [r6, 0x10] + cmp r0, 0 + beq _08049DE4 + ldr r0, [sp, 0x8] + movs r1, 0x10 + orrs r0, r1 + str r0, [sp, 0x8] +_08049DE4: + ldr r0, [r6, 0x18] + cmp r0, 0 + beq _08049DF2 + ldr r0, [sp, 0x8] + movs r1, 0x40 + orrs r0, r1 + str r0, [sp, 0x8] +_08049DF2: + cmp r2, 0 + beq _08049E0A + ldr r0, [r6, 0x4] + cmp r0, 0 + beq _08049E0A + ldr r0, [r6, 0x8] + cmp r0, 0 + beq _08049E24 + ldr r0, [sp, 0x8] + movs r1, 0x2 + orrs r0, r1 + str r0, [sp, 0x8] +_08049E0A: + ldr r0, [r6, 0x8] + cmp r0, 0 + beq _08049E24 + ldr r0, [r6, 0xC] + cmp r0, 0 + beq _08049E24 + ldr r0, [r6, 0x10] + cmp r0, 0 + beq _08049E3E + ldr r0, [sp, 0x8] + movs r1, 0x8 + orrs r0, r1 + str r0, [sp, 0x8] +_08049E24: + ldr r0, [r6, 0x10] + cmp r0, 0 + beq _08049E3E + ldr r0, [r6, 0x14] + cmp r0, 0 + beq _08049E3E + ldr r0, [r6, 0x18] + cmp r0, 0 + beq _08049E56 + ldr r0, [sp, 0x8] + movs r1, 0x20 + orrs r0, r1 + str r0, [sp, 0x8] +_08049E3E: + ldr r0, [r6, 0x18] + cmp r0, 0 + beq _08049E56 + ldr r0, [r6, 0x1C] + cmp r0, 0 + beq _08049E56 + cmp r2, 0 + beq _08049E56 + ldr r0, [sp, 0x8] + movs r1, 0x80 + orrs r0, r1 + str r0, [sp, 0x8] +_08049E56: + movs r0, 0xFF + str r0, [sp, 0xC] + mov r0, r10 + cmp r0, 0x1 + bgt _08049E64 + movs r0, 0x1F + str r0, [sp, 0xC] +_08049E64: + ldr r0, [sp, 0x40] + cmp r0, 0x1 + bgt _08049E74 + ldr r0, [sp, 0xC] + movs r1, 0x39 + negs r1, r1 + ands r0, r1 + str r0, [sp, 0xC] +_08049E74: + mov r0, r10 + cmp r0, 0x35 + ble _08049E84 + ldr r0, [sp, 0xC] + movs r1, 0xF + negs r1, r1 + ands r0, r1 + str r0, [sp, 0xC] +_08049E84: + ldr r0, [sp, 0x40] + cmp r0, 0x1D + ble _08049E94 + ldr r0, [sp, 0xC] + movs r1, 0x84 + negs r1, r1 + ands r0, r1 + str r0, [sp, 0xC] +_08049E94: + mov r0, r10 + ldr r1, [sp, 0x40] + bl sub_8049590 + ldr r1, [sp] + strb r1, [r0, 0xA] + mov r0, r10 + ldr r1, [sp, 0x40] + bl sub_8049590 + ldr r1, [sp, 0x4] + strb r1, [r0, 0xB] + mov r0, r10 + ldr r1, [sp, 0x40] + bl sub_8049590 + ldr r1, [sp, 0x8] + strb r1, [r0, 0xC] + mov r0, r10 + ldr r1, [sp, 0x40] + bl sub_8049590 + ldr r1, [sp, 0xC] + strb r1, [r0, 0xD] + add sp, 0x44 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8049BB0 + + thumb_func_start sub_8049ED4 +sub_8049ED4: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + ldr r0, _08049F78 + ldr r6, [r0] + ldr r1, _08049F7C + adds r0, r6, r1 + ldrb r0, [r0] + str r0, [sp] + ldr r2, _08049F80 + adds r0, r6, r2 + ldrb r0, [r0] + str r0, [sp, 0x4] + ldr r4, _08049F84 + adds r0, r6, r4 + ldrh r0, [r0] + lsls r0, 16 + asrs r3, r0, 19 + ldr r1, _08049F88 + adds r0, r3, 0 + adds r0, 0x1E + lsls r0, 1 + adds r1, r0, r1 + movs r4, 0 + ldrsh r2, [r1, r4] + mov r10, r2 + ldr r1, _08049F8C + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + str r1, [sp, 0x10] + movs r4, 0 + str r4, [sp, 0x8] +_08049F1C: + ldr r1, _08049F90 + adds r0, r6, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 19 + subs r2, r0, 0x1 + mov r9, r2 + movs r1, 0x1F + ands r3, r1 + ldr r1, _08049F88 + adds r0, 0x1D + lsls r0, 1 + adds r1, r0, r1 + movs r2, 0 + ldrsh r4, [r1, r2] + mov r8, r4 + ldr r1, _08049F8C + adds r0, r1 + movs r1, 0 + ldrsh r4, [r0, r1] + str r4, [sp, 0x14] + mov r2, r8 + lsls r0, r2, 1 + add r0, r8 + mov r4, r10 + adds r7, r4, r0 + ldr r0, [sp, 0x10] + ldr r1, [sp, 0x14] + str r3, [sp, 0x34] + bl sub_804954C + adds r5, r0, 0 + ldrh r2, [r5] + movs r1, 0x80 + lsls r1, 5 + adds r0, r1, 0 + ands r0, r2 + ldr r3, [sp, 0x34] + cmp r0, 0 + beq _08049F98 + lsls r0, r7, 1 + ldr r2, _08049F94 + adds r0, r2 + adds r2, r6, r0 + b _0804A06A + .align 2, 0 +_08049F78: .4byte gUnknown_203B418 +_08049F7C: .4byte 0x00018210 +_08049F80: .4byte 0x0001820f +_08049F84: .4byte 0x000181f0 +_08049F88: .4byte gUnknown_80F6A4A +_08049F8C: .4byte gUnknown_80F6C06 +_08049F90: .4byte 0x000181f2 +_08049F94: .4byte 0x00012bec +_08049F98: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _08049FAC + lsls r0, r7, 1 + ldr r4, _08049FA8 + b _08049FD2 + .align 2, 0 +_08049FA8: .4byte 0x00012bda +_08049FAC: + ldr r0, [sp] + cmp r0, 0 + beq _08049FC4 + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r2, _08049FC0 + adds r1, r2 + b _0804A064 + .align 2, 0 +_08049FC0: .4byte 0x00011884 +_08049FC4: + ldrh r1, [r5, 0x4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08049FDC + lsls r0, r7, 1 + ldr r4, _08049FD8 +_08049FD2: + adds r0, r4 + adds r2, r6, r0 + b _0804A06A + .align 2, 0 +_08049FD8: .4byte 0x00012bfe +_08049FDC: + ldr r4, [r5, 0x14] + cmp r4, 0 + beq _0804A028 + adds r0, r4, 0 + str r3, [sp, 0x34] + bl sub_80450F8 + ldr r3, [sp, 0x34] + cmp r0, 0x2 + bne _0804A014 + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + bne _0804A000 + ldr r0, [sp, 0x4] + cmp r0, 0 + beq _0804A014 +_0804A000: + ldr r0, [r4, 0x70] + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + ldr r1, _0804A010 + adds r0, r1 + b _0804A046 + .align 2, 0 +_0804A010: .4byte 0x00012a18 +_0804A014: + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r2, _0804A024 + adds r1, r2 + b _0804A064 + .align 2, 0 +_0804A024: .4byte 0x00011884 +_0804A028: + movs r4, 0x80 + lsls r4, 2 + adds r0, r4, 0 + ands r0, r2 + cmp r0, 0 + beq _0804A058 + ldr r1, _0804A050 + adds r0, r6, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + ldr r4, _0804A054 + adds r0, r4 +_0804A046: + adds r0, r6, r0 + lsls r1, r7, 1 + adds r2, r0, r1 + b _0804A06A + .align 2, 0 +_0804A050: .4byte 0x00003a12 +_0804A054: .4byte 0x00012a18 +_0804A058: + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r0, _0804A0E8 + adds r1, r0 +_0804A064: + adds r1, r6, r1 + lsls r0, r7, 1 + adds r2, r1, r0 +_0804A06A: + lsls r1, r3, 1 + str r1, [sp, 0x30] + adds r3, 0x1 + str r3, [sp, 0x2C] + mov r4, r10 + adds r4, 0x1 + str r4, [sp, 0x28] + ldr r0, [sp, 0x8] + adds r0, 0x1 + str r0, [sp, 0x24] + mov r1, r10 + lsls r3, r1, 1 + ldr r4, _0804A0EC + adds r4, r3, r4 + str r4, [sp, 0x18] + ldr r0, _0804A0F0 + adds r0, r3, r0 + str r0, [sp, 0x1C] + ldr r1, _0804A0F4 + adds r1, r3, r1 + str r1, [sp, 0x20] + movs r4, 0x16 + str r4, [sp, 0xC] +_0804A098: + movs r0, 0x1F + mov r1, r9 + ands r1, r0 + mov r9, r1 + lsls r0, r1, 6 + ldr r4, [sp, 0x30] + adds r0, r4, r0 + ldr r1, _0804A0F8 + adds r0, r1 + ldrh r1, [r2] + strh r1, [r0] + adds r2, 0x6 + movs r4, 0x1 + add r9, r4 + add r8, r4 + mov r0, r8 + cmp r0, 0x3 + bne _0804A1AC + movs r1, 0 + mov r8, r1 + ldr r2, [sp, 0x14] + adds r2, 0x1 + str r2, [sp, 0x14] + mov r7, r10 + ldr r0, [sp, 0x10] + adds r1, r2, 0 + str r3, [sp, 0x34] + bl sub_804954C + adds r5, r0, 0 + ldrh r2, [r5] + movs r0, 0x20 + ands r0, r2 + ldr r3, [sp, 0x34] + cmp r0, 0 + beq _0804A0FC + ldr r4, [sp, 0x18] + adds r2, r6, r4 + b _0804A1AC + .align 2, 0 +_0804A0E8: .4byte 0x00011884 +_0804A0EC: .4byte 0x00012bda +_0804A0F0: .4byte 0x00012bec +_0804A0F4: .4byte 0x00012bfe +_0804A0F8: .4byte gUnknown_202C838 +_0804A0FC: + movs r1, 0x80 + lsls r1, 5 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _0804A10E + ldr r4, [sp, 0x1C] + adds r2, r6, r4 + b _0804A1AC +_0804A10E: + ldr r0, [sp] + cmp r0, 0 + bne _0804A19C + ldrh r1, [r5, 0x4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0804A124 + ldr r4, [sp, 0x20] + adds r2, r6, r4 + b _0804A1AC +_0804A124: + ldr r4, [r5, 0x14] + cmp r4, 0 + beq _0804A174 + adds r0, r4, 0 + str r3, [sp, 0x34] + bl sub_80450F8 + ldr r3, [sp, 0x34] + cmp r0, 0x2 + bne _0804A15C + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + bne _0804A148 + ldr r0, [sp, 0x4] + cmp r0, 0 + beq _0804A15C +_0804A148: + ldr r0, [r4, 0x70] + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + ldr r1, _0804A158 + b _0804A1A6 + .align 2, 0 +_0804A158: .4byte 0x00012a18 +_0804A15C: + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r2, _0804A170 + adds r1, r2 + adds r1, r6, r1 + lsls r0, r7, 1 + adds r2, r1, r0 + b _0804A1AC + .align 2, 0 +_0804A170: .4byte 0x00011884 +_0804A174: + movs r4, 0x80 + lsls r4, 2 + adds r0, r4, 0 + ands r0, r2 + cmp r0, 0 + beq _0804A19C + ldr r1, _0804A194 + adds r0, r6, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + ldr r4, _0804A198 + adds r0, r4 + b _0804A1A8 + .align 2, 0 +_0804A194: .4byte 0x00003a12 +_0804A198: .4byte 0x00012a18 +_0804A19C: + ldrb r1, [r5, 0x8] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + ldr r1, _0804A1EC +_0804A1A6: + adds r0, r1 +_0804A1A8: + adds r0, r6, r0 + adds r2, r0, r3 +_0804A1AC: + ldr r4, [sp, 0xC] + subs r4, 0x1 + str r4, [sp, 0xC] + cmp r4, 0 + blt _0804A1B8 + b _0804A098 +_0804A1B8: + ldr r3, [sp, 0x2C] + ldr r0, [sp, 0x28] + mov r10, r0 + cmp r0, 0x3 + bne _0804A1CC + movs r1, 0 + mov r10, r1 + ldr r2, [sp, 0x10] + adds r2, 0x1 + str r2, [sp, 0x10] +_0804A1CC: + ldr r4, [sp, 0x24] + str r4, [sp, 0x8] + cmp r4, 0x1E + bgt _0804A1D6 + b _08049F1C +_0804A1D6: + movs r0, 0x3 + bl sub_80098F8 + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804A1EC: .4byte 0x00011884 + thumb_func_end sub_8049ED4 + + thumb_func_start sub_804A1F0 +sub_804A1F0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + ldr r2, _0804A284 + ldr r7, [r2] + ldr r3, _0804A288 + adds r2, r7, r3 + ldrb r2, [r2] + str r2, [sp] + ldr r4, _0804A28C + adds r2, r7, r4 + ldrb r2, [r2] + str r2, [sp, 0x4] + ldr r5, _0804A290 + adds r2, r7, r5 + movs r3, 0 + ldrsh r2, [r2, r3] + adds r2, r0 + subs r4, 0x1D + adds r0, r7, r4 + movs r5, 0 + ldrsh r0, [r0, r5] + adds r0, r1 + asrs r0, 3 + asrs r2, 3 + str r2, [sp, 0x14] + subs r1, r0, 0x1 + mov r9, r1 + ldr r3, _0804A294 + adds r1, r2, 0 + adds r1, 0x1E + lsls r1, 1 + adds r2, r1, r3 + movs r5, 0 + ldrsh r4, [r2, r5] + str r4, [sp, 0x10] + ldr r2, _0804A298 + adds r1, r2 + movs r5, 0 + ldrsh r4, [r1, r5] + str r4, [sp, 0xC] + adds r0, 0x1D + lsls r0, 1 + adds r3, r0, r3 + movs r4, 0 + ldrsh r1, [r3, r4] + mov r8, r1 + adds r0, r2 + movs r1, 0 + ldrsh r5, [r0, r1] + mov r10, r5 + mov r2, r8 + lsls r0, r2, 1 + add r0, r8 + ldr r3, [sp, 0x10] + adds r6, r3, r0 + ldr r0, [sp, 0xC] + mov r1, r10 + bl sub_804954C + adds r5, r0, 0 + ldrh r1, [r5] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0804A2A0 + lsls r0, r6, 1 + ldr r4, _0804A29C + adds r0, r4 + adds r2, r7, r0 + b _0804A356 + .align 2, 0 +_0804A284: .4byte gUnknown_203B418 +_0804A288: .4byte 0x00018210 +_0804A28C: .4byte 0x0001820f +_0804A290: .4byte 0x000181f0 +_0804A294: .4byte gUnknown_80F6A4A +_0804A298: .4byte gUnknown_80F6C06 +_0804A29C: .4byte 0x00012bda +_0804A2A0: + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + beq _0804A2B8 + lsls r0, r6, 1 + ldr r5, _0804A2B4 + adds r0, r5 + adds r2, r7, r0 + b _0804A356 + .align 2, 0 +_0804A2B4: .4byte 0x00012bec +_0804A2B8: + ldr r0, [sp] + cmp r0, 0 + beq _0804A2D0 + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r2, _0804A2CC + adds r1, r2 + b _0804A350 + .align 2, 0 +_0804A2CC: .4byte 0x00011884 +_0804A2D0: + ldr r4, [r5, 0x14] + cmp r4, 0 + beq _0804A318 + adds r0, r4, 0 + bl sub_80450F8 + cmp r0, 0x2 + bne _0804A304 + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + bne _0804A2F0 + ldr r3, [sp, 0x4] + cmp r3, 0 + beq _0804A304 +_0804A2F0: + ldr r0, [r4, 0x70] + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + ldr r4, _0804A300 + adds r0, r4 + b _0804A334 + .align 2, 0 +_0804A300: .4byte 0x00012a18 +_0804A304: + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r5, _0804A314 + adds r1, r5 + b _0804A350 + .align 2, 0 +_0804A314: .4byte 0x00011884 +_0804A318: + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _0804A344 + ldr r1, _0804A33C + adds r0, r7, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + ldr r3, _0804A340 + adds r0, r3 +_0804A334: + adds r0, r7, r0 + lsls r1, r6, 1 + adds r2, r0, r1 + b _0804A356 + .align 2, 0 +_0804A33C: .4byte 0x00003a12 +_0804A340: .4byte 0x00012a18 +_0804A344: + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r4, _0804A3AC + adds r1, r4 +_0804A350: + adds r1, r7, r1 + lsls r0, r6, 1 + adds r2, r1, r0 +_0804A356: + movs r5, 0x16 + str r5, [sp, 0x8] +_0804A35A: + movs r0, 0x1F + ldr r1, [sp, 0x14] + ands r1, r0 + str r1, [sp, 0x14] + mov r3, r9 + ands r3, r0 + mov r9, r3 + lsls r1, 1 + lsls r0, r3, 6 + adds r1, r0 + ldr r4, _0804A3B0 + adds r1, r4 + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x6 + movs r5, 0x1 + add r9, r5 + add r8, r5 + mov r0, r8 + cmp r0, 0x3 + beq _0804A386 + b _0804A476 +_0804A386: + movs r1, 0 + mov r8, r1 + add r10, r5 + ldr r6, [sp, 0x10] + ldr r0, [sp, 0xC] + mov r1, r10 + bl sub_804954C + adds r5, r0, 0 + ldrh r1, [r5] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0804A3B8 + lsls r0, r6, 1 + ldr r2, _0804A3B4 + adds r0, r2 + adds r2, r7, r0 + b _0804A476 + .align 2, 0 +_0804A3AC: .4byte 0x00011884 +_0804A3B0: .4byte gUnknown_202C838 +_0804A3B4: .4byte 0x00012bda +_0804A3B8: + movs r3, 0x80 + lsls r3, 5 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0804A3D4 + lsls r0, r6, 1 + ldr r4, _0804A3D0 + adds r0, r4 + adds r2, r7, r0 + b _0804A476 + .align 2, 0 +_0804A3D0: .4byte 0x00012bec +_0804A3D4: + ldr r0, [sp] + cmp r0, 0 + beq _0804A3EC + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r2, _0804A3E8 + adds r1, r2 + b _0804A470 + .align 2, 0 +_0804A3E8: .4byte 0x00011884 +_0804A3EC: + ldr r4, [r5, 0x14] + cmp r4, 0 + beq _0804A434 + adds r0, r4, 0 + bl sub_80450F8 + cmp r0, 0x2 + bne _0804A420 + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + bne _0804A40C + ldr r3, [sp, 0x4] + cmp r3, 0 + beq _0804A420 +_0804A40C: + ldr r0, [r4, 0x70] + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + ldr r4, _0804A41C + adds r0, r4 + b _0804A452 + .align 2, 0 +_0804A41C: .4byte 0x00012a18 +_0804A420: + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r5, _0804A430 + adds r1, r5 + b _0804A470 + .align 2, 0 +_0804A430: .4byte 0x00011884 +_0804A434: + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0804A464 + ldr r3, _0804A45C + adds r0, r7, r3 + movs r4, 0 + ldrsh r1, [r0, r4] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + ldr r5, _0804A460 + adds r0, r5 +_0804A452: + adds r0, r7, r0 + lsls r1, r6, 1 + adds r2, r0, r1 + b _0804A476 + .align 2, 0 +_0804A45C: .4byte 0x00003a12 +_0804A460: .4byte 0x00012a18 +_0804A464: + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r0, _0804A498 + adds r1, r0 +_0804A470: + adds r1, r7, r1 + lsls r0, r6, 1 + adds r2, r1, r0 +_0804A476: + ldr r1, [sp, 0x8] + subs r1, 0x1 + str r1, [sp, 0x8] + cmp r1, 0 + blt _0804A482 + b _0804A35A +_0804A482: + movs r0, 0x3 + bl sub_80098F8 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804A498: .4byte 0x00011884 + thumb_func_end sub_804A1F0 + + thumb_func_start sub_804A49C +sub_804A49C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + ldr r2, _0804A52C + ldr r7, [r2] + ldr r3, _0804A530 + adds r2, r7, r3 + ldrb r2, [r2] + str r2, [sp] + ldr r4, _0804A534 + adds r2, r7, r4 + ldrb r2, [r2] + str r2, [sp, 0x4] + subs r3, 0x20 + adds r2, r7, r3 + movs r4, 0 + ldrsh r2, [r2, r4] + adds r2, r0 + adds r3, 0x2 + adds r0, r7, r3 + movs r4, 0 + ldrsh r0, [r0, r4] + adds r0, r1 + asrs r2, 3 + mov r8, r2 + asrs r0, 3 + str r0, [sp, 0x14] + ldr r2, _0804A538 + mov r0, r8 + adds r0, 0x1E + lsls r0, 1 + adds r1, r0, r2 + movs r4, 0 + ldrsh r3, [r1, r4] + mov r9, r3 + ldr r1, _0804A53C + adds r0, r1 + movs r4, 0 + ldrsh r3, [r0, r4] + mov r10, r3 + ldr r0, [sp, 0x14] + adds r0, 0x1E + lsls r0, 1 + adds r2, r0, r2 + movs r4, 0 + ldrsh r3, [r2, r4] + str r3, [sp, 0x10] + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + str r1, [sp, 0xC] + lsls r0, r3, 1 + adds r0, r3 + mov r3, r9 + adds r6, r3, r0 + mov r0, r10 + bl sub_804954C + adds r5, r0, 0 + ldrh r1, [r5] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0804A544 + lsls r0, r6, 1 + ldr r4, _0804A540 + adds r0, r4 + adds r2, r7, r0 + b _0804A5DA + .align 2, 0 +_0804A52C: .4byte gUnknown_203B418 +_0804A530: .4byte 0x00018210 +_0804A534: .4byte 0x0001820f +_0804A538: .4byte gUnknown_80F6A4A +_0804A53C: .4byte gUnknown_80F6C06 +_0804A540: .4byte 0x00012bda +_0804A544: + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + beq _0804A55C + lsls r0, r6, 1 + ldr r1, _0804A558 + adds r0, r1 + adds r2, r7, r0 + b _0804A5DA + .align 2, 0 +_0804A558: .4byte 0x00012bec +_0804A55C: + ldr r2, [sp] + cmp r2, 0 + beq _0804A574 + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r3, _0804A570 + adds r1, r3 + b _0804A5D4 + .align 2, 0 +_0804A570: .4byte 0x00011884 +_0804A574: + ldr r4, [r5, 0x14] + cmp r4, 0 + beq _0804A59A + adds r0, r4, 0 + bl sub_80450F8 + cmp r0, 0x2 + bne _0804A5C8 + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + bne _0804A594 + ldr r0, [sp, 0x4] + cmp r0, 0 + beq _0804A5C8 +_0804A594: + ldr r0, [r4, 0x70] + ldrb r1, [r0] + b _0804A5AC +_0804A59A: + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _0804A5C8 + ldr r3, _0804A5C0 + adds r0, r7, r3 + movs r4, 0 + ldrsh r1, [r0, r4] +_0804A5AC: + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + ldr r1, _0804A5C4 + adds r0, r1 + adds r0, r7, r0 + lsls r1, r6, 1 + adds r2, r0, r1 + b _0804A5DA + .align 2, 0 +_0804A5C0: .4byte 0x00003a12 +_0804A5C4: .4byte 0x00012a18 +_0804A5C8: + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r2, _0804A638 + adds r1, r2 +_0804A5D4: + adds r1, r7, r1 + lsls r0, r6, 1 + adds r2, r1, r0 +_0804A5DA: + movs r3, 0x1E + str r3, [sp, 0x8] +_0804A5DE: + movs r0, 0x1F + mov r4, r8 + ands r4, r0 + mov r8, r4 + ldr r1, [sp, 0x14] + ands r1, r0 + str r1, [sp, 0x14] + lsls r1, r4, 1 + ldr r3, [sp, 0x14] + lsls r0, r3, 6 + adds r1, r0 + ldr r4, _0804A63C + adds r1, r4 + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + movs r0, 0x1 + add r8, r0 + add r9, r0 + mov r1, r9 + cmp r1, 0x3 + beq _0804A60C + b _0804A702 +_0804A60C: + movs r2, 0 + mov r9, r2 + add r10, r0 + ldr r3, [sp, 0x10] + lsls r0, r3, 1 + adds r6, r0, r3 + mov r0, r10 + ldr r1, [sp, 0xC] + bl sub_804954C + adds r5, r0, 0 + ldrh r1, [r5] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0804A644 + lsls r0, r6, 1 + ldr r4, _0804A640 + adds r0, r4 + adds r2, r7, r0 + b _0804A702 + .align 2, 0 +_0804A638: .4byte 0x00011884 +_0804A63C: .4byte gUnknown_202C838 +_0804A640: .4byte 0x00012bda +_0804A644: + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0804A660 + lsls r0, r6, 1 + ldr r3, _0804A65C + adds r0, r3 + adds r2, r7, r0 + b _0804A702 + .align 2, 0 +_0804A65C: .4byte 0x00012bec +_0804A660: + ldr r4, [sp] + cmp r4, 0 + beq _0804A678 + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r0, _0804A674 + adds r1, r0 + b _0804A6FC + .align 2, 0 +_0804A674: .4byte 0x00011884 +_0804A678: + ldr r4, [r5, 0x14] + cmp r4, 0 + beq _0804A6C0 + adds r0, r4, 0 + bl sub_80450F8 + cmp r0, 0x2 + bne _0804A6AC + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + bne _0804A698 + ldr r1, [sp, 0x4] + cmp r1, 0 + beq _0804A6AC +_0804A698: + ldr r0, [r4, 0x70] + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + ldr r2, _0804A6A8 + adds r0, r2 + b _0804A6DE + .align 2, 0 +_0804A6A8: .4byte 0x00012a18 +_0804A6AC: + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r3, _0804A6BC + adds r1, r3 + b _0804A6FC + .align 2, 0 +_0804A6BC: .4byte 0x00011884 +_0804A6C0: + movs r4, 0x80 + lsls r4, 2 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _0804A6F0 + ldr r1, _0804A6E8 + adds r0, r7, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + ldr r3, _0804A6EC + adds r0, r3 +_0804A6DE: + adds r0, r7, r0 + lsls r1, r6, 1 + adds r2, r0, r1 + b _0804A702 + .align 2, 0 +_0804A6E8: .4byte 0x00003a12 +_0804A6EC: .4byte 0x00012a18 +_0804A6F0: + ldrb r0, [r5, 0x8] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 1 + ldr r4, _0804A724 + adds r1, r4 +_0804A6FC: + adds r1, r7, r1 + lsls r0, r6, 1 + adds r2, r1, r0 +_0804A702: + ldr r0, [sp, 0x8] + subs r0, 0x1 + str r0, [sp, 0x8] + cmp r0, 0 + blt _0804A70E + b _0804A5DE +_0804A70E: + movs r0, 0x3 + bl sub_80098F8 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804A724: .4byte 0x00011884 + thumb_func_end sub_804A49C + + thumb_func_start sub_804A728 +sub_804A728: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x40 + str r0, [sp, 0x1C] + adds r5, r1, 0 + adds r4, r3, 0 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x20] + lsls r4, 24 + lsrs r4, 24 + ldr r6, _0804A814 + ldr r0, [r6] + mov r8, r0 + bl sub_8083600 + str r0, [sp, 0x24] + ldr r0, _0804A818 + add r0, r8 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 19 + str r0, [sp, 0x30] + adds r1, r0, 0 + ldr r0, [r6] + ldr r2, _0804A81C + adds r0, r2 + strb r4, [r0] + ldr r3, [sp, 0x1C] + movs r4, 0 + ldrsh r7, [r3, r4] + movs r0, 0x2 + ldrsh r6, [r3, r0] + ldr r0, _0804A820 + lsls r5, 2 + adds r5, r0 + movs r2, 0 + ldrsh r4, [r5, r2] + movs r0, 0x2 + ldrsh r3, [r5, r0] + mov r0, sp + movs r2, 0x5 +_0804A782: + strh r7, [r0] + strh r6, [r0, 0x2] + adds r7, r4 + adds r6, r3 + adds r0, 0x4 + subs r2, 0x1 + cmp r2, 0 + bge _0804A782 + ldr r0, _0804A824 + adds r1, 0x1E + lsls r1, 1 + adds r0, r1, r0 + movs r3, 0 + ldrsh r2, [r0, r3] + str r2, [sp, 0x28] + ldr r0, _0804A828 + adds r1, r0 + movs r0, 0 + ldrsh r4, [r1, r0] + mov r10, r4 + movs r7, 0 +_0804A7AC: + ldr r0, _0804A82C + add r0, r8 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 19 + str r0, [sp, 0x34] + ldr r0, _0804A824 + ldr r1, [sp, 0x34] + adds r1, 0x1E + lsls r1, 1 + adds r0, r1, r0 + movs r3, 0 + ldrsh r2, [r0, r3] + str r2, [sp, 0x2C] + ldr r0, _0804A828 + adds r1, r0 + movs r0, 0 + ldrsh r4, [r1, r0] + mov r9, r4 + lsls r0, r2, 1 + adds r0, r2 + ldr r1, [sp, 0x28] + adds r5, r1, r0 + mov r2, r10 + lsls r0, r2, 16 + lsls r1, r4, 16 + lsrs r0, 16 + orrs r0, r1 + str r0, [sp, 0x18] + ldr r3, [sp, 0x20] + cmp r3, 0 + beq _0804A850 + ldr r4, [sp, 0x1C] + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r10, r0 + bne _0804A834 + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r9, r0 + bne _0804A834 + lsls r0, r5, 1 + ldr r3, _0804A830 + adds r0, r3 + mov r4, r8 + adds r2, r4, r0 + ldr r0, [sp, 0x28] + adds r0, 0x1 + str r0, [sp, 0x3C] + adds r1, r7, 0x1 + str r1, [sp, 0x38] + b _0804A8FC + .align 2, 0 +_0804A814: .4byte gUnknown_203B418 +_0804A818: .4byte 0x000181f0 +_0804A81C: .4byte 0x0001821a +_0804A820: .4byte gUnknown_80F4448 +_0804A824: .4byte gUnknown_80F6A4A +_0804A828: .4byte gUnknown_80F6C06 +_0804A82C: .4byte 0x000181f2 +_0804A830: .4byte 0x00012b92 +_0804A834: + lsls r0, r5, 1 + ldr r2, _0804A84C + adds r0, r2 + mov r3, r8 + adds r2, r3, r0 + ldr r4, [sp, 0x28] + adds r4, 0x1 + str r4, [sp, 0x3C] + adds r0, r7, 0x1 + str r0, [sp, 0x38] + b _0804A8FC + .align 2, 0 +_0804A84C: .4byte 0x00013554 +_0804A850: + add r4, sp, 0x18 + ldr r0, [sp, 0x24] + adds r1, r4, 0 + bl sub_807049C + lsls r0, 24 + cmp r0, 0 + bne _0804A8E8 + ldr r0, [sp, 0x24] + adds r1, r4, 0 + bl sub_8045AAC + lsls r0, 24 + cmp r0, 0 + beq _0804A8E8 + movs r2, 0 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + lsls r3, r5, 1 + ldr r4, [sp, 0x28] + adds r4, 0x1 + str r4, [sp, 0x3C] + adds r1, r7, 0x1 + str r1, [sp, 0x38] + cmp r0, r10 + bne _0804A890 + mov r0, sp + movs r4, 0x2 + ldrsh r0, [r0, r4] + cmp r0, r9 + beq _0804A8AC +_0804A890: + adds r2, 0x1 + cmp r2, 0x5 + bgt _0804A8AC + lsls r0, r2, 2 + mov r4, sp + adds r1, r4, r0 + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r0, r10 + bne _0804A890 + movs r4, 0x2 + ldrsh r0, [r1, r4] + cmp r0, r9 + bne _0804A890 +_0804A8AC: + cmp r2, 0x6 + bne _0804A8D8 + ldr r0, _0804A8C0 + ldr r0, [r0] + ldrb r0, [r0, 0x3] + cmp r0, 0 + beq _0804A8C8 + ldr r1, _0804A8C4 + adds r0, r3, r1 + b _0804A8DC + .align 2, 0 +_0804A8C0: .4byte gUnknown_203B46C +_0804A8C4: .4byte 0x00012b80 +_0804A8C8: + ldr r4, _0804A8D4 + adds r0, r3, r4 + mov r1, r8 + adds r2, r1, r0 + b _0804A8FC + .align 2, 0 +_0804A8D4: .4byte 0x00013554 +_0804A8D8: + ldr r2, _0804A8E4 + adds r0, r3, r2 +_0804A8DC: + mov r3, r8 + adds r2, r3, r0 + b _0804A8FC + .align 2, 0 +_0804A8E4: .4byte 0x00012b92 +_0804A8E8: + lsls r0, r5, 1 + ldr r4, _0804A968 + adds r0, r4 + mov r1, r8 + adds r2, r1, r0 + ldr r3, [sp, 0x28] + adds r3, 0x1 + str r3, [sp, 0x3C] + adds r4, r7, 0x1 + str r4, [sp, 0x38] +_0804A8FC: + movs r6, 0 +_0804A8FE: + movs r0, 0x1F + ldr r1, [sp, 0x30] + ands r1, r0 + str r1, [sp, 0x30] + ldr r3, [sp, 0x34] + ands r3, r0 + lsls r0, r1, 1 + lsls r1, r3, 6 + adds r0, r1 + ldr r4, _0804A96C + adds r0, r4 + ldrh r1, [r2] + strh r1, [r0] + adds r2, 0x6 + adds r3, 0x1 + str r3, [sp, 0x34] + ldr r0, [sp, 0x2C] + adds r0, 0x1 + str r0, [sp, 0x2C] + adds r7, r6, 0x1 + cmp r0, 0x3 + beq _0804A92C + b _0804AA20 +_0804A92C: + movs r1, 0 + str r1, [sp, 0x2C] + movs r2, 0x1 + add r9, r2 + ldr r5, [sp, 0x28] + add r4, sp, 0x18 + mov r3, r10 + strh r3, [r4] + adds r0, r4, 0 + mov r1, r9 + strh r1, [r0, 0x2] + ldr r2, [sp, 0x20] + cmp r2, 0 + beq _0804A984 + ldr r3, [sp, 0x1C] + movs r4, 0 + ldrsh r0, [r3, r4] + cmp r10, r0 + bne _0804A974 + movs r1, 0x2 + ldrsh r0, [r3, r1] + cmp r9, r0 + bne _0804A974 + ldr r2, [sp, 0x28] + lsls r0, r2, 1 + ldr r3, _0804A970 + adds r0, r3 + mov r4, r8 + adds r2, r4, r0 + b _0804AA20 + .align 2, 0 +_0804A968: .4byte 0x00013554 +_0804A96C: .4byte gUnknown_202C038 +_0804A970: .4byte 0x00012b92 +_0804A974: + lsls r0, r5, 1 + ldr r1, _0804A980 + adds r0, r1 + mov r3, r8 + adds r2, r3, r0 + b _0804AA1E + .align 2, 0 +_0804A980: .4byte 0x00013554 +_0804A984: + ldr r0, [sp, 0x24] + adds r1, r4, 0 + bl sub_807049C + lsls r0, 24 + cmp r0, 0 + bne _0804AA14 + ldr r0, [sp, 0x24] + adds r1, r4, 0 + bl sub_8045AAC + lsls r0, 24 + cmp r0, 0 + beq _0804AA14 + movs r2, 0 + mov r0, sp + movs r4, 0 + ldrsh r0, [r0, r4] + ldr r1, [sp, 0x28] + lsls r3, r1, 1 + cmp r0, r10 + bne _0804A9BA + mov r0, sp + movs r4, 0x2 + ldrsh r0, [r0, r4] + cmp r0, r9 + beq _0804A9D6 +_0804A9BA: + adds r2, 0x1 + cmp r2, 0x5 + bgt _0804A9D6 + lsls r0, r2, 2 + mov r4, sp + adds r1, r4, r0 + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r0, r10 + bne _0804A9BA + movs r4, 0x2 + ldrsh r0, [r1, r4] + cmp r0, r9 + bne _0804A9BA +_0804A9D6: + cmp r2, 0x6 + bne _0804AA04 + ldr r0, _0804A9EC + ldr r0, [r0] + ldrb r0, [r0, 0x3] + cmp r0, 0 + beq _0804A9F4 + ldr r1, _0804A9F0 + adds r0, r3, r1 + b _0804AA08 + .align 2, 0 +_0804A9EC: .4byte gUnknown_203B46C +_0804A9F0: .4byte 0x00012b80 +_0804A9F4: + ldr r4, _0804AA00 + adds r0, r3, r4 + mov r1, r8 + adds r2, r1, r0 + b _0804AA20 + .align 2, 0 +_0804AA00: .4byte 0x00013554 +_0804AA04: + ldr r2, _0804AA10 + adds r0, r3, r2 +_0804AA08: + mov r3, r8 + adds r2, r3, r0 + b _0804AA20 + .align 2, 0 +_0804AA10: .4byte 0x00012b92 +_0804AA14: + lsls r0, r5, 1 + ldr r4, _0804AA5C + adds r0, r4 + mov r1, r8 + adds r2, r1, r0 +_0804AA1E: + adds r7, r6, 0x1 +_0804AA20: + adds r6, r7, 0 + cmp r6, 0x14 + bgt _0804AA28 + b _0804A8FE +_0804AA28: + ldr r2, [sp, 0x30] + adds r2, 0x1 + str r2, [sp, 0x30] + ldr r3, [sp, 0x3C] + str r3, [sp, 0x28] + cmp r3, 0x3 + bne _0804AA3E + movs r4, 0 + str r4, [sp, 0x28] + movs r0, 0x1 + add r10, r0 +_0804AA3E: + ldr r7, [sp, 0x38] + cmp r7, 0x1E + bgt _0804AA46 + b _0804A7AC +_0804AA46: + movs r0, 0x2 + bl sub_80098F8 + add sp, 0x40 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804AA5C: .4byte 0x00013554 + thumb_func_end sub_804A728 + + thumb_func_start sub_804AA60 +sub_804AA60: + push {r4,lr} + movs r1, 0 + ldr r0, _0804AAA0 + movs r3, 0 + movs r2, 0x80 + lsls r2, 5 + adds r4, r0, r2 +_0804AA6E: + lsls r0, r1, 6 + adds r2, r1, 0x1 + movs r1, 0x1F + adds r0, r4 + adds r0, 0x3E +_0804AA78: + strh r3, [r0] + subs r0, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _0804AA78 + adds r1, r2, 0 + cmp r1, 0x1F + ble _0804AA6E + movs r4, 0 + movs r0, 0x2 + bl sub_80098F8 + ldr r0, _0804AAA4 + ldr r0, [r0] + ldr r1, _0804AAA8 + adds r0, r1 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804AAA0: .4byte gUnknown_202B038 +_0804AAA4: .4byte gUnknown_203B418 +_0804AAA8: .4byte 0x0001821a + thumb_func_end sub_804AA60 + + thumb_func_start sub_804AAAC +sub_804AAAC: + push {r4-r7,lr} + movs r5, 0 + movs r7, 0 +_0804AAB2: + movs r4, 0 + adds r6, r5, 0x1 +_0804AAB6: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8049590 + strh r7, [r0, 0x4] + adds r4, 0x1 + cmp r4, 0x37 + ble _0804AAB6 + adds r5, r6, 0 + cmp r5, 0x1F + ble _0804AAB2 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804AAAC + + thumb_func_start sub_804AAD4 +sub_804AAD4: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r4, _0804AC04 + movs r0, 0 + mov r8, r0 + ldr r6, _0804AC08 + ldr r5, _0804AC0C + movs r2, 0 + movs r3, 0x1F +_0804AAEA: + ldr r0, [r4] + adds r0, r2 + ldr r1, _0804AC10 + adds r0, r1 + mov r7, r8 + strb r7, [r0] + ldr r0, [r4] + adds r0, r2 + adds r1, 0x1 + adds r0, r1 + strb r7, [r0] + ldr r0, [r4] + adds r0, r2 + ldr r7, _0804AC14 + adds r1, r0, r7 + strh r6, [r1] + adds r7, 0x2 + adds r1, r0, r7 + strh r6, [r1] + adds r7, 0x2 + adds r1, r0, r7 + strh r5, [r1] + ldr r1, _0804AC18 + adds r0, r1 + strh r5, [r0] + adds r2, 0x1C + subs r3, 0x1 + cmp r3, 0 + bge _0804AAEA + movs r4, 0 + mov r9, r4 + movs r6, 0 + ldr r7, _0804AC04 + mov r8, r7 +_0804AB2E: + movs r4, 0 + adds r5, r6, 0x1 +_0804AB32: + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_804954C + ldrb r2, [r0, 0x9] + adds r3, r4, 0x1 + cmp r2, 0xFF + beq _0804AB84 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + ldr r1, _0804AC10 + adds r0, r1 + mov r7, r8 + ldr r1, [r7] + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] + movs r7, 0x2 + ldrsh r0, [r1, r7] + cmp r0, r4 + ble _0804AB60 + strh r4, [r1, 0x2] +_0804AB60: + movs r4, 0x4 + ldrsh r0, [r1, r4] + cmp r0, r6 + ble _0804AB6A + strh r6, [r1, 0x4] +_0804AB6A: + movs r7, 0x6 + ldrsh r0, [r1, r7] + cmp r0, r3 + bge _0804AB74 + strh r3, [r1, 0x6] +_0804AB74: + movs r4, 0x8 + ldrsh r0, [r1, r4] + cmp r0, r5 + bge _0804AB7E + strh r5, [r1, 0x8] +_0804AB7E: + cmp r9, r2 + bge _0804AB84 + mov r9, r2 +_0804AB84: + adds r4, r3, 0 + cmp r4, 0x37 + ble _0804AB32 + adds r6, r5, 0 + cmp r6, 0x1F + ble _0804AB2E + ldr r7, _0804AC04 + mov r8, r7 + mov r5, r9 + adds r5, 0x1 + mov r6, r8 + movs r4, 0 + movs r3, 0x1F +_0804AB9E: + ldr r1, _0804AC10 + adds r0, r4, r1 + ldr r1, [r6] + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, 0 + beq _0804ABE4 + movs r7, 0x2 + ldrsh r1, [r2, r7] + subs r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + str r0, [r2, 0xC] + movs r0, 0x4 + ldrsh r1, [r2, r0] + subs r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + str r0, [r2, 0x10] + movs r7, 0x6 + ldrsh r1, [r2, r7] + adds r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + str r0, [r2, 0x14] + movs r0, 0x8 + ldrsh r1, [r2, r0] + adds r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + str r0, [r2, 0x18] +_0804ABE4: + adds r4, 0x1C + subs r3, 0x1 + cmp r3, 0 + bge _0804AB9E + mov r1, r8 + ldr r0, [r1] + ldr r4, _0804AC1C + adds r0, r4 + strb r5, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804AC04: .4byte gUnknown_203B418 +_0804AC08: .4byte 0x0000270f +_0804AC0C: .4byte 0x0000d8f1 +_0804AC10: .4byte 0x000104c4 +_0804AC14: .4byte 0x000104c6 +_0804AC18: .4byte 0x000104cc +_0804AC1C: .4byte 0x000104c0 + thumb_func_end sub_804AAD4 + + thumb_func_start sub_804AC20 +sub_804AC20: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r4, r0, 0 + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl sub_804954C + ldrb r1, [r0, 0x9] + ldr r0, _0804AC6C + ldr r3, [r0] + ldr r5, _0804AC70 + adds r0, r3, r5 + ldrb r2, [r0] + adds r5, 0x1 + adds r0, r3, r5 + ldrb r0, [r0] + cmp r0, 0 + bne _0804ACD4 + cmp r2, 0 + bne _0804AC52 + movs r2, 0x2 +_0804AC52: + cmp r1, 0xFF + bne _0804AC74 + movs r0, 0 + ldrsh r1, [r4, r0] + subs r3, r1, r2 + mov r9, r3 + movs r5, 0x2 + ldrsh r0, [r4, r5] + subs r3, r0, r2 + adds r6, r1, r2 + adds r0, r2 + mov r8, r0 + b _0804ACA2 + .align 2, 0 +_0804AC6C: .4byte gUnknown_203B418 +_0804AC70: .4byte 0x00018209 +_0804AC74: + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _0804ACE0 + adds r0, r1 + adds r2, r3, r0 + ldrb r0, [r2, 0x1] + cmp r0, 0 + bne _0804ACD4 + movs r0, 0x1 + strb r0, [r2, 0x1] + movs r3, 0x2 + ldrsh r0, [r2, r3] + subs r0, 0x1 + mov r9, r0 + movs r5, 0x4 + ldrsh r0, [r2, r5] + subs r3, r0, 0x1 + movs r0, 0x6 + ldrsh r6, [r2, r0] + movs r5, 0x8 + ldrsh r1, [r2, r5] + mov r8, r1 +_0804ACA2: + adds r5, r3, 0 + cmp r5, r8 + bgt _0804ACD4 +_0804ACA8: + mov r4, r9 + adds r7, r5, 0x1 + cmp r4, r6 + bgt _0804ACCE +_0804ACB0: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8049590 + ldrh r2, [r0, 0x4] + movs r1, 0x3 + orrs r1, r2 + strh r1, [r0, 0x4] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80402AC + adds r4, 0x1 + cmp r4, r6 + ble _0804ACB0 +_0804ACCE: + adds r5, r7, 0 + cmp r5, r8 + ble _0804ACA8 +_0804ACD4: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804ACE0: .4byte 0x000104c4 + thumb_func_end sub_804AC20 + + thumb_func_start sub_804ACE4 +sub_804ACE4: + push {lr} + movs r1, 0 + ldrsh r2, [r0, r1] + movs r3, 0x2 + ldrsh r1, [r0, r3] + adds r0, r2, 0 + bl sub_804954C + ldr r0, [r0, 0x14] + cmp r0, 0 + beq _0804AD06 + bl sub_80450F8 + cmp r0, 0x3 + bne _0804AD06 + movs r0, 0x1 + b _0804AD08 +_0804AD06: + movs r0, 0 +_0804AD08: + pop {r1} + bx r1 + thumb_func_end sub_804ACE4 + + thumb_func_start sub_804AD0C +sub_804AD0C: + push {lr} + movs r1, 0 + ldrsh r2, [r0, r1] + movs r3, 0x2 + ldrsh r1, [r0, r3] + adds r0, r2, 0 + bl sub_804954C + ldr r1, [r0, 0x10] + cmp r1, 0 + beq _0804AD2C + ldr r0, [r1] + cmp r0, 0x1 + bne _0804AD2C + adds r0, r1, 0 + b _0804AD2E +_0804AD2C: + movs r0, 0 +_0804AD2E: + pop {r1} + bx r1 + thumb_func_end sub_804AD0C + + thumb_func_start sub_804AD34 +sub_804AD34: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + movs r0, 0 + mov r8, r0 + movs r1, 0 + ldrsh r0, [r6, r1] + movs r2, 0x2 + ldrsh r1, [r6, r2] + bl sub_8049590 + adds r2, r0, 0 + ldrh r1, [r2] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _0804ADB6 + movs r0, 0x88 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + bne _0804ADB6 + movs r0, 0x1 + mov r8, r0 + ldr r0, _0804ADFC + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + movs r5, 0x1 + negs r5, r5 +_0804AD74: + movs r4, 0x1 + negs r4, r4 + adds r7, r5, 0x1 +_0804AD7A: + movs r1, 0 + ldrsh r0, [r6, r1] + adds r0, r4, r0 + movs r2, 0x2 + ldrsh r1, [r6, r2] + adds r1, r5, r1 + bl sub_80498A8 + movs r1, 0 + ldrsh r0, [r6, r1] + adds r0, r4, r0 + movs r2, 0x2 + ldrsh r1, [r6, r2] + adds r1, r5, r1 + bl sub_8049BB0 + movs r1, 0 + ldrsh r0, [r6, r1] + adds r0, r4, r0 + movs r2, 0x2 + ldrsh r1, [r6, r2] + adds r1, r5, r1 + bl sub_80402AC + adds r4, 0x1 + cmp r4, 0x1 + ble _0804AD7A + adds r5, r7, 0 + cmp r5, 0x1 + ble _0804AD74 +_0804ADB6: + mov r0, r8 + cmp r0, 0 + beq _0804ADEE + movs r5, 0 +_0804ADBE: + ldr r0, _0804AE00 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _0804AE04 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _0804ADDE + adds r0, r4, 0 + bl sub_806CF98 +_0804ADDE: + adds r5, 0x1 + cmp r5, 0x13 + ble _0804ADBE + bl sub_8049ED4 + adds r0, r6, 0 + bl sub_8042A14 +_0804ADEE: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0804ADFC: .4byte 0x0000fffc +_0804AE00: .4byte gUnknown_203B418 +_0804AE04: .4byte 0x000135cc + thumb_func_end sub_804AD34 + + thumb_func_start sub_804AE08 +sub_804AE08: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + movs r0, 0 + mov r8, r0 + movs r1, 0 + ldrsh r0, [r7, r1] + movs r2, 0x2 + ldrsh r1, [r7, r2] + bl sub_8049590 + adds r2, r0, 0 + ldrh r1, [r2] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _0804AE72 + movs r0, 0x88 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + bne _0804AE72 + movs r0, 0x1 + mov r8, r0 + ldr r0, _0804AE80 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + ldrh r1, [r2, 0x4] + movs r0, 0x10 + orrs r0, r1 + strh r0, [r2, 0x4] + movs r5, 0x1 + negs r5, r5 +_0804AE50: + movs r4, 0x1 + negs r4, r4 + adds r6, r5, 0x1 +_0804AE56: + movs r1, 0 + ldrsh r0, [r7, r1] + adds r0, r4, r0 + movs r2, 0x2 + ldrsh r1, [r7, r2] + adds r1, r5, r1 + bl sub_8049BB0 + adds r4, 0x1 + cmp r4, 0x1 + ble _0804AE56 + adds r5, r6, 0 + cmp r5, 0x1 + ble _0804AE50 +_0804AE72: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0804AE80: .4byte 0x0000fffc + thumb_func_end sub_804AE08 + + thumb_func_start sub_804AE84 +sub_804AE84: + push {r4-r7,lr} + adds r5, r0, 0 + movs r1, 0 + ldrsh r0, [r5, r1] + movs r2, 0x2 + ldrsh r1, [r5, r2] + bl sub_8049590 + adds r2, r0, 0 + ldrh r1, [r2, 0x4] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0804AF0E + ldr r0, _0804AF14 + ands r0, r1 + strh r0, [r2, 0x4] + movs r6, 0x1 + negs r6, r6 +_0804AEAA: + movs r4, 0x1 + negs r4, r4 + adds r7, r6, 0x1 +_0804AEB0: + movs r1, 0 + ldrsh r0, [r5, r1] + adds r0, r4, r0 + movs r2, 0x2 + ldrsh r1, [r5, r2] + adds r1, r6, r1 + bl sub_80498A8 + movs r1, 0 + ldrsh r0, [r5, r1] + adds r0, r4, r0 + movs r2, 0x2 + ldrsh r1, [r5, r2] + adds r1, r6, r1 + bl sub_80402AC + adds r4, 0x1 + cmp r4, 0x1 + ble _0804AEB0 + adds r6, r7, 0 + cmp r6, 0x1 + ble _0804AEAA + movs r6, 0 +_0804AEDE: + ldr r0, _0804AF18 + ldr r0, [r0] + lsls r1, r6, 2 + ldr r2, _0804AF1C + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl sub_80450E0 + lsls r0, 24 + cmp r0, 0 + beq _0804AEFE + adds r0, r4, 0 + bl sub_806CF98 +_0804AEFE: + adds r6, 0x1 + cmp r6, 0x13 + ble _0804AEDE + bl sub_8049ED4 + adds r0, r5, 0 + bl sub_8042A14 +_0804AF0E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804AF14: .4byte 0x0000ffef +_0804AF18: .4byte gUnknown_203B418 +_0804AF1C: .4byte 0x000135cc + thumb_func_end sub_804AE84 + + thumb_func_start sub_804AF20 +sub_804AF20: + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0 + bl sub_804AF74 + lsls r0, 24 + cmp r0, 0 + beq _0804AF3C + ldrh r1, [r4] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _0804AF5E + b _0804AF5C +_0804AF3C: + ldrh r1, [r4] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + bne _0804AF5C + ldr r1, _0804AF68 + ldr r0, _0804AF6C + ldr r0, [r0] + ldr r2, _0804AF70 + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0804AF5E +_0804AF5C: + movs r5, 0x1 +_0804AF5E: + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0804AF68: .4byte gUnknown_810ACC0 +_0804AF6C: .4byte gUnknown_203B418 +_0804AF70: .4byte 0x00003a0e + thumb_func_end sub_804AF20 + + thumb_func_start sub_804AF74 +sub_804AF74: + push {lr} + ldr r0, _0804AF9C + ldr r0, [r0] + ldr r1, _0804AFA0 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _0804AF96 + cmp r0, 0x31 + beq _0804AF96 + cmp r0, 0x20 + beq _0804AF96 + cmp r0, 0x21 + beq _0804AF96 + cmp r0, 0x36 + bne _0804AFA4 +_0804AF96: + movs r0, 0x1 + b _0804AFA6 + .align 2, 0 +_0804AF9C: .4byte gUnknown_203B418 +_0804AFA0: .4byte 0x00003a0e +_0804AFA4: + movs r0, 0 +_0804AFA6: + pop {r1} + bx r1 + thumb_func_end sub_804AF74 + + thumb_func_start sub_804AFAC +sub_804AFAC: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x44 + movs r0, 0 + mov r10, r0 + ldr r4, _0804B0E8 + ldr r0, [r4] + ldr r1, _0804B0EC + adds r1, r0 + mov r8, r1 + ldr r0, _0804B0F0 + ldr r1, _0804B0F4 + bl OpenFileAndGetFileDataPtr + ldr r2, [r4] + ldr r3, _0804B0F8 + adds r1, r2, r3 + str r0, [r1] + ldr r0, _0804B0FC + mov r6, r10 + strb r6, [r0] + ldr r0, _0804B100 + strb r6, [r0] + ldr r0, _0804B104 + strb r6, [r0] + ldr r5, _0804B108 + movs r3, 0 + ldr r1, _0804B10C + ldr r0, _0804B110 + adds r2, r0 + movs r6, 0 + ldrsh r0, [r2, r6] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x2 + bne _0804AFFC + movs r3, 0x1 +_0804AFFC: + strb r3, [r5] + ldr r1, _0804B114 + movs r0, 0xFF + strb r0, [r1] + ldr r0, _0804B118 + mov r1, r10 + strb r1, [r0] + ldr r1, _0804B11C + mov r2, r8 + ldrb r0, [r2, 0x7] + strh r0, [r1] + ldr r1, _0804B120 + ldrb r0, [r2, 0x8] + strh r0, [r1] + ldr r1, _0804B124 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _0804B128 + movs r0, 0x1 + negs r0, r0 + str r0, [r1] + str r0, [r1, 0x8] + str r0, [r1, 0x4] + str r0, [r1, 0xC] + bl sub_804FD30 + ldr r3, [r4] + mov r6, r8 + ldrb r2, [r6, 0x6] + ldr r1, _0804B12C + adds r0, r3, r1 + movs r1, 0 + strh r2, [r0] + ldr r2, _0804B130 + adds r0, r3, r2 + strb r1, [r0] + ldr r0, [r4] + ldr r3, _0804B134 + adds r0, r3 + strb r1, [r0] + ldr r1, _0804B138 + mov r6, r8 + ldrb r0, [r6, 0xC] + str r0, [r1] + movs r0, 0 + str r0, [sp, 0x40] +_0804B058: + ldr r0, _0804B0E8 + ldr r2, [r0] + ldr r3, _0804B13C + adds r1, r2, r3 + ldr r0, _0804B140 + strh r0, [r1] + ldr r6, _0804B144 + adds r1, r2, r6 + movs r0, 0x1 + negs r0, r0 + strh r0, [r1] + ldr r0, _0804B148 + adds r1, r2, r0 + movs r0, 0x1 + negs r0, r0 + strh r0, [r1] + ldr r1, _0804B14C + adds r2, r1 + strh r0, [r2] + movs r2, 0 + mov r9, r2 +_0804B082: + ldr r4, _0804B0E8 + ldr r0, [r4] + ldr r3, _0804B150 + adds r0, r3 + movs r5, 0 + movs r1, 0 + mov r6, r9 + strh r6, [r0] + mov r0, r9 + cmp r0, 0 + ble _0804B09C + ldr r0, _0804B138 + str r1, [r0] +_0804B09C: + ldr r0, _0804B154 + strb r5, [r0] + ldr r1, _0804B158 + ldr r0, _0804B140 + strh r0, [r1] + movs r0, 0x1 + negs r0, r0 + strh r0, [r1, 0x2] + bl sub_804FD30 + ldr r1, [r4] + ldr r3, _0804B13C + adds r2, r1, r3 + movs r0, 0x1 + negs r0, r0 + strh r0, [r2] + ldr r6, _0804B144 + adds r2, r1, r6 + strh r0, [r2] + ldr r0, _0804B15C + adds r1, r0 + strb r5, [r1] + ldr r0, [r4] + ldr r2, _0804B160 + adds r1, r0, r2 + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _0804B164 + mov r1, r8 + bl sub_804C70C + lsls r0, 24 + cmp r0, 0 + beq _0804B0E4 + b _0804B376 +_0804B0E4: + b _0804B2F6 + .align 2, 0 +_0804B0E8: .4byte gUnknown_203B418 +_0804B0EC: .4byte 0x0001c574 +_0804B0F0: .4byte gUnknown_80F6DCC +_0804B0F4: .4byte gUnknown_83B0000 +_0804B0F8: .4byte 0x00013568 +_0804B0FC: .4byte gUnknown_202F1AA +_0804B100: .4byte gUnknown_202F1AB +_0804B104: .4byte gUnknown_202F1AC +_0804B108: .4byte gUnknown_202F1A8 +_0804B10C: .4byte gUnknown_810ACC0 +_0804B110: .4byte 0x00003a0e +_0804B114: .4byte gUnknown_202F1B4 +_0804B118: .4byte gUnknown_202F1AE +_0804B11C: .4byte gUnknown_202F1B0 +_0804B120: .4byte gUnknown_202F1B2 +_0804B124: .4byte gUnknown_202F1AD +_0804B128: .4byte gUnknown_202F1B8 +_0804B12C: .4byte 0x00000664 +_0804B130: .4byte 0x00003a09 +_0804B134: .4byte 0x00003a0a +_0804B138: .4byte gUnknown_202F1C8 +_0804B13C: .4byte 0x0000e218 +_0804B140: .4byte 0x0000ffff +_0804B144: .4byte 0x0000e21a +_0804B148: .4byte 0x0000e21c +_0804B14C: .4byte 0x0000e21e +_0804B150: .4byte 0x00003a16 +_0804B154: .4byte gUnknown_202F1A9 +_0804B158: .4byte gUnknown_202F1D8 +_0804B15C: .4byte 0x00003a08 +_0804B160: .4byte 0x00003a14 +_0804B164: + mov r0, r8 + ldrb r7, [r0] + movs r6, 0x20 +_0804B16A: + cmp r7, 0x8 + beq _0804B17E + movs r0, 0x2 + movs r1, 0x9 + bl sub_808411C + adds r5, r0, 0 + movs r0, 0x2 + movs r1, 0x8 + b _0804B18C +_0804B17E: + movs r0, 0x2 + movs r1, 0x5 + bl sub_808411C + adds r5, r0, 0 + movs r0, 0x2 + movs r1, 0x4 +_0804B18C: + bl sub_808411C + adds r4, r0, 0 + cmp r5, 0x6 + bgt _0804B19A + cmp r4, 0x4 + ble _0804B1A4 +_0804B19A: + subs r6, 0x1 + cmp r6, 0 + bne _0804B16A + movs r5, 0x4 + movs r4, 0x4 +_0804B1A4: + movs r0, 0x38 + adds r1, r5, 0 + bl __divsi3 + cmp r0, 0x7 + bgt _0804B1B2 + movs r5, 0x1 +_0804B1B2: + movs r0, 0x20 + adds r1, r4, 0 + bl __divsi3 + cmp r0, 0x7 + bgt _0804B1C0 + movs r4, 0x1 +_0804B1C0: + ldr r2, _0804B1EC + ldr r0, [r2] + ldr r1, _0804B1F0 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + ldr r2, _0804B1F4 + adds r0, r2 + movs r1, 0xFF + strb r1, [r0] + ldr r0, _0804B1F8 + str r7, [r0] + movs r0, 0xF + ands r0, r7 + cmp r0, 0xB + bhi _0804B274 + lsls r0, 2 + ldr r1, _0804B1FC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804B1EC: .4byte gUnknown_203B418 +_0804B1F0: .4byte 0x00003a08 +_0804B1F4: .4byte 0x00003a0c +_0804B1F8: .4byte gUnknown_202F1D0 +_0804B1FC: .4byte _0804B200 + .align 2, 0 +_0804B200: + .4byte _0804B274 + .4byte _0804B230 + .4byte _0804B280 + .4byte _0804B298 + .4byte _0804B2A4 + .4byte _0804B2B0 + .4byte _0804B2CC + .4byte _0804B2D8 + .4byte _0804B274 + .4byte _0804B2E0 + .4byte _0804B2E8 + .4byte _0804B250 +_0804B230: + movs r0, 0x2 + bl sub_8084100 + adds r4, r0, 0x2 + ldr r1, _0804B24C + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x4 + adds r1, r4, 0 + mov r2, r8 + bl sub_804B634 + b _0804B2AA + .align 2, 0 +_0804B24C: .4byte gUnknown_202F1AE +_0804B250: + movs r0, 0x2 + bl sub_8084100 + adds r4, r0, 0x2 + ldr r1, _0804B270 + movs r0, 0x2 + strb r0, [r1] + movs r0, 0x4 + adds r1, r4, 0 + mov r2, r8 + bl sub_804B634 + movs r6, 0x1 + mov r10, r6 + b _0804B2F6 + .align 2, 0 +_0804B270: .4byte gUnknown_202F1AE +_0804B274: + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, r8 + bl sub_804B634 + b _0804B2D2 +_0804B280: + bl sub_804C918 + ldr r0, _0804B290 + ldr r0, [r0] + ldr r1, _0804B294 + adds r0, r1 + b _0804B2BC + .align 2, 0 +_0804B290: .4byte gUnknown_203B418 +_0804B294: .4byte 0x00003a08 +_0804B298: + mov r0, r8 + bl sub_804B72C + movs r2, 0x1 + mov r10, r2 + b _0804B2F6 +_0804B2A4: + mov r0, r8 + bl sub_804BC80 +_0804B2AA: + movs r3, 0x1 + mov r10, r3 + b _0804B2F6 +_0804B2B0: + bl sub_804C9D0 + ldr r0, _0804B2C4 + ldr r0, [r0] + ldr r6, _0804B2C8 + adds r0, r6 +_0804B2BC: + movs r1, 0x1 + strb r1, [r0] + b _0804B2F6 + .align 2, 0 +_0804B2C4: .4byte gUnknown_203B418 +_0804B2C8: .4byte 0x00003a08 +_0804B2CC: + mov r0, r8 + bl sub_804C0A8 +_0804B2D2: + movs r0, 0x1 + mov r10, r0 + b _0804B2F6 +_0804B2D8: + mov r0, r8 + bl sub_804C190 + b _0804B2F6 +_0804B2E0: + mov r0, r8 + bl sub_804C2F4 + b _0804B2F6 +_0804B2E8: + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, r8 + bl sub_804C53C + movs r1, 0x1 + mov r10, r1 +_0804B2F6: + bl sub_80518F0 + bl sub_804FCCC + ldr r0, _0804B4B4 + ldrb r0, [r0] + cmp r0, 0 + bne _0804B36A + movs r7, 0 + movs r1, 0 + mov r0, sp + adds r0, 0x3F +_0804B30E: + strb r1, [r0] + subs r0, 0x1 + cmp r0, sp + bge _0804B30E + movs r5, 0 +_0804B318: + movs r4, 0 + adds r6, r5, 0x1 +_0804B31C: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + adds r1, r0, 0 + ldrh r0, [r1] + movs r2, 0x3 + ands r2, r0 + cmp r2, 0x1 + bne _0804B340 + ldrb r0, [r1, 0x9] + cmp r0, 0xF0 + bhi _0804B340 + adds r7, 0x1 + cmp r0, 0x3F + bhi _0804B340 + add r0, sp + strb r2, [r0] +_0804B340: + adds r4, 0x1 + cmp r4, 0x1F + ble _0804B31C + adds r5, r6, 0 + cmp r5, 0x37 + ble _0804B318 + movs r1, 0 + movs r4, 0 +_0804B350: + mov r2, sp + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0804B35C + adds r1, 0x1 +_0804B35C: + adds r4, 0x1 + cmp r4, 0x3F + ble _0804B350 + cmp r7, 0x1D + ble _0804B36A + cmp r1, 0x1 + bgt _0804B376 +_0804B36A: + movs r3, 0x1 + add r9, r3 + mov r6, r9 + cmp r6, 0x9 + bgt _0804B376 + b _0804B082 +_0804B376: + mov r0, r9 + cmp r0, 0xA + bne _0804B398 + ldr r1, _0804B4B8 + ldr r0, _0804B4BC + strh r0, [r1] + movs r0, 0x1 + negs r0, r0 + strh r0, [r1, 0x2] + bl sub_804C918 + ldr r0, _0804B4C0 + ldr r0, [r0] + ldr r1, _0804B4C4 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] +_0804B398: + bl sub_804E9DC + mov r2, r10 + cmp r2, 0 + beq _0804B3AA + movs r0, 0x1 + mov r1, r8 + bl sub_80506F0 +_0804B3AA: + movs r0, 0x64 + bl sub_8084100 + movs r4, 0 + mov r3, r8 + ldrb r3, [r3, 0x19] + cmp r0, r3 + bge _0804B3BC + movs r4, 0x1 +_0804B3BC: + mov r0, r8 + adds r1, r4, 0 + bl sub_804FF08 + mov r0, r8 + adds r1, r4, 0 + bl sub_8050438 + bl sub_804FBE8 + ldr r5, _0804B4C0 + ldr r1, [r5] + ldr r6, _0804B4C8 + adds r0, r1, r6 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r4, 0x1 + negs r4, r4 + cmp r0, r4 + beq _0804B42A + ldr r3, _0804B4CC + adds r0, r1, r3 + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r0, r4 + beq _0804B42A + bl sub_8043D10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0804B436 + ldr r1, [r5] + ldr r0, _0804B4D0 + adds r2, r1, r0 + movs r3, 0 + ldrsh r0, [r2, r3] + cmp r0, r4 + beq _0804B42A + ldr r6, _0804B4D4 + adds r1, r6 + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, r4 + beq _0804B42A + movs r6, 0 + ldrsh r0, [r2, r6] + movs r2, 0 + ldrsh r1, [r1, r2] + movs r2, 0 + bl sub_8050C30 + lsls r0, 24 + cmp r0, 0 + bne _0804B436 +_0804B42A: + ldr r3, [sp, 0x40] + adds r3, 0x1 + str r3, [sp, 0x40] + cmp r3, 0x9 + bgt _0804B436 + b _0804B058 +_0804B436: + ldr r6, [sp, 0x40] + cmp r6, 0xA + bne _0804B474 + ldr r1, _0804B4B8 + ldr r0, _0804B4BC + strh r0, [r1] + movs r0, 0x1 + negs r0, r0 + strh r0, [r1, 0x2] + bl sub_804FD30 + bl sub_804C918 + ldr r0, _0804B4C0 + ldr r0, [r0] + ldr r1, _0804B4C4 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + bl sub_804E9DC + mov r0, r8 + movs r1, 0 + bl sub_804FF08 + mov r0, r8 + movs r1, 0 + bl sub_8050438 + bl sub_804FBE8 +_0804B474: + ldr r1, _0804B4B8 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + blt _0804B498 + movs r3, 0x2 + ldrsh r0, [r1, r3] + cmp r0, 0 + blt _0804B498 + movs r6, 0 + ldrsh r0, [r1, r6] + movs r2, 0x2 + ldrsh r1, [r1, r2] + movs r2, 0xBE + lsls r2, 1 + movs r3, 0 + bl sub_806C330 +_0804B498: + ldr r0, _0804B4D8 + ldr r0, [r0] + cmp r0, 0 + blt _0804B4E0 + mov r0, r8 + bl sub_8051654 + ldr r0, _0804B4C0 + ldr r0, [r0] + ldr r3, _0804B4DC + adds r0, r3 + movs r1, 0x1 + b _0804B4EA + .align 2, 0 +_0804B4B4: .4byte gUnknown_202F1A9 +_0804B4B8: .4byte gUnknown_202F1D8 +_0804B4BC: .4byte 0x0000ffff +_0804B4C0: .4byte gUnknown_203B418 +_0804B4C4: .4byte 0x00003a08 +_0804B4C8: .4byte 0x0000e218 +_0804B4CC: .4byte 0x0000e21a +_0804B4D0: .4byte 0x0000e21c +_0804B4D4: .4byte 0x0000e21e +_0804B4D8: .4byte gUnknown_202F1B8 +_0804B4DC: .4byte 0x00003a0a +_0804B4E0: + ldr r0, _0804B524 + ldr r0, [r0] + ldr r6, _0804B528 + adds r0, r6 + movs r1, 0 +_0804B4EA: + strb r1, [r0] + movs r0, 0 + movs r1, 0 + movs r2, 0x38 + movs r3, 0x20 + bl sub_804B534 + ldr r0, _0804B52C + ldrb r0, [r0] + cmp r0, 0 + beq _0804B504 + bl sub_804FC74 +_0804B504: + ldr r0, _0804B524 + ldr r0, [r0] + ldr r1, _0804B530 + adds r0, r1 + ldr r0, [r0] + bl CloseFile + add sp, 0x44 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804B524: .4byte gUnknown_203B418 +_0804B528: .4byte 0x00003a0a +_0804B52C: .4byte gUnknown_202F1A8 +_0804B530: .4byte 0x00013568 + thumb_func_end sub_804AFAC + + thumb_func_start sub_804B534 +sub_804B534: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + str r1, [sp] + str r2, [sp, 0x4] + mov r10, r3 + adds r5, r0, 0 + cmp r5, r2 + bge _0804B620 +_0804B54C: + ldr r4, [sp] + adds r0, r5, 0x1 + mov r9, r0 + cmp r4, r10 + bge _0804B618 + movs r6, 0x3 + mov r8, r6 +_0804B55A: + movs r3, 0 + adds r0, r5, 0 + adds r1, r4, 0 + str r3, [sp, 0xC] + bl sub_8049590 + adds r2, r0, 0 + ldrh r0, [r2] + ldr r6, _0804B630 + adds r1, r6, 0 + ands r1, r0 + strh r1, [r2] + ldrb r0, [r2, 0x9] + adds r6, r4, 0x1 + ldr r3, [sp, 0xC] + cmp r0, 0xFF + bne _0804B612 + movs r7, 0x3 + adds r0, r1, 0 + ands r0, r7 + cmp r0, 0x1 + bne _0804B612 + cmp r5, 0 + ble _0804B5A4 + subs r0, r5, 0x1 + adds r1, r4, 0 + str r2, [sp, 0x8] + bl sub_804954C + ldrh r1, [r0] + adds r0, r7, 0 + ands r0, r1 + ldr r2, [sp, 0x8] + ldr r3, [sp, 0xC] + cmp r0, 0x1 + bne _0804B5A4 + movs r3, 0x1 +_0804B5A4: + cmp r4, 0 + ble _0804B5C4 + subs r1, r4, 0x1 + adds r0, r5, 0 + str r2, [sp, 0x8] + str r3, [sp, 0xC] + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + ldr r2, [sp, 0x8] + ldr r3, [sp, 0xC] + cmp r0, 0x1 + bne _0804B5C4 + adds r3, 0x1 +_0804B5C4: + cmp r5, 0x35 + bgt _0804B5E4 + mov r0, r9 + adds r1, r4, 0 + str r2, [sp, 0x8] + str r3, [sp, 0xC] + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + ldr r2, [sp, 0x8] + ldr r3, [sp, 0xC] + cmp r0, 0x1 + bne _0804B5E4 + adds r3, 0x1 +_0804B5E4: + adds r6, r4, 0x1 + cmp r5, 0x1D + bgt _0804B606 + adds r0, r5, 0 + adds r1, r6, 0 + str r2, [sp, 0x8] + str r3, [sp, 0xC] + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + ldr r2, [sp, 0x8] + ldr r3, [sp, 0xC] + cmp r0, 0x1 + bne _0804B606 + adds r3, 0x1 +_0804B606: + cmp r3, 0x2 + ble _0804B612 + ldrh r1, [r2] + movs r0, 0x8 + orrs r0, r1 + strh r0, [r2] +_0804B612: + adds r4, r6, 0 + cmp r4, r10 + blt _0804B55A +_0804B618: + mov r5, r9 + ldr r0, [sp, 0x4] + cmp r5, r0 + blt _0804B54C +_0804B620: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804B630: .4byte 0x0000fffb + thumb_func_end sub_804B534 + + thumb_func_start sub_804B634 +sub_804B634: + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + ldr r4, _0804B718 + add sp, r4 + adds r4, r0, 0 + adds r5, r1, 0 + mov r9, r2 + ldr r0, _0804B71C + add r0, sp + mov r8, r0 + ldr r6, _0804B720 + add r6, sp + adds r1, r6, 0 + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_804D024 + add r0, sp, 0x8 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_804D084 + mov r1, r9 + movs r3, 0x1 + ldrsb r3, [r1, r3] + add r0, sp, 0x8 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_804D154 + str r6, [sp] + mov r1, r9 + ldrb r0, [r1, 0xD] + str r0, [sp, 0x4] + add r0, sp, 0x8 + adds r1, r4, 0 + adds r2, r5, 0 + mov r3, r8 + bl sub_804D2D0 + add r0, sp, 0x8 + adds r1, r4, 0 + adds r2, r5, 0 + mov r3, r9 + bl sub_804D5B0 + str r6, [sp] + movs r0, 0 + str r0, [sp, 0x4] + add r0, sp, 0x8 + adds r1, r4, 0 + adds r2, r5, 0 + mov r3, r8 + bl sub_804D8C8 + str r6, [sp] + add r0, sp, 0x8 + adds r1, r4, 0 + adds r2, r5, 0 + mov r3, r8 + bl sub_804E590 + mov r0, r9 + ldrb r3, [r0, 0x9] + add r0, sp, 0x8 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_804F0D0 + ldr r0, _0804B724 + movs r1, 0 + ldrsh r3, [r0, r1] + add r0, sp, 0x8 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_804EBC8 + ldr r0, _0804B728 + movs r1, 0 + ldrsh r3, [r0, r1] + add r0, sp, 0x8 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_804EEE4 + mov r0, r9 + ldrb r3, [r0, 0x13] + add r0, sp, 0x8 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_804CBEC + add r0, sp, 0x8 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_804E03C + add r0, sp, 0x8 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_804D534 + movs r3, 0xE5 + lsls r3, 5 + add sp, r3 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804B718: .4byte 0xffffe360 +_0804B71C: .4byte 0x00001c28 +_0804B720: .4byte 0x00001c64 +_0804B724: .4byte gUnknown_202F1B0 +_0804B728: .4byte gUnknown_202F1B2 + thumb_func_end sub_804B634 + + thumb_func_start sub_804B72C +sub_804B72C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _0804B9AC + add sp, r4 + movs r1, 0xE5 + lsls r1, 5 + add r1, sp + str r0, [r1] + movs r5, 0 + movs r6, 0x1 + ldr r1, _0804B9B0 + add r1, sp + str r5, [r1] + movs r0, 0x5 + str r0, [r1, 0x4] + movs r0, 0x1C + str r0, [r1, 0xC] + movs r0, 0x33 + str r0, [r1, 0x14] + movs r0, 0x38 + str r0, [r1, 0x18] + movs r2, 0x10 + str r2, [r1, 0x8] + movs r0, 0x27 + str r0, [r1, 0x10] + ldr r1, _0804B9B4 + add r1, sp + movs r0, 0x2 + str r0, [r1] + movs r0, 0x7 + str r0, [r1, 0x4] + str r2, [r1, 0x8] + movs r0, 0x19 + str r0, [r1, 0xC] + movs r0, 0x1E + str r0, [r1, 0x10] + add r0, sp, 0x8 + movs r1, 0x6 + movs r2, 0x4 + bl sub_804D084 + mov r2, sp + adds r2, 0x3B + ldr r3, _0804B9B8 + add r3, sp + str r2, [r3] + mov r4, sp + adds r4, 0x3C + ldr r0, _0804B9BC + add r0, sp + str r4, [r0] + mov r1, sp + adds r1, 0x5B + ldr r2, _0804B9C0 + add r2, sp + str r1, [r2] + mov r3, sp + adds r3, 0x5C + movs r4, 0xE6 + lsls r4, 5 + add r4, sp + str r3, [r4] + mov r0, sp + adds r0, 0x7B + ldr r1, _0804B9C4 + add r1, sp + str r0, [r1] + mov r2, sp + adds r2, 0x7E + ldr r3, _0804B9C8 + add r3, sp + str r2, [r3] + add r1, sp, 0x68 + add r0, sp, 0x8 + movs r2, 0xF0 + lsls r2, 1 + movs r4, 0x6 +_0804B7CC: + strb r5, [r0, 0xA] + strb r5, [r1, 0xA] + adds r1, r2 + adds r0, r2 + subs r4, 0x1 + cmp r4, 0 + bne _0804B7CC + movs r2, 0x6 + subs r2, 0x1 + movs r4, 0x4 + cmp r4, 0 + beq _0804B80C + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 5 + add r0, sp + adds r0, 0x8 + add r1, sp, 0x8 + ldr r3, _0804B9CC + add r3, sp + str r4, [r3] +_0804B7F6: + strb r5, [r1, 0xA] + strb r5, [r0, 0xA] + adds r0, 0x20 + adds r1, 0x20 + ldr r3, _0804B9CC + add r3, sp + ldr r4, [r3] + subs r4, 0x1 + str r4, [r3] + cmp r4, 0 + bne _0804B7F6 +_0804B80C: + movs r4, 0x1 + cmp r4, r2 + bge _0804B848 + movs r1, 0x3 +_0804B814: + adds r5, r4, 0x1 + mov r8, r5 + cmp r1, 0x1 + ble _0804B842 + lsls r0, r4, 4 + subs r0, r4 + lsls r0, 5 + add r0, sp + adds r0, 0x8 + adds r0, 0x20 + subs r3, r1, 0x1 + ldr r4, _0804B9CC + add r4, sp + str r3, [r4] +_0804B830: + strb r6, [r0, 0xA] + adds r0, 0x20 + ldr r3, _0804B9CC + add r3, sp + ldr r5, [r3] + subs r5, 0x1 + str r5, [r3] + cmp r5, 0 + bne _0804B830 +_0804B842: + mov r4, r8 + cmp r4, r2 + blt _0804B814 +_0804B848: + movs r4, 0 + ldr r5, _0804B9D0 + add r5, sp + str r4, [r5] + ldr r0, _0804B9CC + add r0, sp + str r4, [r0] + cmp r4, 0x4 + blt _0804B85C + b _0804BA8C +_0804B85C: + movs r4, 0 + ldr r2, _0804B9CC + add r2, sp + ldr r1, [r2] + adds r1, 0x1 + ldr r2, _0804B9D4 + add r2, sp + str r1, [r2] + cmp r4, 0x6 + blt _0804B872 + b _0804BA7A +_0804B872: + ldr r3, _0804B9B0 + add r3, sp + ldr r5, _0804B9D8 + add r5, sp + str r3, [r5] + ldr r0, _0804B9B4 + add r0, sp + ldr r1, _0804B9DC + add r1, sp + str r0, [r1] + ldr r2, _0804B9CC + add r2, sp + ldr r2, [r2] + lsls r0, r2, 2 + ldr r3, [r1] + adds r0, r3, r0 + ldr r3, _0804B9E0 + add r3, sp + str r0, [r3] +_0804B898: + lsls r0, r4, 4 + subs r0, r4 + ldr r5, _0804B9CC + add r5, sp + ldr r5, [r5] + adds r0, r5 + lsls r0, 5 + mov r7, sp + adds r7, r0 + adds r7, 0x8 + ldrb r0, [r7, 0xA] + cmp r0, 0 + bne _0804B8B4 + b _0804B9F4 +_0804B8B4: + lsls r0, r4, 2 + ldr r1, _0804B9D8 + add r1, sp + ldr r1, [r1] + adds r0, r1, r0 + ldr r1, [r0] + adds r2, r1, 0x2 + mov r10, r2 + ldr r3, _0804B9E0 + add r3, sp + ldr r3, [r3] + ldr r2, [r3] + adds r5, r2, 0x2 + ldr r0, _0804B9E4 + add r0, sp + str r5, [r0] + adds r4, 0x1 + mov r9, r4 + lsls r0, r4, 2 + ldr r3, _0804B9D8 + add r3, sp + ldr r3, [r3] + adds r0, r3, r0 + ldr r4, [r0] + subs r4, r1 + subs r4, 0x3 + ldr r5, _0804B9D4 + add r5, sp + ldr r5, [r5] + lsls r0, r5, 2 + ldr r1, _0804B9DC + add r1, sp + ldr r1, [r1] + adds r0, r1, r0 + ldr r5, [r0] + subs r5, r2 + subs r5, 0x3 + movs r0, 0x5 + adds r1, r4, 0 + bl sub_808411C + mov r8, r0 + movs r0, 0x4 + adds r1, r5, 0 + bl sub_808411C + adds r6, r0, 0 + mov r2, r8 + subs r4, r2 + adds r0, r4, 0 + bl sub_8084100 + adds r4, r0, 0 + add r4, r10 + subs r5, r6 + adds r0, r5, 0 + bl sub_8084100 + ldr r5, _0804B9E4 + add r5, sp + ldr r3, [r5] + adds r3, r0 + mov r10, r3 + mov r0, r8 + adds r3, r4, r0 + add r6, r10 + strh r4, [r7] + strh r3, [r7, 0x4] + mov r1, r10 + strh r1, [r7, 0x2] + strh r6, [r7, 0x6] + mov r8, r9 + ldr r5, _0804B9D0 + add r5, sp + ldr r2, [r5] + adds r2, 0x1 + ldr r5, _0804B9E8 + add r5, sp + str r2, [r5] + cmp r4, r3 + bge _0804B99E +_0804B956: + mov r5, r10 + adds r7, r4, 0x1 + cmp r5, r6 + bge _0804B998 + ldr r0, _0804B9EC + mov r9, r0 +_0804B962: + adds r0, r4, 0 + adds r1, r5, 0 + ldr r2, _0804B9F0 + add r2, sp + str r3, [r2] + bl sub_8049590 + ldrh r1, [r0] + mov r2, r9 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8049590 + ldr r1, _0804B9D0 + add r1, sp + ldrb r1, [r1] + strb r1, [r0, 0x9] + adds r5, 0x1 + ldr r2, _0804B9F0 + add r2, sp + ldr r3, [r2] + cmp r5, r6 + blt _0804B962 +_0804B998: + adds r4, r7, 0 + cmp r4, r3 + blt _0804B956 +_0804B99E: + ldr r3, _0804B9E8 + add r3, sp + ldr r3, [r3] + ldr r4, _0804B9D0 + add r4, sp + str r3, [r4] + b _0804BA72 + .align 2, 0 +_0804B9AC: .4byte 0xffffe320 +_0804B9B0: .4byte 0x00001c28 +_0804B9B4: .4byte 0x00001c64 +_0804B9B8: .4byte 0x00001cd4 +_0804B9BC: .4byte 0x00001cd8 +_0804B9C0: .4byte 0x00001cbc +_0804B9C4: .4byte 0x00001cc4 +_0804B9C8: .4byte 0x00001cc8 +_0804B9CC: .4byte 0x00001ca4 +_0804B9D0: .4byte 0x00001ca8 +_0804B9D4: .4byte 0x00001ccc +_0804B9D8: .4byte 0x00001cac +_0804B9DC: .4byte 0x00001cb4 +_0804B9E0: .4byte 0x00001cb8 +_0804B9E4: .4byte 0x00001cb0 +_0804B9E8: .4byte 0x00001cd0 +_0804B9EC: .4byte 0x0000fffc +_0804B9F0: .4byte 0x00001cdc +_0804B9F4: + lsls r0, r4, 2 + ldr r5, _0804BBE8 + add r5, sp + ldr r5, [r5] + adds r0, r5, r0 + ldr r2, [r0] + adds r0, r2, 0x1 + ldr r1, _0804BBEC + add r1, sp + ldr r1, [r1] + ldr r3, [r1] + adds r6, r3, 0x1 + adds r4, 0x1 + mov r8, r4 + lsls r1, r4, 2 + adds r1, r5, r1 + ldr r1, [r1] + subs r1, r2 + subs r1, 0x3 + ldr r5, _0804BBF0 + add r5, sp + ldr r5, [r5] + lsls r2, r5, 2 + ldr r4, _0804BBF4 + add r4, sp + ldr r4, [r4] + adds r2, r4, r2 + ldr r4, [r2] + subs r4, r3 + subs r4, 0x3 + adds r1, r0, r1 + bl sub_808411C + adds r5, r0, 0 + adds r4, r6, r4 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_808411C + adds r4, r0, 0 + strh r5, [r7] + adds r0, r5, 0x1 + strh r0, [r7, 0x4] + strh r4, [r7, 0x2] + adds r0, r4, 0x1 + strh r0, [r7, 0x6] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r1, [r0] + ldr r3, _0804BBF8 + adds r2, r3, 0 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0xFF + strb r1, [r0, 0x9] +_0804BA72: + mov r4, r8 + cmp r4, 0x6 + bge _0804BA7A + b _0804B898 +_0804BA7A: + ldr r4, _0804BBF0 + add r4, sp + ldr r4, [r4] + ldr r5, _0804BBFC + add r5, sp + str r4, [r5] + cmp r4, 0x4 + bge _0804BA8C + b _0804B85C +_0804BA8C: + add r1, sp, 0x8 + movs r6, 0 + movs r0, 0x1 + strb r0, [r1, 0x16] + ldr r1, _0804BC00 + add r1, sp + strb r0, [r1] + movs r1, 0xFF + lsls r1, 1 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC04 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC08 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC0C + add r1, sp + strb r0, [r1] + ldr r1, _0804BC10 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC14 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC18 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC1C + add r1, sp + strb r0, [r1] + add r1, sp, 0x8 + strb r0, [r1, 0x14] + ldr r5, _0804BC20 + add r5, sp + ldr r5, [r5] + strb r0, [r5] + ldr r1, _0804BC24 + add r1, sp + ldr r1, [r1] + strb r0, [r1] + ldr r2, _0804BC28 + add r2, sp + ldr r2, [r2] + strb r0, [r2] + movs r3, 0xE6 + lsls r3, 5 + add r3, sp + ldr r3, [r3] + strb r0, [r3] + ldr r4, _0804BC2C + add r4, sp + ldr r4, [r4] + strb r0, [r4] + ldr r5, _0804BC30 + add r5, sp + ldr r5, [r5] + strb r0, [r5] + ldr r1, _0804BC34 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC38 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC3C + add r1, sp + strb r0, [r1] + ldr r1, _0804BC40 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC44 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC48 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC4C + add r1, sp + strb r0, [r1] + ldr r1, _0804BC50 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC54 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC58 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC5C + add r1, sp + strb r0, [r1] + ldr r1, _0804BC60 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC64 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC68 + add r1, sp + strb r0, [r1] + ldr r1, _0804BC6C + add r1, sp + strb r0, [r1] + add r0, sp, 0x8 + movs r1, 0x6 + movs r2, 0x4 + movs r4, 0xE5 + lsls r4, 5 + add r4, sp + ldr r3, [r4] + bl sub_804D5B0 + ldr r5, _0804BC70 + add r5, sp + ldr r4, _0804BC74 + add r4, sp + str r4, [sp] + str r6, [sp, 0x4] + add r0, sp, 0x8 + movs r1, 0x6 + movs r2, 0x4 + adds r3, r5, 0 + bl sub_804D8C8 + str r4, [sp] + add r0, sp, 0x8 + movs r1, 0x6 + movs r2, 0x4 + adds r3, r5, 0 + bl sub_804E590 + ldr r0, _0804BC78 + movs r5, 0 + ldrsh r3, [r0, r5] + add r0, sp, 0x8 + movs r1, 0x6 + movs r2, 0x4 + bl sub_804EBC8 + ldr r0, _0804BC7C + movs r1, 0 + ldrsh r3, [r0, r1] + add r0, sp, 0x8 + movs r1, 0x6 + movs r2, 0x4 + bl sub_804EEE4 + movs r2, 0xE5 + lsls r2, 5 + add r2, sp + ldr r2, [r2] + ldrb r3, [r2, 0x13] + add r0, sp, 0x8 + movs r1, 0x6 + movs r2, 0x4 + bl sub_804CBEC + add r0, sp, 0x8 + movs r1, 0x6 + movs r2, 0x4 + bl sub_804E03C + movs r3, 0xE7 + lsls r3, 5 + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804BBE8: .4byte 0x00001cac +_0804BBEC: .4byte 0x00001cb8 +_0804BBF0: .4byte 0x00001ccc +_0804BBF4: .4byte 0x00001cb4 +_0804BBF8: .4byte 0x0000fffc +_0804BBFC: .4byte 0x00001ca4 +_0804BC00: .4byte 0x000001fd +_0804BC04: .4byte 0x000003dd +_0804BC08: .4byte 0x000003de +_0804BC0C: .4byte 0x000005bd +_0804BC10: .4byte 0x000005be +_0804BC14: .4byte 0x0000079d +_0804BC18: .4byte 0x0000079e +_0804BC1C: .4byte 0x0000097d +_0804BC20: .4byte 0x00001cd4 +_0804BC24: .4byte 0x00001cd8 +_0804BC28: .4byte 0x00001cbc +_0804BC2C: .4byte 0x00001cc4 +_0804BC30: .4byte 0x00001cc8 +_0804BC34: .4byte 0x0000025d +_0804BC38: .4byte 0x0000025e +_0804BC3C: .4byte 0x0000043d +_0804BC40: .4byte 0x0000043e +_0804BC44: .4byte 0x0000061d +_0804BC48: .4byte 0x0000061e +_0804BC4C: .4byte 0x000007fd +_0804BC50: .4byte 0x000007fe +_0804BC54: .4byte 0x000009dd +_0804BC58: .4byte 0x0000097c +_0804BC5C: .4byte 0x0000099b +_0804BC60: .4byte 0x0000099c +_0804BC64: .4byte 0x000009bb +_0804BC68: .4byte 0x000009bc +_0804BC6C: .4byte 0x000009db +_0804BC70: .4byte 0x00001c28 +_0804BC74: .4byte 0x00001c64 +_0804BC78: .4byte gUnknown_202F1B0 +_0804BC7C: .4byte gUnknown_202F1B2 + thumb_func_end sub_804B72C + + thumb_func_start sub_804BC80 +sub_804BC80: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _0804BED0 + add sp, r4 + movs r1, 0xE5 + lsls r1, 5 + add r1, sp + str r0, [r1] + movs r4, 0x1 + movs r5, 0 + ldr r1, _0804BED4 + add r1, sp + str r5, [r1] + movs r0, 0xB + str r0, [r1, 0x4] + movs r0, 0x16 + str r0, [r1, 0x8] + movs r0, 0x21 + str r0, [r1, 0xC] + movs r0, 0x2C + str r0, [r1, 0x10] + movs r0, 0x38 + str r0, [r1, 0x14] + ldr r1, _0804BED8 + add r1, sp + str r4, [r1] + movs r0, 0x9 + str r0, [r1, 0x4] + movs r0, 0x10 + str r0, [r1, 0x8] + movs r0, 0x17 + str r0, [r1, 0xC] + movs r0, 0x1F + str r0, [r1, 0x10] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x4 + bl sub_804D084 + add r6, sp, 0x70 + add r1, sp, 0x68 + add r0, sp, 0x8 + movs r3, 0xF0 + lsls r3, 1 + movs r2, 0x5 +_0804BCE0: + strb r4, [r0, 0xA] + strb r4, [r1, 0xA] + adds r1, r3 + adds r0, r3 + subs r2, 0x1 + cmp r2, 0 + bne _0804BCE0 + movs r3, 0x5 + subs r3, 0x1 + movs r2, 0x4 + cmp r2, 0 + beq _0804BD1A + lsls r0, r3, 4 + subs r0, r3 + lsls r0, 5 + add r0, sp + adds r0, 0x8 + add r1, sp, 0x8 + mov r10, r2 +_0804BD06: + strb r4, [r1, 0xA] + strb r4, [r0, 0xA] + adds r0, 0x20 + adds r1, 0x20 + movs r2, 0x1 + negs r2, r2 + add r10, r2 + mov r2, r10 + cmp r2, 0 + bne _0804BD06 +_0804BD1A: + movs r2, 0x1 + cmp r2, r3 + bge _0804BD58 + movs r1, 0x3 +_0804BD22: + adds r4, r2, 0x1 + ldr r0, _0804BEDC + add r0, sp + str r4, [r0] + cmp r1, 0x1 + ble _0804BD4E + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 5 + add r0, sp + adds r0, 0x8 + adds r0, 0x20 + subs r2, r1, 0x1 + mov r10, r2 +_0804BD3E: + strb r5, [r0, 0xA] + adds r0, 0x20 + movs r4, 0x1 + negs r4, r4 + add r10, r4 + mov r2, r10 + cmp r2, 0 + bne _0804BD3E +_0804BD4E: + ldr r4, _0804BEDC + add r4, sp + ldr r2, [r4] + cmp r2, r3 + blt _0804BD22 +_0804BD58: + add r0, sp, 0x8 + movs r1, 0x1 + strb r1, [r0, 0x8] + movs r0, 0xF2 + lsls r0, 3 + add r0, sp + strb r1, [r0] + strb r1, [r6] + movs r0, 0xFE + lsls r0, 3 + add r0, sp + strb r1, [r0] + movs r5, 0 + ldr r6, _0804BEE0 + add r6, sp + str r5, [r6] + mov r10, r5 + cmp r5, 0x4 + blt _0804BD80 + b _0804BFAC +_0804BD80: + movs r0, 0x4 + movs r1, 0xE6 + lsls r1, 5 + add r1, sp + str r0, [r1] +_0804BD8A: + movs r2, 0 + cmp r2, 0x5 + blt _0804BD92 + b _0804BF94 +_0804BD92: + ldr r3, _0804BED4 + add r3, sp + ldr r4, _0804BEE4 + add r4, sp + str r3, [r4] + ldr r5, _0804BED8 + add r5, sp + ldr r6, _0804BEE8 + add r6, sp + str r5, [r6] + mov r1, r10 + lsls r0, r1, 2 + adds r0, r5, r0 + ldr r3, _0804BEEC + add r3, sp + str r0, [r3] +_0804BDB2: + lsls r0, r2, 4 + subs r0, r2 + add r0, r10 + lsls r0, 5 + mov r7, sp + adds r7, r0 + adds r7, 0x8 + ldrb r0, [r7, 0x8] + adds r4, r2, 0x1 + ldr r5, _0804BEDC + add r5, sp + str r4, [r5] + cmp r0, 0 + beq _0804BDD0 + b _0804BF88 +_0804BDD0: + ldrb r0, [r7, 0xA] + cmp r0, 0 + bne _0804BDD8 + b _0804BF00 +_0804BDD8: + lsls r0, r2, 2 + ldr r6, _0804BEE4 + add r6, sp + ldr r6, [r6] + adds r0, r6, r0 + ldr r1, [r0] + adds r0, r1, 0x2 + mov r9, r0 + ldr r3, _0804BEEC + add r3, sp + ldr r3, [r3] + ldr r2, [r3] + adds r4, r2, 0x2 + ldr r5, _0804BEF0 + add r5, sp + str r4, [r5] + ldr r6, _0804BEDC + add r6, sp + ldr r6, [r6] + lsls r0, r6, 2 + ldr r3, _0804BEE4 + add r3, sp + ldr r3, [r3] + adds r0, r3, r0 + ldr r4, [r0] + subs r4, r1 + subs r4, 0x3 + ldr r5, _0804BEE8 + add r5, sp + ldr r5, [r5] + movs r6, 0xE6 + lsls r6, 5 + add r6, sp + ldr r6, [r6] + adds r0, r5, r6 + ldr r5, [r0] + subs r5, r2 + subs r5, 0x3 + movs r0, 0x5 + adds r1, r4, 0 + bl sub_808411C + mov r8, r0 + movs r0, 0x4 + adds r1, r5, 0 + bl sub_808411C + adds r6, r0, 0 + mov r0, r8 + subs r4, r0 + adds r0, r4, 0 + bl sub_8084100 + adds r4, r0, 0 + add r4, r9 + subs r5, r6 + adds r0, r5, 0 + bl sub_8084100 + ldr r2, _0804BEF0 + add r2, sp + ldr r1, [r2] + adds r1, r0 + mov r9, r1 + mov r5, r8 + adds r3, r4, r5 + add r6, r9 + strh r4, [r7] + strh r3, [r7, 0x4] + strh r1, [r7, 0x2] + strh r6, [r7, 0x6] + ldr r1, _0804BEE0 + add r1, sp + ldr r0, [r1] + adds r0, 0x1 + ldr r1, _0804BEF4 + add r1, sp + str r0, [r1] + cmp r4, r3 + bge _0804BEC0 +_0804BE78: + mov r5, r9 + adds r7, r4, 0x1 + cmp r5, r6 + bge _0804BEBA + ldr r2, _0804BEF8 + mov r8, r2 +_0804BE84: + adds r0, r4, 0 + adds r1, r5, 0 + ldr r2, _0804BEFC + add r2, sp + str r3, [r2] + bl sub_8049590 + ldrh r1, [r0] + mov r2, r8 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8049590 + ldr r1, _0804BEE0 + add r1, sp + ldrb r1, [r1] + strb r1, [r0, 0x9] + adds r5, 0x1 + ldr r2, _0804BEFC + add r2, sp + ldr r3, [r2] + cmp r5, r6 + blt _0804BE84 +_0804BEBA: + adds r4, r7, 0 + cmp r4, r3 + blt _0804BE78 +_0804BEC0: + ldr r3, _0804BEF4 + add r3, sp + ldr r3, [r3] + ldr r4, _0804BEE0 + add r4, sp + str r3, [r4] + b _0804BF88 + .align 2, 0 +_0804BED0: .4byte 0xffffe338 +_0804BED4: .4byte 0x00001c28 +_0804BED8: .4byte 0x00001c64 +_0804BEDC: .4byte 0x00001cb8 +_0804BEE0: .4byte 0x00001ca4 +_0804BEE4: .4byte 0x00001ca8 +_0804BEE8: .4byte 0x00001cb0 +_0804BEEC: .4byte 0x00001cb4 +_0804BEF0: .4byte 0x00001cac +_0804BEF4: .4byte 0x00001cbc +_0804BEF8: .4byte 0x0000fffc +_0804BEFC: .4byte 0x00001cc4 +_0804BF00: + lsls r0, r2, 2 + ldr r4, _0804C080 + add r4, sp + ldr r4, [r4] + adds r0, r4, r0 + ldr r2, [r0] + adds r0, r2, 0x1 + ldr r5, _0804C084 + add r5, sp + ldr r5, [r5] + ldr r3, [r5] + adds r6, r3, 0x1 + mov r8, r6 + ldr r4, _0804C088 + add r4, sp + ldr r4, [r4] + lsls r1, r4, 2 + ldr r5, _0804C080 + add r5, sp + ldr r5, [r5] + adds r1, r5, r1 + ldr r1, [r1] + subs r1, r2 + subs r1, 0x3 + ldr r6, _0804C08C + add r6, sp + ldr r6, [r6] + movs r4, 0xE6 + lsls r4, 5 + add r4, sp + ldr r4, [r4] + adds r2, r6, r4 + ldr r4, [r2] + subs r4, r3 + subs r4, 0x3 + adds r1, r0, r1 + bl sub_808411C + adds r5, r0, 0 + add r4, r8 + mov r0, r8 + adds r1, r4, 0 + bl sub_808411C + adds r4, r0, 0 + strh r5, [r7] + adds r0, r5, 0x1 + strh r0, [r7, 0x4] + strh r4, [r7, 0x2] + adds r0, r4, 0x1 + strh r0, [r7, 0x6] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r1, [r0] + ldr r6, _0804C090 + adds r2, r6, 0 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0xFF + strb r1, [r0, 0x9] +_0804BF88: + ldr r0, _0804C088 + add r0, sp + ldr r2, [r0] + cmp r2, 0x5 + bge _0804BF94 + b _0804BDB2 +_0804BF94: + movs r2, 0xE6 + lsls r2, 5 + add r2, sp + ldr r1, [r2] + adds r1, 0x4 + str r1, [r2] + movs r3, 0x1 + add r10, r3 + mov r4, r10 + cmp r4, 0x4 + bge _0804BFAC + b _0804BD8A +_0804BFAC: + movs r2, 0x1 + movs r1, 0x1 + movs r3, 0xF + add r4, sp, 0x1C +_0804BFB4: + movs r5, 0 + mov r10, r5 + lsls r0, r3, 5 + adds r0, r4 +_0804BFBC: + strb r1, [r0] + strb r1, [r0, 0x1F] + adds r0, 0x20 + movs r6, 0x1 + add r10, r6 + mov r5, r10 + cmp r5, 0x2 + ble _0804BFBC + movs r0, 0xF0 + lsls r0, 1 + adds r3, 0xF + adds r2, 0x1 + cmp r2, 0x3 + ble _0804BFB4 + mov r10, r6 + movs r5, 0x1 + adds r4, r0, 0 + mov r6, sp + adds r6, r4 + adds r6, 0x8 +_0804BFE4: + movs r2, 0 + mov r1, r10 + lsls r0, r1, 5 + mov r3, r10 + adds r3, 0x1 + adds r1, r0, r6 + add r0, sp + adds r0, 0x8 +_0804BFF4: + strb r5, [r0, 0x16] + strb r5, [r1, 0x15] + adds r1, r4 + adds r0, r4 + adds r2, 0x1 + cmp r2, 0x3 + ble _0804BFF4 + mov r10, r3 + cmp r3, 0x2 + ble _0804BFE4 + ldr r5, _0804C094 + add r5, sp + ldr r4, _0804C098 + add r4, sp + str r4, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x4 + adds r3, r5, 0 + bl sub_804D8C8 + str r4, [sp] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x4 + adds r3, r5, 0 + bl sub_804E590 + ldr r0, _0804C09C + movs r2, 0 + ldrsh r3, [r0, r2] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x4 + bl sub_804EBC8 + ldr r0, _0804C0A0 + movs r4, 0 + ldrsh r3, [r0, r4] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x4 + bl sub_804EEE4 + movs r5, 0xE5 + lsls r5, 5 + add r5, sp + ldr r5, [r5] + ldrb r3, [r5, 0x13] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x4 + bl sub_804CBEC + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x4 + bl sub_804E03C + ldr r3, _0804C0A4 + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804C080: .4byte 0x00001ca8 +_0804C084: .4byte 0x00001cb4 +_0804C088: .4byte 0x00001cb8 +_0804C08C: .4byte 0x00001cb0 +_0804C090: .4byte 0x0000fffc +_0804C094: .4byte 0x00001c28 +_0804C098: .4byte 0x00001c64 +_0804C09C: .4byte gUnknown_202F1B0 +_0804C0A0: .4byte gUnknown_202F1B2 +_0804C0A4: .4byte 0x00001cc8 + thumb_func_end sub_804BC80 + + thumb_func_start sub_804C0A8 +sub_804C0A8: + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r4, _0804C17C + add sp, r4 + adds r6, r0, 0 + ldr r4, _0804C180 + add r4, sp + movs r0, 0 + str r0, [r4] + movs r0, 0xB + str r0, [r4, 0x4] + movs r0, 0x16 + str r0, [r4, 0x8] + movs r0, 0x21 + str r0, [r4, 0xC] + movs r0, 0x2C + str r0, [r4, 0x10] + movs r0, 0x38 + str r0, [r4, 0x14] + ldr r5, _0804C184 + add r5, sp + movs r0, 0x4 + str r0, [r5] + movs r0, 0xF + str r0, [r5, 0x4] + movs r0, 0x1 + mov r8, r0 + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x1 + bl sub_804D084 + movs r3, 0x1 + ldrsb r3, [r6, r3] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x1 + bl sub_804D154 + str r5, [sp] + ldrb r0, [r6, 0xD] + str r0, [sp, 0x4] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x1 + adds r3, r4, 0 + bl sub_804D2D0 + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x1 + adds r3, r6, 0 + bl sub_804D5B0 + str r5, [sp] + mov r1, r8 + str r1, [sp, 0x4] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x1 + adds r3, r4, 0 + bl sub_804D8C8 + str r5, [sp] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x1 + adds r3, r4, 0 + bl sub_804E590 + ldr r0, _0804C188 + movs r1, 0 + ldrsh r3, [r0, r1] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x1 + bl sub_804EBC8 + ldr r0, _0804C18C + movs r1, 0 + ldrsh r3, [r0, r1] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x1 + bl sub_804EEE4 + ldrb r3, [r6, 0x13] + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x1 + bl sub_804CBEC + add r0, sp, 0x8 + movs r1, 0x5 + movs r2, 0x1 + bl sub_804E03C + movs r3, 0xE5 + lsls r3, 5 + add sp, r3 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804C17C: .4byte 0xffffe360 +_0804C180: .4byte 0x00001c28 +_0804C184: .4byte 0x00001c64 +_0804C188: .4byte gUnknown_202F1B0 +_0804C18C: .4byte gUnknown_202F1B2 + thumb_func_end sub_804C0A8 + + thumb_func_start sub_804C190 +sub_804C190: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _0804C2CC + add sp, r4 + mov r10, r0 + ldr r1, _0804C2D0 + add r1, sp + movs r2, 0xB + str r2, [r1] + movs r0, 0x16 + str r0, [r1, 0x4] + movs r0, 0x21 + str r0, [r1, 0x8] + movs r0, 0x2C + str r0, [r1, 0xC] + ldr r1, _0804C2D4 + add r1, sp + movs r0, 0x2 + str r0, [r1] + str r2, [r1, 0x4] + movs r0, 0x14 + str r0, [r1, 0x8] + movs r0, 0x1E + str r0, [r1, 0xC] + movs r0, 0x3 + mov r8, r0 + movs r7, 0x3 + add r0, sp, 0x8 + movs r1, 0x3 + movs r2, 0x3 + bl sub_804D084 + movs r1, 0 + add r5, sp, 0x50 + movs r0, 0x3E + add r0, sp + mov r9, r0 + mov r0, r10 + ldrb r0, [r0, 0xD] + mov r12, r0 +_0804C1E6: + adds r3, r1, 0x1 + cmp r7, 0 + beq _0804C204 + lsls r0, r1, 4 + subs r0, r1 + movs r2, 0x1 + lsls r0, 5 + add r0, sp + adds r0, 0x8 + adds r1, r7, 0 +_0804C1FA: + strb r2, [r0, 0xA] + adds r0, 0x20 + subs r1, 0x1 + cmp r1, 0 + bne _0804C1FA +_0804C204: + adds r1, r3, 0 + cmp r1, r8 + blt _0804C1E6 + add r0, sp, 0x8 + movs r4, 0x1 + strb r4, [r0, 0x8] + add r0, sp, 0x3D0 + strb r4, [r0] + strb r4, [r5] + movs r0, 0x82 + lsls r0, 3 + add r0, sp + strb r4, [r0] + ldr r6, _0804C2D0 + add r6, sp + ldr r5, _0804C2D4 + add r5, sp + str r5, [sp] + mov r1, r12 + str r1, [sp, 0x4] + add r0, sp, 0x8 + mov r1, r8 + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_804D2D0 + mov r0, r9 + strb r4, [r0] + ldr r0, _0804C2D8 + add r0, sp + strb r4, [r0] + ldr r0, _0804C2DC + add r0, sp + strb r4, [r0] + ldr r0, _0804C2E0 + add r0, sp + strb r4, [r0] + add r0, sp, 0x1FC + strb r4, [r0] + ldr r0, _0804C2E4 + add r0, sp + strb r4, [r0] + add r0, sp, 0x21C + strb r4, [r0] + ldr r0, _0804C2E8 + add r0, sp + strb r4, [r0] + str r5, [sp] + str r4, [sp, 0x4] + add r0, sp, 0x8 + mov r1, r8 + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_804D8C8 + str r5, [sp] + add r0, sp, 0x8 + mov r1, r8 + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_804E590 + ldr r0, _0804C2EC + movs r1, 0 + ldrsh r3, [r0, r1] + add r0, sp, 0x8 + mov r1, r8 + adds r2, r7, 0 + bl sub_804EBC8 + ldr r0, _0804C2F0 + movs r1, 0 + ldrsh r3, [r0, r1] + add r0, sp, 0x8 + mov r1, r8 + adds r2, r7, 0 + bl sub_804EEE4 + mov r0, r10 + ldrb r3, [r0, 0x13] + add r0, sp, 0x8 + mov r1, r8 + adds r2, r7, 0 + bl sub_804CBEC + add r0, sp, 0x8 + mov r1, r8 + adds r2, r7, 0 + bl sub_804E03C + movs r3, 0xE5 + lsls r3, 5 + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804C2CC: .4byte 0xffffe360 +_0804C2D0: .4byte 0x00001c28 +_0804C2D4: .4byte 0x00001c64 +_0804C2D8: .4byte 0x0000021d +_0804C2DC: .4byte 0x0000021e +_0804C2E0: .4byte 0x000003fd +_0804C2E4: .4byte 0x0000021b +_0804C2E8: .4byte 0x0000023b +_0804C2EC: .4byte gUnknown_202F1B0 +_0804C2F0: .4byte gUnknown_202F1B2 + thumb_func_end sub_804C190 + + thumb_func_start sub_804C2F4 +sub_804C2F4: + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _0804C420 + add sp, r4 + mov r8, r0 + ldr r1, _0804C424 + add r1, sp + movs r0, 0x5 + str r0, [r1] + movs r0, 0xF + str r0, [r1, 0x4] + movs r0, 0x23 + str r0, [r1, 0x8] + movs r0, 0x32 + str r0, [r1, 0xC] + ldr r1, _0804C428 + add r1, sp + movs r0, 0x2 + str r0, [r1] + movs r0, 0xB + str r0, [r1, 0x4] + movs r0, 0x14 + str r0, [r1, 0x8] + movs r0, 0x1E + str r0, [r1, 0xC] + movs r7, 0x3 + movs r6, 0x3 + add r0, sp, 0x8 + movs r1, 0x3 + movs r2, 0x3 + bl sub_804D084 + movs r1, 0 + mov r0, r8 + ldrb r4, [r0, 0xD] +_0804C33C: + adds r3, r1, 0x1 + cmp r6, 0 + beq _0804C35A + lsls r0, r1, 4 + subs r0, r1 + movs r2, 0x1 + lsls r0, 5 + add r0, sp + adds r0, 0x8 + adds r1, r6, 0 +_0804C350: + strb r2, [r0, 0xA] + adds r0, 0x20 + subs r1, 0x1 + cmp r1, 0 + bne _0804C350 +_0804C35A: + adds r1, r3, 0 + cmp r1, r7 + blt _0804C33C + ldr r3, _0804C424 + add r3, sp + ldr r0, _0804C428 + add r0, sp + str r0, [sp] + str r4, [sp, 0x4] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804D2D0 + movs r4, 0x1 + ldr r3, _0804C42C + add r3, sp + ldr r0, _0804C430 + add r0, sp + add r2, sp, 0x8 + movs r1, 0x2 +_0804C384: + strb r4, [r2, 0x16] + strb r4, [r0] + strb r4, [r0, 0x1] + strb r4, [r3] + adds r3, 0x20 + adds r0, 0x20 + adds r2, 0x20 + subs r1, 0x1 + cmp r1, 0 + bge _0804C384 + ldr r5, _0804C424 + add r5, sp + ldr r4, _0804C428 + add r4, sp + str r4, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + adds r3, r5, 0 + bl sub_804D8C8 + movs r0, 0x1 + movs r1, 0 + movs r2, 0x1 + add r3, sp, 0x8 + bl sub_804C43C + movs r0, 0x1 + movs r1, 0 + movs r2, 0x2 + add r3, sp, 0x8 + bl sub_804C43C + str r4, [sp] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + adds r3, r5, 0 + bl sub_804E590 + ldr r0, _0804C434 + movs r1, 0 + ldrsh r3, [r0, r1] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804EBC8 + ldr r0, _0804C438 + movs r1, 0 + ldrsh r3, [r0, r1] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804EEE4 + mov r0, r8 + ldrb r3, [r0, 0x13] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804CBEC + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804E03C + movs r3, 0xE5 + lsls r3, 5 + add sp, r3 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804C420: .4byte 0xffffe360 +_0804C424: .4byte 0x00001c28 +_0804C428: .4byte 0x00001c64 +_0804C42C: .4byte 0x000003dd +_0804C430: .4byte 0x000001fd +_0804C434: .4byte gUnknown_202F1B0 +_0804C438: .4byte gUnknown_202F1B2 + thumb_func_end sub_804C2F4 + + thumb_func_start sub_804C43C +sub_804C43C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + str r0, [sp] + str r3, [sp, 0x4] + lsls r7, r1, 5 + lsls r0, 4 + str r0, [sp, 0xC] + ldr r3, [sp] + subs r0, r3 + lsls r0, 5 + ldr r4, [sp, 0x4] + adds r0, r4 + adds r3, r7, r0 + adds r6, r1, r2 + lsls r1, r6, 5 + adds r2, r1, r0 + movs r5, 0 + ldrsh r1, [r2, r5] + adds r4, r1, 0 + ldrh r0, [r3] + mov r8, r0 + movs r5, 0 + ldrsh r0, [r3, r5] + cmp r1, r0 + ble _0804C478 + mov r4, r8 +_0804C478: + lsls r0, r4, 16 + asrs r0, 16 + str r0, [sp, 0x8] + movs r1, 0x2 + ldrsh r0, [r3, r1] + mov r10, r0 + movs r4, 0x4 + ldrsh r1, [r2, r4] + adds r4, r1, 0 + ldrh r5, [r3, 0x4] + mov r8, r5 + movs r5, 0x4 + ldrsh r0, [r3, r5] + cmp r1, r0 + bge _0804C498 + mov r4, r8 +_0804C498: + lsls r0, r4, 16 + asrs r0, 16 + str r0, [sp, 0x10] + movs r1, 0x6 + ldrsh r0, [r2, r1] + mov r8, r0 + movs r2, 0 + ldrsh r0, [r3, r2] + mov r1, r10 + bl sub_804954C + ldrb r0, [r0, 0x9] + mov r9, r0 + ldr r5, [sp, 0x8] + str r7, [sp, 0x1C] + ldr r3, [sp, 0xC] + str r3, [sp, 0x18] + str r6, [sp, 0x14] + ldr r4, [sp, 0x10] + cmp r5, r4 + bge _0804C4F2 +_0804C4C2: + mov r4, r10 + adds r6, r5, 0x1 + cmp r10, r8 + bge _0804C4EA + ldr r0, _0804C538 + adds r7, r0, 0 +_0804C4CE: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r1, [r0] + ands r1, r7 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + mov r1, r9 + strb r1, [r0, 0x9] + adds r4, 0x1 + cmp r4, r8 + blt _0804C4CE +_0804C4EA: + adds r5, r6, 0 + ldr r2, [sp, 0x10] + cmp r5, r2 + blt _0804C4C2 +_0804C4F2: + ldr r3, [sp, 0x18] + ldr r4, [sp] + subs r1, r3, r4 + lsls r1, 5 + ldr r5, [sp, 0x4] + adds r1, r5 + ldr r0, [sp, 0x1C] + adds r2, r0, r1 + movs r3, 0 + mov r4, sp + ldrh r4, [r4, 0x8] + strh r4, [r2] + mov r5, sp + ldrh r5, [r5, 0x10] + strh r5, [r2, 0x4] + mov r0, r10 + strh r0, [r2, 0x2] + mov r4, r8 + strh r4, [r2, 0x6] + ldr r5, [sp, 0x14] + lsls r0, r5, 5 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0, 0x12] + strb r1, [r2, 0x12] + strb r3, [r0, 0xB] + strb r1, [r0, 0x11] + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804C538: .4byte 0x0000fffc + thumb_func_end sub_804C43C + + thumb_func_start sub_804C53C +sub_804C53C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _0804C6F8 + add sp, r4 + mov r10, r2 + adds r7, r0, 0 + adds r6, r1, 0 + ldr r0, _0804C6FC + add r0, sp + ldr r1, _0804C700 + add r1, sp + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_804D024 + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804D084 + movs r2, 0 + cmp r2, r7 + bge _0804C594 +_0804C570: + adds r3, r2, 0x1 + cmp r6, 0 + ble _0804C58E + lsls r0, r2, 4 + subs r0, r2 + movs r2, 0x1 + lsls r0, 5 + add r0, sp + adds r0, 0x8 + adds r1, r6, 0 +_0804C584: + strb r2, [r0, 0xA] + adds r0, 0x20 + subs r1, 0x1 + cmp r1, 0 + bne _0804C584 +_0804C58E: + adds r2, r3, 0 + cmp r2, r7 + blt _0804C570 +_0804C594: + movs r2, 0x1 + subs r0, r7, 0x1 + mov r8, r0 + subs r1, r6, 0x1 + mov r9, r1 + mov r0, r10 + ldrb r0, [r0, 0xD] + mov r12, r0 + cmp r2, r8 + bge _0804C5D2 + mov r4, r9 + mov r5, r8 +_0804C5AC: + adds r3, r2, 0x1 + cmp r4, 0x1 + ble _0804C5CC + lsls r0, r2, 4 + subs r0, r2 + movs r2, 0x1 + lsls r0, 5 + add r0, sp + adds r0, 0x8 + adds r0, 0x20 + subs r1, r4, 0x1 +_0804C5C2: + strb r2, [r0, 0x8] + adds r0, 0x20 + subs r1, 0x1 + cmp r1, 0 + bne _0804C5C2 +_0804C5CC: + adds r2, r3, 0 + cmp r2, r5 + blt _0804C5AC +_0804C5D2: + ldr r3, _0804C6FC + add r3, sp + ldr r0, _0804C700 + add r0, sp + str r0, [sp] + mov r1, r12 + str r1, [sp, 0x4] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804D2D0 + movs r2, 0 + cmp r2, r8 + bge _0804C636 + movs r4, 0x1 + mov r0, r9 + lsls r5, r0, 5 + subs r1, r7, 0x2 + mov r12, r1 +_0804C5FA: + cmp r2, 0 + beq _0804C614 + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 5 + mov r1, sp + adds r1, r0 + adds r1, 0x8 + strb r4, [r1, 0x16] + adds r0, r5, r0 + add r0, sp + adds r0, 0x8 + strb r4, [r0, 0x16] +_0804C614: + adds r3, r2, 0x1 + cmp r2, r12 + bge _0804C630 + lsls r0, r3, 4 + subs r0, r3 + lsls r0, 5 + mov r1, sp + adds r1, r0 + adds r1, 0x8 + strb r4, [r1, 0x15] + adds r0, r5, r0 + add r0, sp + adds r0, 0x8 + strb r4, [r0, 0x15] +_0804C630: + adds r2, r3, 0 + cmp r2, r8 + blt _0804C5FA +_0804C636: + movs r1, 0 + cmp r1, r9 + bge _0804C66A + movs r3, 0x1 + mov r2, r8 + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 5 + add r0, sp + adds r0, 0x8 + add r2, sp, 0x8 + subs r5, r6, 0x2 + mov r4, r9 +_0804C650: + cmp r1, 0 + beq _0804C658 + strb r3, [r2, 0x13] + strb r3, [r0, 0x13] +_0804C658: + cmp r1, r5 + bge _0804C660 + strb r3, [r2, 0x14] + strb r3, [r0, 0x14] +_0804C660: + adds r0, 0x20 + adds r2, 0x20 + adds r1, 0x1 + cmp r1, r4 + blt _0804C650 +_0804C66A: + ldr r5, _0804C6FC + add r5, sp + ldr r4, _0804C700 + add r4, sp + str r4, [sp] + movs r0, 0 + str r0, [sp, 0x4] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + adds r3, r5, 0 + bl sub_804D8C8 + str r4, [sp] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + adds r3, r5, 0 + bl sub_804E590 + mov r0, r10 + ldrb r3, [r0, 0x9] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804F0D0 + ldr r0, _0804C704 + movs r1, 0 + ldrsh r3, [r0, r1] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804EBC8 + ldr r0, _0804C708 + movs r2, 0 + ldrsh r3, [r0, r2] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804EEE4 + mov r0, r10 + ldrb r3, [r0, 0x13] + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804CBEC + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804E03C + add r0, sp, 0x8 + adds r1, r7, 0 + adds r2, r6, 0 + bl sub_804D534 + movs r3, 0xE5 + lsls r3, 5 + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804C6F8: .4byte 0xffffe360 +_0804C6FC: .4byte 0x00001c28 +_0804C700: .4byte 0x00001c64 +_0804C704: .4byte gUnknown_202F1B0 +_0804C708: .4byte gUnknown_202F1B2 + thumb_func_end sub_804C53C + + thumb_func_start sub_804C70C +sub_804C70C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r7, r0, 0 + mov r8, r1 + ldr r0, _0804C73C + ldr r0, [r0] + ldr r1, _0804C740 + adds r0, r1 + ldr r0, [r0] + ldr r1, [r0, 0x4] + lsls r0, r7, 2 + adds r0, r1 + ldr r0, [r0] + ldrb r5, [r0] + ldrb r6, [r0, 0x1] + cmp r5, 0 + beq _0804C736 + cmp r6, 0 + bne _0804C744 +_0804C736: + bl sub_804C918 + b _0804C782 + .align 2, 0 +_0804C73C: .4byte gUnknown_203B418 +_0804C740: .4byte 0x00013568 +_0804C744: + cmp r7, 0x31 + bgt _0804C752 + adds r0, r7, 0 + bl sub_8051288 + movs r0, 0x1 + b _0804C784 +_0804C752: + adds r1, r5, 0x4 + movs r0, 0x38 + bl __divsi3 + adds r4, r0, 0 + cmp r4, 0x1 + bgt _0804C762 + movs r4, 0x1 +_0804C762: + adds r1, r6, 0x4 + movs r0, 0x20 + bl __divsi3 + adds r1, r0, 0 + cmp r1, 0x1 + bgt _0804C772 + movs r1, 0x1 +_0804C772: + str r7, [sp] + mov r0, r8 + str r0, [sp, 0x4] + adds r0, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_804C790 +_0804C782: + movs r0, 0 +_0804C784: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_804C70C + + thumb_func_start sub_804C790 +sub_804C790: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _0804C81C + add sp, r4 + adds r5, r0, 0 + adds r4, r1, 0 + ldr r0, _0804C820 + add r0, sp + str r2, [r0] + ldr r1, _0804C824 + add r1, sp + str r3, [r1] + movs r2, 0 + mov r10, r2 + mov r8, r2 + ldr r0, _0804C828 + add r0, sp + ldr r1, _0804C82C + add r1, sp + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_804D024 + add r0, sp, 0x10 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_804D084 + ldr r0, _0804C830 + add r0, sp + ldr r0, [r0] + movs r3, 0x1 + ldrsb r3, [r0, r3] + add r0, sp, 0x10 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_804D154 + mov r6, r8 + cmp r8, r5 + bge _0804C818 +_0804C7E8: + movs r1, 0 + mov r8, r1 + adds r2, r6, 0x1 + cmp r8, r4 + bge _0804C812 + lsls r0, r6, 4 + subs r0, r6 + movs r1, 0x1 + lsls r0, 5 + add r0, sp + adds r0, 0x10 + mov r8, r4 +_0804C800: + strb r1, [r0, 0x1B] + adds r0, 0x20 + movs r3, 0x1 + negs r3, r3 + add r8, r3 + mov r3, r8 + cmp r3, 0 + bne _0804C800 + mov r8, r4 +_0804C812: + adds r6, r2, 0 + cmp r6, r5 + blt _0804C7E8 +_0804C818: + movs r7, 0 + b _0804C836 + .align 2, 0 +_0804C81C: .4byte 0xffffe350 +_0804C820: .4byte 0x00001ca8 +_0804C824: .4byte 0x00001cac +_0804C828: .4byte 0x00001c30 +_0804C82C: .4byte 0x00001c6c +_0804C830: .4byte 0x00001cd4 +_0804C834: + adds r7, 0x1 +_0804C836: + cmp r7, 0x3F + bgt _0804C864 + adds r0, r5, 0 + bl sub_8084100 + adds r6, r0, 0 + adds r0, r4, 0 + bl sub_8084100 + mov r8, r0 + mov r0, r8 + muls r0, r5 + adds r0, r6 + mov r10, r0 + lsls r0, r6, 4 + subs r0, r6 + add r0, r8 + lsls r0, 5 + add r0, sp + adds r0, 0x10 + ldrb r0, [r0, 0xA] + cmp r0, 0 + beq _0804C834 +_0804C864: + ldr r0, _0804C8FC + add r0, sp + mov r9, r0 + ldr r7, _0804C900 + add r7, sp + str r7, [sp] + mov r1, r10 + str r1, [sp, 0x4] + ldr r2, _0804C904 + add r2, sp + ldr r2, [r2] + str r2, [sp, 0x8] + ldr r3, _0804C908 + add r3, sp + ldr r3, [r3] + str r3, [sp, 0xC] + add r0, sp, 0x10 + adds r1, r5, 0 + adds r2, r4, 0 + mov r3, r9 + bl sub_8050F90 + cmp r5, 0x1 + bne _0804C898 + cmp r4, 0x1 + beq _0804C8D0 +_0804C898: + mov r0, r8 + str r0, [sp] + ldr r1, _0804C90C + add r1, sp + ldr r1, [r1] + str r1, [sp, 0x4] + add r0, sp, 0x10 + adds r1, r5, 0 + adds r2, r4, 0 + adds r3, r6, 0 + bl sub_804D5F0 + str r7, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + add r0, sp, 0x10 + adds r1, r5, 0 + adds r2, r4, 0 + mov r3, r9 + bl sub_804D8C8 + str r7, [sp] + add r0, sp, 0x10 + adds r1, r5, 0 + adds r2, r4, 0 + mov r3, r9 + bl sub_804E590 +_0804C8D0: + lsls r0, r6, 4 + subs r0, r6 + lsls r0, 5 + add r0, sp + adds r0, 0x10 + mov r2, r8 + lsls r1, r2, 5 + adds r0, r1 + ldr r3, _0804C910 + add r3, sp + ldr r1, [r3] + bl sub_8051438 + ldr r3, _0804C914 + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804C8FC: .4byte 0x00001c30 +_0804C900: .4byte 0x00001c6c +_0804C904: .4byte 0x00001ca8 +_0804C908: .4byte 0x00001cac +_0804C90C: .4byte 0x00001cd4 +_0804C910: .4byte 0x00001cd0 +_0804C914: .4byte 0x00001cb0 + thumb_func_end sub_804C790 + + thumb_func_start sub_804C918 +sub_804C918: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r4, _0804C9C4 + add sp, r4 + mov r0, sp + movs r1, 0x1 + movs r2, 0x1 + bl sub_804D084 + mov r0, sp + movs r3, 0 + movs r2, 0x2 + strh r2, [r0] + mov r1, sp + movs r0, 0x36 + strh r0, [r1, 0x4] + mov r0, sp + strh r2, [r0, 0x2] + movs r0, 0x1E + strh r0, [r1, 0x6] + mov r0, sp + movs r1, 0x1 + strb r1, [r0, 0xA] + strb r1, [r0, 0xB] + strb r3, [r0, 0x8] + movs r1, 0 + ldrsh r5, [r0, r1] + movs r2, 0x4 + ldrsh r0, [r0, r2] + cmp r5, r0 + bge _0804C9A6 + mov r6, sp +_0804C95C: + movs r0, 0x2 + ldrsh r4, [r6, r0] + movs r1, 0x6 + ldrsh r0, [r6, r1] + adds r7, r5, 0x1 + cmp r4, r0 + bge _0804C99C + movs r2, 0 + mov r9, r2 + ldr r0, _0804C9C8 + mov r8, r0 +_0804C972: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r1, [r0] + mov r2, r8 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + mov r1, r9 + strb r1, [r0, 0x9] + adds r4, 0x1 + movs r2, 0x6 + ldrsh r0, [r6, r2] + cmp r4, r0 + blt _0804C972 +_0804C99C: + adds r5, r7, 0 + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r5, r0 + blt _0804C95C +_0804C9A6: + ldr r3, _0804C9CC + mov r0, sp + movs r1, 0x1 + movs r2, 0x1 + bl sub_804EEE4 + movs r3, 0xE1 + lsls r3, 5 + add sp, r3 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804C9C4: .4byte 0xffffe3e0 +_0804C9C8: .4byte 0x0000fffc +_0804C9CC: .4byte 0x000003e7 + thumb_func_end sub_804C918 + + thumb_func_start sub_804C9D0 +sub_804C9D0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _0804CBB4 + add sp, r4 + movs r0, 0 + movs r1, 0xE5 + lsls r1, 5 + add r1, sp + str r0, [r1] + ldr r1, _0804CBB8 + add r1, sp + movs r2, 0x2 + str r2, [r1] + movs r0, 0x1C + str r0, [r1, 0x4] + movs r0, 0x36 + str r0, [r1, 0x8] + ldr r1, _0804CBBC + add r1, sp + str r2, [r1] + movs r0, 0x1E + str r0, [r1, 0x4] + add r0, sp, 0x8 + movs r1, 0x2 + movs r2, 0x1 + bl sub_804D084 + movs r0, 0 + ldr r2, _0804CBB8 + add r2, sp + ldr r3, _0804CBC0 + add r3, sp + str r2, [r3] + ldr r4, _0804CBBC + add r4, sp + ldr r1, _0804CBC4 + add r1, sp + str r4, [r1] +_0804CA22: + movs r7, 0 + lsls r2, r0, 2 + ldr r3, _0804CBC8 + add r3, sp + str r2, [r3] + adds r4, r0, 0x1 + ldr r1, _0804CBCC + add r1, sp + str r4, [r1] + lsls r0, 5 + ldr r2, _0804CBD0 + add r2, sp + str r0, [r2] +_0804CA3C: + lsls r0, r7, 2 + ldr r3, _0804CBC0 + add r3, sp + ldr r3, [r3] + adds r0, r3, r0 + ldr r1, [r0] + adds r4, r1, 0x1 + mov r10, r4 + ldr r2, _0804CBC4 + add r2, sp + ldr r2, [r2] + ldr r3, _0804CBC8 + add r3, sp + ldr r3, [r3] + adds r0, r2, r3 + ldr r2, [r0] + adds r4, r2, 0x1 + ldr r0, _0804CBD4 + add r0, sp + str r4, [r0] + adds r3, r7, 0x1 + mov r9, r3 + lsls r0, r3, 2 + ldr r4, _0804CBC0 + add r4, sp + ldr r4, [r4] + adds r0, r4, r0 + ldr r4, [r0] + subs r4, r1 + subs r4, 0x3 + ldr r1, _0804CBCC + add r1, sp + ldr r1, [r1] + lsls r0, r1, 2 + ldr r3, _0804CBC4 + add r3, sp + ldr r3, [r3] + adds r0, r3, r0 + ldr r5, [r0] + subs r5, r2 + subs r5, 0x3 + movs r0, 0xA + adds r1, r4, 0 + bl sub_808411C + mov r8, r0 + movs r0, 0x10 + adds r1, r5, 0 + bl sub_808411C + adds r6, r0, 0 + mov r0, r8 + subs r4, r0 + adds r0, r4, 0 + bl sub_8084100 + adds r4, r0, 0 + add r4, r10 + subs r5, r6 + adds r0, r5, 0 + bl sub_8084100 + ldr r2, _0804CBD4 + add r2, sp + ldr r1, [r2] + adds r1, r0 + mov r10, r1 + mov r0, r8 + adds r3, r4, r0 + add r6, r10 + lsls r0, r7, 4 + subs r0, r7 + lsls r0, 5 + ldr r1, _0804CBD0 + add r1, sp + ldr r1, [r1] + adds r0, r1, r0 + add r0, sp + adds r0, 0x8 + movs r1, 0x1 + strb r1, [r0, 0xA] + strh r4, [r0] + strh r3, [r0, 0x4] + mov r2, r10 + strh r2, [r0, 0x2] + strh r6, [r0, 0x6] + mov r0, r9 + ldr r1, _0804CBD8 + add r1, sp + str r0, [r1] + movs r0, 0xE5 + lsls r0, 5 + add r0, sp + ldr r2, [r0] + adds r2, 0x1 + mov r9, r2 + cmp r4, r3 + bge _0804CB4E +_0804CB00: + mov r5, r10 + adds r7, r4, 0x1 + cmp r5, r6 + bge _0804CB48 + ldr r1, _0804CBDC + mov r8, r1 +_0804CB0C: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0xE6 + lsls r2, 5 + add r2, sp + str r3, [r2] + bl sub_8049590 + ldrh r1, [r0] + mov r2, r8 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8049590 + movs r1, 0xE5 + lsls r1, 5 + add r1, sp + ldrb r1, [r1] + strb r1, [r0, 0x9] + adds r5, 0x1 + movs r2, 0xE6 + lsls r2, 5 + add r2, sp + ldr r3, [r2] + cmp r5, r6 + blt _0804CB0C +_0804CB48: + adds r4, r7, 0 + cmp r4, r3 + blt _0804CB00 +_0804CB4E: + mov r3, r9 + movs r4, 0xE5 + lsls r4, 5 + add r4, sp + str r3, [r4] + ldr r0, _0804CBD8 + add r0, sp + ldr r7, [r0] + cmp r7, 0x1 + bgt _0804CB64 + b _0804CA3C +_0804CB64: + ldr r1, _0804CBCC + add r1, sp + ldr r0, [r1] + cmp r0, 0 + bgt _0804CB70 + b _0804CA22 +_0804CB70: + add r0, sp, 0x8 + movs r2, 0 + movs r1, 0x1 + strb r1, [r0, 0x16] + ldr r0, _0804CBE0 + add r0, sp + strb r1, [r0] + ldr r3, _0804CBB8 + add r3, sp + ldr r0, _0804CBBC + add r0, sp + str r0, [sp] + str r2, [sp, 0x4] + add r0, sp, 0x8 + movs r1, 0x2 + movs r2, 0x1 + bl sub_804D8C8 + ldr r3, _0804CBE4 + add r0, sp, 0x8 + movs r1, 0x2 + movs r2, 0x1 + bl sub_804EEE4 + ldr r3, _0804CBE8 + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804CBB4: .4byte 0xffffe33c +_0804CBB8: .4byte 0x00001c28 +_0804CBBC: .4byte 0x00001c64 +_0804CBC0: .4byte 0x00001ca4 +_0804CBC4: .4byte 0x00001cac +_0804CBC8: .4byte 0x00001cb0 +_0804CBCC: .4byte 0x00001cbc +_0804CBD0: .4byte 0x00001cb4 +_0804CBD4: .4byte 0x00001ca8 +_0804CBD8: .4byte 0x00001cb8 +_0804CBDC: .4byte 0x0000fffc +_0804CBE0: .4byte 0x000001fd +_0804CBE4: .4byte 0x000003e7 +_0804CBE8: .4byte 0x00001cc4 + thumb_func_end sub_804C9D0 + + thumb_func_start sub_804CBEC +sub_804CBEC: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + str r0, [sp] + str r1, [sp, 0x4] + str r2, [sp, 0x8] + str r3, [sp, 0xC] + cmp r3, 0 + bne _0804CC06 + b _0804D006 +_0804CC06: + movs r5, 0 + cmp r5, r3 + blt _0804CC0E + b _0804D006 +_0804CC0E: + ldr r0, [sp, 0x4] + bl sub_8084100 + mov r9, r0 + ldr r0, [sp, 0x8] + bl sub_8084100 + mov r10, r0 + lsls r0, 5 + mov r2, r9 + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 5 + ldr r3, [sp] + adds r1, r3 + adds r4, r0, r1 + ldrb r0, [r4, 0xA] + adds r5, 0x1 + str r5, [sp, 0x18] + cmp r0, 0 + bne _0804CC3A + b _0804CFFC +_0804CC3A: + ldrb r0, [r4, 0xB] + cmp r0, 0 + bne _0804CC42 + b _0804CFFC +_0804CC42: + ldrb r0, [r4, 0x8] + cmp r0, 0 + beq _0804CC4A + b _0804CFFC +_0804CC4A: + ldrb r0, [r4, 0x10] + cmp r0, 0 + beq _0804CC52 + b _0804CFFC +_0804CC52: + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r4, r2] + bl sub_808411C + adds r7, r0, 0 + movs r3, 0x2 + ldrsh r0, [r4, r3] + movs r2, 0x6 + ldrsh r1, [r4, r2] + bl sub_808411C + adds r6, r0, 0 + movs r0, 0x4 + bl sub_8084100 + lsls r0, 1 + mov r8, r0 + ldr r1, [sp, 0x8] + subs r1, 0x1 + movs r3, 0x2 + str r3, [sp, 0x10] + ldr r0, [sp, 0x4] + subs r0, 0x1 +_0804CC84: + mov r2, r8 + cmp r2, 0 + bne _0804CC92 + cmp r10, r1 + blt _0804CC92 + movs r3, 0x2 + mov r8, r3 +_0804CC92: + mov r2, r8 + cmp r2, 0x2 + bne _0804CCA0 + cmp r9, r0 + blt _0804CCA0 + movs r3, 0x4 + mov r8, r3 +_0804CCA0: + mov r2, r8 + cmp r2, 0x4 + bne _0804CCB0 + mov r3, r10 + cmp r3, 0 + bgt _0804CCB0 + movs r2, 0x6 + mov r8, r2 +_0804CCB0: + mov r3, r8 + cmp r3, 0x6 + bne _0804CCC0 + mov r2, r9 + cmp r2, 0 + bgt _0804CCC0 + movs r3, 0 + mov r8, r3 +_0804CCC0: + ldr r2, [sp, 0x10] + subs r2, 0x1 + str r2, [sp, 0x10] + cmp r2, 0 + bge _0804CC84 + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_804954C + ldrb r5, [r0, 0x9] + ldr r1, _0804CCE0 + mov r3, r8 + lsls r0, r3, 2 + adds r4, r0, r1 + b _0804CCF0 + .align 2, 0 +_0804CCE0: .4byte gUnknown_80F4448 +_0804CCE4: + movs r1, 0 + ldrsh r0, [r4, r1] + adds r7, r0 + movs r2, 0x2 + ldrsh r0, [r4, r2] + adds r6, r0 +_0804CCF0: + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_804954C + ldrb r0, [r0, 0x9] + cmp r5, r0 + beq _0804CCE4 + ldr r1, _0804CD08 + mov r3, r8 + lsls r0, r3, 2 + adds r4, r0, r1 + b _0804CD18 + .align 2, 0 +_0804CD08: .4byte gUnknown_80F4448 +_0804CD0C: + movs r1, 0 + ldrsh r0, [r4, r1] + adds r7, r0 + movs r2, 0x2 + ldrsh r0, [r4, r2] + adds r6, r0 +_0804CD18: + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_804954C + ldrh r1, [r0] + movs r5, 0x3 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0x1 + beq _0804CD0C + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_804954C + ldrh r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0x2 + bne _0804CD40 + b _0804CFFC +_0804CD40: + movs r3, 0 + subs r2, r7, 0x2 + adds r4, r7, 0x2 + b _0804CD4A +_0804CD48: + adds r2, 0x1 +_0804CD4A: + cmp r2, r4 + bgt _0804CD6C + subs r0, r6, 0x2 + adds r1, r6, 0x2 + b _0804CD56 +_0804CD54: + adds r0, 0x1 +_0804CD56: + cmp r0, r1 + bgt _0804CD68 + cmp r2, 0x37 + bhi _0804CD66 + cmp r0, 0 + blt _0804CD66 + cmp r0, 0x1F + ble _0804CD54 +_0804CD66: + movs r3, 0x1 +_0804CD68: + cmp r3, 0 + beq _0804CD48 +_0804CD6C: + cmp r3, 0 + beq _0804CD72 + b _0804CFFC +_0804CD72: + ldr r2, _0804CDD4 + mov r1, r8 + adds r1, 0x2 + movs r4, 0x6 + ands r1, r4 + lsls r1, 2 + adds r1, r2 + movs r3, 0 + ldrsh r0, [r1, r3] + movs r3, 0x2 + ldrsh r1, [r1, r3] + adds r0, r7, r0 + adds r1, r6, r1 + str r2, [sp, 0x1C] + bl sub_804954C + ldrh r1, [r0] + movs r5, 0x3 + adds r0, r5, 0 + ands r0, r1 + ldr r2, [sp, 0x1C] + cmp r0, 0x1 + bne _0804CDA2 + b _0804CFFC +_0804CDA2: + mov r1, r8 + subs r1, 0x2 + ands r1, r4 + lsls r1, 2 + adds r1, r2 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r3, 0x2 + ldrsh r1, [r1, r3] + adds r0, r7, r0 + adds r1, r6, r1 + bl sub_804954C + ldrh r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0x1 + bne _0804CDC8 + b _0804CFFC +_0804CDC8: + movs r0, 0x3 + bl sub_8084100 + adds r0, 0x3 + str r0, [sp, 0x10] + b _0804CFD4 + .align 2, 0 +_0804CDD4: .4byte gUnknown_80F4448 +_0804CDD8: + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0804CDEC + b _0804CFFC +_0804CDEC: + movs r0, 0x1 + str r0, [sp, 0x14] + adds r4, r7, 0x1 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_804954C + ldrh r1, [r0] + mov r0, r10 + ands r0, r1 + mov r9, r4 + cmp r0, 0x1 + bne _0804CE32 + adds r5, r6, 0x1 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_804954C + ldrh r0, [r0] + mov r4, r10 + ands r4, r0 + cmp r4, 0x1 + bne _0804CE32 + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_804954C + ldrh r0, [r0] + mov r1, r10 + ands r0, r1 + eors r0, r4 + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 + str r1, [sp, 0x14] +_0804CE32: + mov r0, r9 + adds r1, r6, 0 + bl sub_804954C + ldrh r1, [r0] + movs r5, 0x3 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0x1 + bne _0804CE70 + subs r4, r6, 0x1 + mov r0, r9 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0x1 + bne _0804CE70 + adds r0, r7, 0 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0x1 + bne _0804CE70 + movs r2, 0 + str r2, [sp, 0x14] +_0804CE70: + subs r4, r7, 0x1 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_804954C + ldrh r1, [r0] + movs r2, 0x3 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x1 + bne _0804CEB6 + adds r5, r6, 0x1 + adds r0, r4, 0 + adds r1, r5, 0 + str r2, [sp, 0x1C] + bl sub_804954C + ldrh r1, [r0] + ldr r2, [sp, 0x1C] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x1 + bne _0804CEB6 + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_804954C + ldrh r1, [r0] + ldr r2, [sp, 0x1C] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x1 + bne _0804CEB6 + movs r3, 0 + str r3, [sp, 0x14] +_0804CEB6: + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_804954C + ldrh r1, [r0] + movs r2, 0x3 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x1 + bne _0804CEFA + subs r5, r6, 0x1 + adds r0, r4, 0 + adds r1, r5, 0 + str r2, [sp, 0x1C] + bl sub_804954C + ldrh r1, [r0] + ldr r2, [sp, 0x1C] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x1 + bne _0804CEFA + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_804954C + ldrh r1, [r0] + ldr r2, [sp, 0x1C] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x1 + bne _0804CEFA + movs r0, 0 + str r0, [sp, 0x14] +_0804CEFA: + ldr r1, [sp, 0x14] + cmp r1, 0 + beq _0804CF16 + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_8049590 + ldrh r1, [r0] + ldr r3, _0804D018 + adds r2, r3, 0 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] +_0804CF16: + ldr r2, _0804D01C + movs r0, 0x2 + add r0, r8 + mov r9, r0 + movs r1, 0x6 + mov r10, r1 + mov r1, r9 + mov r3, r10 + ands r1, r3 + lsls r1, 2 + adds r1, r2 + movs r3, 0 + ldrsh r0, [r1, r3] + movs r3, 0x2 + ldrsh r1, [r1, r3] + adds r0, r7, r0 + adds r1, r6, r1 + str r2, [sp, 0x1C] + bl sub_804954C + ldrh r1, [r0] + movs r5, 0x3 + adds r0, r5, 0 + ands r0, r1 + ldr r2, [sp, 0x1C] + cmp r0, 0x1 + beq _0804CFFC + mov r4, r8 + subs r4, 0x2 + adds r1, r4, 0 + mov r0, r10 + ands r1, r0 + lsls r1, 2 + adds r1, r2 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r3, 0x2 + ldrsh r1, [r1, r3] + adds r0, r7, r0 + adds r1, r6, r1 + bl sub_804954C + ldrh r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0x1 + beq _0804CFFC + ldr r0, [sp, 0x10] + subs r0, 0x1 + str r0, [sp, 0x10] + cmp r0, 0 + bne _0804CFC0 + movs r0, 0x3 + bl sub_8084100 + adds r0, 0x3 + str r0, [sp, 0x10] + movs r0, 0x64 + bl sub_8084100 + mov r8, r4 + cmp r0, 0x31 + bgt _0804CF96 + mov r8, r9 +_0804CF96: + mov r1, r8 + mov r2, r10 + ands r1, r2 + mov r8, r1 + cmp r7, 0x1F + ble _0804CFAE + ldr r0, _0804D020 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0804CFAE + cmp r1, 0x2 + beq _0804CFFC +_0804CFAE: + cmp r7, 0x2F + ble _0804CFC0 + ldr r0, _0804D020 + ldrb r0, [r0] + cmp r0, 0x2 + bne _0804CFC0 + mov r3, r8 + cmp r3, 0x2 + beq _0804CFFC +_0804CFC0: + ldr r0, _0804D01C + mov r2, r8 + lsls r1, r2, 2 + adds r1, r0 + movs r3, 0 + ldrsh r0, [r1, r3] + adds r7, r0 + movs r2, 0x2 + ldrsh r0, [r1, r2] + adds r6, r0 +_0804CFD4: + cmp r7, 0x1 + ble _0804CFFC + cmp r6, 0x1 + ble _0804CFFC + cmp r7, 0x36 + bgt _0804CFFC + cmp r6, 0x1E + bgt _0804CFFC + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_804954C + ldrh r1, [r0] + movs r3, 0x3 + mov r10, r3 + mov r0, r10 + ands r0, r1 + cmp r0, 0x1 + beq _0804CFFC + b _0804CDD8 +_0804CFFC: + ldr r5, [sp, 0x18] + ldr r0, [sp, 0xC] + cmp r5, r0 + bge _0804D006 + b _0804CC0E +_0804D006: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804D018: .4byte 0x0000fffc +_0804D01C: .4byte gUnknown_80F4448 +_0804D020: .4byte gUnknown_202F1AE + thumb_func_end sub_804CBEC + + thumb_func_start sub_804D024 +sub_804D024: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + mov r8, r1 + adds r5, r2, 0 + adds r6, r3, 0 + movs r4, 0 + cmp r4, r5 + bge _0804D04E + movs r0, 0x38 + adds r1, r5, 0 + bl __divsi3 + adds r2, r7, 0 + adds r1, r5, 0 +_0804D044: + stm r2!, {r4} + adds r4, r0 + subs r1, 0x1 + cmp r1, 0 + bne _0804D044 +_0804D04E: + lsls r0, r5, 2 + adds r0, r7 + str r4, [r0] + movs r4, 0 + lsls r5, r6, 2 + cmp r4, r6 + bge _0804D072 + movs r0, 0x20 + adds r1, r6, 0 + bl __divsi3 + mov r2, r8 + adds r1, r6, 0 +_0804D068: + stm r2!, {r4} + adds r4, r0 + subs r1, 0x1 + cmp r1, 0 + bne _0804D068 +_0804D072: + mov r1, r8 + adds r0, r5, r1 + str r4, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804D024 + + thumb_func_start sub_804D084 +sub_804D084: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r8, r0 + adds r5, r1, 0 + mov r9, r2 + movs r2, 0 + cmp r2, r5 + bge _0804D144 + lsrs r0, r5, 31 + adds r0, r5, r0 + asrs r0, 1 + str r0, [sp] + movs r3, 0 +_0804D0A6: + adds r0, r2, 0x1 + mov r10, r0 + mov r4, r9 + cmp r4, 0 + ble _0804D13E + ldr r6, _0804D0D8 + ldrb r6, [r6] + str r6, [sp, 0x4] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 5 + mov r4, r8 + adds r1, r0, r4 + movs r7, 0 + movs r6, 0x1 + mov r12, r6 + mov r4, r9 +_0804D0C8: + ldr r0, [sp, 0x4] + cmp r0, 0x1 + bne _0804D0DC + ldr r6, [sp] + cmp r2, r6 + blt _0804D0DC + strb r0, [r1, 0x8] + b _0804D102 + .align 2, 0 +_0804D0D8: .4byte gUnknown_202F1AE +_0804D0DC: + ldr r6, _0804D0FC + ldrb r0, [r6] + cmp r0, 0x2 + bne _0804D100 + lsls r0, r5, 1 + adds r0, r5 + cmp r0, 0 + bge _0804D0EE + adds r0, 0x3 +_0804D0EE: + asrs r0, 2 + cmp r2, r0 + blt _0804D100 + mov r0, r12 + strb r0, [r1, 0x8] + b _0804D102 + .align 2, 0 +_0804D0FC: .4byte gUnknown_202F1AE +_0804D100: + strb r3, [r1, 0x8] +_0804D102: + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 5 + add r0, r8 + adds r0, r7, r0 + mov r6, r12 + strb r6, [r0, 0xA] + strb r3, [r0, 0xB] + strb r3, [r0, 0xF] + strb r3, [r0, 0xE] + strb r3, [r0, 0xC] + strb r3, [r0, 0x16] + strb r3, [r0, 0x15] + strb r3, [r0, 0x14] + strb r3, [r0, 0x13] + strb r3, [r0, 0x1A] + strb r3, [r0, 0x19] + strb r3, [r0, 0x18] + strb r3, [r0, 0x17] + strb r3, [r0, 0x9] + strb r3, [r0, 0x11] + strb r3, [r0, 0x10] + strb r3, [r0, 0x12] + strb r3, [r0, 0x1C] + strb r3, [r0, 0x1D] + adds r1, 0x20 + adds r7, 0x20 + subs r4, 0x1 + cmp r4, 0 + bne _0804D0C8 +_0804D13E: + mov r2, r10 + cmp r2, r5 + blt _0804D0A6 +_0804D144: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804D084 + + thumb_func_start sub_804D154 +sub_804D154: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x114 + str r0, [sp, 0x100] + mov r9, r1 + mov r8, r2 + adds r4, r3, 0 + movs r0, 0x3 + bl sub_8084100 + adds r3, r0, 0 + cmp r4, 0 + bge _0804D17E + negs r4, r4 + b _0804D180 +_0804D178: + movs r0, 0x1 + strb r0, [r4, 0xA] + b _0804D2B6 +_0804D17E: + adds r4, r3 +_0804D180: + movs r3, 0 + mov r0, r8 + mov r2, r9 + muls r2, r0 + cmp r3, r4 + bge _0804D19A + movs r1, 0x1 +_0804D18E: + mov r5, sp + adds r0, r5, r3 + strb r1, [r0] + adds r3, 0x1 + cmp r3, r4 + blt _0804D18E +_0804D19A: + cmp r3, 0xFF + bgt _0804D1AC + movs r1, 0 +_0804D1A0: + mov r6, sp + adds r0, r6, r3 + strb r1, [r0] + adds r3, 0x1 + cmp r3, 0xFF + ble _0804D1A0 +_0804D1AC: + adds r5, r2, 0 + movs r6, 0x3F +_0804D1B0: + adds r0, r5, 0 + bl sub_8084100 + adds r4, r0, 0 + adds r0, r5, 0 + bl sub_8084100 + mov r1, sp + adds r2, r1, r4 + ldrb r3, [r2] + adds r1, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + subs r6, 0x1 + cmp r6, 0 + bge _0804D1B0 + movs r3, 0 + ldr r0, _0804D24C + str r3, [r0] + movs r7, 0 + mov r12, r0 + cmp r7, r9 + bge _0804D262 +_0804D1E0: + movs r5, 0 + adds r4, r7, 0x1 + str r4, [sp, 0x104] + cmp r5, r8 + bge _0804D25C + lsls r2, r7, 4 + subs r2, r7 + lsls r2, 5 + ldr r6, [sp, 0x100] + adds r0, r2, r6 + mov r1, r9 + movs r4, 0x1 + ands r1, r4 + str r1, [sp, 0x110] + mov r1, r9 + subs r1, 0x1 + adds r0, 0x20 + mov r10, r0 + adds r0, r6, 0 + adds r0, 0x8 + adds r2, r0 + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 +_0804D210: + ldrb r4, [r2] + cmp r4, 0 + bne _0804D254 + mov r6, r12 + ldr r0, [r6] + cmp r0, 0x1F + ble _0804D220 + strb r4, [r2, 0x2] +_0804D220: + mov r6, sp + adds r0, r6, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _0804D250 + movs r0, 0x1 + strb r0, [r2, 0x2] + mov r6, r12 + ldr r0, [r6] + adds r0, 0x1 + str r0, [r6] + ldr r0, [sp, 0x110] + cmp r0, 0 + beq _0804D252 + cmp r7, r1 + bne _0804D252 + cmp r5, 0x1 + bne _0804D252 + mov r6, r10 + strb r4, [r6, 0xA] + b _0804D252 + .align 2, 0 +_0804D24C: .4byte gUnknown_202F1CC +_0804D250: + strb r0, [r2, 0x2] +_0804D252: + adds r3, 0x1 +_0804D254: + adds r2, 0x20 + adds r5, 0x1 + cmp r5, r8 + blt _0804D210 +_0804D25C: + ldr r7, [sp, 0x104] + cmp r7, r9 + blt _0804D1E0 +_0804D262: + mov r1, r12 + ldr r0, [r1] + cmp r0, 0x1 + bgt _0804D2BC + movs r1, 0 + movs r2, 0 +_0804D26E: + movs r7, 0 + cmp r2, r9 + bge _0804D2AC + movs r6, 0 +_0804D276: + movs r5, 0 + cmp r5, r8 + bge _0804D2A4 + lsls r0, r6, 5 + ldr r3, [sp, 0x100] + adds r4, r0, r3 +_0804D282: + ldrb r0, [r4, 0x8] + cmp r0, 0 + bne _0804D29C + movs r0, 0x64 + str r1, [sp, 0x108] + str r2, [sp, 0x10C] + bl sub_8084100 + ldr r1, [sp, 0x108] + ldr r2, [sp, 0x10C] + cmp r0, 0x3B + bgt _0804D29C + b _0804D178 +_0804D29C: + adds r4, 0x20 + adds r5, 0x1 + cmp r5, r8 + blt _0804D282 +_0804D2A4: + adds r6, 0xF + adds r7, 0x1 + cmp r7, r9 + blt _0804D276 +_0804D2AC: + cmp r2, 0 + bne _0804D2B6 + adds r1, 0x1 + cmp r1, 0xC7 + ble _0804D26E +_0804D2B6: + ldr r1, _0804D2CC + movs r0, 0 + strb r0, [r1] +_0804D2BC: + add sp, 0x114 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804D2CC: .4byte gUnknown_202F1AD + thumb_func_end sub_804D154 + + thumb_func_start sub_804D2D0 +sub_804D2D0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + str r0, [sp] + str r1, [sp, 0x4] + str r2, [sp, 0x8] + str r3, [sp, 0xC] + movs r0, 0 + str r0, [sp, 0x10] + movs r1, 0 + str r1, [sp, 0x14] + cmp r1, r2 + blt _0804D2F2 + b _0804D520 +_0804D2F2: + movs r2, 0 + mov r10, r2 + ldr r3, [sp, 0x14] + adds r3, 0x1 + str r3, [sp, 0x28] + ldr r4, [sp, 0x4] + cmp r10, r4 + blt _0804D304 + b _0804D514 +_0804D304: + ldr r5, [sp, 0x14] + lsls r5, 5 + str r5, [sp, 0x1C] +_0804D30A: + mov r1, r10 + lsls r0, r1, 2 + ldr r2, [sp, 0xC] + adds r0, r2 + ldr r3, [r0] + adds r4, r3, 0x2 + mov r9, r4 + ldr r5, [sp, 0x14] + lsls r1, r5, 2 + ldr r2, [sp, 0x58] + adds r1, r2 + ldr r2, [r1] + adds r4, r2, 0x2 + str r4, [sp, 0x18] + ldr r0, [r0, 0x4] + subs r0, r3 + subs r4, r0, 0x4 + ldr r0, [r1, 0x4] + subs r0, r2 + subs r0, 0x3 + mov r8, r0 + mov r5, r10 + lsls r1, r5, 4 + subs r0, r1, r5 + lsls r0, 5 + ldr r2, [sp] + adds r0, r2 + ldr r3, [sp, 0x1C] + adds r7, r3, r0 + ldrb r0, [r7, 0x8] + str r1, [sp, 0x2C] + adds r5, 0x1 + str r5, [sp, 0x24] + cmp r0, 0 + beq _0804D352 + b _0804D508 +_0804D352: + ldrb r0, [r7, 0xA] + cmp r0, 0 + bne _0804D35A + b _0804D48C +_0804D35A: + movs r0, 0x5 + adds r1, r4, 0 + bl sub_808411C + adds r6, r0, 0 + movs r0, 0x4 + mov r1, r8 + bl sub_808411C + adds r5, r0, 0 + movs r1, 0x1 + adds r0, r6, 0 + orrs r0, r1 + cmp r0, r4 + bge _0804D37A + adds r6, r0, 0 +_0804D37A: + adds r0, r5, 0 + orrs r0, r1 + cmp r0, r8 + bge _0804D384 + adds r5, r0, 0 +_0804D384: + lsls r0, r5, 1 + adds r0, r5 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r6, r0 + ble _0804D394 + adds r6, r0, 0 +_0804D394: + lsls r0, r6, 1 + adds r0, r6 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r5, r0 + ble _0804D3A4 + adds r5, r0, 0 +_0804D3A4: + subs r0, r4, r6 + bl sub_8084100 + adds r4, r0, 0 + add r4, r9 + mov r1, r8 + subs r0, r1, r5 + bl sub_8084100 + ldr r2, [sp, 0x18] + adds r0, r2 + mov r8, r0 + adds r3, r4, r6 + adds r6, r0, r5 + strh r4, [r7] + strh r3, [r7, 0x4] + mov r5, r8 + strh r5, [r7, 0x2] + strh r6, [r7, 0x6] + ldr r0, [sp, 0x10] + adds r0, 0x1 + str r0, [sp, 0x20] + cmp r4, r3 + bge _0804D412 +_0804D3D4: + mov r5, r8 + adds r7, r4, 0x1 + cmp r5, r6 + bge _0804D40C + ldr r1, _0804D484 + mov r9, r1 +_0804D3E0: + adds r0, r4, 0 + adds r1, r5, 0 + str r3, [sp, 0x34] + bl sub_8049590 + ldrh r1, [r0] + mov r2, r9 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8049590 + mov r1, sp + ldrb r1, [r1, 0x10] + strb r1, [r0, 0x9] + adds r5, 0x1 + ldr r3, [sp, 0x34] + cmp r5, r6 + blt _0804D3E0 +_0804D40C: + adds r4, r7, 0 + cmp r4, r3 + blt _0804D3D4 +_0804D412: + movs r5, 0x1 + movs r0, 0x64 + bl sub_8084100 + movs r1, 0 + cmp r0, 0x4F + bgt _0804D422 + movs r1, 0x1 +_0804D422: + adds r4, r1, 0 + ldr r0, _0804D488 + ldr r0, [r0] + cmp r0, 0 + bne _0804D42E + movs r4, 0 +_0804D42E: + movs r0, 0x4 + ldr r2, [sp, 0x5C] + ands r0, r2 + cmp r0, 0 + bne _0804D43A + movs r5, 0 +_0804D43A: + cmp r5, 0 + beq _0804D466 + cmp r4, 0 + beq _0804D44E + movs r0, 0x64 + bl sub_8084100 + cmp r0, 0x31 + ble _0804D466 + movs r4, 0 +_0804D44E: + cmp r5, 0 + beq _0804D466 + ldr r3, [sp, 0x2C] + mov r5, r10 + subs r0, r3, r5 + lsls r0, 5 + ldr r1, [sp] + adds r0, r1 + ldr r2, [sp, 0x1C] + adds r0, r2, r0 + movs r1, 0x1 + strb r1, [r0, 0x1C] +_0804D466: + cmp r4, 0 + beq _0804D47E + ldr r3, [sp, 0x2C] + mov r4, r10 + subs r0, r3, r4 + lsls r0, 5 + ldr r5, [sp] + adds r0, r5 + ldr r1, [sp, 0x1C] + adds r0, r1, r0 + movs r1, 0x1 + strb r1, [r0, 0x1D] +_0804D47E: + ldr r2, [sp, 0x20] + str r2, [sp, 0x10] + b _0804D508 + .align 2, 0 +_0804D484: .4byte 0x0000fffc +_0804D488: .4byte gUnknown_202F1C8 +_0804D48C: + movs r1, 0x2 + movs r3, 0x4 + movs r6, 0x2 + movs r2, 0x4 + mov r5, r10 + cmp r5, 0 + bne _0804D49C + movs r1, 0x1 +_0804D49C: + ldr r0, [sp, 0x14] + cmp r0, 0 + bne _0804D4A4 + movs r6, 0x1 +_0804D4A4: + ldr r0, [sp, 0x4] + subs r0, 0x1 + cmp r10, r0 + bne _0804D4AE + movs r3, 0x2 +_0804D4AE: + ldr r0, [sp, 0x8] + subs r0, 0x1 + ldr r5, [sp, 0x14] + cmp r5, r0 + bne _0804D4BA + movs r2, 0x2 +_0804D4BA: + mov r5, r9 + adds r0, r5, r1 + adds r1, r5, r4 + subs r1, r3 + str r2, [sp, 0x30] + bl sub_808411C + adds r5, r0, 0 + ldr r1, [sp, 0x18] + adds r0, r1, r6 + add r1, r8 + ldr r2, [sp, 0x30] + subs r1, r2 + bl sub_808411C + adds r4, r0, 0 + strh r5, [r7] + adds r0, r5, 0x1 + strh r0, [r7, 0x4] + strh r4, [r7, 0x2] + adds r0, r4, 0x1 + strh r0, [r7, 0x6] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r1, [r0] + ldr r3, _0804D530 + adds r2, r3, 0 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0xFE + strb r1, [r0, 0x9] +_0804D508: + ldr r4, [sp, 0x24] + mov r10, r4 + ldr r5, [sp, 0x4] + cmp r10, r5 + bge _0804D514 + b _0804D30A +_0804D514: + ldr r0, [sp, 0x28] + str r0, [sp, 0x14] + ldr r1, [sp, 0x8] + cmp r0, r1 + bge _0804D520 + b _0804D2F2 +_0804D520: + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804D530: .4byte 0x0000fffc + thumb_func_end sub_804D2D0 + + thumb_func_start sub_804D534 +sub_804D534: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + adds r3, r0, 0 + adds r7, r1, 0 + mov r9, r2 + movs r1, 0 + cmp r1, r9 + bge _0804D5A0 +_0804D54A: + adds r0, r1, 0x1 + mov r8, r0 + cmp r7, 0 + ble _0804D59A + lsls r1, 5 + adds r0, r1, 0 + adds r0, 0x8 + adds r4, r3, r0 + adds r5, r3, r1 + adds r6, r7, 0 +_0804D55E: + ldrb r0, [r4] + cmp r0, 0 + bne _0804D58C + ldrb r0, [r4, 0x6] + cmp r0, 0 + bne _0804D58C + ldrb r0, [r4, 0xA] + cmp r0, 0 + bne _0804D58C + ldrb r0, [r4, 0x2] + cmp r0, 0 + beq _0804D58C + ldrb r0, [r4, 0x14] + cmp r0, 0 + bne _0804D58C + ldrb r0, [r4, 0x15] + cmp r0, 0 + beq _0804D58C + adds r0, r5, 0 + str r3, [sp] + bl sub_804F694 + ldr r3, [sp] +_0804D58C: + movs r0, 0xF0 + lsls r0, 1 + adds r4, r0 + adds r5, r0 + subs r6, 0x1 + cmp r6, 0 + bne _0804D55E +_0804D59A: + mov r1, r8 + cmp r1, r9 + blt _0804D54A +_0804D5A0: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804D534 + + thumb_func_start sub_804D5B0 +sub_804D5B0: + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x8 + mov r9, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + adds r0, r4, 0 + bl sub_8084100 + mov r8, r0 + adds r0, r5, 0 + bl sub_8084100 + str r0, [sp] + str r6, [sp, 0x4] + mov r0, r9 + adds r1, r4, 0 + adds r2, r5, 0 + mov r3, r8 + bl sub_804D5F0 + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_804D5B0 + + thumb_func_start sub_804D5F0 +sub_804D5F0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + str r0, [sp] + str r1, [sp, 0x4] + str r2, [sp, 0x8] + adds r7, r3, 0 + ldr r6, [sp, 0x40] + ldr r0, [sp, 0x44] + ldrb r0, [r0, 0x5] + str r0, [sp, 0xC] + movs r0, 0x4 + bl sub_8084100 + adds r5, r0, 0 + movs r1, 0 + mov r10, r1 + ldr r2, [sp, 0xC] + cmp r10, r2 + blt _0804D620 + b _0804D726 +_0804D620: + lsls r4, r6, 5 + mov r9, r4 + lsls r0, r7, 4 + subs r0, r7 + lsls r0, 5 + ldr r1, [sp] + adds r0, r1 + mov r8, r0 +_0804D630: + movs r0, 0x8 + bl sub_8084100 + adds r4, r0, 0 + movs r0, 0x4 + bl sub_8084100 + cmp r4, 0x3 + bgt _0804D644 + adds r5, r0, 0 +_0804D644: + mov r4, r10 + adds r4, 0x1 +_0804D648: + movs r1, 0 + movs r0, 0x3 + ands r0, r5 + cmp r0, 0x1 + beq _0804D670 + cmp r0, 0x1 + bgt _0804D65C + cmp r0, 0 + beq _0804D666 + b _0804D686 +_0804D65C: + cmp r0, 0x2 + beq _0804D676 + cmp r0, 0x3 + beq _0804D67C + b _0804D686 +_0804D666: + ldr r0, [sp, 0x4] + subs r0, 0x1 + cmp r7, r0 + blt _0804D68A + b _0804D684 +_0804D670: + cmp r6, 0 + bgt _0804D68A + b _0804D684 +_0804D676: + cmp r7, 0 + bgt _0804D68A + b _0804D684 +_0804D67C: + ldr r0, [sp, 0x8] + subs r0, 0x1 + cmp r6, r0 + blt _0804D68A +_0804D684: + adds r5, 0x1 +_0804D686: + cmp r1, 0 + beq _0804D648 +_0804D68A: + movs r1, 0x3 + ands r1, r5 + cmp r1, 0x1 + beq _0804D6C6 + cmp r1, 0x1 + bgt _0804D69C + cmp r1, 0 + beq _0804D6A6 + b _0804D71E +_0804D69C: + cmp r1, 0x2 + beq _0804D6E2 + cmp r1, 0x3 + beq _0804D704 + b _0804D71E +_0804D6A6: + mov r1, r9 + add r1, r8 + movs r0, 0xF0 + lsls r0, 1 + adds r2, r1, r0 + ldrb r0, [r2, 0x8] + cmp r0, 0 + bne _0804D71E + movs r0, 0x1 + strb r0, [r1, 0x16] + strb r0, [r2, 0x15] + movs r1, 0xF0 + lsls r1, 1 + add r8, r1 + adds r7, 0x1 + b _0804D71E +_0804D6C6: + mov r2, r9 + add r2, r8 + adds r3, r2, 0 + subs r3, 0x20 + ldrb r0, [r3, 0x8] + cmp r0, 0 + bne _0804D71E + strb r1, [r2, 0x13] + strb r1, [r3, 0x14] + movs r2, 0x20 + negs r2, r2 + add r9, r2 + subs r6, 0x1 + b _0804D71E +_0804D6E2: + mov r1, r9 + add r1, r8 + ldr r0, _0804D700 + adds r2, r1, r0 + ldrb r0, [r2, 0x8] + cmp r0, 0 + bne _0804D71E + movs r0, 0x1 + strb r0, [r1, 0x15] + strb r0, [r2, 0x16] + ldr r1, _0804D700 + add r8, r1 + subs r7, 0x1 + b _0804D71E + .align 2, 0 +_0804D700: .4byte 0xfffffe20 +_0804D704: + mov r1, r9 + add r1, r8 + adds r2, r1, 0 + adds r2, 0x20 + ldrb r0, [r2, 0x8] + cmp r0, 0 + bne _0804D71E + movs r0, 0x1 + strb r0, [r1, 0x14] + strb r0, [r2, 0x13] + movs r1, 0x20 + add r9, r1 + adds r6, 0x1 +_0804D71E: + mov r10, r4 + ldr r2, [sp, 0xC] + cmp r10, r2 + blt _0804D630 +_0804D726: + ldr r4, [sp, 0x44] + ldrb r0, [r4, 0xB] + cmp r0, 0 + beq _0804D730 + b _0804D8B8 +_0804D730: + movs r0, 0 + mov r9, r0 + movs r7, 0 + ldr r1, [sp, 0x4] + cmp r9, r1 + blt _0804D73E + b _0804D8B0 +_0804D73E: + movs r2, 0x1 + mov r8, r2 +_0804D742: + movs r6, 0 + adds r4, r7, 0x1 + str r4, [sp, 0x14] + ldr r0, [sp, 0x8] + cmp r6, r0 + blt _0804D750 + b _0804D8A6 +_0804D750: + lsls r1, r7, 4 + str r1, [sp, 0x10] + subs r0, r1, r7 + lsls r0, 5 + ldr r2, [sp] + adds r3, r0, r2 +_0804D75C: + lsls r0, r6, 5 + adds r2, r0, r3 + ldrb r1, [r2, 0x8] + adds r4, r0, 0 + adds r0, r6, 0x1 + str r0, [sp, 0x18] + cmp r1, 0 + beq _0804D76E + b _0804D89C +_0804D76E: + ldrb r0, [r2, 0xA] + cmp r0, 0 + beq _0804D776 + b _0804D89C +_0804D776: + ldrb r0, [r2, 0x13] + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 + ldrb r0, [r2, 0x14] + cmp r0, 0 + beq _0804D786 + adds r1, 0x1 +_0804D786: + ldrb r0, [r2, 0x15] + cmp r0, 0 + beq _0804D78E + adds r1, 0x1 +_0804D78E: + ldrb r0, [r2, 0x16] + cmp r0, 0 + beq _0804D796 + adds r1, 0x1 +_0804D796: + cmp r1, 0x1 + beq _0804D79C + b _0804D89C +_0804D79C: + movs r0, 0x4 + str r3, [sp, 0x1C] + bl sub_8084100 + adds r5, r0, 0 + movs r2, 0 + mov r10, r2 + ldr r1, [sp, 0x10] + subs r0, r1, r7 + lsls r0, 5 + ldr r1, [sp] + adds r0, r1 + adds r1, r4, r0 + ldr r3, [sp, 0x1C] +_0804D7B8: + movs r0, 0x3 + ands r0, r5 + cmp r0, 0x1 + beq _0804D7E0 + cmp r0, 0x1 + bgt _0804D7CA + cmp r0, 0 + beq _0804D7D4 + b _0804D800 +_0804D7CA: + cmp r0, 0x2 + beq _0804D7E8 + cmp r0, 0x3 + beq _0804D7F0 + b _0804D800 +_0804D7D4: + ldr r0, [sp, 0x4] + subs r0, 0x1 + cmp r7, r0 + bge _0804D7FE + ldrb r0, [r1, 0x16] + b _0804D7FA +_0804D7E0: + cmp r6, 0 + ble _0804D7FE + ldrb r0, [r1, 0x13] + b _0804D7FA +_0804D7E8: + cmp r7, 0 + ble _0804D7FE + ldrb r0, [r1, 0x15] + b _0804D7FA +_0804D7F0: + ldr r0, [sp, 0x8] + subs r0, 0x1 + cmp r6, r0 + bge _0804D7FE + ldrb r0, [r1, 0x14] +_0804D7FA: + cmp r0, 0 + beq _0804D80E +_0804D7FE: + adds r5, 0x1 +_0804D800: + mov r0, r10 + cmp r0, 0 + bne _0804D80E + adds r2, 0x1 + cmp r2, 0x7 + ble _0804D7B8 + b _0804D89C +_0804D80E: + movs r2, 0x3 + ands r2, r5 + cmp r2, 0x1 + beq _0804D844 + cmp r2, 0x1 + bgt _0804D820 + cmp r2, 0 + beq _0804D82A + b _0804D89C +_0804D820: + cmp r2, 0x2 + beq _0804D85C + cmp r2, 0x3 + beq _0804D880 + b _0804D89C +_0804D82A: + adds r1, r4, r3 + movs r4, 0xF0 + lsls r4, 1 + adds r2, r1, r4 + ldrb r0, [r2, 0x8] + cmp r0, 0 + bne _0804D89C + mov r0, r8 + strb r0, [r1, 0x16] + strb r0, [r2, 0x15] + movs r1, 0x1 + mov r9, r1 + b _0804D89C +_0804D844: + adds r1, r4, r3 + movs r4, 0xF0 + lsls r4, 1 + adds r0, r1, r4 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _0804D89C + strb r2, [r1, 0x13] + adds r0, r1, 0 + subs r0, 0x20 + strb r2, [r0, 0x14] + b _0804D898 +_0804D85C: + adds r1, r4, r3 + movs r2, 0xF0 + lsls r2, 1 + adds r0, r1, r2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _0804D89C + mov r4, r8 + strb r4, [r1, 0x15] + ldr r2, _0804D87C + adds r0, r1, r2 + strb r4, [r0, 0x16] + movs r4, 0x1 + mov r9, r4 + b _0804D89C + .align 2, 0 +_0804D87C: .4byte 0xfffffe20 +_0804D880: + adds r1, r4, r3 + movs r2, 0xF0 + lsls r2, 1 + adds r0, r1, r2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _0804D89C + mov r4, r8 + strb r4, [r1, 0x14] + adds r0, r1, 0 + adds r0, 0x20 + strb r4, [r0, 0x13] +_0804D898: + movs r0, 0x1 + mov r9, r0 +_0804D89C: + ldr r6, [sp, 0x18] + ldr r1, [sp, 0x8] + cmp r6, r1 + bge _0804D8A6 + b _0804D75C +_0804D8A6: + ldr r7, [sp, 0x14] + ldr r2, [sp, 0x4] + cmp r7, r2 + bge _0804D8B0 + b _0804D742 +_0804D8B0: + mov r4, r9 + cmp r4, 0 + beq _0804D8B8 + b _0804D730 +_0804D8B8: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804D5F0 + + thumb_func_start sub_804D8C8 +sub_804D8C8: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x58 + str r0, [sp, 0xC] + str r1, [sp, 0x10] + str r2, [sp, 0x14] + str r3, [sp, 0x18] + ldr r0, [sp, 0x7C] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x1C] + movs r0, 0 + str r0, [sp, 0x20] + cmp r0, r1 + bge _0804D968 +_0804D8EC: + movs r1, 0 + mov r10, r1 + ldr r2, [sp, 0x20] + adds r2, 0x1 + str r2, [sp, 0x38] + ldr r3, [sp, 0x14] + cmp r10, r3 + bge _0804D95E + ldr r4, [sp, 0x20] + lsls r1, r4, 4 + subs r1, r4 + movs r3, 0 + lsls r1, 5 + ldr r0, [sp, 0xC] + adds r0, 0x8 + adds r1, r0 +_0804D90C: + ldrb r2, [r1] + cmp r2, 0 + beq _0804D91C + strb r3, [r1, 0xF] + strb r3, [r1, 0x10] + strb r3, [r1, 0x11] + strb r3, [r1, 0x12] + b _0804D952 +_0804D91C: + ldr r5, [sp, 0x20] + cmp r5, 0 + bgt _0804D924 + strb r2, [r1, 0xD] +_0804D924: + mov r6, r10 + cmp r6, 0 + bgt _0804D92C + strb r2, [r1, 0xB] +_0804D92C: + ldr r0, [sp, 0x10] + subs r0, 0x1 + ldr r7, [sp, 0x20] + cmp r7, r0 + blt _0804D938 + strb r2, [r1, 0xE] +_0804D938: + ldr r0, [sp, 0x14] + subs r0, 0x1 + cmp r10, r0 + blt _0804D942 + strb r2, [r1, 0xC] +_0804D942: + ldrb r0, [r1, 0xB] + strb r0, [r1, 0xF] + ldrb r0, [r1, 0xC] + strb r0, [r1, 0x10] + ldrb r0, [r1, 0xD] + strb r0, [r1, 0x11] + ldrb r0, [r1, 0xE] + strb r0, [r1, 0x12] +_0804D952: + adds r1, 0x20 + movs r0, 0x1 + add r10, r0 + ldr r2, [sp, 0x14] + cmp r10, r2 + blt _0804D90C +_0804D95E: + ldr r3, [sp, 0x38] + str r3, [sp, 0x20] + ldr r4, [sp, 0x10] + cmp r3, r4 + blt _0804D8EC +_0804D968: + movs r5, 0 + str r5, [sp, 0x20] + ldr r6, [sp, 0x10] + cmp r5, r6 + blt _0804D974 + b _0804DBC6 +_0804D974: + movs r7, 0 + mov r10, r7 + ldr r0, [sp, 0x20] + adds r0, 0x1 + str r0, [sp, 0x38] + ldr r1, [sp, 0x14] + cmp r10, r1 + blt _0804D986 + b _0804DBBA +_0804D986: + ldr r2, [sp, 0x20] + lsls r2, 4 + str r2, [sp, 0x40] + ldr r3, [sp, 0x20] + subs r1, r2, r3 + lsls r1, 5 + movs r4, 0 + str r4, [sp, 0x48] + ldr r5, [sp, 0xC] + movs r6, 0xF0 + lsls r6, 1 + adds r0, r5, r6 + adds r0, r1 + mov r8, r0 + adds r5, r1, r5 + ldr r7, [sp, 0xC] + ldr r2, _0804DA0C + adds r0, r7, r2 + adds r7, r1, r0 + ldr r3, [sp, 0x78] + str r3, [sp, 0x4C] + ldr r0, [sp, 0xC] + adds r0, 0x20 + adds r0, r1, r0 + str r0, [sp, 0x50] + ldr r0, [sp, 0xC] + subs r0, 0x20 + adds r6, r1, r0 + ldr r4, [sp, 0x20] + lsls r0, r4, 2 + ldr r1, [sp, 0x18] + adds r0, r1 + str r0, [sp, 0x24] +_0804D9C8: + ldr r2, [sp, 0x20] + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 5 + ldr r3, [sp, 0xC] + adds r0, r3 + ldr r1, [sp, 0x48] + adds r4, r1, r0 + ldrb r0, [r4, 0x8] + cmp r0, 0 + beq _0804D9E0 + b _0804DB92 +_0804D9E0: + ldrb r0, [r4, 0xA] + cmp r0, 0 + beq _0804DA10 + movs r2, 0 + ldrsh r0, [r4, r2] + adds r0, 0x1 + movs r3, 0x4 + ldrsh r1, [r4, r3] + subs r1, 0x1 + bl sub_808411C + mov r9, r0 + movs r1, 0x2 + ldrsh r0, [r4, r1] + adds r0, 0x1 + movs r2, 0x6 + ldrsh r1, [r4, r2] + subs r1, 0x1 + bl sub_808411C + adds r4, r0, 0 + b _0804DA1A + .align 2, 0 +_0804DA0C: .4byte 0xfffffe20 +_0804DA10: + movs r0, 0 + ldrsh r3, [r4, r0] + mov r9, r3 + movs r1, 0x2 + ldrsh r4, [r4, r1] +_0804DA1A: + ldrb r0, [r5, 0x17] + cmp r0, 0 + beq _0804DA74 + ldrb r0, [r6, 0x8] + cmp r0, 0 + bne _0804DA68 + ldrb r0, [r6, 0xA] + cmp r0, 0 + beq _0804DA40 + movs r2, 0 + ldrsh r0, [r6, r2] + adds r0, 0x1 + movs r3, 0x4 + ldrsh r1, [r6, r3] + subs r1, 0x1 + bl sub_808411C + adds r2, r0, 0 + b _0804DA44 +_0804DA40: + movs r0, 0 + ldrsh r2, [r6, r0] +_0804DA44: + movs r3, 0x2 + ldrsh r1, [r5, r3] + movs r0, 0x6 + ldrsh r3, [r6, r0] + subs r3, 0x1 + mov r12, r3 + movs r3, 0x1 + str r3, [sp] + ldr r3, [sp, 0x24] + ldr r0, [r3] + str r0, [sp, 0x4] + ldr r3, [sp, 0x4C] + ldr r0, [r3] + str r0, [sp, 0x8] + mov r0, r9 + mov r3, r12 + bl sub_804E328 +_0804DA68: + movs r0, 0 + strb r0, [r5, 0x17] + strb r0, [r6, 0x18] + movs r1, 0x1 + strb r1, [r5, 0xB] + strb r1, [r6, 0xB] +_0804DA74: + ldrb r0, [r5, 0x18] + cmp r0, 0 + beq _0804DAD4 + ldr r2, [sp, 0x50] + ldrb r0, [r2, 0x8] + cmp r0, 0 + bne _0804DAC6 + ldrb r0, [r2, 0xA] + cmp r0, 0 + beq _0804DA9C + movs r3, 0x20 + ldrsh r0, [r5, r3] + adds r0, 0x1 + movs r2, 0x24 + ldrsh r1, [r5, r2] + subs r1, 0x1 + bl sub_808411C + adds r2, r0, 0 + b _0804DAA0 +_0804DA9C: + movs r3, 0x20 + ldrsh r2, [r5, r3] +_0804DAA0: + movs r0, 0x6 + ldrsh r1, [r5, r0] + subs r1, 0x1 + movs r0, 0x22 + ldrsh r3, [r5, r0] + mov r12, r3 + movs r3, 0x1 + str r3, [sp] + ldr r3, [sp, 0x24] + ldr r0, [r3] + str r0, [sp, 0x4] + ldr r3, [sp, 0x4C] + ldr r0, [r3, 0x4] + subs r0, 0x1 + str r0, [sp, 0x8] + mov r0, r9 + mov r3, r12 + bl sub_804E328 +_0804DAC6: + movs r0, 0 + strb r0, [r5, 0x18] + ldr r1, [sp, 0x50] + strb r0, [r1, 0x17] + movs r2, 0x1 + strb r2, [r5, 0xB] + strb r2, [r1, 0xB] +_0804DAD4: + ldrb r0, [r5, 0x19] + cmp r0, 0 + beq _0804DB2E + ldrb r0, [r7, 0x8] + cmp r0, 0 + bne _0804DB22 + ldrb r0, [r7, 0xA] + cmp r0, 0 + beq _0804DAFA + movs r3, 0x2 + ldrsh r0, [r7, r3] + adds r0, 0x1 + movs r2, 0x6 + ldrsh r1, [r7, r2] + subs r1, 0x1 + bl sub_808411C + adds r3, r0, 0 + b _0804DAFE +_0804DAFA: + movs r0, 0x2 + ldrsh r3, [r7, r0] +_0804DAFE: + movs r1, 0 + ldrsh r0, [r5, r1] + movs r1, 0 + ldrsh r2, [r7, r1] + subs r2, 0x1 + mov r9, r2 + movs r2, 0 + str r2, [sp] + ldr r2, [sp, 0x24] + ldr r1, [r2] + str r1, [sp, 0x4] + ldr r2, [sp, 0x4C] + ldr r1, [r2] + str r1, [sp, 0x8] + adds r1, r4, 0 + mov r2, r9 + bl sub_804E328 +_0804DB22: + movs r3, 0 + strb r3, [r5, 0x19] + strb r3, [r7, 0x1A] + movs r0, 0x1 + strb r0, [r5, 0xB] + strb r0, [r7, 0xB] +_0804DB2E: + ldrb r0, [r5, 0x1A] + cmp r0, 0 + beq _0804DB92 + mov r1, r8 + ldrb r0, [r1, 0x8] + cmp r0, 0 + bne _0804DB84 + ldrb r0, [r1, 0xA] + cmp r0, 0 + beq _0804DB56 + movs r2, 0x2 + ldrsh r0, [r1, r2] + adds r0, 0x1 + movs r3, 0x6 + ldrsh r1, [r1, r3] + subs r1, 0x1 + bl sub_808411C + adds r3, r0, 0 + b _0804DB5C +_0804DB56: + mov r0, r8 + movs r1, 0x2 + ldrsh r3, [r0, r1] +_0804DB5C: + movs r2, 0x4 + ldrsh r0, [r5, r2] + subs r0, 0x1 + mov r1, r8 + movs r2, 0 + ldrsh r1, [r1, r2] + mov r9, r1 + movs r1, 0 + str r1, [sp] + ldr r2, [sp, 0x24] + ldr r1, [r2, 0x4] + subs r1, 0x1 + str r1, [sp, 0x4] + ldr r2, [sp, 0x4C] + ldr r1, [r2] + str r1, [sp, 0x8] + adds r1, r4, 0 + mov r2, r9 + bl sub_804E328 +_0804DB84: + movs r3, 0 + strb r3, [r5, 0x1A] + mov r4, r8 + strb r3, [r4, 0x19] + movs r0, 0x1 + strb r0, [r5, 0xB] + strb r0, [r4, 0xB] +_0804DB92: + ldr r1, [sp, 0x48] + adds r1, 0x20 + str r1, [sp, 0x48] + movs r2, 0x20 + add r8, r2 + adds r5, 0x20 + adds r7, 0x20 + ldr r3, [sp, 0x4C] + adds r3, 0x4 + str r3, [sp, 0x4C] + ldr r4, [sp, 0x50] + adds r4, 0x20 + str r4, [sp, 0x50] + adds r6, 0x20 + movs r0, 0x1 + add r10, r0 + ldr r1, [sp, 0x14] + cmp r10, r1 + bge _0804DBBA + b _0804D9C8 +_0804DBBA: + ldr r2, [sp, 0x38] + str r2, [sp, 0x20] + ldr r3, [sp, 0x10] + cmp r2, r3 + bge _0804DBC6 + b _0804D974 +_0804DBC6: + ldr r4, [sp, 0x1C] + cmp r4, 0 + beq _0804DBCE + b _0804E026 +_0804DBCE: + movs r5, 0 + str r5, [sp, 0x20] + ldr r6, [sp, 0x10] + cmp r5, r6 + blt _0804DBDA + b _0804E026 +_0804DBDA: + movs r7, 0 + mov r10, r7 + ldr r0, [sp, 0x20] + adds r0, 0x1 + str r0, [sp, 0x38] + ldr r1, [sp, 0x14] + cmp r10, r1 + blt _0804DBEC + b _0804E018 +_0804DBEC: + movs r0, 0x64 + bl sub_8084100 + mov r2, r10 + adds r2, 0x1 + str r2, [sp, 0x3C] + cmp r0, 0x4 + ble _0804DBFE + b _0804E00C +_0804DBFE: + mov r3, r10 + lsls r1, r3, 5 + ldr r4, [sp, 0x20] + lsls r2, r4, 4 + subs r0, r2, r4 + lsls r0, 5 + ldr r5, [sp, 0xC] + adds r0, r5 + adds r4, r1, r0 + ldrb r0, [r4, 0x8] + str r1, [sp, 0x44] + str r2, [sp, 0x40] + cmp r0, 0 + beq _0804DC1C + b _0804E00C +_0804DC1C: + ldrb r0, [r4, 0xB] + cmp r0, 0 + bne _0804DC24 + b _0804E00C +_0804DC24: + ldrb r0, [r4, 0x12] + cmp r0, 0 + beq _0804DC2C + b _0804E00C +_0804DC2C: + ldrb r0, [r4, 0x9] + cmp r0, 0 + beq _0804DC34 + b _0804E00C +_0804DC34: + ldrb r0, [r4, 0xA] + cmp r0, 0 + bne _0804DC3C + b _0804E00C +_0804DC3C: + movs r0, 0x4 + bl sub_8084100 + cmp r0, 0x1 + bne _0804DC48 + b _0804DD50 +_0804DC48: + cmp r0, 0x1 + bgt _0804DC52 + cmp r0, 0 + beq _0804DC60 + b _0804E00C +_0804DC52: + cmp r0, 0x2 + bne _0804DC58 + b _0804DE3C +_0804DC58: + cmp r0, 0x3 + bne _0804DC5E + b _0804DF30 +_0804DC5E: + b _0804E00C +_0804DC60: + ldr r6, [sp, 0x20] + cmp r6, 0 + bgt _0804DC68 + b _0804E00C +_0804DC68: + ldr r7, _0804DD48 + adds r2, r4, r7 + ldrb r0, [r2, 0xB] + cmp r0, 0 + bne _0804DC74 + b _0804E00C +_0804DC74: + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0804DC7C + b _0804E00C +_0804DC7C: + ldrb r0, [r2, 0xA] + cmp r0, 0 + bne _0804DC84 + b _0804E00C +_0804DC84: + ldrb r0, [r2, 0x9] + cmp r0, 0 + beq _0804DC8C + b _0804E00C +_0804DC8C: + ldrb r0, [r2, 0x12] + cmp r0, 0 + beq _0804DC94 + b _0804E00C +_0804DC94: + movs r1, 0 + ldrsh r0, [r2, r1] + str r0, [sp, 0x28] + ldrh r3, [r4, 0x2] + movs r5, 0x2 + ldrsh r1, [r4, r5] + ldrh r5, [r2, 0x2] + movs r6, 0x2 + ldrsh r0, [r2, r6] + cmp r1, r0 + ble _0804DCAC + adds r3, r5, 0 +_0804DCAC: + lsls r0, r3, 16 + asrs r0, 16 + mov r9, r0 + movs r0, 0x4 + ldrsh r7, [r4, r0] + mov r10, r7 + ldrh r3, [r4, 0x6] + movs r5, 0x6 + ldrsh r1, [r4, r5] + ldrh r5, [r2, 0x6] + movs r6, 0x6 + ldrsh r0, [r2, r6] + cmp r1, r0 + bge _0804DCCA + adds r3, r5, 0 +_0804DCCA: + lsls r0, r3, 16 + asrs r7, r0, 16 + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl sub_804954C + ldrb r0, [r0, 0x9] + mov r8, r0 + ldr r5, [sp, 0x28] + cmp r5, r10 + bge _0804DD16 +_0804DCE4: + mov r4, r9 + adds r6, r5, 0x1 + cmp r9, r7 + bge _0804DD10 + ldr r0, _0804DD4C + adds r3, r0, 0 +_0804DCF0: + adds r0, r5, 0 + adds r1, r4, 0 + str r3, [sp, 0x54] + bl sub_8049590 + ldrh r1, [r0] + ldr r3, [sp, 0x54] + ands r1, r3 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + mov r1, r8 + strb r1, [r0, 0x9] + adds r4, 0x1 + cmp r4, r7 + blt _0804DCF0 +_0804DD10: + adds r5, r6, 0 + cmp r5, r10 + blt _0804DCE4 +_0804DD16: + ldr r2, [sp, 0x40] + ldr r3, [sp, 0x20] + subs r0, r2, r3 + lsls r0, 5 + ldr r4, [sp, 0xC] + adds r0, r4 + ldr r5, [sp, 0x44] + adds r0, r5, r0 + ldr r6, _0804DD48 + adds r3, r0, r6 + mov r1, sp + ldrh r1, [r1, 0x28] + strh r1, [r3] + mov r2, r10 + strh r2, [r3, 0x4] + mov r4, r9 + strh r4, [r3, 0x2] + strh r7, [r3, 0x6] + movs r5, 0x1 + strb r5, [r0, 0x12] + strb r5, [r3, 0x12] + movs r6, 0 + strb r6, [r0, 0xB] + strb r5, [r0, 0x11] + b _0804E00C + .align 2, 0 +_0804DD48: .4byte 0xfffffe20 +_0804DD4C: .4byte 0x0000fffc +_0804DD50: + mov r7, r10 + cmp r7, 0 + bgt _0804DD58 + b _0804E00C +_0804DD58: + adds r2, r4, 0 + subs r2, 0x20 + ldrb r0, [r2, 0xB] + cmp r0, 0 + bne _0804DD64 + b _0804E00C +_0804DD64: + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0804DD6C + b _0804E00C +_0804DD6C: + ldrb r0, [r2, 0xA] + cmp r0, 0 + bne _0804DD74 + b _0804E00C +_0804DD74: + ldrb r0, [r2, 0x9] + cmp r0, 0 + beq _0804DD7C + b _0804E00C +_0804DD7C: + ldrb r0, [r2, 0x12] + cmp r0, 0 + beq _0804DD84 + b _0804E00C +_0804DD84: + ldrh r3, [r4] + movs r0, 0 + ldrsh r1, [r4, r0] + ldrh r5, [r2] + movs r6, 0 + ldrsh r0, [r2, r6] + cmp r1, r0 + ble _0804DD96 + adds r3, r5, 0 +_0804DD96: + lsls r0, r3, 16 + asrs r0, 16 + str r0, [sp, 0x2C] + movs r0, 0x2 + ldrsh r7, [r2, r0] + mov r10, r7 + ldrh r3, [r4, 0x4] + movs r5, 0x4 + ldrsh r1, [r4, r5] + ldrh r5, [r2, 0x4] + movs r6, 0x4 + ldrsh r0, [r2, r6] + cmp r1, r0 + bge _0804DDB4 + adds r3, r5, 0 +_0804DDB4: + lsls r0, r3, 16 + asrs r0, 16 + mov r8, r0 + movs r0, 0x6 + ldrsh r7, [r4, r0] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl sub_804954C + ldrb r0, [r0, 0x9] + mov r9, r0 + ldr r5, [sp, 0x2C] + cmp r5, r8 + bge _0804DE06 +_0804DDD4: + mov r4, r10 + adds r6, r5, 0x1 + cmp r10, r7 + bge _0804DE00 + ldr r0, _0804DE38 + adds r3, r0, 0 +_0804DDE0: + adds r0, r5, 0 + adds r1, r4, 0 + str r3, [sp, 0x54] + bl sub_8049590 + ldrh r1, [r0] + ldr r3, [sp, 0x54] + ands r1, r3 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + mov r1, r9 + strb r1, [r0, 0x9] + adds r4, 0x1 + cmp r4, r7 + blt _0804DDE0 +_0804DE00: + adds r5, r6, 0 + cmp r5, r8 + blt _0804DDD4 +_0804DE06: + ldr r2, [sp, 0x40] + ldr r3, [sp, 0x20] + subs r0, r2, r3 + lsls r0, 5 + ldr r4, [sp, 0xC] + adds r0, r4 + ldr r5, [sp, 0x44] + adds r0, r5, r0 + adds r3, r0, 0 + subs r3, 0x20 + mov r6, sp + ldrh r6, [r6, 0x2C] + strh r6, [r3] + mov r1, r8 + strh r1, [r3, 0x4] + mov r2, r10 + strh r2, [r3, 0x2] + strh r7, [r3, 0x6] + movs r4, 0x1 + strb r4, [r0, 0x12] + strb r4, [r3, 0x12] + movs r5, 0 + strb r5, [r0, 0xB] + strb r4, [r0, 0x11] + b _0804E00C + .align 2, 0 +_0804DE38: .4byte 0x0000fffc +_0804DE3C: + ldr r0, [sp, 0x10] + subs r0, 0x2 + ldr r6, [sp, 0x20] + cmp r6, r0 + ble _0804DE48 + b _0804E00C +_0804DE48: + movs r7, 0xF0 + lsls r7, 1 + adds r2, r4, r7 + ldrb r0, [r2, 0xB] + cmp r0, 0 + bne _0804DE56 + b _0804E00C +_0804DE56: + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0804DE5E + b _0804E00C +_0804DE5E: + ldrb r0, [r2, 0xA] + cmp r0, 0 + bne _0804DE66 + b _0804E00C +_0804DE66: + ldrb r0, [r2, 0x9] + cmp r0, 0 + beq _0804DE6E + b _0804E00C +_0804DE6E: + ldrb r0, [r2, 0x12] + cmp r0, 0 + beq _0804DE76 + b _0804E00C +_0804DE76: + movs r1, 0 + ldrsh r0, [r4, r1] + str r0, [sp, 0x30] + ldrh r3, [r2, 0x2] + movs r5, 0x2 + ldrsh r1, [r2, r5] + ldrh r5, [r4, 0x2] + movs r6, 0x2 + ldrsh r0, [r4, r6] + cmp r1, r0 + ble _0804DE8E + adds r3, r5, 0 +_0804DE8E: + lsls r0, r3, 16 + asrs r0, 16 + mov r9, r0 + movs r0, 0x4 + ldrsh r7, [r2, r0] + mov r10, r7 + ldrh r3, [r2, 0x6] + movs r5, 0x6 + ldrsh r1, [r2, r5] + ldrh r2, [r4, 0x6] + movs r6, 0x6 + ldrsh r0, [r4, r6] + cmp r1, r0 + bge _0804DEAC + adds r3, r2, 0 +_0804DEAC: + lsls r0, r3, 16 + asrs r7, r0, 16 + movs r0, 0x2 + ldrsh r1, [r4, r0] + ldr r0, [sp, 0x30] + bl sub_804954C + ldrb r0, [r0, 0x9] + mov r8, r0 + ldr r5, [sp, 0x30] + cmp r5, r10 + bge _0804DEF6 +_0804DEC4: + mov r4, r9 + adds r6, r5, 0x1 + cmp r9, r7 + bge _0804DEF0 + ldr r1, _0804DF2C + adds r3, r1, 0 +_0804DED0: + adds r0, r5, 0 + adds r1, r4, 0 + str r3, [sp, 0x54] + bl sub_8049590 + ldrh r1, [r0] + ldr r3, [sp, 0x54] + ands r1, r3 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + mov r2, r8 + strb r2, [r0, 0x9] + adds r4, 0x1 + cmp r4, r7 + blt _0804DED0 +_0804DEF0: + adds r5, r6, 0 + cmp r5, r10 + blt _0804DEC4 +_0804DEF6: + ldr r3, [sp, 0x40] + ldr r4, [sp, 0x20] + subs r0, r3, r4 + lsls r0, 5 + ldr r5, [sp, 0xC] + adds r0, r5 + ldr r6, [sp, 0x44] + adds r0, r6, r0 + mov r1, sp + ldrh r1, [r1, 0x30] + strh r1, [r0] + mov r2, r10 + strh r2, [r0, 0x4] + mov r3, r9 + strh r3, [r0, 0x2] + strh r7, [r0, 0x6] + movs r4, 0xF0 + lsls r4, 1 + adds r1, r0, r4 + movs r5, 0x1 + strb r5, [r1, 0x12] + strb r5, [r0, 0x12] + movs r6, 0 + strb r6, [r1, 0xB] + strb r5, [r1, 0x11] + b _0804E00C + .align 2, 0 +_0804DF2C: .4byte 0x0000fffc +_0804DF30: + ldr r0, [sp, 0x14] + subs r0, 0x2 + cmp r10, r0 + bgt _0804E00C + adds r3, r4, 0 + adds r3, 0x20 + ldrb r0, [r3, 0xB] + cmp r0, 0 + beq _0804E00C + ldrb r0, [r3, 0x8] + cmp r0, 0 + bne _0804E00C + ldrb r0, [r3, 0xA] + cmp r0, 0 + beq _0804E00C + ldrb r0, [r3, 0x9] + cmp r0, 0 + bne _0804E00C + ldrb r0, [r3, 0x12] + cmp r0, 0 + bne _0804E00C + ldrh r2, [r4, 0x20] + movs r7, 0x20 + ldrsh r1, [r4, r7] + ldrh r5, [r4] + movs r6, 0 + ldrsh r0, [r4, r6] + cmp r1, r0 + ble _0804DF6C + adds r2, r5, 0 +_0804DF6C: + lsls r0, r2, 16 + asrs r0, 16 + str r0, [sp, 0x34] + movs r7, 0x2 + ldrsh r6, [r4, r7] + ldrh r2, [r3, 0x4] + movs r0, 0x4 + ldrsh r1, [r3, r0] + ldrh r5, [r4, 0x4] + movs r7, 0x4 + ldrsh r0, [r4, r7] + cmp r1, r0 + bge _0804DF88 + adds r2, r5, 0 +_0804DF88: + lsls r0, r2, 16 + asrs r0, 16 + mov r8, r0 + movs r0, 0x6 + ldrsh r3, [r3, r0] + movs r1, 0 + ldrsh r0, [r4, r1] + adds r1, r6, 0 + str r3, [sp, 0x54] + bl sub_804954C + ldrb r0, [r0, 0x9] + mov r10, r0 + ldr r5, [sp, 0x34] + ldr r3, [sp, 0x54] + cmp r5, r8 + bge _0804DFDE +_0804DFAA: + adds r4, r6, 0 + adds r7, r5, 0x1 + cmp r6, r3 + bge _0804DFD8 + ldr r2, _0804E038 + mov r9, r2 +_0804DFB6: + adds r0, r5, 0 + adds r1, r4, 0 + str r3, [sp, 0x54] + bl sub_8049590 + ldrh r1, [r0] + mov r2, r9 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + mov r1, r10 + strb r1, [r0, 0x9] + adds r4, 0x1 + ldr r3, [sp, 0x54] + cmp r4, r3 + blt _0804DFB6 +_0804DFD8: + adds r5, r7, 0 + cmp r5, r8 + blt _0804DFAA +_0804DFDE: + ldr r2, [sp, 0x40] + ldr r4, [sp, 0x20] + subs r0, r2, r4 + lsls r0, 5 + ldr r5, [sp, 0xC] + adds r0, r5 + ldr r7, [sp, 0x44] + adds r0, r7, r0 + mov r1, sp + ldrh r1, [r1, 0x34] + strh r1, [r0] + mov r2, r8 + strh r2, [r0, 0x4] + strh r6, [r0, 0x2] + strh r3, [r0, 0x6] + adds r1, r0, 0 + adds r1, 0x20 + movs r3, 0x1 + strb r3, [r1, 0x12] + strb r3, [r0, 0x12] + movs r4, 0 + strb r4, [r1, 0xB] + strb r3, [r1, 0x11] +_0804E00C: + ldr r5, [sp, 0x3C] + mov r10, r5 + ldr r6, [sp, 0x14] + cmp r10, r6 + bge _0804E018 + b _0804DBEC +_0804E018: + ldr r7, [sp, 0x38] + str r7, [sp, 0x20] + adds r0, r7, 0 + ldr r1, [sp, 0x10] + cmp r0, r1 + bge _0804E026 + b _0804DBDA +_0804E026: + add sp, 0x58 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804E038: .4byte 0x0000fffc + thumb_func_end sub_804D8C8 + + thumb_func_start sub_804E03C +sub_804E03C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x44 + str r0, [sp] + str r1, [sp, 0x4] + str r2, [sp, 0x8] + movs r0, 0 + str r0, [sp, 0xC] + cmp r0, r1 + blt _0804E058 + b _0804E318 +_0804E058: + movs r2, 0 + ldr r1, [sp, 0xC] + adds r1, 0x1 + str r1, [sp, 0x28] + ldr r3, [sp, 0x8] + cmp r2, r3 + blt _0804E068 + b _0804E30C +_0804E068: + ldr r4, [sp, 0xC] + lsls r4, 4 + str r4, [sp, 0x14] + ldr r6, [sp, 0xC] + subs r0, r4, r6 + lsls r0, 5 + ldr r1, [sp] + adds r0, r1 + str r0, [sp, 0x18] +_0804E07A: + lsls r0, r2, 5 + ldr r3, [sp, 0x18] + adds r4, r0, r3 + ldrb r1, [r4, 0x8] + str r0, [sp, 0x34] + adds r2, 0x1 + str r2, [sp, 0x2C] + cmp r1, 0 + beq _0804E08E + b _0804E302 +_0804E08E: + ldrb r0, [r4, 0x11] + cmp r0, 0 + beq _0804E096 + b _0804E302 +_0804E096: + ldrb r0, [r4, 0x12] + cmp r0, 0 + beq _0804E09E + b _0804E302 +_0804E09E: + ldrb r0, [r4, 0xB] + cmp r0, 0 + bne _0804E0A6 + b _0804E302 +_0804E0A6: + ldrb r0, [r4, 0xA] + cmp r0, 0 + bne _0804E0AE + b _0804E302 +_0804E0AE: + ldrb r0, [r4, 0x9] + cmp r0, 0 + beq _0804E0B6 + b _0804E302 +_0804E0B6: + ldrb r0, [r4, 0x10] + cmp r0, 0 + beq _0804E0BE + b _0804E302 +_0804E0BE: + ldrb r0, [r4, 0x1C] + cmp r0, 0 + bne _0804E0C6 + b _0804E302 +_0804E0C6: + movs r0, 0x64 + bl sub_8084100 + cmp r0, 0x3B + bgt _0804E0D2 + b _0804E302 +_0804E0D2: + movs r6, 0x4 + ldrsh r2, [r4, r6] + movs r1, 0 + ldrsh r0, [r4, r1] + subs r2, r0 + movs r3, 0x6 + ldrsh r0, [r4, r3] + movs r6, 0x2 + ldrsh r1, [r4, r6] + subs r0, r1 + adds r2, r0 + str r2, [sp, 0x10] + adds r0, r2, 0 + cmp r2, 0 + bge _0804E0F2 + adds r0, 0x3 +_0804E0F2: + asrs r0, 2 + str r0, [sp, 0x10] + cmp r0, 0 + bne _0804E0FE + movs r0, 0x1 + str r0, [sp, 0x10] +_0804E0FE: + movs r1, 0 + ldr r2, [sp, 0x10] + cmp r1, r2 + blt _0804E108 + b _0804E302 +_0804E108: + ldr r3, [sp, 0x14] + ldr r4, [sp, 0xC] + subs r0, r3, r4 + lsls r0, 5 + ldr r6, [sp] + adds r0, r6 + ldr r2, [sp, 0x34] + adds r0, r2, r0 + str r0, [sp, 0x20] +_0804E11A: + movs r4, 0 + adds r1, 0x1 + str r1, [sp, 0x30] +_0804E120: + movs r0, 0x4 + bl sub_8084100 + str r0, [sp, 0x1C] + cmp r0, 0x1 + beq _0804E14A + cmp r0, 0x1 + ble _0804E138 + cmp r0, 0x2 + beq _0804E168 + cmp r0, 0x3 + beq _0804E182 +_0804E138: + ldr r3, [sp, 0x20] + movs r6, 0 + ldrsh r7, [r3, r6] + movs r1, 0x2 + ldrsh r0, [r3, r1] + mov r8, r0 + cmp r4, 0 + bne _0804E19C + b _0804E15C +_0804E14A: + ldr r2, [sp, 0x20] + movs r3, 0x4 + ldrsh r0, [r2, r3] + subs r7, r0, 0x1 + movs r0, 0x2 + ldrsh r6, [r2, r0] + mov r8, r6 + cmp r4, 0 + beq _0804E162 +_0804E15C: + movs r3, 0 + movs r2, 0x1 + b _0804E1A0 +_0804E162: + movs r3, 0x1 + negs r3, r3 + b _0804E19E +_0804E168: + ldr r1, [sp, 0x20] + movs r2, 0x4 + ldrsh r0, [r1, r2] + subs r7, r0, 0x1 + movs r3, 0x6 + ldrsh r0, [r1, r3] + subs r0, 0x1 + mov r8, r0 + cmp r4, 0 + beq _0804E194 + movs r3, 0x1 + negs r3, r3 + b _0804E19E +_0804E182: + ldr r6, [sp, 0x20] + movs r0, 0 + ldrsh r7, [r6, r0] + movs r1, 0x6 + ldrsh r0, [r6, r1] + subs r0, 0x1 + mov r8, r0 + cmp r4, 0 + beq _0804E19C +_0804E194: + movs r3, 0 + movs r2, 0x1 + negs r2, r2 + b _0804E1A0 +_0804E19C: + movs r3, 0x1 +_0804E19E: + movs r2, 0 +_0804E1A0: + movs r6, 0 + mov r9, r6 + ldr r5, [sp, 0x34] + ldr r0, [sp, 0x14] + str r0, [sp, 0x40] + ldr r6, [sp, 0x18] + adds r1, r5, r6 + movs r6, 0 + ldrsh r0, [r1, r6] + mov r10, r0 + adds r4, 0x1 + str r4, [sp, 0x24] + cmp r7, r10 + bge _0804E1BE + b _0804E2F0 +_0804E1BE: + movs r4, 0x4 + ldrsh r0, [r1, r4] + cmp r7, r0 + blt _0804E1C8 + b _0804E2F0 +_0804E1C8: + ldr r6, [sp, 0x40] + ldr r1, [sp, 0xC] + subs r0, r6, r1 + lsls r0, 5 + ldr r4, [sp] + adds r0, r4 + adds r4, r5, r0 + movs r6, 0x2 + ldrsh r0, [r4, r6] + cmp r8, r0 + bge _0804E1E0 + b _0804E2F0 +_0804E1E0: + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r8, r0 + blt _0804E1EA + b _0804E2F0 +_0804E1EA: + adds r0, r7, 0 + mov r1, r8 + str r2, [sp, 0x38] + str r3, [sp, 0x3C] + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + ldr r2, [sp, 0x38] + ldr r3, [sp, 0x3C] + cmp r0, 0x1 + bne _0804E2D0 + movs r6, 0 +_0804E206: + ldr r1, _0804E228 + lsls r0, r6, 2 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + adds r1, r7 + mov r10, r1 + movs r3, 0x2 + ldrsh r0, [r0, r3] + add r0, r8 + mov r9, r0 + movs r3, 0 + movs r5, 0x1 + negs r5, r5 +_0804E222: + movs r4, 0x1 + negs r4, r4 + b _0804E22E + .align 2, 0 +_0804E228: .4byte gUnknown_80F4448 +_0804E22C: + adds r4, 0x1 +_0804E22E: + cmp r4, 0x1 + bgt _0804E25A + mov r1, r10 + adds r0, r1, r4 + mov r2, r9 + adds r1, r2, r5 + str r3, [sp, 0x3C] + bl sub_804954C + adds r2, r0, 0 + ldrh r1, [r2] + movs r0, 0x3 + ands r0, r1 + ldr r3, [sp, 0x3C] + cmp r0, 0x1 + bne _0804E22C + ldrb r0, [r2, 0x9] + cmp r0, 0xFF + bne _0804E256 + movs r3, 0x1 +_0804E256: + cmp r3, 0 + beq _0804E22C +_0804E25A: + cmp r3, 0 + bne _0804E26A + adds r5, 0x1 + cmp r5, 0x1 + ble _0804E222 + adds r6, 0x1 + cmp r6, 0x7 + ble _0804E206 +_0804E26A: + cmp r6, 0x8 + bne _0804E2F0 + movs r6, 0 + ldr r3, [sp, 0x1C] + lsls r1, r3, 3 + ldr r0, _0804E2C4 + adds r4, r1, r0 +_0804E278: + ldr r0, _0804E2C8 + lsls r1, r6, 2 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r3, 0x2 + ldrsh r1, [r1, r3] + adds r0, r7, r0 + add r1, r8 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + movs r1, 0 + cmp r0, 0x1 + bne _0804E29C + movs r1, 0x1 +_0804E29C: + ldrb r0, [r4] + cmp r0, r1 + bne _0804E2AA + adds r4, 0x2 + adds r6, 0x2 + cmp r6, 0x7 + ble _0804E278 +_0804E2AA: + cmp r6, 0x8 + bne _0804E2F0 + adds r0, r7, 0 + mov r1, r8 + bl sub_8049590 + ldrh r2, [r0] + ldr r4, _0804E2CC + adds r1, r4, 0 + ands r2, r1 + strh r2, [r0] + b _0804E2F0 + .align 2, 0 +_0804E2C4: .4byte gUnknown_80F6DD5 +_0804E2C8: .4byte gUnknown_80F4448 +_0804E2CC: .4byte 0x0000fffc +_0804E2D0: + adds r7, r3 + add r8, r2 + movs r6, 0x1 + add r9, r6 + mov r0, r9 + cmp r0, 0x9 + bgt _0804E2F0 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r7, r0 + blt _0804E2F0 + movs r6, 0x4 + ldrsh r0, [r4, r6] + cmp r7, r0 + bge _0804E2F0 + b _0804E1C8 +_0804E2F0: + ldr r4, [sp, 0x24] + cmp r4, 0x1 + bgt _0804E2F8 + b _0804E120 +_0804E2F8: + ldr r1, [sp, 0x30] + ldr r0, [sp, 0x10] + cmp r1, r0 + bge _0804E302 + b _0804E11A +_0804E302: + ldr r2, [sp, 0x2C] + ldr r1, [sp, 0x8] + cmp r2, r1 + bge _0804E30C + b _0804E07A +_0804E30C: + ldr r2, [sp, 0x28] + str r2, [sp, 0xC] + ldr r3, [sp, 0x4] + cmp r2, r3 + bge _0804E318 + b _0804E058 +_0804E318: + add sp, 0x44 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804E03C + + thumb_func_start sub_804E328 +sub_804E328: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r5, r0, 0 + adds r4, r1, 0 + str r2, [sp] + str r3, [sp, 0x4] + ldr r0, [sp, 0x28] + lsls r0, 24 + mov r10, r5 + mov r9, r4 + ldr r1, [sp, 0x2C] + mov r8, r1 + ldr r7, [sp, 0x30] + cmp r0, 0 + bne _0804E350 + b _0804E470 +_0804E350: + movs r6, 0 +_0804E352: + cmp r4, r7 + beq _0804E3A8 + adds r0, r6, 0 + adds r6, 0x1 + cmp r0, 0x37 + ble _0804E360 + b _0804E57E +_0804E360: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804E390 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r2, [r0] + ldr r3, _0804E38C + adds r1, r3, 0 + ands r2, r1 + movs r1, 0x1 + orrs r2, r1 + strh r2, [r0] + b _0804E39C + .align 2, 0 +_0804E38C: .4byte 0x0000fffc +_0804E390: + cmp r5, r10 + beq _0804E396 + b _0804E57E +_0804E396: + cmp r4, r9 + beq _0804E39C + b _0804E57E +_0804E39C: + cmp r4, r7 + bge _0804E3A4 + adds r4, 0x1 + b _0804E352 +_0804E3A4: + subs r4, 0x1 + b _0804E352 +_0804E3A8: + movs r6, 0 + ldr r0, [sp] + cmp r5, r0 + beq _0804E40A + movs r7, 0 +_0804E3B2: + adds r0, r6, 0 + adds r6, 0x1 + cmp r0, 0x37 + ble _0804E3BC + b _0804E57E +_0804E3BC: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804E3EC + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r2, [r0] + ldr r3, _0804E3E8 + adds r1, r3, 0 + ands r2, r1 + movs r1, 0x1 + orrs r2, r1 + strh r2, [r0] + b _0804E3F8 + .align 2, 0 +_0804E3E8: .4byte 0x0000fffc +_0804E3EC: + cmp r5, r10 + beq _0804E3F2 + b _0804E57E +_0804E3F2: + cmp r4, r9 + beq _0804E3F8 + b _0804E57E +_0804E3F8: + ldr r0, [sp] + cmp r5, r0 + bge _0804E402 + adds r5, 0x1 + b _0804E404 +_0804E402: + subs r5, 0x1 +_0804E404: + ldr r1, [sp] + cmp r5, r1 + bne _0804E3B2 +_0804E40A: + movs r6, 0 + ldr r3, [sp, 0x4] + cmp r4, r3 + bne _0804E414 + b _0804E57E +_0804E414: + movs r7, 0 +_0804E416: + adds r0, r6, 0 + adds r6, 0x1 + cmp r0, 0x37 + ble _0804E420 + b _0804E57E +_0804E420: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804E450 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r2, [r0] + ldr r3, _0804E44C + adds r1, r3, 0 + ands r2, r1 + movs r1, 0x1 + orrs r2, r1 + strh r2, [r0] + b _0804E45C + .align 2, 0 +_0804E44C: .4byte 0x0000fffc +_0804E450: + cmp r5, r10 + beq _0804E456 + b _0804E57E +_0804E456: + cmp r4, r9 + beq _0804E45C + b _0804E57E +_0804E45C: + ldr r0, [sp, 0x4] + cmp r4, r0 + bge _0804E466 + adds r4, 0x1 + b _0804E468 +_0804E466: + subs r4, 0x1 +_0804E468: + ldr r1, [sp, 0x4] + cmp r4, r1 + bne _0804E416 + b _0804E57E +_0804E470: + movs r6, 0 + cmp r5, r8 + beq _0804E4C6 + movs r7, 0 +_0804E478: + adds r0, r6, 0 + adds r6, 0x1 + cmp r0, 0x37 + ble _0804E482 + b _0804E57E +_0804E482: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804E4B0 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r2, [r0] + ldr r3, _0804E4AC + adds r1, r3, 0 + ands r2, r1 + movs r1, 0x1 + orrs r2, r1 + strh r2, [r0] + b _0804E4B8 + .align 2, 0 +_0804E4AC: .4byte 0x0000fffc +_0804E4B0: + cmp r5, r10 + bne _0804E57E + cmp r4, r9 + bne _0804E57E +_0804E4B8: + cmp r5, r8 + bge _0804E4C0 + adds r5, 0x1 + b _0804E4C2 +_0804E4C0: + subs r5, 0x1 +_0804E4C2: + cmp r5, r8 + bne _0804E478 +_0804E4C6: + movs r6, 0 + ldr r0, [sp, 0x4] + cmp r4, r0 + beq _0804E522 + movs r7, 0 +_0804E4D0: + adds r0, r6, 0 + adds r6, 0x1 + cmp r0, 0x37 + bgt _0804E57E + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804E508 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r2, [r0] + ldr r3, _0804E504 + adds r1, r3, 0 + ands r2, r1 + movs r1, 0x1 + orrs r2, r1 + strh r2, [r0] + b _0804E510 + .align 2, 0 +_0804E504: .4byte 0x0000fffc +_0804E508: + cmp r5, r10 + bne _0804E57E + cmp r4, r9 + bne _0804E57E +_0804E510: + ldr r0, [sp, 0x4] + cmp r4, r0 + bge _0804E51A + adds r4, 0x1 + b _0804E51C +_0804E51A: + subs r4, 0x1 +_0804E51C: + ldr r1, [sp, 0x4] + cmp r4, r1 + bne _0804E4D0 +_0804E522: + movs r6, 0 + ldr r3, [sp] + cmp r5, r3 + beq _0804E57E + movs r7, 0 +_0804E52C: + adds r0, r6, 0 + adds r6, 0x1 + cmp r0, 0x37 + bgt _0804E57E + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804E564 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r2, [r0] + ldr r3, _0804E560 + adds r1, r3, 0 + ands r2, r1 + movs r1, 0x1 + orrs r2, r1 + strh r2, [r0] + b _0804E56C + .align 2, 0 +_0804E560: .4byte 0x0000fffc +_0804E564: + cmp r5, r10 + bne _0804E57E + cmp r4, r9 + bne _0804E57E +_0804E56C: + ldr r0, [sp] + cmp r5, r0 + bge _0804E576 + adds r5, 0x1 + b _0804E578 +_0804E576: + subs r5, 0x1 +_0804E578: + ldr r1, [sp] + cmp r5, r1 + bne _0804E52C +_0804E57E: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804E328 + + thumb_func_start sub_804E590 +sub_804E590: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x40 + str r0, [sp, 0xC] + str r1, [sp, 0x10] + str r2, [sp, 0x14] + str r3, [sp, 0x18] + movs r0, 0 + str r0, [sp, 0x1C] + cmp r0, r1 + blt _0804E5AE + b _0804E8AA +_0804E5AE: + movs r1, 0x1 + mov r10, r1 +_0804E5B2: + movs r2, 0 + str r2, [sp, 0x20] + ldr r3, [sp, 0x1C] + adds r3, 0x1 + str r3, [sp, 0x2C] + ldr r4, [sp, 0x14] + cmp r2, r4 + blt _0804E5C4 + b _0804E89E +_0804E5C4: + ldr r5, [sp, 0x1C] + lsls r5, 4 + ldr r6, [sp, 0x1C] + subs r1, r5, r6 + lsls r1, 5 + ldr r2, [sp, 0xC] + movs r3, 0xF0 + lsls r3, 1 + adds r0, r2, r3 + adds r0, r1 + mov r8, r0 + adds r6, r1, r2 + ldr r4, _0804E6A4 + adds r0, r2, r4 + adds r7, r1, r0 + adds r0, r2, 0 + adds r0, 0x20 + adds r0, r1 + mov r9, r0 + ldr r5, [sp, 0x60] + str r5, [sp, 0x34] + adds r0, r2, 0 + subs r0, 0x20 + adds r1, r0 + str r1, [sp, 0x38] + movs r0, 0 + str r0, [sp, 0x3C] + ldr r1, [sp, 0x1C] + lsls r0, r1, 2 + ldr r2, [sp, 0x18] + adds r0, r2 + str r0, [sp, 0x28] +_0804E604: + ldr r3, [sp, 0x1C] + lsls r0, r3, 4 + subs r0, r3 + lsls r0, 5 + ldr r4, [sp, 0xC] + adds r0, r4 + ldr r5, [sp, 0x3C] + adds r4, r5, r0 + ldrb r0, [r4, 0x8] + cmp r0, 0 + beq _0804E61C + b _0804E874 +_0804E61C: + ldrb r0, [r4, 0x11] + cmp r0, 0 + beq _0804E624 + b _0804E874 +_0804E624: + ldrb r0, [r4, 0xB] + cmp r0, 0 + beq _0804E62C + b _0804E874 +_0804E62C: + ldrb r0, [r4, 0xA] + cmp r0, 0 + bne _0804E634 + b _0804E848 +_0804E634: + ldrb r0, [r4, 0x9] + cmp r0, 0 + beq _0804E63C + b _0804E848 +_0804E63C: + movs r1, 0 + ldrsh r0, [r4, r1] + adds r0, 0x1 + movs r2, 0x4 + ldrsh r1, [r4, r2] + subs r1, 0x1 + bl sub_808411C + str r0, [sp, 0x24] + movs r3, 0x2 + ldrsh r0, [r4, r3] + adds r0, 0x1 + movs r5, 0x6 + ldrsh r1, [r4, r5] + subs r1, 0x1 + bl sub_808411C + adds r5, r0, 0 + ldr r0, [sp, 0x20] + cmp r0, 0 + ble _0804E6DC + subs r4, 0x20 + ldrb r0, [r4, 0x8] + cmp r0, 0 + bne _0804E6DC + ldrb r0, [r4, 0x12] + cmp r0, 0 + bne _0804E6DC + ldrb r0, [r4, 0xB] + cmp r0, 0 + beq _0804E6DC + ldrb r0, [r4, 0xA] + cmp r0, 0 + beq _0804E6A8 + movs r1, 0 + ldrsh r0, [r4, r1] + adds r0, 0x1 + movs r2, 0x4 + ldrsh r1, [r4, r2] + subs r1, 0x1 + bl sub_808411C + adds r5, r0, 0 + movs r3, 0x2 + ldrsh r0, [r4, r3] + adds r0, 0x1 + movs r2, 0x6 + ldrsh r1, [r4, r2] + subs r1, 0x1 + bl sub_808411C + b _0804E6AC + .align 2, 0 +_0804E6A4: .4byte 0xfffffe20 +_0804E6A8: + movs r3, 0 + ldrsh r5, [r4, r3] +_0804E6AC: + movs r4, 0x2 + ldrsh r1, [r6, r4] + ldr r0, [sp, 0x38] + movs r2, 0x6 + ldrsh r3, [r0, r2] + subs r3, 0x1 + mov r4, r10 + str r4, [sp] + ldr r2, [sp, 0x28] + ldr r0, [r2] + str r0, [sp, 0x4] + ldr r4, [sp, 0x34] + ldr r0, [r4] + str r0, [sp, 0x8] + ldr r0, [sp, 0x24] + adds r2, r5, 0 + bl sub_804E328 + mov r5, r10 + strb r5, [r6, 0xB] + strb r5, [r6, 0x13] + ldr r0, [sp, 0x38] + strb r5, [r0, 0x14] + b _0804E874 +_0804E6DC: + ldr r0, [sp, 0x14] + subs r0, 0x1 + ldr r1, [sp, 0x20] + cmp r1, r0 + bge _0804E758 + mov r2, r9 + ldrb r0, [r2, 0x8] + cmp r0, 0 + bne _0804E758 + ldrb r0, [r2, 0x12] + cmp r0, 0 + bne _0804E758 + ldrb r0, [r2, 0xB] + cmp r0, 0 + beq _0804E758 + ldrb r0, [r2, 0xA] + cmp r0, 0 + beq _0804E724 + movs r3, 0x20 + ldrsh r0, [r6, r3] + adds r0, 0x1 + movs r4, 0x24 + ldrsh r1, [r6, r4] + subs r1, 0x1 + bl sub_808411C + adds r5, r0, 0 + movs r1, 0x22 + ldrsh r0, [r6, r1] + adds r0, 0x1 + movs r2, 0x26 + ldrsh r1, [r6, r2] + subs r1, 0x1 + bl sub_808411C + b _0804E728 +_0804E724: + movs r3, 0x20 + ldrsh r5, [r6, r3] +_0804E728: + movs r4, 0x6 + ldrsh r1, [r6, r4] + subs r1, 0x1 + movs r0, 0x22 + ldrsh r3, [r6, r0] + mov r2, r10 + str r2, [sp] + ldr r4, [sp, 0x28] + ldr r0, [r4] + str r0, [sp, 0x4] + ldr r2, [sp, 0x34] + ldr r0, [r2, 0x4] + subs r0, 0x1 + str r0, [sp, 0x8] + ldr r0, [sp, 0x24] + adds r2, r5, 0 + bl sub_804E328 + mov r3, r10 + strb r3, [r6, 0xB] + strb r3, [r6, 0x14] + mov r4, r9 + strb r3, [r4, 0x13] + b _0804E874 +_0804E758: + ldr r0, [sp, 0x1C] + cmp r0, 0 + ble _0804E7C8 + ldrb r0, [r7, 0x8] + cmp r0, 0 + bne _0804E7C8 + ldrb r0, [r7, 0x12] + cmp r0, 0 + bne _0804E7C8 + ldrb r0, [r7, 0xB] + cmp r0, 0 + beq _0804E7C8 + ldrb r0, [r7, 0xA] + cmp r0, 0 + beq _0804E79A + movs r1, 0 + ldrsh r0, [r7, r1] + adds r0, 0x1 + movs r2, 0x4 + ldrsh r1, [r7, r2] + subs r1, 0x1 + bl sub_808411C + movs r3, 0x2 + ldrsh r0, [r7, r3] + adds r0, 0x1 + movs r4, 0x6 + ldrsh r1, [r7, r4] + subs r1, 0x1 + bl sub_808411C + adds r3, r0, 0 + b _0804E79E +_0804E79A: + movs r0, 0x2 + ldrsh r3, [r7, r0] +_0804E79E: + movs r1, 0 + ldrsh r0, [r6, r1] + movs r4, 0 + ldrsh r2, [r7, r4] + subs r2, 0x1 + movs r1, 0 + str r1, [sp] + ldr r4, [sp, 0x28] + ldr r1, [r4] + str r1, [sp, 0x4] + ldr r4, [sp, 0x34] + ldr r1, [r4] + str r1, [sp, 0x8] + adds r1, r5, 0 + bl sub_804E328 + mov r5, r10 + strb r5, [r6, 0xB] + strb r5, [r6, 0x15] + strb r5, [r7, 0x16] + b _0804E874 +_0804E7C8: + ldr r0, [sp, 0x10] + subs r0, 0x1 + ldr r1, [sp, 0x1C] + cmp r1, r0 + bge _0804E874 + mov r2, r8 + ldrb r0, [r2, 0x8] + cmp r0, 0 + bne _0804E874 + ldrb r0, [r2, 0x12] + cmp r0, 0 + bne _0804E874 + ldrb r0, [r2, 0xB] + cmp r0, 0 + beq _0804E874 + ldrb r0, [r2, 0xA] + cmp r0, 0 + beq _0804E812 + movs r3, 0 + ldrsh r0, [r2, r3] + adds r0, 0x1 + movs r4, 0x4 + ldrsh r1, [r2, r4] + subs r1, 0x1 + bl sub_808411C + mov r1, r8 + movs r2, 0x2 + ldrsh r0, [r1, r2] + adds r0, 0x1 + movs r3, 0x6 + ldrsh r1, [r1, r3] + subs r1, 0x1 + bl sub_808411C + adds r3, r0, 0 + b _0804E818 +_0804E812: + mov r4, r8 + movs r0, 0x2 + ldrsh r3, [r4, r0] +_0804E818: + movs r1, 0x4 + ldrsh r0, [r6, r1] + subs r0, 0x1 + mov r4, r8 + movs r1, 0 + ldrsh r2, [r4, r1] + movs r1, 0 + str r1, [sp] + ldr r4, [sp, 0x28] + ldr r1, [r4, 0x4] + subs r1, 0x1 + str r1, [sp, 0x4] + ldr r4, [sp, 0x34] + ldr r1, [r4] + str r1, [sp, 0x8] + adds r1, r5, 0 + bl sub_804E328 + mov r5, r10 + strb r5, [r6, 0xB] + strb r5, [r6, 0x16] + mov r0, r8 + strb r5, [r0, 0x15] + b _0804E874 +_0804E848: + movs r1, 0 + ldrsh r0, [r6, r1] + movs r2, 0x2 + ldrsh r1, [r6, r2] + bl sub_8049590 + ldrh r1, [r0] + ldr r3, _0804E99C + adds r2, r3, 0 + ands r1, r2 + strh r1, [r0] + ldrh r1, [r0, 0x4] + ldr r4, _0804E9A0 + adds r2, r4, 0 + ands r1, r2 + ldr r5, _0804E9A4 + adds r2, r5, 0 + ands r1, r2 + subs r3, 0x1 + adds r2, r3, 0 + ands r1, r2 + strh r1, [r0, 0x4] +_0804E874: + movs r4, 0x20 + add r8, r4 + adds r6, 0x20 + adds r7, 0x20 + add r9, r4 + ldr r5, [sp, 0x34] + adds r5, 0x4 + str r5, [sp, 0x34] + ldr r0, [sp, 0x38] + adds r0, 0x20 + str r0, [sp, 0x38] + ldr r1, [sp, 0x3C] + adds r1, 0x20 + str r1, [sp, 0x3C] + ldr r2, [sp, 0x20] + adds r2, 0x1 + str r2, [sp, 0x20] + ldr r3, [sp, 0x14] + cmp r2, r3 + bge _0804E89E + b _0804E604 +_0804E89E: + ldr r4, [sp, 0x2C] + str r4, [sp, 0x1C] + ldr r5, [sp, 0x10] + cmp r4, r5 + bge _0804E8AA + b _0804E5B2 +_0804E8AA: + movs r6, 0 + str r6, [sp, 0x1C] + ldr r0, [sp, 0x10] + cmp r6, r0 + bge _0804E98A +_0804E8B4: + movs r1, 0 + str r1, [sp, 0x20] + ldr r2, [sp, 0x1C] + adds r2, 0x1 + str r2, [sp, 0x2C] + ldr r3, [sp, 0x14] + cmp r1, r3 + bge _0804E980 + ldr r4, [sp, 0x1C] + lsls r4, 4 + mov r9, r4 +_0804E8CA: + ldr r5, [sp, 0x20] + lsls r2, r5, 5 + ldr r6, [sp, 0x1C] + lsls r3, r6, 4 + subs r0, r3, r6 + lsls r0, 5 + ldr r1, [sp, 0xC] + adds r4, r0, r1 + adds r1, r2, r4 + ldrb r0, [r1, 0x8] + mov r8, r2 + adds r5, 0x1 + str r5, [sp, 0x30] + cmp r0, 0 + bne _0804E976 + ldrb r0, [r1, 0x11] + cmp r0, 0 + bne _0804E976 + ldrb r0, [r1, 0xB] + cmp r0, 0 + bne _0804E976 + ldrb r0, [r1, 0xF] + cmp r0, 0 + bne _0804E976 + movs r6, 0 + ldrsh r5, [r1, r6] + movs r6, 0x4 + ldrsh r0, [r1, r6] + cmp r5, r0 + bge _0804E976 + mov r10, r4 +_0804E908: + ldr r1, [sp, 0x1C] + subs r0, r3, r1 + lsls r0, 5 + ldr r3, [sp, 0xC] + adds r0, r3 + adds r0, r2, r0 + movs r6, 0x2 + ldrsh r4, [r0, r6] + movs r1, 0x6 + ldrsh r0, [r0, r1] + adds r7, r5, 0x1 + cmp r4, r0 + bge _0804E95C + mov r6, r8 + add r6, r10 +_0804E926: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r2, [r0] + ldr r3, _0804E99C + adds r1, r3, 0 + ands r2, r1 + strh r2, [r0] + ldrh r2, [r0, 0x4] + adds r3, 0x1 + adds r1, r3, 0 + ands r2, r1 + adds r3, 0x1 + adds r1, r3, 0 + ands r2, r1 + subs r3, 0x3 + adds r1, r3, 0 + ands r2, r1 + strh r2, [r0, 0x4] + movs r1, 0xFF + strb r1, [r0, 0x9] + adds r4, 0x1 + movs r1, 0x6 + ldrsh r0, [r6, r1] + cmp r4, r0 + blt _0804E926 +_0804E95C: + adds r5, r7, 0 + mov r2, r8 + mov r3, r9 + ldr r4, [sp, 0x1C] + subs r0, r3, r4 + lsls r0, 5 + ldr r6, [sp, 0xC] + adds r0, r6 + adds r0, r2, r0 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r5, r0 + blt _0804E908 +_0804E976: + ldr r2, [sp, 0x30] + str r2, [sp, 0x20] + ldr r3, [sp, 0x14] + cmp r2, r3 + blt _0804E8CA +_0804E980: + ldr r4, [sp, 0x2C] + str r4, [sp, 0x1C] + ldr r5, [sp, 0x10] + cmp r4, r5 + blt _0804E8B4 +_0804E98A: + add sp, 0x40 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804E99C: .4byte 0x0000fffc +_0804E9A0: .4byte 0x0000fffe +_0804E9A4: .4byte 0x0000fffd + thumb_func_end sub_804E590 + + thumb_func_start sub_804E9A8 +sub_804E9A8: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsls r2, 24 + lsrs r2, 24 + ldrh r0, [r4] + ldr r5, _0804E9D8 + adds r3, r5, 0 + ands r3, r0 + strh r3, [r4] + cmp r1, 0 + beq _0804E9D0 + ldrb r0, [r4, 0x9] + cmp r0, r2 + bne _0804E9D0 + adds r0, r3, 0 + ands r0, r5 + movs r1, 0x2 + orrs r0, r1 + strh r0, [r4] +_0804E9D0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804E9D8: .4byte 0x0000fffc + thumb_func_end sub_804E9A8 + + thumb_func_start sub_804E9DC +sub_804E9DC: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r5, 0 + movs r0, 0x3 + mov r8, r0 + movs r7, 0x8 + ldr r3, _0804EAF0 + mov r9, r3 +_0804E9F2: + movs r4, 0 + adds r6, r5, 0x1 + mov r10, r6 +_0804E9F8: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + adds r6, r4, 0x1 + cmp r0, 0x1 + beq _0804EA0E + b _0804EB0E +_0804EA0E: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrb r0, [r0, 0x9] + cmp r0, 0xFF + bne _0804EAF4 + cmp r5, 0 + ble _0804EA4E + subs r0, r5, 0x1 + adds r1, r4, 0 + bl sub_8049590 + adds r2, r0, 0 + ldrb r0, [r2, 0x9] + cmp r0, 0xFF + beq _0804EA4E + ldrh r0, [r2] + adds r1, r0, 0 + orrs r1, r7 + movs r3, 0 + strh r1, [r2] + adds r0, r1, 0 + mov r6, r8 + ands r0, r6 + cmp r0, 0x2 + bne _0804EA4E + mov r0, r9 + ands r1, r0 + movs r0, 0x1 + orrs r1, r0 + strh r1, [r2] +_0804EA4E: + cmp r4, 0 + ble _0804EA82 + subs r1, r4, 0x1 + adds r0, r5, 0 + bl sub_8049590 + adds r2, r0, 0 + ldrb r0, [r2, 0x9] + cmp r0, 0xFF + beq _0804EA82 + ldrh r0, [r2] + adds r1, r0, 0 + orrs r1, r7 + movs r3, 0 + orrs r1, r7 + strh r1, [r2] + adds r0, r1, 0 + mov r6, r8 + ands r0, r6 + cmp r0, 0x2 + bne _0804EA82 + mov r0, r9 + ands r1, r0 + movs r0, 0x1 + orrs r1, r0 + strh r1, [r2] +_0804EA82: + adds r6, r4, 0x1 + cmp r4, 0x1E + bgt _0804EABA + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8049590 + adds r2, r0, 0 + ldrb r0, [r2, 0x9] + cmp r0, 0xFF + beq _0804EABA + ldrh r0, [r2] + adds r1, r0, 0 + orrs r1, r7 + movs r3, 0 + mov r12, r3 + orrs r1, r7 + strh r1, [r2] + adds r0, r1, 0 + mov r3, r8 + ands r0, r3 + cmp r0, 0x2 + bne _0804EABA + mov r0, r9 + ands r1, r0 + movs r0, 0x1 + orrs r1, r0 + strh r1, [r2] +_0804EABA: + cmp r5, 0x36 + bgt _0804EB0E + mov r0, r10 + adds r1, r4, 0 + bl sub_8049590 + adds r2, r0, 0 + ldrb r0, [r2, 0x9] + cmp r0, 0xFF + beq _0804EB0E + ldrh r0, [r2] + adds r1, r0, 0 + orrs r1, r7 + movs r3, 0 + orrs r1, r7 + strh r1, [r2] + adds r0, r1, 0 + mov r4, r8 + ands r0, r4 + cmp r0, 0x2 + bne _0804EB0E + mov r0, r9 + ands r1, r0 + movs r0, 0x1 + orrs r1, r0 + strh r1, [r2] + b _0804EB0E + .align 2, 0 +_0804EAF0: .4byte 0x0000fffc +_0804EAF4: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrb r0, [r0, 0x9] + cmp r0, 0xFE + bne _0804EB0E + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0xFF + strb r1, [r0, 0x9] +_0804EB0E: + adds r4, r6, 0 + cmp r4, 0x1F + bgt _0804EB16 + b _0804E9F8 +_0804EB16: + mov r5, r10 + cmp r5, 0x37 + bgt _0804EB1E + b _0804E9F2 +_0804EB1E: + bl sub_804EB30 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804E9DC + + thumb_func_start sub_804EB30 +sub_804EB30: + push {r4-r7,lr} + ldr r0, _0804EBB4 + ldr r6, [r0] + movs r2, 0 + movs r1, 0x1F + ldr r3, _0804EBB8 + adds r0, r6, r3 +_0804EB3E: + strh r2, [r0] + subs r0, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _0804EB3E + movs r5, 0 +_0804EB4A: + movs r4, 0 + adds r7, r5, 0x1 +_0804EB4E: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0804EBA2 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrb r3, [r0, 0x9] + cmp r3, 0x1F + bhi _0804EBA2 + lsls r0, r3, 1 + ldr r2, _0804EBBC + adds r1, r6, r2 + adds r2, r1, r0 + movs r1, 0 + ldrsh r0, [r2, r1] + cmp r0, 0x1F + bgt _0804EBA2 + lsls r0, 2 + lsls r1, r3, 7 + adds r0, r1 + adds r0, r6, r0 + ldr r3, _0804EBC0 + adds r0, r3 + strh r5, [r0] + movs r3, 0 + ldrsh r0, [r2, r3] + lsls r0, 2 + adds r0, r1 + adds r0, r6, r0 + ldr r1, _0804EBC4 + adds r0, r1 + strh r4, [r0] + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] +_0804EBA2: + adds r4, 0x1 + cmp r4, 0x1F + ble _0804EB4E + adds r5, r7, 0 + cmp r5, 0x37 + ble _0804EB4A + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804EBB4: .4byte gUnknown_203B418 +_0804EBB8: .4byte 0x00010882 +_0804EBBC: .4byte 0x00010844 +_0804EBC0: .4byte 0x00010884 +_0804EBC4: .4byte 0x00010886 + thumb_func_end sub_804EB30 + + thumb_func_start sub_804EBC8 +sub_804EBC8: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x58 + str r0, [sp, 0x40] + str r1, [sp, 0x44] + mov r10, r2 + adds r4, r3, 0 + ldr r0, _0804EE90 + ldr r0, [r0] + mov r8, r0 + ldr r1, _0804EE94 + ldr r0, _0804EE98 + strh r0, [r1] + movs r0, 0x1 + negs r0, r0 + strh r0, [r1, 0x2] + ldr r0, _0804EE9C + ldrb r0, [r0] + cmp r0, 0 + beq _0804EBF8 + b _0804EED4 +_0804EBF8: + bl sub_8043D10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0804EC06 + b _0804EED4 +_0804EC06: + cmp r4, 0 + bne _0804EC0C + b _0804EED4 +_0804EC0C: + movs r0, 0x64 + bl sub_8084100 + cmp r4, r0 + bgt _0804EC18 + b _0804EED4 +_0804EC18: + movs r5, 0 + add r7, sp, 0x20 + adds r1, r7, 0 + mov r0, sp +_0804EC20: + strh r5, [r0] + strh r5, [r1] + adds r1, 0x2 + adds r0, 0x2 + adds r5, 0x1 + cmp r5, 0xE + ble _0804EC20 + movs r5, 0xC7 +_0804EC30: + movs r0, 0xF + bl sub_8084100 + adds r4, r0, 0 + movs r0, 0xF + bl sub_8084100 + lsls r4, 1 + mov r1, sp + adds r2, r1, r4 + movs r4, 0 + ldrsh r3, [r2, r4] + lsls r0, 1 + adds r1, r0 + ldrh r0, [r1] + strh r0, [r2] + strh r3, [r1] + subs r5, 0x1 + cmp r5, 0 + bge _0804EC30 + adds r6, r7, 0 + movs r5, 0xC7 +_0804EC5C: + movs r0, 0xF + bl sub_8084100 + adds r4, r0, 0 + movs r0, 0xF + bl sub_8084100 + lsls r4, 1 + adds r4, r6, r4 + movs r1, 0 + ldrsh r2, [r4, r1] + lsls r0, 1 + adds r0, r6, r0 + ldrh r1, [r0] + strh r1, [r4] + strh r2, [r0] + subs r5, 0x1 + cmp r5, 0 + bge _0804EC5C + movs r5, 0 +_0804EC84: + lsls r0, r5, 1 + add r0, sp + movs r3, 0 + ldrsh r2, [r0, r3] + mov r9, r2 + ldr r4, [sp, 0x44] + cmp r9, r4 + blt _0804EC96 + b _0804EECC +_0804EC96: + movs r4, 0 +_0804EC98: + lsls r0, r4, 1 + adds r0, r7, r0 + movs r2, 0 + ldrsh r1, [r0, r2] + cmp r1, r10 + blt _0804ECA6 + b _0804EEC4 +_0804ECA6: + lsls r1, 5 + mov r3, r9 + lsls r2, r3, 4 + subs r0, r2, r3 + lsls r0, 5 + ldr r3, [sp, 0x40] + adds r0, r3 + adds r3, r1, r0 + ldrb r0, [r3, 0x8] + str r1, [sp, 0x4C] + str r2, [sp, 0x48] + cmp r0, 0 + beq _0804ECC2 + b _0804EEC4 +_0804ECC2: + ldrb r0, [r3, 0x11] + cmp r0, 0 + beq _0804ECCA + b _0804EEC4 +_0804ECCA: + ldrb r0, [r3, 0x12] + cmp r0, 0 + beq _0804ECD2 + b _0804EEC4 +_0804ECD2: + ldrb r0, [r3, 0xB] + cmp r0, 0 + bne _0804ECDA + b _0804EEC4 +_0804ECDA: + ldrb r0, [r3, 0xA] + cmp r0, 0 + bne _0804ECE2 + b _0804EEC4 +_0804ECE2: + ldrb r0, [r3, 0x9] + cmp r0, 0 + beq _0804ECEA + b _0804EEC4 +_0804ECEA: + ldrb r0, [r3, 0x10] + cmp r0, 0 + beq _0804ECF2 + b _0804EEC4 +_0804ECF2: + ldrb r0, [r3, 0x1D] + cmp r0, 0 + beq _0804ECFA + b _0804EEC4 +_0804ECFA: + movs r0, 0x4 + ldrsh r1, [r3, r0] + movs r2, 0 + ldrsh r0, [r3, r2] + subs r1, r0 + cmp r1, 0 + bge _0804ED0A + negs r1, r1 +_0804ED0A: + cmp r1, 0x4 + bgt _0804ED10 + b _0804EEC4 +_0804ED10: + movs r0, 0x6 + ldrsh r1, [r3, r0] + movs r2, 0x2 + ldrsh r0, [r3, r2] + subs r1, r0 + cmp r1, 0 + bge _0804ED20 + negs r1, r1 +_0804ED20: + cmp r1, 0x3 + bgt _0804ED26 + b _0804EEC4 +_0804ED26: + ldr r1, _0804EEA0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x1 + strb r0, [r3, 0xC] + ldr r2, _0804EEA4 + movs r4, 0 + ldrsh r0, [r3, r4] + adds r0, 0x1 + str r0, [r2] + movs r7, 0x4 + ldrsh r0, [r3, r7] + subs r0, 0x1 + str r0, [r2, 0x8] + movs r0, 0x2 + ldrsh r1, [r3, r0] + adds r1, 0x1 + str r1, [r2, 0x4] + movs r4, 0x6 + ldrsh r3, [r3, r4] + subs r0, r3, 0x1 + str r0, [r2, 0xC] + subs r0, r1 + mov r10, r2 + cmp r0, 0x2 + bgt _0804ED5C + str r3, [r2, 0xC] +_0804ED5C: + ldr r0, _0804EEA8 + add r0, r8 + ldr r1, _0804EEAC + str r1, [r0] + ldr r0, _0804EEB0 + add r0, r8 + str r1, [r0] + ldr r0, _0804EEB4 + add r0, r8 + ldr r1, _0804EEB8 + str r1, [r0] + ldr r0, _0804EEBC + add r0, r8 + str r1, [r0] + mov r7, r10 + ldr r5, [r7] + ldr r0, [r7, 0x8] + cmp r5, r0 + bge _0804EDFA + mov r3, r10 +_0804ED84: + ldr r4, [r3, 0x4] + ldr r0, [r3, 0xC] + adds r1, r5, 0x1 + str r1, [sp, 0x54] + cmp r4, r0 + bge _0804EDF0 + ldr r6, _0804EEA8 + add r6, r8 + ldr r2, _0804EEA4 + mov r10, r2 +_0804ED98: + adds r0, r5, 0 + adds r1, r4, 0 + str r3, [sp, 0x50] + bl sub_8049590 + ldrh r2, [r0] + movs r1, 0x20 + orrs r1, r2 + strh r1, [r0] + ldrh r2, [r0, 0x4] + ldr r7, _0804EEC0 + adds r1, r7, 0 + ands r2, r1 + adds r7, 0x7 + adds r1, r7, 0 + ands r2, r1 + strh r2, [r0, 0x4] + ldr r0, [r6] + ldr r3, [sp, 0x50] + cmp r0, r5 + ble _0804EDC4 + str r5, [r6] +_0804EDC4: + ldr r1, _0804EEB0 + add r1, r8 + ldr r0, [r1] + cmp r0, r4 + ble _0804EDD0 + str r4, [r1] +_0804EDD0: + ldr r1, _0804EEB4 + add r1, r8 + ldr r0, [r1] + cmp r0, r5 + bge _0804EDDC + str r5, [r1] +_0804EDDC: + ldr r1, _0804EEBC + add r1, r8 + ldr r0, [r1] + cmp r0, r4 + bge _0804EDE8 + str r4, [r1] +_0804EDE8: + adds r4, 0x1 + ldr r0, [r3, 0xC] + cmp r4, r0 + blt _0804ED98 +_0804EDF0: + ldr r5, [sp, 0x54] + mov r1, r10 + ldr r0, [r1, 0x8] + cmp r5, r0 + blt _0804ED84 +_0804EDFA: + ldr r3, [sp, 0x4C] + ldr r2, [sp, 0x48] + mov r4, r9 + subs r0, r2, r4 + lsls r0, 5 + ldr r7, [sp, 0x40] + adds r1, r0, r7 + adds r0, r3, r1 + movs r4, 0 + ldrsh r5, [r0, r4] + movs r7, 0x4 + ldrsh r0, [r0, r7] + cmp r5, r0 + bge _0804EE6C + mov r8, r1 +_0804EE18: + mov r1, r9 + subs r0, r2, r1 + lsls r0, 5 + ldr r2, [sp, 0x40] + adds r0, r2 + adds r0, r3, r0 + movs r3, 0x2 + ldrsh r4, [r0, r3] + movs r7, 0x6 + ldrsh r0, [r0, r7] + adds r1, r5, 0x1 + str r1, [sp, 0x54] + cmp r4, r0 + bge _0804EE52 + ldr r6, [sp, 0x4C] + add r6, r8 +_0804EE38: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r2, [r0, 0x4] + movs r1, 0x10 + orrs r1, r2 + strh r1, [r0, 0x4] + adds r4, 0x1 + movs r2, 0x6 + ldrsh r0, [r6, r2] + cmp r4, r0 + blt _0804EE38 +_0804EE52: + ldr r5, [sp, 0x54] + ldr r3, [sp, 0x4C] + ldr r2, [sp, 0x48] + mov r4, r9 + subs r0, r2, r4 + lsls r0, 5 + ldr r7, [sp, 0x40] + adds r0, r7 + adds r0, r3, r0 + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r5, r0 + blt _0804EE18 +_0804EE6C: + ldr r2, _0804EEA4 + ldr r0, [r2] + ldr r1, [r2, 0x8] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r5, r0, 1 + ldr r0, [r2, 0x4] + ldr r1, [r2, 0xC] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r4, r0, 1 + ldr r0, _0804EE94 + strh r5, [r0] + strh r4, [r0, 0x2] + b _0804EED4 + .align 2, 0 +_0804EE90: .4byte gUnknown_203B418 +_0804EE94: .4byte gUnknown_202F1D8 +_0804EE98: .4byte 0x0000ffff +_0804EE9C: .4byte gUnknown_202F1AB +_0804EEA0: .4byte gUnknown_202F1AA +_0804EEA4: .4byte gUnknown_202F1B8 +_0804EEA8: .4byte 0x0000e240 +_0804EEAC: .4byte 0x0000270f +_0804EEB0: .4byte 0x0000e244 +_0804EEB4: .4byte 0x0000e248 +_0804EEB8: .4byte 0xffffd8f1 +_0804EEBC: .4byte 0x0000e24c +_0804EEC0: .4byte 0x0000fff7 +_0804EEC4: + adds r4, 0x1 + cmp r4, 0xE + bgt _0804EECC + b _0804EC98 +_0804EECC: + adds r5, 0x1 + cmp r5, 0xE + bgt _0804EED4 + b _0804EC84 +_0804EED4: + add sp, 0x58 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804EBC8 + + thumb_func_start sub_804EEE4 +sub_804EEE4: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x108 + str r0, [sp, 0x100] + mov r8, r1 + adds r7, r2, 0 + adds r4, r3, 0 + ldr r5, _0804F094 + ldr r0, [r5] + str r0, [sp, 0x104] + cmp r4, 0 + bne _0804EF04 + b _0804F0C0 +_0804EF04: + movs r0, 0x64 + bl sub_8084100 + cmp r4, r0 + bgt _0804EF10 + b _0804F0C0 +_0804EF10: + ldr r0, _0804F098 + ldrb r0, [r0] + cmp r0, 0 + beq _0804EF1A + b _0804F0C0 +_0804EF1A: + ldr r0, [r5] + movs r1, 0xD1 + lsls r1, 3 + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _0804EF2C + b _0804F0C0 +_0804EF2C: + bl sub_8043D10 + lsls r0, 24 + cmp r0, 0 + beq _0804EF38 + b _0804F0C0 +_0804EF38: + movs r6, 0 + movs r1, 0 + cmp r1, r8 + bge _0804EF94 +_0804EF40: + adds r2, r1, 0x1 + cmp r7, 0 + ble _0804EF8E + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, [sp, 0x100] + adds r1, 0x8 + adds r1, r0, r1 + adds r3, r7, 0 +_0804EF54: + ldrb r0, [r1] + cmp r0, 0 + bne _0804EF86 + ldrb r0, [r1, 0x9] + cmp r0, 0 + bne _0804EF86 + ldrb r0, [r1, 0x3] + cmp r0, 0 + beq _0804EF86 + ldrb r0, [r1, 0x2] + cmp r0, 0 + beq _0804EF86 + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _0804EF86 + ldrb r0, [r1, 0x7] + cmp r0, 0 + bne _0804EF86 + ldrb r0, [r1, 0x8] + cmp r0, 0 + bne _0804EF86 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _0804EF86 + adds r6, 0x1 +_0804EF86: + adds r1, 0x20 + subs r3, 0x1 + cmp r3, 0 + bne _0804EF54 +_0804EF8E: + adds r1, r2, 0 + cmp r1, r8 + blt _0804EF40 +_0804EF94: + cmp r6, 0 + bne _0804EF9A + b _0804F0C0 +_0804EF9A: + movs r1, 0 + mov r0, sp + adds r0, 0xFF +_0804EFA0: + strb r1, [r0] + subs r0, 0x1 + cmp r0, sp + bge _0804EFA0 + mov r1, sp + movs r0, 0x1 + strb r0, [r1] + movs r5, 0x3F +_0804EFB0: + adds r0, r6, 0 + bl sub_8084100 + adds r4, r0, 0 + adds r0, r6, 0 + bl sub_8084100 + mov r3, sp + adds r2, r3, r4 + ldrb r3, [r2] + mov r4, sp + adds r1, r4, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + subs r5, 0x1 + cmp r5, 0 + bge _0804EFB0 + movs r5, 0 + movs r1, 0 + cmp r1, r8 + bge _0804F0C0 + ldr r6, [sp, 0x100] + mov r9, r6 + movs r4, 0 +_0804EFE2: + movs r3, 0 + cmp r3, r7 + bge _0804F0B2 + mov r10, r3 + lsls r0, r4, 5 + ldr r6, [sp, 0x100] + adds r2, r0, r6 +_0804EFF0: + ldrb r0, [r2, 0x8] + cmp r0, 0 + bne _0804F0A6 + ldrb r0, [r2, 0x11] + cmp r0, 0 + bne _0804F0A6 + ldrb r0, [r2, 0xB] + cmp r0, 0 + beq _0804F0A6 + ldrb r0, [r2, 0xA] + cmp r0, 0 + beq _0804F0A6 + ldrb r0, [r2, 0xC] + cmp r0, 0 + bne _0804F0A6 + ldrb r0, [r2, 0xF] + cmp r0, 0 + bne _0804F0A6 + ldrb r0, [r2, 0x10] + cmp r0, 0 + bne _0804F0A6 + ldrb r0, [r2, 0x9] + cmp r0, 0 + bne _0804F0A6 + mov r6, sp + adds r0, r6, r5 + ldrb r0, [r0] + cmp r0, 0 + beq _0804F0A4 + ldr r1, _0804F09C + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x1 + strb r0, [r2, 0xE] + movs r0, 0 + ldrsh r5, [r2, r0] + movs r1, 0x4 + ldrsh r0, [r2, r1] + cmp r5, r0 + bge _0804F0C0 + mov r2, r10 + add r2, r9 + mov r8, r2 +_0804F046: + mov r1, r10 + add r1, r9 + movs r3, 0x2 + ldrsh r4, [r1, r3] + movs r6, 0x6 + ldrsh r0, [r1, r6] + adds r7, r5, 0x1 + cmp r4, r0 + bge _0804F086 + adds r6, r1, 0 +_0804F05A: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r2, [r0] + movs r1, 0x40 + orrs r1, r2 + strh r1, [r0] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrb r1, [r0, 0x9] + ldr r2, [sp, 0x104] + ldr r3, _0804F0A0 + adds r0, r2, r3 + strb r1, [r0] + adds r4, 0x1 + movs r1, 0x6 + ldrsh r0, [r6, r1] + cmp r4, r0 + blt _0804F05A +_0804F086: + adds r5, r7, 0 + mov r2, r8 + movs r3, 0x4 + ldrsh r0, [r2, r3] + cmp r5, r0 + blt _0804F046 + b _0804F0C0 + .align 2, 0 +_0804F094: .4byte gUnknown_203B418 +_0804F098: .4byte gUnknown_202F1AA +_0804F09C: .4byte gUnknown_202F1AB +_0804F0A0: .4byte 0x00003a0c +_0804F0A4: + adds r5, 0x1 +_0804F0A6: + movs r6, 0x20 + add r10, r6 + adds r2, 0x20 + adds r3, 0x1 + cmp r3, r7 + blt _0804EFF0 +_0804F0B2: + movs r0, 0xF0 + lsls r0, 1 + add r9, r0 + adds r4, 0xF + adds r1, 0x1 + cmp r1, r8 + blt _0804EFE2 +_0804F0C0: + add sp, 0x108 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804EEE4 + + thumb_func_start sub_804F0D0 +sub_804F0D0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x104 + str r0, [sp, 0x100] + mov r10, r1 + mov r9, r2 + adds r4, r3, 0 + ldr r0, _0804F244 + ldr r5, [r0] + cmp r4, 0 + bne _0804F0EE + b _0804F266 +_0804F0EE: + movs r0, 0x64 + bl sub_8084100 + cmp r4, r0 + bgt _0804F0FA + b _0804F266 +_0804F0FA: + ldr r1, _0804F248 + adds r0, r5, r1 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + blt _0804F108 + b _0804F266 +_0804F108: + movs r5, 0 + movs r6, 0 + cmp r6, r10 + bge _0804F184 +_0804F110: + adds r7, r6, 0x1 + mov r4, r9 + cmp r4, 0 + ble _0804F17E + lsls r0, r6, 4 + subs r0, r6 + lsls r0, 5 + ldr r6, [sp, 0x100] + adds r2, r0, r6 +_0804F122: + ldrb r0, [r2, 0x8] + cmp r0, 0 + bne _0804F176 + ldrb r0, [r2, 0x11] + cmp r0, 0 + bne _0804F176 + ldrb r0, [r2, 0xB] + cmp r0, 0 + beq _0804F176 + ldrb r0, [r2, 0xA] + cmp r0, 0 + beq _0804F176 + ldrb r0, [r2, 0xC] + cmp r0, 0 + bne _0804F176 + ldrb r0, [r2, 0xF] + cmp r0, 0 + bne _0804F176 + ldrb r0, [r2, 0xE] + cmp r0, 0 + bne _0804F176 + ldrb r0, [r2, 0x9] + cmp r0, 0 + bne _0804F176 + movs r1, 0x4 + ldrsh r0, [r2, r1] + movs r3, 0 + ldrsh r1, [r2, r3] + subs r0, r1 + movs r3, 0x1 + ands r0, r3 + cmp r0, 0 + beq _0804F176 + movs r6, 0x6 + ldrsh r0, [r2, r6] + movs r6, 0x2 + ldrsh r1, [r2, r6] + subs r0, r1 + ands r0, r3 + cmp r0, 0 + beq _0804F176 + adds r5, 0x1 +_0804F176: + adds r2, 0x20 + subs r4, 0x1 + cmp r4, 0 + bne _0804F122 +_0804F17E: + adds r6, r7, 0 + cmp r6, r10 + blt _0804F110 +_0804F184: + cmp r5, 0 + beq _0804F266 + movs r1, 0 + mov r0, sp + adds r0, 0xFF +_0804F18E: + strb r1, [r0] + subs r0, 0x1 + cmp r0, sp + bge _0804F18E + mov r1, sp + movs r0, 0x1 + strb r0, [r1] + movs r7, 0x3F + mov r8, r7 +_0804F1A0: + adds r0, r5, 0 + bl sub_8084100 + adds r4, r0, 0 + adds r0, r5, 0 + bl sub_8084100 + mov r1, sp + adds r2, r1, r4 + ldrb r3, [r2] + adds r1, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + movs r3, 0x1 + negs r3, r3 + add r8, r3 + mov r4, r8 + cmp r4, 0 + bge _0804F1A0 + movs r6, 0 + mov r8, r6 + cmp r6, r10 + bge _0804F266 + ldr r7, [sp, 0x100] + mov r12, r7 +_0804F1D4: + movs r4, 0 + cmp r4, r9 + bge _0804F25A + mov r2, r12 + mov r5, r12 +_0804F1DE: + ldrb r0, [r2, 0x8] + cmp r0, 0 + bne _0804F250 + ldrb r0, [r2, 0x11] + cmp r0, 0 + bne _0804F250 + ldrb r0, [r2, 0xB] + cmp r0, 0 + beq _0804F250 + ldrb r0, [r2, 0xA] + cmp r0, 0 + beq _0804F250 + ldrb r0, [r2, 0xC] + cmp r0, 0 + bne _0804F250 + ldrb r0, [r2, 0xF] + cmp r0, 0 + bne _0804F250 + ldrb r0, [r2, 0xE] + cmp r0, 0 + bne _0804F250 + ldrb r0, [r2, 0x9] + cmp r0, 0 + bne _0804F250 + movs r1, 0x4 + ldrsh r0, [r2, r1] + movs r3, 0 + ldrsh r1, [r2, r3] + subs r0, r1 + movs r3, 0x1 + ands r0, r3 + cmp r0, 0 + beq _0804F250 + movs r7, 0x6 + ldrsh r0, [r2, r7] + movs r7, 0x2 + ldrsh r1, [r2, r7] + subs r0, r1 + ands r0, r3 + cmp r0, 0 + beq _0804F250 + mov r0, sp + add r0, r8 + ldrb r0, [r0] + cmp r0, 0 + beq _0804F24C + adds r0, r5, 0 + movs r1, 0 + bl sub_804F278 + b _0804F266 + .align 2, 0 +_0804F244: .4byte gUnknown_203B418 +_0804F248: .4byte 0x00003a16 +_0804F24C: + movs r0, 0x1 + add r8, r0 +_0804F250: + adds r2, 0x20 + adds r5, 0x20 + adds r4, 0x1 + cmp r4, r9 + blt _0804F1DE +_0804F25A: + movs r1, 0xF0 + lsls r1, 1 + add r12, r1 + adds r6, 0x1 + cmp r6, r10 + blt _0804F1D4 +_0804F266: + add sp, 0x104 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804F0D0 + + thumb_func_start sub_804F278 +sub_804F278: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + ldr r1, _0804F2B0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x1 + strb r0, [r4, 0x10] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl sub_804954C + ldrb r0, [r0, 0x9] + mov r9, r0 + movs r5, 0 + ldrsh r0, [r4, r5] + adds r6, r0, 0x1 + b _0804F2F0 + .align 2, 0 +_0804F2B0: .4byte gUnknown_202F1AC +_0804F2B4: + movs r2, 0x2 + ldrsh r1, [r4, r2] + subs r1, 0x1 + adds r0, r6, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804F2EE + movs r5, 0x2 + ldrsh r3, [r4, r5] + subs r1, r3, 0x1 + movs r0, 0 + ldrsh r2, [r4, r0] + movs r5, 0x4 + ldrsh r0, [r4, r5] + str r0, [sp] + movs r5, 0x6 + ldrsh r0, [r4, r5] + str r0, [sp, 0x4] + mov r0, r8 + str r0, [sp, 0x8] + mov r5, r9 + str r5, [sp, 0xC] + adds r0, r6, 0 + bl sub_804F494 +_0804F2EE: + adds r6, 0x2 +_0804F2F0: + movs r1, 0x4 + ldrsh r0, [r4, r1] + subs r0, 0x1 + cmp r6, r0 + blt _0804F2B4 + movs r2, 0x2 + ldrsh r0, [r4, r2] + adds r5, r0, 0x1 + movs r6, 0x6 + ldrsh r0, [r4, r6] + b _0804F342 +_0804F306: + movs r1, 0x4 + ldrsh r0, [r4, r1] + adds r1, r5, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804F33C + movs r2, 0x4 + ldrsh r0, [r4, r2] + movs r6, 0 + ldrsh r2, [r4, r6] + movs r1, 0x2 + ldrsh r3, [r4, r1] + str r0, [sp] + movs r6, 0x6 + ldrsh r1, [r4, r6] + str r1, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + mov r6, r9 + str r6, [sp, 0xC] + adds r1, r5, 0 + bl sub_804F494 +_0804F33C: + adds r5, 0x2 + movs r1, 0x6 + ldrsh r0, [r4, r1] +_0804F342: + subs r0, 0x1 + cmp r5, r0 + blt _0804F306 + movs r2, 0 + ldrsh r0, [r4, r2] + adds r6, r0, 0x1 + movs r5, 0x4 + ldrsh r0, [r4, r5] + b _0804F392 +_0804F354: + movs r0, 0x6 + ldrsh r1, [r4, r0] + adds r0, r6, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804F38C + movs r2, 0x6 + ldrsh r1, [r4, r2] + movs r5, 0 + ldrsh r2, [r4, r5] + movs r0, 0x2 + ldrsh r3, [r4, r0] + movs r5, 0x4 + ldrsh r0, [r4, r5] + str r0, [sp] + adds r0, r1, 0 + str r0, [sp, 0x4] + mov r0, r8 + str r0, [sp, 0x8] + mov r5, r9 + str r5, [sp, 0xC] + adds r0, r6, 0 + bl sub_804F494 +_0804F38C: + adds r6, 0x2 + movs r1, 0x4 + ldrsh r0, [r4, r1] +_0804F392: + subs r0, 0x1 + cmp r6, r0 + blt _0804F354 + movs r2, 0x2 + ldrsh r0, [r4, r2] + adds r5, r0, 0x1 + movs r6, 0x6 + ldrsh r0, [r4, r6] + b _0804F3E4 +_0804F3A4: + movs r1, 0 + ldrsh r0, [r4, r1] + subs r0, 0x1 + adds r1, r5, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804F3DE + movs r6, 0 + ldrsh r2, [r4, r6] + subs r0, r2, 0x1 + movs r1, 0x2 + ldrsh r3, [r4, r1] + movs r6, 0x4 + ldrsh r1, [r4, r6] + str r1, [sp] + movs r6, 0x6 + ldrsh r1, [r4, r6] + str r1, [sp, 0x4] + mov r1, r8 + str r1, [sp, 0x8] + mov r6, r9 + str r6, [sp, 0xC] + adds r1, r5, 0 + bl sub_804F494 +_0804F3DE: + adds r5, 0x2 + movs r1, 0x6 + ldrsh r0, [r4, r1] +_0804F3E4: + subs r0, 0x1 + cmp r5, r0 + blt _0804F3A4 + movs r2, 0 + ldrsh r0, [r4, r2] + adds r6, r0, 0x3 + b _0804F478 +_0804F3F2: + movs r1, 0x2 + ldrsh r0, [r4, r1] + adds r5, r0, 0x3 + movs r2, 0x6 + ldrsh r0, [r4, r2] + subs r0, 0x3 + adds r1, r6, 0x2 + mov r10, r1 + cmp r5, r0 + bge _0804F476 + ldr r2, _0804F434 + adds r7, r2, 0 +_0804F40A: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _0804F46A + mov r0, r8 + cmp r0, 0 + beq _0804F438 + subs r0, r6, 0x1 + adds r1, r5, 0 + bl sub_8049590 + ldrh r1, [r0] + ands r1, r7 + movs r2, 0x2 + orrs r1, r2 + b _0804F444 + .align 2, 0 +_0804F434: .4byte 0x0000fffc +_0804F438: + subs r0, r6, 0x1 + adds r1, r5, 0 + bl sub_8049590 + ldrh r1, [r0] + ands r1, r7 +_0804F444: + strh r1, [r0] + movs r1, 0 + ldrsh r2, [r4, r1] + movs r0, 0x2 + ldrsh r3, [r4, r0] + movs r1, 0x4 + ldrsh r0, [r4, r1] + str r0, [sp] + movs r1, 0x6 + ldrsh r0, [r4, r1] + str r0, [sp, 0x4] + mov r0, r8 + str r0, [sp, 0x8] + mov r1, r9 + str r1, [sp, 0xC] + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_804F494 +_0804F46A: + adds r5, 0x2 + movs r2, 0x6 + ldrsh r0, [r4, r2] + subs r0, 0x3 + cmp r5, r0 + blt _0804F40A +_0804F476: + mov r6, r10 +_0804F478: + movs r5, 0x4 + ldrsh r0, [r4, r5] + subs r0, 0x3 + cmp r6, r0 + blt _0804F3F2 + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804F278 + + thumb_func_start sub_804F494 +sub_804F494: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r5, r0, 0 + adds r4, r1, 0 + str r2, [sp] + str r3, [sp, 0x4] + ldr r0, [sp, 0x30] + ldr r1, [sp, 0x34] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 24 + mov r8, r1 + movs r0, 0x3 + mov r10, r0 +_0804F4BA: + movs r0, 0x4 + bl sub_8084100 + adds r6, r0, 0 + movs r7, 0 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + mov r1, r9 + mov r3, r8 + lsrs r2, r3, 24 + bl sub_804E9A8 +_0804F4D6: + adds r0, r6, 0 + mov r1, r10 + ands r0, r1 + cmp r0, 0x1 + beq _0804F4F6 + cmp r0, 0x1 + bgt _0804F4EA + cmp r0, 0 + beq _0804F4F0 + b _0804F506 +_0804F4EA: + cmp r0, 0x2 + beq _0804F4FE + b _0804F506 +_0804F4F0: + movs r0, 0x2 + movs r1, 0 + b _0804F50A +_0804F4F6: + movs r0, 0 + movs r1, 0x2 + negs r1, r1 + b _0804F50A +_0804F4FE: + movs r0, 0x2 + negs r0, r0 + movs r1, 0 + b _0804F50A +_0804F506: + movs r0, 0 + movs r1, 0x2 +_0804F50A: + adds r0, r5, r0 + ldr r2, [sp] + cmp r2, r0 + bgt _0804F534 + ldr r3, [sp, 0x28] + cmp r3, r0 + ble _0804F534 + adds r1, r4, r1 + ldr r2, [sp, 0x4] + cmp r2, r1 + bgt _0804F534 + ldr r3, [sp, 0x2C] + cmp r3, r1 + ble _0804F534 + bl sub_804954C + ldrh r1, [r0] + mov r0, r10 + ands r0, r1 + cmp r0, 0x1 + beq _0804F53E +_0804F534: + adds r6, 0x1 + adds r7, 0x1 + cmp r7, 0x3 + bgt _0804F5B2 + b _0804F4D6 +_0804F53E: + mov r0, r10 + ands r0, r6 + cmp r0, 0x1 + beq _0804F570 + cmp r0, 0x1 + bgt _0804F550 + cmp r0, 0 + beq _0804F55A + b _0804F4BA +_0804F550: + cmp r0, 0x2 + beq _0804F586 + cmp r0, 0x3 + beq _0804F59C + b _0804F4BA +_0804F55A: + adds r0, r5, 0x1 + adds r1, r4, 0 + bl sub_8049590 + mov r1, r9 + mov r3, r8 + lsrs r2, r3, 24 + bl sub_804E9A8 + adds r5, 0x2 + b _0804F4BA +_0804F570: + subs r1, r4, 0x1 + adds r0, r5, 0 + bl sub_8049590 + mov r1, r9 + mov r3, r8 + lsrs r2, r3, 24 + bl sub_804E9A8 + subs r4, 0x2 + b _0804F4BA +_0804F586: + subs r0, r5, 0x1 + adds r1, r4, 0 + bl sub_8049590 + mov r1, r9 + mov r3, r8 + lsrs r2, r3, 24 + bl sub_804E9A8 + subs r5, 0x2 + b _0804F4BA +_0804F59C: + adds r1, r4, 0x1 + adds r0, r5, 0 + bl sub_8049590 + mov r1, r9 + mov r3, r8 + lsrs r2, r3, 24 + bl sub_804E9A8 + adds r4, 0x2 + b _0804F4BA +_0804F5B2: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804F494 + + thumb_func_start sub_804F5C4 +sub_804F5C4: + ldrh r3, [r0] + ldr r2, _0804F5D4 + ands r2, r3 + movs r3, 0x2 + orrs r2, r3 + orrs r2, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_0804F5D4: .4byte 0x0000fffc + thumb_func_end sub_804F5C4 + + thumb_func_start sub_804F5D8 +sub_804F5D8: + push {r4-r7,lr} + adds r5, r0, 0 + movs r0, 0 + ldrsh r6, [r5, r0] + b _0804F60C +_0804F5E2: + movs r0, 0x2 + ldrsh r4, [r5, r0] + movs r1, 0x6 + ldrsh r0, [r5, r1] + adds r7, r6, 0x1 + cmp r4, r0 + bge _0804F60A +_0804F5F0: + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r2, [r0, 0x4] + movs r1, 0x20 + orrs r1, r2 + strh r1, [r0, 0x4] + adds r4, 0x1 + movs r1, 0x6 + ldrsh r0, [r5, r1] + cmp r4, r0 + blt _0804F5F0 +_0804F60A: + adds r6, r7, 0 +_0804F60C: + movs r1, 0x4 + ldrsh r0, [r5, r1] + cmp r6, r0 + blt _0804F5E2 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804F5D8 + + thumb_func_start sub_804F61C +sub_804F61C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r0 + mov r8, r1 + movs r7, 0x1 + negs r7, r7 + b _0804F67A +_0804F62E: + movs r5, 0x1 + negs r5, r5 + b _0804F666 +_0804F634: + cmp r7, 0 + beq _0804F63C + cmp r5, 0 + bne _0804F660 +_0804F63C: + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _0804F660 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_804954C + ldrb r0, [r0, 0x9] + cmp r0, 0xFF + bne _0804F660 + movs r0, 0x1 + b _0804F686 +_0804F660: + adds r5, 0x1 + cmp r5, 0x1 + bgt _0804F672 +_0804F666: + mov r0, r8 + adds r4, r0, r5 + cmp r4, 0 + blt _0804F660 + cmp r4, 0x1F + ble _0804F634 +_0804F672: + adds r7, 0x1 + cmp r7, 0x1 + bgt _0804F684 + mov r0, r9 +_0804F67A: + adds r6, r0, r7 + cmp r6, 0 + blt _0804F672 + cmp r6, 0x37 + ble _0804F62E +_0804F684: + movs r0, 0 +_0804F686: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_804F61C + + thumb_func_start sub_804F694 +sub_804F694: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r7, r0, 0 + movs r0, 0x6 + bl sub_8084100 + subs r0, 0x1 + cmp r0, 0x4 + bls _0804F6B0 + b _0804FBD6 +_0804F6B0: + lsls r0, 2 + ldr r1, _0804F6BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804F6BC: .4byte _0804F6C0 + .align 2, 0 +_0804F6C0: + .4byte _0804FB24 + .4byte _0804FA98 + .4byte _0804F9DC + .4byte _0804F826 + .4byte _0804F6D4 +_0804F6D4: + ldr r1, _0804F70C + ldr r0, [r1] + cmp r0, 0 + bne _0804F6DE + b _0804FBD6 +_0804F6DE: + subs r0, 0x1 + str r0, [r1] + adds r0, r7, 0 + bl sub_804F5D8 + movs r0, 0x2 + bl sub_8084100 + cmp r0, 0 + beq _0804F78E + movs r5, 0 + movs r1, 0 + ldrsh r0, [r7, r1] + movs r2, 0x4 + ldrsh r1, [r7, r2] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + mov r8, r0 + movs r3, 0x2 + ldrsh r4, [r7, r3] + b _0804F712 + .align 2, 0 +_0804F70C: .4byte gUnknown_202F1C8 +_0804F710: + adds r4, 0x1 +_0804F712: + movs r1, 0x6 + ldrsh r0, [r7, r1] + cmp r4, r0 + bge _0804F72A + mov r0, r8 + adds r1, r4, 0 + bl sub_804F61C + lsls r0, 24 + cmp r0, 0 + beq _0804F710 + movs r5, 0x1 +_0804F72A: + cmp r5, 0 + beq _0804F730 + b _0804FBD6 +_0804F730: + movs r2, 0x2 + ldrsh r4, [r7, r2] + movs r3, 0x6 + ldrsh r0, [r7, r3] + cmp r4, r0 + bge _0804F754 +_0804F73C: + mov r0, r8 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0 + bl sub_804F5C4 + adds r4, 0x1 + movs r5, 0x6 + ldrsh r0, [r7, r5] + cmp r4, r0 + blt _0804F73C +_0804F754: + movs r0, 0 + ldrsh r5, [r7, r0] + cmp r5, r8 + blt _0804F75E + b _0804FBD2 +_0804F75E: + movs r1, 0x2 + ldrsh r4, [r7, r1] + movs r2, 0x6 + ldrsh r0, [r7, r2] + adds r6, r5, 0x1 + cmp r4, r0 + bge _0804F786 +_0804F76C: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r2, [r0] + movs r1, 0x80 + orrs r1, r2 + strh r1, [r0] + adds r4, 0x1 + movs r3, 0x6 + ldrsh r0, [r7, r3] + cmp r4, r0 + blt _0804F76C +_0804F786: + adds r5, r6, 0 + cmp r5, r8 + blt _0804F75E + b _0804FBD2 +_0804F78E: + movs r5, 0 + movs r4, 0x2 + ldrsh r0, [r7, r4] + movs r2, 0x6 + ldrsh r1, [r7, r2] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + mov r8, r0 + movs r3, 0 + ldrsh r4, [r7, r3] + b _0804F7AA +_0804F7A8: + adds r4, 0x1 +_0804F7AA: + movs r1, 0x4 + ldrsh r0, [r7, r1] + cmp r4, r0 + bge _0804F7C2 + adds r0, r4, 0 + mov r1, r8 + bl sub_804F61C + lsls r0, 24 + cmp r0, 0 + beq _0804F7A8 + movs r5, 0x1 +_0804F7C2: + cmp r5, 0 + beq _0804F7C8 + b _0804FBD6 +_0804F7C8: + movs r2, 0 + ldrsh r4, [r7, r2] + movs r3, 0x4 + ldrsh r0, [r7, r3] + cmp r4, r0 + bge _0804F7EC +_0804F7D4: + adds r0, r4, 0 + mov r1, r8 + bl sub_8049590 + movs r1, 0 + bl sub_804F5C4 + adds r4, 0x1 + movs r5, 0x4 + ldrsh r0, [r7, r5] + cmp r4, r0 + blt _0804F7D4 +_0804F7EC: + movs r0, 0x2 + ldrsh r5, [r7, r0] + cmp r5, r8 + blt _0804F7F6 + b _0804FBD2 +_0804F7F6: + movs r1, 0 + ldrsh r4, [r7, r1] + movs r2, 0x4 + ldrsh r0, [r7, r2] + adds r6, r5, 0x1 + cmp r4, r0 + bge _0804F81E +_0804F804: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8049590 + ldrh r2, [r0] + movs r1, 0x80 + orrs r1, r2 + strh r1, [r0] + adds r4, 0x1 + movs r3, 0x4 + ldrsh r0, [r7, r3] + cmp r4, r0 + blt _0804F804 +_0804F81E: + adds r5, r6, 0 + cmp r5, r8 + blt _0804F7F6 + b _0804FBD2 +_0804F826: + movs r4, 0x4 + ldrsh r3, [r7, r4] + movs r5, 0 + ldrsh r1, [r7, r5] + subs r0, r3, r1 + cmp r0, 0x5 + bgt _0804F836 + b _0804FBD6 +_0804F836: + movs r0, 0x6 + ldrsh r4, [r7, r0] + movs r5, 0x2 + ldrsh r2, [r7, r5] + subs r0, r4, r2 + cmp r0, 0x5 + bgt _0804F846 + b _0804FBD6 +_0804F846: + adds r0, r1, r3 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + str r0, [sp] + adds r0, r2, r4 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + str r0, [sp, 0x4] + ldr r1, _0804F9D8 + ldr r0, [r1] + cmp r0, 0 + bne _0804F864 + b _0804FBD6 +_0804F864: + subs r0, 0x1 + str r0, [r1] + adds r0, r7, 0 + bl sub_804F5D8 + ldr r5, [sp] + subs r5, 0x2 + ldr r0, [sp, 0x4] + subs r0, 0x2 + mov r10, r0 + adds r0, r5, 0 + mov r1, r10 + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + ldr r1, [sp] + subs r1, 0x1 + mov r9, r1 + mov r0, r9 + mov r1, r10 + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + ldr r0, [sp] + mov r1, r10 + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + ldr r2, [sp] + adds r2, 0x1 + mov r8, r2 + mov r0, r8 + mov r1, r10 + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + ldr r6, [sp, 0x4] + subs r6, 0x1 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + adds r0, r5, 0 + ldr r1, [sp, 0x4] + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + ldr r4, [sp, 0x4] + adds r4, 0x1 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + mov r0, r9 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + ldr r0, [sp] + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + mov r0, r8 + mov r1, r10 + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + mov r0, r8 + adds r1, r6, 0 + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + mov r0, r8 + ldr r1, [sp, 0x4] + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + mov r0, r8 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0x4 + bl sub_804F5C4 + mov r0, r9 + adds r1, r6, 0 + bl sub_8049590 + ldrh r2, [r0, 0x4] + movs r1, 0x4 + orrs r1, r2 + strh r1, [r0, 0x4] + mov r0, r9 + adds r1, r6, 0 + bl sub_8049590 + ldrh r1, [r0, 0x4] + movs r2, 0x40 + orrs r1, r2 + strh r1, [r0, 0x4] + ldr r0, [sp] + adds r1, r6, 0 + bl sub_8049590 + ldrh r1, [r0, 0x4] + movs r4, 0x2 + orrs r1, r4 + strh r1, [r0, 0x4] + mov r0, r9 + ldr r1, [sp, 0x4] + bl sub_8049590 + ldrh r1, [r0, 0x4] + orrs r1, r4 + strh r1, [r0, 0x4] + ldr r0, [sp] + ldr r1, [sp, 0x4] + bl sub_8049590 + ldrh r1, [r0, 0x4] + orrs r1, r4 + strh r1, [r0, 0x4] + mov r0, r9 + adds r1, r6, 0 + bl sub_8049590 + ldrh r1, [r0, 0x4] + movs r4, 0x10 + orrs r1, r4 + strh r1, [r0, 0x4] + ldr r0, [sp] + adds r1, r6, 0 + bl sub_8049590 + ldrh r1, [r0, 0x4] + orrs r1, r4 + strh r1, [r0, 0x4] + mov r0, r9 + ldr r1, [sp, 0x4] + bl sub_8049590 + ldrh r1, [r0, 0x4] + orrs r1, r4 + strh r1, [r0, 0x4] + ldr r0, [sp] + ldr r1, [sp, 0x4] + bl sub_8049590 + ldrh r1, [r0, 0x4] + orrs r4, r1 + strh r4, [r0, 0x4] + b _0804FBD2 + .align 2, 0 +_0804F9D8: .4byte gUnknown_202F1C8 +_0804F9DC: + movs r4, 0x4 + ldrsh r3, [r7, r4] + movs r5, 0 + ldrsh r2, [r7, r5] + subs r0, r3, r2 + cmp r0, 0x4 + bgt _0804F9EC + b _0804FBD6 +_0804F9EC: + movs r1, 0x6 + ldrsh r0, [r7, r1] + movs r4, 0x2 + ldrsh r1, [r7, r4] + subs r0, r1 + cmp r0, 0x4 + bgt _0804F9FC + b _0804FBD6 +_0804F9FC: + adds r0, r2, 0x2 + subs r1, r3, 0x3 + bl sub_808411C + adds r4, r0, 0 + movs r5, 0x2 + ldrsh r0, [r7, r5] + adds r0, 0x2 + movs r2, 0x6 + ldrsh r1, [r7, r2] + subs r1, 0x3 + bl sub_808411C + mov r10, r0 + movs r3, 0 + ldrsh r0, [r7, r3] + adds r0, 0x2 + movs r5, 0x4 + ldrsh r1, [r7, r5] + subs r1, 0x3 + bl sub_808411C + mov r9, r0 + movs r1, 0x2 + ldrsh r0, [r7, r1] + adds r0, 0x2 + movs r2, 0x6 + ldrsh r1, [r7, r2] + subs r1, 0x3 + bl sub_808411C + adds r6, r0, 0 + ldr r1, _0804FA94 + ldr r0, [r1] + cmp r0, 0 + bne _0804FA46 + b _0804FBD6 +_0804FA46: + subs r0, 0x1 + str r0, [r1] + adds r0, r7, 0 + bl sub_804F5D8 + cmp r4, r9 + ble _0804FA5A + adds r0, r4, 0 + mov r4, r9 + mov r9, r0 +_0804FA5A: + cmp r10, r6 + ble _0804FA64 + mov r0, r10 + mov r10, r6 + adds r6, r0, 0 +_0804FA64: + adds r5, r4, 0 + cmp r5, r9 + ble _0804FA6C + b _0804FBD2 +_0804FA6C: + mov r4, r10 + adds r3, r5, 0x1 + mov r8, r3 + cmp r4, r6 + bgt _0804FA8A +_0804FA76: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0 + bl sub_804F5C4 + adds r4, 0x1 + cmp r4, r6 + ble _0804FA76 +_0804FA8A: + mov r5, r8 + cmp r5, r9 + ble _0804FA6C + b _0804FBD2 + .align 2, 0 +_0804FA94: .4byte gUnknown_202F1C8 +_0804FA98: + movs r4, 0x4 + ldrsh r0, [r7, r4] + movs r5, 0 + ldrsh r1, [r7, r5] + subs r0, r1 + movs r2, 0x1 + ands r0, r2 + cmp r0, 0 + bne _0804FAAC + b _0804FBD6 +_0804FAAC: + movs r1, 0x6 + ldrsh r0, [r7, r1] + movs r3, 0x2 + ldrsh r1, [r7, r3] + subs r0, r1 + ands r0, r2 + cmp r0, 0 + bne _0804FABE + b _0804FBD6 +_0804FABE: + ldr r1, _0804FB20 + ldr r0, [r1] + cmp r0, 0 + bne _0804FAC8 + b _0804FBD6 +_0804FAC8: + subs r0, 0x1 + str r0, [r1] + adds r0, r7, 0 + bl sub_804F5D8 + movs r6, 0x3F +_0804FAD4: + movs r4, 0x4 + ldrsh r0, [r7, r4] + movs r5, 0 + ldrsh r1, [r7, r5] + subs r0, r1 + bl sub_8084100 + adds r4, r0, 0 + movs r1, 0x6 + ldrsh r0, [r7, r1] + movs r2, 0x2 + ldrsh r1, [r7, r2] + subs r0, r1 + bl sub_8084100 + adds r2, r0, 0 + adds r0, r4, r2 + movs r5, 0x1 + ands r0, r5 + cmp r0, 0 + beq _0804FB14 + movs r3, 0 + ldrsh r0, [r7, r3] + adds r0, r4 + movs r4, 0x2 + ldrsh r1, [r7, r4] + adds r1, r2 + bl sub_8049590 + movs r1, 0 + bl sub_804F5C4 +_0804FB14: + subs r6, 0x1 + cmp r6, 0 + bge _0804FAD4 + strb r5, [r7, 0x9] + b _0804FBD6 + .align 2, 0 +_0804FB20: .4byte gUnknown_202F1C8 +_0804FB24: + ldr r1, _0804FBC0 + ldr r0, [r1] + cmp r0, 0 + beq _0804FBD6 + subs r0, 0x1 + str r0, [r1] + movs r5, 0x4 + ldrsh r3, [r7, r5] + movs r0, 0 + ldrsh r2, [r7, r0] + subs r6, r3, r2 + movs r4, 0x1 + adds r0, r6, 0 + ands r0, r4 + cmp r0, 0 + beq _0804FB54 + movs r1, 0x6 + ldrsh r0, [r7, r1] + movs r5, 0x2 + ldrsh r1, [r7, r5] + subs r0, r1 + ands r0, r4 + cmp r0, 0 + bne _0804FBC4 +_0804FB54: + adds r0, r2, r3 + lsrs r1, r0, 31 + adds r0, r1 + asrs r5, r0, 1 + movs r0, 0x2 + ldrsh r3, [r7, r0] + movs r1, 0x6 + ldrsh r2, [r7, r1] + adds r0, r3, r2 + lsrs r1, r0, 31 + adds r0, r1 + asrs r4, r0, 1 + cmp r6, 0x4 + ble _0804FBAE + subs r0, r2, r3 + cmp r0, 0x4 + ble _0804FBAE + adds r0, r5, 0x1 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0 + bl sub_804F5C4 + adds r1, r4, 0x1 + adds r0, r5, 0 + bl sub_8049590 + movs r1, 0 + bl sub_804F5C4 + subs r0, r5, 0x1 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0 + bl sub_804F5C4 + subs r1, r4, 0x1 + adds r0, r5, 0 + bl sub_8049590 + movs r1, 0 + bl sub_804F5C4 +_0804FBAE: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0 + bl sub_804F5C4 + b _0804FBD2 + .align 2, 0 +_0804FBC0: .4byte gUnknown_202F1C8 +_0804FBC4: + adds r0, r7, 0 + bl sub_804F5D8 + adds r0, r7, 0 + movs r1, 0x1 + bl sub_804F278 +_0804FBD2: + movs r0, 0x1 + strb r0, [r7, 0x9] +_0804FBD6: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804F694 + + thumb_func_start sub_804FBE8 +sub_804FBE8: + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + ldr r0, _0804FC6C + adds r5, r0, 0 +_0804FBF4: + movs r4, 0 + adds r3, r6, 0x1 + mov r8, r3 +_0804FBFA: + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_8049590 + adds r2, r0, 0 + ldrh r1, [r2] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804FC2A + movs r7, 0x88 + lsls r7, 1 + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _0804FC24 + ldrh r0, [r2, 0x4] + ldr r3, _0804FC70 + adds r1, r3, 0 + ands r0, r1 + strh r0, [r2, 0x4] +_0804FC24: + ldrh r0, [r2, 0x4] + ands r0, r5 + strh r0, [r2, 0x4] +_0804FC2A: + ldrh r3, [r2, 0x4] + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _0804FC46 + ldrh r0, [r2] + movs r7, 0x80 + lsls r7, 2 + adds r1, r7, 0 + orrs r1, r0 + strh r1, [r2] + adds r0, r3, 0 + ands r0, r5 + strh r0, [r2, 0x4] +_0804FC46: + ldrh r1, [r2, 0x4] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0804FC56 + adds r0, r1, 0 + ands r0, r5 + strh r0, [r2, 0x4] +_0804FC56: + adds r4, 0x1 + cmp r4, 0x1F + ble _0804FBFA + mov r6, r8 + cmp r6, 0x37 + ble _0804FBF4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804FC6C: .4byte 0x0000fffb +_0804FC70: .4byte 0x0000fffd + thumb_func_end sub_804FBE8 + + thumb_func_start sub_804FC74 +sub_804FC74: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r5, 0 + movs r0, 0x3 + mov r8, r0 + ldr r0, _0804FCC8 + adds r7, r0, 0 +_0804FC86: + movs r4, 0 + adds r6, r5, 0x1 +_0804FC8A: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + bne _0804FCAE + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r1, [r0] + ands r1, r7 + mov r2, r8 + orrs r1, r2 + strh r1, [r0] +_0804FCAE: + adds r4, 0x1 + cmp r4, 0x1F + ble _0804FC8A + adds r5, r6, 0 + cmp r5, 0x37 + ble _0804FC86 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804FCC8: .4byte 0x0000fffc + thumb_func_end sub_804FC74 + + thumb_func_start sub_804FCCC +sub_804FCCC: + push {r4-r7,lr} + movs r5, 0 + ldr r0, _0804FD0C + adds r7, r0, 0 +_0804FCD4: + movs r4, 0 + adds r6, r5, 0x1 +_0804FCD8: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0804FCF8 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r1, [r0] + ands r1, r7 + strh r1, [r0] +_0804FCF8: + adds r4, 0x1 + cmp r4, 0x1F + ble _0804FCD8 + adds r5, r6, 0 + cmp r5, 0x37 + ble _0804FCD4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804FD0C: .4byte 0x0000fffc + thumb_func_end sub_804FCCC + + thumb_func_start sub_804FD10 +sub_804FD10: + movs r2, 0 + movs r3, 0 + strh r3, [r0] + strh r3, [r0, 0x4] + movs r1, 0xFF + strb r1, [r0, 0x9] + strb r2, [r0, 0x8] + strb r2, [r0, 0xA] + strb r2, [r0, 0xB] + strb r2, [r0, 0xC] + strb r2, [r0, 0xD] + strb r2, [r0, 0xE] + str r3, [r0, 0x10] + str r3, [r0, 0x14] + bx lr + thumb_func_end sub_804FD10 + + thumb_func_start sub_804FD30 +sub_804FD30: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r6, 0 +_0804FD3A: + movs r7, 0 + adds r4, r6, 0x1 +_0804FD3E: + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_8049590 + bl sub_804FD10 + subs r3, r7, 0x1 + cmp r6, 0 + blt _0804FD5C + cmp r3, 0 + blt _0804FD5C + cmp r6, 0x37 + bgt _0804FD5C + cmp r3, 0x1F + ble _0804FD60 +_0804FD5C: + movs r0, 0x1 + b _0804FD62 +_0804FD60: + movs r0, 0 +_0804FD62: + cmp r0, 0 + bne _0804FE24 + cmp r4, 0 + blt _0804FD76 + cmp r3, 0 + blt _0804FD76 + cmp r4, 0x37 + bgt _0804FD76 + cmp r3, 0x1F + ble _0804FD7A +_0804FD76: + movs r0, 0x1 + b _0804FD7C +_0804FD7A: + movs r0, 0 +_0804FD7C: + cmp r0, 0 + bne _0804FE24 + cmp r4, 0 + blt _0804FD90 + cmp r3, 0 + blt _0804FD90 + cmp r4, 0x37 + bgt _0804FD90 + cmp r3, 0x1F + ble _0804FD94 +_0804FD90: + movs r0, 0x1 + b _0804FD96 +_0804FD94: + movs r0, 0 +_0804FD96: + cmp r0, 0 + bne _0804FE24 + adds r2, r7, 0x1 + cmp r4, 0 + blt _0804FDAC + cmp r2, 0 + blt _0804FDAC + cmp r4, 0x37 + bgt _0804FDAC + cmp r2, 0x1F + ble _0804FDB0 +_0804FDAC: + movs r0, 0x1 + b _0804FDB2 +_0804FDB0: + movs r0, 0 +_0804FDB2: + cmp r0, 0 + bne _0804FE24 + cmp r6, 0 + blt _0804FDC6 + cmp r2, 0 + blt _0804FDC6 + cmp r6, 0x37 + bgt _0804FDC6 + cmp r2, 0x1F + ble _0804FDCA +_0804FDC6: + movs r0, 0x1 + b _0804FDCC +_0804FDCA: + movs r0, 0 +_0804FDCC: + cmp r0, 0 + bne _0804FE24 + adds r0, r2, 0 + subs r1, r6, 0x1 + cmp r1, 0 + blt _0804FDE4 + cmp r0, 0 + blt _0804FDE4 + cmp r1, 0x37 + bgt _0804FDE4 + cmp r2, 0x1F + ble _0804FDE8 +_0804FDE4: + movs r0, 0x1 + b _0804FDEA +_0804FDE8: + movs r0, 0 +_0804FDEA: + cmp r0, 0 + bne _0804FE24 + cmp r1, 0 + blt _0804FDFE + cmp r7, 0 + blt _0804FDFE + cmp r1, 0x37 + bgt _0804FDFE + cmp r7, 0x1F + ble _0804FE02 +_0804FDFE: + movs r0, 0x1 + b _0804FE04 +_0804FE02: + movs r0, 0 +_0804FE04: + cmp r0, 0 + bne _0804FE24 + adds r0, r3, 0 + cmp r1, 0 + blt _0804FE1A + cmp r0, 0 + blt _0804FE1A + cmp r1, 0x37 + bgt _0804FE1A + cmp r3, 0x1F + ble _0804FE1E +_0804FE1A: + movs r0, 0x1 + b _0804FE20 +_0804FE1E: + movs r0, 0 +_0804FE20: + cmp r0, 0 + beq _0804FE34 +_0804FE24: + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_8049590 + ldrh r2, [r0] + movs r1, 0x10 + orrs r1, r2 + strh r1, [r0] +_0804FE34: + adds r7, 0x1 + cmp r7, 0x1F + ble _0804FD3E + adds r6, 0x1 + cmp r6, 0x37 + bgt _0804FE42 + b _0804FD3A +_0804FE42: + ldr r3, _0804FEB4 + ldr r1, [r3] + ldr r0, _0804FEB8 + adds r2, r1, r0 + ldr r0, _0804FEBC + strh r0, [r2] + ldr r2, _0804FEC0 + adds r1, r2 + movs r0, 0x1 + negs r0, r0 + strh r0, [r1] + movs r6, 0 + mov r8, r3 + ldr r1, _0804FEC4 +_0804FE5E: + adds r5, r1, 0 + movs r4, 0 + movs r7, 0x7 +_0804FE64: + mov r2, r8 + ldr r0, [r2] + adds r0, r5 + adds r0, r4 + str r1, [sp] + bl sub_804FD10 + adds r4, 0x18 + subs r7, 0x1 + ldr r1, [sp] + cmp r7, 0 + bge _0804FE64 + adds r1, 0xC0 + adds r6, 0x1 + cmp r6, 0x7 + ble _0804FE5E + ldr r0, _0804FEB4 + ldr r1, [r0] + ldr r2, _0804FEC8 + adds r1, r2 + movs r2, 0 + strh r2, [r1] + movs r6, 0 + adds r4, r0, 0 + ldr r3, _0804FECC +_0804FE96: + ldr r0, [r4] + lsls r1, r6, 2 + adds r0, r3 + adds r0, r1 + ldr r0, [r0] + str r2, [r0] + adds r6, 0x1 + cmp r6, 0x3F + ble _0804FE96 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804FEB4: .4byte gUnknown_203B418 +_0804FEB8: .4byte 0x0000e21c +_0804FEBC: .4byte 0x0000ffff +_0804FEC0: .4byte 0x0000e21e +_0804FEC4: .4byte 0x0000e27c +_0804FEC8: .4byte 0x00003904 +_0804FECC: .4byte 0x0001371c + thumb_func_end sub_804FD30 + + thumb_func_start sub_804FED0 +sub_804FED0: + push {r4-r7,lr} + adds r7, r0, 0 + adds r5, r1, 0 + movs r6, 0 + b _0804FEFA +_0804FEDA: + adds r0, r5, 0 + bl sub_8084100 + adds r4, r0, 0 + adds r0, r5, 0 + bl sub_8084100 + lsls r4, 2 + adds r4, r7 + ldr r2, [r4] + lsls r0, 2 + adds r0, r7 + ldr r1, [r0] + str r1, [r4] + str r2, [r0] + adds r6, 0x1 +_0804FEFA: + lsls r0, r5, 1 + cmp r6, r0 + blt _0804FEDA + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804FED0 + + thumb_func_start sub_804FF08 +sub_804FF08: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _08050234 + add sp, r4 + mov r10, r0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0xE0 + lsls r0, 5 + add r0, sp + str r1, [r0] + ldr r0, _08050238 + ldr r0, [r0] + mov r9, r0 + ldr r0, _0805023C + add r0, r9 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _0804FF46 + ldr r0, _08050240 + add r0, r9 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, r1 + bne _08050038 +_0804FF46: + movs r0, 0 + mov r8, r0 + movs r6, 0 +_0804FF4C: + movs r5, 0 + mov r1, r8 + lsls r0, r1, 2 + mov r2, sp + adds r4, r0, r2 +_0804FF56: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_804954C + adds r1, r0, 0 + ldrh r2, [r1] + movs r0, 0x3 + ands r0, r2 + cmp r0, 0x1 + bne _0804FFAA + ldrb r0, [r1, 0x9] + cmp r0, 0xFF + beq _0804FFAA + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + bne _0804FFAA + ldrh r1, [r1, 0x4] + movs r3, 0x8 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0804FFAA + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0804FFAA + adds r0, r3, 0 + ands r0, r2 + cmp r0, 0 + bne _0804FFAA + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + bne _0804FFAA + strb r6, [r4] + strb r5, [r4, 0x1] + adds r4, 0x4 + movs r2, 0x1 + add r8, r2 +_0804FFAA: + adds r5, 0x1 + cmp r5, 0x1F + ble _0804FF56 + adds r6, 0x1 + cmp r6, 0x37 + ble _0804FF4C + mov r0, r8 + cmp r0, 0 + beq _08050038 + bl sub_8084100 + lsls r0, 2 + mov r1, sp + adds r4, r1, r0 + ldrb r0, [r4] + ldrb r1, [r4, 0x1] + bl sub_8049590 + adds r5, r0, 0 + ldrh r1, [r5, 0x4] + movs r0, 0x1 + orrs r0, r1 + ldr r1, _08050244 + ands r0, r1 + strh r0, [r5, 0x4] + ldr r1, _08050248 + ldrb r0, [r5, 0x9] + strb r0, [r1] + ldrb r1, [r4] + ldr r0, _0805023C + add r0, r9 + strh r1, [r0] + ldrb r1, [r4, 0x1] + ldr r0, _08050240 + add r0, r9 + strh r1, [r0] + bl sub_8043D10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08050038 + ldrb r4, [r5, 0x9] + movs r6, 0 +_08050002: + movs r5, 0 +_08050004: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_8049590 + adds r1, r0, 0 + ldrh r2, [r1] + movs r0, 0x3 + ands r0, r2 + cmp r0, 0x1 + bne _0805002C + ldrb r0, [r1, 0x9] + cmp r0, r4 + bne _0805002C + movs r0, 0x40 + orrs r0, r2 + strh r0, [r1] + ldrb r1, [r1, 0x9] + ldr r0, _0805024C + add r0, r9 + strb r1, [r0] +_0805002C: + adds r5, 0x1 + cmp r5, 0x1F + ble _08050004 + adds r6, 0x1 + cmp r6, 0x37 + ble _08050002 +_08050038: + movs r2, 0 + mov r8, r2 + movs r6, 0 +_0805003E: + movs r5, 0 + adds r7, r6, 0x1 + mov r1, r8 + lsls r0, r1, 2 + mov r2, sp + adds r4, r0, r2 +_0805004A: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_804954C + adds r1, r0, 0 + ldrh r2, [r1] + movs r0, 0x3 + ands r0, r2 + cmp r0, 0x1 + bne _08050092 + ldrb r0, [r1, 0x9] + cmp r0, 0xFF + beq _08050092 + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + bne _08050092 + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + bne _08050092 + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + bne _08050092 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + bne _08050092 + strb r6, [r4] + strb r5, [r4, 0x1] + adds r4, 0x4 + movs r2, 0x1 + add r8, r2 +_08050092: + adds r5, 0x1 + cmp r5, 0x1F + ble _0805004A + adds r6, r7, 0 + cmp r6, 0x37 + ble _0805003E + mov r0, r8 + cmp r0, 0 + beq _080500FA + mov r1, r10 + ldrb r4, [r1, 0xF] + cmp r4, 0 + beq _080500FA + subs r0, r4, 0x2 + adds r1, r4, 0x2 + bl sub_808411C + adds r4, r0, 0 + cmp r4, 0 + bgt _080500BC + movs r4, 0x1 +_080500BC: + mov r0, sp + mov r1, r8 + bl sub_804FED0 + mov r0, r8 + bl sub_8084100 + adds r5, r0, 0 + cmp r4, 0 + ble _080500FA + adds r6, r4, 0 + lsls r0, r5, 2 + mov r2, sp + adds r4, r0, r2 +_080500D8: + ldrb r0, [r4] + ldrb r1, [r4, 0x1] + bl sub_8049590 + ldrh r2, [r0, 0x4] + movs r1, 0x2 + orrs r1, r2 + strh r1, [r0, 0x4] + adds r4, 0x4 + adds r5, 0x1 + cmp r5, r8 + bne _080500F4 + mov r4, sp + movs r5, 0 +_080500F4: + subs r6, 0x1 + cmp r6, 0 + bne _080500D8 +_080500FA: + movs r0, 0 + mov r8, r0 + movs r6, 0 +_08050100: + movs r5, 0 + adds r7, r6, 0x1 + mov r1, r8 + lsls r0, r1, 2 + mov r2, sp + adds r4, r0, r2 +_0805010C: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08050128 + strb r6, [r4] + strb r5, [r4, 0x1] + adds r4, 0x4 + movs r0, 0x1 + add r8, r0 +_08050128: + adds r5, 0x1 + cmp r5, 0x1F + ble _0805010C + adds r6, r7, 0 + cmp r6, 0x37 + ble _08050100 + mov r1, r8 + cmp r1, 0 + beq _0805018E + mov r2, r10 + ldrb r4, [r2, 0x14] + cmp r4, 0 + beq _0805018E + subs r0, r4, 0x2 + adds r1, r4, 0x2 + bl sub_808411C + adds r4, r0, 0 + cmp r4, 0 + ble _0805018E + mov r0, sp + mov r1, r8 + bl sub_804FED0 + mov r0, r8 + bl sub_8084100 + adds r5, r0, 0 + cmp r4, 0 + ble _0805018E + adds r6, r4, 0 + lsls r0, r5, 2 + mov r1, sp + adds r4, r0, r1 +_0805016C: + ldrb r0, [r4] + ldrb r1, [r4, 0x1] + bl sub_8049590 + ldrh r2, [r0, 0x4] + movs r1, 0x2 + orrs r1, r2 + strh r1, [r0, 0x4] + adds r4, 0x4 + adds r5, 0x1 + cmp r5, r8 + bne _08050188 + mov r4, sp + movs r5, 0 +_08050188: + subs r6, 0x1 + cmp r6, 0 + bne _0805016C +_0805018E: + movs r2, 0 + mov r8, r2 + movs r0, 0xE0 + lsls r0, 5 + add r0, sp + ldr r0, [r0] + cmp r0, 0 + bne _080501E4 + movs r6, 0 +_080501A0: + movs r5, 0 + adds r7, r6, 0x1 + mov r1, r8 + lsls r0, r1, 2 + mov r2, sp + adds r4, r0, r2 +_080501AC: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _080501D8 + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080501D8 + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _080501D8 + strb r6, [r4] + strb r5, [r4, 0x1] + adds r4, 0x4 + movs r0, 0x1 + add r8, r0 +_080501D8: + adds r5, 0x1 + cmp r5, 0x1F + ble _080501AC + adds r6, r7, 0 + cmp r6, 0x37 + ble _080501A0 +_080501E4: + mov r1, r8 + cmp r1, 0 + beq _08050294 + lsrs r4, r1, 31 + add r4, r8 + asrs r4, 1 + lsls r0, r1, 3 + movs r1, 0xA + bl __divsi3 + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_808411C + adds r4, r0, 0 + cmp r4, 0x5 + bgt _08050208 + movs r4, 0x6 +_08050208: + ldr r0, _08050250 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r4, r0 + blt _08050214 + adds r4, r0, 0 +_08050214: + mov r0, sp + mov r1, r8 + bl sub_804FED0 + mov r0, r8 + bl sub_8084100 + adds r5, r0, 0 + cmp r4, 0 + ble _08050294 + adds r6, r4, 0 + lsls r0, r5, 2 + mov r1, sp + adds r7, r0, r1 +_08050230: + ldrb r0, [r7] + b _08050254 + .align 2, 0 +_08050234: .4byte 0xffffe3fc +_08050238: .4byte gUnknown_203B418 +_0805023C: .4byte 0x0000e21c +_08050240: .4byte 0x0000e21e +_08050244: .4byte 0x0000fffd +_08050248: .4byte gUnknown_202F1B4 +_0805024C: .4byte 0x00003a0c +_08050250: .4byte gUnknown_80F4DA0 +_08050254: + ldrb r1, [r7, 0x1] + bl sub_8049590 + adds r4, r0, 0 + movs r0, 0x2 + bl sub_8084100 + cmp r0, 0 + beq _0805026C + ldrh r0, [r4, 0x4] + movs r1, 0x2 + b _0805027E +_0805026C: + ldr r0, _08050424 + ldr r0, [r0] + ldr r2, _08050428 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _08050282 + ldrh r0, [r4, 0x4] + movs r1, 0x4 +_0805027E: + orrs r0, r1 + strh r0, [r4, 0x4] +_08050282: + adds r7, 0x4 + adds r5, 0x1 + cmp r5, r8 + bne _0805028E + mov r7, sp + movs r5, 0 +_0805028E: + subs r6, 0x1 + cmp r6, 0 + bne _08050230 +_08050294: + movs r0, 0 + mov r8, r0 + movs r6, 0 +_0805029A: + movs r5, 0 + adds r7, r6, 0x1 + mov r1, r8 + lsls r0, r1, 2 + mov r2, sp + adds r4, r0, r2 +_080502A6: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_804954C + adds r1, r0, 0 + ldrh r2, [r1] + movs r0, 0x3 + ands r0, r2 + cmp r0, 0x1 + bne _080502F0 + ldrb r0, [r1, 0x9] + cmp r0, 0xFF + beq _080502F0 + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + bne _080502F0 + ldrh r1, [r1, 0x4] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080502F0 + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + bne _080502F0 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + bne _080502F0 + strb r6, [r4] + strb r5, [r4, 0x1] + adds r4, 0x4 + movs r2, 0x1 + add r8, r2 +_080502F0: + adds r5, 0x1 + cmp r5, 0x1F + ble _080502A6 + adds r6, r7, 0 + cmp r6, 0x37 + ble _0805029A + mov r0, r8 + cmp r0, 0 + beq _08050356 + mov r2, r10 + ldrb r1, [r2, 0x10] + lsrs r0, r1, 1 + bl sub_808411C + adds r4, r0, 0 + cmp r4, 0 + ble _08050356 + cmp r4, 0x37 + ble _08050318 + movs r4, 0x38 +_08050318: + mov r0, sp + mov r1, r8 + bl sub_804FED0 + mov r0, r8 + bl sub_8084100 + adds r5, r0, 0 + cmp r4, 0 + ble _08050356 + adds r6, r4, 0 + lsls r0, r5, 2 + mov r1, sp + adds r4, r0, r1 +_08050334: + ldrb r0, [r4] + ldrb r1, [r4, 0x1] + bl sub_8049590 + ldrh r2, [r0, 0x4] + movs r1, 0x4 + orrs r1, r2 + strh r1, [r0, 0x4] + adds r4, 0x4 + adds r5, 0x1 + cmp r5, r8 + bne _08050350 + mov r4, sp + movs r5, 0 +_08050350: + subs r6, 0x1 + cmp r6, 0 + bne _08050334 +_08050356: + ldr r0, _0805042C + add r0, r9 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _08050372 + ldr r0, _08050430 + add r0, r9 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, r1 + bne _08050410 +_08050372: + movs r0, 0 + mov r8, r0 + movs r6, 0 +_08050378: + movs r5, 0 + adds r7, r6, 0x1 + mov r1, r8 + lsls r0, r1, 2 + mov r2, sp + adds r4, r0, r2 +_08050384: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_804954C + adds r2, r0, 0 + ldrh r1, [r2] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _080503E2 + ldrb r0, [r2, 0x9] + cmp r0, 0xFF + beq _080503E2 + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _080503E2 + movs r3, 0x8 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _080503E2 + movs r0, 0x80 + lsls r0, 1 + mov r10, r0 + mov r0, r10 + ands r0, r1 + cmp r0, 0 + bne _080503E2 + ldrh r1, [r2, 0x4] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080503E2 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _080503E2 + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080503E2 + strb r6, [r4] + strb r5, [r4, 0x1] + adds r4, 0x4 + movs r1, 0x1 + add r8, r1 +_080503E2: + adds r5, 0x1 + cmp r5, 0x1F + ble _08050384 + adds r6, r7, 0 + cmp r6, 0x37 + ble _08050378 + mov r2, r8 + cmp r2, 0 + beq _08050410 + mov r0, r8 + bl sub_8084100 + lsls r0, 2 + mov r1, sp + adds r2, r1, r0 + ldrb r1, [r2] + ldr r0, _0805042C + add r0, r9 + strh r1, [r0] + ldrb r1, [r2, 0x1] + ldr r0, _08050430 + add r0, r9 + strh r1, [r0] +_08050410: + ldr r3, _08050434 + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08050424: .4byte gUnknown_203B418 +_08050428: .4byte 0x0000065c +_0805042C: .4byte 0x0000e218 +_08050430: .4byte 0x0000e21a +_08050434: .4byte 0x00001c04 + thumb_func_end sub_804FF08 + + thumb_func_start sub_8050438 +sub_8050438: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _08050470 + add sp, r4 + lsls r1, 24 + lsrs r1, 24 + movs r2, 0xE0 + lsls r2, 5 + add r2, sp + str r1, [r2] + ldr r1, _08050474 + ldr r1, [r1] + mov r10, r1 + ldrb r1, [r0, 0x6] + cmp r1, 0 + ble _08050478 + lsrs r0, r1, 1 + bl sub_808411C + adds r7, r0, 0 + cmp r7, 0 + bgt _0805047A + movs r7, 0x1 + b _0805047A + .align 2, 0 +_08050470: .4byte 0xffffe3f8 +_08050474: .4byte gUnknown_203B418 +_08050478: + adds r7, r1, 0 +_0805047A: + movs r0, 0 + mov r8, r0 + movs r6, 0 +_08050480: + movs r5, 0 + adds r1, r6, 0x1 + mov r9, r1 + mov r2, r8 + lsls r0, r2, 2 + mov r1, sp + adds r4, r0, r1 +_0805048E: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_804954C + adds r1, r0, 0 + ldrh r3, [r1] + movs r2, 0x3 + ands r2, r3 + cmp r2, 0x1 + bne _080504F6 + ldrb r0, [r1, 0x9] + cmp r0, 0xFF + beq _080504F6 + movs r0, 0x20 + ands r0, r3 + cmp r0, 0 + bne _080504F6 + ldrh r1, [r1, 0x4] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080504F6 + ands r2, r1 + cmp r2, 0 + bne _080504F6 + movs r0, 0x8 + ands r0, r3 + cmp r0, 0 + bne _080504F6 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + ands r0, r3 + cmp r0, 0 + bne _080504F6 + ldr r0, _080506A0 + add r0, r10 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r6, r0 + bne _080504EC + ldr r0, _080506A4 + add r0, r10 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r5, r0 + beq _080504F6 +_080504EC: + strb r6, [r4] + strb r5, [r4, 0x1] + adds r4, 0x4 + movs r0, 0x1 + add r8, r0 +_080504F6: + adds r5, 0x1 + cmp r5, 0x1F + ble _0805048E + mov r6, r9 + cmp r6, 0x37 + ble _08050480 + mov r1, r8 + cmp r1, 0 + beq _0805055E + ldr r0, _080506A8 + ldr r0, [r0] + movs r2, 0xD1 + lsls r2, 3 + adds r0, r2 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _0805051C + adds r7, 0x1 +_0805051C: + cmp r7, 0 + beq _0805055E + mov r0, sp + mov r1, r8 + bl sub_804FED0 + mov r0, r8 + bl sub_8084100 + adds r5, r0, 0 + cmp r7, 0 + ble _0805055E + adds r6, r7, 0 + lsls r0, r5, 2 + mov r2, sp + adds r4, r0, r2 +_0805053C: + ldrb r0, [r4] + ldrb r1, [r4, 0x1] + bl sub_8049590 + ldrh r2, [r0, 0x4] + movs r1, 0x8 + orrs r1, r2 + strh r1, [r0, 0x4] + adds r4, 0x4 + adds r5, 0x1 + cmp r5, r8 + bne _08050558 + mov r4, sp + movs r5, 0 +_08050558: + subs r6, 0x1 + cmp r6, 0 + bne _0805053C +_0805055E: + ldr r0, _080506AC + add r0, r10 + ldrb r0, [r0] + cmp r0, 0 + bne _0805056A + b _0805068C +_0805056A: + ldr r0, _080506B0 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r2, _080506B4 + add r2, sp + str r1, [r2] + movs r0, 0 + mov r8, r0 + movs r1, 0xE0 + lsls r1, 5 + add r1, sp + ldr r1, [r1] + cmp r1, 0 + beq _0805058A + movs r0, 0x3 + str r0, [r2] +_0805058A: + ldr r1, _080506B4 + add r1, sp + ldr r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + ldr r1, _080506B4 + add r1, sp + str r0, [r1] + movs r6, 0 +_080505A2: + movs r5, 0 + adds r2, r6, 0x1 + mov r9, r2 + mov r1, r8 + lsls r0, r1, 2 + mov r2, sp + adds r4, r0, r2 +_080505B0: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_804954C + adds r1, r0, 0 + ldrh r2, [r1] + movs r0, 0x3 + ands r0, r2 + cmp r0, 0x1 + bne _08050608 + ldrb r0, [r1, 0x9] + cmp r0, 0xFF + beq _08050608 + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + bne _08050608 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + bne _08050608 + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + beq _08050608 + ldr r0, _080506A0 + add r0, r10 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r6, r0 + bne _080505FE + ldr r0, _080506A4 + add r0, r10 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r5, r0 + beq _08050608 +_080505FE: + strb r6, [r4] + strb r5, [r4, 0x1] + adds r4, 0x4 + movs r2, 0x1 + add r8, r2 +_08050608: + adds r5, 0x1 + cmp r5, 0x1F + ble _080505B0 + mov r6, r9 + cmp r6, 0x37 + ble _080505A2 + mov r0, r8 + cmp r0, 0 + beq _0805068C + lsls r4, r0, 3 + subs r0, r4, r0 + movs r1, 0xA + bl __divsi3 + adds r5, r0, 0 + adds r0, r4, 0 + movs r1, 0xA + bl __divsi3 + adds r1, r0, 0 + adds r0, r5, 0 + bl sub_808411C + adds r7, r0, 0 + cmp r7, 0 + bne _0805063E + movs r7, 0x1 +_0805063E: + ldr r1, _080506B4 + add r1, sp + ldr r1, [r1] + cmp r7, r1 + blt _0805064E + ldr r2, _080506B4 + add r2, sp + ldr r7, [r2] +_0805064E: + mov r0, sp + mov r1, r8 + bl sub_804FED0 + mov r0, r8 + bl sub_8084100 + adds r5, r0, 0 + cmp r7, 0 + ble _0805068C + adds r6, r7, 0 + lsls r0, r5, 2 + mov r1, sp + adds r4, r0, r1 +_0805066A: + ldrb r0, [r4] + ldrb r1, [r4, 0x1] + bl sub_8049590 + ldrh r2, [r0, 0x4] + movs r1, 0x8 + orrs r1, r2 + strh r1, [r0, 0x4] + adds r4, 0x4 + adds r5, 0x1 + cmp r5, r8 + bne _08050686 + mov r4, sp + movs r5, 0 +_08050686: + subs r6, 0x1 + cmp r6, 0 + bne _0805066A +_0805068C: + ldr r3, _080506B8 + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080506A0: .4byte 0x0000e218 +_080506A4: .4byte 0x0000e21a +_080506A8: .4byte gUnknown_203B418 +_080506AC: .4byte 0x00003a08 +_080506B0: .4byte gUnknown_80F4DA4 +_080506B4: .4byte 0x00001c04 +_080506B8: .4byte 0x00001c08 + thumb_func_end sub_8050438 + + thumb_func_start sub_80506BC +sub_80506BC: + push {lr} + adds r3, r0, 0 + movs r2, 0x1 + ldrh r1, [r3] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _080506CE + movs r2, 0 +_080506CE: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080506D8 + movs r2, 0 +_080506D8: + cmp r2, 0 + beq _080506E6 + ldr r0, _080506EC + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strh r0, [r3] +_080506E6: + pop {r0} + bx r0 + .align 2, 0 +_080506EC: .4byte 0x0000fffc + thumb_func_end sub_80506BC + + thumb_func_start sub_80506F0 +sub_80506F0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xA4 + str r1, [sp, 0x64] + ldrb r1, [r1, 0xD] + ands r1, r0 + cmp r1, 0 + bne _08050708 + b _08050C20 +_08050708: + ldr r4, _08050738 + movs r0, 0x8 + bl sub_8084100 + lsls r0, 2 + adds r0, r4 + ldr r4, [r0] + cmp r4, 0 + bne _0805071C + b _08050A7C +_0805071C: + movs r0, 0x64 + bl sub_8084100 + cmp r0, 0x31 + bgt _0805073C + movs r0, 0x1 + str r0, [sp, 0x74] + movs r1, 0x1F + mov r10, r1 + movs r2, 0x1 + negs r2, r2 + str r2, [sp, 0x70] + b _08050746 + .align 2, 0 +_08050738: .4byte gUnknown_80F6DF8 +_0805073C: + movs r0, 0 + str r0, [sp, 0x74] + mov r10, r0 + movs r1, 0x1 + str r1, [sp, 0x70] +_08050746: + movs r0, 0x32 + bl sub_8084100 + adds r0, 0xA + str r0, [sp, 0x78] + movs r0, 0x2 + movs r1, 0x36 + bl sub_808411C + mov r9, r0 + movs r2, 0 + str r2, [sp, 0x6C] + subs r4, 0x1 + str r4, [sp, 0x98] +_08050762: + movs r0, 0x6 + bl sub_8084100 + adds r0, 0x2 + str r0, [sp, 0x68] + cmp r0, 0 + bne _08050772 + b _08050A38 +_08050772: + mov r0, r9 + cmp r0, 0x37 + bhi _080507B8 + mov r1, r10 + bl sub_804954C + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + bne _0805078A + b _08050A74 +_0805078A: + mov r1, r9 + cmp r1, 0 + blt _080507A2 + mov r2, r10 + cmp r2, 0 + blt _080507A2 + mov r0, r9 + cmp r0, 0x37 + bgt _080507A2 + mov r1, r10 + cmp r1, 0x1F + ble _080507A6 +_080507A2: + movs r0, 0x1 + b _080507A8 +_080507A6: + movs r0, 0 +_080507A8: + cmp r0, 0 + bne _080507B8 + mov r0, r9 + mov r1, r10 + bl sub_8049590 + bl sub_80506BC +_080507B8: + ldr r2, [sp, 0x68] + subs r2, 0x1 + str r2, [sp, 0x68] + ldr r0, [sp, 0x6C] + add r9, r0 + ldr r1, [sp, 0x70] + add r10, r1 + mov r2, r10 + cmp r2, 0x1F + bls _080507CE + b _08050A38 +_080507CE: + ldr r0, [sp, 0x78] + subs r0, 0x1 + str r0, [sp, 0x78] + cmp r0, 0 + beq _080507DA + b _08050A30 +_080507DA: + movs r1, 0x3F + str r1, [sp, 0x7C] +_080507DE: + movs r0, 0x7 + bl sub_8084100 + subs r0, 0x3 + str r0, [sp, 0x84] + movs r0, 0x7 + bl sub_8084100 + subs r1, r0, 0x3 + ldr r6, [sp, 0x84] + add r6, r9 + subs r0, r6, 0x2 + cmp r0, 0x33 + bhi _080508DA + mov r2, r10 + adds r5, r1, r2 + cmp r5, 0x1 + ble _080508DA + cmp r5, 0x1D + bgt _080508DA + adds r4, r6, 0x1 + adds r0, r5, 0x1 + mov r8, r0 + adds r0, r4, 0 + mov r1, r8 + bl sub_804954C + ldrh r1, [r0] + movs r2, 0x3 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x2 + beq _080508B2 + adds r0, r4, 0 + adds r1, r5, 0 + str r2, [sp, 0x9C] + bl sub_804954C + ldrh r1, [r0] + ldr r2, [sp, 0x9C] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x2 + beq _080508B2 + subs r7, r5, 0x1 + adds r0, r4, 0 + adds r1, r7, 0 + bl sub_804954C + ldrh r1, [r0] + ldr r2, [sp, 0x9C] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x2 + beq _080508B2 + adds r0, r6, 0 + mov r1, r8 + bl sub_804954C + ldrh r1, [r0] + ldr r2, [sp, 0x9C] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x2 + beq _080508B2 + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_804954C + ldrh r1, [r0] + ldr r2, [sp, 0x9C] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x2 + beq _080508B2 + subs r4, r6, 0x1 + adds r0, r4, 0 + mov r1, r8 + bl sub_804954C + ldrh r1, [r0] + ldr r2, [sp, 0x9C] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x2 + beq _080508B2 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_804954C + ldrh r1, [r0] + ldr r2, [sp, 0x9C] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x2 + beq _080508B2 + adds r0, r4, 0 + adds r1, r7, 0 + bl sub_804954C + ldrh r1, [r0] + ldr r2, [sp, 0x9C] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0x2 + bne _080508DA +_080508B2: + ldr r0, [sp, 0x84] + add r0, r9 + cmp r0, 0 + blt _080508C6 + cmp r5, 0 + blt _080508C6 + cmp r0, 0x37 + bgt _080508C6 + cmp r5, 0x1F + ble _080508CA +_080508C6: + movs r1, 0x1 + b _080508CC +_080508CA: + movs r1, 0 +_080508CC: + cmp r1, 0 + bne _080508DA + adds r1, r5, 0 + bl sub_8049590 + bl sub_80506BC +_080508DA: + ldr r1, [sp, 0x7C] + subs r1, 0x1 + str r1, [sp, 0x7C] + cmp r1, 0 + blt _080508E6 + b _080507DE +_080508E6: + movs r0, 0x3 + negs r0, r0 +_080508EA: + movs r2, 0x3 + negs r2, r2 + str r2, [sp, 0x80] + mov r1, r9 + adds r1, r0, r1 + str r1, [sp, 0x90] + adds r0, 0x1 + str r0, [sp, 0x8C] + adds r7, r1, 0 + mov r5, r10 + subs r5, 0x3 +_08050900: + movs r6, 0 + subs r0, r7, 0x2 + cmp r0, 0x33 + bls _0805090A + b _08050A1A +_0805090A: + str r5, [sp, 0x88] + str r5, [sp, 0x94] + cmp r5, 0x1 + bgt _08050914 + b _08050A1A +_08050914: + cmp r5, 0x1D + ble _0805091A + b _08050A1A +_0805091A: + adds r4, r7, 0x1 + adds r3, r5, 0x1 + adds r0, r4, 0 + adds r1, r3, 0 + str r3, [sp, 0xA0] + bl sub_804954C + ldrh r1, [r0] + movs r2, 0x3 + mov r8, r2 + mov r0, r8 + ands r0, r1 + ldr r3, [sp, 0xA0] + cmp r0, 0x2 + bne _0805093A + movs r6, 0x1 +_0805093A: + adds r0, r4, 0 + adds r1, r5, 0 + str r3, [sp, 0xA0] + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + ldr r3, [sp, 0xA0] + cmp r0, 0x2 + bne _08050952 + adds r6, 0x1 +_08050952: + subs r2, r5, 0x1 + adds r0, r4, 0 + adds r1, r2, 0 + str r2, [sp, 0x9C] + str r3, [sp, 0xA0] + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + ldr r2, [sp, 0x9C] + ldr r3, [sp, 0xA0] + cmp r0, 0x2 + bne _08050970 + adds r6, 0x1 +_08050970: + adds r0, r7, 0 + adds r1, r3, 0 + str r2, [sp, 0x9C] + str r3, [sp, 0xA0] + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + ldr r2, [sp, 0x9C] + ldr r3, [sp, 0xA0] + cmp r0, 0x2 + bne _0805098C + adds r6, 0x1 +_0805098C: + adds r0, r7, 0 + adds r1, r2, 0 + str r2, [sp, 0x9C] + str r3, [sp, 0xA0] + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + ldr r2, [sp, 0x9C] + ldr r3, [sp, 0xA0] + cmp r0, 0x2 + bne _080509A8 + adds r6, 0x1 +_080509A8: + subs r4, r7, 0x1 + adds r0, r4, 0 + adds r1, r3, 0 + str r2, [sp, 0x9C] + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + ldr r2, [sp, 0x9C] + cmp r0, 0x2 + bne _080509C2 + adds r6, 0x1 +_080509C2: + adds r0, r4, 0 + adds r1, r5, 0 + str r2, [sp, 0x9C] + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + ldr r2, [sp, 0x9C] + cmp r0, 0x2 + bne _080509DA + adds r6, 0x1 +_080509DA: + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_804954C + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + cmp r0, 0x2 + bne _080509EE + adds r6, 0x1 +_080509EE: + cmp r6, 0x3 + ble _08050A1A + cmp r7, 0 + blt _08050A04 + cmp r5, 0 + blt _08050A04 + cmp r7, 0x37 + bgt _08050A04 + ldr r0, [sp, 0x88] + cmp r0, 0x1F + ble _08050A08 +_08050A04: + movs r0, 0x1 + b _08050A0A +_08050A08: + movs r0, 0 +_08050A0A: + cmp r0, 0 + bne _08050A1A + ldr r0, [sp, 0x90] + ldr r1, [sp, 0x94] + bl sub_8049590 + bl sub_80506BC +_08050A1A: + adds r5, 0x1 + ldr r1, [sp, 0x80] + adds r1, 0x1 + str r1, [sp, 0x80] + cmp r1, 0x3 + bgt _08050A28 + b _08050900 +_08050A28: + ldr r0, [sp, 0x8C] + cmp r0, 0x3 + bgt _08050A30 + b _080508EA +_08050A30: + ldr r2, [sp, 0x68] + cmp r2, 0 + beq _08050A38 + b _08050772 +_08050A38: + ldr r0, [sp, 0x6C] + cmp r0, 0 + beq _08050A54 + movs r1, 0x1 + str r1, [sp, 0x70] + ldr r2, [sp, 0x74] + cmp r2, 0 + beq _08050A4E + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0x70] +_08050A4E: + movs r1, 0 + str r1, [sp, 0x6C] + b _08050A6C +_08050A54: + movs r0, 0x64 + bl sub_8084100 + movs r2, 0x1 + str r2, [sp, 0x6C] + cmp r0, 0x31 + bgt _08050A68 + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0x6C] +_08050A68: + movs r1, 0 + str r1, [sp, 0x70] +_08050A6C: + mov r2, r10 + cmp r2, 0x1F + bhi _08050A74 + b _08050762 +_08050A74: + ldr r4, [sp, 0x98] + cmp r4, 0 + beq _08050A7C + b _0805071C +_08050A7C: + movs r0, 0 + ldr r1, [sp, 0x64] + ldrb r1, [r1, 0x15] + cmp r0, r1 + blt _08050A88 + b _08050BAE +_08050A88: + movs r2, 0 + mov r8, r2 + mov r9, r2 + movs r5, 0 + adds r0, 0x1 + mov r10, r0 + b _08050A98 +_08050A96: + adds r5, 0x1 +_08050A98: + cmp r5, 0xC7 + bgt _08050AC2 + movs r0, 0 + movs r1, 0x38 + bl sub_808411C + mov r9, r0 + movs r0, 0 + movs r1, 0x20 + bl sub_808411C + mov r8, r0 + mov r0, r9 + subs r0, 0x1 + cmp r0, 0x35 + bhi _08050A96 + mov r0, r8 + cmp r0, 0 + ble _08050A96 + cmp r0, 0x1E + bgt _08050A96 +_08050AC2: + cmp r5, 0xC8 + beq _08050BA2 + movs r7, 0 + movs r3, 0x1 + movs r1, 0 +_08050ACC: + movs r2, 0 + lsls r0, r7, 2 + adds r4, r7, 0x1 + adds r0, r7 + lsls r0, 1 + add r0, sp +_08050AD8: + cmp r7, 0 + beq _08050AE8 + cmp r7, 0x9 + beq _08050AE8 + cmp r2, 0 + beq _08050AE8 + cmp r2, 0x9 + bne _08050AEC +_08050AE8: + strb r3, [r0] + b _08050AEE +_08050AEC: + strb r1, [r0] +_08050AEE: + adds r0, 0x1 + adds r2, 0x1 + cmp r2, 0x9 + ble _08050AD8 + adds r7, r4, 0 + cmp r7, 0x9 + ble _08050ACC + movs r5, 0x4F +_08050AFE: + movs r0, 0x8 + bl sub_8084100 + adds r4, r0, 0 + adds r7, r4, 0x1 + movs r0, 0x8 + bl sub_8084100 + adds r2, r0, 0x1 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 1 + adds r0, r2, r0 + add r0, sp + ldrb r0, [r0] + cmp r0, 0 + bne _08050B50 + adds r1, r7, 0x1 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + adds r0, r2, r0 + add r0, sp + ldrb r0, [r0] + cmp r0, 0 + bne _08050B50 + lsls r0, r7, 2 + adds r0, r7 + lsls r1, r0, 1 + subs r0, r1, 0x1 + adds r0, r2, r0 + add r0, sp + ldrb r0, [r0] + cmp r0, 0 + bne _08050B50 + adds r0, r1, 0x1 + adds r0, r2, r0 + add r0, sp + ldrb r0, [r0] + cmp r0, 0 + beq _08050B60 +_08050B50: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 1 + adds r0, r2, r0 + mov r2, sp + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] +_08050B60: + subs r5, 0x1 + cmp r5, 0 + bge _08050AFE + movs r7, 0 +_08050B68: + lsls r0, r7, 2 + adds r4, r7, 0x1 + adds r0, r7 + lsls r0, 1 + mov r6, r8 + subs r6, 0x5 + mov r1, sp + adds r5, r0, r1 + add r7, r9 + movs r2, 0x9 +_08050B7C: + ldrb r0, [r5] + cmp r0, 0 + bne _08050B92 + subs r0, r7, 0x5 + adds r1, r6, 0 + str r2, [sp, 0x9C] + bl sub_8049590 + bl sub_80506BC + ldr r2, [sp, 0x9C] +_08050B92: + adds r6, 0x1 + adds r5, 0x1 + subs r2, 0x1 + cmp r2, 0 + bge _08050B7C + adds r7, r4, 0 + cmp r7, 0x9 + ble _08050B68 +_08050BA2: + mov r0, r10 + ldr r2, [sp, 0x64] + ldrb r2, [r2, 0x15] + cmp r0, r2 + bge _08050BAE + b _08050A88 +_08050BAE: + movs r0, 0 + mov r9, r0 + movs r6, 0x1 + ldr r1, _08050BF4 + adds r5, r1, 0 +_08050BB8: + movs r2, 0 + mov r10, r2 + mov r4, r9 + adds r4, 0x1 +_08050BC0: + mov r0, r9 + mov r1, r10 + bl sub_8049590 + adds r2, r0, 0 + ldrh r3, [r2] + movs r0, 0x3 + ands r0, r3 + cmp r0, 0x2 + bne _08050C10 + movs r1, 0xB0 + lsls r1, 1 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + bne _08050BEA + ldrh r1, [r2, 0x4] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08050BF8 +_08050BEA: + adds r0, r3, 0 + ands r0, r5 + orrs r0, r6 + b _08050C0E + .align 2, 0 +_08050BF4: .4byte 0x0000fffc +_08050BF8: + mov r0, r9 + subs r0, 0x2 + cmp r0, 0x34 + bhi _08050C0A + mov r0, r10 + cmp r0, 0x1 + ble _08050C0A + cmp r0, 0x1E + ble _08050C10 +_08050C0A: + ldrh r0, [r2] + ands r0, r5 +_08050C0E: + strh r0, [r2] +_08050C10: + movs r1, 0x1 + add r10, r1 + mov r2, r10 + cmp r2, 0x1F + ble _08050BC0 + mov r9, r4 + cmp r4, 0x37 + ble _08050BB8 +_08050C20: + add sp, 0xA4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80506F0 + + thumb_func_start sub_8050C30 +sub_8050C30: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _08050F3C + add sp, r4 + mov r8, r0 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0xE0 + lsls r0, 3 + add r0, sp + str r2, [r0] + movs r7, 0 + mov r1, r8 + lsls r1, 5 + movs r2, 0xE2 + lsls r2, 3 + add r2, sp + str r1, [r2] +_08050C5C: + movs r6, 0 + lsls r2, r7, 5 + adds r3, r7, 0x1 + mov r10, r3 + mov r5, sp + adds r4, r2, r5 +_08050C68: + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_8049590 + adds r2, r0, 0 + ldrh r0, [r2] + movs r3, 0x3 + ands r3, r0 + movs r0, 0 + strb r0, [r4] + movs r0, 0xE0 + lsls r0, 3 + add r0, sp + ldr r0, [r0] + cmp r0, 0 + beq _08050C92 + ldrh r0, [r2] + ldr r5, _08050F40 + adds r1, r5, 0 + ands r0, r1 + strh r0, [r2] +_08050C92: + cmp r3, 0x1 + beq _08050CA8 + ldrh r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _08050CA8 + ldrb r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4] +_08050CA8: + cmp r3, 0x2 + bne _08050CBE + ldrh r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _08050CBE + ldrb r0, [r4] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r4] +_08050CBE: + adds r4, 0x1 + adds r6, 0x1 + cmp r6, 0x1F + ble _08050C68 + mov r7, r10 + cmp r7, 0x37 + ble _08050C5C + movs r1, 0xE2 + lsls r1, 3 + add r1, sp + ldr r0, [r1] + add r0, r9 + mov r3, sp + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, 0x50 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08050F44 + ldr r1, [r0] + ldr r5, _08050F48 + adds r0, r1, r5 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, r8 + beq _08050CF4 + b _08050F36 +_08050CF4: + ldr r3, _08050F4C + adds r0, r1, r3 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r0, r9 + beq _08050D02 + b _08050F36 +_08050D02: + ldr r1, _08050F50 + movs r0, 0 + str r0, [r1] + movs r0, 0x40 + mov r9, r0 +_08050D0C: + movs r1, 0 + ldr r2, _08050F54 + add r2, sp + str r1, [r2] + ldr r3, _08050F50 + ldr r0, [r3] + adds r0, 0x1 + str r0, [r3] + movs r7, 0 +_08050D1E: + movs r6, 0 + lsls r2, r7, 5 + adds r5, r7, 0x1 + mov r10, r5 + subs r0, r7, 0x1 + movs r1, 0xE1 + lsls r1, 3 + add r1, sp + str r0, [r1] + lsls r0, 5 + mov r1, sp + subs r1, 0x1 + adds r5, r2, r1 + add r0, sp + mov r8, r0 + mov r2, r10 + ldr r3, _08050F58 + add r3, sp + str r2, [r3] + lsls r0, r2, 5 + add r0, sp + mov r12, r0 +_08050D4A: + ldrb r1, [r5, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08050D56 + b _08050EDA +_08050D56: + movs r3, 0x40 + mov r0, r9 + ands r0, r1 + cmp r0, 0 + bne _08050D62 + b _08050EDA +_08050D62: + ldr r2, _08050F54 + add r2, sp + ldr r0, [r2] + adds r0, 0x1 + str r0, [r2] + movs r0, 0xBF + ands r0, r1 + movs r2, 0 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r5, 0x1] + cmp r7, 0 + ble _08050D90 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x83 + ands r0, r1 + cmp r0, 0 + bne _08050D90 + adds r0, r1, 0 + orrs r0, r3 + mov r1, r8 + strb r0, [r1] +_08050D90: + cmp r6, 0 + ble _08050DA4 + ldrb r1, [r5] + movs r0, 0x83 + ands r0, r1 + cmp r0, 0 + bne _08050DA4 + mov r0, r9 + orrs r0, r1 + strb r0, [r5] +_08050DA4: + cmp r7, 0x36 + bgt _08050DBA + mov r2, r12 + ldrb r1, [r2] + movs r0, 0x83 + ands r0, r1 + cmp r0, 0 + bne _08050DBA + mov r0, r9 + orrs r0, r1 + strb r0, [r2] +_08050DBA: + cmp r6, 0x1E + bgt _08050DCE + ldrb r1, [r5, 0x2] + movs r0, 0x83 + ands r0, r1 + cmp r0, 0 + bne _08050DCE + mov r0, r9 + orrs r0, r1 + strb r0, [r5, 0x2] +_08050DCE: + cmp r7, 0 + ble _08050E12 + cmp r6, 0 + ble _08050E12 + movs r3, 0xE1 + lsls r3, 3 + add r3, sp + ldr r3, [r3] + lsls r1, r3, 5 + subs r0, r1, 0x1 + adds r0, r6, r0 + mov r2, sp + adds r4, r2, r0 + ldrb r3, [r4] + movs r0, 0x87 + ands r0, r3 + cmp r0, 0 + bne _08050E12 + adds r0, r6, r1 + add r0, sp + ldrb r1, [r0] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08050E12 + ldrb r1, [r5] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08050E12 + mov r0, r9 + orrs r0, r3 + strb r0, [r4] +_08050E12: + cmp r7, 0x36 + bgt _08050E54 + cmp r6, 0 + ble _08050E54 + ldr r3, _08050F58 + add r3, sp + ldr r3, [r3] + lsls r1, r3, 5 + subs r0, r1, 0x1 + adds r0, r6, r0 + mov r2, sp + adds r4, r2, r0 + ldrb r3, [r4] + movs r0, 0x87 + ands r0, r3 + cmp r0, 0 + bne _08050E54 + adds r0, r6, r1 + add r0, sp + ldrb r1, [r0] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08050E54 + ldrb r1, [r5] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08050E54 + mov r0, r9 + orrs r0, r3 + strb r0, [r4] +_08050E54: + cmp r7, 0 + ble _08050E98 + cmp r6, 0x1E + bgt _08050E98 + movs r3, 0xE1 + lsls r3, 3 + add r3, sp + ldr r3, [r3] + lsls r1, r3, 5 + adds r0, r1, 0x1 + adds r0, r6, r0 + mov r2, sp + adds r4, r2, r0 + ldrb r3, [r4] + movs r0, 0x87 + ands r0, r3 + cmp r0, 0 + bne _08050E98 + adds r0, r6, r1 + add r0, sp + ldrb r1, [r0] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08050E98 + ldrb r1, [r5, 0x2] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08050E98 + mov r0, r9 + orrs r0, r3 + strb r0, [r4] +_08050E98: + cmp r7, 0x36 + bgt _08050EDA + cmp r6, 0x1E + bgt _08050EDA + ldr r3, _08050F58 + add r3, sp + ldr r3, [r3] + lsls r1, r3, 5 + adds r0, r1, 0x1 + adds r0, r6, r0 + mov r2, sp + adds r4, r2, r0 + ldrb r3, [r4] + movs r0, 0x87 + ands r0, r3 + cmp r0, 0 + bne _08050EDA + adds r0, r6, r1 + add r0, sp + ldrb r1, [r0] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08050EDA + ldrb r1, [r5, 0x2] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08050EDA + mov r0, r9 + orrs r0, r3 + strb r0, [r4] +_08050EDA: + adds r5, 0x1 + movs r3, 0x1 + add r8, r3 + add r12, r3 + adds r6, 0x1 + cmp r6, 0x1F + bgt _08050EEA + b _08050D4A +_08050EEA: + mov r7, r10 + cmp r7, 0x37 + bgt _08050EF2 + b _08050D1E +_08050EF2: + ldr r5, _08050F54 + add r5, sp + ldr r5, [r5] + cmp r5, 0 + beq _08050EFE + b _08050D0C +_08050EFE: + movs r7, 0 +_08050F00: + movs r6, 0 + lsls r2, r7, 5 + mov r0, sp + adds r4, r2, r0 +_08050F08: + adds r0, r7, 0 + adds r1, r6, 0 + bl sub_8049590 + adds r2, r0, 0 + ldrb r1, [r4] + movs r0, 0x87 + ands r0, r1 + cmp r0, 0 + bne _08050F68 + movs r1, 0xE0 + lsls r1, 3 + add r1, sp + ldr r1, [r1] + cmp r1, 0 + bne _08050F5C + ldrh r0, [r2] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08050F68 +_08050F36: + movs r0, 0 + b _08050F78 + .align 2, 0 +_08050F3C: .4byte 0xfffff8ec +_08050F40: .4byte 0x00007fff +_08050F44: .4byte gUnknown_203B418 +_08050F48: .4byte 0x0000e21c +_08050F4C: .4byte 0x0000e21e +_08050F50: .4byte gUnknown_202F1D4 +_08050F54: .4byte 0x00000704 +_08050F58: .4byte 0x0000070c +_08050F5C: + ldrh r1, [r2] + movs r3, 0x80 + lsls r3, 8 + adds r0, r3, 0 + orrs r0, r1 + strh r0, [r2] +_08050F68: + adds r4, 0x1 + adds r6, 0x1 + cmp r6, 0x1F + ble _08050F08 + adds r7, 0x1 + cmp r7, 0x37 + ble _08050F00 + movs r0, 0x1 +_08050F78: + ldr r3, _08050F8C + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08050F8C: .4byte 0x00000714 + thumb_func_end sub_8050C30 + + thumb_func_start sub_8050F90 +sub_8050F90: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x3C + str r0, [sp] + str r1, [sp, 0x4] + str r2, [sp, 0x8] + str r3, [sp, 0xC] + movs r0, 0 + str r0, [sp, 0x10] + movs r1, 0 + str r1, [sp, 0x14] + movs r2, 0 + b _080511D0 +_08050FB0: + movs r4, 0 + str r4, [sp, 0x18] + ldr r5, [sp, 0x1C] + adds r5, 0x1 + str r5, [sp, 0x28] + ldr r6, [sp, 0x4] + cmp r4, r6 + blt _08050FC2 + b _080511CE +_08050FC2: + ldr r1, [sp, 0x18] + lsls r0, r1, 2 + ldr r2, [sp, 0xC] + adds r0, r2 + ldr r3, [r0] + adds r4, r3, 0x2 + mov r9, r4 + ldr r5, [sp, 0x1C] + lsls r1, r5, 2 + ldr r6, [sp, 0x5C] + adds r1, r6 + ldr r2, [r1] + adds r4, r2, 0x2 + mov r10, r4 + ldr r0, [r0, 0x4] + subs r0, r3 + subs r4, r0, 0x4 + ldr r0, [r1, 0x4] + subs r0, r2 + subs r7, r0, 0x4 + movs r3, 0x5 + movs r5, 0x5 + ldr r6, [sp, 0x4] + cmp r6, 0x2 + bgt _08050FF8 + movs r3, 0xA + movs r4, 0xE +_08050FF8: + ldr r0, [sp, 0x8] + cmp r0, 0x1 + bne _08051002 + movs r5, 0x10 + movs r7, 0x18 +_08051002: + ldr r2, [sp, 0x1C] + lsls r1, r2, 5 + ldr r6, [sp, 0x18] + lsls r2, r6, 4 + subs r0, r2, r6 + lsls r0, 5 + ldr r6, [sp] + adds r0, r6 + adds r6, r1, r0 + ldrb r0, [r6, 0xA] + str r1, [sp, 0x30] + str r2, [sp, 0x2C] + cmp r0, 0 + bne _08051020 + b _08051130 +_08051020: + ldr r0, [sp, 0x14] + ldr r1, [sp, 0x60] + cmp r0, r1 + beq _0805108C + adds r0, r3, 0 + adds r1, r4, 0 + bl sub_808411C + adds r6, r0, 0 + adds r0, r5, 0 + adds r1, r7, 0 + bl sub_808411C + adds r5, r0, 0 + movs r1, 0x1 + adds r0, r6, 0 + orrs r0, r1 + cmp r0, r4 + bge _08051048 + adds r6, r0, 0 +_08051048: + adds r0, r5, 0 + orrs r0, r1 + cmp r0, r7 + bge _08051052 + adds r5, r0, 0 +_08051052: + lsls r0, r5, 1 + adds r0, r5 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r6, r0 + ble _08051062 + adds r6, r0, 0 +_08051062: + lsls r0, r6, 1 + adds r0, r6 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + cmp r5, r0 + ble _08051072 + adds r5, r0, 0 +_08051072: + subs r0, r4, r6 + bl sub_8084100 + mov r2, r9 + adds r4, r0, r2 + subs r0, r7, r5 + bl sub_8084100 + mov r3, r10 + adds r7, r0, r3 + adds r3, r4, r6 + adds r6, r7, r5 + b _08051098 +_0805108C: + mov r4, r9 + mov r7, r10 + ldr r5, [sp, 0x64] + adds r3, r4, r5 + ldr r0, [sp, 0x68] + adds r6, r7, r0 +_08051098: + ldr r1, [sp, 0x2C] + ldr r2, [sp, 0x18] + subs r0, r1, r2 + lsls r0, 5 + ldr r5, [sp] + adds r0, r5 + ldr r1, [sp, 0x30] + adds r0, r1, r0 + strh r4, [r0] + strh r3, [r0, 0x4] + strh r7, [r0, 0x2] + strh r6, [r0, 0x6] + adds r5, r4, 0 + ldr r2, [sp, 0x10] + adds r2, 0x1 + str r2, [sp, 0x20] + ldr r4, [sp, 0x14] + adds r4, 0x1 + str r4, [sp, 0x24] + ldr r0, [sp, 0x18] + adds r0, 0x1 + mov r10, r0 + cmp r5, r3 + bge _08051108 +_080510C8: + adds r4, r7, 0 + adds r1, r5, 0x1 + mov r8, r1 + cmp r4, r6 + bge _08051102 + ldr r2, _0805112C + mov r9, r2 +_080510D6: + adds r0, r5, 0 + adds r1, r4, 0 + str r3, [sp, 0x38] + bl sub_8049590 + ldrh r1, [r0] + mov r2, r9 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + mov r1, sp + ldrb r1, [r1, 0x10] + strb r1, [r0, 0x9] + adds r4, 0x1 + ldr r3, [sp, 0x38] + cmp r4, r6 + blt _080510D6 +_08051102: + mov r5, r8 + cmp r5, r3 + blt _080510C8 +_08051108: + ldr r2, [sp, 0x14] + ldr r3, [sp, 0x60] + cmp r2, r3 + beq _08051124 + ldr r4, [sp, 0x2C] + ldr r5, [sp, 0x18] + subs r0, r4, r5 + lsls r0, 5 + ldr r6, [sp] + adds r0, r6 + ldr r1, [sp, 0x30] + adds r0, r1, r0 + movs r1, 0x1 + strb r1, [r0, 0x1D] +_08051124: + ldr r2, [sp, 0x20] + str r2, [sp, 0x10] + b _080511BE + .align 2, 0 +_0805112C: .4byte 0x0000fffc +_08051130: + movs r1, 0x2 + movs r3, 0x4 + movs r2, 0x2 + mov r8, r3 + ldr r5, [sp, 0x18] + cmp r5, 0 + bne _08051140 + movs r1, 0x1 +_08051140: + ldr r0, [sp, 0x1C] + cmp r0, 0 + bne _08051148 + movs r2, 0x1 +_08051148: + ldr r0, [sp, 0x4] + subs r0, 0x1 + ldr r5, [sp, 0x18] + cmp r5, r0 + bne _08051154 + movs r3, 0x2 +_08051154: + ldr r0, [sp, 0x8] + subs r0, 0x1 + ldr r5, [sp, 0x1C] + cmp r5, r0 + bne _08051162 + movs r0, 0x2 + mov r8, r0 +_08051162: + mov r5, r9 + adds r0, r5, r1 + adds r1, r5, r4 + subs r1, r3 + str r2, [sp, 0x34] + bl sub_808411C + adds r5, r0, 0 + ldr r2, [sp, 0x34] + mov r1, r10 + adds r0, r1, r2 + adds r1, r7 + mov r2, r8 + subs r1, r2 + bl sub_808411C + adds r4, r0, 0 + strh r5, [r6] + adds r0, r5, 0x1 + strh r0, [r6, 0x4] + strh r4, [r6, 0x2] + adds r0, r4, 0x1 + strh r0, [r6, 0x6] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + ldrh r1, [r0] + ldr r3, _080511EC + adds r2, r3, 0 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strh r1, [r0] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8049590 + movs r1, 0xFF + strb r1, [r0, 0x9] + ldr r4, [sp, 0x14] + adds r4, 0x1 + str r4, [sp, 0x24] + ldr r5, [sp, 0x18] + adds r5, 0x1 + mov r10, r5 +_080511BE: + ldr r6, [sp, 0x24] + str r6, [sp, 0x14] + mov r0, r10 + str r0, [sp, 0x18] + ldr r1, [sp, 0x4] + cmp r0, r1 + bge _080511CE + b _08050FC2 +_080511CE: + ldr r2, [sp, 0x28] +_080511D0: + str r2, [sp, 0x1C] + ldr r3, [sp, 0x8] + cmp r2, r3 + bge _080511DA + b _08050FB0 +_080511DA: + add sp, 0x3C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080511EC: .4byte 0x0000fffc + thumb_func_end sub_8050F90 + + thumb_func_start sub_80511F0 +sub_80511F0: + push {r4-r6,lr} + ldr r6, _08051204 + ldrb r0, [r6] + cmp r0, 0 + beq _0805120C + subs r0, 0x1 + strb r0, [r6] + ldr r0, _08051208 + ldrb r0, [r0] + b _08051244 + .align 2, 0 +_08051204: .4byte gUnknown_202F1E1 +_08051208: .4byte gUnknown_202F1E0 +_0805120C: + ldr r1, _0805122C + ldr r5, _08051230 + ldr r2, [r5] + ldrb r3, [r2] + strb r3, [r1] + adds r4, r2, 0x1 + str r4, [r5] + lsls r0, r3, 24 + lsrs r0, 24 + cmp r0, 0xE + bne _08051234 + ldrb r0, [r2, 0x1] + strb r0, [r1] + adds r0, r4, 0x1 + str r0, [r5] + b _08051242 + .align 2, 0 +_0805122C: .4byte gUnknown_202F1E0 +_08051230: .4byte gUnknown_202F1DC +_08051234: + movs r0, 0xF + ands r0, r3 + strb r0, [r6] + movs r0, 0xF0 + ands r0, r3 + lsrs r0, 4 + strb r0, [r1] +_08051242: + ldrb r0, [r1] +_08051244: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80511F0 + + thumb_func_start sub_805124C +sub_805124C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r5, [sp, 0x1C] + lsls r1, 24 + lsrs r1, 24 + lsls r5, 24 + lsrs r5, 24 + ldrh r6, [r0] + movs r7, 0x80 + lsls r7, 1 + adds r4, r7, 0 + movs r7, 0 + mov r8, r7 + orrs r4, r6 + strh r4, [r0] + mov r4, r8 + strb r4, [r0, 0xE] + str r5, [sp] + bl sub_8051A74 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_805124C + + thumb_func_start sub_8051288 +sub_8051288: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + str r0, [sp, 0x4] + ldr r0, _08051374 + ldr r7, [r0] + ldr r0, _08051378 + adds r3, r7, r0 + ldr r0, [r3] + ldr r0, [r0, 0x4] + ldr r2, [sp, 0x4] + lsls r1, r2, 2 + adds r0, r1, r0 + ldr r0, [r0] + ldrb r2, [r0] + mov r10, r2 + ldrb r0, [r0, 0x1] + mov r9, r0 + ldr r2, _0805137C + adds r0, r7, r2 + movs r4, 0 + mov r2, r10 + strh r2, [r0] + ldr r2, _08051380 + adds r0, r7, r2 + mov r2, r9 + strh r2, [r0] + ldr r2, _08051384 + ldr r0, [r3] + ldr r0, [r0, 0x4] + adds r1, r0 + ldr r0, [r1] + adds r0, 0x3 + str r0, [r2] + ldr r0, _08051388 + strb r4, [r0] + movs r6, 0x5 + mov r0, r9 + adds r0, 0x5 + cmp r6, r0 + bge _0805132E + movs r1, 0x5 + add r1, r10 + mov r8, r1 + str r0, [sp, 0x8] +_080512E8: + movs r5, 0x5 + cmp r5, r8 + bge _08051326 +_080512EE: + bl sub_80511F0 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8049590 + movs r1, 0x1 + str r1, [sp] + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_805124C + lsls r0, 24 + cmp r0, 0 + beq _08051320 + ldr r2, _0805138C + adds r0, r7, r2 + strh r5, [r0] + ldr r1, _08051390 + adds r0, r7, r1 + strh r6, [r0] +_08051320: + adds r5, 0x1 + cmp r5, r8 + blt _080512EE +_08051326: + adds r6, 0x1 + ldr r2, [sp, 0x8] + cmp r6, r2 + blt _080512E8 +_0805132E: + movs r6, 0 + ldr r0, _08051394 + adds r7, r0, 0 +_08051334: + movs r5, 0 + adds r4, r6, 0x1 +_08051338: + cmp r5, 0x4 + ble _08051350 + mov r0, r10 + adds r0, 0x5 + cmp r5, r0 + bge _08051350 + cmp r6, 0x4 + ble _08051350 + mov r0, r9 + adds r0, 0x5 + cmp r6, r0 + blt _080513A0 +_08051350: + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8049590 + adds r2, r0, 0 + ldrh r1, [r2] + movs r0, 0x10 + movs r3, 0 + orrs r1, r0 + strh r1, [r2] + ldr r0, _08051398 + ldrb r0, [r0] + cmp r0, 0 + beq _0805139C + ands r1, r7 + movs r0, 0x3 + orrs r1, r0 + b _0805139E + .align 2, 0 +_08051374: .4byte gUnknown_203B418 +_08051378: .4byte 0x00013568 +_0805137C: .4byte 0x0000e260 +_08051380: .4byte 0x0000e262 +_08051384: .4byte gUnknown_202F1DC +_08051388: .4byte gUnknown_202F1E1 +_0805138C: .4byte 0x0000e21c +_08051390: .4byte 0x0000e21e +_08051394: .4byte 0x0000fffc +_08051398: .4byte gUnknown_202F1A8 +_0805139C: + ands r1, r7 +_0805139E: + strh r1, [r2] +_080513A0: + adds r5, 0x1 + cmp r5, 0x37 + ble _08051338 + adds r6, r4, 0 + cmp r6, 0x1F + ble _08051334 + ldr r1, [sp, 0x4] + cmp r1, 0x4 + bne _080513DA + movs r6, 0x5 + ldr r2, _0805142C + adds r7, r2, 0 +_080513B8: + movs r5, 0x2 + adds r4, r6, 0x1 +_080513BC: + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8049590 + ldrh r2, [r0] + movs r1, 0x10 + orrs r1, r2 + ands r1, r7 + strh r1, [r0] + adds r5, 0x1 + cmp r5, 0x4 + ble _080513BC + adds r6, r4, 0 + cmp r6, 0x10 + ble _080513B8 +_080513DA: + ldr r0, _08051430 + ldr r0, [r0] + ldr r1, _08051434 + adds r0, r1 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0x3F + ble _08051416 + movs r6, 0 +_080513EC: + movs r5, 0 + adds r4, r6, 0x1 +_080513F0: + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8049590 + adds r2, r0, 0 + ldrh r1, [r2] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _0805140A + movs r0, 0x10 + orrs r0, r1 + strh r0, [r2] +_0805140A: + adds r5, 0x1 + cmp r5, 0x37 + ble _080513F0 + adds r6, r4, 0 + cmp r6, 0x1F + ble _080513EC +_08051416: + bl sub_804E9DC + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0805142C: .4byte 0x0000fffc +_08051430: .4byte gUnknown_203B418 +_08051434: .4byte 0x00003a0e + thumb_func_end sub_8051288 + + thumb_func_start sub_8051438 +sub_8051438: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + mov r9, r0 + ldr r0, _080515AC + ldr r0, [r0] + str r0, [sp, 0x4] + ldr r2, _080515B0 + ldr r4, _080515B4 + adds r3, r0, r4 + ldr r0, [r3] + ldr r0, [r0, 0x4] + lsls r1, 2 + adds r0, r1, r0 + ldr r0, [r0] + adds r0, 0x3 + str r0, [r2] + ldr r2, _080515B8 + movs r0, 0 + strb r0, [r2] + ldr r0, [r3] + ldr r0, [r0, 0x4] + adds r1, r0 + ldr r0, [r1] + ldrb r1, [r0, 0x2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0805147A + b _080515D8 +_0805147A: + ldr r5, [sp, 0x4] + ldr r0, _080515BC + adds r1, r5, r0 + mov r2, r9 + movs r3, 0 + ldrsh r0, [r2, r3] + str r0, [r1] + ldr r4, _080515C0 + adds r1, r5, r4 + movs r5, 0x2 + ldrsh r0, [r2, r5] + str r0, [r1] + ldr r0, [sp, 0x4] + ldr r2, _080515C4 + adds r1, r0, r2 + mov r3, r9 + movs r4, 0x4 + ldrsh r0, [r3, r4] + str r0, [r1] + ldr r5, [sp, 0x4] + ldr r0, _080515C8 + adds r1, r5, r0 + movs r2, 0x6 + ldrsh r0, [r3, r2] + str r0, [r1] + movs r3, 0 + str r3, [sp, 0x8] + mov r4, r9 + movs r5, 0x2 + ldrsh r4, [r4, r5] + mov r8, r4 + mov r1, r9 + movs r2, 0x6 + ldrsh r0, [r1, r2] + cmp r8, r0 + blt _080514C4 + b _08051640 +_080514C4: + mov r3, r9 + movs r4, 0 + ldrsh r7, [r3, r4] + movs r5, 0x4 + ldrsh r0, [r3, r5] + ldr r1, [sp, 0x8] + adds r1, 0x1 + str r1, [sp, 0x10] + mov r2, r8 + adds r2, 0x1 + str r2, [sp, 0xC] + cmp r7, r0 + bge _08051598 + ldr r4, _080515CC + ldr r3, [sp, 0x4] + adds r4, r3, r4 + str r4, [sp, 0x14] + movs r5, 0 + str r5, [sp, 0x18] + ldr r0, [sp, 0x8] + mov r10, r0 +_080514EE: + bl sub_80511F0 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r7, 0 + mov r1, r8 + bl sub_8049590 + adds r6, r0, 0 + ldr r1, [sp, 0x4] + ldr r2, _080515D0 + adds r0, r1, r2 + add r0, r10 + strb r5, [r0] + ldr r3, [sp, 0x8] + lsls r4, r3, 1 + adds r4, r3 + lsls r4, 3 + ldr r1, [sp, 0x14] + adds r0, r1, r4 + movs r2, 0 + str r2, [sp] + adds r1, r5, 0 + adds r2, r7, 0 + mov r3, r8 + bl sub_805124C + ldrb r1, [r6, 0x9] + ldr r3, [sp, 0x18] + adds r4, r3 + ldr r5, [sp, 0x4] + adds r4, r5, r4 + adds r0, r6, 0 + ldr r2, _080515CC + adds r4, r2 + ldm r4!, {r2,r3,r5} + stm r0!, {r2,r3,r5} + ldm r4!, {r2,r3,r5} + stm r0!, {r2,r3,r5} + mov r3, r9 + movs r4, 0 + ldrsh r0, [r3, r4] + adds r0, 0x2 + cmp r7, r0 + blt _08051572 + movs r5, 0x4 + ldrsh r0, [r3, r5] + subs r0, 0x2 + cmp r7, r0 + bge _08051572 + movs r2, 0x2 + ldrsh r0, [r3, r2] + adds r0, 0x2 + cmp r8, r0 + blt _08051572 + movs r4, 0x6 + ldrsh r0, [r3, r4] + subs r0, 0x2 + cmp r8, r0 + bge _08051572 + movs r0, 0x88 + lsls r0, 1 + strh r0, [r6] + movs r0, 0xE + strb r0, [r6, 0xE] +_08051572: + strb r1, [r6, 0x9] + ldr r5, [sp, 0x4] + ldr r2, _080515D4 + adds r0, r5, r2 + strb r1, [r0] + ldr r3, [sp, 0x14] + adds r3, 0xC0 + str r3, [sp, 0x14] + ldr r4, [sp, 0x18] + adds r4, 0xC0 + str r4, [sp, 0x18] + movs r5, 0x8 + add r10, r5 + adds r7, 0x1 + mov r1, r9 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r7, r0 + blt _080514EE +_08051598: + ldr r3, [sp, 0x10] + str r3, [sp, 0x8] + ldr r4, [sp, 0xC] + mov r8, r4 + mov r5, r9 + movs r1, 0x6 + ldrsh r0, [r5, r1] + cmp r8, r0 + blt _080514C4 + b _08051640 + .align 2, 0 +_080515AC: .4byte gUnknown_203B418 +_080515B0: .4byte gUnknown_202F1DC +_080515B4: .4byte 0x00013568 +_080515B8: .4byte gUnknown_202F1E1 +_080515BC: .4byte 0x0000e250 +_080515C0: .4byte 0x0000e254 +_080515C4: .4byte 0x0000e258 +_080515C8: .4byte 0x0000e25c +_080515CC: .4byte 0x0000e27c +_080515D0: .4byte 0x0000e87c +_080515D4: .4byte 0x0000e8bc +_080515D8: + mov r2, r9 + movs r3, 0x2 + ldrsh r2, [r2, r3] + mov r8, r2 + b _08051636 +_080515E2: + mov r0, r9 + movs r1, 0 + ldrsh r7, [r0, r1] + movs r2, 0x4 + ldrsh r0, [r0, r2] + mov r3, r8 + adds r3, 0x1 + str r3, [sp, 0xC] + cmp r7, r0 + bge _08051632 +_080515F6: + bl sub_80511F0 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r7, 0 + mov r1, r8 + bl sub_8049590 + adds r5, r0, 0 + ldrb r6, [r5, 0x9] + movs r0, 0x1 + str r0, [sp] + adds r0, r5, 0 + adds r1, r4, 0 + adds r2, r7, 0 + mov r3, r8 + bl sub_805124C + strb r6, [r5, 0x9] + ldr r4, [sp, 0x4] + ldr r5, _08051650 + adds r0, r4, r5 + strb r6, [r0] + adds r7, 0x1 + mov r1, r9 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r7, r0 + blt _080515F6 +_08051632: + ldr r3, [sp, 0xC] + mov r8, r3 +_08051636: + mov r4, r9 + movs r5, 0x6 + ldrsh r0, [r4, r5] + cmp r8, r0 + blt _080515E2 +_08051640: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08051650: .4byte 0x0000e8bc + thumb_func_end sub_8051438 + + thumb_func_start sub_8051654 +sub_8051654: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + str r0, [sp] + ldr r4, _080516EC + ldr r1, [r4, 0x8] + ldr r0, [r4] + subs r1, r0 + subs r1, 0x2 + movs r0, 0x3 + bl sub_808411C + mov r8, r0 + cmp r0, 0x2 + bgt _0805167C + movs r0, 0x3 + mov r8, r0 +_0805167C: + ldr r1, [r4, 0xC] + ldr r0, [r4, 0x4] + subs r1, r0 + subs r1, 0x2 + movs r0, 0x3 + bl sub_808411C + mov r9, r0 + cmp r0, 0x2 + bgt _08051694 + movs r1, 0x3 + mov r9, r1 +_08051694: + movs r0, 0x2 + movs r1, 0x4 + bl sub_808411C + mov r10, r0 + movs r5, 0 + cmp r5, r10 + bge _08051734 + ldr r0, [r4, 0x8] + ldr r1, [r4] + subs r0, r1 + cmp r0, r8 + ble _08051734 + adds r6, r4, 0 +_080516B0: + movs r0, 0x64 + bl sub_8084100 + cmp r0, 0x31 + bgt _080516F4 + ldr r4, [r6, 0x4] + ldr r0, [r6, 0xC] + adds r7, r5, 0x1 + cmp r4, r0 + bge _080516E4 + ldr r5, _080516EC + ldr r0, _080516F0 + adds r2, r0, 0 +_080516CA: + ldr r0, [r5] + adds r1, r4, 0 + str r2, [sp, 0xC] + bl sub_8049590 + ldrh r1, [r0] + ldr r2, [sp, 0xC] + ands r1, r2 + strh r1, [r0] + adds r4, 0x1 + ldr r0, [r5, 0xC] + cmp r4, r0 + blt _080516CA +_080516E4: + ldr r0, [r6] + adds r0, 0x1 + str r0, [r6] + b _08051724 + .align 2, 0 +_080516EC: .4byte gUnknown_202F1B8 +_080516F0: .4byte 0x0000ffdf +_080516F4: + ldr r0, [r6, 0x8] + subs r0, 0x1 + str r0, [r6, 0x8] + ldr r4, [r6, 0x4] + ldr r0, [r6, 0xC] + adds r7, r5, 0x1 + cmp r4, r0 + bge _08051724 + ldr r5, _08051784 + ldr r1, _08051788 + adds r2, r1, 0 +_0805170A: + ldr r0, [r5, 0x8] + adds r1, r4, 0 + str r2, [sp, 0xC] + bl sub_8049590 + ldrh r1, [r0] + ldr r2, [sp, 0xC] + ands r1, r2 + strh r1, [r0] + adds r4, 0x1 + ldr r0, [r5, 0xC] + cmp r4, r0 + blt _0805170A +_08051724: + adds r5, r7, 0 + cmp r5, r10 + bge _08051734 + ldr r0, [r6, 0x8] + ldr r1, [r6] + subs r0, r1 + cmp r0, r8 + bgt _080516B0 +_08051734: + movs r5, 0 + ldr r3, _08051784 + cmp r5, r10 + bge _080517CE + ldr r0, [r3, 0xC] + ldr r1, [r3, 0x4] + subs r0, r1 + cmp r0, r9 + ble _080517CE + adds r6, r3, 0 +_08051748: + movs r0, 0x64 + bl sub_8084100 + cmp r0, 0x31 + bgt _0805178C + ldr r4, [r6] + ldr r0, [r6, 0x8] + adds r7, r5, 0x1 + cmp r4, r0 + bge _0805177C + ldr r5, _08051784 + ldr r0, _08051788 + adds r2, r0, 0 +_08051762: + ldr r1, [r5, 0x4] + adds r0, r4, 0 + str r2, [sp, 0xC] + bl sub_8049590 + ldrh r1, [r0] + ldr r2, [sp, 0xC] + ands r1, r2 + strh r1, [r0] + adds r4, 0x1 + ldr r0, [r5, 0x8] + cmp r4, r0 + blt _08051762 +_0805177C: + ldr r0, [r6, 0x4] + adds r0, 0x1 + str r0, [r6, 0x4] + b _080517BC + .align 2, 0 +_08051784: .4byte gUnknown_202F1B8 +_08051788: .4byte 0x0000ffdf +_0805178C: + ldr r0, [r6, 0xC] + subs r0, 0x1 + str r0, [r6, 0xC] + ldr r4, [r6] + ldr r0, [r6, 0x8] + adds r7, r5, 0x1 + cmp r4, r0 + bge _080517BC + ldr r5, _080518E4 + ldr r1, _080518E8 + adds r2, r1, 0 +_080517A2: + ldr r1, [r5, 0xC] + adds r0, r4, 0 + str r2, [sp, 0xC] + bl sub_8049590 + ldrh r1, [r0] + ldr r2, [sp, 0xC] + ands r1, r2 + strh r1, [r0] + adds r4, 0x1 + ldr r0, [r5, 0x8] + cmp r4, r0 + blt _080517A2 +_080517BC: + adds r5, r7, 0 + ldr r3, _080518E4 + cmp r5, r10 + bge _080517CE + ldr r1, [r6, 0xC] + ldr r0, [r6, 0x4] + subs r1, r0 + cmp r1, r9 + bgt _08051748 +_080517CE: + ldr r7, [r3] + ldr r0, [r3, 0x8] + cmp r7, r0 + bge _08051824 + adds r4, r3, 0 + mov r9, r3 +_080517DA: + ldr r5, [r4, 0x4] + ldr r0, [r4, 0xC] + adds r1, r7, 0x1 + mov r8, r1 + cmp r5, r0 + bge _0805181A + ldr r3, _080518E4 + ldr r0, _080518E8 + adds r6, r0, 0 +_080517EC: + adds r0, r7, 0 + adds r1, r5, 0 + str r3, [sp, 0x10] + bl sub_8049590 + adds r2, r0, 0 + ldrh r1, [r2] + movs r0, 0x20 + ands r0, r1 + ldr r3, [sp, 0x10] + cmp r0, 0 + beq _08051812 + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08051812 + adds r0, r1, 0 + ands r0, r6 + strh r0, [r2] +_08051812: + adds r5, 0x1 + ldr r0, [r4, 0xC] + cmp r5, r0 + blt _080517EC +_0805181A: + mov r7, r8 + mov r1, r9 + ldr r0, [r1, 0x8] + cmp r7, r0 + blt _080517DA +_08051824: + ldr r0, [r3] + ldr r1, [r3, 0x8] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r2, r0, 1 + ldr r0, [r3, 0x4] + ldr r1, [r3, 0xC] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r0, 0x1 + mov r10, r0 + movs r0, 0 + mov r9, r0 + subs r7, r2, 0x1 + adds r0, r2, 0x2 + cmp r7, r0 + bge _080518D2 + adds r2, r0, 0 + str r2, [sp, 0x4] +_08051850: + mov r5, r10 + adds r0, r5, 0x3 + adds r1, r7, 0x1 + mov r8, r1 + mov r1, r9 + adds r1, 0x1 + str r1, [sp, 0x8] + cmp r5, r0 + bge _080518C6 + movs r3, 0 +_08051864: + adds r0, r7, 0 + adds r1, r5, 0 + str r3, [sp, 0x10] + bl sub_8049590 + adds r6, r0, 0 + ldrh r1, [r6] + movs r0, 0x20 + ands r0, r1 + ldr r3, [sp, 0x10] + cmp r0, 0 + beq _080518BA + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080518BA + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _080518BA + mov r0, r9 + lsls r2, r0, 1 + adds r2, r3 + ldr r0, [sp] + ldrb r1, [r0, 0x18] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 1 + adds r2, r0 + ldr r1, _080518EC + adds r2, r1 + movs r0, 0 + ldrsh r4, [r2, r0] + movs r0, 0x64 + bl sub_8084100 + ldr r3, [sp, 0x10] + cmp r4, r0 + ble _080518BA + ldrh r1, [r6, 0x4] + movs r0, 0x2 + orrs r0, r1 + strh r0, [r6, 0x4] +_080518BA: + adds r5, 0x1 + adds r3, 0x6 + mov r0, r10 + adds r0, 0x3 + cmp r5, r0 + blt _08051864 +_080518C6: + mov r7, r8 + ldr r1, [sp, 0x8] + mov r9, r1 + ldr r0, [sp, 0x4] + cmp r7, r0 + blt _08051850 +_080518D2: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080518E4: .4byte gUnknown_202F1B8 +_080518E8: .4byte 0x0000ffdf +_080518EC: .4byte gUnknown_80F57D4 + thumb_func_end sub_8051654 + + thumb_func_start sub_80518F0 +sub_80518F0: + push {r4-r7,lr} + movs r5, 0 + movs r6, 0x10 + movs r7, 0 +_080518F8: + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8049590 + adds r4, r0, 0 + bl sub_804FD10 + cmp r5, 0 + beq _0805190E + cmp r5, 0x37 + bne _08051914 +_0805190E: + ldrh r0, [r4] + orrs r0, r6 + strh r0, [r4] +_08051914: + adds r0, r5, 0 + movs r1, 0x1E + bl sub_8049590 + adds r4, r0, 0 + bl sub_804FD10 + cmp r5, 0 + beq _0805192A + cmp r5, 0x37 + bne _08051930 +_0805192A: + ldrh r0, [r4] + orrs r0, r6 + strh r0, [r4] +_08051930: + adds r5, 0x1 + cmp r5, 0x37 + ble _080518F8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80518F0 + + thumb_func_start sub_805193C +sub_805193C: + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r3, 0 + ldr r4, [sp, 0x18] + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 16 + lsls r2, 16 + lsrs r1, 16 + orrs r1, r2 + str r1, [sp, 0x4] + adds r0, r5, 0 + bl sub_805210C + lsls r0, 24 + cmp r0, 0 + beq _0805196A + mov r0, sp + movs r1, 0x76 + movs r2, 0 + bl sub_8090A8C + b _08051974 +_0805196A: + mov r0, sp + adds r1, r5, 0 + movs r2, 0 + bl sub_8090A8C +_08051974: + mov r0, sp + ldrb r0, [r0] + orrs r4, r0 + mov r0, sp + strb r4, [r0] + cmp r6, 0 + beq _08051984 + strb r6, [r0, 0x1] +_08051984: + add r0, sp, 0x4 + mov r1, sp + movs r2, 0x1 + bl sub_80460F8 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_805193C + + thumb_func_start sub_8051998 +sub_8051998: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + mov r8, r1 + mov r9, r2 + lsls r0, 16 + asrs r0, 16 + adds r1, r0, 0 + lsls r3, 24 + lsrs r6, r3, 24 + adds r7, r6, 0 + ldr r0, _080519E4 + cmp r1, r0 + bne _080519E8 + mov r1, sp + movs r5, 0 + movs r4, 0 + movs r0, 0x3C + strh r0, [r1] + bl sub_803DA20 + mov r1, sp + strh r0, [r1, 0x8] + mov r0, sp + strb r6, [r0, 0x2] + str r4, [sp, 0x4] + strb r5, [r0, 0x10] + mov r1, r8 + strh r1, [r0, 0xC] + mov r1, r9 + strh r1, [r0, 0xE] + movs r1, 0x1 + bl sub_806B7F8 + b _08051A14 + .align 2, 0 +_080519E4: .4byte 0x000001a5 +_080519E8: + cmp r1, 0 + beq _08051A14 + mov r0, sp + movs r5, 0 + movs r4, 0 + strh r1, [r0] + adds r0, r1, 0 + bl sub_803DA20 + mov r1, sp + strh r0, [r1, 0x8] + mov r0, sp + strb r7, [r0, 0x2] + str r4, [sp, 0x4] + strb r5, [r0, 0x10] + mov r1, r8 + strh r1, [r0, 0xC] + mov r1, r9 + strh r1, [r0, 0xE] + movs r1, 0x1 + bl sub_806B7F8 +_08051A14: + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8051998 + + thumb_func_start sub_8051A24 +sub_8051A24: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r6, r0, 0 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8049590 + adds r7, r0, 0 + lsls r4, 16 + lsls r5, 16 + lsrs r4, 16 + orrs r4, r5 + str r4, [sp] + adds r0, r6, 0 + mov r1, sp + movs r2, 0 + bl sub_8045684 + cmp r0, 0 + beq _08051A66 + str r0, [r7, 0x14] + adds r0, 0x20 + mov r1, r8 + strb r1, [r0] +_08051A66: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8051A24 + + thumb_func_start sub_8051A74 +sub_8051A74: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + adds r4, r0, 0 + adds r6, r2, 0 + adds r7, r3, 0 + ldr r0, [sp, 0x20] + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + cmp r1, 0xF + bls _08051AA2 + ldrh r0, [r4] + ldr r1, _08051AB4 + ands r1, r0 + movs r0, 0x1 + orrs r1, r0 + strh r1, [r4] +_08051AA2: + mov r0, r8 + cmp r0, 0x45 + bls _08051AAA + b _08051D68 +_08051AAA: + lsls r0, 2 + ldr r1, _08051AB8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08051AB4: .4byte 0x0000fffc +_08051AB8: .4byte _08051ABC + .align 2, 0 +_08051ABC: + .4byte _08051BF0 + .4byte _08051C0C + .4byte _08051D50 + .4byte _08051E1A + .4byte _08051C20 + .4byte _08051C54 + .4byte _08051C64 + .4byte _08051C74 + .4byte _08051C94 + .4byte _08051D00 + .4byte _08051C7E + .4byte _08051D10 + .4byte _08051D24 + .4byte _08051D50 + .4byte _08051D50 + .4byte _08051E1A + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051D68 + .4byte _08051C94 + .4byte _08051CD4 + .4byte _08051BD4 +_08051BD4: + ldr r0, _08051BFC + ldr r0, [r0] + ldr r2, _08051C00 + adds r1, r0, r2 + strh r6, [r1] + ldr r3, _08051C04 + adds r0, r3 + strh r7, [r0] + movs r0, 0xB + adds r1, r6, 0 + adds r2, r7, 0 + movs r3, 0 + bl sub_8051A24 +_08051BF0: + ldrh r1, [r4] + ldr r0, _08051C08 + ands r0, r1 + movs r1, 0x1 + movs r2, 0 + b _08051D42 + .align 2, 0 +_08051BFC: .4byte gUnknown_203B418 +_08051C00: .4byte 0x00000684 +_08051C04: .4byte 0x00000686 +_08051C08: .4byte 0x0000fffc +_08051C0C: + ldrh r1, [r4] + ldr r0, _08051C18 + ands r0, r1 + ldr r1, _08051C1C + ands r0, r1 + b _08051D5A + .align 2, 0 +_08051C18: .4byte 0x0000fffc +_08051C1C: .4byte 0x0000feff +_08051C20: + ldrh r1, [r4] + ldr r0, _08051C44 + ands r0, r1 + movs r1, 0x1 + movs r2, 0 + orrs r0, r1 + strh r0, [r4] + ldr r0, _08051C48 + ldr r0, [r0] + ldr r3, _08051C4C + adds r1, r0, r3 + strh r6, [r1] + ldr r1, _08051C50 + adds r0, r1 + strh r7, [r0] + strb r2, [r4, 0x9] + b _08051E1A + .align 2, 0 +_08051C44: .4byte 0x0000fffc +_08051C48: .4byte gUnknown_203B418 +_08051C4C: .4byte 0x0000e218 +_08051C50: .4byte 0x0000e21a +_08051C54: + ldrh r1, [r4] + ldr r0, _08051C60 + ands r0, r1 + movs r2, 0 + movs r1, 0x2 + b _08051D42 + .align 2, 0 +_08051C60: .4byte 0x0000fffc +_08051C64: + ldrh r1, [r4] + ldr r0, _08051C70 + ands r0, r1 + movs r1, 0x3 + b _08051D58 + .align 2, 0 +_08051C70: .4byte 0x0000fffc +_08051C74: + ldr r1, _08051C8C + movs r0, 0x1 + strb r0, [r1] + bl sub_8049840 +_08051C7E: + ldrh r1, [r4] + ldr r0, _08051C90 + ands r0, r1 + movs r1, 0x3 + orrs r0, r1 + b _08051D56 + .align 2, 0 +_08051C8C: .4byte gUnknown_202F1A8 +_08051C90: .4byte 0x0000fffc +_08051C94: + ldrh r1, [r4] + ldr r0, _08051CC0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + ldrh r0, [r4, 0x4] + movs r2, 0 + orrs r0, r1 + ldr r1, _08051CC4 + ands r0, r1 + strh r0, [r4, 0x4] + strb r2, [r4, 0x9] + ldr r0, _08051CC8 + ldr r0, [r0] + ldr r2, _08051CCC + adds r1, r0, r2 + strh r6, [r1] + ldr r3, _08051CD0 + adds r0, r3 + strh r7, [r0] + b _08051E1A + .align 2, 0 +_08051CC0: .4byte 0x0000fffc +_08051CC4: .4byte 0x0000fffd +_08051CC8: .4byte gUnknown_203B418 +_08051CCC: .4byte 0x0000e21c +_08051CD0: .4byte 0x0000e21e +_08051CD4: + ldrh r1, [r4] + movs r2, 0x80 + lsls r2, 4 + adds r0, r2, 0 + orrs r0, r1 + ldr r1, _08051CF8 + ands r0, r1 + movs r1, 0x1 + movs r2, 0 + orrs r0, r1 + strh r0, [r4] + ldrh r1, [r4, 0x4] + ldr r0, _08051CFC + ands r0, r1 + strh r0, [r4, 0x4] + strb r2, [r4, 0x9] + b _08051E1A + .align 2, 0 +_08051CF8: .4byte 0x0000fffc +_08051CFC: .4byte 0x0000fffd +_08051D00: + ldrh r1, [r4] + ldr r0, _08051D0C + ands r0, r1 + movs r1, 0x1 + b _08051D58 + .align 2, 0 +_08051D0C: .4byte 0x0000fffc +_08051D10: + ldrh r1, [r4] + ldr r0, _08051D20 + ands r0, r1 + movs r1, 0x1 + movs r2, 0 + orrs r0, r1 + b _08051D3C + .align 2, 0 +_08051D20: .4byte 0x0000fffc +_08051D24: + ldrh r1, [r4] + ldr r0, _08051D4C + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + movs r2, 0x80 + lsls r2, 5 + adds r1, r2, 0 + orrs r0, r1 + movs r1, 0x10 + orrs r0, r1 + movs r2, 0 +_08051D3C: + movs r3, 0x80 + lsls r3, 4 + adds r1, r3, 0 +_08051D42: + orrs r0, r1 + strh r0, [r4] + strb r2, [r4, 0x9] + b _08051E1A + .align 2, 0 +_08051D4C: .4byte 0x0000fffc +_08051D50: + ldrh r1, [r4] + ldr r0, _08051D64 + ands r0, r1 +_08051D56: + movs r1, 0x10 +_08051D58: + orrs r0, r1 +_08051D5A: + strh r0, [r4] + movs r0, 0xFF + strb r0, [r4, 0x9] + b _08051E1A + .align 2, 0 +_08051D64: .4byte 0x0000fffc +_08051D68: + mov r0, r8 + subs r0, 0x10 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xCB + bhi _08051E1A + mov r1, r8 + lsls r0, r1, 4 + ldr r1, _08051DA0 + adds r5, r0, r1 + ldrb r0, [r5, 0xC] + strb r0, [r4, 0x9] + ldrb r1, [r5] + cmp r1, 0 + beq _08051DB8 + mov r2, r9 + cmp r2, 0 + beq _08051DA4 + ldrb r0, [r5] + movs r1, 0x2 + ldrsh r3, [r5, r1] + ldr r1, [r5, 0x4] + str r1, [sp] + adds r1, r6, 0 + adds r2, r7, 0 + bl sub_805193C + b _08051DDC + .align 2, 0 +_08051DA0: .4byte gUnknown_80F6D20 +_08051DA4: + ldr r0, _08051DB0 + ldr r0, [r0] + ldr r2, _08051DB4 + adds r0, r2 + strb r1, [r0] + b _08051DDC + .align 2, 0 +_08051DB0: .4byte gUnknown_203B418 +_08051DB4: .4byte 0x0000068b +_08051DB8: + ldr r2, [r5, 0x4] + cmp r2, 0 + beq _08051DDC + ldr r0, _08051E2C + ldr r1, [r0] + subs r0, r2, 0x1 + lsls r0, 2 + adds r0, r1, r0 + ldr r3, _08051E30 + adds r0, r3 + strh r6, [r0] + ldr r0, [r5, 0x4] + subs r0, 0x1 + lsls r0, 2 + adds r1, r0 + ldr r0, _08051E34 + adds r1, r0 + strh r7, [r1] +_08051DDC: + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _08051DF2 + ldrb r3, [r5, 0xA] + mov r1, r8 + str r1, [sp] + adds r1, r6, 0 + adds r2, r7, 0 + bl sub_8051998 +_08051DF2: + ldrb r0, [r5, 0xB] + cmp r0, 0x14 + beq _08051E08 + mov r2, r9 + cmp r2, 0 + beq _08051E08 + ldrb r3, [r5, 0xD] + adds r1, r6, 0 + adds r2, r7, 0 + bl sub_8051A24 +_08051E08: + ldrb r0, [r5, 0xE] + cmp r0, 0 + beq _08051E1A + ldrh r0, [r4] + ldr r1, _08051E38 + ands r1, r0 + movs r0, 0x2 + orrs r1, r0 + strh r1, [r4] +_08051E1A: + movs r0, 0 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08051E2C: .4byte gUnknown_203B418 +_08051E30: .4byte 0x0000e220 +_08051E34: .4byte 0x0000e222 +_08051E38: .4byte 0x0000fffc + thumb_func_end sub_8051A74 + + thumb_func_start sub_8051E3C +sub_8051E3C: + push {r4-r6,lr} + sub sp, 0x4 + movs r5, 0 +_08051E42: + movs r4, 0 + adds r6, r5, 0x1 +_08051E46: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8049590 + adds r2, r0, 0 + ldrb r0, [r2, 0xE] + cmp r0, 0xF + bls _08051E66 + adds r1, r0, 0 + movs r0, 0 + str r0, [sp] + adds r0, r2, 0 + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_8051A74 +_08051E66: + adds r4, 0x1 + cmp r4, 0x37 + ble _08051E46 + adds r5, r6, 0 + cmp r5, 0x1F + ble _08051E42 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8051E3C + + thumb_func_start sub_8051E7C +sub_8051E7C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r9, r0 + movs r1, 0x4 + ldrsh r0, [r0, r1] + mov r2, r9 + movs r3, 0x6 + ldrsh r1, [r2, r3] + subs r1, 0x1 + bl sub_8049590 + str r0, [sp, 0x8] + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + bne _08051EB8 + ldr r0, _08051EB4 + ldr r1, [r0] + mov r0, r9 + bl sub_80522A8 + b _080520F6 + .align 2, 0 +_08051EB4: .4byte gUnknown_80FDDF0 +_08051EB8: + ldr r0, _08051EF0 + ldr r0, [r0] + ldr r1, _08051EF4 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08051EC8 + b _080520EC +_08051EC8: + mov r2, r9 + ldrh r1, [r2, 0x6] + subs r1, 0x1 + lsls r1, 16 + ldrh r0, [r2, 0x4] + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, r9 + bl sub_80450FC + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0xC] + mov r3, r9 + movs r1, 0x6 + ldrsh r0, [r3, r1] + adds r6, r0, 0 + subs r6, 0x15 + b _08051FE0 + .align 2, 0 +_08051EF0: .4byte gUnknown_203B418 +_08051EF4: .4byte 0x00003a09 +_08051EF8: + mov r2, r9 + movs r3, 0x4 + ldrsh r0, [r2, r3] + adds r5, r0, 0 + subs r5, 0x14 + adds r0, 0x14 + adds r1, r6, 0x1 + str r1, [sp, 0x10] + cmp r5, r0 + bgt _08051FD8 + ldr r2, _080520C0 + mov r10, r2 +_08051F10: + mov r0, r10 + ldr r3, [r0] + ldr r1, _080520C4 + adds r0, r3, r1 + ldr r1, [r0] + subs r2, r5, r1 + mov r8, r2 + ldr r2, _080520C8 + adds r0, r3, r2 + ldr r2, [r0] + subs r7, r6, r2 + mov r0, r8 + cmp r0, 0 + blt _08051FCA + cmp r7, 0 + blt _08051FCA + cmp r0, 0x7 + bgt _08051FCA + cmp r7, 0x7 + bgt _08051FCA + adds r0, r1, 0x1 + cmp r5, r0 + blt _08051FCA + adds r0, r2, 0x1 + cmp r6, r0 + blt _08051FCA + ldr r1, _080520CC + adds r0, r3, r1 + ldr r0, [r0] + subs r0, 0x1 + cmp r5, r0 + bge _08051FCA + ldr r2, _080520D0 + adds r0, r3, r2 + ldr r0, [r0] + subs r0, 0x1 + cmp r6, r0 + bge _08051FCA + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8049590 + adds r4, r0, 0 + ldrh r0, [r4] + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _08051F9A + mov r0, r10 + ldr r2, [r0] + lsls r1, r7, 1 + adds r1, r7 + lsls r1, 3 + mov r3, r8 + lsls r0, r3, 1 + add r0, r8 + lsls r0, 6 + adds r1, r0 + adds r2, r1 + ldr r1, _080520D4 + adds r0, r2, r1 + ldrh r0, [r0] + strh r0, [r4] + ldr r3, _080520D8 + adds r2, r3 + ldrh r0, [r2] + strh r0, [r4, 0x4] +_08051F9A: + mov r1, r10 + ldr r0, [r1] + mov r2, r8 + lsls r1, r2, 3 + adds r1, r7, r1 + ldr r3, _080520DC + adds r0, r3 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + str r0, [sp] + adds r0, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_8051A74 + ldrh r1, [r4, 0x4] + movs r0, 0x3 + orrs r0, r1 + strh r0, [r4, 0x4] + ldr r0, [sp, 0xC] + cmp r0, 0xFF + beq _08051FCA + strb r0, [r4, 0x9] +_08051FCA: + adds r5, 0x1 + mov r2, r9 + movs r3, 0x4 + ldrsh r0, [r2, r3] + adds r0, 0x14 + cmp r5, r0 + ble _08051F10 +_08051FD8: + ldr r6, [sp, 0x10] + mov r1, r9 + movs r2, 0x6 + ldrsh r0, [r1, r2] +_08051FE0: + adds r0, 0x13 + cmp r6, r0 + ble _08051EF8 + mov r3, r9 + movs r1, 0x6 + ldrsh r0, [r3, r1] + adds r6, r0, 0 + subs r6, 0x15 + adds r0, 0x13 + ldr r7, _080520C0 + cmp r6, r0 + bgt _0805207A +_08051FF8: + mov r2, r9 + movs r3, 0x4 + ldrsh r0, [r2, r3] + adds r5, r0, 0 + subs r5, 0x14 + adds r0, 0x14 + adds r1, r6, 0x1 + str r1, [sp, 0x10] + cmp r5, r0 + bgt _0805206C + ldr r7, _080520C0 +_0805200E: + ldr r0, _080520C0 + ldr r4, [r0] + ldr r2, _080520C4 + adds r0, r4, r2 + ldr r2, [r0] + subs r1, r5, r2 + ldr r3, _080520C8 + adds r0, r4, r3 + ldr r3, [r0] + subs r0, r6, r3 + cmp r1, 0 + blt _0805205E + cmp r0, 0 + blt _0805205E + cmp r1, 0x7 + bgt _0805205E + cmp r0, 0x7 + bgt _0805205E + adds r0, r2, 0x1 + cmp r5, r0 + blt _0805205E + adds r0, r3, 0x1 + cmp r6, r0 + blt _0805205E + ldr r1, _080520CC + adds r0, r4, r1 + ldr r0, [r0] + subs r0, 0x1 + cmp r5, r0 + bge _0805205E + ldr r2, _080520D0 + adds r0, r4, r2 + ldr r0, [r0] + subs r0, 0x1 + cmp r6, r0 + bge _0805205E + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_80498A8 +_0805205E: + adds r5, 0x1 + mov r3, r9 + movs r1, 0x4 + ldrsh r0, [r3, r1] + adds r0, 0x14 + cmp r5, r0 + ble _0805200E +_0805206C: + ldr r6, [sp, 0x10] + mov r2, r9 + movs r3, 0x6 + ldrsh r0, [r2, r3] + adds r0, 0x13 + cmp r6, r0 + ble _08051FF8 +_0805207A: + ldr r0, [r7] + ldr r1, _080520E0 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r2, [sp, 0x8] + ldrh r1, [r2] + ldr r0, _080520E4 + ands r0, r1 + strh r0, [r2] + mov r3, r9 + movs r1, 0x4 + ldrsh r0, [r3, r1] + movs r2, 0x6 + ldrsh r1, [r3, r2] + subs r1, 0x1 + bl sub_80498A8 + bl sub_8049B8C + bl sub_8049ED4 + add r0, sp, 0x4 + bl sub_80429FC + ldr r0, _080520E8 + ldr r1, [r0] + mov r0, r9 + bl sub_80522A8 + movs r0, 0x14 + movs r1, 0x3C + bl sub_803E708 + b _080520F6 + .align 2, 0 +_080520C0: .4byte gUnknown_203B418 +_080520C4: .4byte 0x0000e250 +_080520C8: .4byte 0x0000e254 +_080520CC: .4byte 0x0000e258 +_080520D0: .4byte 0x0000e25c +_080520D4: .4byte 0x0000e27c +_080520D8: .4byte 0x0000e280 +_080520DC: .4byte 0x0000e87c +_080520E0: .4byte 0x00003a09 +_080520E4: .4byte 0x0000efef +_080520E8: .4byte gUnknown_80FDDD0 +_080520EC: + ldr r0, _08052108 + ldr r1, [r0] + mov r0, r9 + bl sub_80522A8 +_080520F6: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08052108: .4byte gUnknown_80FDDF0 + thumb_func_end sub_8051E7C + + thumb_func_start sub_805210C +sub_805210C: + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + ldr r7, _080521B4 + movs r4, 0x1 + ldr r2, [r7] +_0805211A: + ldrb r1, [r2] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _0805212A + ldrb r0, [r2, 0x2] + cmp r0, r5 + beq _080521C8 +_0805212A: + adds r2, 0x4 + adds r3, 0x1 + cmp r3, 0x13 + ble _0805211A + movs r3, 0 + ldr r0, _080521B8 + ldr r4, [r0] + movs r6, 0x1 +_0805213A: + movs r0, 0x64 + adds r2, r3, 0 + muls r2, r0 + adds r0, r2, r4 + ldr r1, _080521BC + adds r0, r1 + ldrb r1, [r0] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _0805216C + adds r0, r2, r4 + ldr r1, _080521C0 + adds r0, r1 + ldrb r1, [r0] + adds r0, r6, 0 + ands r0, r1 + adds r1, r2, r4 + cmp r0, 0 + beq _0805216C + ldr r2, _080521C4 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, r5 + beq _080521C8 +_0805216C: + adds r3, 0x1 + cmp r3, 0x3 + ble _0805213A + movs r3, 0 + ldr r0, _080521B8 + ldr r4, [r0] +_08052178: + movs r0, 0x58 + muls r0, r3 + adds r2, r0, r4 + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08052196 + adds r0, r2, 0 + adds r0, 0x28 + ldrb r0, [r0] + cmp r0, 0 + beq _08052196 + cmp r0, r5 + beq _080521C8 +_08052196: + adds r3, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r3, r0 + ble _08052178 + ldr r0, [r7] + lsls r1, r5, 1 + adds r0, 0x50 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _080521C8 + movs r0, 0 + b _080521CA + .align 2, 0 +_080521B4: .4byte gUnknown_203B460 +_080521B8: .4byte gUnknown_203B45C +_080521BC: .4byte 0x00008df8 +_080521C0: .4byte 0x00008e38 +_080521C4: .4byte 0x00008e3a +_080521C8: + movs r0, 0x1 +_080521CA: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_805210C + + thumb_func_start sub_80521D0 +sub_80521D0: + push {r4-r6,lr} + movs r1, 0 + ldr r5, _08052200 + ldr r6, _08052204 + ldr r4, _08052208 + ldr r3, _0805220C + movs r2, 0 +_080521DE: + ldr r0, [r4] + adds r0, r3 + adds r0, r1 + strb r2, [r0] + adds r1, 0x1 + cmp r1, 0x9 + ble _080521DE + movs r0, 0 + str r0, [r5] + movs r0, 0x1 + strb r0, [r6] + movs r0, 0 + bl sub_8052210 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08052200: .4byte gUnknown_202F1E8 +_08052204: .4byte gUnknown_203B434 +_08052208: .4byte gUnknown_203B418 +_0805220C: .4byte 0x0001c054 + thumb_func_end sub_80521D0 + + thumb_func_start sub_8052210 +sub_8052210: + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r5, _08052280 +_0805221A: + lsls r0, r4, 6 + ldr r1, [r5] + adds r0, r1 + ldr r1, _08052284 + adds r0, r1 + ldr r1, _08052288 + bl strcpy + adds r4, 0x1 + cmp r4, 0x9 + ble _0805221A + ldr r1, _08052280 + ldr r0, [r1] + ldr r2, _0805228C + adds r0, r2 + movs r3, 0 + strb r3, [r0] + ldr r0, [r1] + adds r2, 0x1 + adds r1, r0, r2 + strh r3, [r1] + adds r2, 0x2 + adds r1, r0, r2 + strh r3, [r1] + adds r2, 0x2 + adds r1, r0, r2 + strh r3, [r1] + ldr r1, _08052290 + adds r2, r0, r1 + movs r1, 0x4 + strh r1, [r2] + ldr r2, _08052294 + adds r0, r2 + str r3, [r0] + cmp r6, 0 + beq _08052278 + ldr r0, _08052298 + ldr r0, [r0] + cmp r0, 0x3 + bne _08052278 + movs r0, 0 + movs r1, 0 + bl sub_803EAF0 + movs r0, 0xB + bl sub_803E46C +_08052278: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08052280: .4byte gUnknown_203B418 +_08052284: .4byte 0x0001bdd4 +_08052288: .4byte gUnknown_80F7AE8 +_0805228C: .4byte 0x0001c05f +_08052290: .4byte 0x0001c066 +_08052294: .4byte 0x0001c06c +_08052298: .4byte gUnknown_202EDD0 + thumb_func_end sub_8052210 + + .align 2,0 @ Don't pad with nop diff --git a/data/personality_test.inc b/data/personality_test.inc index 9077082..58bb86e 100644 --- a/data/personality_test.inc +++ b/data/personality_test.inc @@ -79,8 +79,8 @@ gNatureQuestionTable: @ 80F2704 (Categories??) .byte 0x0D, 0x0D, 0x0D @ (Miscellaneous) .byte 0x02 @ (Question 2b for Brave Category) - .global gUnknown_80F273C -gUnknown_80F273C: @ 80F273C + .global gGenderText +gGenderText: @ 80F273C .asciz "Are you a boy or a girl?" .align 2,0 .byte 0x3C, 0x27, 0x0F, 0x08 @ pointer to above text @@ -141,8 +141,8 @@ gStarters: @ 80F278E .byte 0x15, 0x01 @ Treecko (Quirky F) .byte 0x00, 0x00 @ End of table - .global gUnknown_80F27C4 -gUnknown_80F27C4: @ 80F27C4 + .global gStarterReveal +gStarterReveal: @ 80F27C4 .string "\n" .string "#+The Pokémon $m0!" .byte 0 diff --git a/ld_script.txt b/ld_script.txt index 4705b5d..b556666 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -75,6 +75,8 @@ SECTIONS { asm/save.o(.text); src/save1.o(.text); asm/code_8012A18.o(.text); + src/code_8012A18.o(.text); + asm/code_803D110.o(.text); src/code_80521D0.o(.text); asm/code_80521D0.o(.text); src/pokemon.o(.text); diff --git a/src/code_8012A18.c b/src/code_8012A18.c new file mode 100644 index 0000000..e21400c --- /dev/null +++ b/src/code_8012A18.c @@ -0,0 +1,25 @@ +#include "global.h" + +extern u8 gUnknown_80F42D0[]; +extern u8 gUnknown_80F42F0[]; +extern u8 gUnknown_203B408; + +u8 sub_803D0D8() +{ + return gUnknown_203B408; +} + +void sub_803D0E4(u8 r0) +{ + gUnknown_203B408 = r0; +} + +u8 sub_803D0F0(u8 r0) +{ + return gUnknown_80F42F0[r0]; +} + +u8 sub_803D100(u8 r0) +{ + return gUnknown_80F42D0[r0]; +} |