diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-03-30 13:11:51 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-30 13:11:51 -0500 |
commit | a2d206665c6fffbd962375f262b7fbb05c7b7478 (patch) | |
tree | 6710109c4d9098b74da68ca8f18024d6c184ebc2 /asm/other_menus.s | |
parent | 2fd4f339b42c010191c199772b09ac34c580de94 (diff) |
Move some data and Splitting (#32)
* move friend area settings to src
* split out playtime into different C file and decomp a few more funcs
* time -> play_time
* fix include
* split out more wonder mail stuff
* unify 203B2C0 and unkDungeon structs. snuck in a decomp func too
* split out more menu screens
* work some more on trade items
* doc a few more things
* add a close nonmatch and decomp nullsub and small func
* rollback struct attempt since it causes nonmatchings
* only one func left in asm
* death to trade_item asm and unify into one C file
* more docing and cleanup
* label main menu and trade items menu global menu struct
* doc itemMode
Diffstat (limited to 'asm/other_menus.s')
-rw-r--r-- | asm/other_menus.s | 3168 |
1 files changed, 3168 insertions, 0 deletions
diff --git a/asm/other_menus.s b/asm/other_menus.s new file mode 100644 index 0000000..39b5771 --- /dev/null +++ b/asm/other_menus.s @@ -0,0 +1,3168 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8036FDC +sub_8036FDC: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r6, r0, 0 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + movs r0, 0 + bl ResetSprites + ldr r5, _080370C0 + ldr r0, [r5] + cmp r0, 0 + bne _08037016 + ldr r4, _080370C4 + adds r0, r4, 0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + movs r1, 0 + adds r2, r4, 0 + bl MemoryFill8 +_08037016: + ldr r0, [r5] + str r6, [r0] + movs r1, 0 + str r1, [r0, 0x4] + str r1, [r0, 0x8] + movs r3, 0 + adds r7, r5, 0 + movs r6, 0xE0 + lsls r6, 1 + movs r4, 0 + movs r5, 0xDE + lsls r5, 1 +_0803702E: + ldr r0, [r7] + lsls r2, r3, 3 + adds r1, r0, r6 + adds r1, r2 + str r4, [r1] + adds r0, r2 + adds r0, r5 + strb r4, [r0] + adds r3, 0x1 + cmp r3, 0x1 + ble _0803702E + ldr r0, _080370C0 + mov r12, r0 + movs r5, 0xAE + lsls r5, 1 + mov r8, r5 + ldr r4, _080370C8 + movs r3, 0 + movs r2, 0x3 +_08037054: + mov r6, r12 + ldr r1, [r6] + adds r1, r3 + add r1, r8 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _08037054 + movs r6, 0 + bl ResetUnusedInputStruct + ldr r5, _080370C0 + ldr r0, [r5] + movs r4, 0xAE + lsls r4, 1 + adds r0, r4 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x1C + adds r1, r4 + ldr r3, _080370CC + ldr r2, _080370D0 + str r2, [sp] + str r6, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r6, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + ldr r0, [r5] + adds r0, 0x1C + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + bl sub_80376CC + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080370C0: .4byte gUnknown_203B35C +_080370C4: .4byte 0x00000504 +_080370C8: .4byte gUnknown_80E653C +_080370CC: .4byte gUnknown_80E6CD0 +_080370D0: .4byte gUnknown_80E6CE8 + thumb_func_end sub_8036FDC + + thumb_func_start sub_80370D4 +sub_80370D4: + push {r4,lr} + ldr r4, _080370EC + ldr r0, [r4] + cmp r0, 0 + beq _080370E6 + bl MemoryFree + movs r0, 0 + str r0, [r4] +_080370E6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080370EC: .4byte gUnknown_203B35C + thumb_func_end sub_80370D4 + + thumb_func_start sub_80370F0 +sub_80370F0: + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0x4 + str r0, [sp] + ldr r5, _08037110 + ldr r4, _08037114 + ldr r1, [r4] + ldr r0, [r1, 0x8] + cmp r0, 0x1 + beq _08037148 + cmp r0, 0x1 + bcc _08037118 + cmp r0, 0x2 + beq _08037158 + b _080371A8 + .align 2, 0 +_08037110: .4byte 0x0000ffdc +_08037114: .4byte gUnknown_203B35C +_08037118: + adds r0, r1, 0 + adds r0, 0x1C + bl sub_80130A8 + lsls r0, 24 + cmp r0, 0 + bne _08037130 + ldr r0, [r4] + adds r0, 0x1C + mov r1, sp + bl sub_8013114 +_08037130: + ldr r0, [sp] + cmp r0, 0x4 + bne _0803713C + bl sub_8037748 + b _080371A8 +_0803713C: + ldr r1, [r4] + movs r0, 0x1 + str r0, [r1, 0x8] + bl sub_8037900 + b _080371A8 +_08037148: + bl sub_80376CC + ldr r1, [r4] + movs r0, 0x2 + str r0, [r1, 0x8] + bl sub_80371B8 + b _080371A8 +_08037158: + ldr r0, [r1] + cmp r0, 0x1 + bhi _08037172 + ldr r0, [r1, 0x4] + cmp r0, 0 + bne _08037172 + movs r0, 0 + bl sub_8037C10 + cmp r0, 0 + bne _08037172 + movs r0, 0x29 + b _080371AA +_08037172: + ldr r4, _080371B4 + ldr r0, [r4] + adds r0, 0x1C + bl sub_80130A8 + lsls r0, 24 + cmp r0, 0 + bne _0803718C + ldr r0, [r4] + adds r0, 0x1C + mov r1, sp + bl sub_8013114 +_0803718C: + ldr r0, [sp] + cmp r0, 0x4 + beq _080371A4 + movs r0, 0x3 + bl PlayMenuSoundEffect + bl sub_8037798 + adds r5, r0, 0 + ldr r1, [r4] + movs r0, 0x4 + str r0, [r1, 0x8] +_080371A4: + bl sub_8037748 +_080371A8: + adds r0, r5, 0 +_080371AA: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080371B4: .4byte gUnknown_203B35C + thumb_func_end sub_80370F0 + + thumb_func_start sub_80371B8 +sub_80371B8: + push {r4-r7,lr} + sub sp, 0x10 + movs r6, 0 + movs r5, 0 + bl sub_8037400 + ldr r7, _0803721C + ldr r1, [r7] + ldr r0, [r1] + cmp r0, 0x1 + bhi _08037228 + ldr r0, [r1, 0x4] + cmp r0, 0 + bne _08037228 + movs r0, 0 + bl sub_8037C10 + cmp r0, 0 + bne _080371E0 + b _080373AC +_080371E0: + bl sub_80376CC + ldr r0, [r7] + movs r4, 0xAE + lsls r4, 1 + adds r0, r4 + movs r1, 0 + bl sub_8035CC0 + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0x1C + adds r1, r4 + ldr r3, _08037220 + ldr r2, _08037224 + str r2, [sp] + str r6, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r6, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + ldr r0, [r7] + adds r0, 0x1C + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + b _080373AC + .align 2, 0 +_0803721C: .4byte gUnknown_203B35C +_08037220: .4byte gUnknown_80E6C50 +_08037224: .4byte gUnknown_80E6C68 +_08037228: + bl sub_80376CC + ldr r4, _08037250 + ldr r0, [r4] + movs r1, 0xAE + lsls r1, 1 + adds r0, r1 + movs r1, 0 + bl sub_8035CC0 + ldr r0, [r4] + ldr r0, [r0, 0x4] + cmp r0, 0xF + bls _08037246 + b _0803734C +_08037246: + lsls r0, 2 + ldr r1, _08037254 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037250: .4byte gUnknown_203B35C +_08037254: .4byte _08037258 + .align 2, 0 +_08037258: + .4byte _08037298 + .4byte _080372D8 + .4byte _080372B8 + .4byte _080372A8 + .4byte _080372C8 + .4byte _080372D8 + .4byte _080372E8 + .4byte _080372F8 + .4byte _0803734C + .4byte _08037308 + .4byte _0803734C + .4byte _08037318 + .4byte _0803734C + .4byte _08037328 + .4byte _08037338 + .4byte _08037348 +_08037298: + ldr r6, _080372A0 + ldr r5, _080372A4 + b _0803734C + .align 2, 0 +_080372A0: .4byte gUnknown_80E66BC +_080372A4: .4byte gUnknown_80E66D4 +_080372A8: + ldr r6, _080372B0 + ldr r5, _080372B4 + b _0803734C + .align 2, 0 +_080372B0: .4byte gUnknown_80E6D54 +_080372B4: .4byte gUnknown_80E6D6C +_080372B8: + ldr r6, _080372C0 + ldr r5, _080372C4 + b _0803734C + .align 2, 0 +_080372C0: .4byte gUnknown_80E6DDC +_080372C4: .4byte gUnknown_80E6DF4 +_080372C8: + ldr r6, _080372D0 + ldr r5, _080372D4 + b _0803734C + .align 2, 0 +_080372D0: .4byte gUnknown_80E67D4 +_080372D4: .4byte gUnknown_80E67EC +_080372D8: + ldr r6, _080372E0 + ldr r5, _080372E4 + b _0803734C + .align 2, 0 +_080372E0: .4byte gUnknown_80E6748 +_080372E4: .4byte gUnknown_80E6760 +_080372E8: + ldr r6, _080372F0 + ldr r5, _080372F4 + b _0803734C + .align 2, 0 +_080372F0: .4byte gUnknown_80E689C +_080372F4: .4byte gUnknown_80E68B4 +_080372F8: + ldr r6, _08037300 + ldr r5, _08037304 + b _0803734C + .align 2, 0 +_08037300: .4byte gUnknown_80E6938 +_08037304: .4byte gUnknown_80E6950 +_08037308: + ldr r6, _08037310 + ldr r5, _08037314 + b _0803734C + .align 2, 0 +_08037310: .4byte gUnknown_80E69B0 +_08037314: .4byte gUnknown_80E69C8 +_08037318: + ldr r6, _08037320 + ldr r5, _08037324 + b _0803734C + .align 2, 0 +_08037320: .4byte gUnknown_80E6A10 +_08037324: .4byte gUnknown_80E6A28 +_08037328: + ldr r6, _08037330 + ldr r5, _08037334 + b _0803734C + .align 2, 0 +_08037330: .4byte gUnknown_80E6A74 +_08037334: .4byte gUnknown_80E6A8C +_08037338: + ldr r6, _08037340 + ldr r5, _08037344 + b _0803734C + .align 2, 0 +_08037340: .4byte gUnknown_80E6B78 +_08037344: .4byte gUnknown_80E6B90 +_08037348: + ldr r6, _080373B4 + ldr r5, _080373B8 +_0803734C: + ldr r4, _080373BC + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + str r5, [sp] + movs r3, 0 + str r3, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r3, [sp, 0xC] + movs r2, 0 + adds r3, r6, 0 + bl SetMenuItems + ldr r0, [r4] + adds r0, 0x1C + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + ldr r4, [r4] + ldr r0, [r4, 0x4] + cmp r0, 0 + beq _080373AC + ldr r0, [r4] + cmp r0, 0 + bne _080373AC + bl sub_8035D94 + adds r2, r0, 0 + ldrb r0, [r2] + cmp r0, 0 + beq _080373AC + ldr r3, [r2, 0x4] + cmp r3, 0 + beq _080373AC + ldr r0, _080373C0 + ldr r1, [r0] + ldrb r0, [r2] + lsls r0, 1 + adds r1, 0x50 + adds r1, r0 + ldrh r0, [r1] + adds r0, r3 + strh r0, [r1] +_080373AC: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080373B4: .4byte gUnknown_80E6BF4 +_080373B8: .4byte gUnknown_80E6C0C +_080373BC: .4byte gUnknown_203B35C +_080373C0: .4byte gUnknown_203B460 + thumb_func_end sub_80371B8 + + thumb_func_start sub_80373C4 +sub_80373C4: + push {lr} + movs r0, 0 + movs r1, 0 + bl sub_8005838 + bl sub_80060EC + bl sub_800CB20 + bl LoadBufferedInputs + bl TransferBGPaletteBuffer + bl xxx_call_update_bg_vram + bl sub_8009908 + bl xxx_call_update_bg_sound_input + movs r0, 0 + bl ResetSprites + pop {r0} + bx r0 + thumb_func_end sub_80373C4 + + thumb_func_start sub_80373F4 +sub_80373F4: + ldr r0, _080373FC + ldr r0, [r0] + bx lr + .align 2, 0 +_080373FC: .4byte gUnknown_203B35C + thumb_func_end sub_80373F4 + + thumb_func_start sub_8037400 +sub_8037400: + push {r4-r6,lr} + movs r6, 0 + movs r5, 0 + bl sub_8037810 + bl sub_8011830 + ldr r4, _08037434 + ldr r0, [r4] + ldr r0, [r0] + bl sub_8037B28 + ldr r4, [r4] + str r0, [r4, 0x4] + cmp r0, 0 + beq _08037422 + b _080376BE +_08037422: + ldr r0, [r4] + cmp r0, 0xA + bls _0803742A + b _080375E8 +_0803742A: + lsls r0, 2 + ldr r1, _08037438 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037434: .4byte gUnknown_203B35C +_08037438: .4byte _0803743C + .align 2, 0 +_0803743C: + .4byte _08037494 + .4byte _080374B8 + .4byte _08037534 + .4byte _0803751C + .4byte _0803756C + .4byte _080375D8 + .4byte _080374E4 + .4byte _080374D0 + .4byte _080375E8 + .4byte _08037480 + .4byte _08037468 +_08037468: + ldr r0, _0803747C + ldr r0, [r0] + movs r1, 0xE7 + lsls r1, 2 + adds r6, r0, r1 + movs r2, 0x8A + lsls r2, 3 + adds r5, r0, r2 + b _080375E8 + .align 2, 0 +_0803747C: .4byte gUnknown_203B35C +_08037480: + ldr r0, _08037490 + ldr r0, [r0] + movs r3, 0xE7 + lsls r3, 2 + adds r6, r0, r3 + movs r4, 0x8A + lsls r4, 3 + b _080375E6 + .align 2, 0 +_08037490: .4byte gUnknown_203B35C +_08037494: + bl sub_8035D94 + ldr r1, _080374B4 + ldr r3, [r1] + movs r5, 0xDE + lsls r5, 1 + adds r2, r3, r5 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, 0x4] + adds r6, r2, 0 + movs r0, 0xE2 + lsls r0, 1 + adds r5, r3, r0 + b _080375E8 + .align 2, 0 +_080374B4: .4byte gUnknown_203B35C +_080374B8: + ldr r0, _080374CC + ldr r0, [r0] + movs r1, 0xDE + lsls r1, 1 + adds r6, r0, r1 + movs r2, 0xE2 + lsls r2, 1 + adds r5, r0, r2 + b _080375E8 + .align 2, 0 +_080374CC: .4byte gUnknown_203B35C +_080374D0: + ldr r0, _080374E0 + ldr r0, [r0] + movs r3, 0xE6 + lsls r3, 1 + adds r6, r0, r3 + movs r4, 0xFE + lsls r4, 1 + b _080375E6 + .align 2, 0 +_080374E0: .4byte gUnknown_203B35C +_080374E4: + bl sub_8035D74 + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + ldr r3, _08037518 + ldr r1, [r3] + movs r2, 0xE6 + lsls r2, 1 + adds r1, r2 + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldr r0, [r3] + adds r6, r0, r2 + movs r1, 0xFE + lsls r1, 1 + adds r5, r0, r1 + b _080375E8 + .align 2, 0 +_08037518: .4byte gUnknown_203B35C +_0803751C: + ldr r0, _08037530 + ldr r0, [r0] + movs r2, 0x8B + lsls r2, 2 + adds r6, r0, r2 + movs r3, 0x97 + lsls r3, 2 + adds r5, r0, r3 + b _080375E8 + .align 2, 0 +_08037530: .4byte gUnknown_203B35C +_08037534: + bl sub_8035D74 + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + ldr r3, _08037568 + ldr r1, [r3] + movs r2, 0x8B + lsls r2, 2 + adds r1, r2 + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldr r0, [r3] + adds r6, r0, r2 + movs r1, 0x97 + lsls r1, 2 + adds r5, r0, r1 + b _080375E8 + .align 2, 0 +_08037568: .4byte gUnknown_203B35C +_0803756C: + bl sub_8035D74 + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + ldr r4, _080375CC + ldr r1, [r4] + movs r5, 0xA3 + lsls r5, 2 + adds r1, r5 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + bl sub_8035D3C + lsls r0, 16 + ldr r1, _080375D0 + cmp r0, r1 + beq _080375BE + bl sub_8035D3C + ldr r3, [r4] + movs r1, 0xAF + lsls r1, 2 + adds r3, r1 + ldr r1, _080375D4 + ldr r1, [r1] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x58 + muls r0, r2 + adds r1, r0 + adds r0, r3, 0 + bl memcpy +_080375BE: + ldr r0, [r4] + adds r6, r0, r5 + movs r2, 0xC5 + lsls r2, 2 + adds r5, r0, r2 + b _080375E8 + .align 2, 0 +_080375CC: .4byte gUnknown_203B35C +_080375D0: .4byte 0xffff0000 +_080375D4: .4byte gUnknown_203B45C +_080375D8: + ldr r0, _08037610 + ldr r0, [r0] + movs r3, 0xA3 + lsls r3, 2 + adds r6, r0, r3 + movs r4, 0xC5 + lsls r4, 2 +_080375E6: + adds r5, r0, r4 +_080375E8: + ldr r4, _08037610 + ldr r0, [r4] + ldr r0, [r0] + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_8037D64 + ldr r1, [r4] + str r0, [r1, 0x4] + cmp r0, 0 + bne _080376BE + ldr r0, [r1] + cmp r0, 0xA + bhi _080376AE + lsls r0, 2 + ldr r1, _08037614 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037610: .4byte gUnknown_203B35C +_08037614: .4byte _08037618 + .align 2, 0 +_08037618: + .4byte _08037644 + .4byte _08037644 + .4byte _08037658 + .4byte _08037658 + .4byte _0803766C + .4byte _0803766C + .4byte _08037684 + .4byte _08037684 + .4byte _080376AE + .4byte _0803769C + .4byte _0803769C +_08037644: + ldr r0, _08037654 + ldr r2, [r0] + movs r5, 0xDE + lsls r5, 1 + adds r6, r2, r5 + movs r1, 0xE2 + lsls r1, 1 + b _0803767A + .align 2, 0 +_08037654: .4byte gUnknown_203B35C +_08037658: + ldr r0, _08037668 + ldr r2, [r0] + movs r3, 0x8B + lsls r3, 2 + adds r6, r2, r3 + movs r4, 0x97 + lsls r4, 2 + b _08037692 + .align 2, 0 +_08037668: .4byte gUnknown_203B35C +_0803766C: + ldr r0, _08037680 + ldr r2, [r0] + movs r5, 0xA3 + lsls r5, 2 + adds r6, r2, r5 + movs r1, 0xC5 + lsls r1, 2 +_0803767A: + adds r5, r2, r1 + adds r4, r0, 0 + b _080376AE + .align 2, 0 +_08037680: .4byte gUnknown_203B35C +_08037684: + ldr r0, _08037698 + ldr r2, [r0] + movs r3, 0xE6 + lsls r3, 1 + adds r6, r2, r3 + movs r4, 0xFE + lsls r4, 1 +_08037692: + adds r5, r2, r4 + adds r4, r0, 0 + b _080376AE + .align 2, 0 +_08037698: .4byte gUnknown_203B35C +_0803769C: + ldr r1, _080376C8 + ldr r0, [r1] + movs r5, 0xE7 + lsls r5, 2 + adds r6, r0, r5 + movs r2, 0x8A + lsls r2, 3 + adds r5, r0, r2 + adds r4, r1, 0 +_080376AE: + ldr r0, [r4] + ldr r0, [r0] + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80381F4 + ldr r1, [r4] + str r0, [r1, 0x4] +_080376BE: + bl xxx_call_start_bg_music + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080376C8: .4byte gUnknown_203B35C + thumb_func_end sub_8037400 + + thumb_func_start sub_80376CC +sub_80376CC: + push {r4,lr} + ldr r0, _08037728 + ldr r3, [r0] + ldrh r1, [r3, 0xC] + ldr r0, _0803772C + ands r0, r1 + ldr r1, _08037730 + ands r0, r1 + ldr r4, _08037734 + ands r0, r4 + ldr r1, _08037738 + ands r0, r1 + ldr r1, _0803773C + ands r0, r1 + movs r2, 0x80 + lsls r2, 7 + ldr r1, _08037740 + ands r0, r1 + orrs r0, r2 + strh r0, [r3, 0xC] + movs r2, 0xFC + lsls r2, 2 + ldrh r1, [r3, 0x10] + movs r0, 0xFC + lsls r0, 8 + ands r0, r1 + orrs r0, r2 + ands r0, r4 + movs r2, 0xF + movs r4, 0xF0 + lsls r4, 8 + ldr r1, _08037744 + ands r0, r1 + orrs r0, r4 + strh r0, [r3, 0x10] + movs r0, 0 + strh r0, [r3, 0xE] + movs r1, 0xC0 + lsls r1, 4 + ldrh r0, [r3, 0x12] + ands r2, r0 + orrs r2, r1 + strh r2, [r3, 0x12] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08037728: .4byte gUnknown_203B35C +_0803772C: .4byte 0x0000feff +_08037730: .4byte 0x0000fdff +_08037734: .4byte 0x0000f3ff +_08037738: .4byte 0x0000efff +_0803773C: .4byte 0x0000dfff +_08037740: .4byte 0x00003fff +_08037744: .4byte 0x00000fff + thumb_func_end sub_80376CC + + thumb_func_start sub_8037748 +sub_8037748: + push {r4,lr} + ldr r4, _08037794 + ldr r3, [r4] + ldrh r1, [r3, 0xE] + movs r0, 0xFE + lsls r0, 8 + ands r0, r1 + movs r1, 0x70 + orrs r0, r1 + strh r0, [r3, 0xE] + movs r2, 0xD0 + lsls r2, 3 + ldrh r1, [r3, 0x12] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strh r0, [r3, 0x12] + ldr r0, [r3, 0x14] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08037782 + adds r0, r3, 0 + adds r0, 0xC + adds r1, 0xF8 + movs r2, 0 + movs r3, 0 + bl AddSprite +_08037782: + bl xxx_draw_string_80144C4 + ldr r1, [r4] + ldr r0, [r1, 0x14] + adds r0, 0x1 + str r0, [r1, 0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08037794: .4byte gUnknown_203B35C + thumb_func_end sub_8037748 + + thumb_func_start sub_8037798 +sub_8037798: + push {lr} + ldr r2, _080377B4 + ldr r1, _080377B8 + ldr r0, [r1] + ldr r0, [r0] + adds r3, r1, 0 + cmp r0, 0xA + bhi _0803780A + lsls r0, 2 + ldr r1, _080377BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080377B4: .4byte 0x0000ffdc +_080377B8: .4byte gUnknown_203B35C +_080377BC: .4byte _080377C0 + .align 2, 0 +_080377C0: + .4byte _080377EC + .4byte _080377EC + .4byte _080377F0 + .4byte _080377F0 + .4byte _080377F0 + .4byte _080377F0 + .4byte _080377F0 + .4byte _080377F0 + .4byte _0803780A + .4byte _080377FE + .4byte _080377FE +_080377EC: + movs r2, 0x1 + b _0803780A +_080377F0: + ldr r0, [r3] + ldr r0, [r0, 0x4] + movs r2, 0x1 + cmp r0, 0 + bne _0803780A + movs r2, 0x2A + b _0803780A +_080377FE: + ldr r0, [r3] + ldr r0, [r0, 0x4] + movs r2, 0xD + cmp r0, 0 + bne _0803780A + movs r2, 0x2B +_0803780A: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_8037798 + + thumb_func_start sub_8037810 +sub_8037810: + push {r4-r6,lr} + ldr r6, _080378FC + ldr r0, [r6] + movs r5, 0xDE + lsls r5, 1 + adds r0, r5 + movs r1, 0 + movs r2, 0x8 + bl MemoryFill8 + ldr r0, [r6] + movs r4, 0xE2 + lsls r4, 1 + adds r0, r4 + movs r1, 0 + movs r2, 0x8 + bl MemoryFill8 + ldr r0, [r6] + adds r5, r0, r5 + movs r1, 0 + movs r2, 0 + str r1, [r5] + str r2, [r5, 0x4] + adds r4, r0, r4 + str r1, [r4] + str r2, [r4, 0x4] + movs r2, 0xE6 + lsls r2, 1 + adds r0, r2 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r3, 0xFE + lsls r3, 1 + adds r0, r3 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r1, 0x8B + lsls r1, 2 + adds r0, r1 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r2, 0x97 + lsls r2, 2 + adds r0, r2 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r3, 0xA3 + lsls r3, 2 + adds r0, r3 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r1, 0xC5 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r2, 0xAF + lsls r2, 2 + adds r0, r2 + movs r1, 0 + movs r2, 0x58 + bl MemoryFill8 + ldr r0, [r6] + movs r3, 0xD1 + lsls r3, 2 + adds r0, r3 + movs r1, 0 + movs r2, 0x58 + bl MemoryFill8 + ldr r0, [r6] + movs r1, 0xE7 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + movs r2, 0xB4 + bl MemoryFill8 + ldr r0, [r6] + movs r2, 0x8A + lsls r2, 3 + adds r0, r2 + movs r1, 0 + movs r2, 0xB4 + bl MemoryFill8 + ldr r2, [r6] + movs r3, 0xB1 + lsls r3, 2 + adds r0, r2, r3 + movs r1, 0 + strh r1, [r0] + adds r3, 0x88 + adds r0, r2, r3 + strh r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080378FC: .4byte gUnknown_203B35C + thumb_func_end sub_8037810 + + thumb_func_start sub_8037900 +sub_8037900: + push {r4,lr} + sub sp, 0x10 + ldr r4, _08037928 + ldr r0, [r4] + movs r1, 0xAE + lsls r1, 1 + adds r0, r1 + movs r1, 0 + bl sub_8035CC0 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0xA + bls _0803791E + b _08037A14 +_0803791E: + lsls r0, 2 + ldr r1, _0803792C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037928: .4byte gUnknown_203B35C +_0803792C: .4byte _08037930 + .align 2, 0 +_08037930: + .4byte _0803795C + .4byte _0803795C + .4byte _0803797C + .4byte _0803797C + .4byte _0803799C + .4byte _0803799C + .4byte _080379BC + .4byte _080379BC + .4byte _08037A14 + .4byte _080379F0 + .4byte _080379F0 +_0803795C: + ldr r0, _08037970 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _08037974 + ldr r2, _08037978 + b _080379CE + .align 2, 0 +_08037970: .4byte gUnknown_203B35C +_08037974: .4byte gUnknown_80E6554 +_08037978: .4byte gUnknown_80E656C +_0803797C: + ldr r0, _08037990 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _08037994 + ldr r2, _08037998 + b _080379CE + .align 2, 0 +_08037990: .4byte gUnknown_203B35C +_08037994: .4byte gUnknown_80E6554 +_08037998: .4byte gUnknown_80E65D8 +_0803799C: + ldr r0, _080379B0 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _080379B4 + ldr r2, _080379B8 + b _080379CE + .align 2, 0 +_080379B0: .4byte gUnknown_203B35C +_080379B4: .4byte gUnknown_80E6554 +_080379B8: .4byte gUnknown_80E661C +_080379BC: + ldr r0, _080379E4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _080379E8 + ldr r2, _080379EC +_080379CE: + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + b _08037A14 + .align 2, 0 +_080379E4: .4byte gUnknown_203B35C +_080379E8: .4byte gUnknown_80E6554 +_080379EC: .4byte gUnknown_80E665C +_080379F0: + ldr r0, _08037A38 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _08037A3C + ldr r2, _08037A40 + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems +_08037A14: + ldr r4, _08037A38 + ldr r0, [r4] + adds r0, 0x1C + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + bl sub_80373C4 + ldr r0, [r4] + adds r0, 0x1C + bl sub_80130A8 + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08037A38: .4byte gUnknown_203B35C +_08037A3C: .4byte gUnknown_80E6554 +_08037A40: .4byte gUnknown_80E667C + thumb_func_end sub_8037900 + + thumb_func_start nullsub_202 +nullsub_202: + bx lr + thumb_func_end nullsub_202 + + thumb_func_start sub_8037A48 +sub_8037A48: + push {r4-r6,lr} + sub sp, 0x28 + movs r6, 0x1 + movs r0, 0 + mov r1, sp + movs r2, 0x14 + bl sub_800D670 + add r4, sp, 0x14 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x14 + bl sub_800D670 + ldr r1, _08037AAC + movs r3, 0x8 + adds r2, r1, 0 + adds r0, r2, 0x4 +_08037A6C: + str r3, [r0] + subs r0, 0x4 + cmp r0, r1 + bge _08037A6C + ldr r0, [sp, 0x10] + str r0, [r2] + ldr r0, [r4, 0x10] + str r0, [r2, 0x4] + ldr r5, _08037AB0 + mov r0, sp + adds r1, r5, 0 + bl strcmp + cmp r0, 0 + beq _08037A8C + movs r0, 0x1 +_08037A8C: + lsls r0, 24 + cmp r0, 0 + bne _08037AA6 + adds r0, r4, 0 + adds r1, r5, 0 + bl strcmp + cmp r0, 0 + beq _08037AA0 + movs r0, 0x1 +_08037AA0: + lsls r0, 24 + cmp r0, 0 + beq _08037AB4 +_08037AA6: + movs r0, 0 + b _08037B1E + .align 2, 0 +_08037AAC: .4byte gUnknown_202EC40 +_08037AB0: .4byte gUnknown_80E6E50 +_08037AB4: + ldr r1, [sp, 0x10] + cmp r1, 0 + bne _08037AC0 + ldr r0, [r4, 0x10] + cmp r0, 0x1 + beq _08037B1C +_08037AC0: + cmp r1, 0x1 + bne _08037ACA + ldr r0, [r4, 0x10] + cmp r0, 0 + beq _08037B1C +_08037ACA: + cmp r1, 0x2 + bne _08037AD4 + ldr r0, [r4, 0x10] + cmp r0, 0x3 + beq _08037B1C +_08037AD4: + cmp r1, 0x3 + bne _08037ADE + ldr r0, [r4, 0x10] + cmp r0, 0x2 + beq _08037B1C +_08037ADE: + cmp r1, 0x9 + bne _08037AE8 + ldr r0, [r4, 0x10] + cmp r0, 0xA + beq _08037B1C +_08037AE8: + cmp r1, 0xA + bne _08037AF2 + ldr r0, [r4, 0x10] + cmp r0, 0x9 + beq _08037B1C +_08037AF2: + cmp r1, 0x4 + bne _08037AFC + ldr r0, [r4, 0x10] + cmp r0, 0x5 + beq _08037B1C +_08037AFC: + cmp r1, 0x5 + bne _08037B06 + ldr r0, [r4, 0x10] + cmp r0, 0x4 + beq _08037B1C +_08037B06: + cmp r1, 0x6 + bne _08037B10 + ldr r0, [r4, 0x10] + cmp r0, 0x7 + beq _08037B1C +_08037B10: + cmp r1, 0x7 + bne _08037B1A + ldr r0, [r4, 0x10] + cmp r0, 0x6 + beq _08037B1C +_08037B1A: + movs r6, 0 +_08037B1C: + adds r0, r6, 0 +_08037B1E: + add sp, 0x28 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8037A48 + + thumb_func_start sub_8037B28 +sub_8037B28: + push {r4,r5,lr} + sub sp, 0x14 + adds r4, r0, 0 + movs r5, 0 + bl sub_800D414 + ldr r0, _08037B58 + str r5, [r0] + ldr r5, _08037B5C + mov r0, sp + movs r1, 0 + movs r2, 0x14 + bl MemoryFill8 + mov r0, sp + adds r1, r5, 0 + bl strcpy + str r4, [sp, 0x10] + mov r0, sp + movs r1, 0x14 + bl sub_800D59C + b _08037B7A + .align 2, 0 +_08037B58: .4byte gUnknown_202EC38 +_08037B5C: .4byte gUnknown_80E6E50 +_08037B60: + cmp r5, 0x3 + beq _08037BCC + cmp r5, 0x4 + beq _08037BD8 + cmp r5, 0x5 + beq _08037BF0 + ldr r2, _08037BC0 + ldr r1, [r2] + ldr r0, _08037BC4 + cmp r1, r0 + bgt _08037BE4 + adds r0, r1, 0x1 + str r0, [r2] +_08037B7A: + movs r4, 0 +_08037B7C: + bl sub_80373C4 + bl sub_8012AE8 + cmp r0, 0x3 + bgt _08037B8C + cmp r0, 0x2 + bge _08037BF0 +_08037B8C: + adds r4, 0x1 + cmp r4, 0 + ble _08037B7C + bl sub_800D33C + adds r5, r0, 0 + bl sub_800D570 + cmp r5, 0x2 + bne _08037B60 + bl sub_800D600 + lsls r0, 24 + cmp r0, 0 + beq _08037BFC + bl sub_8037A48 + lsls r0, 24 + cmp r0, 0 + bne _08037BC8 + movs r4, 0x4 + bl sub_800D520 + bl sub_800D510 + b _08037C06 + .align 2, 0 +_08037BC0: .4byte gUnknown_202EC38 +_08037BC4: .4byte 0x00000707 +_08037BC8: + movs r4, 0 + b _08037C06 +_08037BCC: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x2 + b _08037C08 +_08037BD8: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x3 + b _08037C08 +_08037BE4: + bl sub_800D520 + bl sub_800D510 + movs r0, 0xF + b _08037C08 +_08037BF0: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x1 + b _08037C08 +_08037BFC: + movs r4, 0x5 + bl sub_800D520 + bl sub_800D510 +_08037C06: + adds r0, r4, 0 +_08037C08: + add sp, 0x14 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8037B28 + + thumb_func_start sub_8037C10 +sub_8037C10: + push {lr} + lsls r0, 24 + cmp r0, 0 + beq _08037C24 + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + bne _08037C38 + b _08037C2E +_08037C24: + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + beq _08037C38 +_08037C2E: + ldr r0, _08037C34 + ldr r0, [r0, 0x4] + b _08037C3C + .align 2, 0 +_08037C34: .4byte gUnknown_202EC40 +_08037C38: + ldr r0, _08037C40 + ldr r0, [r0] +_08037C3C: + pop {r1} + bx r1 + .align 2, 0 +_08037C40: .4byte gUnknown_202EC40 + thumb_func_end sub_8037C10 + + thumb_func_start sub_8037C44 +sub_8037C44: + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + movs r4, 0 +_08037C4C: + adds r0, r4, 0 + bl sub_800D68C + adds r4, 0x1 + cmp r4, 0x1 + ble _08037C4C + cmp r6, 0xA + bhi _08037CBE + lsls r0, r6, 2 + ldr r1, _08037C68 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037C68: .4byte _08037C6C + .align 2, 0 +_08037C6C: + .4byte _08037C98 + .4byte _08037C98 + .4byte _08037CA2 + .4byte _08037CA2 + .4byte _08037CAC + .4byte _08037CAC + .4byte _08037CA2 + .4byte _08037CA2 + .4byte _08037CBE + .4byte _08037CB6 + .4byte _08037CB6 +_08037C98: + adds r0, r5, 0 + movs r1, 0x8 + bl sub_800D59C + b _08037CBE +_08037CA2: + adds r0, r5, 0 + movs r1, 0x30 + bl sub_800D59C + b _08037CBE +_08037CAC: + adds r0, r5, 0 + movs r1, 0x88 + bl sub_800D59C + b _08037CBE +_08037CB6: + adds r0, r5, 0 + movs r1, 0xB4 + bl sub_800D59C +_08037CBE: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8037C44 + + thumb_func_start sub_8037CC4 +sub_8037CC4: + push {r4,lr} + adds r3, r1, 0 + adds r4, r2, 0 + cmp r0, 0xA + bhi _08037D5E + lsls r0, 2 + ldr r1, _08037CD8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037CD8: .4byte _08037CDC + .align 2, 0 +_08037CDC: + .4byte _08037D08 + .4byte _08037D08 + .4byte _08037D1E + .4byte _08037D1E + .4byte _08037D34 + .4byte _08037D34 + .4byte _08037D1E + .4byte _08037D1E + .4byte _08037D5E + .4byte _08037D4A + .4byte _08037D4A +_08037D08: + movs r0, 0 + adds r1, r3, 0 + movs r2, 0x8 + bl sub_800D670 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x8 + bl sub_800D670 + b _08037D5E +_08037D1E: + movs r0, 0 + adds r1, r3, 0 + movs r2, 0x30 + bl sub_800D670 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x30 + bl sub_800D670 + b _08037D5E +_08037D34: + movs r0, 0 + adds r1, r3, 0 + movs r2, 0x88 + bl sub_800D670 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x88 + bl sub_800D670 + b _08037D5E +_08037D4A: + movs r0, 0 + adds r1, r3, 0 + movs r2, 0xB4 + bl sub_800D670 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0xB4 + bl sub_800D670 +_08037D5E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8037CC4 + + thumb_func_start sub_8037D64 +sub_8037D64: + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r1, 0 + adds r7, r2, 0 + movs r4, 0 + ldr r0, _08037D80 + str r4, [r0] + bl sub_800D494 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8037C44 + b _08037D96 + .align 2, 0 +_08037D80: .4byte gUnknown_202EC48 +_08037D84: + subs r0, r4, 0x3 + cmp r0, 0x2 + bls _08037DBC + ldr r1, _08037DB8 + ldr r0, [r1] + cmp r0, 0x63 + bgt _08037DC8 + adds r0, 0x1 + str r0, [r1] +_08037D96: + bl sub_80373C4 + bl sub_800D33C + adds r4, r0, 0 + bl sub_800D570 + cmp r4, 0x2 + bne _08037D84 + bl sub_800D600 + lsls r0, 24 + cmp r0, 0 + beq _08037DD4 + movs r4, 0 + b _08037DDE + .align 2, 0 +_08037DB8: .4byte gUnknown_202EC48 +_08037DBC: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x1 + b _08037DEA +_08037DC8: + bl sub_800D520 + bl sub_800D510 + movs r0, 0xF + b _08037DEA +_08037DD4: + bl sub_800D520 + bl sub_800D510 + movs r4, 0x5 +_08037DDE: + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r7, 0 + bl sub_8037CC4 + adds r0, r4, 0 +_08037DEA: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8037D64 + + thumb_func_start sub_8037DF0 +sub_8037DF0: + push {r4,lr} + sub sp, 0x8 + movs r4, 0 + movs r0, 0 + mov r1, sp + movs r2, 0x4 + bl sub_800D670 + add r1, sp, 0x4 + movs r0, 0x1 + movs r2, 0x4 + bl sub_800D670 + ldr r0, [sp] + cmp r0, 0 + bne _08037E16 + ldr r0, [sp, 0x4] + cmp r0, 0 + beq _08037E2C +_08037E16: + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + bne _08037E24 + ldr r4, [sp, 0x4] + b _08037E26 +_08037E24: + ldr r4, [sp] +_08037E26: + cmp r4, 0 + bne _08037E2C + movs r4, 0xE +_08037E2C: + adds r0, r4, 0 + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8037DF0 + + thumb_func_start sub_8037E38 +sub_8037E38: + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + bl sub_800D588 + lsls r0, 24 + adds r4, r6, 0 + cmp r0, 0 + bne _08037E4C + adds r4, r5, 0 +_08037E4C: + bl sub_800D588 + lsls r0, 24 + adds r3, r5, 0 + cmp r0, 0 + bne _08037E5A + adds r3, r6, 0 +_08037E5A: + ldrb r0, [r4] + ldrb r1, [r3] + cmp r0, r1 + bne _08037E70 + ldr r0, _08037E6C + ldr r1, [r0] + ldrb r0, [r4] + b _08037E76 + .align 2, 0 +_08037E6C: .4byte gUnknown_203B460 +_08037E70: + ldr r0, _08037E8C + ldr r1, [r0] + ldrb r0, [r3] +_08037E76: + lsls r0, 1 + adds r1, 0x50 + adds r1, r0 + ldrh r2, [r1] + ldr r0, [r3, 0x4] + adds r2, r0 + strh r2, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08037E8C: .4byte gUnknown_203B460 + thumb_func_end sub_8037E38 + + thumb_func_start sub_8037E90 +sub_8037E90: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + bne _08037EA2 + adds r4, r5, 0 +_08037EA2: + movs r0, 0x2 + strb r0, [r4] + adds r0, r4, 0 + bl sub_80951BC + ldr r0, [r4, 0x10] + bl sub_8095274 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8037E90 + + thumb_func_start nullsub_53 +nullsub_53: + bx lr + thumb_func_end nullsub_53 + + thumb_func_start sub_8037EBC +sub_8037EBC: + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + bl sub_800D588 + lsls r0, 24 + adds r5, r4, 0 + cmp r0, 0 + bne _08037ED0 + adds r5, r6, 0 +_08037ED0: + ldr r1, [r5, 0x10] + movs r0, 0x1 + bl sub_809539C + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + adds r4, r0, 0 + adds r1, r4, 0 + adds r0, r5, 0 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + movs r0, 0x5 + strb r0, [r4] + adds r0, r4, 0 + bl sub_80951FC + movs r0, 0x7 + strb r0, [r4] + movs r0, 0x38 + ldrsh r6, [r5, r0] + cmp r6, 0 + beq _08037F30 + ldr r4, _08037F2C + ldr r0, [r4] + ldr r1, [r5, 0x10] + stm r0!, {r1} + adds r1, r5, 0 + adds r1, 0x30 + movs r2, 0x58 + bl memcpy + ldr r1, [r4] + movs r0, 0x42 + strb r0, [r1, 0x8] + ldr r1, [r4] + movs r0, 0x1 + strb r0, [r1, 0x9] + b _08037F40 + .align 2, 0 +_08037F2C: .4byte gUnknown_203B484 +_08037F30: + ldr r4, _08037F48 + ldr r0, [r4] + movs r1, 0 + movs r2, 0x5C + bl MemoryFill8 + ldr r0, [r4] + strh r6, [r0, 0xC] +_08037F40: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08037F48: .4byte gUnknown_203B484 + thumb_func_end sub_8037EBC + + thumb_func_start sub_8037F4C +sub_8037F4C: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + bne _08037F5E + adds r4, r5, 0 +_08037F5E: + ldr r1, [r4, 0x10] + movs r0, 0x4 + bl sub_809539C + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + adds r2, r0, 0 + adds r1, r4, 0 + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + movs r1, 0x6 + strb r1, [r0] + bl sub_8035D4C + cmp r0, 0 + beq _08037F96 + adds r1, r0, 0 + adds r1, 0x3A + movs r0, 0x1 + strb r0, [r1] +_08037F96: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8037F4C + + thumb_func_start sub_8037F9C +sub_8037F9C: + push {lr} + adds r3, r1, 0 + cmp r0, 0xA + bhi _08038010 + lsls r0, 2 + ldr r1, _08037FB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037FB0: .4byte _08037FB4 + .align 2, 0 +_08037FB4: + .4byte _08037FE0 + .4byte _08037FE0 + .4byte _08038010 + .4byte _08037FF4 + .4byte _08038010 + .4byte _08037FFE + .4byte _08038010 + .4byte _08037FEA + .4byte _08038010 + .4byte _08038010 + .4byte _08038008 +_08037FE0: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8037E38 + b _08038010 +_08037FEA: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8037F4C + b _08038010 +_08037FF4: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8037E90 + b _08038010 +_08037FFE: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8037EBC + b _08038010 +_08038008: + adds r0, r3, 0 + adds r1, r2, 0 + bl nullsub_53 +_08038010: + pop {r0} + bx r0 + thumb_func_end sub_8037F9C + + thumb_func_start sub_8038014 +sub_8038014: + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + bl sub_800D588 + lsls r0, 24 + adds r4, r6, 0 + cmp r0, 0 + bne _08038028 + adds r4, r5, 0 +_08038028: + bl sub_800D588 + lsls r0, 24 + adds r3, r5, 0 + cmp r0, 0 + bne _08038036 + adds r3, r6, 0 +_08038036: + ldrb r0, [r4] + ldrb r1, [r3] + cmp r0, r1 + bne _0803804C + ldr r0, _08038048 + ldr r1, [r0] + ldrb r0, [r4] + b _08038052 + .align 2, 0 +_08038048: .4byte gUnknown_203B460 +_0803804C: + ldr r0, _08038070 + ldr r1, [r0] + ldrb r0, [r3] +_08038052: + lsls r0, 1 + adds r1, 0x50 + adds r1, r0 + ldrh r2, [r1] + ldr r0, [r3, 0x4] + adds r2, r0 + ldr r0, _08038074 + movs r1, 0 + cmp r2, r0 + ble _08038068 + movs r1, 0x6 +_08038068: + adds r0, r1, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08038070: .4byte gUnknown_203B460 +_08038074: .4byte 0x000003e7 + thumb_func_end sub_8038014 + + thumb_func_start sub_8038078 +sub_8038078: + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + bne _0803808A + adds r4, r5, 0 +_0803808A: + ldr r6, [r4, 0x10] + ldr r0, _08038098 + ldr r0, [r0] + cmp r0, 0 + beq _0803809C + ldr r5, [r0, 0x50] + b _080380A2 + .align 2, 0 +_08038098: .4byte gUnknown_203B184 +_0803809C: + bl sub_8011C34 + adds r5, r0, 0 +_080380A2: + movs r0, 0x4 + adds r1, r6, 0 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + beq _080380BA + ldr r0, [r4, 0x28] + cmp r0, r5 + bne _080380BA + movs r0, 0 + b _080380BC +_080380BA: + movs r0, 0xB +_080380BC: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8038078 + + thumb_func_start sub_80380C4 +sub_80380C4: + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + bl sub_800D588 + lsls r0, 24 + adds r5, r4, 0 + cmp r0, 0 + bne _080380D8 + adds r5, r6, 0 +_080380D8: + ldr r4, [r5, 0x10] + movs r0, 0x2 + adds r1, r4, 0 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + bne _08038110 + movs r0, 0x4 + adds r1, r4, 0 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + bne _08038110 + movs r0, 0x6 + adds r1, r4, 0 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + bne _08038110 + ldr r0, [r5, 0x10] + bl sub_8095298 + lsls r0, 24 + cmp r0, 0 + beq _08038114 +_08038110: + movs r0, 0x7 + b _08038126 +_08038114: + bl sub_8095190 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _08038124 + movs r0, 0 + b _08038126 +_08038124: + movs r0, 0xD +_08038126: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80380C4 + + thumb_func_start sub_803812C +sub_803812C: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + bne _0803813E + adds r4, r5, 0 +_0803813E: + ldr r1, [r4, 0x10] + movs r0, 0x1 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + bne _08038150 + movs r0, 0x9 + b _08038152 +_08038150: + movs r0, 0 +_08038152: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_803812C + + thumb_func_start sub_8038158 +sub_8038158: + movs r0, 0 + bx lr + thumb_func_end sub_8038158 + + thumb_func_start sub_803815C +sub_803815C: + push {r4,lr} + adds r3, r1, 0 + movs r4, 0 + cmp r0, 0xA + bhi _080381D2 + lsls r0, 2 + ldr r1, _08038170 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08038170: .4byte _08038174 + .align 2, 0 +_08038174: + .4byte _080381A0 + .4byte _080381A0 + .4byte _080381D2 + .4byte _080381B4 + .4byte _080381D2 + .4byte _080381BE + .4byte _080381D2 + .4byte _080381AA + .4byte _080381D2 + .4byte _080381D2 + .4byte _080381C8 +_080381A0: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8038014 + b _080381D0 +_080381AA: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8038078 + b _080381D0 +_080381B4: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_80380C4 + b _080381D0 +_080381BE: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_803812C + b _080381D0 +_080381C8: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8038158 +_080381D0: + adds r4, r0, 0 +_080381D2: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_803815C + + thumb_func_start sub_80381DC +sub_80381DC: + push {lr} + bl sub_8037F9C + pop {r0} + bx r0 + thumb_func_end sub_80381DC + + thumb_func_start sub_80381E8 +sub_80381E8: + push {lr} + bl sub_803815C + pop {r1} + bx r1 + thumb_func_end sub_80381E8 + + thumb_func_start sub_80381F4 +sub_80381F4: + push {r4-r7,lr} + sub sp, 0x4 + adds r5, r0, 0 + adds r6, r1, 0 + adds r7, r2, 0 + movs r4, 0 + bl sub_803815C + str r0, [sp] + ldr r0, _08038218 + str r4, [r0] + bl sub_800D494 + mov r0, sp + movs r1, 0x4 + bl sub_800D59C + b _0803822E + .align 2, 0 +_08038218: .4byte gUnknown_202EC4C +_0803821C: + subs r0, r4, 0x3 + cmp r0, 0x2 + bls _08038272 + ldr r1, _08038250 + ldr r0, [r1] + cmp r0, 0x63 + bgt _0803827E + adds r0, 0x1 + str r0, [r1] +_0803822E: + bl sub_80373C4 + bl sub_800D33C + adds r4, r0, 0 + bl sub_800D570 + cmp r4, 0x2 + bne _0803821C + bl sub_800D600 + lsls r0, 24 + cmp r0, 0 + beq _08038254 + bl sub_8037DF0 + b _0803825E + .align 2, 0 +_08038250: .4byte gUnknown_202EC4C +_08038254: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x5 +_0803825E: + str r0, [sp] + ldr r0, [sp] + cmp r0, 0 + bne _0803828A + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r7, 0 + bl sub_8037F9C + b _08038292 +_08038272: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x1 + b _08038298 +_0803827E: + bl sub_800D520 + bl sub_800D510 + movs r0, 0xF + b _08038298 +_0803828A: + bl sub_800D520 + bl sub_800D510 +_08038292: + bl sub_800D520 + ldr r0, [sp] +_08038298: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80381F4 + + thumb_func_start CreateAdventureLogMenu +CreateAdventureLogMenu: + push {lr} + movs r0, 0 + bl CreateAdventureLogScreen + pop {r0} + bx r0 + thumb_func_end CreateAdventureLogMenu + + thumb_func_start CleanAdventureLogMenu +CleanAdventureLogMenu: + push {lr} + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r0} + bx r0 + thumb_func_end CleanAdventureLogMenu + + thumb_func_start UpdateAdventureLogMenu +UpdateAdventureLogMenu: + push {r4,lr} + ldr r4, _080382E0 + movs r0, 0x1 + bl HandleAdventureLogInput + cmp r0, 0x1 + bls _080382D8 + cmp r0, 0x3 + bhi _080382D8 + bl sub_803203C + movs r4, 0x1 +_080382D8: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080382E0: .4byte 0x0000ffdc + thumb_func_end UpdateAdventureLogMenu + + thumb_func_start sub_80382E4 +sub_80382E4: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + mov r8, r0 + ldr r5, _08038398 + ldr r0, [r5] + cmp r0, 0 + bne _0803830E + movs r4, 0xDA + lsls r4, 1 + adds r0, r4, 0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + movs r1, 0 + adds r2, r4, 0 + bl MemoryFill8 +_0803830E: + mov r12, r5 + movs r0, 0xA4 + lsls r0, 1 + mov r9, r0 + ldr r4, _0803839C + movs r3, 0 + movs r2, 0x3 +_0803831C: + mov r5, r12 + ldr r1, [r5] + adds r1, r3 + add r1, r9 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _0803831C + bl ResetUnusedInputStruct + ldr r5, _08038398 + ldr r0, [r5] + movs r6, 0xA4 + lsls r6, 1 + adds r0, r6 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + mov r7, r8 + cmp r7, 0x25 + bne _08038370 + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x8 + adds r1, r6 + ldr r3, _080383A0 + ldr r2, _080383A4 + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0x4 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems +_08038370: + ldr r0, [r5] + adds r0, 0x8 + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + ldr r1, [r5] + mov r0, r8 + str r0, [r1] + movs r0, 0 + str r0, [r1, 0x4] + bl sub_8038440 + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08038398: .4byte gUnknown_203B360 +_0803839C: .4byte gUnknown_80E6E7C +_080383A0: .4byte gUnknown_80E6E94 +_080383A4: .4byte gUnknown_80E6EAC + thumb_func_end sub_80382E4 + + thumb_func_start sub_80383A8 +sub_80383A8: + push {r4,lr} + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, _080383D0 + ldr r0, [r4] + cmp r0, 0 + beq _080383C8 + bl MemoryFree + movs r0, 0 + str r0, [r4] +_080383C8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080383D0: .4byte gUnknown_203B360 + thumb_func_end sub_80383A8 + + thumb_func_start sub_80383D4 +sub_80383D4: + push {r4-r6,lr} + sub sp, 0x4 + movs r0, 0x2 + str r0, [sp] + ldr r6, _08038410 + ldr r4, _08038414 + ldr r0, [r4] + ldr r5, [r0, 0x4] + cmp r5, 0 + bne _08038434 + adds r0, 0x8 + bl sub_80130A8 + lsls r0, 24 + cmp r0, 0 + bne _080383FE + ldr r0, [r4] + adds r0, 0x8 + mov r1, sp + bl sub_8013114 +_080383FE: + ldr r0, [sp] + cmp r0, 0x2 + beq _0803842C + cmp r0, 0x2 + bhi _08038418 + cmp r0, 0x1 + beq _0803841C + b _08038430 + .align 2, 0 +_08038410: .4byte 0x0000ffdc +_08038414: .4byte gUnknown_203B360 +_08038418: + cmp r0, 0x3 + bne _08038430 +_0803841C: + ldr r0, _08038428 + ldr r1, [r0] + movs r0, 0 + str r0, [r1, 0x4] + movs r6, 0x1 + b _08038430 + .align 2, 0 +_08038428: .4byte gUnknown_203B360 +_0803842C: + ldr r0, [r4] + str r5, [r0, 0x4] +_08038430: + bl sub_80384D0 +_08038434: + adds r0, r6, 0 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80383D4 + + thumb_func_start sub_8038440 +sub_8038440: + push {r4,r5,lr} + movs r5, 0 + ldr r0, _080384B0 + ldr r0, [r0] + mov r12, r0 + movs r3, 0xD4 + lsls r3, 1 + add r3, r12 + ldrh r1, [r3] + ldr r0, _080384B4 + ands r0, r1 + ldr r1, _080384B8 + ands r0, r1 + ldr r4, _080384BC + ands r0, r4 + ldr r1, _080384C0 + ands r0, r1 + ldr r1, _080384C4 + ands r0, r1 + movs r2, 0x80 + lsls r2, 7 + ldr r1, _080384C8 + ands r0, r1 + orrs r0, r2 + strh r0, [r3] + movs r2, 0xFC + lsls r2, 2 + ldrh r1, [r3, 0x4] + movs r0, 0xFC + lsls r0, 8 + ands r0, r1 + orrs r0, r2 + ands r0, r4 + movs r2, 0xF + movs r4, 0xF0 + lsls r4, 8 + ldr r1, _080384CC + ands r0, r1 + orrs r0, r4 + strh r0, [r3, 0x4] + movs r0, 0x70 + strh r0, [r3, 0x2] + movs r1, 0xE0 + lsls r1, 3 + ldrh r0, [r3, 0x6] + ands r2, r0 + orrs r2, r1 + strh r2, [r3, 0x6] + movs r0, 0xD8 + lsls r0, 1 + add r0, r12 + str r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080384B0: .4byte gUnknown_203B360 +_080384B4: .4byte 0x0000feff +_080384B8: .4byte 0x0000fdff +_080384BC: .4byte 0x0000f3ff +_080384C0: .4byte 0x0000efff +_080384C4: .4byte 0x0000dfff +_080384C8: .4byte 0x00003fff +_080384CC: .4byte 0x00000fff + thumb_func_end sub_8038440 + + thumb_func_start sub_80384D0 +sub_80384D0: + push {r4,r5,lr} + ldr r5, _08038508 + ldr r2, [r5] + movs r4, 0xD8 + lsls r4, 1 + adds r0, r2, r4 + ldr r0, [r0] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080384F6 + movs r1, 0xD4 + lsls r1, 1 + adds r0, r2, r1 + subs r1, 0xA8 + movs r2, 0 + movs r3, 0 + bl AddSprite +_080384F6: + ldr r1, [r5] + adds r1, r4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08038508: .4byte gUnknown_203B360 + thumb_func_end sub_80384D0 + + thumb_func_start sub_803850C +sub_803850C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + mov r8, r0 + ldr r5, _0803859C + ldr r0, [r5] + cmp r0, 0 + bne _08038536 + movs r4, 0xDA + lsls r4, 1 + adds r0, r4, 0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + movs r1, 0 + adds r2, r4, 0 + bl MemoryFill8 +_08038536: + mov r12, r5 + movs r0, 0xA4 + lsls r0, 1 + mov r9, r0 + ldr r4, _080385A0 + movs r3, 0 + movs r2, 0x3 +_08038544: + mov r5, r12 + ldr r1, [r5] + adds r1, r3 + add r1, r9 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _08038544 + bl ResetUnusedInputStruct + ldr r4, _0803859C + ldr r0, [r4] + movs r6, 0xA4 + lsls r6, 1 + adds r0, r6 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + mov r7, r8 + cmp r7, 0x2E + bne _080385AC + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x8 + adds r1, r6 + ldr r3, _080385A4 + ldr r2, _080385A8 + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + b _080385CE + .align 2, 0 +_0803859C: .4byte gUnknown_203B364 +_080385A0: .4byte gUnknown_80E6F20 +_080385A4: .4byte gUnknown_80E6F38 +_080385A8: .4byte gUnknown_80E7090 +_080385AC: + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _080385F8 + ldr r2, _080385FC + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems +_080385CE: + ldr r4, _08038600 + ldr r0, [r4] + adds r0, 0x8 + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + ldr r1, [r4] + movs r0, 0 + str r0, [r1, 0x4] + mov r5, r8 + str r5, [r1] + bl sub_8038830 + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080385F8: .4byte gUnknown_80E6F38 +_080385FC: .4byte gUnknown_80E6F50 +_08038600: .4byte gUnknown_203B364 + thumb_func_end sub_803850C + + thumb_func_start sub_8038604 +sub_8038604: + push {r4,lr} + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, _0803862C + ldr r0, [r4] + cmp r0, 0 + beq _08038624 + bl MemoryFree + movs r0, 0 + str r0, [r4] +_08038624: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803862C: .4byte gUnknown_203B364 + thumb_func_end sub_8038604 + + thumb_func_start sub_8038630 +sub_8038630: + push {r4-r6,lr} + sub sp, 0x18 + ldr r5, _080386A8 + movs r0, 0x3 + str r0, [sp, 0x14] + ldr r6, _080386AC + ldr r0, [r6] + ldr r4, [r0, 0x4] + cmp r4, 0x1 + bne _08038646 + b _08038798 +_08038646: + cmp r4, 0x1 + bcc _0803864C + b _08038824 +_0803864C: + adds r0, 0x8 + bl sub_8012FD8 + movs r5, 0 + str r5, [sp, 0x10] + bl sub_80140F8 + bl sub_8011C1C + adds r1, r0, 0 + add r0, sp, 0x10 + bl sub_801203C + adds r4, r0, 0 + bl sub_8014114 + cmp r4, 0 + beq _080386B8 + cmp r4, 0x1 + beq _08038738 + ldr r0, [r6] + movs r4, 0xA4 + lsls r4, 1 + adds r0, r4 + movs r1, 0 + bl sub_8035CC0 + ldr r1, [r6] + ldr r0, [r1] + cmp r0, 0x2E + bne _08038750 + adds r0, r1, 0 + adds r0, 0x8 + adds r1, r4 + ldr r3, _080386B0 + ldr r2, _080386B4 + str r2, [sp] + str r5, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r5, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + b _0803876E + .align 2, 0 +_080386A8: .4byte 0x0000ffdc +_080386AC: .4byte gUnknown_203B364 +_080386B0: .4byte gUnknown_80E6F38 +_080386B4: .4byte gUnknown_80E7114 +_080386B8: + ldr r0, [r6] + movs r1, 0xA4 + lsls r1, 1 + adds r0, r1 + movs r1, 0 + bl sub_8035CC0 + ldr r1, [r6] + ldr r0, [r1] + cmp r0, 0x2E + bne _080386F8 + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _080386F0 + ldr r2, _080386F4 + str r2, [sp] + str r5, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r5, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + b _08038716 + .align 2, 0 +_080386F0: .4byte gUnknown_80E6F38 +_080386F4: .4byte gUnknown_80E70CC +_080386F8: + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038728 + ldr r2, _0803872C + str r2, [sp] + str r5, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r5, [sp, 0xC] + movs r2, 0 + bl SetMenuItems +_08038716: + ldr r4, _08038730 + ldr r1, [r4] + ldr r0, [r1] + cmp r0, 0x2D + bne _08038734 + movs r0, 0x1 + str r0, [r1, 0x4] + movs r0, 0x13 + b _08038826 + .align 2, 0 +_08038728: .4byte gUnknown_80E6F38 +_0803872C: .4byte gUnknown_80E6FBC +_08038730: .4byte gUnknown_203B364 +_08038734: + adds r0, r1, 0 + b _08038772 +_08038738: + ldr r0, _0803874C + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80141B4 + ldr r1, [r6] + movs r0, 0x5 + b _08038780 + .align 2, 0 +_0803874C: .4byte gUnknown_80E7178 +_08038750: + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038788 + ldr r2, _0803878C + str r2, [sp] + str r5, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r5, [sp, 0xC] + movs r2, 0 + bl SetMenuItems +_0803876E: + ldr r4, _08038790 + ldr r0, [r4] +_08038772: + adds r0, 0x8 + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + ldr r1, [r4] + movs r0, 0x1 +_08038780: + str r0, [r1, 0x4] + ldr r5, _08038794 + b _08038824 + .align 2, 0 +_08038788: .4byte gUnknown_80E6F38 +_0803878C: .4byte gUnknown_80E701C +_08038790: .4byte gUnknown_203B364 +_08038794: .4byte 0x0000ffdc +_08038798: + adds r0, 0x8 + bl sub_80130A8 + lsls r0, 24 + cmp r0, 0 + bne _080387AE + ldr r0, [r6] + adds r0, 0x8 + add r1, sp, 0x14 + bl sub_8013114 +_080387AE: + ldr r0, [sp, 0x14] + cmp r0, 0x3 + beq _0803881C + cmp r0, 0x3 + bhi _080387BE + cmp r0, 0x2 + beq _080387C2 + b _08038820 +_080387BE: + cmp r0, 0x4 + bne _08038820 +_080387C2: + ldr r4, _080387D8 + ldr r1, [r4] + ldr r0, [r1] + cmp r0, 0x29 + beq _080387D0 + cmp r0, 0x2E + bne _080387DC +_080387D0: + movs r0, 0x1 + str r0, [r1, 0x4] + movs r5, 0x1 + b _08038820 + .align 2, 0 +_080387D8: .4byte gUnknown_203B364 +_080387DC: + cmp r0, 0x2D + bne _080387E8 + movs r0, 0x1 + str r0, [r1, 0x4] + movs r5, 0x13 + b _08038820 +_080387E8: + cmp r0, 0x2C + bne _080387F4 + movs r0, 0x1 + str r0, [r1, 0x4] + movs r5, 0x1F + b _08038820 +_080387F4: + bl sub_8035D4C + adds r0, 0x3A + ldrb r0, [r0] + cmp r0, 0 + beq _0803880A + ldr r1, [r4] + movs r0, 0x1 + str r0, [r1, 0x4] + movs r5, 0x35 + b _08038820 +_0803880A: + ldr r0, [r4] + movs r1, 0x1 + str r1, [r0, 0x4] + ldr r0, [r0] + movs r5, 0xB + cmp r0, 0x2B + bne _08038820 + movs r5, 0xD + b _08038820 +_0803881C: + ldr r0, [r6] + str r4, [r0, 0x4] +_08038820: + bl sub_80388C4 +_08038824: + adds r0, r5, 0 +_08038826: + add sp, 0x18 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8038630 + + thumb_func_start sub_8038830 +sub_8038830: + push {r4,r5,lr} + movs r5, 0 + ldr r0, _080388A4 + ldr r0, [r0] + mov r12, r0 + movs r3, 0xD4 + lsls r3, 1 + add r3, r12 + ldrh r1, [r3] + ldr r0, _080388A8 + ands r0, r1 + ldr r1, _080388AC + ands r0, r1 + ldr r4, _080388B0 + ands r0, r4 + ldr r1, _080388B4 + ands r0, r1 + ldr r1, _080388B8 + ands r0, r1 + movs r2, 0x80 + lsls r2, 7 + ldr r1, _080388BC + ands r0, r1 + orrs r0, r2 + strh r0, [r3] + movs r2, 0xFC + lsls r2, 2 + ldrh r1, [r3, 0x4] + movs r0, 0xFC + lsls r0, 8 + ands r0, r1 + orrs r0, r2 + ands r0, r4 + movs r2, 0xF + movs r4, 0xF0 + lsls r4, 8 + ldr r1, _080388C0 + ands r0, r1 + orrs r0, r4 + strh r0, [r3, 0x4] + movs r0, 0x70 + strh r0, [r3, 0x2] + movs r1, 0xD0 + lsls r1, 3 + ldrh r0, [r3, 0x6] + ands r2, r0 + orrs r2, r1 + strh r2, [r3, 0x6] + movs r0, 0xD8 + lsls r0, 1 + add r0, r12 + str r5, [r0] + movs r0, 0 + bl ResetSprites + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080388A4: .4byte gUnknown_203B364 +_080388A8: .4byte 0x0000feff +_080388AC: .4byte 0x0000fdff +_080388B0: .4byte 0x0000f3ff +_080388B4: .4byte 0x0000efff +_080388B8: .4byte 0x0000dfff +_080388BC: .4byte 0x00003fff +_080388C0: .4byte 0x00000fff + thumb_func_end sub_8038830 + + thumb_func_start sub_80388C4 +sub_80388C4: + push {r4,r5,lr} + ldr r5, _080388FC + ldr r2, [r5] + movs r4, 0xD8 + lsls r4, 1 + adds r0, r2, r4 + ldr r0, [r0] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080388EA + movs r1, 0xD4 + lsls r1, 1 + adds r0, r2, r1 + subs r1, 0xA8 + movs r2, 0 + movs r3, 0 + bl AddSprite +_080388EA: + ldr r1, [r5] + adds r1, r4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080388FC: .4byte gUnknown_203B364 + thumb_func_end sub_80388C4 + + .align 2,0 |