diff --git a/asm/include/overlay_44.inc b/asm/include/overlay_44.inc index fb60dcc9b..64f3e6d05 100644 --- a/asm/include/overlay_44.inc +++ b/asm/include/overlay_44.inc @@ -373,8 +373,162 @@ .public ov44_0222A60C .public ov44_0222A758 .public ov44_02232EA8 -.public ov44_02232F64 -.public ov44_022330A8 -.public ov44_02233100 -.public ov44_02233160 -.public ov44_0223317C + +.public ov44_02235340 +.public ov44_0223532C +.public ov44_02235268 +.public ov44_02235218 +.public ov44_022351DC +.public ov44_022351BC +.public ov44_0223518C +.public ov44_02235158 +.public ov44_02235100 +.public ov44_02235090 +.public ov44_02235038 +.public Wifi_PromptToggleVoiceChat_ +.public ov44_02234FDC +.public Wifi_PromptMemberDrop +.public ov44_02234F88 +.public ov44_02234F60 +.public ov44_02234F44 +.public ov44_02234EF4 +.public ov44_02234EA4 +.public ov44_02234E08 +.public ov44_02234DE4 +.public Wifi_PromptAwaitingMembers +.public ov44_02234D88 +.public ov44_02234D4C +.public ov44_02234D28 +.public ov44_02234CE8 +.public ov44_02234C88 +.public Wifi_PromptAwaitingResponse +.public ov44_02234C10 +.public ov44_02234BF0 +.public ov44_02234BB4 +.public ov44_02234B80 +.public Wifi_PromptToggleVoiceChat +.public ov44_02234B18 +.public Wifi_PromptMemberDropped +.public ov44_02234AA8 +.public ov44_02234A68 +.public Wifi_PromptCancelInvites +.public ov44_022349F4 +.public ov44_022349B4 +.public Wifi_PromptDropAsLeader +.public ov44_02234944 +.public ov44_02234904 +.public Wifi_PromptStopFindingMembers +.public ov44_022348C4 +.public ov44_022348A8 +.public ov44_02234858 +.public Wifi_PromptReadyMessage +.public ov44_022344C4 +.public Wifi_PromptUserJoinRequest +.public ov44_022345C8 +.public ov44_022345FC +.public Wifi_PromptInsufficientMembers +.public ov44_022346B4 +.public Wifi_PromptConfirmMembers +.public ov44_022346E8 +.public ov44_0223471C +.public ov44_02234764 +.public ov44_0223479C +.public ov44_022347D4 +.public ov44_022347FC +.public ov44_02234828 +.public ov44_0223435C +.public ov44_02234388 +.public ov44_02234474 +.public ov44_02234328 +.public ov44_02234324 +.public ov44_02234028 +.public ov44_022331B0 +.public ov44_022331C4 +.public ov44_0223319C + +.public ov44_02232724 +.public ov44_02232798 +.public ov44_022327C8 +.public ov44_02232800 +.public ov44_02232838 +.public ov44_02232864 +.public ov44_02232884 +.public ov44_022328A0 +.public ov44_022328E4 +.public ov44_02232910 +.public ov44_02232914 +.public ov44_022329B0 +.public ov44_02232A60 +.public ov44_02232B74 +.public ov44_02232BCC +.public ov44_02232BE4 +.public ov44_02232C30 +.public ov44_02232C48 +.public ov44_02232C4C +.public ov44_02232C6C +.public ov44_02232C94 +.public ov44_02232CA8 +.public ov44_02232CCC +.public ov44_02232D08 +.public ov44_02232D20 +.public ov44_02232E5C +.public ov44_02232E80 +.public ov44_02232E90 +.public ov44_02232E9C +.public ov44_02232680 + +.public ov44_02232248 +.public ov44_02232288 +.public ov44_02232298 +.public ov44_022322E8 +.public ov44_02232334 +.public ov44_02232338 +.public ov44_0223233C +.public ov44_0223254C +.public ov44_02232594 +.public ov44_022325A4 +.public ov44_022325F4 +.public ov44_02232604 + +.public ov44_02231CE8 +.public ov44_02231D48 +.public ov44_02231D8C +.public ov44_02231D94 +.public ov44_02231D98 +.public ov44_02231D9C +.public ov44_02231E08 +.public ov44_02231E94 +.public ov44_02231ED4 +.public ov44_02231EF4 +.public ov44_02231F04 +.public ov44_02231F14 +.public ov44_02231F88 +.public ov44_02231FA8 +.public ov44_02231FCC +.public ov44_02232008 +.public ov44_02232018 +.public ov44_02232028 +.public ov44_02232050 +.public ov44_02232070 +.public ov44_02232104 +.public ov44_02232158 +.public ov44_02232194 +.public ov44_022321C4 +.public ov44_02232204 +.public ov44_02232238 +.public ov44_02231C8C + +.public ov44_02231918 +.public ov44_02231958 +.public ov44_02231974 +.public ov44_0223197C +.public ov44_022319BC +.public ov44_022319EC +.public ov44_02231A14 +.public ov44_02231A28 +.public ov44_02231A7C +.public ov44_02231B4C +.public ov44_02231BB0 +.public ov44_02231BB4 +.public ov44_02231C60 +.public ov44_02231C70 \ No newline at end of file diff --git a/asm/overlay_44.s b/asm/overlay_44.s index 9bb660051..ac4d183cc 100644 --- a/asm/overlay_44.s +++ b/asm/overlay_44.s @@ -15288,7845 +15288,6 @@ _02231910: .word ov44_0223536C _02231914: .word _0223535C thumb_func_end ov44_0223183C - thumb_func_start ov44_02231918 -ov44_02231918: ; 0x02231918 - push {r4, r5, r6, lr} - add r5, r0, #0 - mov r0, #0 - add r6, r1, #0 - mvn r0, r0 - cmp r6, r0 - beq _02231950 - mov r0, #0x35 - bl PlayerProfile_New - add r4, r0, #0 - ldr r0, [r5] - add r1, r6, #0 - bl sub_0202C254 - add r1, r0, #0 - add r0, r4, #0 - bl Save_Profile_PlayerName_Set - ldr r0, _02231954 ; =0x00000B1C - mov r1, #0 - ldr r0, [r5, r0] - add r2, r4, #0 - bl BufferPlayersName - add r0, r4, #0 - bl Heap_Free -_02231950: - pop {r4, r5, r6, pc} - nop -_02231954: .word 0x00000B1C - thumb_func_end ov44_02231918 - - thumb_func_start ov44_02231958 -ov44_02231958: ; 0x02231958 - cmp r1, #0x20 - blo _02231962 - ldr r1, _02231970 ; =0x00001098 - add r0, r0, r1 - bx lr -_02231962: - ldr r2, [r0, #4] - mov r0, #0x24 - add r2, #0x24 - mul r0, r1 - add r0, r2, r0 - bx lr - nop -_02231970: .word 0x00001098 - thumb_func_end ov44_02231958 - - thumb_func_start ov44_02231974 -ov44_02231974: ; 0x02231974 - ldr r3, _02231978 ; =ov00_021E6D68 - bx r3 - .balign 4, 0 -_02231978: .word ov00_021E6D68 - thumb_func_end ov44_02231974 - - thumb_func_start ov44_0223197C -ov44_0223197C: ; 0x0223197C - push {r4, r5, r6, lr} - add r5, r0, #0 - mov r0, #0xf - add r4, r1, #0 - add r6, r2, #0 - bl sub_020379A0 - ldr r0, [r5, #4] - add r0, #0x21 - ldrb r0, [r0] - bl ov00_021E70B8 - add r0, r6, #0 - bl ov44_02229F44 - cmp r0, #1 - bne _022319A8 - mov r0, #1 - mov r1, #0x80 - bl ov00_021E714C - b _022319B0 -_022319A8: - mov r0, #0 - mov r1, #0x80 - bl ov00_021E714C -_022319B0: - bl sub_02097214 - add r0, r4, #0 - bl sub_02039080 - pop {r4, r5, r6, pc} - thumb_func_end ov44_0223197C - - thumb_func_start ov44_022319BC -ov44_022319BC: ; 0x022319BC - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, _022319E8 ; =0x00000D64 - add r4, r1, #0 - ldr r1, [r5, r0] - cmp r1, #0 - bne _022319E6 - mov r1, #1 - str r1, [r5, r0] - mov r0, #0xe3 - lsl r0, r0, #2 - add r0, r5, r0 - bl ov44_02231D94 - cmp r4, #1 - bne _022319E6 - add r0, r5, #0 - mov r1, #9 - mov r2, #0 - bl ov44_0222F510 -_022319E6: - pop {r3, r4, r5, pc} - .balign 4, 0 -_022319E8: .word 0x00000D64 - thumb_func_end ov44_022319BC - - thumb_func_start ov44_022319EC -ov44_022319EC: ; 0x022319EC - push {r4, lr} - ldr r1, _02231A10 ; =0x00000D64 - add r4, r0, #0 - ldr r2, [r4, r1] - cmp r2, #1 - bne _02231A0C - mov r2, #0 - str r2, [r4, r1] - bl ov44_0222F7BC - mov r0, #0xe3 - lsl r0, r0, #2 - add r0, r4, r0 - mov r1, #0 - bl ov44_02231D94 -_02231A0C: - pop {r4, pc} - nop -_02231A10: .word 0x00000D64 - thumb_func_end ov44_022319EC - - thumb_func_start ov44_02231A14 -ov44_02231A14: ; 0x02231A14 - push {r4, lr} - bl ov44_02231A28 - mov r1, #1 - add r4, r0, #0 - bl YesNoPrompt_SetIgnoreTouch - add r0, r4, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02231A14 - - thumb_func_start ov44_02231A28 -ov44_02231A28: ; 0x02231A28 - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - add r5, r0, #0 - mov r0, #0x35 - add r4, r1, #0 - add r6, r2, #0 - bl YesNoPrompt_Create - str r5, [sp] - ldrb r1, [r4] - add r7, r0, #0 - str r1, [sp, #4] - ldrh r1, [r4, #6] - str r1, [sp, #8] - ldrb r1, [r4, #5] - str r1, [sp, #0xc] - ldrb r2, [r4, #1] - add r1, sp, #0 - strb r2, [r1, #0x10] - ldrb r2, [r4, #2] - strb r2, [r1, #0x11] - ldrb r3, [r1, #0x12] - mov r2, #0xf - bic r3, r2 - strb r3, [r1, #0x12] - ldrb r2, [r1, #0x12] - mov r3, #0xf0 - bic r2, r3 - lsl r3, r6, #0x18 - lsr r3, r3, #0x18 - lsl r3, r3, #0x1c - lsr r3, r3, #0x18 - orr r2, r3 - strb r2, [r1, #0x12] - mov r2, #0 - strb r2, [r1, #0x13] - add r1, sp, #0 - bl YesNoPrompt_InitFromTemplate - add r0, r7, #0 - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - thumb_func_end ov44_02231A28 - - thumb_func_start ov44_02231A7C -ov44_02231A7C: ; 0x02231A7C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r6, r2, #0 - add r4, r1, #0 - ldr r2, _02231B3C ; =0x000006FC - mov r1, #0 - add r5, r0, #0 - str r3, [sp] - bl memset - ldr r0, [sp, #0x24] - str r4, [r5, #4] - sub r0, r0, #1 - lsr r7, r0, #3 - ldr r0, [sp] - add r2, r6, #0 - str r0, [r5, #0x10] - add r0, r5, #0 - ldr r1, [r5, #4] - add r0, #0x14 - bl ov44_02232298 - ldr r0, [r5, #0x10] - add r1, r4, #0 - bl ov44_02232334 - add r0, r7, #0 - bl ov44_02232E90 - add r2, sp, #4 - strh r0, [r2] - lsr r0, r0, #0x10 - strh r0, [r2, #2] - ldrh r0, [r2] - strh r0, [r2, #4] - ldrh r1, [r2, #2] - strh r1, [r2, #6] - ldrh r0, [r2, #4] - add r2, r4, #0 - bl ov42_02227EE0 - ldr r1, _02231B40 ; =0x000006E4 - str r0, [r5, r1] - add r0, r7, #0 - bl ov44_02232E9C - add r1, r0, #0 - ldr r0, _02231B40 ; =0x000006E4 - ldr r0, [r5, r0] - bl ov42_02227F48 - mov r0, #0x30 - add r1, r4, #0 - bl ov42_02228010 - ldr r1, _02231B44 ; =0x000006E8 - add r2, r4, #0 - str r0, [r5, r1] - ldr r1, [sp, #0x20] - add r0, r5, #0 - bl ov44_02232204 - mov r0, #0x6f - lsl r0, r0, #4 - add r0, r5, r0 - bl ov42_02229394 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - add r3, r7, #0 - bl ov44_02232248 - ldr r0, [r5, #0x10] - add r1, r4, #0 - add r2, r6, #0 - bl ov44_0223233C - mov r1, #0x6d - lsl r1, r1, #4 - add r0, r5, #0 - add r1, r5, r1 - add r2, r6, #0 - bl ov44_02232CCC - mov r0, #0x80 - add r1, r4, #0 - bl ov42_02229A40 - ldr r1, _02231B48 ; =0x000006F8 - str r0, [r5, r1] - mov r0, #1 - str r0, [r5] - add sp, #0xc - pop {r4, r5, r6, r7, pc} - nop -_02231B3C: .word 0x000006FC -_02231B40: .word 0x000006E4 -_02231B44: .word 0x000006E8 -_02231B48: .word 0x000006F8 - thumb_func_end ov44_02231A7C - - thumb_func_start ov44_02231B4C -ov44_02231B4C: ; 0x02231B4C - push {r4, lr} - add r4, r0, #0 - ldr r0, _02231BA0 ; =0x000006F8 - ldr r0, [r4, r0] - bl ov42_02229A78 - add r0, r4, #0 - bl ov44_02232288 - mov r1, #0x6d - lsl r1, r1, #4 - add r0, r4, #0 - add r1, r4, r1 - bl ov44_02232D08 - add r0, r4, #0 - bl ov44_02232028 - add r0, r4, #0 - bl ov44_02232238 - ldr r0, _02231BA4 ; =0x000006E8 - ldr r0, [r4, r0] - bl ov42_02228050 - ldr r0, _02231BA8 ; =0x000006E4 - ldr r0, [r4, r0] - bl ov42_02227F28 - add r0, r4, #0 - add r0, #0x14 - bl ov44_022322E8 - ldr r0, [r4, #0x10] - bl ov44_02232338 - ldr r2, _02231BAC ; =0x000006FC - add r0, r4, #0 - mov r1, #0 - bl memset - pop {r4, pc} - .balign 4, 0 -_02231BA0: .word 0x000006F8 -_02231BA4: .word 0x000006E8 -_02231BA8: .word 0x000006E4 -_02231BAC: .word 0x000006FC - thumb_func_end ov44_02231B4C - - thumb_func_start ov44_02231BB0 -ov44_02231BB0: ; 0x02231BB0 - ldr r0, [r0] - bx lr - thumb_func_end ov44_02231BB0 - - thumb_func_start ov44_02231BB4 -ov44_02231BB4: ; 0x02231BB4 - push {r4, lr} - add r4, r0, #0 - ldr r0, _02231C50 ; =0x000006E8 - ldr r0, [r4, r0] - bl ov42_0222807C - add r0, r4, #0 - bl ov44_02232158 - add r0, r4, #0 - bl ov44_02232104 - mov r1, #0x6f - lsl r1, r1, #4 - add r0, r4, r1 - sub r1, #0x24 - ldr r1, [r4, r1] - ldr r1, [r1] - bl ov42_02229358 - ldr r1, _02231C54 ; =0x000006F4 - ldr r0, [r4, r1] - sub r1, r1, #4 - add r1, r4, r1 - bl ov42_02229420 - ldr r0, _02231C58 ; =0x000006EC - ldr r0, [r4, r0] - bl ov42_022290DC - add r0, r4, #0 - bl ov44_02232194 - add r0, r4, #0 - bl ov44_02232594 - add r0, r4, #0 - bl ov44_02232050 - cmp r0, #1 - bne _02231C4A - add r0, r4, #0 - bl ov44_02232604 - cmp r0, #1 - bne _02231C24 - add r0, r4, #0 - bl ov44_0223254C - ldr r0, _02231C5C ; =gSystem - ldr r1, [r0, #0x44] - mov r0, #0x80 - tst r0, r1 - beq _02231C24 - mov r0, #1 - pop {r4, pc} -_02231C24: - ldr r0, _02231C5C ; =gSystem - ldr r1, [r0, #0x48] - mov r0, #1 - tst r0, r1 - beq _02231C4A - add r0, r4, #0 - bl ov44_02231C70 - cmp r0, #0 - beq _02231C3C - mov r0, #2 - pop {r4, pc} -_02231C3C: - add r0, r4, #0 - bl ov44_02232070 - cmp r0, #1 - bne _02231C4A - mov r0, #3 - pop {r4, pc} -_02231C4A: - mov r0, #0 - pop {r4, pc} - nop -_02231C50: .word 0x000006E8 -_02231C54: .word 0x000006F4 -_02231C58: .word 0x000006EC -_02231C5C: .word gSystem - thumb_func_end ov44_02231BB4 - - thumb_func_start ov44_02231C60 -ov44_02231C60: ; 0x02231C60 - push {r3, lr} - ldr r1, [r0] - cmp r1, #0 - beq _02231C6E - ldr r0, [r0, #0x14] - bl SpriteList_RenderAndAnimateSprites -_02231C6E: - pop {r3, pc} - thumb_func_end ov44_02231C60 - - thumb_func_start ov44_02231C70 -ov44_02231C70: ; 0x02231C70 - push {r4, lr} - add r4, r0, #0 - ldr r0, _02231C88 ; =0x000006CC - ldr r0, [r4, r0] - cmp r0, #0 - bne _02231C80 - bl GF_AssertFail -_02231C80: - ldr r0, _02231C88 ; =0x000006CC - ldr r0, [r4, r0] - ldrb r0, [r0, #0xa] - pop {r4, pc} - .balign 4, 0 -_02231C88: .word 0x000006CC - thumb_func_end ov44_02231C70 - - thumb_func_start ov44_02231C8C -ov44_02231C8C: ; 0x02231C8C - push {r4, lr} - sub sp, #8 - add r4, r0, #0 - ldr r0, _02231CE0 ; =0x000006CC - ldr r0, [r4, r0] - cmp r0, #0 - bne _02231C9E - bl GF_AssertFail -_02231C9E: - ldr r0, _02231CE0 ; =0x000006CC - ldr r0, [r4, r0] - ldr r0, [r0] - bl ov42_022282DC - add r2, sp, #0 - strh r0, [r2] - lsr r0, r0, #0x10 - strh r0, [r2, #2] - ldrh r0, [r2] - mov r1, #4 - strh r0, [r2, #4] - ldrh r0, [r2, #2] - strh r0, [r2, #6] - ldrsh r3, [r2, r1] - ldr r0, _02231CE4 ; =0x000006E4 - asr r1, r3, #3 - lsr r1, r1, #0x1c - add r1, r3, r1 - mov r3, #6 - ldrsh r3, [r2, r3] - lsl r1, r1, #0xc - ldr r0, [r4, r0] - asr r2, r3, #3 - lsr r2, r2, #0x1c - add r2, r3, r2 - lsl r2, r2, #0xc - lsr r1, r1, #0x10 - lsr r2, r2, #0x10 - bl ov42_02227FDC - add sp, #8 - pop {r4, pc} - .balign 4, 0 -_02231CE0: .word 0x000006CC -_02231CE4: .word 0x000006E4 - thumb_func_end ov44_02231C8C - - thumb_func_start ov44_02231CE8 -ov44_02231CE8: ; 0x02231CE8 - push {r4, lr} - sub sp, #8 - add r4, r0, #0 - ldr r0, _02231D40 ; =0x000006CC - ldr r0, [r4, r0] - cmp r0, #0 - bne _02231CFA - bl GF_AssertFail -_02231CFA: - ldr r0, _02231D40 ; =0x000006CC - ldr r0, [r4, r0] - ldr r0, [r0] - bl ov42_022282DC - add r2, sp, #0 - strh r0, [r2] - lsr r0, r0, #0x10 - strh r0, [r2, #2] - ldrh r0, [r2] - mov r1, #4 - strh r0, [r2, #4] - ldrh r0, [r2, #2] - strh r0, [r2, #6] - ldrsh r3, [r2, r1] - ldr r0, _02231D44 ; =0x000006E4 - asr r1, r3, #3 - lsr r1, r1, #0x1c - add r1, r3, r1 - mov r3, #6 - ldrsh r3, [r2, r3] - lsl r1, r1, #0xc - ldr r0, [r4, r0] - asr r2, r3, #3 - lsr r2, r2, #0x1c - add r2, r3, r2 - asr r2, r2, #4 - add r2, r2, #1 - lsl r2, r2, #0x10 - lsr r1, r1, #0x10 - lsr r2, r2, #0x10 - bl ov42_02227FDC - add sp, #8 - pop {r4, pc} - .balign 4, 0 -_02231D40: .word 0x000006CC -_02231D44: .word 0x000006E4 - thumb_func_end ov44_02231CE8 - - thumb_func_start ov44_02231D48 -ov44_02231D48: ; 0x02231D48 - push {r3, r4, r5, lr} - sub sp, #8 - add r5, r1, #0 - add r4, r0, #0 - ldr r0, [r5] - bl ov42_022282DC - add r1, sp, #0 - strh r0, [r1] - lsr r0, r0, #0x10 - strh r0, [r1, #2] - ldrh r0, [r1] - strh r0, [r1, #4] - ldrh r0, [r1, #2] - strh r0, [r1, #6] - ldr r0, [r5, #4] - bl ov42_0222920C - add r2, r0, #0 - add r1, sp, #0 - add r0, r4, #0 - mov r4, sp - ldrh r3, [r1, #4] - sub r4, r4, #4 - sub r2, r2, #2 - strh r3, [r4] - ldrh r1, [r1, #6] - strh r1, [r4, #2] - ldr r1, [r4] - bl ov44_022325A4 - add sp, #8 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov44_02231D48 - - thumb_func_start ov44_02231D8C -ov44_02231D8C: ; 0x02231D8C - ldr r3, _02231D90 ; =ov44_022325F4 - bx r3 - .balign 4, 0 -_02231D90: .word ov44_022325F4 - thumb_func_end ov44_02231D8C - - thumb_func_start ov44_02231D94 -ov44_02231D94: ; 0x02231D94 - str r1, [r0, #0xc] - bx lr - thumb_func_end ov44_02231D94 - - thumb_func_start ov44_02231D98 -ov44_02231D98: ; 0x02231D98 - ldr r0, [r0, #0xc] - bx lr - thumb_func_end ov44_02231D98 - - thumb_func_start ov44_02231D9C -ov44_02231D9C: ; 0x02231D9C - push {r4, r5, r6, lr} - sub sp, #0x10 - add r5, r0, #0 - add r6, r1, #0 - bl ov44_02232798 - add r4, r0, #0 - ldr r0, _02231E00 ; =0x000006CC - add r1, sp, #0xc - str r4, [r5, r0] - add r0, r5, #0 - bl ov44_02232724 - lsl r0, r6, #0x10 - lsr r0, r0, #0x10 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - add r0, r5, #0 - add r1, r4, #0 - add r2, sp, #0xc - str r3, [sp, #8] - bl ov44_02232800 - add r0, r5, #0 - add r1, r4, #0 - bl ov44_02232864 - add r0, r5, #0 - add r1, r4, #0 - mov r2, #1 - bl ov44_022327C8 - mov r1, #0x6f - lsl r1, r1, #4 - add r0, r5, r1 - sub r1, #0x24 - ldr r1, [r5, r1] - ldr r1, [r1] - bl ov42_02229358 - ldr r1, _02231E04 ; =0x000006F4 - ldr r0, [r5, r1] - sub r1, r1, #4 - add r1, r5, r1 - bl ov42_02229420 - add r0, r4, #0 - add sp, #0x10 - pop {r4, r5, r6, pc} - .balign 4, 0 -_02231E00: .word 0x000006CC -_02231E04: .word 0x000006F4 - thumb_func_end ov44_02231D9C - - thumb_func_start ov44_02231E08 -ov44_02231E08: ; 0x02231E08 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - add r5, r0, #0 - add r6, r2, #0 - add r7, r1, #0 - bl ov44_02232798 - add r4, r0, #0 - add r0, r5, #0 - add r1, sp, #0x14 - sub r2, r6, #1 - bl ov44_02232680 - ldr r0, _02231E90 ; =0x000006CC - ldr r0, [r5, r0] - cmp r0, #0 - beq _02231E5E - ldr r0, [r0] - bl ov42_022282DC - add r1, sp, #0xc - strh r0, [r1] - lsr r0, r0, #0x10 - strh r0, [r1, #2] - ldrh r0, [r1] - mov r2, #8 - strh r0, [r1, #4] - ldrh r0, [r1, #2] - strh r0, [r1, #6] - mov r0, #4 - ldrsh r0, [r1, r0] - ldrsh r2, [r1, r2] - cmp r0, r2 - bne _02231E5E - mov r0, #6 - mov r2, #0xa - ldrsh r0, [r1, r0] - ldrsh r1, [r1, r2] - cmp r0, r1 - bne _02231E5E - add sp, #0x18 - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_02231E5E: - lsl r0, r7, #0x10 - lsr r0, r0, #0x10 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #4 - str r0, [sp, #8] - add r0, r5, #0 - add r1, r4, #0 - add r2, sp, #0x14 - add r3, r6, #0 - bl ov44_02232800 - add r0, r5, #0 - add r1, r4, #0 - bl ov44_02232884 - add r0, r5, #0 - add r1, r4, #0 - mov r2, #0 - bl ov44_022327C8 - add r0, r4, #0 - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_02231E90: .word 0x000006CC - thumb_func_end ov44_02231E08 - - thumb_func_start ov44_02231E94 -ov44_02231E94: ; 0x02231E94 - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4] - mov r1, #6 - bl ov42_02228188 - ldr r0, _02231ECC ; =ov44_02232BCC - mov r1, #0 - str r0, [r4, #0x10] - ldr r0, _02231ED0 ; =ov44_02232914 - str r0, [r4, #0x18] - mov r0, #2 - strh r0, [r4, #0xc] - strh r1, [r4, #8] - ldr r0, [r4, #4] - bl ov42_0222919C - ldr r0, [r4, #4] - bl ov42_022291A0 - add r0, r5, #0 - mov r1, #4 - add r2, r4, #0 - bl ov44_02232C6C - pop {r3, r4, r5, pc} - nop -_02231ECC: .word ov44_02232BCC -_02231ED0: .word ov44_02232914 - thumb_func_end ov44_02231E94 - - thumb_func_start ov44_02231ED4 -ov44_02231ED4: ; 0x02231ED4 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #4] - bl ov42_022290C4 - ldr r0, [r4] - bl ov42_02228100 - mov r1, #0x1c - mov r0, #0 -_02231EE8: - strb r0, [r4] - add r4, r4, #1 - sub r1, r1, #1 - bne _02231EE8 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02231ED4 - - thumb_func_start ov44_02231EF4 -ov44_02231EF4: ; 0x02231EF4 - push {r3, lr} - ldr r0, [r0] - mov r1, #4 - bl ov42_02228188 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, pc} - thumb_func_end ov44_02231EF4 - - thumb_func_start ov44_02231F04 -ov44_02231F04: ; 0x02231F04 - push {r3, lr} - ldr r0, [r0] - mov r1, #6 - bl ov42_02228188 - bl ov42_022282A4 - pop {r3, pc} - thumb_func_end ov44_02231F04 - - thumb_func_start ov44_02231F14 -ov44_02231F14: ; 0x02231F14 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r5, r1, #0 - add r6, r0, #0 - ldr r0, [r5, #0x10] - add r4, r2, #0 - str r0, [r5, #0x14] - ldr r0, _02231F84 ; =ov44_02232C48 - mov r1, #4 - str r0, [r5, #0x10] - ldrh r0, [r5, #0xc] - strh r0, [r5, #0xe] - mov r0, #5 - strh r0, [r5, #0xc] - ldr r0, [r5] - bl ov42_02228188 - add r3, r0, #0 - add r0, r6, #0 - mov r1, #0 - add r2, r4, #0 - bl ov44_02232C4C - ldr r0, [r5, #4] - mov r1, #0 - bl ov42_0222919C - ldr r0, [r5, #4] - add r1, r4, #0 - bl ov42_02229218 - ldr r0, [r5] - mov r1, #0 - bl ov42_02228188 - add r1, sp, #0 - strh r0, [r1] - ldr r0, [r5] - mov r1, #1 - bl ov42_02228188 - add r1, sp, #0 - strh r0, [r1, #2] - mov r3, sp - ldrh r2, [r1] - ldr r0, [r5, #4] - sub r3, r3, #4 - strh r2, [r3] - ldrh r1, [r1, #2] - strh r1, [r3, #2] - ldr r1, [r3] - bl ov42_022291D8 - add sp, #4 - pop {r3, r4, r5, r6, pc} - nop -_02231F84: .word ov44_02232C48 - thumb_func_end ov44_02231F14 - - thumb_func_start ov44_02231F88 -ov44_02231F88: ; 0x02231F88 - push {r3, lr} - cmp r1, #0 - beq _02231FA6 - ldr r0, [r1, #0x14] - cmp r0, #0 - beq _02231FA6 - str r0, [r1, #0x10] - mov r0, #0 - str r0, [r1, #0x14] - ldrh r0, [r1, #0xe] - strh r0, [r1, #0xc] - ldr r0, [r1, #4] - mov r1, #1 - bl ov42_0222919C -_02231FA6: - pop {r3, pc} - thumb_func_end ov44_02231F88 - - thumb_func_start ov44_02231FA8 -ov44_02231FA8: ; 0x02231FA8 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r6, r0, #0 - add r0, r5, #0 - add r4, r2, #0 - bl ov44_02232C94 - cmp r0, #0 - bne _02231FBE - strb r4, [r5, #0xb] - pop {r4, r5, r6, pc} -_02231FBE: - add r0, r6, #0 - add r1, r5, #0 - add r2, r4, #0 - bl ov44_02232CA8 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_02231FA8 - - thumb_func_start ov44_02231FCC -ov44_02231FCC: ; 0x02231FCC - push {r3, r4, r5, lr} - add r5, r0, #0 - bl ov44_02232070 - cmp r0, #1 - bne _02232002 - add r0, r5, #0 - bl ov44_02231CE8 - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - sub r0, r0, #3 - lsl r0, r0, #0x18 - asr r4, r0, #0x18 - bmi _02231FEE - cmp r4, #4 - blt _02231FF2 -_02231FEE: - bl GF_AssertFail -_02231FF2: - mov r0, #0x6d - lsl r0, r0, #4 - lsl r1, r4, #0x18 - add r0, r5, r0 - lsr r1, r1, #0x18 - bl ov44_02232E5C - pop {r3, r4, r5, pc} -_02232002: - bl GF_AssertFail - pop {r3, r4, r5, pc} - thumb_func_end ov44_02231FCC - - thumb_func_start ov44_02232008 -ov44_02232008: ; 0x02232008 - mov r1, #0x6d - lsl r1, r1, #4 - ldr r3, _02232014 ; =ov44_02232E80 - add r0, r0, r1 - bx r3 - nop -_02232014: .word ov44_02232E80 - thumb_func_end ov44_02232008 - - thumb_func_start ov44_02232018 -ov44_02232018: ; 0x02232018 - mov r1, #0x6d - lsl r1, r1, #4 - ldr r3, _02232024 ; =ov44_02232D20 - add r1, r0, r1 - bx r3 - nop -_02232024: .word ov44_02232D20 - thumb_func_end ov44_02232018 - - thumb_func_start ov44_02232028 -ov44_02232028: ; 0x02232028 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - mov r0, #0x63 - lsl r0, r0, #2 - mov r6, #0 - add r4, r5, r0 - add r7, r0, #0 -_02232036: - ldr r0, [r5, r7] - cmp r0, #0 - beq _02232042 - add r0, r4, #0 - bl ov44_02231ED4 -_02232042: - add r6, r6, #1 - add r5, #0x1c - add r4, #0x1c - cmp r6, #0x30 - blt _02232036 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end ov44_02232028 - - thumb_func_start ov44_02232050 -ov44_02232050: ; 0x02232050 - push {r3, lr} - ldr r1, _0223206C ; =0x000006CC - ldr r0, [r0, r1] - mov r1, #5 - ldr r0, [r0] - bl ov42_02228188 - cmp r0, #0 - bne _02232066 - mov r0, #1 - pop {r3, pc} -_02232066: - mov r0, #0 - pop {r3, pc} - nop -_0223206C: .word 0x000006CC - thumb_func_end ov44_02232050 - - thumb_func_start ov44_02232070 -ov44_02232070: ; 0x02232070 - push {r3, r4, r5, lr} - sub sp, #0x10 - add r5, r0, #0 - ldr r0, _022320FC ; =0x000006CC - ldr r0, [r5, r0] - ldr r0, [r0] - bl ov42_022282DC - add r1, sp, #0 - strh r0, [r1, #4] - lsr r0, r0, #0x10 - strh r0, [r1, #6] - ldrh r0, [r1, #4] - strh r0, [r1, #0xc] - ldrh r0, [r1, #6] - strh r0, [r1, #0xe] - ldr r0, _022320FC ; =0x000006CC - mov r1, #6 - ldr r0, [r5, r0] - ldr r0, [r0] - bl ov42_02228188 - add r4, r0, #0 - add r0, sp, #0 - mov r2, sp - ldrh r1, [r0, #0xc] - sub r2, r2, #4 - strh r1, [r2] - ldrh r0, [r0, #0xe] - add r1, r4, #0 - strh r0, [r2, #2] - ldr r0, [r2] - bl ov42_02228270 - add r2, sp, #0 - strh r0, [r2] - lsr r0, r0, #0x10 - strh r0, [r2, #2] - ldrh r0, [r2] - mov r1, #8 - strh r0, [r2, #8] - ldrh r0, [r2, #2] - strh r0, [r2, #0xa] - ldrsh r3, [r2, r1] - ldr r0, _02232100 ; =0x000006E4 - asr r1, r3, #3 - lsr r1, r1, #0x1c - add r1, r3, r1 - mov r3, #0xa - ldrsh r3, [r2, r3] - lsl r1, r1, #0xc - ldr r0, [r5, r0] - asr r2, r3, #3 - lsr r2, r2, #0x1c - add r2, r3, r2 - lsl r2, r2, #0xc - lsr r1, r1, #0x10 - lsr r2, r2, #0x10 - bl ov42_02227FDC - cmp r4, #0 - bne _022320F6 - cmp r0, #2 - bne _022320F6 - add sp, #0x10 - mov r0, #1 - pop {r3, r4, r5, pc} -_022320F6: - mov r0, #0 - add sp, #0x10 - pop {r3, r4, r5, pc} - .balign 4, 0 -_022320FC: .word 0x000006CC -_02232100: .word 0x000006E4 - thumb_func_end ov44_02232070 - - thumb_func_start ov44_02232104 -ov44_02232104: ; 0x02232104 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r5, r0, #0 - ldr r0, _0223214C ; =0x000006F8 - add r1, sp, #8 - ldr r0, [r5, r0] - bl ov42_02229AC8 - cmp r0, #1 - bne _02232148 - ldr r7, _02232150 ; =0x000006E8 - add r6, sp, #0 - add r4, sp, #8 -_0223211E: - ldr r0, _02232154 ; =0x000006E4 - ldr r1, [r5, r7] - ldr r0, [r5, r0] - add r2, r4, #0 - add r3, r6, #0 - bl ov42_02228C80 - cmp r0, #1 - bne _0223213A - ldr r0, _02232150 ; =0x000006E8 - add r1, r6, #0 - ldr r0, [r5, r0] - bl ov42_02228068 -_0223213A: - ldr r0, _0223214C ; =0x000006F8 - add r1, r4, #0 - ldr r0, [r5, r0] - bl ov42_02229AC8 - cmp r0, #1 - beq _0223211E -_02232148: - add sp, #0xc - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_0223214C: .word 0x000006F8 -_02232150: .word 0x000006E8 -_02232154: .word 0x000006E4 - thumb_func_end ov44_02232104 - - thumb_func_start ov44_02232158 -ov44_02232158: ; 0x02232158 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - mov r0, #0x63 - lsl r0, r0, #2 - mov r6, #0 - add r4, r7, #0 - add r5, r7, r0 -_02232166: - mov r0, #0x63 - lsl r0, r0, #2 - ldr r0, [r4, r0] - cmp r0, #0 - beq _02232186 - mov r2, #0x67 - lsl r2, r2, #2 - ldr r2, [r4, r2] - add r0, r7, #0 - add r1, r5, #0 - blx r2 - cmp r0, #1 - bne _02232186 - add r0, r5, #0 - bl ov44_02231ED4 -_02232186: - add r6, r6, #1 - add r4, #0x1c - add r5, #0x1c - cmp r6, #0x30 - blt _02232166 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end ov44_02232158 - - thumb_func_start ov44_02232194 -ov44_02232194: ; 0x02232194 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - mov r0, #0x63 - lsl r0, r0, #2 - mov r6, #0 - add r4, r7, #0 - add r5, r7, r0 -_022321A2: - mov r0, #0x63 - lsl r0, r0, #2 - ldr r0, [r4, r0] - cmp r0, #0 - beq _022321B8 - mov r2, #0x69 - lsl r2, r2, #2 - ldr r2, [r4, r2] - add r0, r7, #0 - add r1, r5, #0 - blx r2 -_022321B8: - add r6, r6, #1 - add r4, #0x1c - add r5, #0x1c - cmp r6, #0x30 - blt _022321A2 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov44_02232194 - - thumb_func_start ov44_022321C4 -ov44_022321C4: ; 0x022321C4 - push {r3, r4, r5, lr} - add r4, r0, #0 - ldr r0, [r1] - ldr r1, _02232200 ; =0x000006E8 - ldr r1, [r4, r1] - bl ov42_022283BC - cmp r0, #0 - beq _022321FA - mov r2, #0x63 - mov r1, #0 - add r5, r4, #0 - lsl r2, r2, #2 -_022321DE: - ldr r3, [r5, r2] - cmp r3, r0 - bne _022321F2 - mov r0, #0x63 - lsl r0, r0, #2 - add r2, r4, r0 - mov r0, #0x1c - mul r0, r1 - add r0, r2, r0 - pop {r3, r4, r5, pc} -_022321F2: - add r1, r1, #1 - add r5, #0x1c - cmp r1, #0x30 - blt _022321DE -_022321FA: - mov r0, #0 - pop {r3, r4, r5, pc} - nop -_02232200: .word 0x000006E8 - thumb_func_end ov44_022321C4 - - thumb_func_start ov44_02232204 -ov44_02232204: ; 0x02232204 - push {r4, r5, lr} - sub sp, #0xc - add r3, r1, #0 - mov r1, #0 - add r5, r0, #0 - add r4, r2, #0 - str r1, [sp] - mov r0, #1 - str r0, [sp, #4] - str r4, [sp, #8] - ldr r0, [r5, #0x14] - mov r2, #0x30 - bl ov42_02228F24 - ldr r1, _02232234 ; =0x000006EC - add r2, r4, #0 - str r0, [r5, r1] - ldr r0, [r5, r1] - mov r1, #2 - bl ov42_02229028 - add sp, #0xc - pop {r4, r5, pc} - nop -_02232234: .word 0x000006EC - thumb_func_end ov44_02232204 - - thumb_func_start ov44_02232238 -ov44_02232238: ; 0x02232238 - ldr r1, _02232240 ; =0x000006EC - ldr r3, _02232244 ; =ov42_02228F94 - ldr r0, [r0, r1] - bx r3 - .balign 4, 0 -_02232240: .word 0x000006EC -_02232244: .word ov42_02228F94 - thumb_func_end ov44_02232238 - - thumb_func_start ov44_02232248 -ov44_02232248: ; 0x02232248 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - ldr r6, _02232280 ; =ov44_02235604 - add r4, r1, #0 - add r5, r0, #0 - add r2, sp, #0 - mov r1, #0xb -_02232256: - ldrb r0, [r6] - add r6, r6, #1 - strb r0, [r2] - add r2, r2, #1 - sub r1, r1, #1 - bne _02232256 - add r0, sp, #0 - ldrb r1, [r0, #9] - add r2, sp, #0 - add r1, r1, r3 - strb r1, [r0, #9] - add r0, r5, #0 - ldr r1, [r5, #0x10] - add r0, #0x18 - add r3, r4, #0 - bl ov42_022293B8 - ldr r1, _02232284 ; =0x000006F4 - str r0, [r5, r1] - add sp, #0xc - pop {r3, r4, r5, r6, pc} - .balign 4, 0 -_02232280: .word ov44_02235604 -_02232284: .word 0x000006F4 - thumb_func_end ov44_02232248 - - thumb_func_start ov44_02232288 -ov44_02232288: ; 0x02232288 - ldr r1, _02232290 ; =0x000006F4 - ldr r3, _02232294 ; =ov42_0222940C - ldr r0, [r0, r1] - bx r3 - .balign 4, 0 -_02232290: .word 0x000006F4 -_02232294: .word ov42_0222940C - thumb_func_end ov44_02232288 - - thumb_func_start ov44_02232298 -ov44_02232298: ; 0x02232298 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - add r6, r1, #0 - str r2, [sp] - mov r0, #0x60 - add r1, r7, #4 - add r2, r6, #0 - bl G2dRenderer_Init - mov r2, #0x32 - str r0, [r7] - add r0, r7, #4 - mov r1, #0 - lsl r2, r2, #0x10 - bl G2dRenderer_SetSubSurfaceCoords - mov r4, #0 - add r5, r7, #0 -_022322BC: - mov r0, #0x10 - add r1, r4, #0 - add r2, r6, #0 - bl Create2DGfxResObjMan - mov r1, #0x4b - lsl r1, r1, #2 - str r0, [r5, r1] - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #4 - blt _022322BC - ldr r2, [sp] - add r0, r7, #0 - add r1, r6, #0 - bl ov44_02232314 - add r0, r7, #0 - add r1, r6, #0 - bl ov44_02232324 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov44_02232298 - - thumb_func_start ov44_022322E8 -ov44_022322E8: ; 0x022322E8 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - bl ov44_0223232C - add r0, r7, #0 - bl ov44_0223231C - mov r6, #0x4b - mov r4, #0 - add r5, r7, #0 - lsl r6, r6, #2 -_022322FE: - ldr r0, [r5, r6] - bl Destroy2DGfxResObjMan - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #4 - blt _022322FE - ldr r0, [r7] - bl SpriteList_Delete - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov44_022322E8 - - thumb_func_start ov44_02232314 -ov44_02232314: ; 0x02232314 - ldr r3, _02232318 ; =ov44_0223237C - bx r3 - .balign 4, 0 -_02232318: .word ov44_0223237C - thumb_func_end ov44_02232314 - - thumb_func_start ov44_0223231C -ov44_0223231C: ; 0x0223231C - ldr r3, _02232320 ; =ov44_0223247C - bx r3 - .balign 4, 0 -_02232320: .word ov44_0223247C - thumb_func_end ov44_0223231C - - thumb_func_start ov44_02232324 -ov44_02232324: ; 0x02232324 - ldr r3, _02232328 ; =ov44_022324B0 - bx r3 - .balign 4, 0 -_02232328: .word ov44_022324B0 - thumb_func_end ov44_02232324 - - thumb_func_start ov44_0223232C -ov44_0223232C: ; 0x0223232C - ldr r3, _02232330 ; =ov44_02232530 - bx r3 - .balign 4, 0 -_02232330: .word ov44_02232530 - thumb_func_end ov44_0223232C - - thumb_func_start ov44_02232334 -ov44_02232334: ; 0x02232334 - bx lr - .balign 4, 0 - thumb_func_end ov44_02232334 - - thumb_func_start ov44_02232338 -ov44_02232338: ; 0x02232338 - bx lr - .balign 4, 0 - thumb_func_end ov44_02232338 - - thumb_func_start ov44_0223233C -ov44_0223233C: ; 0x0223233C - push {r4, r5, r6, lr} - sub sp, #0x10 - add r6, r0, #0 - mov r0, #1 - add r4, r2, #0 - lsl r0, r0, #8 - mov r2, #0 - add r5, r1, #0 - str r0, [sp] - add r0, r4, #0 - mov r1, #0x1f - add r3, r2, #0 - str r5, [sp, #4] - bl GfGfxLoader_GXLoadPalFromOpenNarc - mov r0, #0 - add r1, r0, #0 - bl BG_SetMaskColor - mov r3, #0 - str r3, [sp] - str r3, [sp, #4] - str r3, [sp, #8] - add r0, r4, #0 - mov r1, #0x1e - add r2, r6, #0 - str r5, [sp, #0xc] - bl GfGfxLoader_LoadCharDataFromOpenNarc - add sp, #0x10 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_0223233C - - thumb_func_start ov44_0223237C -ov44_0223237C: ; 0x0223237C - push {r3, r4, r5, r6, lr} - sub sp, #0x2c - add r4, r1, #0 - mov r1, #0x32 - add r5, r0, #0 - str r1, [sp] - mov r0, #1 - str r0, [sp, #4] - add r6, r2, #0 - str r4, [sp, #8] - add r1, #0xfa - ldr r0, [r5, r1] - add r1, r6, #0 - mov r2, #0x26 - mov r3, #0 - bl AddCharResObjFromOpenNarc - mov r1, #0x4f - lsl r1, r1, #2 - str r0, [r5, r1] - mov r1, #0x32 - str r1, [sp] - mov r0, #1 - str r0, [sp, #4] - str r0, [sp, #8] - str r4, [sp, #0xc] - add r1, #0xfe - ldr r0, [r5, r1] - add r1, r6, #0 - mov r2, #0x25 - mov r3, #0 - bl AddPlttResObjFromOpenNarc - mov r1, #5 - lsl r1, r1, #6 - str r0, [r5, r1] - mov r0, #0x32 - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - str r4, [sp, #8] - sub r1, #0xc - ldr r0, [r5, r1] - add r1, r6, #0 - mov r2, #0x27 - mov r3, #0 - bl AddCellOrAnimResObjFromOpenNarc - mov r1, #0x51 - lsl r1, r1, #2 - str r0, [r5, r1] - mov r0, #0x32 - str r0, [sp] - mov r0, #3 - str r0, [sp, #4] - str r4, [sp, #8] - sub r1, #0xc - ldr r0, [r5, r1] - add r1, r6, #0 - mov r2, #0x28 - mov r3, #0 - bl AddCellOrAnimResObjFromOpenNarc - mov r1, #0x52 - lsl r1, r1, #2 - str r0, [r5, r1] - sub r1, #0xc - ldr r0, [r5, r1] - bl sub_0200ADA4 - cmp r0, #1 - beq _02232410 - bl GF_AssertFail -_02232410: - mov r0, #5 - lsl r0, r0, #6 - ldr r0, [r5, r0] - bl sub_0200B00C - cmp r0, #1 - beq _02232422 - bl GF_AssertFail -_02232422: - mov r0, #0x4f - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl sub_0200A740 - mov r0, #5 - lsl r0, r0, #6 - ldr r0, [r5, r0] - bl sub_0200A740 - mov r1, #0x32 - add r0, r1, #0 - str r1, [sp] - sub r0, #0x33 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0 - mov r3, #0x4d - str r0, [sp, #0xc] - mov r2, #2 - str r2, [sp, #0x10] - add r2, r1, #0 - add r2, #0xfa - ldr r2, [r5, r2] - lsl r3, r3, #2 - str r2, [sp, #0x14] - add r2, r1, #0 - add r2, #0xfe - ldr r2, [r5, r2] - str r2, [sp, #0x18] - ldr r2, [r5, r3] - str r2, [sp, #0x1c] - add r2, r3, #4 - ldr r2, [r5, r2] - add r3, #0x18 - str r2, [sp, #0x20] - str r0, [sp, #0x24] - str r0, [sp, #0x28] - add r0, r5, r3 - add r2, r1, #0 - add r3, r1, #0 - bl CreateSpriteResourcesHeader - add sp, #0x2c - pop {r3, r4, r5, r6, pc} - thumb_func_end ov44_0223237C - - thumb_func_start ov44_0223247C -ov44_0223247C: ; 0x0223247C - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - mov r0, #0x4f - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl sub_0200AEB0 - mov r0, #5 - lsl r0, r0, #6 - ldr r0, [r5, r0] - bl sub_0200B0A8 - mov r7, #0x4b - lsl r7, r7, #2 - add r6, r7, #0 - mov r4, #0 - add r6, #0x10 -_0223249E: - ldr r0, [r5, r7] - ldr r1, [r5, r6] - bl DestroySingle2DGfxResObj - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #4 - blt _0223249E - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov44_0223247C - - thumb_func_start ov44_022324B0 -ov44_022324B0: ; 0x022324B0 - push {r3, r4, r5, lr} - sub sp, #0x30 - add r4, r0, #0 - add r2, sp, #0 - mov r0, #0 - add r3, r1, #0 - add r5, r2, #0 - add r1, r0, #0 - stmia r5!, {r0, r1} - stmia r5!, {r0, r1} - stmia r5!, {r0, r1} - stmia r5!, {r0, r1} - stmia r5!, {r0, r1} - stmia r5!, {r0, r1} - ldr r1, [r4] - str r1, [sp] - mov r1, #0x53 - lsl r1, r1, #2 - add r1, r4, r1 - str r1, [sp, #4] - mov r1, #1 - str r1, [sp, #0x28] - lsl r1, r1, #0xc - str r0, [sp, #0x24] - add r0, r2, #0 - str r1, [sp, #0x14] - str r1, [sp, #0x18] - str r3, [sp, #0x2c] - bl Sprite_CreateAffine - mov r1, #0x17 - lsl r1, r1, #4 - str r0, [r4, r1] - add r0, sp, #0 - bl Sprite_CreateAffine - mov r1, #0x5d - lsl r1, r1, #2 - str r0, [r4, r1] - sub r0, r1, #4 - ldr r0, [r4, r0] - mov r1, #0 - bl Sprite_SetDrawFlag - mov r0, #0x5d - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #0 - bl Sprite_SetDrawFlag - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #1 - bl Sprite_SetAnimActiveFlag - mov r0, #0x5d - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl Sprite_SetAnimCtrlSeq - add sp, #0x30 - pop {r3, r4, r5, pc} - thumb_func_end ov44_022324B0 - - thumb_func_start ov44_02232530 -ov44_02232530: ; 0x02232530 - push {r4, lr} - add r4, r0, #0 - mov r0, #0x17 - lsl r0, r0, #4 - ldr r0, [r4, r0] - bl Sprite_Delete - mov r0, #0x5d - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl Sprite_Delete - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02232530 - - thumb_func_start ov44_0223254C -ov44_0223254C: ; 0x0223254C - push {r4, lr} - sub sp, #0x10 - add r1, sp, #0 - add r4, r0, #0 - bl ov44_02232724 - add r2, sp, #0 - mov r0, #0 - ldrsh r1, [r2, r0] - add r1, #8 - strh r1, [r2] - mov r1, #2 - ldrsh r3, [r2, r1] - add r3, #0x20 - strh r3, [r2, #2] - ldrsh r0, [r2, r0] - lsl r0, r0, #0xc - str r0, [sp, #4] - ldrsh r0, [r2, r1] - add r1, sp, #4 - lsl r0, r0, #0xc - str r0, [sp, #8] - mov r0, #0x61 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl Sprite_SetMatrix - mov r0, #0x61 - lsl r0, r0, #2 - ldr r0, [r4, r0] - mov r1, #1 - bl Sprite_SetDrawFlag - add sp, #0x10 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_0223254C - - thumb_func_start ov44_02232594 -ov44_02232594: ; 0x02232594 - mov r1, #0x61 - lsl r1, r1, #2 - ldr r0, [r0, r1] - ldr r3, _022325A0 ; =Sprite_SetDrawFlag - mov r1, #0 - bx r3 - .balign 4, 0 -_022325A0: .word Sprite_SetDrawFlag - thumb_func_end ov44_02232594 - - thumb_func_start ov44_022325A4 -ov44_022325A4: ; 0x022325A4 - push {r0, r1, r2, r3} - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - add r1, sp, #0x18 - mov r0, #4 - ldrsh r0, [r1, r0] - add r4, r2, #0 - add r0, #8 - lsl r0, r0, #0x10 - asr r0, r0, #4 - str r0, [sp] - mov r0, #6 - ldrsh r0, [r1, r0] - add r1, sp, #0 - lsl r0, r0, #0xc - str r0, [sp, #4] - mov r0, #0x62 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl Sprite_SetMatrix - mov r0, #0x62 - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r1, r4, #0 - bl Sprite_SetDrawPriority - mov r0, #0x62 - lsl r0, r0, #2 - ldr r0, [r5, r0] - mov r1, #1 - bl Sprite_SetDrawFlag - add sp, #0xc - pop {r4, r5} - pop {r3} - add sp, #0x10 - bx r3 - .balign 4, 0 - thumb_func_end ov44_022325A4 - - thumb_func_start ov44_022325F4 -ov44_022325F4: ; 0x022325F4 - mov r1, #0x62 - lsl r1, r1, #2 - ldr r0, [r0, r1] - ldr r3, _02232600 ; =Sprite_SetDrawFlag - mov r1, #0 - bx r3 - .balign 4, 0 -_02232600: .word Sprite_SetDrawFlag - thumb_func_end ov44_022325F4 - - thumb_func_start ov44_02232604 -ov44_02232604: ; 0x02232604 - push {r3, r4, r5, lr} - sub sp, #8 - add r5, r0, #0 - ldr r0, _02232678 ; =0x000006CC - ldr r0, [r5, r0] - cmp r0, #0 - bne _02232618 - add sp, #8 - mov r0, #0 - pop {r3, r4, r5, pc} -_02232618: - ldr r0, [r0] - bl ov42_022282DC - add r1, sp, #0 - strh r0, [r1] - lsr r0, r0, #0x10 - strh r0, [r1, #2] - ldrh r0, [r1] - strh r0, [r1, #4] - ldrh r0, [r1, #2] - strh r0, [r1, #6] - ldr r0, _02232678 ; =0x000006CC - mov r1, #6 - ldr r0, [r5, r0] - ldr r0, [r0] - bl ov42_02228188 - add r4, r0, #0 - ldr r0, _0223267C ; =0x000006E4 - add r2, sp, #0 - mov r1, #4 - ldrsh r3, [r2, r1] - ldr r0, [r5, r0] - asr r1, r3, #3 - lsr r1, r1, #0x1c - add r1, r3, r1 - mov r3, #6 - ldrsh r3, [r2, r3] - lsl r1, r1, #0xc - lsr r1, r1, #0x10 - asr r2, r3, #3 - lsr r2, r2, #0x1c - add r2, r3, r2 - lsl r2, r2, #0xc - lsr r2, r2, #0x10 - bl ov42_02227FDC - cmp r0, #0xf - bne _02232670 - cmp r4, #1 - bne _02232670 - add sp, #8 - mov r0, #1 - pop {r3, r4, r5, pc} -_02232670: - mov r0, #0 - add sp, #8 - pop {r3, r4, r5, pc} - nop -_02232678: .word 0x000006CC -_0223267C: .word 0x000006E4 - thumb_func_end ov44_02232604 - - thumb_func_start ov44_02232680 -ov44_02232680: ; 0x02232680 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - add r5, r0, #0 - mov r0, #7 - add r4, r2, #0 - and r4, r0 - ldr r0, _02232720 ; =0x000006E4 - str r1, [sp] - ldr r0, [r5, r0] - lsr r7, r2, #3 - bl ov42_02227F40 - add r6, r0, #0 - ldr r0, _02232720 ; =0x000006E4 - ldr r0, [r5, r0] - bl ov42_02227F44 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - ldr r0, [sp, #4] - cmp r0, #0 - bls _02232718 - add r0, r7, #3 - str r0, [sp, #0x14] - add r0, r4, #7 - str r0, [sp, #0xc] -_022326B6: - mov r4, #0 - cmp r6, #0 - bls _0223270C - ldr r0, [sp, #8] - add r0, r0, #1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x10] - ldr r0, [sp, #8] - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 -_022326CC: - ldr r0, _02232720 ; =0x000006E4 - lsl r1, r4, #0x10 - ldr r0, [r5, r0] - lsr r1, r1, #0x10 - add r2, r7, #0 - bl ov42_02227FDC - ldr r1, [sp, #0xc] - cmp r0, r1 - bne _02232706 - ldr r0, _02232720 ; =0x000006E4 - lsl r1, r4, #0x10 - ldr r0, [r5, r0] - ldr r2, [sp, #0x10] - lsr r1, r1, #0x10 - bl ov42_02227FDC - ldr r1, [sp, #0x14] - cmp r0, r1 - bne _02232706 - ldr r0, [sp] - lsl r1, r4, #4 - strh r1, [r0] - ldr r0, [sp, #8] - lsl r1, r0, #4 - ldr r0, [sp] - add sp, #0x18 - strh r1, [r0, #2] - pop {r3, r4, r5, r6, r7, pc} -_02232706: - add r4, r4, #1 - cmp r4, r6 - blo _022326CC -_0223270C: - ldr r0, [sp, #8] - add r1, r0, #1 - ldr r0, [sp, #4] - str r1, [sp, #8] - cmp r1, r0 - blo _022326B6 -_02232718: - bl GF_AssertFail - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_02232720: .word 0x000006E4 - thumb_func_end ov44_02232680 - - thumb_func_start ov44_02232724 -ov44_02232724: ; 0x02232724 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r7, r0, #0 - ldr r0, _02232794 ; =0x000006E4 - str r1, [sp] - ldr r0, [r7, r0] - bl ov42_02227F40 - add r5, r0, #0 - ldr r0, _02232794 ; =0x000006E4 - ldr r0, [r7, r0] - bl ov42_02227F44 - str r0, [sp, #4] - mov r0, #0 - str r0, [sp, #8] - ldr r0, [sp, #4] - cmp r0, #0 - bls _0223278C -_0223274A: - mov r4, #0 - cmp r5, #0 - bls _02232780 - ldr r0, [sp, #8] - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 -_02232756: - ldr r0, _02232794 ; =0x000006E4 - lsl r1, r4, #0x10 - ldr r0, [r7, r0] - lsr r1, r1, #0x10 - add r2, r6, #0 - bl ov42_02227FDC - cmp r0, #0xf - bne _0223277A - ldr r0, [sp] - lsl r1, r4, #4 - strh r1, [r0] - ldr r0, [sp, #8] - lsl r1, r0, #4 - ldr r0, [sp] - add sp, #0xc - strh r1, [r0, #2] - pop {r4, r5, r6, r7, pc} -_0223277A: - add r4, r4, #1 - cmp r4, r5 - blo _02232756 -_02232780: - ldr r0, [sp, #8] - add r1, r0, #1 - ldr r0, [sp, #4] - str r1, [sp, #8] - cmp r1, r0 - blo _0223274A -_0223278C: - bl GF_AssertFail - add sp, #0xc - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_02232794: .word 0x000006E4 - thumb_func_end ov44_02232724 - - thumb_func_start ov44_02232798 -ov44_02232798: ; 0x02232798 - push {r4, lr} - mov r2, #0x63 - mov r1, #0 - add r4, r0, #0 - lsl r2, r2, #2 -_022327A2: - ldr r3, [r4, r2] - cmp r3, #0 - bne _022327B6 - mov r2, #0x63 - lsl r2, r2, #2 - add r2, r0, r2 - mov r0, #0x1c - mul r0, r1 - add r0, r2, r0 - pop {r4, pc} -_022327B6: - add r1, r1, #1 - add r4, #0x1c - cmp r1, #0x30 - blt _022327A2 - bl GF_AssertFail - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02232798 - - thumb_func_start ov44_022327C8 -ov44_022327C8: ; 0x022327C8 - push {r3, r4, r5, lr} - add r3, r0, #0 - ldr r0, _022327FC ; =0x000006EC - add r5, r1, #0 - ldr r0, [r3, r0] - ldr r1, [r5] - ldr r3, [r3, #4] - add r4, r2, #0 - bl ov42_0222903C - str r0, [r5, #4] - cmp r4, #0 - bne _022327F8 - ldr r0, [r5, #4] - mov r1, #0 - bl ov42_0222919C - ldr r0, [r5, #4] - bl ov42_022291A0 - ldr r0, [r5, #4] - mov r1, #0 - bl ov42_02229200 -_022327F8: - pop {r3, r4, r5, pc} - nop -_022327FC: .word 0x000006EC - thumb_func_end ov44_022327C8 - - thumb_func_start ov44_02232800 -ov44_02232800: ; 0x02232800 - push {r4, r5, lr} - sub sp, #0xc - add r4, r1, #0 - mov r1, #0 - ldrsh r1, [r2, r1] - add r5, sp, #0 - strh r1, [r5] - mov r1, #2 - ldrsh r1, [r2, r1] - strh r1, [r5, #2] - ldr r1, [sp, #0x20] - strh r3, [r5, #4] - strh r1, [r5, #6] - add r1, sp, #8 - ldrb r2, [r1, #0x14] - strh r2, [r5, #8] - ldrh r1, [r1, #0x10] - strh r1, [r5, #0xa] - ldr r1, _02232834 ; =0x000006E8 - ldr r0, [r0, r1] - add r1, sp, #0 - bl ov42_022280B8 - str r0, [r4] - add sp, #0xc - pop {r4, r5, pc} - .balign 4, 0 -_02232834: .word 0x000006E8 - thumb_func_end ov44_02232800 - - thumb_func_start ov44_02232838 -ov44_02232838: ; 0x02232838 - ldrh r0, [r0, #0xc] - cmp r0, #5 - bhi _0223285E - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0223284A: ; jump table - .short _02232856 - _0223284A - 2 ; case 0 - .short _0223285A - _0223284A - 2 ; case 1 - .short _0223285A - _0223284A - 2 ; case 2 - .short _02232856 - _0223284A - 2 ; case 3 - .short _02232856 - _0223284A - 2 ; case 4 - .short _0223285A - _0223284A - 2 ; case 5 -_02232856: - mov r0, #1 - bx lr -_0223285A: - mov r0, #0 - bx lr -_0223285E: - mov r0, #0 - bx lr - .balign 4, 0 - thumb_func_end ov44_02232838 - - thumb_func_start ov44_02232864 -ov44_02232864: ; 0x02232864 - add r2, r1, #0 - ldr r1, _02232878 ; =ov44_02232A60 - ldr r3, _0223287C ; =ov44_02232C6C - str r1, [r2, #0x10] - ldr r1, _02232880 ; =ov44_02232910 - str r1, [r2, #0x18] - mov r1, #0 - strh r1, [r2, #0xc] - bx r3 - nop -_02232878: .word ov44_02232A60 -_0223287C: .word ov44_02232C6C -_02232880: .word ov44_02232910 - thumb_func_end ov44_02232864 - - thumb_func_start ov44_02232884 -ov44_02232884: ; 0x02232884 - ldr r0, _02232898 ; =ov44_02232B74 - str r0, [r1, #0x10] - ldr r0, _0223289C ; =ov44_02232914 - str r0, [r1, #0x18] - mov r0, #0x2d - strh r0, [r1, #8] - mov r0, #1 - strh r0, [r1, #0xc] - bx lr - nop -_02232898: .word ov44_02232B74 -_0223289C: .word ov44_02232914 - thumb_func_end ov44_02232884 - - thumb_func_start ov44_022328A0 -ov44_022328A0: ; 0x022328A0 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, _022328D8 ; =ov44_02232BE4 - add r4, r1, #0 - str r0, [r4, #0x10] - ldr r0, _022328DC ; =ov44_02232910 - str r0, [r4, #0x18] - bl MTRandom - ldr r1, _022328E0 ; =0x000003FF - add r2, r4, #0 - and r1, r0 - mov r0, #1 - lsl r0, r0, #8 - add r0, r1, r0 - strh r0, [r4, #8] - mov r0, #3 - strh r0, [r4, #0xc] - add r0, r5, #0 - mov r1, #0 - bl ov44_02232C6C - ldr r0, [r4, #4] - mov r1, #1 - bl ov42_0222919C - pop {r3, r4, r5, pc} - nop -_022328D8: .word ov44_02232BE4 -_022328DC: .word ov44_02232910 -_022328E0: .word 0x000003FF - thumb_func_end ov44_022328A0 - - thumb_func_start ov44_022328E4 -ov44_022328E4: ; 0x022328E4 - push {r4, lr} - add r4, r1, #0 - ldr r1, _02232908 ; =ov44_02232C30 - add r2, r4, #0 - str r1, [r4, #0x10] - ldr r1, _0223290C ; =ov44_022329B0 - str r1, [r4, #0x18] - mov r1, #0x1c - strh r1, [r4, #8] - mov r1, #4 - strh r1, [r4, #0xc] - bl ov44_02232C6C - ldr r0, [r4, #4] - mov r1, #0 - bl ov42_0222919C - pop {r4, pc} - .balign 4, 0 -_02232908: .word ov44_02232C30 -_0223290C: .word ov44_022329B0 - thumb_func_end ov44_022328E4 - - thumb_func_start ov44_02232910 -ov44_02232910: ; 0x02232910 - bx lr - .balign 4, 0 - thumb_func_end ov44_02232910 - - thumb_func_start ov44_02232914 -ov44_02232914: ; 0x02232914 - push {r4, r5, r6, lr} - sub sp, #8 - add r4, r1, #0 - ldr r0, [r4, #4] - bl ov42_022291AC - ldr r0, [r4, #4] - bl ov42_022291F4 - cmp r0, #0 - bne _02232932 - ldr r0, [r4, #4] - mov r1, #1 - bl ov42_02229200 -_02232932: - ldr r0, [r4] - mov r1, #0 - bl ov42_02228188 - add r1, sp, #0 - strh r0, [r1, #4] - ldr r0, [r4] - mov r1, #1 - bl ov42_02228188 - add r1, sp, #0 - strh r0, [r1, #6] - ldrh r0, [r1, #4] - strh r0, [r1] - ldrh r0, [r1, #6] - strh r0, [r1, #2] - ldrh r0, [r4, #8] - bl GF_SinDegNoWrap - ldr r2, _022329AC ; =0xFFF40000 - asr r1, r0, #0x1f - asr r3, r2, #0x14 - bl _ll_mul - mov r5, #2 - mov r6, #0 - lsl r5, r5, #0xa - mov r3, #6 - add r2, sp, #0 - add r5, r0, r5 - adc r1, r6 - lsl r0, r1, #0x14 - lsr r1, r5, #0xc - orr r1, r0 - ldrsh r3, [r2, r3] - asr r0, r1, #0xc - add r0, r3, r0 - strh r0, [r2, #6] - mov r3, sp - ldrh r1, [r2, #4] - ldr r0, [r4, #4] - sub r3, r3, #4 - strh r1, [r3] - ldrh r1, [r2, #6] - strh r1, [r3, #2] - ldr r1, [r3] - bl ov42_022291D8 - add r1, sp, #0 - mov r3, sp - ldrh r2, [r1] - ldr r0, [r4, #4] - sub r3, r3, #4 - strh r2, [r3] - ldrh r1, [r1, #2] - strh r1, [r3, #2] - ldr r1, [r3] - bl ov42_02229258 - add sp, #8 - pop {r4, r5, r6, pc} - .balign 4, 0 -_022329AC: .word 0xFFF40000 - thumb_func_end ov44_02232914 - - thumb_func_start ov44_022329B0 -ov44_022329B0: ; 0x022329B0 - push {r4, r5, r6, lr} - sub sp, #8 - add r4, r1, #0 - ldr r0, [r4] - mov r1, #0 - bl ov42_02228188 - add r1, sp, #0 - strh r0, [r1, #4] - ldr r0, [r4] - mov r1, #1 - bl ov42_02228188 - add r1, sp, #0 - strh r0, [r1, #6] - ldrh r0, [r1, #4] - strh r0, [r1] - ldrh r0, [r1, #6] - strh r0, [r1, #2] - mov r0, #8 - ldrsh r0, [r4, r0] - sub r0, #0x10 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - cmp r0, #0 - ble _02232A26 - mov r1, #6 - bl _s32_div_f - lsl r0, r1, #0x10 - asr r1, r0, #0x10 - mov r0, #0xb4 - mul r0, r1 - mov r1, #6 - bl _s32_div_f - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl GF_SinDegNoWrap - add r1, sp, #0 - mov r2, #6 - ldrsh r3, [r1, r2] - asr r2, r0, #0x1f - lsr r5, r0, #0x12 - lsl r2, r2, #0xe - lsl r6, r0, #0xe - mov r0, #2 - orr r2, r5 - mov r5, #0 - lsl r0, r0, #0xa - add r6, r6, r0 - adc r2, r5 - lsl r0, r2, #0x14 - lsr r2, r6, #0xc - orr r2, r0 - asr r0, r2, #0xc - sub r0, r3, r0 - strh r0, [r1, #6] -_02232A26: - add r1, sp, #0 - ldrh r2, [r1, #4] - mov r3, sp - ldr r0, [r4, #4] - sub r3, r3, #4 - strh r2, [r3] - ldrh r1, [r1, #6] - strh r1, [r3, #2] - ldr r1, [r3] - bl ov42_022291D8 - add r1, sp, #0 - mov r3, sp - ldrh r2, [r1] - ldr r0, [r4, #4] - sub r3, r3, #4 - strh r2, [r3] - ldrh r1, [r1, #2] - strh r1, [r3, #2] - ldr r1, [r3] - bl ov42_02229258 - ldr r0, [r4, #4] - mov r1, #1 - bl ov42_02229218 - add sp, #8 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_022329B0 - - thumb_func_start ov44_02232A60 -ov44_02232A60: ; 0x02232A60 - push {r3, r4, r5, r6, r7, lr} - add r6, r1, #0 - add r5, r0, #0 - ldr r0, [r6] - mov r1, #6 - bl ov42_02228188 - add r4, r0, #0 - ldr r0, [r6] - mov r1, #4 - bl ov42_02228188 - add r7, r0, #0 - ldr r0, [r6] - mov r1, #5 - bl ov42_02228188 - cmp r0, #0 - beq _02232A8A - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_02232A8A: - ldr r0, _02232B70 ; =gSystem - ldr r1, [r0, #0x48] - mov r0, #1 - tst r0, r1 - beq _02232AC4 - add r0, r5, #0 - add r1, r6, #0 - add r2, r4, #0 - bl ov44_022321C4 - str r0, [sp] - cmp r0, #0 - beq _02232AC0 - bl ov44_02232838 - cmp r0, #1 - bne _02232ABA - ldr r0, [sp] - mov r1, #4 - ldr r0, [r0] - bl ov42_02228188 - strb r0, [r6, #0xa] - b _02232AC4 -_02232ABA: - mov r0, #0 - strb r0, [r6, #0xa] - b _02232AC4 -_02232AC0: - mov r0, #0 - strb r0, [r6, #0xa] -_02232AC4: - ldr r0, [r5, #0xc] - cmp r0, #1 - bne _02232ACE - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_02232ACE: - ldr r0, _02232B70 ; =gSystem - mov r1, #2 - ldr r0, [r0, #0x44] - add r2, r0, #0 - tst r2, r1 - beq _02232ADC - mov r1, #3 -_02232ADC: - mov r2, #0x40 - tst r2, r0 - beq _02232B00 - cmp r4, #0 - bne _02232AF2 - add r0, r5, #0 - add r2, r4, #0 - add r3, r7, #0 - bl ov44_02232C4C - b _02232B6A -_02232AF2: - add r0, r5, #0 - mov r1, #1 - mov r2, #0 - add r3, r7, #0 - bl ov44_02232C4C - b _02232B6A -_02232B00: - mov r2, #0x80 - tst r2, r0 - beq _02232B24 - cmp r4, #1 - bne _02232B16 - add r0, r5, #0 - add r2, r4, #0 - add r3, r7, #0 - bl ov44_02232C4C - b _02232B6A -_02232B16: - mov r1, #1 - add r0, r5, #0 - add r2, r1, #0 - add r3, r7, #0 - bl ov44_02232C4C - b _02232B6A -_02232B24: - mov r2, #0x20 - tst r2, r0 - beq _02232B48 - cmp r4, #2 - bne _02232B3A - add r0, r5, #0 - add r2, r4, #0 - add r3, r7, #0 - bl ov44_02232C4C - b _02232B6A -_02232B3A: - add r0, r5, #0 - mov r1, #1 - mov r2, #2 - add r3, r7, #0 - bl ov44_02232C4C - b _02232B6A -_02232B48: - mov r2, #0x10 - tst r0, r2 - beq _02232B6A - cmp r4, #3 - bne _02232B5E - add r0, r5, #0 - add r2, r4, #0 - add r3, r7, #0 - bl ov44_02232C4C - b _02232B6A -_02232B5E: - add r0, r5, #0 - mov r1, #1 - mov r2, #3 - add r3, r7, #0 - bl ov44_02232C4C -_02232B6A: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - nop -_02232B70: .word gSystem - thumb_func_end ov44_02232A60 - - thumb_func_start ov44_02232B74 -ov44_02232B74: ; 0x02232B74 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - mov r0, #8 - ldrsh r1, [r4, r0] - sub r1, r1, #1 - strh r1, [r4, #8] - ldrsh r0, [r4, r0] - cmp r0, #0 - bgt _02232BC4 - ldr r0, [r4, #4] - bl ov42_022291B8 - ldr r0, [r4, #4] - mov r1, #1 - bl ov42_0222919C - ldr r0, _02232BC8 ; =0x000006CC - mov r1, #4 - ldr r0, [r5, r0] - ldr r0, [r0] - bl ov42_02228188 - add r6, r0, #0 - ldr r0, [r4] - mov r1, #4 - bl ov42_02228188 - cmp r0, r6 - bne _02232BBA - add r0, r5, #0 - add r1, r4, #0 - bl ov44_02232864 - b _02232BC4 -_02232BBA: - ldrb r2, [r4, #0xb] - add r0, r5, #0 - add r1, r4, #0 - bl ov44_02232CA8 -_02232BC4: - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 -_02232BC8: .word 0x000006CC - thumb_func_end ov44_02232B74 - - thumb_func_start ov44_02232BCC -ov44_02232BCC: ; 0x02232BCC - mov r0, #8 - ldrsh r2, [r1, r0] - add r2, r2, #1 - strh r2, [r1, #8] - ldrsh r0, [r1, r0] - cmp r0, #0x2d - ble _02232BDE - mov r0, #1 - bx lr -_02232BDE: - mov r0, #0 - bx lr - .balign 4, 0 - thumb_func_end ov44_02232BCC - - thumb_func_start ov44_02232BE4 -ov44_02232BE4: ; 0x02232BE4 - push {r4, r5, r6, lr} - add r6, r0, #0 - add r5, r1, #0 - mov r0, #8 - ldrsh r1, [r5, r0] - sub r1, r1, #1 - strh r1, [r5, #8] - ldrsh r0, [r5, r0] - cmp r0, #0 - bgt _02232C26 - bl MTRandom - ldr r1, _02232C2C ; =0x000003FF - and r1, r0 - mov r0, #1 - lsl r0, r0, #8 - add r0, r1, r0 - strh r0, [r5, #8] - bl MTRandom - add r4, r0, #0 - mov r1, #3 - and r4, r1 - ldr r0, [r5] - mov r1, #4 - bl ov42_02228188 - add r3, r0, #0 - add r0, r6, #0 - mov r1, #0 - add r2, r4, #0 - bl ov44_02232C4C -_02232C26: - mov r0, #0 - pop {r4, r5, r6, pc} - nop -_02232C2C: .word 0x000003FF - thumb_func_end ov44_02232BE4 - - thumb_func_start ov44_02232C30 -ov44_02232C30: ; 0x02232C30 - mov r0, #8 - ldrsh r2, [r1, r0] - sub r2, r2, #1 - strh r2, [r1, #8] - ldrsh r0, [r1, r0] - cmp r0, #0 - bge _02232C42 - mov r0, #0x1c - strh r0, [r1, #8] -_02232C42: - mov r0, #0 - bx lr - .balign 4, 0 - thumb_func_end ov44_02232C30 - - thumb_func_start ov44_02232C48 -ov44_02232C48: ; 0x02232C48 - mov r0, #0 - bx lr - thumb_func_end ov44_02232C48 - - thumb_func_start ov44_02232C4C -ov44_02232C4C: ; 0x02232C4C - push {r3, r4, lr} - sub sp, #4 - add r4, sp, #0 - strh r1, [r4] - strb r2, [r4, #2] - ldr r1, _02232C68 ; =0x000006F8 - strb r3, [r4, #3] - ldr r0, [r0, r1] - add r1, sp, #0 - bl ov42_02229A8C - add sp, #4 - pop {r3, r4, pc} - nop -_02232C68: .word 0x000006F8 - thumb_func_end ov44_02232C4C - - thumb_func_start ov44_02232C6C -ov44_02232C6C: ; 0x02232C6C - push {r3, r4, r5, r6, r7, lr} - add r4, r2, #0 - add r5, r0, #0 - add r6, r1, #0 - ldr r0, [r4] - mov r1, #6 - bl ov42_02228188 - add r7, r0, #0 - ldr r0, [r4] - mov r1, #4 - bl ov42_02228188 - add r3, r0, #0 - add r0, r5, #0 - add r1, r6, #0 - add r2, r7, #0 - bl ov44_02232C4C - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov44_02232C6C - - thumb_func_start ov44_02232C94 -ov44_02232C94: ; 0x02232C94 - ldr r1, [r0, #0x18] - ldr r0, _02232CA4 ; =ov44_02232914 - cmp r1, r0 - beq _02232CA0 - mov r0, #1 - bx lr -_02232CA0: - mov r0, #0 - bx lr - .balign 4, 0 -_02232CA4: .word ov44_02232914 - thumb_func_end ov44_02232C94 - - thumb_func_start ov44_02232CA8 -ov44_02232CA8: ; 0x02232CA8 - push {r3, r4, r5, lr} - add r5, r1, #0 - add r4, r2, #0 - beq _02232CB6 - cmp r4, #1 - beq _02232CBC - b _02232CC2 -_02232CB6: - bl ov44_022328A0 - b _02232CC6 -_02232CBC: - bl ov44_022328E4 - b _02232CC6 -_02232CC2: - bl GF_AssertFail -_02232CC6: - strb r4, [r5, #0xb] - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov44_02232CA8 - - thumb_func_start ov44_02232CCC -ov44_02232CCC: ; 0x02232CCC - push {r3, r4, r5, lr} - add r4, r1, #0 - add r3, r0, #0 - add r5, r4, #0 - mov r1, #0x14 - mov r0, #0 -_02232CD8: - strb r0, [r5] - add r5, r5, #1 - sub r1, r1, #1 - bne _02232CD8 - ldr r3, [r3, #4] - add r0, r2, #0 - mov r1, #0x20 - add r2, r4, #4 - bl GfGfxLoader_GetPlttDataFromOpenNarc - str r0, [r4] - mov r0, #0xf - strb r0, [r4, #8] - mov r0, #0 - strb r0, [r4, #9] - ldrb r0, [r4, #9] - lsl r1, r0, #1 - ldr r0, _02232D04 ; =ov44_02235600 - ldrh r0, [r0, r1] - strh r0, [r4, #0xa] - pop {r3, r4, r5, pc} - nop -_02232D04: .word ov44_02235600 - thumb_func_end ov44_02232CCC - - thumb_func_start ov44_02232D08 -ov44_02232D08: ; 0x02232D08 - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4] - bl Heap_Free - mov r1, #0x14 - mov r0, #0 -_02232D16: - strb r0, [r4] - add r4, r4, #1 - sub r1, r1, #1 - bne _02232D16 - pop {r4, pc} - thumb_func_end ov44_02232D08 - - thumb_func_start ov44_02232D20 -ov44_02232D20: ; 0x02232D20 - push {r4, lr} - add r4, r1, #0 - add r0, r4, #0 - bl ov44_02232D34 - add r0, r4, #0 - bl ov44_02232DA0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02232D20 - - thumb_func_start ov44_02232D34 -ov44_02232D34: ; 0x02232D34 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - mov r0, #0xa - ldrsh r1, [r5, r0] - sub r1, r1, #1 - strh r1, [r5, #0xa] - ldrsh r0, [r5, r0] - cmp r0, #0 - bgt _02232D9A - ldrb r0, [r5, #9] - add r0, r0, #1 - lsr r2, r0, #0x1f - lsl r1, r0, #0x1f - sub r1, r1, r2 - mov r0, #0x1f - ror r1, r0 - add r0, r2, r1 - strb r0, [r5, #9] - ldrb r0, [r5, #9] - lsl r1, r0, #1 - ldr r0, _02232D9C ; =ov44_02235600 - ldrh r0, [r0, r1] - strh r0, [r5, #0xa] - ldrb r0, [r5, #9] - cmp r0, #1 - bne _02232D6C - mov r6, #2 - b _02232D6E -_02232D6C: - mov r6, #1 -_02232D6E: - mov r4, #0 - mov r7, #1 -_02232D72: - add r0, r7, #0 - ldrb r1, [r5, #8] - lsl r0, r4 - tst r0, r1 - beq _02232D94 - add r0, r5, #0 - add r1, r6, #0 - bl ov44_02232E2C - add r1, r4, #1 - lsl r1, r1, #1 - add r2, r0, #0 - mov r0, #0xf - add r1, #0xe0 - mov r3, #2 - bl GF_CreateNewVramTransferTask -_02232D94: - add r4, r4, #1 - cmp r4, #4 - blt _02232D72 -_02232D9A: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_02232D9C: .word ov44_02235600 - thumb_func_end ov44_02232D34 - - thumb_func_start ov44_02232DA0 -ov44_02232DA0: ; 0x02232DA0 - push {r3, r4, r5, lr} - add r4, r0, #0 - ldrb r3, [r4, #0xd] - mov r0, #0 - add r1, r0, #0 - lsl r5, r3, #2 - ldr r3, _02232E1C ; =ov44_0223560F - add r2, r0, #0 - ldrb r3, [r3, r5] - cmp r3, #1 - bne _02232DC8 - mov r3, #0xe - ldrsh r5, [r4, r3] - sub r5, r5, #1 - strh r5, [r4, #0xe] - ldrsh r3, [r4, r3] - cmp r3, #0 - bgt _02232DD2 - mov r2, #1 - b _02232DD2 -_02232DC8: - ldrb r3, [r4, #0x10] - cmp r3, #0 - beq _02232DD2 - strb r0, [r4, #0x10] - mov r2, #1 -_02232DD2: - cmp r2, #0 - beq _02232DFE - ldrb r0, [r4, #0xd] - add r0, r0, #1 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0xd] - cmp r0, #8 - blo _02232DEA - add r0, r4, #0 - bl ov44_02232E38 - pop {r3, r4, r5, pc} -_02232DEA: - lsl r1, r0, #2 - ldr r0, _02232E20 ; =ov44_02235610 - ldrb r0, [r0, r1] - ldr r1, _02232E24 ; =ov44_02235612 - strh r0, [r4, #0xe] - ldrb r0, [r4, #0xd] - lsl r2, r0, #2 - ldr r0, _02232E28 ; =ov44_02235611 - ldrb r1, [r1, r2] - ldrb r0, [r0, r2] -_02232DFE: - cmp r0, #0 - beq _02232E1A - add r0, r4, #0 - bl ov44_02232E2C - ldrb r1, [r4, #0xc] - add r2, r0, #0 - mov r0, #0xf - add r1, r1, #1 - lsl r1, r1, #1 - add r1, #0xe0 - mov r3, #2 - bl GF_CreateNewVramTransferTask -_02232E1A: - pop {r3, r4, r5, pc} - .balign 4, 0 -_02232E1C: .word ov44_0223560F -_02232E20: .word ov44_02235610 -_02232E24: .word ov44_02235612 -_02232E28: .word ov44_02235611 - thumb_func_end ov44_02232DA0 - - thumb_func_start ov44_02232E2C -ov44_02232E2C: ; 0x02232E2C - ldr r0, [r0, #4] - ldr r2, [r0, #0xc] - add r0, r1, #1 - lsl r0, r0, #1 - add r0, r2, r0 - bx lr - thumb_func_end ov44_02232E2C - - thumb_func_start ov44_02232E38 -ov44_02232E38: ; 0x02232E38 - ldrb r1, [r0, #0xc] - ldrb r3, [r0, #8] - mov r2, #1 - lsl r2, r1 - add r1, r3, #0 - orr r1, r2 - strb r1, [r0, #8] - mov r1, #0 - strb r1, [r0, #0xc] - strb r1, [r0, #0xd] - strh r1, [r0, #0xe] - strb r1, [r0, #0x10] - bx lr - .balign 4, 0 - thumb_func_end ov44_02232E38 - - thumb_func_start ov44_02232E54 -ov44_02232E54: ; 0x02232E54 - mov r1, #1 - strb r1, [r0, #0x10] - bx lr - .balign 4, 0 - thumb_func_end ov44_02232E54 - - thumb_func_start ov44_02232E5C -ov44_02232E5C: ; 0x02232E5C - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - ldrb r1, [r5, #0xd] - cmp r1, #0 - beq _02232E6C - bl ov44_02232E38 -_02232E6C: - mov r0, #1 - ldrb r1, [r5, #8] - lsl r0, r4 - eor r0, r1 - strb r0, [r5, #8] - add r0, r5, #0 - strb r4, [r5, #0xc] - bl ov44_02232E54 - pop {r3, r4, r5, pc} - thumb_func_end ov44_02232E5C - - thumb_func_start ov44_02232E80 -ov44_02232E80: ; 0x02232E80 - push {r3, lr} - ldrb r1, [r0, #0xd] - cmp r1, #0 - beq _02232E8C - bl ov44_02232E54 -_02232E8C: - pop {r3, pc} - .balign 4, 0 - thumb_func_end ov44_02232E80 - - thumb_func_start ov44_02232E90 -ov44_02232E90: ; 0x02232E90 - lsl r1, r0, #2 - ldr r0, _02232E98 ; =ov44_02235630 - ldr r0, [r0, r1] - bx lr - .balign 4, 0 -_02232E98: .word ov44_02235630 - thumb_func_end ov44_02232E90 - - thumb_func_start ov44_02232E9C -ov44_02232E9C: ; 0x02232E9C - lsl r1, r0, #2 - ldr r0, _02232EA4 ; =ov44_0223688C - ldr r0, [r0, r1] - bx lr - .balign 4, 0 -_02232EA4: .word ov44_0223688C - thumb_func_end ov44_02232E9C - - thumb_func_start ov44_02232EA8 -ov44_02232EA8: ; 0x02232EA8 - push {r3, r4, r5, lr} - add r4, r0, #0 - bl OverlayManager_GetArgs - add r5, r0, #0 - ldr r0, _02232F5C ; =FS_OVERLAY_ID(OVY_42) - mov r1, #2 - bl HandleLoadOverlay - bl sub_02039998 - cmp r0, #1 - beq _02232EC6 - bl GF_AssertFail -_02232EC6: - mov r0, #3 - mov r1, #0x67 - lsl r2, r0, #0xf - bl Heap_Create - mov r2, #0xa - mov r0, #3 - mov r1, #0x68 - lsl r2, r2, #0xc - bl Heap_Create - mov r1, #0x8a - add r0, r4, #0 - lsl r1, r1, #2 - mov r2, #0x67 - bl OverlayManager_CreateAndGetData - mov r2, #0x8a - add r4, r0, #0 - mov r1, #0 - lsl r2, r2, #2 - bl MI_CpuFill8 - add r0, r4, #0 - add r0, #0x1c - mov r1, #1 - mov r2, #4 - bl MI_CpuFill8 - add r0, r4, #0 - add r0, #0x20 - mov r1, #1 - mov r2, #4 - bl MI_CpuFill8 - mov r0, #0x10 - mov r1, #0x67 - bl GF_CreateVramTransferManager - bl sub_020398C8 - add r1, r0, #0 - str r0, [r4] - add r1, #0x22 - ldrb r1, [r1] - add r0, #0x21 - strb r1, [r0] - add r0, r4, #0 - bl ov44_022331B0 - strb r0, [r4, #4] - mov r0, #0xff - strb r0, [r4, #6] - add r0, r4, #0 - bl sub_020971F8 - add r0, r4, #0 - bl ov44_02234028 - add r0, r4, #0 - add r1, r5, #0 - mov r2, #0x67 - bl ov44_022331C4 - ldr r0, _02232F60 ; =ov44_0223319C - add r1, r4, #0 - bl Main_SetVBlankIntrCB - bl sub_0203A880 - mov r0, #1 - add r4, #0x27 - strb r0, [r4] - pop {r3, r4, r5, pc} - nop -_02232F5C: .word FS_OVERLAY_ID(OVY_42) -_02232F60: .word ov44_0223319C - thumb_func_end ov44_02232EA8 - - thumb_func_start ov44_02232F64 -ov44_02232F64: ; 0x02232F64 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r6, r0, #0 - add r5, r1, #0 - bl OverlayManager_GetData - add r4, r0, #0 - add r0, r6, #0 - bl OverlayManager_GetArgs - add r7, r0, #0 - ldr r0, [r5] - cmp r0, #4 - bls _02232F82 - b _0223308A -_02232F82: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02232F8E: ; jump table - .short _02232F98 - _02232F8E - 2 ; case 0 - .short _02232FB6 - _02232F8E - 2 ; case 1 - .short _02232FC6 - _02232F8E - 2 ; case 2 - .short _0223305C - _02232F8E - 2 ; case 3 - .short _0223307C - _02232F8E - 2 ; case 4 -_02232F98: - mov r0, #6 - str r0, [sp] - mov r1, #1 - str r1, [sp, #4] - mov r0, #0x67 - str r0, [sp, #8] - mov r0, #3 - add r2, r1, #0 - mov r3, #0 - bl BeginNormalPaletteFade - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _0223308A -_02232FB6: - bl IsPaletteFadeFinished - cmp r0, #0 - beq _0223308A - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _0223308A -_02232FC6: - add r0, r4, #0 - add r0, #0x27 - ldrb r0, [r0] - cmp r0, #0 - beq _02232FDA - add r0, r4, #0 - add r1, r7, #0 - mov r2, #0x67 - bl ov44_02233D8C -_02232FDA: - ldrb r0, [r4, #4] - cmp r0, #0 - beq _0223300C - bl sub_02034420 - cmp r0, #1 - bne _02232FF8 - add r0, r4, #0 - bl ov44_0223438C - bl sub_02034638 - add r0, r4, #0 - bl ov44_02234248 -_02232FF8: - ldrb r3, [r4, #5] - add r0, r4, #0 - add r1, r7, #0 - lsl r6, r3, #2 - ldr r3, _022330A0 ; =ov44_022365B8 - mov r2, #0x67 - ldr r3, [r3, r6] - blx r3 - add r6, r0, #0 - b _0223302E -_0223300C: - ldrb r3, [r4, #5] - add r0, r4, #0 - add r1, r7, #0 - lsl r6, r3, #2 - ldr r3, _022330A4 ; =ov44_02236540 - mov r2, #0x67 - ldr r3, [r3, r6] - blx r3 - add r6, r0, #0 - bl sub_02034420 - cmp r0, #1 - bne _0223302E - add r0, r4, #0 - mov r1, #0x67 - bl ov44_0223427C -_0223302E: - add r0, r4, #0 - bl ov44_0223407C - cmp r0, #0 - beq _02233042 - add r0, r4, #0 - add r1, r7, #0 - mov r2, #0x67 - bl ov44_02233A50 -_02233042: - add r0, r4, #0 - bl ov44_022341C0 - cmp r6, #1 - bne _0223308A - ldrb r0, [r4, #7] - strb r0, [r7, #3] - ldrb r0, [r4, #0x11] - strb r0, [r7, #4] - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _0223308A -_0223305C: - mov r0, #6 - str r0, [sp] - mov r1, #0 - mov r0, #1 - str r0, [sp, #4] - mov r0, #0x67 - str r0, [sp, #8] - mov r0, #3 - add r2, r1, #0 - add r3, r1, #0 - bl BeginNormalPaletteFade - ldr r0, [r5] - add r0, r0, #1 - str r0, [r5] - b _0223308A -_0223307C: - bl IsPaletteFadeFinished - cmp r0, #0 - beq _0223308A - add sp, #0xc - mov r0, #1 - pop {r4, r5, r6, r7, pc} -_0223308A: - add r0, r4, #0 - add r0, #0x30 - bl ov44_02233CCC - ldr r0, [r4, #0x48] - bl SpriteList_RenderAndAnimateSprites - mov r0, #0 - add sp, #0xc - pop {r4, r5, r6, r7, pc} - nop -_022330A0: .word ov44_022365B8 -_022330A4: .word ov44_02236540 - thumb_func_end ov44_02232F64 - - thumb_func_start ov44_022330A8 -ov44_022330A8: ; 0x022330A8 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl OverlayManager_GetData - add r4, r0, #0 - add r0, r5, #0 - bl OverlayManager_GetArgs - mov r0, #0 - add r1, r0, #0 - bl Main_SetVBlankIntrCB - add r0, r4, #0 - bl ov44_02234038 - add r0, r4, #0 - bl ov44_02234204 - add r0, r4, #0 - bl ov44_02233F20 - add r0, r4, #0 - mov r1, #0x67 - bl ov44_02233214 - bl GF_DestroyVramTransferManager - add r0, r5, #0 - bl OverlayManager_FreeData - mov r0, #0x68 - bl Heap_Destroy - mov r0, #0x67 - bl Heap_Destroy - ldr r0, _022330FC ; =FS_OVERLAY_ID(OVY_42) - bl UnloadOverlayByID - mov r0, #1 - pop {r3, r4, r5, pc} - nop -_022330FC: .word FS_OVERLAY_ID(OVY_42) - thumb_func_end ov44_022330A8 - - thumb_func_start ov44_02233100 -ov44_02233100: ; 0x02233100 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldrb r0, [r5, #4] - add r4, r1, #0 - cmp r0, #0 - bne _0223315E - ldrh r6, [r4] - bl sub_0203769C - cmp r6, r0 - ldr r0, [r4, #4] - bne _02233138 - cmp r0, #0 - beq _0223312C - cmp r0, #1 - beq _02233126 - cmp r0, #2 - beq _02233132 - pop {r4, r5, r6, pc} -_02233126: - mov r0, #1 - strb r0, [r5, #0x13] - pop {r4, r5, r6, pc} -_0223312C: - mov r0, #2 - strb r0, [r5, #0x13] - pop {r4, r5, r6, pc} -_02233132: - mov r0, #3 - strb r0, [r5, #0x13] - pop {r4, r5, r6, pc} -_02233138: - cmp r0, #0 - beq _02233150 - cmp r0, #1 - beq _02233146 - cmp r0, #2 - beq _02233150 - pop {r4, r5, r6, pc} -_02233146: - add r0, r5, r6 - mov r1, #1 - add r0, #0x28 - strb r1, [r0] - pop {r4, r5, r6, pc} -_02233150: - bl sub_02034420 - cmp r0, #1 - bne _0223315E - ldrh r0, [r4] - bl sub_020346E8 -_0223315E: - pop {r4, r5, r6, pc} - thumb_func_end ov44_02233100 - - thumb_func_start ov44_02233160 -ov44_02233160: ; 0x02233160 - push {r3, lr} - add r1, r0, #0 - add r1, #0x2c - ldrb r1, [r1] - cmp r1, #0 - bne _02233178 - mov r1, #1 - add r0, #0x2c - strb r1, [r0] - mov r0, #0xd - bl sub_02037AC0 -_02233178: - pop {r3, pc} - .balign 4, 0 - thumb_func_end ov44_02233160 - - thumb_func_start ov44_0223317C -ov44_0223317C: ; 0x0223317C - ldrb r2, [r0, #4] - cmp r2, #1 - beq _02233198 - ldrb r2, [r1] - add r3, r0, #0 - add r0, #0x20 - strb r2, [r0] - ldrb r0, [r1, #1] - add r3, #0x20 - strb r0, [r3, #1] - ldrb r0, [r1, #2] - strb r0, [r3, #2] - ldrb r0, [r1, #3] - strb r0, [r3, #3] -_02233198: - bx lr - .balign 4, 0 - thumb_func_end ov44_0223317C - - thumb_func_start ov44_0223319C -ov44_0223319C: ; 0x0223319C - push {r3, lr} - ldr r0, [r0, #0x30] - bl DoScheduledBgGpuUpdates - bl GF_RunVramTransferTasks - bl OamManager_ApplyAndResetBuffers - pop {r3, pc} - .balign 4, 0 - thumb_func_end ov44_0223319C - - thumb_func_start ov44_022331B0 -ov44_022331B0: ; 0x022331B0 - push {r3, lr} - bl sub_0203769C - cmp r0, #0 - bne _022331BE - mov r0, #1 - pop {r3, pc} -_022331BE: - mov r0, #0 - pop {r3, pc} - .balign 4, 0 - thumb_func_end ov44_022331B0 - - thumb_func_start ov44_022331C4 -ov44_022331C4: ; 0x022331C4 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - add r6, r2, #0 - bl ov44_0223323C - add r0, r5, #0 - add r0, #0x30 - add r1, r6, #0 - bl ov44_0223325C - add r0, r5, #0 - add r0, #0x30 - add r1, r4, #0 - add r2, r6, #0 - bl ov44_02233444 - add r0, r5, #0 - add r0, #0x30 - add r1, r4, #0 - add r2, r6, #0 - bl ov44_0223362C - add r0, r5, #0 - add r0, #0x30 - add r1, r4, #0 - add r2, r6, #0 - bl ov44_02233698 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov44_02233A50 - add r5, #0x30 - add r0, r5, #0 - add r1, r6, #0 - bl ov44_0223376C - pop {r4, r5, r6, pc} - thumb_func_end ov44_022331C4 - - thumb_func_start ov44_02233214 -ov44_02233214: ; 0x02233214 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r0, #0x30 - add r4, r1, #0 - bl ov44_02233820 - add r0, r5, #0 - add r0, #0x30 - bl ov44_02233678 - add r0, r5, #0 - add r0, #0x30 - add r1, r4, #0 - bl ov44_022335AC - add r5, #0x30 - add r0, r5, #0 - bl ov44_0223340C - pop {r3, r4, r5, pc} - thumb_func_end ov44_02233214 - - thumb_func_start ov44_0223323C -ov44_0223323C: ; 0x0223323C - push {r4, lr} - sub sp, #0x28 - ldr r4, _02233258 ; =ov44_022364E8 - add r3, sp, #0 - mov r2, #5 -_02233246: - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - sub r2, r2, #1 - bne _02233246 - add r0, sp, #0 - bl GfGfx_SetBanks - add sp, #0x28 - pop {r4, pc} - .balign 4, 0 -_02233258: .word ov44_022364E8 - thumb_func_end ov44_0223323C - - thumb_func_start ov44_0223325C -ov44_0223325C: ; 0x0223325C - push {r3, r4, r5, r6, lr} - sub sp, #0x74 - add r4, r1, #0 - add r5, r0, #0 - add r0, r4, #0 - bl BgConfig_Alloc - add r3, sp, #0x64 - ldr r6, _022333FC ; =ov44_02236474 - str r0, [r5] - add r2, r3, #0 - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - add r0, r2, #0 - bl SetBothScreensModesAndDisable - ldr r6, _02233400 ; =ov44_022364B0 - add r3, sp, #0x48 - ldmia r6!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r6] - mov r1, #0 - str r0, [r3] - ldr r0, [r5] - add r3, r1, #0 - bl InitBgFromTemplate - mov r0, #0 - mov r1, #0x20 - add r2, r0, #0 - add r3, r4, #0 - bl BG_ClearCharDataRange - ldr r0, [r5] - mov r1, #0 - bl BgClearTilemapBufferAndCommit - ldr r6, _02233404 ; =ov44_02236494 - add r3, sp, #0x2c - ldmia r6!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r6] - mov r1, #1 - str r0, [r3] - ldr r0, [r5] - mov r3, #0 - bl InitBgFromTemplate - mov r0, #1 - mov r1, #0x20 - mov r2, #0 - add r3, r4, #0 - bl BG_ClearCharDataRange - ldr r0, [r5] - mov r1, #1 - bl BgClearTilemapBufferAndCommit - ldr r6, _02233408 ; =ov44_022364CC - add r3, sp, #0x10 - ldmia r6!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r6!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r6] - mov r1, #2 - str r0, [r3] - ldr r0, [r5] - mov r3, #0 - bl InitBgFromTemplate - mov r0, #2 - mov r1, #0x20 - mov r2, #0 - add r3, r4, #0 - bl BG_ClearCharDataRange - ldr r0, [r5] - mov r1, #2 - bl BgClearTilemapBufferAndCommit - mov r0, #8 - mov r1, #0 - bl GfGfx_EngineATogglePlanes - mov r0, #0x10 - mov r1, #1 - bl GfGfx_EngineATogglePlanes - mov r0, #1 - mov r1, #0 - bl GfGfx_EngineBTogglePlanes - mov r0, #2 - mov r1, #0 - bl GfGfx_EngineBTogglePlanes - mov r0, #4 - mov r1, #0 - bl GfGfx_EngineBTogglePlanes - mov r0, #8 - mov r1, #0 - bl GfGfx_EngineBTogglePlanes - mov r0, #0x10 - mov r1, #0 - bl GfGfx_EngineBTogglePlanes - mov r0, #0x58 - add r1, r4, #0 - bl NARC_New - mov r1, #0x20 - str r1, [sp] - mov r1, #0xe - mov r2, #0 - mov r3, #0xa0 - add r6, r0, #0 - str r4, [sp, #4] - bl GfGfxLoader_GXLoadPalFromOpenNarc - mov r1, #0 - mov r0, #6 - str r1, [sp] - lsl r0, r0, #8 - str r0, [sp, #4] - str r1, [sp, #8] - str r4, [sp, #0xc] - ldr r2, [r5] - add r0, r6, #0 - mov r1, #0xd - mov r3, #2 - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r3, #0x79 - lsl r3, r3, #2 - add r0, r6, #0 - mov r1, #0xf - mov r2, #0 - add r3, r5, r3 - str r4, [sp] - bl GfGfxLoader_GetScrnDataFromOpenNarc - mov r2, #0x1e - lsl r2, r2, #4 - str r0, [r5, r2] - add r2, #0x10 - add r0, r6, #0 - mov r1, #0x2d - add r2, r5, r2 - add r3, r4, #0 - bl GfGfxLoader_GetPlttDataFromOpenNarc - mov r1, #0x7b - lsl r1, r1, #2 - str r0, [r5, r1] - mov r3, #0 - str r3, [sp] - str r3, [sp, #4] - str r3, [sp, #8] - str r4, [sp, #0xc] - ldr r2, [r5] - add r0, r6, #0 - mov r1, #0x2e - bl GfGfxLoader_LoadCharDataFromOpenNarc - mov r3, #0 - str r3, [sp] - str r3, [sp, #4] - str r3, [sp, #8] - str r4, [sp, #0xc] - ldr r2, [r5] - add r0, r6, #0 - mov r1, #0x2f - bl GfGfxLoader_LoadScrnDataFromOpenNarc - add r0, r5, #0 - mov r1, #0 - bl ov44_02233D08 - mov r0, #0x7d - mov r1, #3 - lsl r0, r0, #2 - strh r1, [r5, r0] - mov r1, #1 - add r0, r0, #2 - strh r1, [r5, r0] - add r0, r6, #0 - bl NARC_Delete - add sp, #0x74 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 -_022333FC: .word ov44_02236474 -_02233400: .word ov44_022364B0 -_02233404: .word ov44_02236494 -_02233408: .word ov44_022364CC - thumb_func_end ov44_0223325C - - thumb_func_start ov44_0223340C -ov44_0223340C: ; 0x0223340C - push {r4, lr} - add r4, r0, #0 - mov r0, #0x1e - lsl r0, r0, #4 - ldr r0, [r4, r0] - bl Heap_Free - mov r0, #0x7b - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl Heap_Free - ldr r0, [r4] - mov r1, #2 - bl FreeBgTilemapBuffer - ldr r0, [r4] - mov r1, #1 - bl FreeBgTilemapBuffer - ldr r0, [r4] - mov r1, #0 - bl FreeBgTilemapBuffer - ldr r0, [r4] - bl Heap_Free - pop {r4, pc} - thumb_func_end ov44_0223340C - - thumb_func_start ov44_02233444 -ov44_02233444: ; 0x02233444 - push {r3, r4, r5, r6, lr} - sub sp, #0x14 - add r5, r0, #0 - add r6, r1, #0 - mov r0, #0 - mov r1, #0x20 - add r4, r2, #0 - bl LoadFontPal1 - ldr r0, [r6, #8] - bl Save_PlayerData_GetOptionsAddr - bl Options_GetFrame - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp] - str r4, [sp, #4] - mov r1, #1 - ldr r0, [r5] - add r2, r1, #0 - mov r3, #2 - bl LoadUserFrameGfx2 - mov r0, #0 - str r0, [sp] - str r4, [sp, #4] - ldr r0, [r5] - mov r1, #1 - mov r2, #0x1f - mov r3, #3 - bl LoadUserFrameGfx1 - mov r0, #0 - str r0, [sp] - str r4, [sp, #4] - ldr r0, [r5] - mov r1, #2 - mov r2, #0x30 - mov r3, #4 - bl LoadUserFrameGfx1 - mov r0, #0x13 - str r0, [sp] - mov r0, #0x1b - str r0, [sp, #4] - mov r0, #4 - str r0, [sp, #8] - mov r2, #1 - mov r1, #0x63 - lsl r1, r1, #2 - str r2, [sp, #0xc] - mov r0, #0x28 - str r0, [sp, #0x10] - ldr r0, [r5] - add r1, r5, r1 - mov r3, #2 - bl AddWindowParameterized - mov r0, #0x63 - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #0xf - bl FillWindowPixelBuffer - mov r0, #0x63 - lsl r0, r0, #2 - mov r1, #1 - add r0, r5, r0 - add r2, r1, #0 - mov r3, #2 - bl DrawFrameAndWindow2 - mov r2, #1 - mov r1, #0x67 - lsl r1, r1, #2 - str r2, [sp] - mov r0, #0x1b - str r0, [sp, #4] - mov r0, #2 - str r0, [sp, #8] - str r2, [sp, #0xc] - mov r0, #0x94 - str r0, [sp, #0x10] - ldr r0, [r5] - add r1, r5, r1 - add r3, r2, #0 - bl AddWindowParameterized - mov r0, #0x67 - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #0xf - bl FillWindowPixelBuffer - mov r0, #0x67 - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #1 - mov r2, #0x1f - mov r3, #3 - bl DrawFrameAndWindow1 - mov r0, #0x10 - str r0, [sp] - mov r0, #0x1c - str r0, [sp, #4] - mov r3, #2 - str r3, [sp, #8] - mov r2, #1 - str r2, [sp, #0xc] - mov r1, #0xca - str r1, [sp, #0x10] - add r1, #0xe2 - ldr r0, [r5] - add r1, r5, r1 - bl AddWindowParameterized - mov r0, #0x6b - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #0 - bl FillWindowPixelBuffer - mov r0, #5 - str r0, [sp] - mov r0, #0x14 - str r0, [sp, #4] - mov r0, #8 - str r0, [sp, #8] - mov r2, #1 - mov r1, #0x6f - lsl r1, r1, #2 - str r2, [sp, #0xc] - add r0, #0xfa - str r0, [sp, #0x10] - ldr r0, [r5] - add r1, r5, r1 - add r3, r2, #0 - bl AddWindowParameterized - mov r0, #0x6f - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #0xf - bl FillWindowPixelBuffer - mov r0, #0x6f - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #1 - mov r2, #0x1f - mov r3, #3 - bl DrawFrameAndWindow1 - mov r1, #5 - str r1, [sp] - mov r0, #7 - str r0, [sp, #4] - str r1, [sp, #8] - mov r2, #1 - ldr r1, _022335A8 ; =0x000001A2 - str r2, [sp, #0xc] - str r1, [sp, #0x10] - add r1, #0x2a - ldr r0, [r5] - add r1, r5, r1 - mov r3, #0x17 - bl AddWindowParameterized - mov r0, #0x73 - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #0xf - bl FillWindowPixelBuffer - add sp, #0x14 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 -_022335A8: .word 0x000001A2 - thumb_func_end ov44_02233444 - - thumb_func_start ov44_022335AC -ov44_022335AC: ; 0x022335AC - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl ov44_02233954 - mov r0, #0x63 - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #0 - bl ClearFrameAndWindow2 - mov r0, #0x63 - lsl r0, r0, #2 - add r0, r5, r0 - bl RemoveWindow - mov r0, #0x67 - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #0 - bl sub_0200E5D4 - mov r0, #0x67 - lsl r0, r0, #2 - add r0, r5, r0 - bl RemoveWindow - mov r0, #0x6b - lsl r0, r0, #2 - add r0, r5, r0 - bl RemoveWindow - mov r0, #0x6f - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #0 - bl sub_0200E5D4 - mov r0, #0x6f - lsl r0, r0, #2 - add r0, r5, r0 - bl RemoveWindow - mov r0, #0x73 - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #0 - bl sub_0200E5D4 - mov r0, #0x73 - lsl r0, r0, #2 - add r0, r5, r0 - bl RemoveWindow - mov r0, #0x77 - lsl r0, r0, #2 - ldr r0, [r5, r0] - cmp r0, #0 - beq _02233628 - add r1, r4, #0 - bl Clear2dMenuWindowAndDelete -_02233628: - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov44_022335AC - - thumb_func_start ov44_0223362C -ov44_0223362C: ; 0x0223362C - push {r4, r5, r6, lr} - add r6, r2, #0 - add r5, r0, #0 - add r0, r6, #0 - add r4, r1, #0 - bl MessageFormat_New - str r0, [r5, #4] - ldr r2, _02233674 ; =0x0000030A - mov r0, #0 - mov r1, #0x1b - add r3, r6, #0 - bl NewMsgDataFromNarc - str r0, [r5, #8] - mov r0, #1 - lsl r0, r0, #8 - add r1, r6, #0 - bl String_New - str r0, [r5, #0xc] - mov r0, #1 - lsl r0, r0, #8 - add r1, r6, #0 - bl String_New - str r0, [r5, #0x10] - mov r0, #0xff - strb r0, [r5, #0x14] - ldr r0, [r4, #8] - bl Save_PlayerData_GetOptionsAddr - bl Options_GetTextFrameDelay - strh r0, [r5, #0x16] - pop {r4, r5, r6, pc} - .balign 4, 0 -_02233674: .word 0x0000030A - thumb_func_end ov44_0223362C - - thumb_func_start ov44_02233678 -ov44_02233678: ; 0x02233678 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x10] - bl String_Delete - ldr r0, [r4, #0xc] - bl String_Delete - ldr r0, [r4, #8] - bl DestroyMsgData - ldr r0, [r4, #4] - bl MessageFormat_Delete - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02233678 - - thumb_func_start ov44_02233698 -ov44_02233698: ; 0x02233698 - push {r3, r4, r5, lr} - sub sp, #0x10 - add r5, r1, #0 - add r4, r0, #0 - ldrb r0, [r5] - cmp r0, #3 - bhi _022336DC - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_022336B2: ; jump table - .short _022336DC - _022336B2 - 2 ; case 0 - .short _022336BA - _022336B2 - 2 ; case 1 - .short _022336C6 - _022336B2 - 2 ; case 2 - .short _022336D2 - _022336B2 - 2 ; case 3 -_022336BA: - mov r1, #0 - ldr r0, [r4, #4] - add r2, r1, #0 - bl BufferWiFiPlazaActivityName - b _022336DC -_022336C6: - ldr r0, [r4, #4] - mov r1, #0 - mov r2, #1 - bl BufferWiFiPlazaActivityName - b _022336DC -_022336D2: - ldr r0, [r4, #4] - mov r1, #0 - mov r2, #2 - bl BufferWiFiPlazaActivityName -_022336DC: - ldrb r2, [r5] - ldr r1, _02233760 ; =ov44_0223689C - ldr r0, [r4, #8] - ldrb r1, [r1, r2] - ldr r2, [r4, #0x10] - bl ReadMsgDataIntoString - ldr r0, [r4, #4] - ldr r1, [r4, #0xc] - ldr r2, [r4, #0x10] - bl StringExpandPlaceholders - mov r1, #0 - str r1, [sp] - mov r2, #0xff - str r2, [sp, #4] - ldr r0, _02233764 ; =0x0001020F - add r2, #0x9d - str r0, [sp, #8] - str r1, [sp, #0xc] - add r0, r4, r2 - ldr r2, [r4, #0xc] - add r3, r1, #0 - bl AddTextPrinterParameterizedWithColor - mov r0, #0x67 - lsl r0, r0, #2 - add r0, r4, r0 - bl ScheduleWindowCopyToVram - mov r0, #0x6f - lsl r0, r0, #2 - add r0, r4, r0 - bl ScheduleWindowCopyToVram - ldr r0, [r4, #8] - ldr r2, [r4, #0xc] - mov r1, #0x80 - bl ReadMsgDataIntoString - mov r1, #0 - str r1, [sp] - mov r2, #0xff - str r2, [sp, #4] - ldr r0, _02233768 ; =0x00010200 - add r2, #0xad - str r0, [sp, #8] - str r1, [sp, #0xc] - add r0, r4, r2 - ldr r2, [r4, #0xc] - add r3, r1, #0 - bl AddTextPrinterParameterizedWithColor - mov r0, #0x6b - lsl r0, r0, #2 - add r0, r4, r0 - bl ScheduleWindowCopyToVram - mov r0, #0x63 - lsl r0, r0, #2 - add r0, r4, r0 - bl ScheduleWindowCopyToVram - add sp, #0x10 - pop {r3, r4, r5, pc} - nop -_02233760: .word ov44_0223689C -_02233764: .word 0x0001020F -_02233768: .word 0x00010200 - thumb_func_end ov44_02233698 - - thumb_func_start ov44_0223376C -ov44_0223376C: ; 0x0223376C - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - add r7, r0, #0 - add r6, r1, #0 - bl NNS_G2dInitOamManagerModule - mov r0, #0 - str r0, [sp] - mov r1, #0x7e - str r1, [sp, #4] - str r0, [sp, #8] - mov r3, #0x1f - str r3, [sp, #0xc] - add r2, r0, #0 - str r6, [sp, #0x10] - bl OamManager_Create - ldr r4, _02233818 ; =ov44_02236484 - add r3, sp, #0x14 - add r2, r3, #0 - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r4!, {r0, r1} - stmia r3!, {r0, r1} - add r0, r2, #0 - ldr r1, _0223381C ; =0x00200010 - mov r2, #0x10 - str r6, [sp, #0x20] - bl ObjCharTransfer_InitEx - mov r0, #4 - add r1, r6, #0 - bl ObjPlttTransfer_Init - bl ObjCharTransfer_ClearBuffers - bl ObjPlttTransfer_Reset - ldr r1, _0223381C ; =0x00200010 - mov r0, #1 - bl G2dRenderer_SetObjCharTransferReservedRegion - mov r0, #1 - bl G2dRenderer_SetPlttTransferReservedRegion - add r1, r7, #0 - mov r0, #4 - add r1, #0x1c - add r2, r6, #0 - bl G2dRenderer_Init - str r0, [r7, #0x18] - mov r4, #0 - add r5, r7, #0 -_022337D8: - mov r0, #4 - add r1, r4, #0 - add r2, r6, #0 - bl Create2DGfxResObjMan - mov r1, #0x51 - lsl r1, r1, #2 - str r0, [r5, r1] - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #4 - blt _022337D8 - mov r0, #4 - add r1, r6, #0 - bl ov42_02228010 - mov r1, #0x55 - lsl r1, r1, #2 - str r0, [r7, r1] - str r6, [sp] - ldr r0, [r7, #0x18] - mov r1, #0 - mov r2, #4 - mov r3, #1 - bl ov42_02228EDC - mov r1, #0x56 - lsl r1, r1, #2 - str r0, [r7, r1] - add sp, #0x24 - pop {r4, r5, r6, r7, pc} - nop -_02233818: .word ov44_02236484 -_0223381C: .word 0x00200010 - thumb_func_end ov44_0223376C - - thumb_func_start ov44_02233820 -ov44_02233820: ; 0x02233820 - push {r4, r5, r6, lr} - add r5, r0, #0 - mov r0, #0x56 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl ov42_02228F94 - mov r0, #0x55 - lsl r0, r0, #2 - ldr r0, [r5, r0] - bl ov42_02228050 - ldr r0, [r5, #0x18] - bl SpriteList_Delete - mov r6, #0x51 - mov r4, #0 - lsl r6, r6, #2 -_02233844: - ldr r0, [r5, r6] - bl Destroy2DGfxResObjMan - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #4 - blt _02233844 - bl ObjCharTransfer_Destroy - bl ObjPlttTransfer_Destroy - bl OamManager_Free - pop {r4, r5, r6, pc} - thumb_func_end ov44_02233820 - - thumb_func_start ov44_02233860 -ov44_02233860: ; 0x02233860 - push {r3, lr} - str r3, [sp] - mov r3, #0 - bl ov44_0223386C - pop {r3, pc} - thumb_func_end ov44_02233860 - - thumb_func_start ov44_0223386C -ov44_0223386C: ; 0x0223386C - push {r4, r5, r6, r7, lr} - sub sp, #0x14 - add r5, r0, #0 - ldrb r0, [r5, #0x14] - add r4, r1, #0 - add r6, r3, #0 - str r2, [sp, #0x10] - cmp r0, #0xff - beq _02233890 - bl TextPrinterCheckActive - cmp r0, #0 - beq _02233890 - ldrb r0, [r5, #0x14] - bl RemoveTextPrinter - mov r0, #0xff - strb r0, [r5, #0x14] -_02233890: - mov r0, #0x63 - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #0xf - bl FillWindowPixelBuffer - mov r0, #1 - ldr r1, [sp, #0x28] - lsl r0, r0, #8 - bl String_New - add r7, r0, #0 - ldr r0, [r5, #8] - ldr r1, [sp, #0x10] - add r2, r7, #0 - bl ReadMsgDataIntoString - ldr r0, [r5, #4] - ldr r1, [r5, #0xc] - add r2, r7, #0 - bl StringExpandPlaceholders - mov r3, #0 - str r3, [sp] - ldrh r0, [r5, #0x16] - mov r1, #1 - str r0, [sp, #4] - ldr r0, _02233910 ; =0x0001020F - str r0, [sp, #8] - str r3, [sp, #0xc] - mov r0, #0x63 - lsl r0, r0, #2 - ldr r2, [r5, #0xc] - add r0, r5, r0 - bl AddTextPrinterParameterizedWithColor - strb r0, [r5, #0x14] - mov r0, #0x63 - lsl r0, r0, #2 - add r0, r5, r0 - bl ScheduleWindowCopyToVram - add r0, r7, #0 - bl String_Delete - ldr r0, [r4, #8] - bl Save_PlayerData_GetOptionsAddr - bl Options_GetFrame - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp] - ldr r0, [sp, #0x28] - mov r1, #1 - str r0, [sp, #4] - ldr r0, [r5] - add r2, r1, #0 - mov r3, #2 - bl LoadUserFrameGfx2 - strb r6, [r5, #0x15] - add sp, #0x14 - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_02233910: .word 0x0001020F - thumb_func_end ov44_0223386C - - thumb_func_start ov44_02233914 -ov44_02233914: ; 0x02233914 - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #0x14] - cmp r0, #0xff - bne _0223392C - ldrb r0, [r4, #0x15] - cmp r0, #0 - beq _0223393E - sub r0, r0, #1 - strb r0, [r4, #0x15] - mov r0, #0 - pop {r4, pc} -_0223392C: - bl TextPrinterCheckActive - cmp r0, #0 - bne _0223393E - ldrb r0, [r4, #0x14] - cmp r0, #0xff - beq _0223393E - mov r0, #0xff - strb r0, [r4, #0x14] -_0223393E: - ldrb r0, [r4, #0x14] - cmp r0, #0xff - bne _0223394E - ldrb r0, [r4, #0x15] - cmp r0, #0 - bne _0223394E - mov r0, #1 - pop {r4, pc} -_0223394E: - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02233914 - - thumb_func_start ov44_02233954 -ov44_02233954: ; 0x02233954 - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #0x14] - cmp r0, #0xff - beq _02233970 - bl TextPrinterCheckActive - cmp r0, #0 - beq _0223396C - ldrb r0, [r4, #0x14] - bl RemoveTextPrinter -_0223396C: - mov r0, #0xff - strb r0, [r4, #0x14] -_02233970: - mov r0, #0x63 - lsl r0, r0, #2 - add r0, r4, r0 - mov r1, #0xf - bl FillWindowPixelBuffer - mov r0, #0x63 - lsl r0, r0, #2 - add r0, r4, r0 - bl ScheduleWindowCopyToVram - mov r0, #0 - strb r0, [r4, #0x15] - pop {r4, pc} - thumb_func_end ov44_02233954 - - thumb_func_start ov44_0223398C -ov44_0223398C: ; 0x0223398C - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - add r5, r0, #0 - mov r0, #1 - add r4, r3, #0 - str r1, [sp, #0x10] - lsl r0, r0, #8 - add r1, r4, #0 - str r2, [sp, #0x14] - bl String_New - add r6, r0, #0 - mov r0, #1 - lsl r0, r0, #8 - add r1, r4, #0 - bl String_New - add r7, r0, #0 - ldr r1, [sp, #0x10] - ldr r2, [sp, #0x14] - add r0, r5, #0 - mov r3, #0 - str r4, [sp] - bl ov44_02233C88 - ldr r1, [sp, #0x10] - ldr r2, [sp, #0x14] - str r4, [sp] - add r0, r5, #0 - mov r3, #1 - bl ov44_02233CA0 - ldr r0, [r5, #8] - mov r1, #0x83 - add r2, r6, #0 - bl ReadMsgDataIntoString - ldr r0, [r5, #4] - add r1, r7, #0 - add r2, r6, #0 - bl StringExpandPlaceholders - mov r0, #0x73 - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #0xf - bl FillWindowPixelBuffer - mov r1, #0 - str r1, [sp] - mov r2, #0xff - str r2, [sp, #4] - ldr r0, _02233A30 ; =0x0001020F - add r2, #0xcd - str r0, [sp, #8] - add r0, r5, r2 - add r2, r7, #0 - add r3, r1, #0 - str r1, [sp, #0xc] - bl AddTextPrinterParameterizedWithColor - mov r0, #0x73 - lsl r0, r0, #2 - add r0, r5, r0 - mov r1, #1 - mov r2, #0x1f - mov r3, #3 - bl DrawFrameAndWindow1 - mov r0, #0x73 - lsl r0, r0, #2 - add r0, r5, r0 - bl ScheduleWindowCopyToVram - add r0, r6, #0 - bl String_Delete - add r0, r7, #0 - bl String_Delete - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_02233A30: .word 0x0001020F - thumb_func_end ov44_0223398C - - thumb_func_start ov44_02233A34 -ov44_02233A34: ; 0x02233A34 - push {r4, lr} - add r4, r0, #0 - mov r0, #0x73 - lsl r0, r0, #2 - add r0, r4, r0 - mov r1, #1 - bl sub_0200E5D4 - mov r0, #0x73 - lsl r0, r0, #2 - add r0, r4, r0 - bl ClearWindowTilemapAndScheduleTransfer - pop {r4, pc} - thumb_func_end ov44_02233A34 - - thumb_func_start ov44_02233A50 -ov44_02233A50: ; 0x02233A50 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - str r0, [sp, #4] - add r7, r1, #0 - add r5, r2, #0 - bl sub_02034420 - cmp r0, #0 - beq _02233AB2 - ldr r6, [sp, #4] - mov r4, #0 - add r6, #0x30 -_02233A68: - cmp r4, #0 - bne _02233A86 - add r0, r4, #0 - bl sub_02034730 - cmp r0, #1 - bne _02233A86 - ldr r0, [sp, #4] - add r1, r6, #0 - add r2, r7, #0 - add r3, r4, #0 - str r5, [sp] - bl ov44_02233AB8 - b _02233AAC -_02233A86: - add r0, r4, #0 - bl sub_02034750 - cmp r0, #1 - bne _02233AA0 - ldr r0, [sp, #4] - add r1, r6, #0 - add r2, r7, #0 - add r3, r4, #0 - str r5, [sp] - bl ov44_02233AB8 - b _02233AAC -_02233AA0: - add r0, r6, #0 - add r1, r7, #0 - add r2, r4, #0 - add r3, r5, #0 - bl ov44_02233C18 -_02233AAC: - add r4, r4, #1 - cmp r4, #4 - blt _02233A68 -_02233AB2: - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end ov44_02233A50 - - thumb_func_start ov44_02233AB8 -ov44_02233AB8: ; 0x02233AB8 - push {r4, r5, r6, r7, lr} - sub sp, #0x2c - ldr r7, [sp, #0x40] - str r0, [sp, #0x1c] - mov r0, #1 - add r5, r1, #0 - lsl r0, r0, #8 - add r1, r7, #0 - str r2, [sp, #0x20] - add r4, r3, #0 - bl String_New - str r0, [sp, #0x28] - mov r0, #1 - lsl r0, r0, #8 - add r1, r7, #0 - bl String_New - str r0, [sp, #0x24] - ldr r1, [sp, #0x20] - str r7, [sp] - add r0, r5, #0 - add r2, r4, #0 - mov r3, #0 - bl ov44_02233C88 - ldr r0, [r5, #8] - ldr r2, [sp, #0x28] - mov r1, #0x81 - bl ReadMsgDataIntoString - ldr r0, [r5, #4] - ldr r1, [sp, #0x24] - ldr r2, [sp, #0x28] - bl StringExpandPlaceholders - mov r0, #0xa0 - str r0, [sp] - mov r0, #0x10 - lsl r6, r4, #4 - str r0, [sp, #4] - mov r0, #0x6f - lsl r0, r0, #2 - lsl r3, r6, #0x10 - add r0, r5, r0 - mov r1, #0xf - mov r2, #0 - lsr r3, r3, #0x10 - bl FillWindowPixelRect - mov r1, #0 - str r6, [sp] - mov r2, #0xff - str r2, [sp, #4] - ldr r0, _02233C14 ; =0x0001020F - add r2, #0xbd - str r0, [sp, #8] - add r0, r5, r2 - ldr r2, [sp, #0x24] - add r3, r1, #0 - str r1, [sp, #0xc] - bl AddTextPrinterParameterizedWithColor - ldr r1, [sp, #0x20] - str r7, [sp] - add r0, r5, #0 - add r2, r4, #0 - mov r3, #0 - bl ov44_02233CA0 - ldr r0, [r5, #8] - ldr r2, [sp, #0x28] - mov r1, #0x82 - bl ReadMsgDataIntoString - ldr r0, [r5, #4] - ldr r1, [sp, #0x24] - ldr r2, [sp, #0x28] - bl StringExpandPlaceholders - str r6, [sp] - mov r2, #0xff - str r2, [sp, #4] - ldr r0, _02233C14 ; =0x0001020F - add r2, #0xbd - str r0, [sp, #8] - add r0, r5, r2 - mov r1, #0 - ldr r2, [sp, #0x24] - mov r3, #0x48 - str r1, [sp, #0xc] - bl AddTextPrinterParameterizedWithColor - mov r0, #0x6f - lsl r0, r0, #2 - add r0, r5, r0 - bl ScheduleWindowCopyToVram - bl sub_0203769C - cmp r4, r0 - bne _02233B98 - ldr r0, [sp, #0x1c] - ldr r0, [r0] - add r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _02233B94 - mov r2, #2 - b _02233BAA -_02233B94: - mov r2, #1 - b _02233BAA -_02233B98: - ldr r0, [sp, #0x1c] - add r0, r0, r4 - add r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - beq _02233BA8 - mov r2, #2 - b _02233BAA -_02233BA8: - mov r2, #1 -_02233BAA: - mov r0, #0x79 - lsl r0, r0, #2 - ldr r0, [r5, r0] - lsl r1, r4, #1 - add r4, r1, #5 - mov r1, #2 - str r1, [sp] - add r3, r0, #0 - lsl r2, r2, #0x19 - str r1, [sp, #4] - add r3, #0xc - str r3, [sp, #8] - lsr r2, r2, #0x18 - str r2, [sp, #0xc] - mov r2, #0 - str r2, [sp, #0x10] - ldrh r2, [r0] - lsl r3, r4, #0x18 - lsr r3, r3, #0x18 - lsl r2, r2, #0x15 - lsr r2, r2, #0x18 - str r2, [sp, #0x14] - ldrh r0, [r0, #2] - mov r2, #0x12 - lsl r0, r0, #0x15 - lsr r0, r0, #0x18 - str r0, [sp, #0x18] - ldr r0, [r5] - bl CopyToBgTilemapRect - mov r1, #2 - str r1, [sp] - lsl r3, r4, #0x18 - str r1, [sp, #4] - mov r0, #5 - str r0, [sp, #8] - ldr r0, [r5] - mov r2, #0x12 - lsr r3, r3, #0x18 - bl BgTilemapRectChangePalette - ldr r0, [r5] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer - ldr r0, [sp, #0x28] - bl String_Delete - ldr r0, [sp, #0x24] - bl String_Delete - add sp, #0x2c - pop {r4, r5, r6, r7, pc} - .balign 4, 0 -_02233C14: .word 0x0001020F - thumb_func_end ov44_02233AB8 - - thumb_func_start ov44_02233C18 -ov44_02233C18: ; 0x02233C18 - push {r4, r5, lr} - sub sp, #0x1c - add r5, r0, #0 - mov r0, #0xa0 - add r4, r2, #0 - str r0, [sp] - mov r0, #0x10 - str r0, [sp, #4] - mov r0, #0x6f - lsl r0, r0, #2 - lsl r3, r4, #0x14 - add r0, r5, r0 - mov r1, #0xf - mov r2, #0 - lsr r3, r3, #0x10 - bl FillWindowPixelRect - mov r0, #0x79 - lsl r0, r0, #2 - ldr r0, [r5, r0] - mov r1, #2 - str r1, [sp] - add r2, r0, #0 - lsl r3, r4, #1 - add r3, r3, #5 - lsl r3, r3, #0x18 - str r1, [sp, #4] - add r2, #0xc - str r2, [sp, #8] - mov r2, #0 - str r2, [sp, #0xc] - str r2, [sp, #0x10] - ldrh r2, [r0] - lsr r3, r3, #0x18 - lsl r2, r2, #0x15 - lsr r2, r2, #0x18 - str r2, [sp, #0x14] - ldrh r0, [r0, #2] - mov r2, #0x12 - lsl r0, r0, #0x15 - lsr r0, r0, #0x18 - str r0, [sp, #0x18] - ldr r0, [r5] - bl CopyToBgTilemapRect - ldr r0, [r5] - mov r1, #2 - bl ScheduleBgTilemapBufferTransfer - mov r0, #0x6f - lsl r0, r0, #2 - add r0, r5, r0 - bl ScheduleWindowCopyToVram - add sp, #0x1c - pop {r4, r5, pc} - thumb_func_end ov44_02233C18 - - thumb_func_start ov44_02233C88 -ov44_02233C88: ; 0x02233C88 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r0, r2, #0 - add r4, r3, #0 - bl sub_02034818 - add r2, r0, #0 - ldr r0, [r5, #4] - add r1, r4, #0 - bl BufferPlayersName - pop {r3, r4, r5, pc} - thumb_func_end ov44_02233C88 - - thumb_func_start ov44_02233CA0 -ov44_02233CA0: ; 0x02233CA0 - push {r3, r4, r5, lr} - sub sp, #8 - add r5, r0, #0 - add r0, r2, #0 - add r4, r3, #0 - bl sub_02034818 - bl PlayerProfile_GetTrainerID_VisibleHalf - add r2, r0, #0 - mov r0, #2 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - ldr r0, [r5, #4] - add r1, r4, #0 - mov r3, #5 - bl BufferIntegerAsString - add sp, #8 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov44_02233CA0 - - thumb_func_start ov44_02233CCC -ov44_02233CCC: ; 0x02233CCC - push {r4, lr} - mov r1, #0x7d - add r4, r0, #0 - lsl r1, r1, #2 - ldrsh r2, [r4, r1] - cmp r2, #0 - bgt _02233CFC - add r1, r1, #2 - ldrsh r1, [r4, r1] - bl ov44_02233D08 - mov r0, #0x7d - mov r1, #3 - lsl r0, r0, #2 - strh r1, [r4, r0] - add r0, r0, #2 - ldrsh r0, [r4, r0] - mov r1, #0x12 - add r0, r0, #1 - bl _s32_div_f - ldr r0, _02233D04 ; =0x000001F6 - strh r1, [r4, r0] - pop {r4, pc} -_02233CFC: - sub r0, r2, #1 - strh r0, [r4, r1] - pop {r4, pc} - nop -_02233D04: .word 0x000001F6 - thumb_func_end ov44_02233CCC - - thumb_func_start ov44_02233D08 -ov44_02233D08: ; 0x02233D08 - push {r4, lr} - mov r2, #0x1f - add r3, r0, #0 - lsl r2, r2, #4 - ldr r2, [r3, r2] - add r4, r1, #0 - ldr r3, [r2, #0xc] - ldr r2, _02233D34 ; =ov44_0223663C - mov r0, #0xf - ldrb r2, [r2, r4] - mov r1, #0 - lsl r2, r2, #5 - add r2, r3, r2 - mov r3, #0x20 - bl GF_CreateNewVramTransferTask - cmp r0, #0 - bne _02233D30 - bl GF_AssertFail -_02233D30: - pop {r4, pc} - nop -_02233D34: .word ov44_0223663C - thumb_func_end ov44_02233D08 - - thumb_func_start ov44_02233D38 -ov44_02233D38: ; 0x02233D38 - push {r4, lr} - add r4, r0, #0 - ldr r2, [r4] - add r0, r2, #0 - add r0, #0x22 - ldrb r1, [r0] - mov r0, #1 - add r2, #0x22 - sub r0, r0, r1 - strb r0, [r2] - ldr r1, [r4] - add r0, r1, #0 - add r0, #0x22 - ldrb r0, [r0] - add r1, #0x21 - strb r0, [r1] - ldr r0, [r4] - add r0, #0x21 - ldrb r0, [r0] - bl ov00_021E70B8 - ldr r0, [r4] - mov r1, #0x24 - bl ov00_021E6D60 - ldr r0, [r4] - add r0, #0x21 - ldrb r0, [r0] - cmp r0, #1 - bne _02233D7C - add r0, r4, #0 - bl ov44_02233F3C - b _02233D82 -_02233D7C: - add r0, r4, #0 - bl ov44_02233F50 -_02233D82: - ldr r0, [r4] - add r0, #0x22 - ldrb r0, [r0] - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02233D38 - - thumb_func_start ov44_02233D8C -ov44_02233D8C: ; 0x02233D8C - push {r3, r4, r5, r6, r7, lr} - add r4, r0, #0 - ldrb r0, [r4, #4] - cmp r0, #0 - ldrb r0, [r4, #5] - beq _02233DC0 - add r0, #0xe5 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #2 - bls _02233E44 - bl sub_020390C4 - cmp r0, #2 - bgt _02233DD6 - add r0, r4, #0 - bl ov44_02233F64 - cmp r0, #1 - bgt _02233DD6 - add r0, r4, #0 - bl ov44_02233E6C - cmp r0, #0 - bne _02233DD6 - pop {r3, r4, r5, r6, r7, pc} -_02233DC0: - cmp r0, #0xf - beq _02233E44 - cmp r0, #0x10 - beq _02233E44 - cmp r0, #0x11 - beq _02233E44 - add r0, #0xfa - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #1 - bls _02233E44 -_02233DD6: - add r0, r4, #0 - bl ov44_02234458 - add r6, r0, #0 - add r0, r4, #0 - bl ov44_02234044 - add r7, r0, #0 - add r0, r4, #0 - bl ov44_02233F64 - add r5, r0, #0 - bl sub_02037454 - cmp r5, r0 - ble _02233DFA - mov r5, #1 - b _02233DFC -_02233DFA: - mov r5, #0 -_02233DFC: - bl sub_020390C4 - cmp r0, #3 - bge _02233E34 - bl sub_020393C8 - cmp r0, #0 - bne _02233E34 - bl sub_02039264 - cmp r0, #0 - bne _02233E34 - mov r0, #0 - bl sub_020373B4 - cmp r0, #0 - beq _02233E34 - add r0, r4, #0 - bl ov44_02233E6C - cmp r0, #0 - beq _02233E34 - cmp r5, #1 - beq _02233E34 - cmp r6, #1 - beq _02233E34 - cmp r7, #1 - bne _02233E44 -_02233E34: - ldrb r0, [r4, #4] - cmp r0, #0 - beq _02233E40 - mov r0, #0x1b - strb r0, [r4, #5] - pop {r3, r4, r5, r6, r7, pc} -_02233E40: - mov r0, #0xf - strb r0, [r4, #5] -_02233E44: - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end ov44_02233D8C - - thumb_func_start ov44_02233E48 -ov44_02233E48: ; 0x02233E48 - push {r4, lr} - add r4, r0, #0 - bl sub_020390C4 - cmp r0, #3 - bgt _02233E64 - bl sub_02039264 - cmp r0, #0 - bne _02233E64 - bl sub_020393C8 - cmp r0, #0 - beq _02233E68 -_02233E64: - mov r0, #0xf - strb r0, [r4, #5] -_02233E68: - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02233E48 - - thumb_func_start ov44_02233E6C -ov44_02233E6C: ; 0x02233E6C - push {r3, lr} - bl sub_02037454 - cmp r0, #0 - ble _02233E7A - mov r0, #1 - pop {r3, pc} -_02233E7A: - mov r0, #0 - pop {r3, pc} - .balign 4, 0 - thumb_func_end ov44_02233E6C - - thumb_func_start ov44_02233E80 -ov44_02233E80: ; 0x02233E80 - push {r3, r4, r5, lr} - add r4, r1, #0 - bl sub_02039080 - add r5, r0, #0 - cmp r5, #1 - bne _02233EB0 - cmp r4, #3 - bhi _02233EB0 - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02233E9E: ; jump table - .short _02233EA6 - _02233E9E - 2 ; case 0 - .short _02233EAC - _02233E9E - 2 ; case 1 - .short _02233EAC - _02233E9E - 2 ; case 2 - .short _02233EAC - _02233E9E - 2 ; case 3 -_02233EA6: - bl sub_02039AF8 - b _02233EB0 -_02233EAC: - bl sub_02039B18 -_02233EB0: - add r0, r5, #0 - pop {r3, r4, r5, pc} - thumb_func_end ov44_02233E80 - - thumb_func_start ov44_02233EB4 -ov44_02233EB4: ; 0x02233EB4 - ldrb r1, [r1] - cmp r1, #3 - bhi _02233EEC - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02233EC6: ; jump table - .short _02233ECE - _02233EC6 - 2 ; case 0 - .short _02233ED6 - _02233EC6 - 2 ; case 1 - .short _02233EDE - _02233EC6 - 2 ; case 2 - .short _02233EE6 - _02233EC6 - 2 ; case 3 -_02233ECE: - ldr r1, [r0] - mov r2, #0x12 - strb r2, [r1, #0x1b] - b _02233EEC -_02233ED6: - ldr r1, [r0] - mov r2, #0x16 - strb r2, [r1, #0x1b] - b _02233EEC -_02233EDE: - ldr r1, [r0] - mov r2, #0x18 - strb r2, [r1, #0x1b] - b _02233EEC -_02233EE6: - ldr r1, [r0] - mov r2, #0x1a - strb r2, [r1, #0x1b] -_02233EEC: - ldr r3, _02233EF4 ; =ov00_021E6D60 - ldr r0, [r0] - mov r1, #0x24 - bx r3 - .balign 4, 0 -_02233EF4: .word ov00_021E6D60 - thumb_func_end ov44_02233EB4 - - thumb_func_start ov44_02233EF8 -ov44_02233EF8: ; 0x02233EF8 - push {r4, lr} - add r4, r0, #0 - ldrb r1, [r4, #0x11] - cmp r1, #1 - bne _02233F06 - mov r0, #0 - pop {r4, pc} -_02233F06: - bl ov44_02233E6C - cmp r0, #1 - bne _02233F1A - mov r0, #0x68 - bl ov00_021E69A8 - mov r0, #1 - strb r0, [r4, #0x11] - pop {r4, pc} -_02233F1A: - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02233EF8 - - thumb_func_start ov44_02233F20 -ov44_02233F20: ; 0x02233F20 - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #0x11] - cmp r0, #0 - bne _02233F2E - mov r0, #0 - pop {r4, pc} -_02233F2E: - bl ov00_021E6A4C - mov r0, #0 - strb r0, [r4, #0x11] - mov r0, #1 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02233F20 - - thumb_func_start ov44_02233F3C -ov44_02233F3C: ; 0x02233F3C - push {r3, lr} - bl ov44_02233EF8 - cmp r0, #0 - beq _02233F4E - bl GF_GetCurrentPlayingBGM - bl sub_02005448 -_02233F4E: - pop {r3, pc} - thumb_func_end ov44_02233F3C - - thumb_func_start ov44_02233F50 -ov44_02233F50: ; 0x02233F50 - push {r3, lr} - bl ov44_02233F20 - cmp r0, #0 - beq _02233F62 - mov r0, #0 - mov r1, #0x78 - bl GF_SndHandleSetInitialVolume -_02233F62: - pop {r3, pc} - thumb_func_end ov44_02233F50 - - thumb_func_start ov44_02233F64 -ov44_02233F64: ; 0x02233F64 - ldr r3, _02233F68 ; =sub_020347A0 - bx r3 - .balign 4, 0 -_02233F68: .word sub_020347A0 - thumb_func_end ov44_02233F64 - - thumb_func_start ov44_02233F6C -ov44_02233F6C: ; 0x02233F6C - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r6, r1, #0 - mov r7, #1 - bl sub_0203769C - sub r4, r0, #1 - bmi _02233FA2 -_02233F7C: - add r0, r4, #0 - bl sub_02034714 - cmp r0, #1 - bne _02233F92 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov44_022340BC - b _02233F9E -_02233F92: - add r0, r4, #0 - bl sub_02034750 - cmp r0, #0 - bne _02233F9E - mov r7, #0 -_02233F9E: - sub r4, r4, #1 - bpl _02233F7C -_02233FA2: - add r0, r7, #0 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end ov44_02233F6C - - thumb_func_start ov44_02233FA8 -ov44_02233FA8: ; 0x02233FA8 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - mov r0, #0 - str r0, [sp, #4] - mov r5, #1 - mov r6, #0x16 - add r7, sp, #0 - add r4, sp, #0 -_02233FB8: - add r0, r5, #0 - bl sub_02034714 - cmp r0, #1 - bne _02233FDC - add r0, r6, #0 - add r1, r7, #0 - mov r2, #8 - strh r5, [r4] - bl sub_02037030 - cmp r0, #1 - beq _02233FD6 - bl GF_AssertFail -_02233FD6: - add r0, r5, #0 - bl sub_020346E8 -_02233FDC: - add r5, r5, #1 - cmp r5, #4 - blt _02233FB8 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end ov44_02233FA8 - - thumb_func_start ov44_02233FE8 -ov44_02233FE8: ; 0x02233FE8 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - mov r0, #0 - str r0, [sp, #4] - mov r5, #1 - mov r6, #0x16 - add r7, sp, #0 - add r4, sp, #0 -_02233FF8: - add r0, r5, #0 - bl sub_02034730 - cmp r0, #1 - bne _0223401C - add r0, r6, #0 - add r1, r7, #0 - mov r2, #8 - strh r5, [r4] - bl sub_02037030 - cmp r0, #1 - beq _02234016 - bl GF_AssertFail -_02234016: - add r0, r5, #0 - bl sub_020346E8 -_0223401C: - add r5, r5, #1 - cmp r5, #4 - blt _02233FF8 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end ov44_02233FE8 - - thumb_func_start ov44_02234028 -ov44_02234028: ; 0x02234028 - ldr r3, _02234030 ; =ov00_021E5CA0 - add r1, r0, #0 - ldr r0, _02234034 ; =ov44_02234070 - bx r3 - .balign 4, 0 -_02234030: .word ov00_021E5CA0 -_02234034: .word ov44_02234070 - thumb_func_end ov44_02234028 - - thumb_func_start ov44_02234038 -ov44_02234038: ; 0x02234038 - ldr r3, _02234040 ; =ov00_021E5CA0 - mov r0, #0 - add r1, r0, #0 - bx r3 - .balign 4, 0 -_02234040: .word ov00_021E5CA0 - thumb_func_end ov44_02234038 - - thumb_func_start ov44_02234044 -ov44_02234044: ; 0x02234044 - push {r3, r4, r5, r6, r7, lr} - mov r7, #0 - add r6, r0, #0 - add r4, r7, #0 -_0223404C: - add r5, r6, r4 - ldrb r0, [r5, #0x14] - cmp r0, #1 - bne _02234066 - ldrb r0, [r5, #0x18] - bl sub_02034750 - cmp r0, #1 - bne _02234060 - mov r7, #1 -_02234060: - mov r0, #0 - strb r0, [r5, #0x14] - strb r0, [r5, #0x18] -_02234066: - add r4, r4, #1 - cmp r4, #4 - blt _0223404C - add r0, r7, #0 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov44_02234044 - - thumb_func_start ov44_02234070 -ov44_02234070: ; 0x02234070 - mov r2, #1 - add r1, r1, r0 - strb r2, [r1, #0x14] - strb r0, [r1, #0x18] - bx lr - .balign 4, 0 - thumb_func_end ov44_02234070 - - thumb_func_start ov44_0223407C -ov44_0223407C: ; 0x0223407C - push {r3, r4, r5, r6} - mov r4, #0 - add r3, r4, #0 - mov r2, #1 -_02234084: - add r6, r0, r3 - add r1, r6, #0 - add r1, #0x20 - ldrb r5, [r1] - ldrb r1, [r6, #0x1c] - cmp r1, r5 - beq _02234094 - add r4, r2, #0 -_02234094: - add r3, r3, #1 - strb r5, [r6, #0x1c] - cmp r3, #4 - blt _02234084 - add r1, r0, #0 - add r1, #0x24 - ldrb r1, [r1] - cmp r1, #0 - beq _022340AE - mov r1, #0 - add r0, #0x24 - strb r1, [r0] - mov r4, #1 -_022340AE: - add r0, r4, #0 - pop {r3, r4, r5, r6} - bx lr - thumb_func_end ov44_0223407C - - thumb_func_start ov44_022340B4 -ov44_022340B4: ; 0x022340B4 - mov r1, #1 - add r0, #0x24 - strb r1, [r0] - bx lr - thumb_func_end ov44_022340B4 - - thumb_func_start ov44_022340BC -ov44_022340BC: ; 0x022340BC - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - add r0, r4, #0 - add r6, r2, #0 - bl sub_02034750 - cmp r0, #0 - bne _022340EA - add r0, r4, #0 - bl sub_0203476C - add r0, r5, #0 - add r0, #0x25 - strb r4, [r0] - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov44_022340EC - add r0, r5, #0 - bl ov44_022340B4 -_022340EA: - pop {r4, r5, r6, pc} - thumb_func_end ov44_022340BC - - thumb_func_start ov44_022340EC -ov44_022340EC: ; 0x022340EC - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x10 - add r6, r1, #0 - add r5, r0, #0 - mov r0, #0xc - add r4, r6, #0 - mul r4, r0 - mov r0, #0x63 - lsl r0, r0, #2 - add r7, r5, r0 - ldr r0, [r7, r4] - str r2, [sp] - cmp r0, #0 - bne _022341B8 - ldr r1, _022341BC ; =ov44_02236510 - ldrh r2, [r1, r4] - add r0, r1, r4 - add r1, sp, #4 - strh r2, [r1] - ldrh r2, [r0, #2] - strh r2, [r1, #2] - ldrh r2, [r0, #4] - strh r2, [r1, #4] - ldrh r2, [r0, #6] - strh r2, [r1, #6] - ldrh r2, [r0, #8] - strh r2, [r1, #8] - ldrh r0, [r0, #0xa] - strh r0, [r1, #0xa] - bl sub_0203769C - cmp r6, r0 - beq _02234148 - add r0, r6, #0 - bl sub_02034818 - add r6, r0, #0 - bne _0223413C - bl GF_AssertFail -_0223413C: - add r0, r6, #0 - bl PlayerProfile_GetAvatar - add r1, sp, #4 - strh r0, [r1, #0xa] - b _0223415C -_02234148: - ldr r0, [r5] - ldrb r0, [r0, #0x1e] - cmp r0, #0 - add r0, sp, #4 - bne _02234158 - mov r1, #0 - strh r1, [r0, #0xa] - b _0223415C -_02234158: - mov r1, #0x61 - strh r1, [r0, #0xa] -_0223415C: - mov r0, #0x61 - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r1, sp, #4 - bl ov42_022280B8 - str r0, [r7, r4] - mov r0, #0x62 - add r1, sp, #4 - lsl r0, r0, #2 - ldrh r1, [r1, #0xa] - ldr r0, [r5, r0] - bl ov42_02229010 - cmp r0, #0 - bne _0223418E - mov r0, #0x62 - add r1, sp, #4 - lsl r0, r0, #2 - ldrh r1, [r1, #0xa] - ldr r0, [r5, r0] - ldr r3, [sp] - mov r2, #2 - bl ov42_02228FE0 -_0223418E: - mov r0, #0x19 - lsl r0, r0, #4 - add r6, r5, r0 - sub r0, #8 - ldr r0, [r5, r0] - ldr r1, [r7, r4] - ldr r3, [sp] - mov r2, #0 - bl ov42_0222903C - str r0, [r6, r4] - ldr r0, [r6, r4] - mov r1, #0 - bl ov42_02229200 - mov r0, #0x65 - lsl r0, r0, #2 - add r1, r5, r0 - ldrh r0, [r1, r4] - add r0, r0, #1 - strh r0, [r1, r4] -_022341B8: - add sp, #0x10 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_022341BC: .word ov44_02236510 - thumb_func_end ov44_022340EC - - thumb_func_start ov44_022341C0 -ov44_022341C0: ; 0x022341C0 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - mov r0, #0x63 - lsl r0, r0, #2 - mov r6, #0 - add r4, r7, r0 - add r5, r7, #0 -_022341CE: - mov r2, #0x65 - lsl r2, r2, #2 - ldrh r2, [r5, r2] - add r0, r7, #0 - add r1, r4, #0 - lsl r3, r2, #2 - ldr r2, _02234200 ; =ov44_02236464 - ldr r2, [r2, r3] - blx r2 - add r6, r6, #1 - add r4, #0xc - add r5, #0xc - cmp r6, #4 - blt _022341CE - mov r0, #0x61 - lsl r0, r0, #2 - ldr r0, [r7, r0] - bl ov42_0222807C - mov r0, #0x62 - lsl r0, r0, #2 - ldr r0, [r7, r0] - bl ov42_022290DC - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 -_02234200: .word ov44_02236464 - thumb_func_end ov44_022341C0 - - thumb_func_start ov44_02234204 -ov44_02234204: ; 0x02234204 - push {r4, lr} - add r4, r0, #0 - mov r0, #0x62 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl ov42_0222901C - mov r0, #0x63 - lsl r0, r0, #2 - add r0, r4, r0 - mov r1, #0 - mov r2, #0x30 - bl memset - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02234204 - - thumb_func_start ov44_02234224 -ov44_02234224: ; 0x02234224 - push {r3, lr} - sub sp, #8 - add r0, sp, #0 - strh r1, [r0] - mov r0, #2 - str r0, [sp, #4] - mov r0, #0x16 - add r1, sp, #0 - mov r2, #8 - bl sub_02037030 - cmp r0, #1 - beq _02234242 - bl GF_AssertFail -_02234242: - add sp, #8 - pop {r3, pc} - .balign 4, 0 - thumb_func_end ov44_02234224 - - thumb_func_start ov44_02234248 -ov44_02234248: ; 0x02234248 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r4, #0 -_0223424E: - add r0, r5, #0 - add r0, #0x25 - ldrb r0, [r0] - add r0, r0, #1 - cmp r0, r4 - bge _02234272 - add r0, r4, #0 - bl sub_02034714 - cmp r0, #1 - bne _02234272 - add r0, r5, #0 - add r1, r4, #0 - bl ov44_02234224 - add r0, r4, #0 - bl sub_020346E8 -_02234272: - add r4, r4, #1 - cmp r4, #4 - blt _0223424E - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov44_02234248 - - thumb_func_start ov44_0223427C -ov44_0223427C: ; 0x0223427C - push {r3, r4, r5, r6, r7, lr} - mov r4, #0 - add r5, r0, #0 - add r6, r1, #0 - add r7, r4, #0 -_02234286: - add r0, r5, r4 - add r0, #0x28 - ldrb r0, [r0] - cmp r0, #1 - bne _022342AE - add r0, r4, #0 - bl sub_02034730 - cmp r0, #1 - bne _022342AE - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov44_022340BC - add r0, r5, r4 - add r0, #0x28 - strb r7, [r0] - mov r0, #1 - strb r0, [r5, #0x12] -_022342AE: - add r4, r4, #1 - cmp r4, #4 - blt _02234286 - pop {r3, r4, r5, r6, r7, pc} - .balign 4, 0 - thumb_func_end ov44_0223427C - - thumb_func_start ov44_022342B8 -ov44_022342B8: ; 0x022342B8 - push {r4, lr} - add r4, r0, #0 - mov r0, #0x86 - lsl r0, r0, #2 - ldr r0, [r4, r0] - cmp r0, #0 - beq _022342CA - bl GF_AssertFail -_022342CA: - mov r0, #0x6f - lsl r0, r0, #2 - add r0, r4, r0 - mov r1, #1 - bl WaitingIcon_New - mov r1, #0x86 - lsl r1, r1, #2 - str r0, [r4, r1] - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_022342B8 - - thumb_func_start ov44_022342E0 -ov44_022342E0: ; 0x022342E0 - push {r4, r5, r6, lr} - sub sp, #8 - add r5, r0, #0 - mov r0, #0x86 - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r4, r1, #0 - add r6, r2, #0 - cmp r0, #0 - beq _0223431E - bl sub_0200F450 - mov r0, #0x86 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r5, r0] - ldr r0, [r4, #8] - bl Save_PlayerData_GetOptionsAddr - bl Options_GetFrame - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp] - str r6, [sp, #4] - mov r1, #1 - ldr r0, [r5, #0x30] - add r2, r1, #0 - mov r3, #2 - bl LoadUserFrameGfx2 -_0223431E: - add sp, #8 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_022342E0 - - thumb_func_start ov44_02234324 -ov44_02234324: ; 0x02234324 - bx lr - .balign 4, 0 - thumb_func_end ov44_02234324 - - thumb_func_start ov44_02234328 -ov44_02234328: ; 0x02234328 - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #4] - mov r1, #0 - bl ov42_0222919C - ldr r0, [r4, #4] - bl ov42_022291A0 - ldr r0, [r4, #4] - mov r1, #1 - bl ov42_02229200 - mov r0, #2 - strh r0, [r4, #8] - ldr r0, [r4] - mov r1, #6 - bl ov42_02228188 - ldr r1, _02234358 ; =ov44_02236458 - ldrb r0, [r1, r0] - add r0, #0x10 - strh r0, [r4, #0xa] - pop {r4, pc} - .balign 4, 0 -_02234358: .word ov44_02236458 - thumb_func_end ov44_02234328 - - thumb_func_start ov44_0223435C -ov44_0223435C: ; 0x0223435C - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #4] - bl ov42_022291AC - mov r0, #0xa - ldrsh r1, [r4, r0] - sub r1, r1, #1 - strh r1, [r4, #0xa] - ldrsh r0, [r4, r0] - cmp r0, #0 - bgt _02234386 - ldr r0, [r4, #4] - bl ov42_022291B8 - ldr r0, [r4, #4] - mov r1, #1 - bl ov42_0222919C - mov r0, #3 - strh r0, [r4, #8] -_02234386: - pop {r4, pc} - thumb_func_end ov44_0223435C - - thumb_func_start ov44_02234388 -ov44_02234388: ; 0x02234388 - bx lr - .balign 4, 0 - thumb_func_end ov44_02234388 - - thumb_func_start ov44_0223438C -ov44_0223438C: ; 0x0223438C - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r5, r0, #0 - mov r0, #0 - str r0, [sp] - bl sub_02034420 - cmp r0, #0 - beq _02234428 - bl sub_020347A0 - add r7, r0, #0 - bl sub_020346D4 - cmp r0, #0 - beq _022343BA - mov r0, #5 - bl sub_02037824 - cmp r0, #0 - bne _022343BA - mov r0, #1 - str r0, [sp] -_022343BA: - mov r4, #0 - cmp r7, #0 - ble _02234402 -_022343C0: - cmp r4, #0 - bne _022343CC - ldr r0, [r5] - add r0, #0x21 - ldrb r0, [r0] - b _022343E8 -_022343CC: - add r0, r4, #0 - bl sub_02034870 - add r6, r0, #0 - cmp r6, #0x20 - bne _022343DC - bl GF_AssertFail -_022343DC: - mov r0, #0x24 - ldr r1, [r5] - mul r0, r6 - add r0, r1, r0 - add r0, #0x45 - ldrb r0, [r0] -_022343E8: - add r1, r5, r4 - add r1, #0x20 - ldrb r1, [r1] - cmp r0, r1 - beq _022343F6 - mov r1, #1 - str r1, [sp] -_022343F6: - add r1, r5, r4 - add r1, #0x20 - add r4, r4, #1 - strb r0, [r1] - cmp r4, r7 - blt _022343C0 -_02234402: - ldr r0, [sp] - cmp r0, #1 - bne _02234428 - add r2, r5, #0 - add r5, #0x20 - ldrb r0, [r5] - add r1, sp, #4 - add r2, #0x20 - strb r0, [r1] - ldrb r0, [r2, #1] - strb r0, [r1, #1] - ldrb r0, [r2, #2] - strb r0, [r1, #2] - ldrb r0, [r2, #3] - mov r2, #4 - strb r0, [r1, #3] - mov r0, #0x18 - bl sub_02037030 -_02234428: - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov44_0223438C - - thumb_func_start ov44_0223442C -ov44_0223442C: ; 0x0223442C - push {r3, lr} - mov r0, #0xd - bl sub_02037B38 - cmp r0, #0 - beq _0223443C - mov r0, #1 - pop {r3, pc} -_0223443C: - mov r0, #0 - pop {r3, pc} - thumb_func_end ov44_0223442C - - thumb_func_start ov44_02234440 -ov44_02234440: ; 0x02234440 - mov r1, #1 - strb r1, [r0, #0x10] - ldr r1, _0223444C ; =0x00000708 - str r1, [r0, #0xc] - bx lr - nop -_0223444C: .word 0x00000708 - thumb_func_end ov44_02234440 - - thumb_func_start ov44_02234450 -ov44_02234450: ; 0x02234450 - mov r1, #0 - strb r1, [r0, #0x10] - bx lr - .balign 4, 0 - thumb_func_end ov44_02234450 - - thumb_func_start ov44_02234458 -ov44_02234458: ; 0x02234458 - ldrb r1, [r0, #0x10] - cmp r1, #0 - bne _02234462 - mov r0, #0 - bx lr -_02234462: - ldr r1, [r0, #0xc] - cmp r1, #0 - ble _02234470 - sub r1, r1, #1 - str r1, [r0, #0xc] - mov r0, #0 - bx lr -_02234470: - mov r0, #1 - bx lr - thumb_func_end ov44_02234458 - - thumb_func_start ov44_02234474 -ov44_02234474: ; 0x02234474 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r1, [r5] - add r4, r2, #0 - add r1, #0x21 - ldrb r1, [r1] - cmp r1, #1 - bne _02234488 - bl ov44_02233F3C -_02234488: - mov r0, #0 - bl ov00_021E7220 - mov r0, #0 - mov r1, #1 - bl sub_020398D4 - bl sub_0203769C - add r1, r0, #0 - add r0, r5, #0 - add r2, r4, #0 - bl ov44_022340EC - mov r0, #1 - strb r0, [r5, #5] - mov r0, #0 - pop {r3, r4, r5, pc} - thumb_func_end ov44_02234474 - - thumb_func_start ov44_022344AC -ov44_022344AC: ; 0x022344AC - push {r4, lr} - add r4, r0, #0 - add r3, r2, #0 - add r0, #0x30 - mov r2, #0x6b - bl ov44_02233860 - mov r0, #2 - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_022344AC - - thumb_func_start ov44_022344C4 -ov44_022344C4: ; 0x022344C4 - push {r4, r5, r6, lr} - sub sp, #8 - add r5, r0, #0 - add r0, #0x30 - add r6, r1, #0 - bl ov44_02233914 - cmp r0, #0 - bne _022344DC - add sp, #8 - mov r0, #0 - pop {r4, r5, r6, pc} -_022344DC: - add r0, r5, #0 - bl ov44_02233E6C - cmp r0, #1 - bne _02234522 - bl sub_02034780 - add r4, r0, #0 - cmp r4, #0xff - beq _02234522 - ldrb r1, [r5, #6] - cmp r1, #0 - beq _02234522 - bl sub_02034870 - cmp r0, #0x20 - bne _02234520 - add r0, sp, #0 - strh r4, [r0] - mov r0, #0 - str r0, [sp, #4] - add r0, r4, #0 - bl sub_020346E8 - mov r0, #0x16 - add r1, sp, #0 - mov r2, #8 - bl sub_02037030 - cmp r0, #1 - beq _02234522 - bl GF_AssertFail - b _02234522 -_02234520: - strb r4, [r5, #6] -_02234522: - ldr r0, _02234598 ; =gSystem - mov r1, #1 - ldr r0, [r0, #0x48] - tst r1, r0 - beq _0223455A - ldr r0, _0223459C ; =0x000005DD - bl PlaySE - add r0, r5, #0 - bl ov44_02233E6C - cmp r0, #0 - bne _02234542 - mov r0, #6 - strb r0, [r5, #5] - b _02234590 -_02234542: - add r0, r5, #0 - bl ov44_02233F64 - ldrb r1, [r6, #1] - cmp r1, r0 - bgt _02234554 - mov r0, #8 - strb r0, [r5, #5] - b _02234590 -_02234554: - mov r0, #6 - strb r0, [r5, #5] - b _02234590 -_0223455A: - mov r1, #2 - add r2, r0, #0 - tst r2, r1 - beq _0223456E - ldr r0, _0223459C ; =0x000005DD - bl PlaySE - mov r0, #0x16 - strb r0, [r5, #5] - b _02234590 -_0223456E: - ldrb r2, [r5, #6] - cmp r2, #0xff - beq _02234580 - ldr r0, _0223459C ; =0x000005DD - bl PlaySE - mov r0, #3 - strb r0, [r5, #5] - b _02234590 -_02234580: - lsl r1, r1, #9 - tst r0, r1 - beq _02234590 - mov r0, #0x1e - strb r0, [r5, #5] - ldr r0, _0223459C ; =0x000005DD - bl PlaySE -_02234590: - mov r0, #0 - add sp, #8 - pop {r4, r5, r6, pc} - nop -_02234598: .word gSystem -_0223459C: .word 0x000005DD - thumb_func_end ov44_022344C4 - - thumb_func_start ov44_022345A0 -ov44_022345A0: ; 0x022345A0 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r6, r2, #0 - ldrb r2, [r5, #6] - add r0, #0x30 - add r3, r6, #0 - add r4, r1, #0 - bl ov44_0223398C - add r0, r5, #0 - add r0, #0x30 - add r1, r4, #0 - mov r2, #0x6c - add r3, r6, #0 - bl ov44_02233860 - mov r0, #4 - strb r0, [r5, #5] - mov r0, #0 - pop {r4, r5, r6, pc} - thumb_func_end ov44_022345A0 - - thumb_func_start ov44_022345C8 -ov44_022345C8: ; 0x022345C8 - push {r3, r4, r5, lr} - add r4, r0, #0 - add r0, #0x30 - add r5, r2, #0 - bl ov44_02233914 - cmp r0, #0 - bne _022345DC - mov r0, #0 - pop {r3, r4, r5, pc} -_022345DC: - str r5, [sp] - ldr r0, [r4, #0x30] - ldr r1, _022345F8 ; =ov44_0223645C - mov r2, #0x30 - mov r3, #4 - bl Std_CreateYesNoMenu - mov r1, #0x83 - lsl r1, r1, #2 - str r0, [r4, r1] - mov r0, #5 - strb r0, [r4, #5] - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 -_022345F8: .word ov44_0223645C - thumb_func_end ov44_022345C8 - - thumb_func_start ov44_022345FC -ov44_022345FC: ; 0x022345FC - push {r4, r5, r6, lr} - sub sp, #8 - add r5, r0, #0 - mov r0, #0x83 - lsl r0, r0, #2 - add r6, r2, #0 - add r4, r1, #0 - ldr r0, [r5, r0] - add r1, r6, #0 - bl Handle2dMenuInput_DeleteOnFinish - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - beq _02234694 - ldrb r2, [r5, #6] - add r1, sp, #0 - cmp r0, #0 - strh r2, [r1] - bne _02234660 - mov r0, #1 - str r0, [sp, #4] - ldrb r1, [r5, #6] - add r0, r5, #0 - add r2, r6, #0 - bl ov44_022340BC - ldr r0, [r5] - add r0, #0x21 - ldrb r0, [r0] - cmp r0, #1 - bne _02234648 - add r0, r5, #0 - bl ov44_02233F20 - add r0, r5, #0 - bl ov44_02233F3C -_02234648: - add r0, r5, #0 - bl ov44_02233F64 - ldrb r1, [r4, #2] - cmp r1, r0 - bgt _0223465A - mov r0, #8 - strb r0, [r5, #5] - b _0223466E -_0223465A: - mov r0, #1 - strb r0, [r5, #5] - b _0223466E -_02234660: - mov r0, #0 - str r0, [sp, #4] - ldrb r0, [r5, #6] - bl sub_020346E8 - mov r0, #1 - strb r0, [r5, #5] -_0223466E: - mov r0, #0x16 - add r1, sp, #0 - mov r2, #8 - bl sub_02037030 - cmp r0, #1 - beq _02234680 - bl GF_AssertFail -_02234680: - mov r0, #0xff - strb r0, [r5, #6] - add r0, r5, #0 - add r0, #0x30 - bl ov44_02233A34 - mov r0, #0x83 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r5, r0] -_02234694: - mov r0, #0 - add sp, #8 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_022345FC - - thumb_func_start ov44_0223469C -ov44_0223469C: ; 0x0223469C - push {r4, lr} - add r4, r0, #0 - add r3, r2, #0 - add r0, #0x30 - mov r2, #0x77 - bl ov44_02233860 - mov r0, #7 - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_0223469C - - thumb_func_start ov44_022346B4 -ov44_022346B4: ; 0x022346B4 - push {r4, lr} - add r4, r0, #0 - add r0, #0x30 - bl ov44_02233914 - cmp r0, #0 - bne _022346C6 - mov r0, #0 - pop {r4, pc} -_022346C6: - mov r0, #0x13 - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_022346B4 - - thumb_func_start ov44_022346D0 -ov44_022346D0: ; 0x022346D0 - push {r4, lr} - add r4, r0, #0 - add r3, r2, #0 - add r0, #0x30 - mov r2, #0x6f - bl ov44_02233860 - mov r0, #9 - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_022346D0 - - thumb_func_start ov44_022346E8 -ov44_022346E8: ; 0x022346E8 - push {r3, r4, r5, lr} - add r4, r0, #0 - add r0, #0x30 - add r5, r2, #0 - bl ov44_02233914 - cmp r0, #0 - bne _022346FC - mov r0, #0 - pop {r3, r4, r5, pc} -_022346FC: - str r5, [sp] - ldr r0, [r4, #0x30] - ldr r1, _02234718 ; =ov44_0223645C - mov r2, #0x30 - mov r3, #4 - bl Std_CreateYesNoMenu - mov r1, #0x83 - lsl r1, r1, #2 - str r0, [r4, r1] - mov r0, #0xa - strb r0, [r4, #5] - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 -_02234718: .word ov44_0223645C - thumb_func_end ov44_022346E8 - - thumb_func_start ov44_0223471C -ov44_0223471C: ; 0x0223471C - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0x83 - lsl r0, r0, #2 - add r4, r1, #0 - ldr r0, [r5, r0] - add r1, r2, #0 - bl Handle2dMenuInput_DeleteOnFinish - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - beq _0223475E - cmp r0, #0 - bne _02234740 - mov r0, #0xb - strb r0, [r5, #5] - b _02234756 -_02234740: - add r0, r5, #0 - bl ov44_02233F64 - ldrb r1, [r4, #2] - cmp r1, r0 - bgt _02234752 - mov r0, #0x13 - strb r0, [r5, #5] - b _02234756 -_02234752: - mov r0, #1 - strb r0, [r5, #5] -_02234756: - mov r0, #0x83 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r5, r0] -_0223475E: - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov44_0223471C - - thumb_func_start ov44_02234764 -ov44_02234764: ; 0x02234764 - push {r4, r5, r6, lr} - add r4, r1, #0 - add r5, r0, #0 - mov r1, #0x1e - add r6, r2, #0 - str r1, [r5, #8] - bl ov44_02233FA8 - add r0, r5, #0 - add r0, #0x30 - add r1, r4, #0 - mov r2, #0x66 - add r3, r6, #0 - bl ov44_02233860 - add r0, r5, #0 - bl ov44_022342B8 - add r0, r5, #0 - bl ov44_02234440 - mov r0, #0xc - strb r0, [r5, #5] - bl ov00_021E7130 - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_02234764 - - thumb_func_start ov44_0223479C -ov44_0223479C: ; 0x0223479C - push {r3, r4, r5, lr} - add r4, r0, #0 - bl sub_02037454 - add r5, r0, #0 - bl sub_020347A0 - cmp r5, r0 - beq _022347B8 - add r0, r4, #0 - bl ov44_02233FA8 - mov r0, #0 - pop {r3, r4, r5, pc} -_022347B8: - bl ov00_021E70F4 - cmp r0, #0 - bne _022347C4 - mov r0, #0 - pop {r3, r4, r5, pc} -_022347C4: - mov r0, #1 - bl ov00_021E7220 - mov r0, #0xd - strb r0, [r4, #5] - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov44_0223479C - - thumb_func_start ov44_022347D4 -ov44_022347D4: ; 0x022347D4 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #8] - cmp r0, #0 - bne _022347F2 - mov r1, #0 - mov r0, #0x17 - add r2, r1, #0 - bl sub_02037030 - cmp r0, #0 - beq _022347F6 - mov r0, #0xe - strb r0, [r4, #5] - b _022347F6 -_022347F2: - sub r0, r0, #1 - str r0, [r4, #8] -_022347F6: - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_022347D4 - - thumb_func_start ov44_022347FC -ov44_022347FC: ; 0x022347FC - push {r3, r4, r5, lr} - add r4, r0, #0 - mov r0, #0xd - add r5, r1, #0 - bl sub_02037B38 - cmp r0, #0 - beq _02234822 - add r0, r4, #0 - add r1, r5, #0 - bl ov44_02233EB4 - bl sub_02037BEC - mov r0, #0xe - bl sub_02037AC0 - mov r0, #0xf - strb r0, [r4, #5] -_02234822: - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov44_022347FC - - thumb_func_start ov44_02234828 -ov44_02234828: ; 0x02234828 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - mov r0, #0xe - bl sub_02037B38 - cmp r0, #0 - beq _02234852 - ldr r0, [r4] - ldrb r1, [r0, #0x1b] - add r0, sp, #0 - strh r1, [r0] - bl sub_0203769C - add r1, sp, #0 - bl sub_02037C0C - cmp r0, #1 - bne _02234852 - mov r0, #0x10 - strb r0, [r4, #5] -_02234852: - mov r0, #0 - add sp, #4 - pop {r3, r4, pc} - thumb_func_end ov44_02234828 - - thumb_func_start ov44_02234858 -ov44_02234858: ; 0x02234858 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - bl ov44_02233F64 - add r7, r0, #0 - bl sub_0203769C - mov r5, #0 - add r4, r5, #0 - str r0, [sp] - cmp r7, #0 - ble _0223489C -_02234870: - ldr r0, [sp] - cmp r0, r4 - beq _02234894 - add r0, r4, #0 - bl sub_02037C44 - cmp r0, #0 - beq _02234896 - ldrh r1, [r0] - ldr r0, [r6] - ldrb r0, [r0, #0x1b] - cmp r1, r0 - bne _0223488E - add r5, r5, #1 - b _02234896 -_0223488E: - mov r0, #0x1b - strb r0, [r6, #5] - b _02234896 -_02234894: - add r5, r5, #1 -_02234896: - add r4, r4, #1 - cmp r4, r7 - blt _02234870 -_0223489C: - cmp r5, r7 - bne _022348A4 - mov r0, #0x11 - strb r0, [r6, #5] -_022348A4: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov44_02234858 - - thumb_func_start ov44_022348A8 -ov44_022348A8: ; 0x022348A8 - push {r4, lr} - add r4, r0, #0 - mov r0, #1 - add r1, r0, #0 - bl sub_020398D4 - mov r0, #0x12 - bl sub_02037AC0 - mov r0, #0x12 - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_022348A8 - - thumb_func_start ov44_022348C4 -ov44_022348C4: ; 0x022348C4 - push {r4, r5, r6, lr} - add r5, r0, #0 - mov r0, #0x12 - add r4, r1, #0 - add r6, r2, #0 - bl sub_02037B38 - cmp r0, #0 - beq _022348E8 - mov r0, #1 - strb r0, [r5, #7] - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov44_022342E0 - mov r0, #1 - pop {r4, r5, r6, pc} -_022348E8: - mov r0, #0 - pop {r4, r5, r6, pc} - thumb_func_end ov44_022348C4 - - thumb_func_start ov44_022348EC -ov44_022348EC: ; 0x022348EC - push {r4, lr} - add r4, r0, #0 - add r3, r2, #0 - add r0, #0x30 - mov r2, #0x78 - bl ov44_02233860 - mov r0, #0x14 - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_022348EC - - thumb_func_start ov44_02234904 -ov44_02234904: ; 0x02234904 - push {r3, r4, r5, lr} - sub sp, #8 - add r5, r0, #0 - add r0, #0x30 - add r4, r2, #0 - bl ov44_02233914 - cmp r0, #0 - bne _0223491C - add sp, #8 - mov r0, #0 - pop {r3, r4, r5, pc} -_0223491C: - mov r0, #1 - str r0, [sp] - str r4, [sp, #4] - ldr r0, [r5, #0x30] - ldr r1, _02234940 ; =ov44_0223645C - mov r2, #0x30 - mov r3, #4 - bl CreateYesNoMenu - mov r1, #0x83 - lsl r1, r1, #2 - str r0, [r5, r1] - mov r0, #0x15 - strb r0, [r5, #5] - mov r0, #0 - add sp, #8 - pop {r3, r4, r5, pc} - nop -_02234940: .word ov44_0223645C - thumb_func_end ov44_02234904 - - thumb_func_start ov44_02234944 -ov44_02234944: ; 0x02234944 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0x83 - lsl r0, r0, #2 - add r4, r1, #0 - ldr r0, [r5, r0] - add r1, r2, #0 - bl Handle2dMenuInput_DeleteOnFinish - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - beq _02234996 - cmp r0, #0 - bne _02234968 - mov r0, #0x16 - strb r0, [r5, #5] - b _0223498E -_02234968: - add r0, r5, #0 - bl ov44_02233E6C - cmp r0, #0 - beq _0223498A - add r0, r5, #0 - bl ov44_02233F64 - ldrb r1, [r4, #2] - cmp r1, r0 - bgt _02234984 - mov r0, #8 - strb r0, [r5, #5] - b _0223498E -_02234984: - mov r0, #1 - strb r0, [r5, #5] - b _0223498E -_0223498A: - mov r0, #1 - strb r0, [r5, #5] -_0223498E: - mov r0, #0x83 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r5, r0] -_02234996: - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov44_02234944 - - thumb_func_start ov44_0223499C -ov44_0223499C: ; 0x0223499C - push {r4, lr} - add r4, r0, #0 - add r3, r2, #0 - add r0, #0x30 - mov r2, #0x79 - bl ov44_02233860 - mov r0, #0x17 - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_0223499C - - thumb_func_start ov44_022349B4 -ov44_022349B4: ; 0x022349B4 - push {r3, r4, r5, lr} - sub sp, #8 - add r5, r0, #0 - add r0, #0x30 - add r4, r2, #0 - bl ov44_02233914 - cmp r0, #0 - bne _022349CC - add sp, #8 - mov r0, #0 - pop {r3, r4, r5, pc} -_022349CC: - mov r0, #1 - str r0, [sp] - str r4, [sp, #4] - ldr r0, [r5, #0x30] - ldr r1, _022349F0 ; =ov44_0223645C - mov r2, #0x30 - mov r3, #4 - bl CreateYesNoMenu - mov r1, #0x83 - lsl r1, r1, #2 - str r0, [r5, r1] - mov r0, #0x18 - strb r0, [r5, #5] - mov r0, #0 - add sp, #8 - pop {r3, r4, r5, pc} - nop -_022349F0: .word ov44_0223645C - thumb_func_end ov44_022349B4 - - thumb_func_start ov44_022349F4 -ov44_022349F4: ; 0x022349F4 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0x83 - lsl r0, r0, #2 - add r4, r1, #0 - ldr r0, [r5, r0] - add r1, r2, #0 - bl Handle2dMenuInput_DeleteOnFinish - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - beq _02234A46 - cmp r0, #0 - bne _02234A18 - mov r0, #0x19 - strb r0, [r5, #5] - b _02234A3E -_02234A18: - add r0, r5, #0 - bl ov44_02233E6C - cmp r0, #0 - beq _02234A3A - add r0, r5, #0 - bl ov44_02233F64 - ldrb r1, [r4, #2] - cmp r1, r0 - bgt _02234A34 - mov r0, #8 - strb r0, [r5, #5] - b _02234A3E -_02234A34: - mov r0, #1 - strb r0, [r5, #5] - b _02234A3E -_02234A3A: - mov r0, #1 - strb r0, [r5, #5] -_02234A3E: - mov r0, #0x83 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r5, r0] -_02234A46: - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov44_022349F4 - - thumb_func_start ov44_02234A4C -ov44_02234A4C: ; 0x02234A4C - push {r4, lr} - add r4, r0, #0 - add r3, r2, #0 - add r0, #0x30 - mov r2, #0x7a - bl ov44_02233860 - mov r0, #0x1e - str r0, [r4, #8] - mov r0, #0x1a - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02234A4C - - thumb_func_start ov44_02234A68 -ov44_02234A68: ; 0x02234A68 - push {r4, lr} - add r4, r0, #0 - add r0, #0x30 - bl ov44_02233914 - cmp r0, #0 - bne _02234A7A - mov r0, #0 - pop {r4, pc} -_02234A7A: - ldr r0, [r4, #8] - sub r0, r0, #1 - str r0, [r4, #8] - cmp r0, #0 - ble _02234A88 - mov r0, #0 - pop {r4, pc} -_02234A88: - mov r0, #0 - strb r0, [r4, #7] - bl sub_02039358 - add r0, r4, #0 - bl ov44_02233FE8 - bl sub_02039B58 - mov r0, #0 - mov r1, #1 - bl sub_020398D4 - mov r0, #1 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02234A68 - - thumb_func_start ov44_02234AA8 -ov44_02234AA8: ; 0x02234AA8 - push {r4, r5, r6, lr} - add r5, r0, #0 - mov r0, #0x83 - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r6, r1, #0 - add r4, r2, #0 - cmp r0, #0 - beq _02234AC8 - add r1, r4, #0 - bl Clear2dMenuWindowAndDelete - mov r0, #0x83 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r5, r0] -_02234AC8: - add r0, r5, #0 - add r0, #0x30 - bl ov44_02233A34 - add r0, r5, #0 - add r1, r6, #0 - add r2, r4, #0 - bl ov44_022342E0 - mov r0, #0x1c - strb r0, [r5, #5] - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_02234AA8 - - thumb_func_start ov44_02234AE4 -ov44_02234AE4: ; 0x02234AE4 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r3, r2, #0 - add r0, #0x30 - mov r2, #0x76 - add r4, r1, #0 - bl ov44_02233860 - mov r0, #0x1d - strb r0, [r5, #5] - add r0, r5, #0 - bl ov44_02233FE8 - add r0, r5, #0 - add r1, r4, #0 - bl ov44_02233EB4 - bl sub_020390C4 - sub r0, r0, #4 - cmp r0, #1 - bhi _02234B14 - bl ov00_021EDB1C -_02234B14: - mov r0, #0 - pop {r3, r4, r5, pc} - thumb_func_end ov44_02234AE4 - - thumb_func_start ov44_02234B18 -ov44_02234B18: ; 0x02234B18 - push {r4, lr} - add r4, r0, #0 - bl sub_020390C4 - sub r0, r0, #4 - cmp r0, #1 - bhi _02234B2A - bl ov00_021EDB1C -_02234B2A: - add r0, r4, #0 - add r0, #0x30 - bl ov44_02233914 - cmp r0, #0 - bne _02234B3A - mov r0, #0 - pop {r4, pc} -_02234B3A: - bl sub_02039358 - bl sub_02039B58 - add r0, r4, #0 - bl ov44_02233FE8 - mov r0, #0 - mov r1, #1 - strb r0, [r4, #7] - bl sub_020398D4 - mov r0, #1 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02234B18 - - thumb_func_start ov44_02234B58 -ov44_02234B58: ; 0x02234B58 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4] - add r3, r2, #0 - add r0, #0x21 - ldrb r0, [r0] - cmp r0, #1 - bne _02234B6C - mov r2, #0x7d - b _02234B6E -_02234B6C: - mov r2, #0x7c -_02234B6E: - add r0, r4, #0 - add r0, #0x30 - bl ov44_02233860 - mov r0, #0x1f - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02234B58 - - thumb_func_start ov44_02234B80 -ov44_02234B80: ; 0x02234B80 - push {r3, r4, r5, lr} - add r4, r0, #0 - add r0, #0x30 - add r5, r2, #0 - bl ov44_02233914 - cmp r0, #0 - bne _02234B94 - mov r0, #0 - pop {r3, r4, r5, pc} -_02234B94: - str r5, [sp] - ldr r0, [r4, #0x30] - ldr r1, _02234BB0 ; =ov44_0223645C - mov r2, #0x30 - mov r3, #4 - bl Std_CreateYesNoMenu - mov r1, #0x83 - lsl r1, r1, #2 - str r0, [r4, r1] - mov r0, #0x20 - strb r0, [r4, #5] - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 -_02234BB0: .word ov44_0223645C - thumb_func_end ov44_02234B80 - - thumb_func_start ov44_02234BB4 -ov44_02234BB4: ; 0x02234BB4 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0x83 - lsl r0, r0, #2 - add r4, r2, #0 - ldr r0, [r5, r0] - add r1, r4, #0 - bl Handle2dMenuInput_DeleteOnFinish - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - beq _02234BEC - cmp r0, #0 - bne _02234BE0 - add r0, r5, #0 - add r1, r4, #0 - bl ov44_02233D38 - add r0, r5, #0 - bl ov44_022340B4 -_02234BE0: - mov r0, #1 - strb r0, [r5, #5] - mov r0, #0x83 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r5, r0] -_02234BEC: - mov r0, #0 - pop {r3, r4, r5, pc} - thumb_func_end ov44_02234BB4 - - thumb_func_start ov44_02234BF0 -ov44_02234BF0: ; 0x02234BF0 - push {r4, lr} - add r4, r0, #0 - bl sub_02034434 - mov r0, #0 - mov r1, #1 - bl sub_020398D4 - add r0, r4, #0 - bl ov44_02234440 - mov r0, #1 - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02234BF0 - - thumb_func_start ov44_02234C10 -ov44_02234C10: ; 0x02234C10 - push {r4, lr} - add r1, r2, #0 - add r4, r0, #0 - bl ov44_02233F6C - mov r0, #0 - bl sub_020373B4 - cmp r0, #0 - bne _02234C30 - add r0, r4, #0 - bl ov44_02234450 - mov r0, #0xf - strb r0, [r4, #5] - b _02234C44 -_02234C30: - mov r0, #0 - bl sub_02034750 - cmp r0, #0 - beq _02234C44 - add r0, r4, #0 - bl ov44_02234450 - mov r0, #2 - strb r0, [r4, #5] -_02234C44: - mov r0, #0 - pop {r4, pc} - thumb_func_end ov44_02234C10 - - thumb_func_start ov44_02234C48 -ov44_02234C48: ; 0x02234C48 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r6, r2, #0 - add r4, r1, #0 - add r5, r0, #0 - add r1, r6, #0 - bl ov44_02233F6C - add r0, r5, #0 - mov r2, #0 - add r0, #0x30 - add r1, r4, #0 - add r3, r2, #0 - str r6, [sp] - bl ov44_02233C88 - add r0, r5, #0 - add r0, #0x30 - add r1, r4, #0 - mov r2, #0x72 - add r3, r6, #0 - bl ov44_02233860 - add r0, r5, #0 - bl ov44_022342B8 - mov r0, #3 - strb r0, [r5, #5] - mov r0, #0 - add sp, #4 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_02234C48 - - thumb_func_start ov44_02234C88 -ov44_02234C88: ; 0x02234C88 - push {r4, r5, r6, lr} - add r6, r2, #0 - add r4, r1, #0 - add r5, r0, #0 - add r1, r6, #0 - bl ov44_02233F6C - add r0, r5, #0 - add r0, #0x30 - bl ov44_02233914 - cmp r0, #0 - bne _02234CA6 - mov r0, #0 - pop {r4, r5, r6, pc} -_02234CA6: - ldrb r0, [r5, #0x13] - cmp r0, #0 - beq _02234CE2 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov44_022342E0 - ldrb r0, [r5, #0x13] - cmp r0, #1 - beq _02234CC6 - cmp r0, #2 - beq _02234CCC - cmp r0, #3 - beq _02234CD8 - b _02234CE2 -_02234CC6: - mov r0, #4 - strb r0, [r5, #5] - b _02234CE2 -_02234CCC: - mov r0, #6 - strb r0, [r5, #5] - mov r0, #0x74 - add r5, #0x2d - strb r0, [r5] - b _02234CE2 -_02234CD8: - mov r0, #6 - strb r0, [r5, #5] - mov r0, #0x84 - add r5, #0x2d - strb r0, [r5] -_02234CE2: - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_02234C88 - - thumb_func_start ov44_02234CE8 -ov44_02234CE8: ; 0x02234CE8 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r4, r2, #0 - mov r2, #0 - add r5, r0, #0 - add r0, #0x30 - add r3, r2, #0 - add r6, r1, #0 - str r4, [sp] - bl ov44_02233C88 - add r0, r5, #0 - add r0, #0x30 - add r1, r6, #0 - mov r2, #0x73 - mov r3, #0x1e - str r4, [sp] - bl ov44_0223386C - mov r0, #5 - strb r0, [r5, #5] - bl sub_0203769C - add r1, r0, #0 - add r0, r5, #0 - mov r2, #0x67 - bl ov44_022340BC - mov r0, #0 - add sp, #4 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_02234CE8 - - thumb_func_start ov44_02234D28 -ov44_02234D28: ; 0x02234D28 - push {r4, lr} - add r4, r0, #0 - add r1, r2, #0 - bl ov44_02233F6C - add r0, r4, #0 - add r0, #0x30 - bl ov44_02233914 - cmp r0, #0 - bne _02234D42 - mov r0, #0 - pop {r4, pc} -_02234D42: - mov r0, #8 - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02234D28 - - thumb_func_start ov44_02234D4C -ov44_02234D4C: ; 0x02234D4C - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r6, r2, #0 - mov r2, #0 - add r5, r0, #0 - add r0, #0x30 - add r3, r2, #0 - add r4, r1, #0 - str r6, [sp] - bl ov44_02233C88 - add r2, r5, #0 - add r2, #0x2d - add r0, r5, #0 - ldrb r2, [r2] - add r0, #0x30 - add r1, r4, #0 - add r3, r6, #0 - bl ov44_02233860 - mov r0, #7 - strb r0, [r5, #5] - bl sub_02039358 - bl sub_02039B58 - mov r0, #0 - add sp, #4 - pop {r3, r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_02234D4C - - thumb_func_start ov44_02234D88 -ov44_02234D88: ; 0x02234D88 - push {r4, lr} - add r4, r0, #0 - add r0, #0x30 - bl ov44_02233914 - cmp r0, #0 - bne _02234D9A - mov r0, #0 - pop {r4, pc} -_02234D9A: - mov r0, #0 - mov r1, #1 - strb r0, [r4, #7] - bl sub_020398D4 - mov r0, #1 - pop {r4, pc} - thumb_func_end ov44_02234D88 - - thumb_func_start ov44_02234DA8 -ov44_02234DA8: ; 0x02234DA8 - push {r4, r5, r6, lr} - add r6, r2, #0 - add r4, r1, #0 - add r5, r0, #0 - add r1, r6, #0 - bl ov44_02233F6C - add r0, r5, #0 - add r0, #0x30 - add r1, r4, #0 - mov r2, #0x7b - add r3, r6, #0 - bl ov44_02233860 - add r0, r5, #0 - bl ov44_022342B8 - mov r0, #9 - strb r0, [r5, #5] - ldr r0, [r5] - add r0, #0x21 - ldrb r0, [r0] - cmp r0, #1 - bne _02234DDE - add r0, r5, #0 - bl ov44_02233F3C -_02234DDE: - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_02234DA8 - - thumb_func_start ov44_02234DE4 -ov44_02234DE4: ; 0x02234DE4 - push {r4, lr} - add r4, r0, #0 - add r1, r2, #0 - bl ov44_02233F6C - add r0, r4, #0 - add r0, #0x30 - bl ov44_02233914 - cmp r0, #0 - bne _02234DFE - mov r0, #0 - pop {r4, pc} -_02234DFE: - mov r0, #0xa - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02234DE4 - - thumb_func_start ov44_02234E08 -ov44_02234E08: ; 0x02234E08 - push {r4, r5, r6, lr} - add r6, r2, #0 - add r4, r1, #0 - add r5, r0, #0 - add r1, r6, #0 - bl ov44_02233F6C - ldrb r0, [r5, #0x12] - cmp r0, #0 - beq _02234E3C - mov r0, #0 - strb r0, [r5, #0x12] - ldr r0, [r5] - add r0, #0x21 - ldrb r0, [r0] - cmp r0, #1 - bne _02234E36 - add r0, r5, #0 - bl ov44_02233F20 - add r0, r5, #0 - bl ov44_02233F3C -_02234E36: - add r0, r5, #0 - bl ov44_022340B4 -_02234E3C: - add r0, r5, #0 - bl ov44_0223442C - cmp r0, #1 - bne _02234E80 - bl sub_02037BEC - mov r0, #0xe - bl sub_02037AC0 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov44_022342E0 - add r0, r5, #0 - add r0, #0x30 - add r1, r4, #0 - mov r2, #0x66 - add r3, r6, #0 - bl ov44_02233860 - add r0, r5, #0 - bl ov44_02234440 - mov r0, #0x4b - lsl r0, r0, #2 - str r0, [r5, #8] - add r0, r5, #0 - bl ov44_022342B8 - mov r0, #0xb - strb r0, [r5, #5] - b _02234E9A -_02234E80: - ldr r0, _02234EA0 ; =gSystem - ldr r1, [r0, #0x48] - mov r0, #1 - lsl r0, r0, #0xa - tst r0, r1 - beq _02234E9A - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov44_022342E0 - mov r0, #0x12 - strb r0, [r5, #5] -_02234E9A: - mov r0, #0 - pop {r4, r5, r6, pc} - nop -_02234EA0: .word gSystem - thumb_func_end ov44_02234E08 - - thumb_func_start ov44_02234EA4 -ov44_02234EA4: ; 0x02234EA4 - push {r3, r4, r5, lr} - add r4, r0, #0 - mov r0, #0xe - bl sub_02037B38 - cmp r0, #0 - beq _02234EEE - ldr r0, [r4] - ldrb r1, [r0, #0x1b] - add r0, sp, #0 - strh r1, [r0] - add r0, r4, #0 - bl ov44_02233F64 - add r5, r0, #0 - bl sub_02037454 - cmp r5, r0 - beq _02234EDC - ldr r0, [r4, #8] - sub r0, r0, #1 - str r0, [r4, #8] - cmp r0, #0 - bgt _02234ED8 - mov r0, #0xf - strb r0, [r4, #5] -_02234ED8: - mov r0, #0 - pop {r3, r4, r5, pc} -_02234EDC: - bl sub_0203769C - add r1, sp, #0 - bl sub_02037C0C - cmp r0, #1 - bne _02234EEE - mov r0, #0xc - strb r0, [r4, #5] -_02234EEE: - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov44_02234EA4 - - thumb_func_start ov44_02234EF4 -ov44_02234EF4: ; 0x02234EF4 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - bl ov44_02233F64 - add r7, r0, #0 - bl sub_0203769C - mov r5, #0 - add r4, r5, #0 - str r0, [sp] - cmp r7, #0 - ble _02234F38 -_02234F0C: - ldr r0, [sp] - cmp r0, r4 - beq _02234F30 - add r0, r4, #0 - bl sub_02037C44 - cmp r0, #0 - beq _02234F32 - ldrh r1, [r0] - ldr r0, [r6] - ldrb r0, [r0, #0x1b] - cmp r1, r0 - bne _02234F2A - add r5, r5, #1 - b _02234F32 -_02234F2A: - mov r0, #0xf - strb r0, [r6, #5] - b _02234F32 -_02234F30: - add r5, r5, #1 -_02234F32: - add r4, r4, #1 - cmp r4, r7 - blt _02234F0C -_02234F38: - cmp r5, r7 - bne _02234F40 - mov r0, #0xd - strb r0, [r6, #5] -_02234F40: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov44_02234EF4 - - thumb_func_start ov44_02234F44 -ov44_02234F44: ; 0x02234F44 - push {r4, lr} - add r4, r0, #0 - mov r0, #1 - add r1, r0, #0 - bl sub_020398D4 - mov r0, #0x12 - bl sub_02037AC0 - mov r0, #0xe - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02234F44 - - thumb_func_start ov44_02234F60 -ov44_02234F60: ; 0x02234F60 - push {r4, r5, r6, lr} - add r5, r0, #0 - mov r0, #0x12 - add r4, r1, #0 - add r6, r2, #0 - bl sub_02037B38 - cmp r0, #0 - beq _02234F82 - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov44_022342E0 - mov r0, #1 - strb r0, [r5, #7] - pop {r4, r5, r6, pc} -_02234F82: - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_02234F60 - - thumb_func_start ov44_02234F88 -ov44_02234F88: ; 0x02234F88 - push {r4, r5, r6, lr} - add r5, r0, #0 - mov r0, #0x83 - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r6, r1, #0 - add r4, r2, #0 - cmp r0, #0 - beq _02234FA8 - add r1, r4, #0 - bl Clear2dMenuWindowAndDelete - mov r0, #0x83 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r5, r0] -_02234FA8: - add r0, r5, #0 - add r0, #0x30 - bl ov44_02233A34 - add r0, r5, #0 - add r1, r6, #0 - add r2, r4, #0 - bl ov44_022342E0 - mov r0, #0x10 - strb r0, [r5, #5] - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_02234F88 - - thumb_func_start ov44_02234FC4 -ov44_02234FC4: ; 0x02234FC4 - push {r4, lr} - add r4, r0, #0 - add r3, r2, #0 - add r0, #0x30 - mov r2, #0x76 - bl ov44_02233860 - mov r0, #0x11 - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02234FC4 - - thumb_func_start ov44_02234FDC -ov44_02234FDC: ; 0x02234FDC - push {r4, lr} - add r4, r0, #0 - add r0, #0x30 - bl ov44_02233914 - cmp r0, #0 - bne _02234FEE - mov r0, #0 - pop {r4, pc} -_02234FEE: - bl sub_02039358 - bl sub_02039B58 - mov r0, #0 - mov r1, #1 - strb r0, [r4, #7] - bl sub_020398D4 - mov r0, #1 - pop {r4, pc} - thumb_func_end ov44_02234FDC - - thumb_func_start ov44_02235004 -ov44_02235004: ; 0x02235004 - push {r4, r5, r6, lr} - add r6, r2, #0 - add r4, r1, #0 - add r5, r0, #0 - add r1, r6, #0 - bl ov44_02233F6C - ldr r0, [r5] - add r0, #0x21 - ldrb r0, [r0] - cmp r0, #1 - bne _02235020 - mov r2, #0x7d - b _02235022 -_02235020: - mov r2, #0x7c -_02235022: - add r0, r5, #0 - add r0, #0x30 - add r1, r4, #0 - add r3, r6, #0 - bl ov44_02233860 - mov r0, #0x13 - strb r0, [r5, #5] - mov r0, #0 - pop {r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_02235004 - - thumb_func_start ov44_02235038 -ov44_02235038: ; 0x02235038 - push {r3, r4, r5, lr} - add r5, r2, #0 - add r4, r0, #0 - add r1, r5, #0 - bl ov44_02233F6C - add r0, r4, #0 - bl ov44_0223442C - cmp r0, #1 - bne _0223505E - mov r0, #0xa - strb r0, [r4, #5] - add r4, #0x30 - add r0, r4, #0 - bl ov44_02233954 - mov r0, #0 - pop {r3, r4, r5, pc} -_0223505E: - add r0, r4, #0 - add r0, #0x30 - bl ov44_02233914 - cmp r0, #0 - bne _0223506E - mov r0, #0 - pop {r3, r4, r5, pc} -_0223506E: - str r5, [sp] - ldr r0, [r4, #0x30] - ldr r1, _0223508C ; =ov44_0223645C - mov r2, #0x30 - mov r3, #4 - bl Std_CreateYesNoMenu - mov r1, #0x83 - lsl r1, r1, #2 - str r0, [r4, r1] - mov r0, #0x14 - strb r0, [r4, #5] - mov r0, #0 - pop {r3, r4, r5, pc} - nop -_0223508C: .word ov44_0223645C - thumb_func_end ov44_02235038 - - thumb_func_start ov44_02235090 -ov44_02235090: ; 0x02235090 - push {r3, r4, r5, lr} - add r4, r2, #0 - add r5, r0, #0 - add r1, r4, #0 - bl ov44_02233F6C - add r0, r5, #0 - bl ov44_0223442C - cmp r0, #1 - bne _022350C8 - mov r0, #0xa - strb r0, [r5, #5] - add r0, r5, #0 - add r0, #0x30 - bl ov44_02233954 - mov r0, #0x83 - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r1, r4, #0 - bl Clear2dMenuWindowAndDelete - mov r1, #0x83 - mov r0, #0 - lsl r1, r1, #2 - str r0, [r5, r1] - pop {r3, r4, r5, pc} -_022350C8: - mov r0, #0x83 - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r1, r4, #0 - bl Handle2dMenuInput_DeleteOnFinish - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - beq _022350FA - cmp r0, #0 - bne _022350EE - add r0, r5, #0 - add r1, r4, #0 - bl ov44_02233D38 - add r0, r5, #0 - bl ov44_022340B4 -_022350EE: - mov r0, #8 - strb r0, [r5, #5] - mov r0, #0x83 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r5, r0] -_022350FA: - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end ov44_02235090 - - thumb_func_start ov44_02235100 -ov44_02235100: ; 0x02235100 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r5, r0, #0 - mov r0, #0 - add r6, r1, #0 - add r4, r2, #0 - bl sub_02034870 - add r1, r5, #0 - add r1, #0x26 - strb r0, [r1] - add r0, r5, #0 - add r0, #0x26 - ldrb r0, [r0] - cmp r0, #0x20 - bne _02235124 - bl GF_AssertFail -_02235124: - add r0, r5, #0 - mov r2, #0 - add r0, #0x30 - add r1, r6, #0 - add r3, r2, #0 - str r4, [sp] - bl ov44_02233C88 - bl sub_02039358 - add r0, r5, #0 - mov r1, #0 - add r0, #0x27 - strb r1, [r0] - add r0, r5, #0 - add r0, #0x30 - add r1, r6, #0 - mov r2, #0x84 - add r3, r4, #0 - bl ov44_02233860 - mov r0, #0x16 - strb r0, [r5, #5] - mov r0, #0 - add sp, #4 - pop {r3, r4, r5, r6, pc} - thumb_func_end ov44_02235100 - - thumb_func_start ov44_02235158 -ov44_02235158: ; 0x02235158 - push {r3, r4, r5, lr} - add r4, r0, #0 - add r0, #0x30 - add r5, r2, #0 - bl ov44_02233914 - cmp r0, #0 - bne _0223516C - mov r0, #0 - pop {r3, r4, r5, pc} -_0223516C: - str r5, [sp] - ldr r0, [r4, #0x30] - ldr r1, _02235188 ; =ov44_0223645C - mov r2, #0x30 - mov r3, #4 - bl Std_CreateYesNoMenu - mov r1, #0x83 - lsl r1, r1, #2 - str r0, [r4, r1] - mov r0, #0x17 - strb r0, [r4, #5] - mov r0, #0 - pop {r3, r4, r5, pc} - .balign 4, 0 -_02235188: .word ov44_0223645C - thumb_func_end ov44_02235158 - - thumb_func_start ov44_0223518C -ov44_0223518C: ; 0x0223518C - push {r4, lr} - add r4, r0, #0 - mov r0, #0x83 - lsl r0, r0, #2 - ldr r0, [r4, r0] - add r1, r2, #0 - bl Handle2dMenuInput_DeleteOnFinish - mov r1, #0 - mvn r1, r1 - cmp r0, r1 - beq _022351B8 - cmp r0, #0 - bne _022351AC - mov r0, #0x18 - b _022351AE -_022351AC: - mov r0, #0x1d -_022351AE: - strb r0, [r4, #5] - mov r0, #0x83 - mov r1, #0 - lsl r0, r0, #2 - str r1, [r4, r0] -_022351B8: - mov r0, #0 - pop {r4, pc} - thumb_func_end ov44_0223518C - - thumb_func_start ov44_022351BC -ov44_022351BC: ; 0x022351BC - push {r4, lr} - add r4, r0, #0 - add r3, r2, #0 - add r0, #0x30 - mov r2, #0x11 - bl ov44_02233860 - add r0, r4, #0 - bl ov44_022342B8 - mov r0, #0x5a - str r0, [r4, #8] - mov r0, #0x19 - strb r0, [r4, #5] - mov r0, #0 - pop {r4, pc} - thumb_func_end ov44_022351BC - - thumb_func_start ov44_022351DC -ov44_022351DC: ; 0x022351DC - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, [r5, #8] - add r4, r1, #0 - cmp r0, #0 - ble _022351F0 - sub r0, r0, #1 - str r0, [r5, #8] - mov r0, #0 - pop {r3, r4, r5, pc} -_022351F0: - add r0, r5, #0 - add r0, #0x30 - bl ov44_02233914 - cmp r0, #0 - bne _02235200 - mov r0, #0 - pop {r3, r4, r5, pc} -_02235200: - add r0, r5, #0 - add r0, #0x26 - ldrb r0, [r0] - ldrb r1, [r4] - bl ov44_02233E80 - cmp r0, #0 - beq _02235214 - mov r0, #0x1a - strb r0, [r5, #5] -_02235214: - mov r0, #0 - pop {r3, r4, r5, pc} - thumb_func_end ov44_022351DC - - thumb_func_start ov44_02235218 -ov44_02235218: ; 0x02235218 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r5, r0, #0 - add r6, r1, #0 - add r4, r2, #0 - bl ov44_02233E48 - bl sub_020390C4 - cmp r0, #1 - bne _02235262 - mov r0, #0 - bl sub_020373B4 - cmp r0, #1 - bne _02235262 - mov r0, #0 - bl sub_020378E4 - add r0, r5, #0 - add r1, r6, #0 - add r2, r4, #0 - bl ov44_022342E0 - mov r1, #0 - mov r0, #6 - str r0, [sp] - mov r0, #1 - str r0, [sp, #4] - mov r0, #3 - add r2, r1, #0 - add r3, r1, #0 - str r4, [sp, #8] - bl BeginNormalPaletteFade - mov r0, #0x1b - strb r0, [r5, #5] -_02235262: - mov r0, #0 - add sp, #0xc - pop {r3, r4, r5, r6, pc} - thumb_func_end ov44_02235218 - - thumb_func_start ov44_02235268 -ov44_02235268: ; 0x02235268 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r5, r0, #0 - add r6, r1, #0 - add r4, r2, #0 - bl IsPaletteFadeFinished - cmp r0, #0 - beq _02235324 - ldr r0, [r6, #8] - mov r1, #0 - bl sub_02034354 - add r0, r5, #0 - mov r1, #1 - add r0, #0x27 - strb r1, [r0] - add r0, r5, #0 - bl ov44_02234204 - add r0, r5, #0 - add r1, r4, #0 - bl ov44_02233214 - add r0, r5, #0 - mov r2, #0x7e - add r0, #0x30 - mov r1, #0 - lsl r2, r2, #2 - bl memset - add r0, r5, #0 - bl ov44_02234028 - add r0, r5, #0 - add r1, r6, #0 - add r2, r4, #0 - bl ov44_022331C4 - bl sub_0203A880 - mov r1, #0 - strb r1, [r5, #0x12] - strb r1, [r5, #0x13] - add r0, r5, #0 - add r0, #0x14 - strb r1, [r5, #0x14] - strb r1, [r0, #1] - strb r1, [r0, #2] - strb r1, [r0, #3] - add r0, r5, #0 - add r0, #0x18 - strb r1, [r5, #0x18] - strb r1, [r0, #1] - strb r1, [r0, #2] - strb r1, [r0, #3] - add r0, r5, #0 - add r0, #0x1c - mov r1, #1 - mov r2, #4 - bl MI_CpuFill8 - add r0, r5, #0 - add r0, #0x20 - mov r1, #1 - mov r2, #4 - bl MI_CpuFill8 - add r0, r5, #0 - add r1, r5, #0 - mov r3, #0 - add r0, #0x24 - strb r3, [r0] - add r0, r5, #0 - add r0, #0x26 - strb r3, [r0] - add r0, r5, #0 - add r0, #0x28 - strb r3, [r0] - add r1, #0x28 - strb r3, [r1, #1] - strb r3, [r1, #2] - strb r3, [r1, #3] - mov r0, #6 - str r0, [sp] - mov r1, #1 - str r1, [sp, #4] - mov r0, #3 - add r2, r1, #0 - str r4, [sp, #8] - bl BeginNormalPaletteFade - mov r0, #0x1c - strb r0, [r5, #5] -_02235324: - mov r0, #0 - add sp, #0xc - pop {r3, r4, r5, r6, pc} - .balign 4, 0 - thumb_func_end ov44_02235268 - - thumb_func_start ov44_0223532C -ov44_0223532C: ; 0x0223532C - push {r4, lr} - add r4, r0, #0 - bl IsPaletteFadeFinished - cmp r0, #0 - beq _0223533C - mov r0, #0 - strb r0, [r4, #5] -_0223533C: - mov r0, #0 - pop {r4, pc} - thumb_func_end ov44_0223532C - - thumb_func_start ov44_02235340 -ov44_02235340: ; 0x02235340 - push {r4, lr} - add r4, r0, #0 - bl sub_02039358 - bl sub_02039B58 - mov r0, #0 - mov r1, #1 - strb r0, [r4, #7] - bl sub_020398D4 - mov r0, #1 - pop {r4, pc} - .balign 4, 0 - thumb_func_end ov44_02235340 .rodata @@ -23251,25 +15412,32 @@ ov44_02235570: ; 0x02235570 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.public ov44_02235600 ov44_02235600: ; 0x02235600 .byte 0x03, 0x00, 0x02, 0x00 +.public ov44_02235604 ov44_02235604: ; 0x02235604 .byte 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x03, 0x00, 0x58, 0x21, 0x00 +.public ov44_0223560F ov44_0223560F: ; 0x0223560F .byte 0x00 +.public ov44_02235610 ov44_02235610: ; 0x02235610 .byte 0x00 +.public ov44_02235611 ov44_02235611: ; 0x02235611 .byte 0x00 +.public ov44_02235612 ov44_02235612: ; 0x02235612 .byte 0x01, 0x01, 0x02, 0x01, 0x00, 0x01, 0x04, 0x01, 0x01, 0x01, 0x02, 0x01, 0x00, 0x00 .byte 0x00, 0x00, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x04, 0x01, 0x00, 0x01, 0x03, 0x01, 0x01, 0x00 +.public ov44_02235630 ov44_02235630: ; 0x02235630 .byte 0x10, 0x00, 0x0B, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x16, 0x00, 0x0B, 0x00, 0x1C, 0x00, 0x0B, 0x00 @@ -23508,60 +15676,71 @@ ov44_02235F88: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 +.public ov44_02236458 ov44_02236458: ; 0x02236458 .byte 0x08, 0x00, 0x04, 0x0C +.public ov44_0223645C ov44_0223645C: ; 0x0223645C .byte 0x02, 0x19, 0x0D, 0x05 .byte 0x04, 0x01, 0x39, 0x00 +.public ov44_02236464 ov44_02236464: ; 0x02236464 .word ov44_02234324 .word ov44_02234328 .word ov44_0223435C .word ov44_02234388 +.public ov44_02236474 ov44_02236474: ; 0x02236474 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 +.public ov44_02236484 ov44_02236484: ; 0x02236484 .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 +.public ov44_02236494 ov44_02236494: ; 0x02236494 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1A, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.public ov44_022364B0 ov44_022364B0: ; 0x022364B0 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x1C, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.public ov44_022364CC ov44_022364CC: ; 0x022364CC .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1B, 0x02 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.public ov44_022364E8 ov44_022364E8: ; 0x022364E8 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.public ov44_02236510 ov44_02236510: ; 0x02236510 .byte 0xD0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x48, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x60, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x48, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 +.public ov44_02236540 ov44_02236540: ; 0x02236540 .word ov44_02234BF0 .word ov44_02234C10 - .word ov44_02234C48 + .word Wifi_PromptAwaitingResponse .word ov44_02234C88 .word ov44_02234CE8 .word ov44_02234D28 .word ov44_02234D4C .word ov44_02234D88 - .word ov44_02234DA8 + .word Wifi_PromptAwaitingMembers .word ov44_02234DE4 .word ov44_02234E08 .word ov44_02234EA4 @@ -23569,9 +15748,9 @@ ov44_02236540: ; 0x02236540 .word ov44_02234F44 .word ov44_02234F60 .word ov44_02234F88 - .word ov44_02234FC4 + .word Wifi_PromptMemberDrop .word ov44_02234FDC - .word ov44_02235004 + .word Wifi_PromptToggleVoiceChat_ .word ov44_02235038 .word ov44_02235090 .word ov44_02235100 @@ -23584,16 +15763,17 @@ ov44_02236540: ; 0x02236540 .word ov44_0223532C .word ov44_02235340 +.public ov44_022365B8 ov44_022365B8: ; 0x022365B8 .word ov44_02234474 - .word ov44_022344AC + .word Wifi_PromptReadyMessage .word ov44_022344C4 - .word ov44_022345A0 + .word Wifi_PromptUserJoinRequest .word ov44_022345C8 .word ov44_022345FC - .word ov44_0223469C + .word Wifi_PromptInsufficientMembers .word ov44_022346B4 - .word ov44_022346D0 + .word Wifi_PromptConfirmMembers .word ov44_022346E8 .word ov44_0223471C .word ov44_02234764 @@ -23604,21 +15784,22 @@ ov44_022365B8: ; 0x022365B8 .word ov44_02234858 .word ov44_022348A8 .word ov44_022348C4 - .word ov44_022348EC + .word Wifi_PromptStopFindingMembers .word ov44_02234904 .word ov44_02234944 - .word ov44_0223499C + .word Wifi_PromptDropAsLeader .word ov44_022349B4 .word ov44_022349F4 - .word ov44_02234A4C + .word Wifi_PromptCancelInvites .word ov44_02234A68 .word ov44_02234AA8 - .word ov44_02234AE4 + .word Wifi_PromptMemberDropped .word ov44_02234B18 - .word ov44_02234B58 + .word Wifi_PromptToggleVoiceChat .word ov44_02234B80 .word ov44_02234BB4 +.public ov44_0223663C ov44_0223663C: ; 0x0223663C .byte 0x05, 0x04, 0x03, 0x02 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00 @@ -23741,12 +15922,14 @@ ov44_0223676C: ; 0x0223676C .word ov44_0222E5E0 .word ov44_0222BF6C +.public ov44_0223688C ov44_0223688C: ; 0x0223688C .word ov44_02235640 .word ov44_02235900 .word ov44_02235BC0 .word ov44_02235F88 +.public ov44_0223689C ov44_0223689C: ; 0x0223689C .byte 0x7E, 0x7F, 0x7F, 0x7F diff --git a/include/overlay_00_arm.h b/include/overlay_00_arm.h new file mode 100644 index 000000000..ade8b6e9e --- /dev/null +++ b/include/overlay_00_arm.h @@ -0,0 +1,6 @@ +#ifndef POKEHEARTGOLD_OVERLAY_00_ARM_H +#define POKEHEARTGOLD_OVERLAY_00_ARM_H + +void ov00_021EDB1C(void); + +#endif // POKEHEARTGOLD_OVERLAY_00_ARM_H diff --git a/include/overlay_00_thumb.h b/include/overlay_00_thumb.h index ac73d9b33..6103577b0 100644 --- a/include/overlay_00_thumb.h +++ b/include/overlay_00_thumb.h @@ -3,6 +3,16 @@ s32 ov00_021E6A70(u32, u32); int ov00_021E6EBC(void); +void ov00_021E7220(s32); +s32 ov00_021E70F4(void); +void ov00_021E7130(void); +void ov00_021E5CA0(void*, void*); +void ov00_021E6A4C(void); +void ov00_021E69A8(s32); +void ov00_021E6D60(void*, s32); +void ov00_021E70B8(u8); void ov00_021EC454(s32); +void ov00_021E714C(s32, s32); +void ov00_021E6D68(); #endif // POKEHEARTGOLD_OVERLAY_00_THUMB_H diff --git a/include/overlay_42.h b/include/overlay_42.h index c40444bd7..8ae9135d4 100644 --- a/include/overlay_42.h +++ b/include/overlay_42.h @@ -1,6 +1,56 @@ #ifndef POKEHEARTGOLD_OVY_42_H #define POKEHEARTGOLD_OVY_42_H +#include "overlay_44.h" + u32 ov42_02229248(u32 a0); +void ov42_022291AC(u32 a0); +void ov42_022291B8(u32 a0); +void ov42_0222919C(u32 a0, u32 a1); +void ov42_022291A0(u32 a0); +void ov42_02229200(u32 a0, u32 a1); +u16 ov42_02228188(u32 a0, u32 a1); +void ov42_0222901C(u32 a0); +void ov42_022290DC(u32 a0); +void ov42_0222807C(u32 a0); +u32 ov42_0222903C(u32 a0, u32 a1, u32 a2, enum HeapID heapID); +void ov42_02228FE0(u32 a0, u32 a1, u32 a2, enum HeapID heapID); +s32 ov42_02229010(u32 a0, u32 a1); +s32 ov42_022280B8(u32 a0, u16* a1); +void ov42_02228F94(u32 a0); +void ov42_02228050(u32 a0); +u32 ov42_02228EDC(SpriteList* spriteList, u32 a1, u32 a2, u32 a3, enum HeapID heapID); +u32 ov42_02228010(u32 a0, enum HeapID heapID); + +u16 ov42_02227F40(u16*); +u16 ov42_02227F44(u16*); +s32 ov42_02227FDC(u16*, u16, u16); +s32 ov42_022282DC(s32); +void ov42_022291D8(s32, UnkStruct_ov44_02232914); +s32 ov42_022291F4(s32); +ov42_02229218(s32, s32); +void ov42_02229258(s32, UnkStruct_ov44_02232914); +s32 ov42_022293B8(G2dRenderer*, BgConfig*, void*, s32); +ov42_0222940C(s32); +ov42_02229A8C(s32, void*); +void ov42_02229028(u32, s32, s32); +u32 ov42_02228F24(SpriteList*, s32, s32, s32, s32, s32, s32); +s32 ov42_022283BC(u32, u32); +void ov42_02228068(u32, u32*); +s32 ov42_02228C80(u16*, u32, u32*, u32*); +s32 ov42_02229AC8(u32, u32*); +u32 ov42_02228270(UnkStruct_ov44_02232914, u16); +void ov42_022282A4(void); +void ov42_02228100(s32); +void ov42_022290C4(s32); +void ov42_02229420(u32, u32*); +void ov42_02229358(u32*, u32); +s32 ov42_0222920C(s32); +void ov42_02227F28(u16*); +void ov42_02229A78(u32); +u32 ov42_02229A40(s32, s32); +void ov42_02229394(u32*); +void ov42_02227F48(u16*, s32); +u16* ov42_02227EE0(u16, u16, enum HeapID); #endif // POKEHEARTGOLD_OVY_42_H diff --git a/include/overlay_44.h b/include/overlay_44.h new file mode 100644 index 000000000..a48ceb83c --- /dev/null +++ b/include/overlay_44.h @@ -0,0 +1,436 @@ +#ifndef POKEHEARTGOLD_OVY_44_H +#define POKEHEARTGOLD_OVY_44_H + +#include "global.h" +#include "heap.h" +#include "main.h" +#include "list_menu_2d.h" +#include "render_window.h" +#include "sprite.h" +#include "yes_no_prompt.h" +#include "unk_02009D48.h" + +// overlay_44_02232E9C +typedef struct UnkStruct_ov44_02231A28 { + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u16 unk6; +} UnkStruct_ov44_02231A28; + +typedef struct UnkStruct_ov44_02232E80 { + void* unk0; + NNSG2dPaletteData* unk4; + u8 unk8; + u8 unk9; + s16 unkA; + u8 unkC; + u8 unkD; + s16 unkE; + u8 unk10; +} UnkStruct_ov44_02232E80; + +typedef struct UnkStruct_ov44_02232914 { + u16 unk0; + u16 unk2; +} UnkStruct_ov44_02232914; + +typedef struct UnkStruct_ov44_02232DA0 UnkStruct_ov44_02232DA0; +typedef struct UnkStruct_ov44_02232B74 UnkStruct_ov44_02232B74; + +typedef s32 (*func_type_022328E4)(UnkStruct_ov44_02232DA0*, UnkStruct_ov44_02232B74*); +typedef void (*func_type_022328A0)(UnkStruct_ov44_02232DA0*, UnkStruct_ov44_02232B74*); + +struct UnkStruct_ov44_02232B74 { + u32 unk0; + u32 unk4; + s16 unk8; + u8 unkA; + u8 unkB; + u16 unkC; + u16 unkE; + func_type_022328E4 unk10; + void* unk14; + func_type_022328A0 unk18; +}; + +typedef struct UnkStruct_ov44_02232C4C { + s16 unk0; + u8 unk2; + u8 unk3; +} UnkStruct_ov44_02232C4C; + +typedef struct UnkStruct_ov44_02231A7C { + SpriteList* unk0; + G2dRenderer unk4; + GF_2DGfxResMan* unk12C[4]; + SpriteResource* unk13C[4]; + SpriteResourcesHeader unk14C; + Sprite* unk170; + Sprite* unk174; +} UnkStruct_ov44_02231A7C; + +struct UnkStruct_ov44_02232DA0 { + u32 unk0; + enum HeapID unk4; + u8 unk8; + u8 unk9; + s16 unkA; + u32 unkC; + BgConfig* unk10; + UnkStruct_ov44_02231A7C unk14; + UnkStruct_ov44_02232B74 unk18C[48]; + UnkStruct_ov44_02232B74* unk6CC; + UnkStruct_ov44_02232E80 unk6D0; + u16* unk6E4; + u32 unk6E8; + u32 unk6EC; + u32 unk6F0; + u32 unk6F4; + u32 unk6F8; +}; + +typedef struct UnkStruct_ov44_0223197C { + u8 unk0[33]; + u8 unk21; + u8 unk22; + u8 unk23; + u32 unk24; +} UnkStruct_ov44_0223197C; + +typedef struct UnkStruct_ov44_022319EC { + u32 unk0; + UnkStruct_ov44_0223197C* unk4; + u8 unk8[0x384]; + UnkStruct_ov44_02232DA0 unk38C; + u8 unkA88[0x94]; + MessageFormat* unkB1C; + u8 unkB20[0x244]; + u32 unkD64; + u8 unkD68[0x330]; + u32 unk1098; +} UnkStruct_ov44_022319EC; + +s32 ov44_02229F44(s32); +void ov44_0222F510(UnkStruct_ov44_022319EC*, s32, s32); +void ov44_0222F7BC(UnkStruct_ov44_022319EC*); +s32 ov44_02231CE8(UnkStruct_ov44_02232DA0* arg0); + +// The following functions are static +void ov44_02231918(UnkStruct_ov44_022319EC* arg0, s32 arg1); +s32* ov44_02231958(UnkStruct_ov44_022319EC* arg0, u32 arg1); +void ov44_02231974(void); +void ov44_0223197C(UnkStruct_ov44_022319EC* arg0, s32 arg1, s32 arg2); +void ov44_022319BC(UnkStruct_ov44_022319EC* arg0, s32 arg1); +void ov44_022319EC(UnkStruct_ov44_022319EC* arg0); +YesNoPrompt* ov44_02231A14(BgConfig* arg0, UnkStruct_ov44_02231A28* arg1, u32 arg2); +YesNoPrompt* ov44_02231A28(BgConfig* arg0, UnkStruct_ov44_02231A28* arg1, u32 arg2); +void ov44_02231A7C(UnkStruct_ov44_02232DA0* arg0, enum HeapID heapID, NARC* arg2, BgConfig* arg3, s32 arg4, u32 arg5); +void ov44_02231B4C(UnkStruct_ov44_02232DA0* arg0); +s32 ov44_02231BB0(s32* arg0); +s32 ov44_02231BB4(UnkStruct_ov44_02232DA0* arg0); +void ov44_02231C60(UnkStruct_ov44_02232DA0* arg0); +u8 ov44_02231C70(UnkStruct_ov44_02232DA0* arg0); +void ov44_02231C8C(UnkStruct_ov44_02232DA0* arg0); +void ov44_02231D48(UnkStruct_ov44_02232DA0* arg0, s32* arg1); +void ov44_02231D8C(UnkStruct_ov44_02232DA0* arg0); +void ov44_02231D94(UnkStruct_ov44_02232DA0* arg0, s32 arg1); +s32 ov44_02231D98(UnkStruct_ov44_02232DA0* arg0); +UnkStruct_ov44_02232B74* ov44_02231D9C(UnkStruct_ov44_02232DA0* arg0, s16 arg1); +UnkStruct_ov44_02232B74* ov44_02231E08(UnkStruct_ov44_02232DA0* arg0, s16 arg1, s16 arg2); +void ov44_02231E94(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1); +void ov44_02231ED4(s32* arg0); +u8 ov44_02231EF4(s32* arg0); +void ov44_02231F04(s32* arg0); +void ov44_02231F14(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1, s32 arg2); +void ov44_02231F88(s32 arg0, UnkStruct_ov44_02232B74* arg1); +void ov44_02231FA8(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1, u8 arg2); +void ov44_02231FCC(UnkStruct_ov44_02232DA0* arg0); +void ov44_02232008(UnkStruct_ov44_02232DA0* arg0); +void ov44_02232018(UnkStruct_ov44_02232DA0* arg0); +void ov44_02232028(UnkStruct_ov44_02232DA0* arg0); +s32 ov44_02232050(UnkStruct_ov44_02232DA0* arg0); +s32 ov44_02232070(UnkStruct_ov44_02232DA0* arg0); +void ov44_02232104(UnkStruct_ov44_02232DA0* arg0); +void ov44_02232158(UnkStruct_ov44_02232DA0* arg0); +void ov44_02232194(UnkStruct_ov44_02232DA0* arg0); +UnkStruct_ov44_02232B74* ov44_022321C4(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1, u16 arg2); +void ov44_02232204(UnkStruct_ov44_02232DA0* arg0, s32 arg1, s32 arg2); +void ov44_02232238(UnkStruct_ov44_02232DA0* arg0); +void ov44_02232248(UnkStruct_ov44_02232DA0* arg0, s32 arg1, NARC* arg2, s32 arg3); +void ov44_02232288(UnkStruct_ov44_02232DA0* arg0); +void ov44_02232298(UnkStruct_ov44_02231A7C* arg0, enum HeapID heapID, NARC* narc); +void ov44_022322E8(UnkStruct_ov44_02231A7C* arg0); +void ov44_02232314(UnkStruct_ov44_02231A7C* arg0, enum HeapID heapID , NARC* narc); +void ov44_0223231C(UnkStruct_ov44_02231A7C* arg0); +void ov44_02232324(UnkStruct_ov44_02231A7C* arg1, enum HeapID heapID); +void ov44_0223232C(UnkStruct_ov44_02231A7C* arg0); +void ov44_02232334(BgConfig* arg0, enum HeapID heapID); +void ov44_02232338(BgConfig* arg0); +void ov44_0223233C(BgConfig *bgConfig, enum HeapID heapID, NARC* narc); +void ov44_0223237C(UnkStruct_ov44_02231A7C* arg0, enum HeapID heapID, NARC* narc); +void ov44_0223247C(UnkStruct_ov44_02231A7C* arg0); +void ov44_022324B0(UnkStruct_ov44_02231A7C* arg0, enum HeapID heapID); +void ov44_02232530(UnkStruct_ov44_02231A7C* arg0); +void ov44_0223254C(UnkStruct_ov44_02232DA0* arg0); +void ov44_02232594(UnkStruct_ov44_02232DA0* arg0); +void ov44_022325A4(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232914 arg1, s32 arg2); +void ov44_022325F4(UnkStruct_ov44_02232DA0* arg0); +s32 ov44_02232604(UnkStruct_ov44_02232DA0* arg0); +void ov44_02232680(UnkStruct_ov44_02232DA0* arg0, u16* arg1, u32 arg2); +void ov44_02232724(UnkStruct_ov44_02232DA0* arg0, s16* arg1); +UnkStruct_ov44_02232B74* ov44_02232798(UnkStruct_ov44_02232DA0* arg0); +void ov44_022327C8(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1, s32 arg2); +void ov44_02232800(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1, s16* arg2, s16 arg3, u16 arg4, u8 arg5, s32 arg6); +s32 ov44_02232838(UnkStruct_ov44_02232B74* arg0); +void ov44_02232864(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1); +void ov44_02232884(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1); +void ov44_022328A0(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1); +void ov44_022328E4(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1); +void ov44_02232910(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1); +void ov44_02232914(UnkStruct_ov44_02232DA0 *arg0, UnkStruct_ov44_02232B74* arg1); +void ov44_022329B0(UnkStruct_ov44_02232DA0 *arg0, UnkStruct_ov44_02232B74* arg1); +s32 ov44_02232A60(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1); +s32 ov44_02232B74(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1); +s32 ov44_02232BCC(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1); +s32 ov44_02232BE4(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1); +s32 ov44_02232C30(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1); +s32 ov44_02232C48(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1); +void ov44_02232C4C(UnkStruct_ov44_02232DA0* arg0, s16 arg1, u32 arg2, u16 arg3); +void ov44_02232C6C(UnkStruct_ov44_02232DA0* arg0, s16 arg1, UnkStruct_ov44_02232B74* arg2); +s32 ov44_02232C94(UnkStruct_ov44_02232B74* arg0); +void ov44_02232CA8(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1, u8 arg2); +void ov44_02232CCC(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232E80* arg1, NARC* arg2); +void ov44_02232D08(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232E80* arg1); +void ov44_02232D20(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232E80* arg1); +void ov44_02232D34(UnkStruct_ov44_02232E80* arg0); +void ov44_02232DA0(UnkStruct_ov44_02232E80* arg0); +void* ov44_02232E2C(UnkStruct_ov44_02232E80* arg0, s32 arg1); +void ov44_02232E38(UnkStruct_ov44_02232E80* arg0); +void ov44_02232E54(UnkStruct_ov44_02232E80* arg0); +void ov44_02232E5C(UnkStruct_ov44_02232E80* arg0, u8 arg1); +void ov44_02232E80(UnkStruct_ov44_02232E80* arg0); +s32 ov44_02232E90(s32 arg0); +s32 ov44_02232E9C(u32 arg0); + +// overlay_44_02235340 +typedef struct UnkStruct_ov44_022341C0 { + u32 unk0; + u32 unk4; + u16 unk8; + s16 unkA; +} UnkStruct_ov44_022341C0; + +typedef struct UnkStruct_ov44_args { + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + SaveData* unk8; +} UnkStruct_ov44_args; + +typedef struct UnkStruct_ov44_022345FC { + s16 unk0; + s32 unk2; +} UnkStruct_ov44_022345FC; + +typedef struct UnkStruct_ov44_02232F64 { + BgConfig* bgConfig; + MessageFormat* msgFmt; + MsgData* msgData; + String* string1; + String* string2; + u8 printerId; + u8 unk15; + u16 textFrameDelay; + SpriteList* spriteList; // 0x18 + G2dRenderer g2dRenderer; + GF_2DGfxResMan* gf2DGfxResManList[4]; + u32 unk154; + u32 unk158; + UnkStruct_ov44_022341C0 unk15C[4]; + Window windowList[5]; // 0x18C - 0x1DC + struct ListMenu2D* listMenu2D; + void* scrnDataRaw; + NNSG2dScreenData* scrnData; + WaitingIcon* waitingIcon; //0x218; + void* plttDataRaw; + NNSG2dPaletteData* plttData; + s16 unk1F4; + s16 unk1F6; +} UnkStruct_ov44_02232F64; + +typedef struct UnkStruct_ov44_02235340 { + u8* unk0; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + s32 unk8; + s32 unkC; + u8 unk10; + u8 unk11; + u8 unk12; + u8 unk13; + u8 unk14[4]; + u8 unk18[4]; + u8 unk1C[4]; + u8 unk20[4]; + u8 unk24; + u8 unk25; + u8 unk26; + u8 unk27; + u8 unk28[4]; + u8 unk2C; + u8 unk2D; + UnkStruct_ov44_02232F64 unk30; +} UnkStruct_ov44_02235340; + +typedef void (*func_type_022341C0)(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1); +typedef s32 (*func_type_02232F64)(UnkStruct_ov44_02235340*, UnkStruct_ov44_args*, enum HeapID); + +void ov44_02232EA8(OverlayManager* overlayMananger); +s32 ov44_02232F64(OverlayManager* overlayManager, u32* arg1); +s32 ov44_022330A8(OverlayManager* arg0); +void ov44_02233100(UnkStruct_ov44_02235340* arg0, String* arg1); +void ov44_02233160(UnkStruct_ov44_02235340* arg0); +void ov44_0223317C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1); + +// The following functions are likely static +s32 ov44_02234F60(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +void ov44_0223319C(UnkStruct_ov44_02235340* arg0); +s32 ov44_022331B0(UnkStruct_ov44_02235340* arg0); +void ov44_022331C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +void FreeStructOv44_02235340(UnkStruct_ov44_02235340* arg0, enum HeapID heapID); +void ov44_0223323C(void); +void InitBgAndScrnData(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID); +void FreeBgAndScreenData(UnkStruct_ov44_02232F64* arg0); +void InitWindowList(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +void FreeWindowList(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID); +void InitStringAndMsgData(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +void FreeStringAndMsgData(UnkStruct_ov44_02232F64* arg0); +void ov44_02233698(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +void InitSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID); +void FreeSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64* arg0); +void Wifi_LoadAndPrintTextToWindowWrapper(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 strno, enum HeapID heapID); +void Wifi_LoadAndPrintTextToWindow(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 strno, s32 arg3, enum HeapID heapID); +s32 ov44_02233914(UnkStruct_ov44_02232F64* arg0); +void ov44_02233954(UnkStruct_ov44_02232F64* arg0); +void ov44_0223398C(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, enum HeapID heapID); +void ov44_02233A34(UnkStruct_ov44_02232F64* arg0); +void ov44_02233A50(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +void ov44_02233AB8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_02232F64* arg1, UnkStruct_ov44_args* arg2, s32 arg3, enum HeapID heapID); +void ov44_02233C18(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, enum HeapID heapID); +void ov44_02233C88(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, s32 arg3, enum HeapID heapID); +void ov44_02233CA0(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, s32 arg3, enum HeapID heapID); +void ov44_02233CCC(UnkStruct_ov44_02232F64* arg0); +void ov44_02233D08(UnkStruct_ov44_02232F64* arg0, s32 arg1); +u8 ov44_02233D38(UnkStruct_ov44_02235340* arg0, enum HeapID heapID); +void ov44_02233D8C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +void ov44_02233E48(UnkStruct_ov44_02235340* arg0); +s32 ov44_02233E6C(UnkStruct_ov44_02235340* arg0); +s32 ov44_02233E80(u32 arg0, u32 arg1); +void ov44_02233EB4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1); +s32 ov44_02233EF8(UnkStruct_ov44_02235340* arg0); +s32 ov44_02233F20(UnkStruct_ov44_02235340* arg0); +void ov44_02233F3C(UnkStruct_ov44_02235340* arg0); +void ov44_02233F50(UnkStruct_ov44_02235340* arg0); +s32 ov44_02233F64(UnkStruct_ov44_02235340* arg0); +s32 ov44_02233F6C(UnkStruct_ov44_02235340* arg0, enum HeapID heapID); +void ov44_02233FA8(UnkStruct_ov44_02235340* arg0); +void ov44_02233FE8(UnkStruct_ov44_02235340* arg0); +void ov44_02234028(UnkStruct_ov44_02235340* arg0); +void ov44_02234038(UnkStruct_ov44_02235340* arg0); +s32 ov44_02234044(UnkStruct_ov44_02235340* arg0); +void ov44_02234070(u8 arg0, UnkStruct_ov44_02235340* arg1, s32 arg2); +s32 ov44_0223407C(UnkStruct_ov44_02235340* arg0); +void ov44_022340B4(UnkStruct_ov44_02235340* arg0); +void ov44_022340BC(UnkStruct_ov44_02235340* arg0, s32 arg1, enum HeapID heapID); +void ov44_022340EC(UnkStruct_ov44_02235340* arg0, s32 arg1, enum HeapID heapID); +void ov44_022341C0(UnkStruct_ov44_02235340* arg0); +void ov44_02234204(UnkStruct_ov44_02235340* arg0); +void ov44_02234224(UnkStruct_ov44_02235340* arg0, s32 arg1); +void ov44_02234248(UnkStruct_ov44_02235340* arg0); +void ov44_0223427C(UnkStruct_ov44_02235340* arg0, enum HeapID heapID); +void ov44_022342B8(UnkStruct_ov44_02235340* arg0); +void ov44_022342E0(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +void ov44_02234324(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1); +void ov44_02234328(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1); +void ov44_0223435C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1); +void ov44_02234388(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1); +void ov44_0223438C(UnkStruct_ov44_02235340* arg0); +int ov44_0223442C(UnkStruct_ov44_02235340* arg0); +void ov44_02234440(UnkStruct_ov44_02235340* arg0); +void ov44_02234450(UnkStruct_ov44_02235340* arg0); +s32 ov44_02234458(UnkStruct_ov44_02235340* arg0); +s32 ov44_02234474(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptReadyMessage(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022344C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptUserJoinRequest(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022345C8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022345FC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptInsufficientMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022346B4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptConfirmMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022346E8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_0223471C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234764(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_0223479C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022347D4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022347FC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234828(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234858(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022348A8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022348C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptStopFindingMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234904(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234944(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptDropAsLeader(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022349B4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022349F4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptCancelInvites(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234A68(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234AA8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptMemberDropped(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234B18(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptToggleVoiceChat(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234B80(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234BB4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234BF0(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234C10(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptAwaitingResponse(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234C88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234CE8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234D28(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234D4C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234D88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptAwaitingMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234DE4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234E08(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234EA4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234EF4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234F44(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234F88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptMemberDrop(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02234FDC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 Wifi_PromptToggleVoiceChat_(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02235038(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02235090(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02235100(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02235158(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_0223518C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022351BC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_022351DC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02235218(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02235268(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_0223532C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); +s32 ov44_02235340(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID); + +#endif // POKEHEARTGOLD_OVY_44_H diff --git a/include/sound_02004A44.h b/include/sound_02004A44.h index 62ac9327b..9ff2fac06 100644 --- a/include/sound_02004A44.h +++ b/include/sound_02004A44.h @@ -46,7 +46,9 @@ BOOL sub_02005518(void); void Sound_SetSceneAndPlayBGM(u8 scene, u16 bgmID, int unused); void GF_SetVolumeBySeqNo(u16 a0, u16 a1); void GF_SndHandleSetPlayerVolume(u32 a0, u32 a1); +void GF_SndHandleSetInitialVolume(s32 a0, s32 a1); +void sub_02005448(void); void sub_02004AD8(int a0); void sub_02005BEC(BOOL); diff --git a/include/unk_0202C034.h b/include/unk_0202C034.h index c5ca9781f..f33fddc0d 100644 --- a/include/unk_0202C034.h +++ b/include/unk_0202C034.h @@ -10,5 +10,6 @@ void sub_0202C714(SaveData *saveData); UnkStruct_021D2230 *sub_0202C6F4(SaveData *saveData); int sub_0202C2F8(struct UnkStruct_021D2230 *a0); void *sub_0202C08C(UnkStruct_021D2230 *a0); +u16* sub_0202C254(u32 a0, s32 a1); #endif // POKEHEARTGOLD_UNK_0202C034_H diff --git a/include/unk_02034354.h b/include/unk_02034354.h index 5f7d61213..0f969b6ff 100644 --- a/include/unk_02034354.h +++ b/include/unk_02034354.h @@ -5,5 +5,18 @@ PlayerProfile *sub_02034818(u32 a0); void sub_02034AC0(SaveData *saveData, int a1); +void sub_02034354(SaveData *saveData, int a1); +u8 sub_02034870(int); +int sub_02034750(int); +void sub_02034434(void); +int sub_02034780(void); +void sub_020346E8(int); +int sub_020347A0(void); +BOOL sub_02034420(void); +int sub_020346D4(void); +int sub_02034730(int); +int sub_02034714(int); +void sub_0203476C(int); +void sub_02034638(void); #endif // POKEHEARTGOLD_UNK_02034354_H diff --git a/include/unk_02035900.h b/include/unk_02035900.h index 39c4f43c9..c355ad091 100644 --- a/include/unk_02035900.h +++ b/include/unk_02035900.h @@ -12,5 +12,7 @@ int sub_02037454(void); int sub_020378AC(int); BOOL sub_02037030(int, void *, int); void sub_020376EC(int); +BOOL sub_020373B4(int); +int sub_02037824(int); #endif // POKEHEARTGOLD_UNK_02035900_H diff --git a/include/unk_020379A0.h b/include/unk_020379A0.h index 5d399cb0c..9ae1e18e8 100644 --- a/include/unk_020379A0.h +++ b/include/unk_020379A0.h @@ -8,5 +8,6 @@ void sub_02037AC0(u8 a0); BOOL sub_02037B38(u8 a0); void sub_02037BEC(void); u32 sub_02037C0C(u32 a0, u16 *a1); +u16* sub_02037C44(s32 a0); #endif // POKEHEARTGOLD_UNK_020379A0_H diff --git a/include/unk_02037C94.h b/include/unk_02037C94.h index 136341c9c..a250d03e1 100644 --- a/include/unk_02037C94.h +++ b/include/unk_02037C94.h @@ -19,5 +19,15 @@ BOOL sub_0203A05C(SaveData *saveData); void sub_02039F68(void *); void sub_02039AD8(int); void *sub_0203A040(UnkStruct_021D2230 *a0); +void sub_020398D4(int a0, int a1); +void sub_02039B58(void); +void sub_02039358(void); +BOOL sub_020390C4(void); +void sub_020378E4(int a0); +void sub_02039B18(void); +void sub_02039AF8(void); +s32 sub_02039080(s32); +s32 sub_02039264(void); +u8* sub_020398C8(void); #endif // POKEHEARTGOLD_UNK_02037C94_H diff --git a/include/unk_020971F8.h b/include/unk_020971F8.h index 1b7ab0336..1986a85b2 100644 --- a/include/unk_020971F8.h +++ b/include/unk_020971F8.h @@ -1,7 +1,7 @@ #ifndef POKEHEARTGOLD_UNK_020971F8_H #define POKEHEARTGOLD_UNK_020971F8_H -void sub_020971F8(void); +void sub_020971F8(void*); void sub_02097214(void); void sub_0209722C(void); void sub_02097230(void); diff --git a/main.lsf b/main.lsf index a2ab424f2..e87e83c68 100644 --- a/main.lsf +++ b/main.lsf @@ -812,6 +812,8 @@ Overlay OVY_44 { After OVY_42 Object asm/overlay_44.o + Object src/overlay_44_02232E9C.o + Object src/overlay_44_02235340.o } Overlay OVY_45 { diff --git a/src/overlay_44_02232E9C.c b/src/overlay_44_02232E9C.c new file mode 100644 index 000000000..6a44133ed --- /dev/null +++ b/src/overlay_44_02232E9C.c @@ -0,0 +1,995 @@ +#include "overlay_44.h" + +#include "vram_transfer_manager.h" +#include "math_util.h" +#include "gf_gfx_loader.h" +#include "global.h" +#include "overlay_42.h" + +#include "obj_pltt_transfer.h" +#include "obj_char_transfer.h" +#include "overlay_manager.h" +#include "vram_transfer_manager.h" +#include "gf_gfx_loader.h" +#include "constants/sndseq.h" +#include "msgdata/msg.naix" + +#include "bg_window.h" +#include "filesystem.h" + +#include "unk_0200ACF0.h" +#include "unk_0200A090.h" +#include "unk_02037C94.h" +#include "unk_020971F8.h" +#include "unk_020379A0.h" +#include "overlay_00_thumb.h" + +// const u16 ov44_02235600[2] = {3, 2}; + +// const u8 ov44_02235604[11] = {0, 0, 0, 28, 0, 0, 3, 0, 88, 22, 0}; + +// const u32 ov44_02235630[4] = {0xB0010, 0xB0010, 0xB0016, 0xB001C}; + +// const void* ov44_0223688C[4]; + +// const u8 ov44_0223560F[1] = {0}; +// const u8 ov44_02235610[1] = {0}; +// const u8 ov44_02235611[1] = {0}; +// const u8 ov44_02235612[30] = {1, 1, 2, 1, 0, 1, 4, 1, 1, 1, 2, 1, 0, 0, 0, 0, 1, 1, 2, 1, 1, 1, 4, 1, 0, 1, 3, 1, 1, 0}; + +extern u16 ov44_02235600[2]; +extern u8 ov44_02235604[11]; +extern u32 ov44_02235630[4]; +extern u32 ov44_0223688C[4]; + +extern u8 ov44_0223560F[1]; +extern u8 ov44_02235610[1]; +extern u8 ov44_02235611[1]; +extern u8 ov44_02235612[30]; + +void ov44_02231918(UnkStruct_ov44_022319EC* arg0, s32 arg1) { + if (arg1 != -1) { + PlayerProfile* playerProfile = PlayerProfile_New(HEAP_ID_53); + Save_Profile_PlayerName_Set(playerProfile, sub_0202C254(arg0->unk0, arg1)); + BufferPlayersName(arg0->unkB1C, 0, playerProfile); + Heap_Free(playerProfile); + } +} + +s32* ov44_02231958(UnkStruct_ov44_022319EC* arg0, u32 arg1) { + if (arg1 >= 32) { + return &arg0->unk1098; + } + return &arg0->unk4->unk24 + 9 * arg1; +} + + +void ov44_02231974(void) { + ov00_021E6D68(); +} + +void ov44_0223197C(UnkStruct_ov44_022319EC* arg0, s32 arg1, s32 arg2) { + sub_020379A0(HEAP_ID_15); + ov00_021E70B8(arg0->unk4->unk21); + if (ov44_02229F44(arg2) == 1) { + ov00_021E714C(1, 128); + } else { + ov00_021E714C(0, 128); + } + sub_02097214(); + sub_02039080(arg1); +} + +void ov44_022319BC(UnkStruct_ov44_022319EC* arg0, s32 arg1) { + if (arg0->unkD64 == 0) { + arg0->unkD64 = 1; + ov44_02231D94(&arg0->unk38C, 1); + if (arg1 == 1) { + ov44_0222F510(arg0, 9, 0); + } + } +} + +void ov44_022319EC(UnkStruct_ov44_022319EC* arg0) { + if (arg0->unkD64 == 1) { + arg0->unkD64 = 0; + ov44_0222F7BC(arg0); + ov44_02231D94(&arg0->unk38C, 0); + } +} + +YesNoPrompt* ov44_02231A14(BgConfig* arg0, UnkStruct_ov44_02231A28* arg1, u32 arg2) { + YesNoPrompt* yesNoPrompt = ov44_02231A28(arg0, arg1, arg2); + YesNoPrompt_SetIgnoreTouch(yesNoPrompt, 1); + return yesNoPrompt; +} + +YesNoPrompt* ov44_02231A28(BgConfig* arg0, UnkStruct_ov44_02231A28* arg1, u32 arg2) { + YesNoPrompt* yesNoPrompt = YesNoPrompt_Create(HEAP_ID_53); + YesNoPromptTemplate yesNoPromptTemplate; + yesNoPromptTemplate.bgConfig = arg0; + yesNoPromptTemplate.bgId = arg1->unk0; + yesNoPromptTemplate.tileStart = arg1->unk6; + yesNoPromptTemplate.plttSlot = arg1->unk5; + yesNoPromptTemplate.x = arg1->unk1; + yesNoPromptTemplate.y = arg1->unk2; + yesNoPromptTemplate.ignoreTouchFlag = 0; + yesNoPromptTemplate.initialCursorPos = arg2; + yesNoPromptTemplate.shapeParam = 0; + YesNoPrompt_InitFromTemplate(yesNoPrompt, &yesNoPromptTemplate); + return yesNoPrompt; +} + +void ov44_02231A7C(UnkStruct_ov44_02232DA0* arg0, enum HeapID arg1, NARC* arg2, BgConfig* arg3, s32 arg4, u32 arg5) { + memset(arg0, 0, sizeof(UnkStruct_ov44_02232DA0)); + arg0->unk4 = arg1; + u32 temp_r7 = (arg5 - 1) / 8; + arg0->unk10 = arg3; + ov44_02232298(&arg0->unk14, arg0->unk4, arg2); + ov44_02232334(arg0->unk10, arg1); + + u32 temp_r0 = ov44_02232E90(temp_r7); + UnkStruct_ov44_02232914 sp4; + sp4 = (UnkStruct_ov44_02232914){temp_r0, temp_r0 >> 0x10}; + + arg0->unk6E4 = ov42_02227EE0(sp4.unk0, sp4.unk2, arg1); + ov42_02227F48(arg0->unk6E4, ov44_02232E9C(temp_r7)); + arg0->unk6E8 = ov42_02228010(0x30, arg1); + ov44_02232204(arg0, arg4, arg1); + ov42_02229394(&arg0->unk6F0); + ov44_02232248(arg0, arg1, arg2, temp_r7); + ov44_0223233C(arg0->unk10, arg1, arg2); + ov44_02232CCC(arg0, &arg0->unk6D0, arg2); + arg0->unk6F8 = ov42_02229A40(0x80, arg1); + arg0->unk0 = 1; +} + +void ov44_02231B4C(UnkStruct_ov44_02232DA0* arg0) { + ov42_02229A78(arg0->unk6F8); + ov44_02232288(arg0); + ov44_02232D08(arg0, &arg0->unk6D0); + ov44_02232028(arg0); + ov44_02232238(arg0); + ov42_02228050(arg0->unk6E8); + ov42_02227F28(arg0->unk6E4); + ov44_022322E8(&arg0->unk14); + ov44_02232338(arg0->unk10); + memset(arg0, 0, sizeof(UnkStruct_ov44_02232DA0)); +} + +s32 ov44_02231BB0(s32* arg0) { + return arg0[0]; +} + +s32 ov44_02231BB4(UnkStruct_ov44_02232DA0* arg0) { + ov42_0222807C(arg0->unk6E8); + ov44_02232158(arg0); + ov44_02232104(arg0); + ov42_02229358(&arg0->unk6F0, arg0->unk6CC->unk0); + ov42_02229420(arg0->unk6F4, &arg0->unk6F0); + ov42_022290DC(arg0->unk6EC); + ov44_02232194(arg0); + ov44_02232594(arg0); + if (ov44_02232050(arg0) == 1) { + if (ov44_02232604(arg0) == 1) { + ov44_0223254C(arg0); + if (128 & gSystem.heldKeys) { + return 1; + } + } + if (1 & gSystem.newKeys) { + if (ov44_02231C70(arg0) != 0) { + return 2; + } + if (ov44_02232070(arg0) == 1) { + return 3; + } + } + } + return 0; +} + +void ov44_02231C60(UnkStruct_ov44_02232DA0* arg0) { + if (arg0->unk0 != 0) { + SpriteList_RenderAndAnimateSprites(arg0->unk14.unk0); + } +} + +u8 ov44_02231C70(UnkStruct_ov44_02232DA0* arg0) { + if (arg0->unk6CC == NULL) { + GF_AssertFail(); + } + return arg0->unk6CC->unkA; +} + +void ov44_02231C8C(UnkStruct_ov44_02232DA0* arg0) { + if (arg0->unk6CC == NULL) { + GF_AssertFail(); + } + u32 temp_r0 = ov42_022282DC(arg0->unk6CC->unk0); + vu16 sp0[4]; + sp0[0] = temp_r0; + sp0[1] = temp_r0 >> 16; + sp0[2] = sp0[0]; + sp0[3] = sp0[1]; + ov42_02227FDC(arg0->unk6E4, (s16)sp0[2] / 16, (s16)sp0[3] / 16); +} + +s32 ov44_02231CE8(UnkStruct_ov44_02232DA0* arg0) { + if (arg0->unk6CC == NULL) { + GF_AssertFail(); + } + + u32 temp_r0 = ov42_022282DC(arg0->unk6CC->unk0); + UnkStruct_ov44_02232914 sp0; + sp0 = (UnkStruct_ov44_02232914){temp_r0, temp_r0 >> 16}; + ov42_02227FDC(arg0->unk6E4, (s16)sp0.unk0 / 16, ((s16)sp0.unk2 / 16) + 1); +} + +void ov44_02231D48(UnkStruct_ov44_02232DA0* arg0, s32* arg1) { + u32 temp_r0 = ov42_022282DC(arg1[0]); + UnkStruct_ov44_02232914 sp0[2]; + sp0[0].unk0 = temp_r0; + sp0[0].unk2 = temp_r0 >> 16; + sp0[1] = sp0[0]; + ov44_022325A4(arg0, sp0[1], ov42_0222920C(arg1[1]) - 2); +} + +void ov44_02231D8C(UnkStruct_ov44_02232DA0* arg0) { + ov44_022325F4(arg0); +} + +void ov44_02231D94(UnkStruct_ov44_02232DA0* arg0, s32 arg1) { + arg0->unkC = arg1; +} + +s32 ov44_02231D98(UnkStruct_ov44_02232DA0* arg0) { + return arg0->unkC; +} + +UnkStruct_ov44_02232B74* ov44_02231D9C(UnkStruct_ov44_02232DA0* arg0, s16 arg1) { + s16 spC; + UnkStruct_ov44_02232B74* temp_r0 = ov44_02232798(arg0); + arg0->unk6CC = temp_r0; + ov44_02232724(arg0, &spC); + ov44_02232800(arg0, temp_r0, &spC, 0, arg1, 0, 0); + ov44_02232864(arg0, temp_r0); + ov44_022327C8(arg0, temp_r0, 1); + ov42_02229358(&arg0->unk6F0, arg0->unk6CC->unk0); + ov42_02229420(arg0->unk6F4, &arg0->unk6F0); + return temp_r0; +} + +UnkStruct_ov44_02232B74* ov44_02231E08(UnkStruct_ov44_02232DA0* arg0, s16 arg1, s16 arg2) { + u16 spC[6]; + UnkStruct_ov44_02232B74* temp_r4; + + temp_r4 = ov44_02232798(arg0); + ov44_02232680(arg0, &spC[4], arg2 - 1); + if (arg0->unk6CC != NULL) { + u32 temp_r0_2 = ov42_022282DC(arg0->unk6CC->unk0); + spC[0] = temp_r0_2; + spC[1] = temp_r0_2 >> 16; + spC[2] = spC[0]; + spC[3] = spC[1]; + if (((s16) spC[2] == (s16)spC[4]) && ((s16) spC[3] == (s16)spC[5])) { + return NULL; + } + } + ov44_02232800(arg0, temp_r4, &spC[4], arg2, arg1, 1, 4); + ov44_02232884(arg0, temp_r4); + ov44_022327C8(arg0, temp_r4, 0); + return temp_r4; +} + +void ov44_02231E94(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1) { + ov42_02228188(arg1->unk0, 6); + arg1->unk10 = ov44_02232BCC; + arg1->unk18 = ov44_02232914; + arg1->unkC = 2; + arg1->unk8 = 0; + ov42_0222919C(arg1->unk4, 0); + ov42_022291A0(arg1->unk4); + ov44_02232C6C(arg0, 4, arg1); +} + +void ov44_02231ED4(s32* arg0) { + ov42_022290C4(arg0[1]); + ov42_02228100(arg0[0]); + __builtin__clear(arg0, 28); +} + +u8 ov44_02231EF4(s32* arg0) { + return ov42_02228188(arg0[0], 4); +} + +void ov44_02231F04(s32* arg0) { + ov42_02228188(arg0[0], 6); + ov42_022282A4(); +} + +void ov44_02231F14(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1, s32 arg2) { + arg1->unk14 = arg1->unk10; + arg1->unk10 = ov44_02232C48; + arg1->unkE = arg1->unkC; + arg1->unkC = 5; + ov44_02232C4C(arg0, 0, arg2, ov42_02228188(arg1->unk0, 4)); + ov42_0222919C(arg1->unk4, 0); + ov42_02229218(arg1->unk4, arg2); + + UnkStruct_ov44_02232914 temp_r3 = {ov42_02228188(arg1->unk0, 0), ov42_02228188(arg1->unk0, 1)}; + ov42_022291D8(arg1->unk4, temp_r3); +} + +void ov44_02231F88(s32 arg0, UnkStruct_ov44_02232B74* arg1) { + if (arg1 != NULL) { + if (arg1->unk14 != 0) { + arg1->unk10 = arg1->unk14; + arg1->unk14 = 0; + arg1->unkC = arg1->unkE; + ov42_0222919C(arg1->unk4, 1); + } + } +} + +void ov44_02231FA8(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1, u8 arg2) { + if (ov44_02232C94(arg1) == 0) { + arg1->unkB = arg2; + return; + } + ov44_02232CA8(arg0, arg1, arg2); +} + +void ov44_02231FCC(UnkStruct_ov44_02232DA0* arg0) { + if (ov44_02232070(arg0) == 1) { + s8 temp_r4 = (s8) ov44_02231CE8(arg0) - 3; + if (temp_r4 < 0 || temp_r4 >= 4) { + GF_AssertFail(); + } + ov44_02232E5C(&arg0->unk6D0, temp_r4); + return; + } + GF_AssertFail(); +} + +void ov44_02232008(UnkStruct_ov44_02232DA0* arg0) { + ov44_02232E80(&arg0->unk6D0); +} + +void ov44_02232018(UnkStruct_ov44_02232DA0* arg0) { + ov44_02232D20(arg0, &arg0->unk6D0); +} + +void ov44_02232028(UnkStruct_ov44_02232DA0* arg0) { + for (s32 i = 0; i < 48; i++) { + if (arg0->unk18C[i].unk0 != 0) { + ov44_02231ED4(&arg0->unk18C[i].unk0); + } + } +} + +s32 ov44_02232050(UnkStruct_ov44_02232DA0* arg0) { + if (ov42_02228188(arg0->unk6CC->unk0, 5) == 0) { + return 1; + } + return 0; +} + +s32 ov44_02232070(UnkStruct_ov44_02232DA0* arg0) { + u32 temp = ov42_022282DC(arg0->unk6CC->unk0); + UnkStruct_ov44_02232914 sp0[2]; + sp0[1] = (UnkStruct_ov44_02232914){temp, temp >> 16}; + + u16 temp_r4 = ov42_02228188(arg0->unk6CC->unk0, 6); + temp = ov42_02228270(sp0[1], temp_r4); + sp0[0] = (UnkStruct_ov44_02232914){temp, temp >> 16}; + + s32 temp_r0_3 = ov42_02227FDC(arg0->unk6E4, (s16)sp0[0].unk0 / 16, (s16)sp0[0].unk2 / 16); + if ((temp_r4 == 0) && (temp_r0_3 == 2)) { + return 1; + } + return 0; +} + +void ov44_02232104(UnkStruct_ov44_02232DA0* arg0) { + u32 sp0[3]; + if (ov42_02229AC8(arg0->unk6F8, &sp0[2]) == 1) { + do { + if (ov42_02228C80(arg0->unk6E4, arg0->unk6E8, &sp0[2], &sp0[0]) == 1) { + ov42_02228068(arg0->unk6E8, &sp0[0]); + } + } while (ov42_02229AC8(arg0->unk6F8, &sp0[2]) == 1); + } +} + +void ov44_02232158(UnkStruct_ov44_02232DA0* arg0) { + for (s32 i = 0; i < 48; i++) { + if ((arg0->unk18C[i].unk0 != 0) && (arg0->unk18C[i].unk10(arg0, &arg0->unk18C[i]) == 1)) { + ov44_02231ED4(&arg0->unk18C[i].unk0); + } + } +} + +void ov44_02232194(UnkStruct_ov44_02232DA0* arg0) { + for (s32 i = 0; i < 48; i++) { + if (arg0->unk18C[i].unk0 != 0) { + arg0->unk18C[i].unk18(arg0, &arg0->unk18C[i]); + } + } +} + +UnkStruct_ov44_02232B74* ov44_022321C4(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1, u16 arg2) { + s32 temp_r0 = ov42_022283BC(arg1->unk0, arg0->unk6E8); + if (temp_r0 != 0) { + for (s32 i = 0; i < 48; i++) { + s32 temp_r3 = arg0->unk18C[i].unk0; + if (temp_r3 == temp_r0) { + return &arg0->unk18C[i]; + } + } + } + return NULL; +} + +void ov44_02232204(UnkStruct_ov44_02232DA0* arg0, s32 arg1, s32 arg2) { + arg0->unk6EC = ov42_02228F24(arg0->unk14.unk0, 0, 48, arg1, 0, 1, arg2); + ov42_02229028(arg0->unk6EC, 2, arg2); +} + +void ov44_02232238(UnkStruct_ov44_02232DA0* arg0) { + ov42_02228F94(arg0->unk6EC); +} + +void ov44_02232248(UnkStruct_ov44_02232DA0* arg0, s32 arg1, NARC* arg2, s32 arg3) { + u32 index = 0; + u8 sp0[11]; + sp0 = ov44_02235604; + + sp0[9] += arg3; + arg0->unk6F4 = ov42_022293B8(&arg0->unk14.unk4, arg0->unk10, &sp0, arg1); +} + +void ov44_02232288(UnkStruct_ov44_02232DA0* arg0) { + ov42_0222940C(arg0->unk6F4); +} + +void ov44_02232298(UnkStruct_ov44_02231A7C* arg0, enum HeapID heapID, NARC* narc) { + arg0->unk0 = G2dRenderer_Init(96, &arg0->unk4, heapID); + G2dRenderer_SetSubSurfaceCoords(&arg0->unk4, 0, 0x320000); + for (s32 i = 0; i < 4; i ++) { + arg0->unk12C[i] = Create2DGfxResObjMan(16, (GfGfxResType)i, heapID); + } + ov44_02232314(arg0, heapID, narc); + ov44_02232324(arg0, heapID); +} + +void ov44_022322E8(UnkStruct_ov44_02231A7C* arg0) { + ov44_0223232C(arg0); + ov44_0223231C(arg0); + for (s32 i = 0; i < 4; i ++) { + Destroy2DGfxResObjMan(arg0->unk12C[i]); + } + SpriteList_Delete(arg0->unk0); +} + +void ov44_02232314(UnkStruct_ov44_02231A7C* arg0, enum HeapID heapID , NARC* narc) { + ov44_0223237C(arg0, heapID, narc); +} + +void ov44_0223231C(UnkStruct_ov44_02231A7C* arg0) { + ov44_0223247C(arg0); +} + +void ov44_02232324(UnkStruct_ov44_02231A7C* arg1, enum HeapID heapID) { + ov44_022324B0(arg1, heapID); +} + +void ov44_0223232C(UnkStruct_ov44_02231A7C* arg0) { + ov44_02232530(arg0); +} + +void ov44_02232334(BgConfig* arg0, enum HeapID heapID) { + +} + +void ov44_02232338(BgConfig* arg0) { + +} + +void ov44_0223233C(BgConfig *bgConfig, enum HeapID heapID, NARC* narc) { + GfGfxLoader_GXLoadPalFromOpenNarc(narc, 31, GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_0_OFFSET, 256, heapID); + BG_SetMaskColor(0, 0); + GfGfxLoader_LoadCharDataFromOpenNarc(narc, 30, bgConfig, GF_BG_LYR_MAIN_0, 0, 0, 0, heapID); +} + +void ov44_0223237C(UnkStruct_ov44_02231A7C* arg0, enum HeapID heapID, NARC* narc) { + arg0->unk13C[0] = AddCharResObjFromOpenNarc(arg0->unk12C[0], narc, NARC_a_0_3_8, FALSE, 50, NNS_G2D_VRAM_TYPE_2DMAIN, heapID); + arg0->unk13C[1] = AddPlttResObjFromOpenNarc(arg0->unk12C[1], narc, NARC_fielddata_encountdata_g_enc_data, FALSE, 50, NNS_G2D_VRAM_TYPE_2DMAIN, 1, heapID); + arg0->unk13C[2] = AddCellOrAnimResObjFromOpenNarc(arg0->unk12C[2], narc, NARC_a_0_3_9, FALSE, 50, GF_GFX_RES_TYPE_CELL, heapID); + arg0->unk13C[3] = AddCellOrAnimResObjFromOpenNarc(arg0->unk12C[3], narc, NARC_a_0_4_0, FALSE, 50, GF_GFX_RES_TYPE_ANIM, heapID); + if (sub_0200ADA4(arg0->unk13C[0]) != 1) { + GF_AssertFail(); + } + if (sub_0200B00C(arg0->unk13C[1]) != 1) { + GF_AssertFail(); + } + sub_0200A740(arg0->unk13C[0]); + sub_0200A740(arg0->unk13C[1]); + CreateSpriteResourcesHeader(&arg0->unk14C, 50, 50, 50, 50, -1, -1, 0, 2, arg0->unk12C[0], arg0->unk12C[1], arg0->unk12C[2], arg0->unk12C[3], 0, 0); +} + +void ov44_0223247C(UnkStruct_ov44_02231A7C* arg0) { + sub_0200AEB0(arg0->unk13C[0]); + sub_0200B0A8(arg0->unk13C[1]); + for (s32 i = 0; i < 4; i ++) { + DestroySingle2DGfxResObj(arg0->unk12C[i], arg0->unk13C[i]); + } +} + +void ov44_022324B0(UnkStruct_ov44_02231A7C* arg0, enum HeapID heapID) { + SpriteTemplate spriteTemplate = {}; + spriteTemplate.spriteList = arg0->unk0; + spriteTemplate.header = &arg0->unk14C; + + spriteTemplate.whichScreen = NNS_G2D_VRAM_TYPE_2DMAIN; + + spriteTemplate.scale.x = 4096; + spriteTemplate.scale.y = 4096; + spriteTemplate.heapID = heapID; + + spriteTemplate.drawPriority = 0; + + arg0->unk170 = Sprite_CreateAffine(&spriteTemplate); + arg0->unk174 = Sprite_CreateAffine(&spriteTemplate); + Sprite_SetDrawFlag(arg0->unk170, 0); + Sprite_SetDrawFlag(arg0->unk174, 0); + Sprite_SetAnimActiveFlag(arg0->unk170, 1); + Sprite_SetAnimCtrlSeq(arg0->unk174, 1); +} + +void ov44_02232530(UnkStruct_ov44_02231A7C* arg0) { + Sprite_Delete(arg0->unk170); + Sprite_Delete(arg0->unk174); +} + +void ov44_0223254C(UnkStruct_ov44_02232DA0* arg0) { + VecFx32 vec; + s16 sp0[2]; + + ov44_02232724(arg0, sp0); + sp0[0] = sp0[0] + 8; + sp0[1] = sp0[1] + 32; + vec.x = sp0[0] << 12; + vec.y = sp0[1] << 12; + Sprite_SetMatrix(arg0->unk14.unk170, &vec); + Sprite_SetDrawFlag(arg0->unk14.unk170, 1); +} + +void ov44_02232594(UnkStruct_ov44_02232DA0* arg0) { + Sprite_SetDrawFlag(arg0->unk14.unk170, 0); +} + +void ov44_022325A4(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232914 arg1, s32 arg2) { + VecFx32 vec; + vec.x = (s16)arg1.unk0 + 8 << 16 >> 4; + vec.y = (s16)(arg1.unk2) * 4096; + Sprite_SetMatrix(arg0->unk14.unk174, &vec); + Sprite_SetDrawPriority(arg0->unk14.unk174, arg2); + Sprite_SetDrawFlag(arg0->unk14.unk174, 1); +} + +void ov44_022325F4(UnkStruct_ov44_02232DA0* arg0) { + Sprite_SetDrawFlag(arg0->unk14.unk174, 0); +} + +s32 ov44_02232604(UnkStruct_ov44_02232DA0* arg0) { + if (arg0->unk6CC == 0) { + return 0; + } + u32 temp_r0_2 = ov42_022282DC(arg0->unk6CC->unk0); + + s16 sp4[2]; + sp4 = (s16[2]){temp_r0_2, temp_r0_2 >> 16}; + + u16 temp_r4 = ov42_02228188(arg0->unk6CC->unk0, 6); + if (ov42_02227FDC(arg0->unk6E4, sp4[0] / 16, sp4[1] / 16) == 0xF && temp_r4 == 1) { + return 1; + } + return 0; +} + +void ov44_02232680(UnkStruct_ov44_02232DA0* arg0, u16* arg1, u32 arg2) { + u32 r7 = arg2 / 8; + u32 r4 = arg2 % 8; + u16 r6 = ov42_02227F40(arg0->unk6E4); + u16 sp4 = ov42_02227F44(arg0->unk6E4); + + for (u32 i = 0; i < sp4; i++) { + for (u32 j = 0; j < r6; j++) { + s32 temp_r0 = ov42_02227FDC(arg0->unk6E4, j, i); + if (temp_r0 == r4 + 7) { + temp_r0 = ov42_02227FDC(arg0->unk6E4, j, i + 1); + if (temp_r0 == r7 + 3) { + arg1[0] = j << 4; + arg1[1] = i << 4; + return; + } + } + } + } + GF_AssertFail(); +} + +void ov44_02232724(UnkStruct_ov44_02232DA0* arg0, s16* arg1) { + u16 temp_r5 = ov42_02227F40(arg0->unk6E4); + u16 temp_r0 = ov42_02227F44(arg0->unk6E4); + + for (u32 i = 0; i < temp_r0; i++) { + for (u32 j = 0; j < temp_r5; j++) { + if (ov42_02227FDC(arg0->unk6E4, j, i) == 15) { + arg1[0] = j << 4; + arg1[1] = i << 4; + return; + } + } + } + GF_AssertFail(); +} + +UnkStruct_ov44_02232B74* ov44_02232798(UnkStruct_ov44_02232DA0* arg0) { + for (s32 i = 0; i < 48; i++) { + if (arg0->unk18C[i].unk0 == 0) { + return &arg0->unk18C[i]; + } + } + GF_AssertFail(); + return NULL; +} + +void ov44_022327C8(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1, s32 arg2) { + arg1->unk4 = ov42_0222903C(arg0->unk6EC, arg1->unk0, arg2, arg0->unk4); + if (arg2 == 0) { + ov42_0222919C(arg1->unk4, 0); + ov42_022291A0(arg1->unk4); + ov42_02229200(arg1->unk4, 0); + } +} + +void ov44_02232800(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1, s16* arg2, s16 arg3, u16 arg4, u8 arg5, s32 arg6) { + u16 sp[6]; + sp[0] = arg2[0]; + sp[1] = arg2[1]; + sp[2] = arg3; + sp[3] = arg6; + sp[4] = arg5; + sp[5] = arg4; + arg1->unk0 = ov42_022280B8(arg0->unk6E8, sp); +} + +s32 ov44_02232838(UnkStruct_ov44_02232B74* arg0) { + switch (arg0->unkC) { + case 0: + case 3: + case 4: + return 1; + case 1: + case 2: + case 5: + return 0; + default: + return 0; + } +} + +void ov44_02232864(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1) { + arg1->unk10 = ov44_02232A60; + arg1->unk18 = ov44_02232910; + arg1->unkC = 0; + ov44_02232C6C(arg0, 0, arg1); +} + +void ov44_02232884(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1) { + arg1->unk10 = ov44_02232B74; + arg1->unk18 = ov44_02232914; + arg1->unk8 = 45; + arg1->unkC = 1; +} + +void ov44_022328A0(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1) { + arg1->unk10 = ov44_02232BE4; + arg1->unk18 = ov44_02232910; + arg1->unk8 = (1023 & MTRandom()) + 256; + arg1->unkC = 3; + ov44_02232C6C(arg0, 0, arg1); + ov42_0222919C(arg1->unk4, 1); +} + +void ov44_022328E4(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1) { + arg1->unk10 = ov44_02232C30; + arg1->unk18 = ov44_022329B0; + arg1->unk8 = 28; + arg1->unkC = 4; + ov44_02232C6C(arg0, 4, arg1); + ov42_0222919C(arg1->unk4, 0); +} + +void ov44_02232910(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1) { + +} + +void ov44_02232914(UnkStruct_ov44_02232DA0 *arg0, UnkStruct_ov44_02232B74* arg1) { + ov42_022291AC(arg1->unk4); + if (ov42_022291F4(arg1->unk4) == 0) { + ov42_02229200(arg1->unk4, 1); + } + UnkStruct_ov44_02232914 sp0 = {ov42_02228188(arg1->unk0, 0), ov42_02228188(arg1->unk0, 1)}; + UnkStruct_ov44_02232914 sp4 = sp0; + + s64 temp_ret = (s64)GF_SinDegNoWrap(arg1->unk8) * (signed)0xFFF40000; + temp_ret += 2048; + + s32 r1 = (temp_ret >> 12); + sp0.unk2 = (s16)sp0.unk2 + (r1 >> 12); + + ov42_022291D8(arg1->unk4, sp0); + ov42_02229258(arg1->unk4, sp4); +} + +void ov44_022329B0(UnkStruct_ov44_02232DA0 *arg0, UnkStruct_ov44_02232B74* arg1) { + UnkStruct_ov44_02232914 sp0 = {ov42_02228188(arg1->unk0, 0), ov42_02228188(arg1->unk0, 1)}; + UnkStruct_ov44_02232914 sp4 = sp0; + + s16 temp_r0 = arg1->unk8 - 16; + if (temp_r0 > 0) { + s32 temp_r0_2 = (s16)(temp_r0 % 6)* 180; + s32 temp_r0_3 = GF_SinDegNoWrap(temp_r0_2 / 6); + + s64 r6 = ((s64)temp_r0_3 << 14) + 2048; + sp0.unk2 = (s16)sp0.unk2 - ((s32)(r6 >> 12) >> 12); + } + ov42_022291D8(arg1->unk4, sp0); + ov42_02229258(arg1->unk4, sp4); + + ov42_02229218(arg1->unk4, 1); +} + +s32 ov44_02232A60(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1) { + u16 temp_r4 = ov42_02228188(arg1->unk0, 6); + u16 temp_r7 = ov42_02228188(arg1->unk0, 4); + if (ov42_02228188(arg1->unk0, 5) != 0) { + return 0; + } + if (1 & gSystem.newKeys) { + UnkStruct_ov44_02232B74* temp_r0 = ov44_022321C4(arg0, arg1, temp_r4); + if (temp_r0 != NULL) { + if (ov44_02232838(temp_r0) == 1) { + arg1->unkA = ov42_02228188(temp_r0->unk0, 4); + } else { + arg1->unkA = 0; + } + } else { + arg1->unkA = 0; + } + } + if (arg0->unkC == 1) { + return 0; + } + s16 var_r1 = 2; + if (gSystem.heldKeys & 2) { + var_r1 = 3; + } + if (64 & gSystem.heldKeys) { + if (temp_r4 == 0) { + ov44_02232C4C(arg0, var_r1, temp_r4, temp_r7); + } else { + ov44_02232C4C(arg0, 1, 0, temp_r7); + } + } else if (128 & gSystem.heldKeys) { + if (temp_r4 == 1) { + ov44_02232C4C(arg0, var_r1, temp_r4, temp_r7); + } else { + ov44_02232C4C(arg0, 1, 1, temp_r7); + } + } else if (32 & gSystem.heldKeys) { + if (temp_r4 == 2) { + ov44_02232C4C(arg0, var_r1, temp_r4, temp_r7); + } else { + ov44_02232C4C(arg0, 1, 2, temp_r7); + } + } else if (gSystem.heldKeys & 16) { + if (temp_r4 == 3) { + ov44_02232C4C(arg0, var_r1, temp_r4, temp_r7); + } else { + ov44_02232C4C(arg0, 1, 3, temp_r7); + } + } + return 0; +} + +s32 ov44_02232B74(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1) { + arg1->unk8--; + if (arg1->unk8 <= 0) { + ov42_022291B8(arg1->unk4); + ov42_0222919C(arg1->unk4, 1); + u16 temp_r6 = ov42_02228188(arg0->unk6CC->unk0, 4); + u16 temp_r0 = ov42_02228188(arg1->unk0, 4); + if (temp_r0 == temp_r6) { + ov44_02232864(arg0, arg1); + } else { + ov44_02232CA8(arg0, arg1, arg1->unkB); + } + } + return 0; +} + +s32 ov44_02232BCC(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1) { + arg1->unk8++; + if (arg1->unk8 > 45) { + return 1; + } + return 0; +} + +s32 ov44_02232BE4(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1) { + arg1->unk8--; + if (arg1->unk8 <= 0) { + arg1->unk8 = (1023 & MTRandom()) + 256; + u32 temp_r4 = MTRandom() & 3; + ov44_02232C4C(arg0, 0, temp_r4, ov42_02228188(arg1->unk0, 4)); + } + return 0; +} + +s32 ov44_02232C30(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1) { + arg1->unk8--; + if (arg1->unk8 < 0) { + arg1->unk8 = 28; + } + return 0; +} + +s32 ov44_02232C48(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1) { + return 0; +} + +void ov44_02232C4C(UnkStruct_ov44_02232DA0* arg0, s16 arg1, u32 arg2, u16 arg3) { + UnkStruct_ov44_02232C4C temp; + temp.unk0 = arg1; + temp.unk2 = arg2; + temp.unk3 = arg3; + + ov42_02229A8C(arg0->unk6F8, &temp); +} + +void ov44_02232C6C(UnkStruct_ov44_02232DA0* arg0, s16 arg1, UnkStruct_ov44_02232B74* arg2) { + u16 temp_r7 = ov42_02228188(arg2->unk0, 6); + ov44_02232C4C(arg0, arg1, temp_r7, ov42_02228188(arg2->unk0, 4)); +} + +s32 ov44_02232C94(UnkStruct_ov44_02232B74* arg0) { + if (arg0->unk18 != ov44_02232914) { + return 1; + } + return 0; +} + +void ov44_02232CA8(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232B74* arg1, u8 arg2) { + switch (arg2) { + case 0: + ov44_022328A0(arg0, arg1); + break; + case 1: + ov44_022328E4(arg0, arg1); + break; + default: + GF_AssertFail(); + break; + } + arg1->unkB = arg2; +} + +void ov44_02232CCC(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232E80* arg1, NARC* arg2) { + __builtin__clear(arg1, sizeof(UnkStruct_ov44_02232E80)); + arg1->unk0 = GfGfxLoader_GetPlttDataFromOpenNarc(arg2, 32, &arg1->unk4, arg0->unk4); + arg1->unk8 = 15; + arg1->unk9 = 0; + arg1->unkA = ov44_02235600[arg1->unk9]; +} + +void ov44_02232D08(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232E80* arg1) { + Heap_Free(arg1->unk0); + __builtin__clear(arg1, sizeof(UnkStruct_ov44_02232E80)); +} + +void ov44_02232D20(UnkStruct_ov44_02232DA0* arg0, UnkStruct_ov44_02232E80* arg1) { + ov44_02232D34(arg1); + ov44_02232DA0(arg1); +} + +void ov44_02232D34(UnkStruct_ov44_02232E80* arg0) { + s32 var_r6; + + arg0->unkA--; + if (arg0->unkA <= 0) { + arg0->unk9 = (arg0->unk9 + 1) % 2; + arg0->unkA = ov44_02235600[arg0->unk9]; + if (arg0->unk9 == 1) { + var_r6 = 2; + } else { + var_r6 = 1; + } + for (s32 i = 0; i < 4; i ++) { + if (arg0->unk8 & (1 << i)) { + GF_CreateNewVramTransferTask(NNS_GFD_DST_2D_BG_PLTT_MAIN, ((i + 1) * 2) + 224, ov44_02232E2C(arg0, var_r6), 2); + } + } + } +} + +void ov44_02232DA0(UnkStruct_ov44_02232E80* arg0) { + u32 r0 = 0; + u32 r1 = 0; + u32 r2 = 0; + if (ov44_0223560F[arg0->unkD << 2] == 1) { + arg0->unkE--; + if (arg0->unkE <= 0) { + r2 = 1; + } + } + else if (arg0->unk10 != 0) { + arg0->unk10 = 0; + r2 = 1; + } + if (r2 != 0) { + arg0->unkD++; + if (arg0->unkD >= 8) { + ov44_02232E38(arg0); + return; + } + arg0->unkE = ov44_02235610[arg0->unkD << 2]; + r0 = ov44_02235611[arg0->unkD << 2]; + r1 = ov44_02235612[arg0->unkD << 2]; + } + if (r0 != 0) { + GF_CreateNewVramTransferTask(NNS_GFD_DST_2D_BG_PLTT_MAIN, ((arg0->unkC + 1)* 2) + 224, ov44_02232E2C(arg0, r1), 2); + } +} + +void* ov44_02232E2C(UnkStruct_ov44_02232E80* arg0, s32 arg1) { + return arg0->unk4->pRawData + (arg1 + 1) * 2; +} + +void ov44_02232E38(UnkStruct_ov44_02232E80* arg0) { + arg0->unk8 = (arg0->unk8 | (1 << arg0->unkC)); + arg0->unkC = 0; + arg0->unkD = 0; + arg0->unkE = 0; + arg0->unk10 = 0; +} + +void ov44_02232E54(UnkStruct_ov44_02232E80* arg0) { + arg0->unk10 = 1; +} + +void ov44_02232E5C(UnkStruct_ov44_02232E80* arg0, u8 arg1) { + if (arg0->unkD != 0) { + ov44_02232E38(arg0); + } + arg0->unk8 = arg0->unk8 ^ (1 << arg1); + arg0->unkC = arg1; + ov44_02232E54(arg0); +} + +void ov44_02232E80(UnkStruct_ov44_02232E80* arg0) { + if (arg0->unkD != 0) { + ov44_02232E54(arg0); + } +} + +s32 ov44_02232E90(s32 arg0) { + return ov44_02235630[arg0]; +} + +s32 ov44_02232E9C(u32 arg0) { + return ov44_0223688C[arg0]; +} \ No newline at end of file diff --git a/src/overlay_44_02235340.c b/src/overlay_44_02235340.c new file mode 100644 index 000000000..0473f6155 --- /dev/null +++ b/src/overlay_44_02235340.c @@ -0,0 +1,1884 @@ +#include "overlay_44.h" + +#include "unk_02037C94.h" +#include "unk_0200FA24.h" +#include "unk_0203A3B0.h" +#include "unk_02034354.h" +#include "unk_02035900.h" +#include "unk_020379A0.h" +#include "unk_02005D10.h" +#include "sound_02004A44.h" +#include "overlay_00_arm.h" +#include "overlay_00_thumb.h" +#include "overlay_42.h" +#include "unk_0200B150.h" +#include "unk_0200A090.h" +#include "unk_020971F8.h" + +#include "global.h" +#include "obj_pltt_transfer.h" +#include "obj_char_transfer.h" +#include "overlay_manager.h" +#include "vram_transfer_manager.h" +#include "text.h" +#include "font.h" +#include "gf_gfx_loader.h" +#include "constants/sndseq.h" +#include "msgdata/msg.naix" +#include "msgdata/msg/msg_0778.h" + +#include "bg_window.h" +#include "filesystem.h" + +// const u8 ov44_02236458[4] = {0x08, 0x00, 0x04, 0x0C}; +// const WindowTemplate ov44_0223645C = {2, 25, 13, 5, 4, 1, 57}; +// const func_type ov44_02236464[4] = {ov44_02234324, ov44_02234328, ov44_0223435C, ov44_02234388}; +// const GraphicsModes ov44_02236474 = { +// GX_DISPMODE_GRAPHICS, +// GX_BGMODE_0, +// GX_BGMODE_0, +// GX_BG0_AS_2D +// }; +// const ObjCharTransferTemplate ov44_02236484 = { +// 4, +// 0x00020000, +// 0x00004000, +// HEAP_ID_DEFAULT +// }; +// const BgTemplate ov44_02236494 = {0, 0, 2048, 0, 1, 0, 26, 4, 0, 1, 0, 0, 0}; +// const BgTemplate ov44_022364B0 = {0, 0, 2048, 0, 1, 0, 28, 0, 0, 2, 0, 0, 0}; +// const BgTemplate ov44_022364CC = {0, 0, 2048, 0, 1, 0, 27, 2, 1, 0, 0, 0, 0}; + +// const GraphicsBanks ov44_022364E8 = { +// GX_VRAM_BG_128_A, GX_VRAM_BGEXTPLTT_NONE, GX_VRAM_SUB_BG_128_C, +// GX_VRAM_SUB_BGEXTPLTT_NONE, GX_VRAM_OBJ_128_B, GX_VRAM_OBJEXTPLTT_NONE, +// GX_VRAM_SUB_OBJ_16_I, GX_VRAM_SUB_OBJEXTPLTT_NONE, GX_VRAM_TEX_NONE, GX_VRAM_TEXPLTT_NONE}; + +// const u16 ov44_02236510[4][6] = { +// { 208, 48, 0, 0, 1, 0 }, +// { 232, 72, 1, 0, 2, 0 }, +// { 208, 96, 2, 0, 0, 0 }, +// { 184, 72, 3, 0, 3, 0 }, +// }; +// const func_type_1 ov44_02236540[30] = +// {ov44_02234BF0, ov44_02234C10, Wifi_PromptAwaitingResponse, ov44_02234C88, ov44_02234CE8, +// ov44_02234D28, ov44_02234D4C, ov44_02234D88, Wifi_PromptAwaitingMembers, +// ov44_02234DE4, ov44_02234E08, ov44_02234EA4, ov44_02234EF4, +// ov44_02234F44, ov44_02234F60, ov44_02234F88, Wifi_PromptMemberDrop, +// ov44_02234FDC, Wifi_PromptToggleVoiceChat_, ov44_02235038, ov44_02235090, +// ov44_02235100, ov44_02235158, ov44_0223518C, ov44_022351BC, +// ov44_022351DC, ov44_02235218, ov44_02235268, ov44_0223532C, +// ov44_02235340}; + +// const func_type_1 ov44_022365B8[33] = +// {ov44_02234474, Wifi_PromptReadyMessage, ov44_022344C4, Wifi_PromptUserJoinRequest, +// ov44_022345C8, ov44_022345FC, Wifi_PromptInsufficientMembers, ov44_022346B4, +// Wifi_PromptConfirmMembers, ov44_022346E8, ov44_0223471C, ov44_02234764, +// ov44_0223479C, ov44_022347D4, ov44_022347FC, ov44_02234828, +// ov44_02234858, ov44_022348A8, ov44_022348C4, Wifi_PromptStopFindingMembers, +// ov44_02234904, ov44_02234944, Wifi_PromptDropAsLeader, ov44_022349B4, +// ov44_022349F4, Wifi_PromptCancelInvites, ov44_02234A68, ov44_02234AA8, +// Wifi_PromptMemberDropped, ov44_02234B18, Wifi_PromptToggleVoiceChat, ov44_02234B80, +// ov44_02234BB4}; + +// const u8 ov44_0223663C[20] = {5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 5, 5, 5, 0, 0}; + +// u8 ov44_0223689C[4] = {126, 127, 127, 127}; + +extern const u8 ov44_02236458[]; +extern const WindowTemplate ov44_0223645C; + +extern const func_type_022341C0 ov44_02236464[]; +extern const GraphicsModes ov44_02236474; +extern const ObjCharTransferTemplate ov44_02236484; +extern const BgTemplate ov44_02236494; +extern const BgTemplate ov44_022364B0; +extern const BgTemplate ov44_022364CC; +extern const GraphicsBanks ov44_022364E8; +extern const u16 ov44_02236510[4][6]; + +extern const func_type_02232F64 ov44_02236540[]; +extern const func_type_02232F64 ov44_022365B8[]; +extern const u8 ov44_0223663C[]; + +extern u8 ov44_0223689C[]; + +FS_EXTERN_OVERLAY(OVY_42); + +void ov44_02232EA8(OverlayManager* overlayMananger) { + UnkStruct_ov44_args* temp_r5 = OverlayManager_GetArgs(overlayMananger); + HandleLoadOverlay(FS_OVERLAY_ID(OVY_42), OVY_LOAD_ASYNC); + if (sub_02039998() != 1) { + GF_AssertFail(); + } + Heap_Create(HEAP_ID_3, HEAP_ID_103, 0x18000); + Heap_Create(HEAP_ID_3, HEAP_ID_104, 0xA000); + UnkStruct_ov44_02235340* temp_r0 = OverlayManager_CreateAndGetData(overlayMananger, sizeof(UnkStruct_ov44_02235340), HEAP_ID_103); + MI_CpuFill8(temp_r0, 0, sizeof(UnkStruct_ov44_02235340)); + MI_CpuFill8(temp_r0->unk1C, 1, 4); + MI_CpuFill8(temp_r0->unk20, 1, 4); + GF_CreateVramTransferManager(16, HEAP_ID_103); + u8* temp_r0_2 = sub_020398C8(); + temp_r0->unk0 = temp_r0_2; + temp_r0_2[33] = temp_r0_2[34]; + temp_r0->unk4 = ov44_022331B0(temp_r0); + temp_r0->unk6 = 255; + sub_020971F8(temp_r0); + ov44_02234028(temp_r0); + ov44_022331C4(temp_r0, temp_r5, HEAP_ID_103); + Main_SetVBlankIntrCB((void*)&ov44_0223319C, temp_r0); + sub_0203A880(); + temp_r0->unk27 = 1; +} + +s32 ov44_02232F64(OverlayManager* overlayManager, u32* arg1) { + UnkStruct_ov44_args* temp_r7; + UnkStruct_ov44_02235340* temp_r4; + s32 var_r6; + + temp_r4 = OverlayManager_GetData(overlayManager); + temp_r7 = OverlayManager_GetArgs(overlayManager); + switch (arg1[0]) { + case 0: + BeginNormalPaletteFade(3, 1, 1, RGB_BLACK, 6, 1, HEAP_ID_103); + arg1[0]++; + break; + case 1: + if (IsPaletteFadeFinished() != 0) { + arg1[0]++; + } + break; + case 2: + if (temp_r4->unk27 != 0) { + ov44_02233D8C(temp_r4, temp_r7, HEAP_ID_103); + } + if (temp_r4->unk4 != 0) { + if (sub_02034420() == 1) { + ov44_0223438C(temp_r4); + sub_02034638(); + ov44_02234248(temp_r4); + } + var_r6 = ov44_022365B8[temp_r4->unk5](temp_r4, temp_r7, HEAP_ID_103); + } + else { + var_r6 = ov44_02236540[temp_r4->unk5](temp_r4, temp_r7, HEAP_ID_103); + if (sub_02034420() == 1) { + ov44_0223427C(temp_r4, HEAP_ID_103); + } + } + if (ov44_0223407C(temp_r4) != 0) { + ov44_02233A50(temp_r4, temp_r7, HEAP_ID_103); + } + ov44_022341C0(temp_r4); + if (var_r6 == 1) { + temp_r7->unk3 = temp_r4->unk7; + temp_r7->unk4 = temp_r4->unk11; + arg1[0]++; + } + break; + case 3: + BeginNormalPaletteFade(3, 0, 0, RGB_BLACK, 6, 1, HEAP_ID_103); + arg1[0]++; + break; + case 4: + if (IsPaletteFadeFinished() != 0) { + return 1; + } + } + ov44_02233CCC(&temp_r4->unk30); + SpriteList_RenderAndAnimateSprites(temp_r4->unk30.spriteList); + return 0; +} + +s32 ov44_022330A8(OverlayManager* arg0) { + UnkStruct_ov44_02235340* temp_r4; + + temp_r4 = OverlayManager_GetData(arg0); + OverlayManager_GetArgs(arg0); + Main_SetVBlankIntrCB(0, 0); + ov44_02234038(temp_r4); + ov44_02234204(temp_r4); + ov44_02233F20(temp_r4); + FreeStructOv44_02235340(temp_r4, HEAP_ID_103); + GF_DestroyVramTransferManager(); + OverlayManager_FreeData(arg0); + Heap_Destroy(HEAP_ID_104); + Heap_Destroy(HEAP_ID_103); + UnloadOverlayByID(FS_OVERLAY_ID(OVY_42)); + return 1; +} + +void ov44_02233100(UnkStruct_ov44_02235340* arg0, String* arg1) { + if (arg0->unk4 == 0) { + + if (arg1->maxsize == sub_0203769C()) { + switch (arg1->magic) { + case 1: + arg0->unk13 = 1; + return; + case 0: + arg0->unk13 = 2; + return; + + case 2: + arg0->unk13 = 3; + return; + } + } else { + switch (arg1->magic) { + case 0: + break; + case 1: + arg0->unk28[arg1->maxsize] = 1; + return; + case 2: + break; + default: + return; + } + if (sub_02034420() == 1) { + sub_020346E8(arg1->maxsize); + } + } + } +} + +void ov44_02233160(UnkStruct_ov44_02235340* arg0) { + if (arg0->unk2C == 0) { + arg0->unk2C = 1; + sub_02037AC0(13); + } +} + +void ov44_0223317C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1) { + if (arg0->unk4 != 1) { + __memcpy(arg0->unk20, arg1, 4); + } +} + +void ov44_0223319C(UnkStruct_ov44_02235340* arg0) { + DoScheduledBgGpuUpdates(arg0->unk30.bgConfig); + GF_RunVramTransferTasks(); + OamManager_ApplyAndResetBuffers(); +} + +s32 ov44_022331B0(UnkStruct_ov44_02235340* arg0) { + if (sub_0203769C() == 0) { + return 1; + } + return 0; +} + +void ov44_022331C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + ov44_0223323C(); + InitBgAndScrnData(&arg0->unk30, heapID); + InitWindowList(&arg0->unk30, arg1, heapID); + InitStringAndMsgData(&arg0->unk30, arg1, heapID); + ov44_02233698(&arg0->unk30, arg1, heapID); + ov44_02233A50(arg0, arg1, heapID); + InitSpritesAnd2DGfxResObjs(&arg0->unk30, heapID); +} + +void FreeStructOv44_02235340(UnkStruct_ov44_02235340* arg0, enum HeapID heapID) { + FreeSpritesAnd2DGfxResObjs(&arg0->unk30); + FreeStringAndMsgData(&arg0->unk30); + FreeWindowList(&arg0->unk30, heapID); + FreeBgAndScreenData(&arg0->unk30); +} + +void ov44_0223323C(void) { + GraphicsBanks graphicsBanks = ov44_022364E8; + GfGfx_SetBanks(&graphicsBanks); +} + +void InitBgAndScrnData(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID) { + arg0->bgConfig = BgConfig_Alloc(heapID); + GraphicsModes graphicModes = ov44_02236474; + SetBothScreensModesAndDisable(&graphicModes); + + BgTemplate bgTemplate1 = ov44_022364B0; + InitBgFromTemplate(arg0->bgConfig, GF_BG_LYR_MAIN_0, &bgTemplate1, 0); + BG_ClearCharDataRange(GF_BG_LYR_MAIN_0, 32, 0, heapID); + BgClearTilemapBufferAndCommit(arg0->bgConfig, GF_BG_LYR_MAIN_0); + + BgTemplate bgTemplate2 = ov44_02236494; + InitBgFromTemplate(arg0->bgConfig, GF_BG_LYR_MAIN_1, &bgTemplate2, 0); + BG_ClearCharDataRange(GF_BG_LYR_MAIN_1, 32, 0, heapID); + BgClearTilemapBufferAndCommit(arg0->bgConfig, GF_BG_LYR_MAIN_1); + + BgTemplate bgTemplate3 = ov44_022364CC; + InitBgFromTemplate(arg0->bgConfig, GF_BG_LYR_MAIN_2, &bgTemplate3, 0); + BG_ClearCharDataRange(GF_BG_LYR_MAIN_2, 32, 0, heapID); + BgClearTilemapBufferAndCommit(arg0->bgConfig, GF_BG_LYR_MAIN_2); + + GfGfx_EngineATogglePlanes(8, 0); + GfGfx_EngineATogglePlanes(16, 1); + GfGfx_EngineBTogglePlanes(1, 0); + GfGfx_EngineBTogglePlanes(2, 0); + GfGfx_EngineBTogglePlanes(4, 0); + GfGfx_EngineBTogglePlanes(8, 0); + GfGfx_EngineBTogglePlanes(16, 0); + + NARC* narc = NARC_New(NARC_a_0_8_8, heapID); + GfGfxLoader_GXLoadPalFromOpenNarc(narc, 14, GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_5_OFFSET, 32, heapID); + GfGfxLoader_LoadCharDataFromOpenNarc(narc, 13, arg0->bgConfig, GF_BG_LYR_MAIN_2, 0, 1536, 0, heapID); + arg0->scrnDataRaw = GfGfxLoader_GetScrnDataFromOpenNarc(narc, 15, 0, &arg0->scrnData, heapID); + arg0->plttDataRaw = GfGfxLoader_GetPlttDataFromOpenNarc(narc, 45, &arg0->plttData, heapID); + GfGfxLoader_LoadCharDataFromOpenNarc(narc, 46, arg0->bgConfig, GF_BG_LYR_MAIN_0, 0, 0, 0, heapID); + GfGfxLoader_LoadScrnDataFromOpenNarc(narc, 47, arg0->bgConfig, GF_BG_LYR_MAIN_0, 0, 0, 0, heapID); + ov44_02233D08(arg0, 0); + arg0->unk1F4 = 3; + arg0->unk1F6 = 1; + NARC_Delete(narc); +} + +void FreeBgAndScreenData(UnkStruct_ov44_02232F64* arg0) { + Heap_Free(arg0->scrnDataRaw); + Heap_Free(arg0->plttDataRaw); + FreeBgTilemapBuffer(arg0->bgConfig, GF_BG_LYR_MAIN_2); + FreeBgTilemapBuffer(arg0->bgConfig, GF_BG_LYR_MAIN_1); + FreeBgTilemapBuffer(arg0->bgConfig, GF_BG_LYR_MAIN_0); + Heap_Free(arg0->bgConfig); +} + +void InitWindowList(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + LoadFontPal1(GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_1_OFFSET, heapID); + + Options* options = Save_PlayerData_GetOptionsAddr(arg1->unk8); + LoadUserFrameGfx2(arg0->bgConfig, GF_BG_LYR_MAIN_1, 1, 2, Options_GetFrame(options), heapID); + LoadUserFrameGfx1(arg0->bgConfig, GF_BG_LYR_MAIN_1, 31, 3, 0, heapID); + LoadUserFrameGfx1(arg0->bgConfig, GF_BG_LYR_MAIN_2, 48, 4, 0, heapID); + AddWindowParameterized(arg0->bgConfig, &arg0->windowList[0], GF_BG_LYR_MAIN_1, 2, 19, 27, 4, 1, 40); + FillWindowPixelBuffer(&arg0->windowList[0], 15); + DrawFrameAndWindow2(&arg0->windowList[0], 1, 1, 2); + AddWindowParameterized(arg0->bgConfig, &arg0->windowList[1], GF_BG_LYR_MAIN_1, 1, 1, 27, 2, 1, 148); + FillWindowPixelBuffer(&arg0->windowList[1], 15); + DrawFrameAndWindow1(&arg0->windowList[1], 1, 31, 3); + AddWindowParameterized(arg0->bgConfig, &arg0->windowList[2], GF_BG_LYR_MAIN_1, 2, 16, 28, 2, 1, 202); + FillWindowPixelBuffer(&arg0->windowList[2], 0); + AddWindowParameterized(arg0->bgConfig, &arg0->windowList[3], GF_BG_LYR_MAIN_1, 1, 5, 20, 8, 1, 258); + FillWindowPixelBuffer(&arg0->windowList[3], 15); + DrawFrameAndWindow1(&arg0->windowList[3], 1, 31, 3); + AddWindowParameterized(arg0->bgConfig, &arg0->windowList[4], GF_BG_LYR_MAIN_1, 23, 5, 7, 5, 1, 418); + FillWindowPixelBuffer(&arg0->windowList[4], 15); +} + +void FreeWindowList(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID) { + ov44_02233954(arg0); + ClearFrameAndWindow2(&arg0->windowList[0], 0); + RemoveWindow(&arg0->windowList[0]); + sub_0200E5D4(&arg0->windowList[1], 0); + RemoveWindow(&arg0->windowList[1]); + RemoveWindow(&arg0->windowList[2]); + sub_0200E5D4(&arg0->windowList[3], 0); + RemoveWindow(&arg0->windowList[3]); + sub_0200E5D4(&arg0->windowList[4], 0); + RemoveWindow(&arg0->windowList[4]); + + if (arg0->listMenu2D != NULL) { + Clear2dMenuWindowAndDelete(arg0->listMenu2D, heapID); + } +} + +void InitStringAndMsgData(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + arg0->msgFmt = MessageFormat_New(heapID); + arg0->msgData = NewMsgDataFromNarc(MSGDATA_LOAD_DIRECT, NARC_msgdata_msg, NARC_msg_msg_0778_bin, heapID); + arg0->string1 = String_New(256, heapID); + arg0->string2 = String_New(256, heapID); + arg0->printerId = 255; + + Options* options = Save_PlayerData_GetOptionsAddr(arg1->unk8); + arg0->textFrameDelay = Options_GetTextFrameDelay(options); +} + +void FreeStringAndMsgData(UnkStruct_ov44_02232F64* arg0) { + String_Delete(arg0->string2); + String_Delete(arg0->string1); + DestroyMsgData(arg0->msgData); + MessageFormat_Delete(arg0->msgFmt); +} + +void ov44_02233698(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + switch (arg1->unk0) { + case 0: + break; + case 1: + BufferWiFiPlazaActivityName(arg0->msgFmt, 0, 0); + break; + case 2: + BufferWiFiPlazaActivityName(arg0->msgFmt, 0, 1); + break; + case 3: + BufferWiFiPlazaActivityName(arg0->msgFmt, 0, 2); + break; + } + + // Seeking Poffin cooks! OR // Seeking {STRVAR_3 0, 0, 0} players! + ReadMsgDataIntoString(arg0->msgData, ov44_0223689C[arg1->unk0], arg0->string2); + StringExpandPlaceholders(arg0->msgFmt, arg0->string1, arg0->string2); + AddTextPrinterParameterizedWithColor(&arg0->windowList[1], 0, arg0->string1, 0, 0, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(1, 2, 15), 0); + ScheduleWindowCopyToVram(&arg0->windowList[1]); + ScheduleWindowCopyToVram(&arg0->windowList[3]); + + // Voice Chat ON/OFF: X Button + ReadMsgDataIntoString(arg0->msgData, msg_0778_00128, arg0->string1); + AddTextPrinterParameterizedWithColor(&arg0->windowList[2], 0, arg0->string1, 0, 0, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(1, 2, 0), 0); + ScheduleWindowCopyToVram(&arg0->windowList[2]); + ScheduleWindowCopyToVram(&arg0->windowList[0]); +} + +void InitSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64* arg0, enum HeapID heapID) { + NNS_G2dInitOamManagerModule(); + OamManager_Create(0, 126, 0, 31, 0, 126, 0, 31, heapID); + ObjCharTransferTemplate objCharTransferTemplate = ov44_02236484; + objCharTransferTemplate.heapID = heapID; + ObjCharTransfer_InitEx(&objCharTransferTemplate, GX_OBJVRAMMODE_CHAR_1D_128K, GX_OBJVRAMMODE_CHAR_1D_32K); + ObjPlttTransfer_Init(4, heapID); + ObjCharTransfer_ClearBuffers(); + ObjPlttTransfer_Reset(); + G2dRenderer_SetObjCharTransferReservedRegion(NNS_G2D_VRAM_TYPE_2DMAIN, GX_OBJVRAMMODE_CHAR_1D_128K); + G2dRenderer_SetPlttTransferReservedRegion(NNS_G2D_VRAM_TYPE_2DMAIN); + arg0->spriteList = G2dRenderer_Init(4, &arg0->g2dRenderer, heapID); + + for (s32 i = 0; i < 4; i++) { + arg0->gf2DGfxResManList[i] = Create2DGfxResObjMan(4, (GfGfxResType)i, heapID); + } + + arg0->unk154 = ov42_02228010(4, heapID); + arg0->unk158 = ov42_02228EDC(arg0->spriteList, 0, 4, 1, heapID); +} + +void FreeSpritesAnd2DGfxResObjs(UnkStruct_ov44_02232F64* arg0) { + ov42_02228F94(arg0->unk158); + ov42_02228050(arg0->unk154); + SpriteList_Delete(arg0->spriteList); + + for (s32 i = 0; i < 4; i++) { + Destroy2DGfxResObjMan(arg0->gf2DGfxResManList[i]); + } + + ObjCharTransfer_Destroy(); + ObjPlttTransfer_Destroy(); + OamManager_Free(); +} + +void Wifi_LoadAndPrintTextToWindowWrapper(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 strno, enum HeapID heapID) { + Wifi_LoadAndPrintTextToWindow(arg0, arg1, strno, 0, heapID); +} + +void Wifi_LoadAndPrintTextToWindow(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 strno, s32 arg3, enum HeapID heapID) { + if ((arg0->printerId != 255) && (TextPrinterCheckActive(arg0->printerId) != 0)) { + RemoveTextPrinter(arg0->printerId); + arg0->printerId = 255; + } + FillWindowPixelBuffer(&arg0->windowList[0], 15); + String* string = String_New(256, heapID); + ReadMsgDataIntoString(arg0->msgData, strno, string); + StringExpandPlaceholders(arg0->msgFmt, arg0->string1, string); + arg0->printerId = AddTextPrinterParameterizedWithColor(&arg0->windowList[0], 1, arg0->string1, 0, 0, arg0->textFrameDelay, MAKE_TEXT_COLOR(1, 2, 15), 0); + ScheduleWindowCopyToVram(&arg0->windowList[0]); + String_Delete(string); + Options* options = Save_PlayerData_GetOptionsAddr(arg1->unk8); + LoadUserFrameGfx2(arg0->bgConfig, GF_BG_LYR_MAIN_1, 1, 2, Options_GetFrame(options), heapID); + arg0->unk15 = arg3; +} + +s32 ov44_02233914(UnkStruct_ov44_02232F64* arg0) { + if (arg0->printerId == 255) { + if (arg0->unk15 != 0) { + arg0->unk15--; + return 0; + } + } + else if ((TextPrinterCheckActive(arg0->printerId) == 0) && (arg0->printerId != 255)) { + arg0->printerId = 255; + } + if ((arg0->printerId == 255) && (arg0->unk15 == 0)) { + return 1; + } + return 0; +} + +void ov44_02233954(UnkStruct_ov44_02232F64* arg0) { + if (arg0->printerId != 255) { + if (TextPrinterCheckActive(arg0->printerId) != 0) { + RemoveTextPrinter(arg0->printerId); + } + arg0->printerId = 255; + } + FillWindowPixelBuffer(&arg0->windowList[0], 15); + ScheduleWindowCopyToVram(&arg0->windowList[0]); + arg0->unk15 = 0; +} + +// {STRVAR_1 3, 0, 0}\nID {STRVAR_1 54, 1, 0} +void ov44_0223398C(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, enum HeapID heapID) { + String* string1 = String_New(256, heapID); + String* string2 = String_New(256, heapID); + + ov44_02233C88(arg0, arg1, arg2, 0, heapID); + ov44_02233CA0(arg0, arg1, arg2, 1, heapID); + + ReadMsgDataIntoString(arg0->msgData, msg_0778_00131, string1); + StringExpandPlaceholders(arg0->msgFmt, string2, string1); + FillWindowPixelBuffer(&arg0->windowList[4], 15); + AddTextPrinterParameterizedWithColor(&arg0->windowList[4], 0, string2, 0, 0, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(1, 2, 15), 0); + DrawFrameAndWindow1(&arg0->windowList[4], 1, 31, 3); + ScheduleWindowCopyToVram(&arg0->windowList[4]); + String_Delete(string1); + String_Delete(string2); +} + +void ov44_02233A34(UnkStruct_ov44_02232F64* arg0) { + sub_0200E5D4(&arg0->windowList[4], 1); + ClearWindowTilemapAndScheduleTransfer(&arg0->windowList[4]); +} + +void ov44_02233A50(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + UnkStruct_ov44_02232F64* temp_r6; + + if (sub_02034420() != 0) { + temp_r6 = &arg0->unk30; + for (s32 i = 0; i < 4; i++) { + if ((i == 0) && (sub_02034730(i) == 1)) { + ov44_02233AB8(arg0, temp_r6, arg1, i, heapID); + } else if (sub_02034750(i) == 1) { + ov44_02233AB8(arg0, temp_r6, arg1, i, heapID); + } else { + ov44_02233C18(temp_r6, arg1, i, heapID); + } + } + } +} + +void ov44_02233AB8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_02232F64* arg1, UnkStruct_ov44_args* arg2, s32 arg3, enum HeapID heapID) { + String* string1 = String_New(256, heapID); + String* string2 = String_New(256, heapID); + ov44_02233C88(arg1, arg2, arg3, 0, heapID); + + // {STRVAR_1 3, 0, 0} + ReadMsgDataIntoString(arg1->msgData, msg_0778_00129, string1); + StringExpandPlaceholders(arg1->msgFmt, string2, string1); + + u32 temp_r6 = arg3 * 16; + FillWindowPixelRect(&arg1->windowList[3], 15, 0, temp_r6, 160, 16); + AddTextPrinterParameterizedWithColor(&arg1->windowList[3], 0, string2, 0, temp_r6, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(1, 2, 15), 0); + ov44_02233CA0(arg1, arg2, arg3, 0, heapID); + + // ID {STRVAR_1 54, 0, 0} + ReadMsgDataIntoString(arg1->msgData, msg_0778_00130, string1); + StringExpandPlaceholders(arg1->msgFmt, string2, string1); + AddTextPrinterParameterizedWithColor(&arg1->windowList[3], 0, string2, 72, temp_r6, TEXT_SPEED_NOTRANSFER, MAKE_TEXT_COLOR(1, 2, 15), 0); + ScheduleWindowCopyToVram(&arg1->windowList[3]); + s32 var_r2; + if (arg3 == sub_0203769C()) { + if (arg0->unk0[33] != 0) { + var_r2 = 2; + } else { + var_r2 = 1; + } + } else if (arg0->unk20[arg3] != 0) { + var_r2 = 2; + } else { + var_r2 = 1; + } + + NNSG2dScreenData* screenData = arg1->scrnData; + u32 temp_r4 = (arg3 << 1) + 5; + CopyToBgTilemapRect(arg1->bgConfig, GF_BG_LYR_MAIN_2, 18, temp_r4, 2, 2, &screenData->rawData[0], var_r2*2, 0, screenData->screenWidth/8, screenData->screenHeight/8); + BgTilemapRectChangePalette(arg1->bgConfig, GF_BG_LYR_MAIN_2, 18, temp_r4, 2, 2, 5); + ScheduleBgTilemapBufferTransfer(arg1->bgConfig, GF_BG_LYR_MAIN_2); + String_Delete(string1); + String_Delete(string2); +} + +void ov44_02233C18(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, enum HeapID heapID) { + FillWindowPixelRect(&arg0->windowList[3], 15, 0, arg2 * 16, 160, 16); + + NNSG2dScreenData* screenData = arg0->scrnData; + CopyToBgTilemapRect(arg0->bgConfig, GF_BG_LYR_MAIN_2, 18, arg2 * 2 + 5, 2, 2, &screenData->rawData[0], 0, 0, screenData->screenWidth/8, screenData->screenHeight/8); + ScheduleBgTilemapBufferTransfer(arg0->bgConfig, GF_BG_LYR_MAIN_2); + ScheduleWindowCopyToVram(&arg0->windowList[3]); +} + +void ov44_02233C88(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, s32 arg3, enum HeapID heapID) { + BufferPlayersName(arg0->msgFmt, arg3, sub_02034818(arg2)); +} + +void ov44_02233CA0(UnkStruct_ov44_02232F64* arg0, UnkStruct_ov44_args* arg1, s32 arg2, s32 arg3, enum HeapID heapID) { + BufferIntegerAsString(arg0->msgFmt, arg3, PlayerProfile_GetTrainerID_VisibleHalf(sub_02034818(arg2)), 5, PRINTING_MODE_LEADING_ZEROS, 1); +} + +void ov44_02233CCC(UnkStruct_ov44_02232F64* arg0) { + if (arg0->unk1F4 <= 0) { + ov44_02233D08(arg0, arg0->unk1F6); + arg0->unk1F4 = 3; + arg0->unk1F6 = (arg0->unk1F6 + 1) % 18; + return; + } + arg0->unk1F4--; +} + +void ov44_02233D08(UnkStruct_ov44_02232F64* arg0, s32 arg1) { + if (GF_CreateNewVramTransferTask(NNS_GFD_DST_2D_BG_PLTT_MAIN, 0, (ov44_0223663C[arg1] << 5) + arg0->plttData->pRawData, 32) == 0) { + GF_AssertFail(); + } +} + +u8 ov44_02233D38(UnkStruct_ov44_02235340* arg0, enum HeapID heapID) { + arg0->unk0[34] = 1 - arg0->unk0[34]; + arg0->unk0[33] = arg0->unk0[34]; + ov00_021E70B8(arg0->unk0[33]); + ov00_021E6D60(arg0->unk0, 36); + if (arg0->unk0[33] == 1) { + ov44_02233F3C(arg0); + } else { + ov44_02233F50(arg0); + } + return arg0->unk0[34]; +} + +void ov44_02233D8C(UnkStruct_ov44_02235340 *arg0, UnkStruct_ov44_args *arg1, enum HeapID heapID) { + s32 temp_r7; + s32 temp_r6; + s32 var_r5; + + if (arg0->unk4 != 0) { + if ((u8)(arg0->unk5 + 229) <= 2) { + return; + } + if ((sub_020390C4() <= 2) && (ov44_02233F64(arg0) <= 1) && (ov44_02233E6C(arg0) == 0)) { + return; + } + } else if ((arg0->unk5 == 15) || (arg0->unk5 == 16) || (arg0->unk5 == 17) || ((u8)(arg0->unk5 + 250) <= 1)) { + return; + } + + temp_r6 = ov44_02234458(arg0); + temp_r7 = ov44_02234044(arg0); + if (ov44_02233F64(arg0) > sub_02037454()) { + var_r5 = 1; + } else { + var_r5 = 0; + } + if ((sub_020390C4() >= 3) || (sub_020393C8() != 0) || (sub_02039264() != 0) || (sub_020373B4(0) == 0) || (ov44_02233E6C(arg0) == 0) || (var_r5 == 1) || (temp_r6 == 1) || (temp_r7 == 1)) { + if (arg0->unk4 != 0) { + arg0->unk5 = 27; + return; + } + arg0->unk5 = 15; + } +} + +void ov44_02233E48(UnkStruct_ov44_02235340* arg0) { + if ((sub_020390C4() > 3) || (sub_02039264() != 0) || (sub_020393C8() != 0)) { + arg0->unk5 = 15; + } +} + +s32 ov44_02233E6C(UnkStruct_ov44_02235340* arg0) { + if (sub_02037454() > 0) { + return 1; + } + return 0; +} + +s32 ov44_02233E80(u32 arg0, u32 arg1) { + s32 var_r5 = sub_02039080(arg0); + if (var_r5 == 1 ) { + switch(arg1) { + case 0: + sub_02039AF8(); + break; + case 1: + case 2: + case 3: + sub_02039B18(); + } + } + return var_r5; +} + +void ov44_02233EB4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1) { + switch (arg1->unk0) { + case 0: + arg0->unk0[27] = 18; + break; + case 1: + arg0->unk0[27] = 22; + break; + case 2: + arg0->unk0[27] = 24; + break; + case 3: + arg0->unk0[27] = 26; + break; + } + ov00_021E6D60(arg0->unk0, 36); +} + +s32 ov44_02233EF8(UnkStruct_ov44_02235340* arg0) { + if (arg0->unk11 == 1) { + return 0; + } + if (ov44_02233E6C(arg0) == 1) { + ov00_021E69A8(104); + arg0->unk11 = 1; + return 1; + } + return 0; +} + +s32 ov44_02233F20(UnkStruct_ov44_02235340* arg0) { + if (arg0->unk11 == 0) { + return 0; + } + ov00_021E6A4C(); + arg0->unk11 = 0; + return 1; +} + +void ov44_02233F3C(UnkStruct_ov44_02235340* arg0) { + if (ov44_02233EF8(arg0) != 0) { + GF_GetCurrentPlayingBGM(); + sub_02005448(); + } +} + +void ov44_02233F50(UnkStruct_ov44_02235340* arg0) { + if (ov44_02233F20(arg0) != 0) { + GF_SndHandleSetInitialVolume(0, 120); + } +} + +s32 ov44_02233F64(UnkStruct_ov44_02235340* arg0) { + return sub_020347A0(); +} + +s32 ov44_02233F6C(UnkStruct_ov44_02235340* arg0, enum HeapID heapID) { + s32 var_r7 = 1; + for (s32 i = sub_0203769C() - 1; i >= 0; i--) { + if (sub_02034714(i) == 1) { + ov44_022340BC(arg0, i, heapID); + } else if (sub_02034750(i) == 0) { + var_r7 = 0; + } + } + return var_r7; +} + +void ov44_02233FA8(UnkStruct_ov44_02235340* arg0) { + UnkStruct_ov44_022345FC var_r5; + var_r5.unk2 = 0; + for (s32 i = 1; i < 4; i++) { + if (sub_02034714(i) == 1) { + var_r5.unk0 = i; + + if (sub_02037030(22, &var_r5, 8) != 1) { + GF_AssertFail(); + } + sub_020346E8(i); + } + } +} + +void ov44_02233FE8(UnkStruct_ov44_02235340* arg0) { + UnkStruct_ov44_022345FC var_r5; + var_r5.unk2 = 0; + for (s32 i = 1; i < 4; i++) { + if (sub_02034730(i) == 1) { + var_r5.unk0 = i; + if (sub_02037030(22, &var_r5, 8) != 1) { + GF_AssertFail(); + } + sub_020346E8(i); + } + } +} + +void ov44_02234028(UnkStruct_ov44_02235340* arg0) { + ov00_021E5CA0(ov44_02234070, arg0); +} + +void ov44_02234038(UnkStruct_ov44_02235340* arg0) { + ov00_021E5CA0(0, 0); +} + +s32 ov44_02234044(UnkStruct_ov44_02235340* arg0) { + s32 var_r7 = 0; + for (s32 i = 0; i < 4; i++) { + if (arg0->unk14[i] == 1) { + if (sub_02034750(arg0->unk18[i]) == 1) { + var_r7 = 1; + } + arg0->unk14[i] = 0; + arg0->unk18[i]= 0; + } + } + return var_r7; +} + +void ov44_02234070(u8 arg0, UnkStruct_ov44_02235340* arg1, s32 arg2) { + arg1->unk14[arg0] = 1; + arg1->unk18[arg0] = arg0; +} + +s32 ov44_0223407C(UnkStruct_ov44_02235340* arg0) { + s32 i; + s32 ret = 0; + for (i = 0; i < 4; i++) { + if (arg0->unk1C[i] != arg0->unk20[i]) { + ret = 1; + } + arg0->unk1C[i] = arg0->unk20[i]; + } + + if (arg0->unk24 != 0) { + arg0->unk24 = 0; + ret = 1; + } + + return ret; +} + +void ov44_022340B4(UnkStruct_ov44_02235340* arg0) { + arg0->unk24 = 1; +} + +void ov44_022340BC(UnkStruct_ov44_02235340* arg0, s32 arg1, enum HeapID heapID) { + if (sub_02034750(arg1) == 0) { + sub_0203476C(arg1); + arg0->unk25 = arg1; + ov44_022340EC(arg0, arg1, heapID); + ov44_022340B4(arg0); + } +} + +void ov44_022340EC(UnkStruct_ov44_02235340* arg0, s32 arg1, enum HeapID heapID) { + u16 sp4[6]; + + if (arg0->unk30.unk15C[arg1].unk0 == 0) { + sp4 = ov44_02236510[arg1]; + + if (arg1 != sub_0203769C()) { + PlayerProfile* playerProfile = sub_02034818(arg1); + if (playerProfile == NULL) { + GF_AssertFail(); + } + sp4[5] = PlayerProfile_GetAvatar(playerProfile); + } else if (arg0->unk0[30] == 0) { + sp4[5] = 0; + } else { + sp4[5] = 97; + } + arg0->unk30.unk15C[arg1].unk0 = ov42_022280B8(arg0->unk30.unk154, sp4); + if (ov42_02229010(arg0->unk30.unk158, sp4[5]) == 0) { + ov42_02228FE0(arg0->unk30.unk158, sp4[5], 2, heapID); + } + + arg0->unk30.unk15C[arg1].unk4 = ov42_0222903C(arg0->unk30.unk158, arg0->unk30.unk15C[arg1].unk0, 0, heapID); + ov42_02229200(arg0->unk30.unk15C[arg1].unk4, 0); + arg0->unk30.unk15C[arg1].unk8++; + } +} + +void ov44_022341C0(UnkStruct_ov44_02235340* arg0) { + for (s32 i = 0; i < 4; i++) { + func_type_022341C0 ov44_func = ov44_02236464[arg0->unk30.unk15C[i].unk8]; + ov44_func(arg0, &arg0->unk30.unk15C[i]); + } + ov42_0222807C(arg0->unk30.unk154); + ov42_022290DC(arg0->unk30.unk158); +} + +void ov44_02234204(UnkStruct_ov44_02235340* arg0) { + ov42_0222901C(arg0->unk30.unk158); + memset(&arg0->unk30.unk15C, 0, 48); +} + +void ov44_02234224(UnkStruct_ov44_02235340* arg0, s32 arg1) { + UnkStruct_ov44_022345FC sp; + sp.unk0 = arg1; + sp.unk2 = 2; + if (sub_02037030(22, &sp, 8) != 1) { + GF_AssertFail(); + } +} + +void ov44_02234248(UnkStruct_ov44_02235340* arg0) { + for (s32 i = 0; i < 4; i++) { + if (((arg0->unk25 + 1) < i) && (sub_02034714(i) == 1)) { + ov44_02234224(arg0, i); + sub_020346E8(i); + } + } +} + +void ov44_0223427C(UnkStruct_ov44_02235340* arg0, enum HeapID heapID) { + for (s32 i = 0; i < 4; i++) { + if ((arg0->unk28[i] == 1) && (sub_02034730(i) == 1)) { + ov44_022340BC(arg0, i, heapID); + arg0->unk28[i] = 0; + arg0->unk12 = 1; + } + } +} + +void ov44_022342B8(UnkStruct_ov44_02235340* arg0) { + if (arg0->unk30.waitingIcon != 0) { + GF_AssertFail(); + } + arg0->unk30.waitingIcon = WaitingIcon_New(&arg0->unk30.windowList[0], 1); +} + +void ov44_022342E0(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (arg0->unk30.waitingIcon != 0) { + sub_0200F450(arg0->unk30.waitingIcon); + arg0->unk30.waitingIcon = 0; + Options* options = Save_PlayerData_GetOptionsAddr(arg1->unk8); + LoadUserFrameGfx2(arg0->unk30.bgConfig, GF_BG_LYR_MAIN_1, 1, 2, Options_GetFrame(options), heapID); + } +} + +void ov44_02234324(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1) { + +} + +void ov44_02234328(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1) { + ov42_0222919C(arg1->unk4, 0); + ov42_022291A0(arg1->unk4); + ov42_02229200(arg1->unk4, 1); + arg1->unk8 = 2; + s32 idx = ov42_02228188(arg1->unk0, 6); + arg1->unkA = ov44_02236458[idx] + 16; +} + +void ov44_0223435C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1) { + ov42_022291AC(arg1->unk4); + arg1->unkA = (arg1->unkA - 1); + if (arg1->unkA <= 0) { + ov42_022291B8(arg1->unk4); + ov42_0222919C(arg1->unk4, 1); + arg1->unk8 = 3; + } +} + +void ov44_02234388(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_022341C0* arg1) { + +} + +void ov44_0223438C(UnkStruct_ov44_02235340* arg0) { + u8 sp4[4]; + s32 sp0; + s32 sp_count; + s32 temp_r7; + u32 var_r0; + sp0 = 0; + if (sub_02034420() != 0) { + sp_count = sub_020347A0(); + if ((sub_020346D4() != 0) && (sub_02037824(5) == 0)) { + sp0 = 1; + } + for (s32 i = 0; i < sp_count; i++) { + if (i == 0) { + var_r0 = arg0->unk0[33]; + } else { + temp_r7 = sub_02034870(i); + if (temp_r7 == 32) { + GF_AssertFail(); + } + var_r0 = arg0->unk0[33 + (temp_r7 + 1) * 36]; + } + if (var_r0 != arg0->unk20[i]) { + sp0 = 1; + } + arg0->unk20[i] = var_r0; + } + if (sp0 == 1) { + __memcpy(&sp4, arg0->unk20, 4); + sub_02037030(24, &sp4, 4); + } + } +} + +int ov44_0223442C(UnkStruct_ov44_02235340* arg0) { + if (sub_02037B38(13) != 0) { + return 1; + } + return 0; +} + +void ov44_02234440(UnkStruct_ov44_02235340* arg0) { + arg0->unk10 = 1; + arg0->unkC = 1800; +} + +void ov44_02234450(UnkStruct_ov44_02235340* arg0) { + arg0->unk10 = 0; +} + +s32 ov44_02234458(UnkStruct_ov44_02235340* arg0) { + if (arg0->unk10 == 0) { + return 0; + } + if (arg0->unkC > 0) { + arg0->unkC--; + return 0; + } + return 1; +} + +s32 ov44_02234474(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (arg0->unk0[33] == 1) { + ov44_02233F3C(arg0); + } + ov00_021E7220(0); + sub_020398D4(0, 1); + ov44_022340EC(arg0, sub_0203769C(), heapID); + arg0->unk5 = 1; + return 0; +} + +// When the group is ready:\nA Button: Proceed B Button: Cancel +s32 Wifi_PromptReadyMessage(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00107, heapID); + arg0->unk5 = 2; + return 0; +} + +s32 ov44_022344C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 temp_r0; + + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + if (ov44_02233E6C(arg0) == 1) { + temp_r0 = sub_02034780(); + if ((temp_r0 != 255) && (arg0->unk6 != 0)) { + if (sub_02034870(temp_r0) == 32) { + UnkStruct_ov44_022345FC subroutine_arg0; + subroutine_arg0.unk0 = temp_r0; + subroutine_arg0.unk2 = 0; + sub_020346E8(temp_r0); + if (sub_02037030(22, &subroutine_arg0, 8) != 1) { + GF_AssertFail(); + } + } else { + arg0->unk6 = temp_r0; + } + } + } + if (1 & gSystem.newKeys) { + PlaySE(SEQ_SE_DP_DECIDE); + if (ov44_02233E6C(arg0) == 0) { + arg0->unk5 = 6; + } else if (arg1->unk1 <= ov44_02233F64(arg0)) { + arg0->unk5 = 8; + } else { + arg0->unk5 = 6; + } + } else if (gSystem.newKeys & 2) { + PlaySE(SEQ_SE_DP_DECIDE); + arg0->unk5 = 22; + } else if (arg0->unk6 != 255) { + PlaySE(SEQ_SE_DP_DECIDE); + arg0->unk5 = 3; + } else if (gSystem.newKeys & 1024) { + arg0->unk5 = 30; + PlaySE(SEQ_SE_DP_DECIDE); + } + return 0; +} + +// Someone wishes to join.\nAccept this Trainer as a member? +s32 Wifi_PromptUserJoinRequest(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + ov44_0223398C(&arg0->unk30, arg1, arg0->unk6, heapID); + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00108, heapID); + arg0->unk5 = 4; + return 0; +} + +s32 ov44_022345C8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + arg0->unk30.listMenu2D = Std_CreateYesNoMenu(arg0->unk30.bgConfig, &ov44_0223645C, 48, 4, heapID); + arg0->unk5 = 5; + return 0; +} + +s32 ov44_022345FC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 temp_r0; + + temp_r0 = Handle2dMenuInput_DeleteOnFinish(arg0->unk30.listMenu2D, heapID); + if (temp_r0 != -1) { + UnkStruct_ov44_022345FC subroutine_arg0; + subroutine_arg0.unk0 = (s16) arg0->unk6; + if (temp_r0 == 0) { + subroutine_arg0.unk2 = 1; + ov44_022340BC(arg0, arg0->unk6, heapID); + if (arg0->unk0[33] == 1) { + ov44_02233F20(arg0); + ov44_02233F3C(arg0); + } + if (arg1->unk2 <= ov44_02233F64(arg0)) { + arg0->unk5 = 8; + } else { + arg0->unk5 = 1; + } + } else { + subroutine_arg0.unk2 = 0; + sub_020346E8(arg0->unk6); + arg0->unk5 = 1; + } + if (sub_02037030(22, &subroutine_arg0, 8) != 1) { + GF_AssertFail(); + } + arg0->unk6 = 255; + ov44_02233A34(&arg0->unk30); + arg0->unk30.listMenu2D = NULL; + } + return 0; +} + +// There aren’t enough members.\r +s32 Wifi_PromptInsufficientMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00119, heapID); + arg0->unk5 = 7; + return 0; +} + +s32 ov44_022346B4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + arg0->unk5 = 19; + return 0; +} + +// Are these members OK? +s32 Wifi_PromptConfirmMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00111, heapID); + arg0->unk5 = 9; + return 0; +} + +s32 ov44_022346E8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + arg0->unk30.listMenu2D = Std_CreateYesNoMenu(arg0->unk30.bgConfig, &ov44_0223645C, 48, 4, heapID); + arg0->unk5 = 10; + return 0; +} + +s32 ov44_0223471C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 temp_r0; + + temp_r0 = Handle2dMenuInput_DeleteOnFinish(arg0->unk30.listMenu2D, heapID); + if (temp_r0 != -1) { + if (temp_r0 == 0) { + arg0->unk5 = 11; + } else if (arg1->unk2 <= ov44_02233F64(arg0)) { + arg0->unk5 = 19; + } else { + arg0->unk5 = 1; + } + arg0->unk30.listMenu2D = NULL; + } + return 0; +} + +// Communicating. Please stand by... +s32 ov44_02234764(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + arg0->unk8 = 30; + ov44_02233FA8(arg0); + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00102, heapID); + ov44_022342B8(arg0); + ov44_02234440(arg0); + arg0->unk5 = 12; + ov00_021E7130(); + return 0; +} + +s32 ov44_0223479C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (sub_02037454() != sub_020347A0()) { + ov44_02233FA8(arg0); + return 0; + } + if (ov00_021E70F4() == 0) { + return 0; + } + ov00_021E7220(1); + arg0->unk5 = 13; + return 0; +} + +s32 ov44_022347D4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (arg0->unk8 == 0) { + if (sub_02037030(23, NULL, 0) != 0) { + arg0->unk5 = 14; + } + } else { + arg0->unk8--; + } + return 0; +} + +s32 ov44_022347FC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (sub_02037B38(13) != 0) { + ov44_02233EB4(arg0, arg1); + sub_02037BEC(); + sub_02037AC0(14); + arg0->unk5 = 15; + } + return 0; +} + +s32 ov44_02234828(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (sub_02037B38(14) != 0) { + s16 subroutine_arg0 = (s16) arg0->unk0[27]; + if (sub_02037C0C(sub_0203769C(), &subroutine_arg0) == 1) { + arg0->unk5 = 16; + } + } + return 0; +} + +s32 ov44_02234858(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 i = 0; + s32 temp_r7 = ov44_02233F64(arg0); + s32 sp0 = sub_0203769C(); + s32 var_r5 = 0; + + for (i = 0; i < temp_r7; i++) { + if (sp0 != i) { + u16* temp_r0 = sub_02037C44(i); + if (temp_r0 != NULL) { + if (temp_r0[0] == arg0->unk0[27]) { + var_r5++; + } else { + arg0->unk5 = 27; + } + } + } else { + var_r5++; + } + } + if (var_r5 == temp_r7) { + arg0->unk5 = 17; + } + return 0; +} + +s32 ov44_022348A8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + sub_020398D4(1, 1); + sub_02037AC0(18); + arg0->unk5 = 18; + return 0; +} + +s32 ov44_022348C4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (sub_02037B38(18) != 0) { + arg0->unk7 = 1; + ov44_022342E0(arg0, arg1, heapID); + return 1; + } + return 0; +} + +// Stop looking for members? +s32 Wifi_PromptStopFindingMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00120, heapID); + arg0->unk5 = 20; + return 0; +} + +s32 ov44_02234904(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + arg0->unk30.listMenu2D = CreateYesNoMenu(arg0->unk30.bgConfig, &ov44_0223645C, 48U, 4, 1, heapID); + arg0->unk5 = 21; + return 0; +} + +s32 ov44_02234944(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 temp_r0; + + temp_r0 = Handle2dMenuInput_DeleteOnFinish(arg0->unk30.listMenu2D, heapID); + if (temp_r0 != -1) { + if (temp_r0 == 0) { + arg0->unk5 = 22; + } else if (ov44_02233E6C(arg0) != 0) { + if (arg1->unk2 <= ov44_02233F64(arg0)) { + arg0->unk5 = 8; + } else { + arg0->unk5 = 1; + } + } else { + arg0->unk5 = 1; + } + arg0->unk30.listMenu2D = NULL; + } + return 0; +} + +// If the leader drops out, the group will\nbe disbanded. Is that OK? +s32 Wifi_PromptDropAsLeader(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00121, heapID); + arg0->unk5 = 23; + return 0; +} + +s32 ov44_022349B4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + arg0->unk30.listMenu2D = CreateYesNoMenu(arg0->unk30.bgConfig, &ov44_0223645C, 48, 4, 1, heapID); + arg0->unk5 = 24; + return 0; +} + +s32 ov44_022349F4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 temp_r0; + + temp_r0 = Handle2dMenuInput_DeleteOnFinish(arg0->unk30.listMenu2D, heapID); + if (temp_r0 != -1) { + if (temp_r0 == 0) { + arg0->unk5 = 25; + } else if (ov44_02233E6C(arg0) != 0) { + if (arg1->unk2 <= ov44_02233F64(arg0)) { + arg0->unk5 = 8; + } else { + arg0->unk5 = 1; + } + } else { + arg0->unk5 = 1; + } + arg0->unk30.listMenu2D = NULL; + } + return 0; +} + +// The member invitations will be canceled. +s32 Wifi_PromptCancelInvites(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00122, heapID); + arg0->unk8 = 30; + arg0->unk5 = 26; + return 0; +} + +s32 ov44_02234A68(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 temp_r0; + + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + temp_r0 = arg0->unk8 - 1; + arg0->unk8 = temp_r0; + if (temp_r0 > 0) { + return 0; + } + arg0->unk7 = 0; + sub_02039358(); + ov44_02233FE8(arg0); + sub_02039B58(); + sub_020398D4(0, 1); + return 1; +} + +s32 ov44_02234AA8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (arg0->unk30.listMenu2D != NULL) { + Clear2dMenuWindowAndDelete(arg0->unk30.listMenu2D, heapID); + arg0->unk30.listMenu2D = NULL; + } + ov44_02233A34(&arg0->unk30); + ov44_022342E0(arg0, arg1, heapID); + arg0->unk5 = 28; + return 0; +} + +// A member had to drop out.\nPlease register from the start again.\r +s32 Wifi_PromptMemberDropped(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00118, heapID); + arg0->unk5 = 29; + ov44_02233FE8(arg0); + ov44_02233EB4(arg0, arg1); + if ((u32) (sub_020390C4() - 4) <= 1U) { + ov00_021EDB1C(); + } + return 0; +} + +s32 ov44_02234B18(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if ((u32) (sub_020390C4() - 4) <= 1) { + ov00_021EDB1C(); + } + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + sub_02039358(); + sub_02039B58(); + ov44_02233FE8(arg0); + arg0->unk7 = 0; + sub_020398D4(0, 1); + return 1; +} + +s32 Wifi_PromptToggleVoiceChat(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 strno; + + if (arg0->unk0[33] == 1) { + // Is it OK to turn off the Voice Chat? + strno = msg_0778_00125; + } else { + // Is it OK to turn on the Voice Chat? + strno = msg_0778_00124; + } + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, strno, heapID); + arg0->unk5 = 31; + return 0; +} + +s32 ov44_02234B80(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + arg0->unk30.listMenu2D = Std_CreateYesNoMenu(arg0->unk30.bgConfig, &ov44_0223645C, 48, 4, heapID); + arg0->unk5 = 32; + return 0; +} + +s32 ov44_02234BB4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 temp_r0; + + temp_r0 = Handle2dMenuInput_DeleteOnFinish(arg0->unk30.listMenu2D, heapID); + if (temp_r0 != -1) { + if (temp_r0 == 0) { + ov44_02233D38(arg0, heapID); + ov44_022340B4(arg0); + } + arg0->unk5 = 1; + arg0->unk30.listMenu2D = NULL; + } + return 0; +} + +s32 ov44_02234BF0(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + sub_02034434(); + sub_020398D4(0, 1); + ov44_02234440(arg0); + arg0->unk5 = 1; + return 0; +} + +s32 ov44_02234C10(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + ov44_02233F6C(arg0, heapID); + if (sub_020373B4(0) == 0) { + ov44_02234450(arg0); + arg0->unk5 = 15; + } else if (sub_02034750(0) != 0) { + ov44_02234450(arg0); + arg0->unk5 = 2; + } + return 0; +} + +// Awaiting {STRVAR_1 3, 0, 0}’s response... +s32 Wifi_PromptAwaitingResponse(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + ov44_02233F6C(arg0, heapID); + ov44_02233C88(&arg0->unk30, arg1, 0, 0, heapID); + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00114, heapID); + ov44_022342B8(arg0); + arg0->unk5 = 3; + return 0; +} + +s32 ov44_02234C88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + u8 temp_r0; + + ov44_02233F6C(arg0, heapID); + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + if (arg0->unk13 != 0) { + ov44_022342E0(arg0, arg1, heapID); + temp_r0 = arg0->unk13; + switch (temp_r0) { + case 1: + arg0->unk5 = 4; + break; + case 2: + arg0->unk5 = 6; + arg0->unk2D = 116; + break; + case 3: + arg0->unk5 = 6; + arg0->unk2D = 132; + break; + } + } + return 0; +} + +// {STRVAR_1 3, 0, 0} approved your\nmember-registration request. +s32 ov44_02234CE8(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + ov44_02233C88(&arg0->unk30, arg1, 0, 0, heapID); + + Wifi_LoadAndPrintTextToWindow(&arg0->unk30, arg1, msg_0778_00115, 30, heapID); + arg0->unk5 = 5; + ov44_022340BC(arg0, sub_0203769C(), HEAP_ID_103); + return 0; +} + +s32 ov44_02234D28(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + ov44_02233F6C(arg0, heapID); + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + arg0->unk5 = 8; + return 0; +} + +s32 ov44_02234D4C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + ov44_02233C88(&arg0->unk30, arg1, 0, 0, heapID); + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, arg0->unk2D, heapID); + arg0->unk5 = 7; + sub_02039358(); + sub_02039B58(); + return 0; +} + +s32 ov44_02234D88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + arg0->unk7 = 0; + sub_020398D4(0, 1); + return 1; +} + +// Awaiting other members. +s32 Wifi_PromptAwaitingMembers(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + ov44_02233F6C(arg0, heapID); + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00123, heapID); + ov44_022342B8(arg0); + arg0->unk5 = 9; + if (arg0->unk0[33] == 1) { + ov44_02233F3C(arg0); + } + return 0; +} + +s32 ov44_02234DE4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + ov44_02233F6C(arg0, heapID); + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + arg0->unk5 = 10; + return 0; +} + +// Communicating. Please stand by... +s32 ov44_02234E08(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + ov44_02233F6C(arg0, heapID); + if (arg0->unk12 != 0) { + arg0->unk12 = 0U; + if (arg0->unk0[33] == 1) { + ov44_02233F20(arg0); + ov44_02233F3C(arg0); + } + ov44_022340B4(arg0); + } + if (ov44_0223442C(arg0) == 1) { + sub_02037BEC(); + sub_02037AC0(14); + ov44_022342E0(arg0, arg1, heapID); + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00102, heapID); + ov44_02234440(arg0); + arg0->unk8 = 300; + ov44_022342B8(arg0); + arg0->unk5 = 11; + } else if (1024 & gSystem.newKeys) { + ov44_022342E0(arg0, arg1, heapID); + arg0->unk5 = 18; + } + return 0; +} + +s32 ov44_02234EA4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 temp_r0; + + if (sub_02037B38(14) != 0) { + s16 subroutine_arg0 = (s16) arg0->unk0[27]; + if (ov44_02233F64(arg0) != sub_02037454()) { + temp_r0 = arg0->unk8 - 1; + arg0->unk8 = temp_r0; + if (temp_r0 <= 0) { + arg0->unk5 = 15; + } + return 0; + } + if (sub_02037C0C(sub_0203769C(), &subroutine_arg0) == 1) { + arg0->unk5 = 12; + } + } + return 0; +} + +s32 ov44_02234EF4(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 i = 0; + s32 temp_r7 = ov44_02233F64(arg0); + s32 sp0 = sub_0203769C(); + s32 var_r5 = 0; + + for (i = 0; i < temp_r7; i++) { + if (sp0 != i) { + u16* temp_r0 = sub_02037C44(i); + if (temp_r0 != NULL) { + if (temp_r0[0] == arg0->unk0[27]) { + var_r5++; + } else { + arg0->unk5 = 0xF; + } + } + } else { + var_r5++; + } + } + + if (var_r5 == temp_r7) { + arg0->unk5 = 0xD; + } + return 0; +} + +s32 ov44_02234F44(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + sub_020398D4(1, 1); + sub_02037AC0(18); + arg0->unk5 = 14; + return 0; +} + +s32 ov44_02234F60(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (sub_02037B38(18) != 0) { + ov44_022342E0(arg0, arg1, heapID); + arg0->unk7 = 1; + return 1; + } + return 0; +} + +s32 ov44_02234F88(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (arg0->unk30.listMenu2D != NULL) { + Clear2dMenuWindowAndDelete(arg0->unk30.listMenu2D, heapID); + arg0->unk30.listMenu2D = NULL; + } + ov44_02233A34(&arg0->unk30); + ov44_022342E0(arg0, arg1, heapID); + arg0->unk5 = 16; + return 0; +} + +// A member had to drop out.\nPlease register from the start again.\r +s32 Wifi_PromptMemberDrop(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00118, heapID); + arg0->unk5 = 17; + return 0; +} + +s32 ov44_02234FDC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + sub_02039358(); + sub_02039B58(); + arg0->unk7 = 0; + sub_020398D4(0, 1); + return 1; +} + +s32 Wifi_PromptToggleVoiceChat_(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 strno; + + ov44_02233F6C(arg0, heapID); + if (arg0->unk0[33] == 1) { + // Is it OK to turn off the Voice Chat? + strno = msg_0778_00125; + } else { + // Is it OK to turn on the Voice Chat? + strno = msg_0778_00124; + } + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, strno, heapID); + arg0->unk5 = 19; + return 0; +} + +s32 ov44_02235038(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + ov44_02233F6C(arg0, heapID); + if (ov44_0223442C(arg0) == 1) { + arg0->unk5 = 10; + ov44_02233954(&arg0->unk30); + return 0; + } + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + arg0->unk30.listMenu2D = Std_CreateYesNoMenu(arg0->unk30.bgConfig, &ov44_0223645C, 48, 4, heapID); + arg0->unk5 = 20; + return 0; +} + +s32 ov44_02235090(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 temp_r0; + + ov44_02233F6C(arg0, heapID); + if (ov44_0223442C(arg0) == 1) { + arg0->unk5 = 10; + ov44_02233954(&arg0->unk30); + Clear2dMenuWindowAndDelete(arg0->unk30.listMenu2D, heapID); + arg0->unk30.listMenu2D = 0; + return 0; + } + temp_r0 = Handle2dMenuInput_DeleteOnFinish(arg0->unk30.listMenu2D, heapID); + if (temp_r0 != -1) { + if (temp_r0 == 0) { + ov44_02233D38(arg0, heapID); + ov44_022340B4(arg0); + } + arg0->unk5 = 8; + arg0->unk30.listMenu2D = 0; + } + return 0; +} + +// The leader appears busy.\nPlease apply again.\r +s32 ov44_02235100(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + arg0->unk26 = sub_02034870(0); + if (arg0->unk26 == 32) { + GF_AssertFail(); + } + ov44_02233C88(&arg0->unk30, arg1, 0, 0, heapID); + sub_02039358(); + arg0->unk27 = 0; + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00132, heapID); + arg0->unk5 = 22; + return 0; +} + +s32 ov44_02235158(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + arg0->unk30.listMenu2D = Std_CreateYesNoMenu(arg0->unk30.bgConfig, &ov44_0223645C, 48, 4, heapID); + arg0->unk5 = 23; + return 0; +} + +s32 ov44_0223518C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + s32 temp_r0; + s8 var_r0; + + temp_r0 = Handle2dMenuInput_DeleteOnFinish(arg0->unk30.listMenu2D, heapID); + if (temp_r0 != -1) { + if (temp_r0 == 0) { + var_r0 = 24; + } else { + var_r0 = 29; + } + arg0->unk5 = var_r0; + arg0->unk30.listMenu2D = 0; + } + return 0; +} + +// Communicating with {STRVAR_1 3, 0, 0}... +s32 ov44_022351BC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + Wifi_LoadAndPrintTextToWindowWrapper(&arg0->unk30, arg1, msg_0778_00017, heapID); + ov44_022342B8(arg0); + arg0->unk8 = 90; + arg0->unk5 = 25; + return 0; +} + +s32 ov44_022351DC(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (arg0->unk8 > 0) { + arg0->unk8 = arg0->unk8 - 1; + return 0; + } + if (ov44_02233914(&arg0->unk30) == 0) { + return 0; + } + if (ov44_02233E80(arg0->unk26, arg1->unk0) != 0) { + arg0->unk5 = 26; + } + return 0; +} + +s32 ov44_02235218(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + ov44_02233E48(arg0); + if ((sub_020390C4() == 1) && (sub_020373B4(0) == 1)) { + sub_020378E4(0); + ov44_022342E0(arg0, arg1, heapID); + BeginNormalPaletteFade(3, 0, 0, RGB_BLACK, 6, 1, heapID); + arg0->unk5 = 27; + } + return 0; +} + +s32 ov44_02235268(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + u8* temp_r0; + + if (IsPaletteFadeFinished() != 0) { + sub_02034354(arg1->unk8, 0); + arg0->unk27 = 1; + ov44_02234204(arg0); + FreeStructOv44_02235340(arg0, heapID); + arg0 = arg0; + memset(&arg0->unk30, 0, 504); + ov44_02234028(arg0); + ov44_022331C4(arg0, arg1, heapID); + sub_0203A880(); + arg0->unk12 = 0; + arg0->unk13 = 0; + temp_r0 = arg0->unk14; + arg0->unk14[0] = 0; + temp_r0[1] = 0; + temp_r0[2] = 0; + temp_r0[3] = 0; + temp_r0 = arg0->unk18; + arg0->unk18[0] = 0; + temp_r0[1] = 0; + temp_r0[2] = 0; + temp_r0[3] = 0; + MI_CpuFill8(&arg0->unk1C, 1, 4); + MI_CpuFill8(&arg0->unk20, 1, 4); + temp_r0 = arg0->unk28; + arg0->unk24 = 0; + arg0->unk26 = 0; + arg0->unk28[0] = 0; + temp_r0[1] = 0; + temp_r0[2] = 0; + temp_r0[3] = 0; + BeginNormalPaletteFade(3, 1, 1, RGB_BLACK, 6, 1, heapID); + arg0->unk5 = 28; + } + return 0; +} + + +s32 ov44_0223532C(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + if (IsPaletteFadeFinished() != 0) { + arg0->unk5 = 0; + } + return 0; +} + +s32 ov44_02235340(UnkStruct_ov44_02235340* arg0, UnkStruct_ov44_args* arg1, enum HeapID heapID) { + sub_02039358(); + sub_02039B58(); + arg0->unk7 = 0; + sub_020398D4(0, 1); + return 1; +} \ No newline at end of file