diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2020-10-21 17:48:40 -0500 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2020-10-21 17:48:40 -0500 |
commit | e1f9c17e3569e666d81f9d20fb9d57d4cd614eb0 (patch) | |
tree | de9cf09407173cb0530ca52cbf7d186686375f88 /asm/code_803D110.s | |
parent | 184d3819ab381c54821b157770d015c0dce8d82a (diff) |
further splitting and decomping
Diffstat (limited to 'asm/code_803D110.s')
-rw-r--r-- | asm/code_803D110.s | 5477 |
1 files changed, 0 insertions, 5477 deletions
diff --git a/asm/code_803D110.s b/asm/code_803D110.s index 7e74795..88bbc1f 100644 --- a/asm/code_803D110.s +++ b/asm/code_803D110.s @@ -6088,5481 +6088,4 @@ _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 - .align 2,0 @ Don't pad with nop |