pokeheartgold/asm/overlay_80_02236450.s
PikalaxALT f85e12fbc0
Name battle setup scrcmds; dump a/0/8/4
New name: application/record/record.narc
2023-08-25 16:30:45 -04:00

960 lines
16 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_80_02236450.inc"
.include "global.inc"
.text
thumb_func_start ov80_02236450
ov80_02236450: ; 0x02236450
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r0, #0
ldrb r0, [r5, #0xf]
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
bl ov80_02236B04
add r3, r0, #0
ldr r2, [sp, #0x3c]
add r0, r4, #0
add r1, r6, #0
bl ov80_02229F04
str r0, [sp, #0x14]
lsl r0, r7, #0x18
lsr r0, r0, #0x18
str r0, [sp]
ldr r0, [sp, #0x30]
add r4, #0x30
str r0, [sp, #4]
ldr r0, [sp, #0x34]
ldr r1, [sp, #0x14]
str r0, [sp, #8]
ldr r0, [sp, #0x38]
add r2, r6, #0
str r0, [sp, #0xc]
ldr r0, [sp, #0x3c]
add r3, r4, #0
str r0, [sp, #0x10]
add r0, r5, #0
bl ov80_022364A4
add r4, r0, #0
ldr r0, [sp, #0x14]
bl FreeToHeap
add r0, r4, #0
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov80_02236450
thumb_func_start ov80_022364A4
ov80_022364A4: ; 0x022364A4
push {r4, r5, r6, r7, lr}
sub sp, #0x84
add r7, r0, #0
ldr r0, [sp, #0x9c]
str r2, [sp, #0x18]
str r0, [sp, #0x9c]
ldr r0, [sp, #0xa0]
str r1, [sp, #0x14]
str r0, [sp, #0xa0]
ldr r0, [sp, #0xa4]
str r3, [sp, #0x1c]
str r0, [sp, #0xa4]
ldr r0, [sp, #0xa8]
str r0, [sp, #0xa8]
mov r0, #0
str r0, [sp, #0x2c]
add r0, sp, #0x88
ldrb r0, [r0, #0x10]
cmp r0, #4
bls _022364D0
bl GF_AssertFail
_022364D0:
add r0, sp, #0x88
ldrb r6, [r0, #0x10]
mov r4, #0
str r4, [sp, #0x30]
cmp r6, #0
bne _022364DE
b _022365EE
_022364DE:
add r0, sp, #0x74
str r0, [sp, #0x24]
_022364E2:
add r0, r7, #0
bl sub_0204B510
ldr r1, [sp, #0x14]
ldrh r1, [r1, #2]
bl _s32_div_f
lsl r0, r1, #0x18
lsr r1, r0, #0x17
ldr r0, [sp, #0x14]
add r0, r0, r1
ldrh r0, [r0, #4]
str r0, [sp, #0x34]
ldrb r0, [r7, #0xf]
bl ov80_02236AF0
add r2, r0, #0
ldr r1, [sp, #0x34]
add r0, sp, #0x44
bl ov80_02229EF4
mov r0, #0
str r0, [sp, #0x40]
cmp r4, #0
ble _0223653C
add r5, sp, #0x74
_02236516:
ldrb r0, [r7, #0xf]
bl ov80_02236AF0
add r2, r0, #0
ldr r1, [r5]
add r0, sp, #0x54
bl ov80_02229EF4
add r0, sp, #0x44
ldrh r1, [r0, #0x10]
ldrh r0, [r0]
cmp r1, r0
beq _0223653C
ldr r0, [sp, #0x40]
add r5, r5, #4
add r0, r0, #1
str r0, [sp, #0x40]
cmp r0, r4
blt _02236516
_0223653C:
ldr r0, [sp, #0x40]
cmp r0, r4
bne _022365E8
ldr r0, [sp, #0x9c]
cmp r0, #0
beq _02236566
mov r0, #0
cmp r6, #0
ble _02236562
add r1, sp, #0x44
ldrh r3, [r1]
ldr r2, [sp, #0x9c]
_02236554:
ldrh r1, [r2]
cmp r3, r1
beq _02236562
add r0, r0, #1
add r2, r2, #2
cmp r0, r6
blt _02236554
_02236562:
cmp r0, r6
bne _022365E8
_02236566:
ldr r0, [sp, #0x30]
cmp r0, #0x32
bge _022365DE
mov r0, #0
str r0, [sp, #0x20]
cmp r4, #0
ble _022365A0
add r5, sp, #0x74
_02236576:
ldrb r0, [r7, #0xf]
bl ov80_02236AF0
add r2, r0, #0
ldr r1, [r5]
add r0, sp, #0x54
bl ov80_02229EF4
add r0, sp, #0x44
ldrh r1, [r0, #0x1c]
cmp r1, #0
beq _02236594
ldrh r0, [r0, #0xc]
cmp r1, r0
beq _022365A0
_02236594:
ldr r0, [sp, #0x20]
add r5, r5, #4
add r0, r0, #1
str r0, [sp, #0x20]
cmp r0, r4
blt _02236576
_022365A0:
ldr r0, [sp, #0x20]
cmp r0, r4
beq _022365AE
ldr r0, [sp, #0x30]
add r0, r0, #1
str r0, [sp, #0x30]
b _022365E8
_022365AE:
ldr r0, [sp, #0xa0]
cmp r0, #0
beq _022365DE
mov r0, #0
cmp r6, #0
ble _022365D2
add r1, sp, #0x44
ldrh r3, [r1, #0xc]
ldr r2, [sp, #0xa0]
_022365C0:
ldrh r1, [r2]
cmp r3, r1
bne _022365CA
cmp r1, #0
bne _022365D2
_022365CA:
add r0, r0, #1
add r2, r2, #2
cmp r0, r6
blt _022365C0
_022365D2:
cmp r0, r6
beq _022365DE
ldr r0, [sp, #0x30]
add r0, r0, #1
str r0, [sp, #0x30]
b _022365E8
_022365DE:
ldr r1, [sp, #0x34]
ldr r0, [sp, #0x24]
add r4, r4, #1
stmia r0!, {r1}
str r0, [sp, #0x24]
_022365E8:
cmp r4, r6
beq _022365EE
b _022364E2
_022365EE:
ldr r0, [sp, #0x18]
bl sub_0204B4D4
str r0, [sp, #0x3c]
add r0, r7, #0
bl sub_0204B510
add r5, r0, #0
add r0, r7, #0
bl sub_0204B510
lsl r0, r0, #0x10
orr r0, r5
str r0, [sp, #0x38]
ldr r0, [sp, #0x30]
cmp r0, #0x32
blt _02236614
mov r0, #1
str r0, [sp, #0x2c]
_02236614:
mov r5, #0
cmp r4, #0
ble _0223665C
add r0, sp, #0x74
str r0, [sp, #0x28]
add r6, sp, #0x64
_02236620:
mov r0, #0
str r0, [sp]
ldr r0, [sp, #0x3c]
ldr r2, [sp, #0x28]
str r0, [sp, #4]
lsl r0, r5, #0x18
lsr r0, r0, #0x18
str r0, [sp, #8]
ldr r0, [sp, #0x2c]
ldr r1, [sp, #0x1c]
str r0, [sp, #0xc]
ldr r0, [sp, #0xa8]
ldr r3, [sp, #0x38]
str r0, [sp, #0x10]
ldr r2, [r2]
add r0, r7, #0
lsl r2, r2, #0x10
lsr r2, r2, #0x10
bl ov80_02236734
stmia r6!, {r0}
ldr r0, [sp, #0x28]
add r5, r5, #1
add r0, r0, #4
str r0, [sp, #0x28]
ldr r0, [sp, #0x1c]
add r0, #0x38
str r0, [sp, #0x1c]
cmp r5, r4
blt _02236620
_0223665C:
ldr r0, [sp, #0xa4]
cmp r0, #0
bne _02236668
ldr r0, [sp, #0x2c]
add sp, #0x84
pop {r4, r5, r6, r7, pc}
_02236668:
ldr r1, [sp, #0x38]
ldr r2, [sp, #0xa4]
str r1, [r0]
mov r3, #0
add r0, sp, #0x74
add r1, sp, #0x64
_02236674:
ldr r5, [r0]
ldr r4, [sp, #0xa4]
add r3, r3, #1
strh r5, [r4, #4]
ldr r4, [r1]
add r0, r0, #4
str r4, [r2, #8]
ldr r4, [sp, #0xa4]
add r1, r1, #4
add r4, r4, #2
add r2, r2, #4
str r4, [sp, #0xa4]
cmp r3, #2
blt _02236674
ldr r0, [sp, #0x2c]
add sp, #0x84
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov80_022364A4
thumb_func_start ov80_02236698
ov80_02236698: ; 0x02236698
push {r4, r5, r6, lr}
add r5, r1, #0
add r4, r2, #0
mov r2, #0x11
add r6, r0, #0
add r0, r5, #0
mov r1, #0
lsl r2, r2, #4
bl MI_CpuFill8
add r0, r6, #0
bl sub_0202D928
add r6, r0, #0
bl sub_0202D7B0
cmp r0, #0
bne _022366C6
add r0, r5, #0
add r1, r4, #0
bl ov80_022366D4
pop {r4, r5, r6, pc}
_022366C6:
add r0, r6, #0
add r1, r5, #0
add r2, r4, #0
bl sub_0202D804
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end ov80_02236698
thumb_func_start ov80_022366D4
ov80_022366D4: ; 0x022366D4
push {r3, r4, r5, r6, r7, lr}
mov r2, #0x11
add r4, r1, #0
mov r1, #0
lsl r2, r2, #4
add r5, r0, #0
bl MI_CpuFill8
mov r0, #6
mul r0, r4
ldr r1, _02236728 ; =ov80_0223C050
str r0, [sp]
add r6, r1, r0
ldr r1, _0223672C ; =ov80_0223C07C
mov r2, #0x30
add r0, r4, #0
mul r0, r2
add r0, r1, r0
add r1, r5, #0
ldr r7, _02236730 ; =ov80_0223C0AC
bl MI_CpuCopy8
ldr r1, _02236728 ; =ov80_0223C050
ldr r0, [sp]
mov r4, #0
ldrh r0, [r1, r0]
strh r0, [r5, #6]
add r5, #0x30
_0223670C:
add r0, r6, r4
ldrb r1, [r0, #2]
mov r0, #0x38
mov r2, #0x38
mul r0, r1
add r0, r7, r0
add r1, r5, #0
bl MI_CpuCopy8
add r4, r4, #1
add r5, #0x38
cmp r4, #4
blt _0223670C
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02236728: .word ov80_0223C050
_0223672C: .word ov80_0223C07C
_02236730: .word ov80_0223C0AC
thumb_func_end ov80_022366D4
thumb_func_start ov80_02236734
ov80_02236734: ; 0x02236734
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r5, r1, #0
add r4, r0, #0
add r6, r2, #0
add r0, r5, #0
mov r1, #0
mov r2, #0x38
str r3, [sp]
bl MI_CpuFill8
ldrb r0, [r4, #0xf]
bl ov80_02236AF0
add r2, r0, #0
add r0, sp, #8
add r1, r6, #0
bl ov80_02229EF4
add r2, sp, #8
ldrh r0, [r5]
ldr r1, _022368E4 ; =0xFFFFF800
ldrh r3, [r2]
and r0, r1
lsr r1, r1, #0x15
and r1, r3
orr r0, r1
strh r0, [r5]
ldrh r1, [r5]
ldr r0, _022368E8 ; =0xFFFF07FF
and r1, r0
ldrh r0, [r2, #0xe]
lsl r0, r0, #0x1b
lsr r0, r0, #0x10
orr r0, r1
strh r0, [r5]
ldr r0, [sp, #0x3c]
cmp r0, #0
beq _0223678E
add r0, sp, #0x20
ldrb r0, [r0, #0x18]
lsl r1, r0, #1
ldr r0, _022368EC ; =ov80_0223C048
ldrh r0, [r0, r1]
b _02236790
_0223678E:
ldrh r0, [r2, #0xc]
_02236790:
strh r0, [r5, #2]
mov r0, #0xff
str r0, [sp, #4]
mov r0, #0
add r1, sp, #8
add r2, r5, #0
add r3, r0, #0
_0223679E:
ldrh r6, [r1, #2]
strh r6, [r2, #4]
ldrh r6, [r1, #2]
cmp r6, #0xda
bne _022367AA
str r3, [sp, #4]
_022367AA:
add r0, r0, #1
add r1, r1, #2
add r2, r2, #2
cmp r0, #4
blt _0223679E
ldr r0, [sp]
ldr r7, [sp, #0x30]
str r0, [r5, #0xc]
cmp r7, #0
bne _022367F0
_022367BE:
add r0, r4, #0
bl sub_0204B510
add r6, r0, #0
add r0, r4, #0
bl sub_0204B510
lsl r0, r0, #0x10
add r7, r6, #0
orr r7, r0
add r0, r7, #0
bl GetNatureFromPersonality
add r1, sp, #8
ldrb r1, [r1, #0xb]
cmp r1, r0
bne _022367BE
ldr r0, [sp]
add r1, r7, #0
bl CalcShininessByOtIdAndPersonality
cmp r0, #1
beq _022367BE
str r7, [r5, #0x10]
b _022367F2
_022367F0:
str r7, [r5, #0x10]
_022367F2:
add r0, sp, #0x20
ldrb r1, [r0, #0x14]
ldr r2, [r5, #0x14]
mov r0, #0x1f
bic r2, r0
mov r0, #0x1f
and r0, r1
orr r2, r0
ldr r0, _022368F0 ; =0xFFFFFC1F
mov r6, #0
and r2, r0
lsl r0, r1, #0x1b
lsr r1, r0, #0x16
orr r2, r1
ldr r1, _022368F4 ; =0xFFFF83FF
add r4, r6, #0
and r2, r1
lsr r1, r0, #0x11
orr r2, r1
ldr r1, _022368F8 ; =0xFFF07FFF
and r2, r1
lsr r1, r0, #0xc
orr r2, r1
ldr r1, _022368FC ; =0xFE0FFFFF
and r2, r1
lsr r1, r0, #7
orr r2, r1
ldr r1, _02236900 ; =0xC1FFFFFF
lsr r0, r0, #2
and r1, r2
orr r0, r1
str r0, [r5, #0x14]
_02236832:
add r0, r4, #0
bl MaskOfFlagNo
add r1, sp, #8
ldrb r1, [r1, #0xa]
tst r0, r1
beq _02236842
add r6, r6, #1
_02236842:
add r4, r4, #1
cmp r4, #6
blt _02236832
ldr r0, _02236904 ; =0x000001FE
add r1, r6, #0
bl _s32_div_f
cmp r0, #0xff
ble _02236856
mov r0, #0xff
_02236856:
lsl r0, r0, #0x18
mov r4, #0
lsr r6, r0, #0x18
_0223685C:
add r0, r4, #0
bl MaskOfFlagNo
add r1, sp, #8
ldrb r1, [r1, #0xa]
tst r0, r1
beq _0223686E
add r0, r5, r4
strb r6, [r0, #0x18]
_0223686E:
add r4, r4, #1
cmp r4, #6
blt _0223685C
mov r0, #0
strb r0, [r5, #0x1e]
ldr r0, _02236908 ; =gGameLanguage
mov r1, #0x19
ldrb r0, [r0]
strb r0, [r5, #0x1f]
ldrh r0, [r5]
lsl r0, r0, #0x15
lsr r0, r0, #0x15
bl GetMonBaseStat
cmp r0, #0
beq _022368B2
ldr r2, [r5, #0x10]
mov r1, #1
tst r1, r2
beq _0223689E
add r1, r5, #0
add r1, #0x20
strb r0, [r1]
b _022368C4
_0223689E:
ldrh r0, [r5]
mov r1, #0x18
lsl r0, r0, #0x15
lsr r0, r0, #0x15
bl GetMonBaseStat
add r1, r5, #0
add r1, #0x20
strb r0, [r1]
b _022368C4
_022368B2:
ldrh r0, [r5]
mov r1, #0x18
lsl r0, r0, #0x15
lsr r0, r0, #0x15
bl GetMonBaseStat
add r1, r5, #0
add r1, #0x20
strb r0, [r1]
_022368C4:
add r1, r5, #0
ldr r0, [sp, #4]
add r1, #0x21
strb r0, [r1]
ldrh r0, [r5]
add r5, #0x22
ldr r1, [sp, #0x40]
lsl r0, r0, #0x15
lsr r0, r0, #0x15
add r2, r5, #0
bl GetSpeciesNameIntoArray
add r0, r7, #0
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_022368E4: .word 0xFFFFF800
_022368E8: .word 0xFFFF07FF
_022368EC: .word ov80_0223C048
_022368F0: .word 0xFFFFFC1F
_022368F4: .word 0xFFFF83FF
_022368F8: .word 0xFFF07FFF
_022368FC: .word 0xFE0FFFFF
_02236900: .word 0xC1FFFFFF
_02236904: .word 0x000001FE
_02236908: .word gGameLanguage
thumb_func_end ov80_02236734
thumb_func_start ov80_0223690C
ov80_0223690C: ; 0x0223690C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r0, #0
ldrb r0, [r5, #0xf]
add r4, r1, #0
bl ov80_02236A88
add r1, r0, #0
ldr r0, [r5, #4]
bl BattleSetup_New
add r7, r0, #0
ldr r0, [r4, #8]
bl SaveArray_Party_Get
str r0, [sp, #8]
ldr r0, [r4, #0xc]
mov r1, #0
str r0, [sp]
ldr r0, [r4, #0x1c]
str r0, [sp, #4]
ldr r2, [r4, #8]
ldr r3, [r4, #0x18]
add r0, r7, #0
bl sub_02051D18
mov r0, #0x53
mov r1, #0x12
lsl r0, r0, #2
str r1, [r7, r0]
add r0, r0, #4
str r1, [r7, r0]
ldr r0, [r5, #4]
bl AllocMonZeroed
add r4, r0, #0
ldrb r1, [r5, #0xe]
ldr r0, [r7, #4]
bl Party_InitWithMaxSize
ldrb r0, [r5, #0xe]
mov r6, #0
cmp r0, #0
ble _022369B8
_02236964:
add r1, r5, r6
add r1, #0x2a
ldrb r1, [r1]
ldr r0, [sp, #8]
bl Party_GetMonByIndex
add r1, r4, #0
bl CopyPokemonToPokemon
add r0, r4, #0
mov r1, #0xa1
mov r2, #0
bl GetMonData
cmp r0, #0x32
bls _022369A6
add r0, r4, #0
mov r1, #5
mov r2, #0
bl GetMonData
mov r1, #0x32
bl GetMonExpBySpeciesAndLevel
str r0, [sp, #0xc]
add r0, r4, #0
mov r1, #8
add r2, sp, #0xc
bl SetMonData
add r0, r4, #0
bl CalcMonLevelAndStats
_022369A6:
add r0, r7, #0
add r1, r4, #0
mov r2, #0
bl BattleSetup_AddMonToParty
ldrb r0, [r5, #0xe]
add r6, r6, #1
cmp r6, r0
blt _02236964
_022369B8:
add r0, r4, #0
bl FreeToHeap
add r0, r7, #0
bl BattleSetup_SetAllySideBattlersToPlayer
ldr r0, [r5, #4]
add r1, r5, #0
str r0, [sp]
ldrb r2, [r5, #0xe]
add r0, r7, #0
add r1, #0x78
mov r3, #1
bl ov80_02236A34
mov r2, #0
add r1, r7, #0
mov r0, #7
_022369DC:
add r2, r2, #1
str r0, [r1, #0x34]
add r1, #0x34
cmp r2, #4
blt _022369DC
ldrb r0, [r5, #0xf]
cmp r0, #2
beq _022369F6
cmp r0, #3
beq _02236A18
cmp r0, #6
beq _02236A18
b _02236A2C
_022369F6:
ldr r0, [r5, #4]
mov r1, #0xa6
str r0, [sp]
ldrb r2, [r5, #0x10]
lsl r1, r1, #2
add r1, r5, r1
lsl r2, r2, #0x18
lsr r3, r2, #0x1d
lsl r2, r3, #4
add r2, r3, r2
lsl r2, r2, #4
add r1, r1, r2
ldrb r2, [r5, #0xe]
add r0, r7, #0
mov r3, #2
bl ov80_02236A34
_02236A18:
ldr r0, [r5, #4]
mov r1, #0x62
str r0, [sp]
ldrb r2, [r5, #0xe]
lsl r1, r1, #2
add r0, r7, #0
add r1, r5, r1
mov r3, #3
bl ov80_02236A34
_02236A2C:
add r0, r7, #0
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end ov80_0223690C
thumb_func_start ov80_02236A34
ov80_02236A34: ; 0x02236A34
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
ldr r4, [sp, #0x28]
str r0, [sp, #4]
add r5, r1, #0
add r7, r2, #0
str r3, [sp, #8]
str r4, [sp]
bl ov80_0222A480
ldr r0, [sp, #0x28]
bl AllocMonZeroed
add r4, r0, #0
mov r6, #0
cmp r7, #0
ble _02236A7E
ldr r0, [sp, #8]
add r5, #0x30
lsl r1, r0, #2
ldr r0, [sp, #4]
add r0, r0, r1
str r0, [sp, #0xc]
_02236A62:
add r0, r5, #0
add r1, r4, #0
mov r2, #0x78
bl ov80_0222A140
ldr r0, [sp, #0xc]
add r1, r4, #0
ldr r0, [r0, #4]
bl Party_AddMon
add r6, r6, #1
add r5, #0x38
cmp r6, r7
blt _02236A62
_02236A7E:
add r0, r4, #0
bl FreeToHeap
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end ov80_02236A34
thumb_func_start ov80_02236A88
ov80_02236A88: ; 0x02236A88
cmp r0, #6
bhi _02236AB6
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02236A98: ; jump table
.short _02236AA6 - _02236A98 - 2 ; case 0
.short _02236AAA - _02236A98 - 2 ; case 1
.short _02236AAE - _02236A98 - 2 ; case 2
.short _02236AB2 - _02236A98 - 2 ; case 3
.short _02236AA6 - _02236A98 - 2 ; case 4
.short _02236AB6 - _02236A98 - 2 ; case 5
.short _02236AB2 - _02236A98 - 2 ; case 6
_02236AA6:
mov r0, #0x81
bx lr
_02236AAA:
mov r0, #0x83
bx lr
_02236AAE:
mov r0, #0xcb
bx lr
_02236AB2:
mov r0, #0x8f
bx lr
_02236AB6:
mov r0, #0x81
bx lr
.balign 4, 0
thumb_func_end ov80_02236A88
thumb_func_start ov80_02236ABC
ov80_02236ABC: ; 0x02236ABC
ldrb r3, [r0, #0x10]
mov r2, #8
bic r3, r2
lsl r2, r1, #0x18
lsr r2, r2, #0x18
lsl r2, r2, #0x1f
lsr r2, r2, #0x1c
orr r2, r3
strb r2, [r0, #0x10]
ldr r2, _02236AD4 ; =0x0000083E
strh r1, [r0, r2]
bx lr
.balign 4, 0
_02236AD4: .word 0x0000083E
thumb_func_end ov80_02236ABC
thumb_func_start ov80_02236AD8
ov80_02236AD8: ; 0x02236AD8
ldrb r0, [r0, #0x10]
lsl r0, r0, #0x1c
lsr r0, r0, #0x1f
bne _02236AE6
ldrh r0, [r1]
cmp r0, #0
beq _02236AEA
_02236AE6:
mov r0, #1
bx lr
_02236AEA:
mov r0, #0
bx lr
.balign 4, 0
thumb_func_end ov80_02236AD8
thumb_func_start ov80_02236AF0
ov80_02236AF0: ; 0x02236AF0
push {r3, lr}
bl ov80_02236B30
cmp r0, #0
bne _02236AFE
mov r0, #0x81
pop {r3, pc}
_02236AFE:
mov r0, #0xcd
pop {r3, pc}
.balign 4, 0
thumb_func_end ov80_02236AF0
thumb_func_start ov80_02236B04
ov80_02236B04: ; 0x02236B04
push {r3, lr}
bl ov80_02236B30
cmp r0, #0
bne _02236B12
mov r0, #0x80
pop {r3, pc}
_02236B12:
mov r0, #0xcc
pop {r3, pc}
.balign 4, 0
thumb_func_end ov80_02236B04
thumb_func_start ov80_02236B18
ov80_02236B18: ; 0x02236B18
push {r3, lr}
bl ov80_02236B30
cmp r0, #0
bne _02236B26
ldr r0, _02236B2C ; =0x000002D3
pop {r3, pc}
_02236B26:
mov r0, #0xb5
lsl r0, r0, #2
pop {r3, pc}
.balign 4, 0
_02236B2C: .word 0x000002D3
thumb_func_end ov80_02236B18
thumb_func_start ov80_02236B30
ov80_02236B30: ; 0x02236B30
push {r3, r4, r5, lr}
cmp r0, #3
beq _02236B3A
cmp r0, #6
bne _02236B74
_02236B3A:
mov r0, #0
bl sub_02034818
add r5, r0, #0
bne _02236B48
bl GF_AssertFail
_02236B48:
mov r0, #1
bl sub_02034818
add r4, r0, #0
bne _02236B56
bl GF_AssertFail
_02236B56:
add r0, r5, #0
bl PlayerProfile_GetVersion
add r5, r0, #0
add r0, r4, #0
bl PlayerProfile_GetVersion
cmp r5, #0
beq _02236B6C
cmp r0, #0
bne _02236B70
_02236B6C:
mov r0, #0
pop {r3, r4, r5, pc}
_02236B70:
mov r0, #1
pop {r3, r4, r5, pc}
_02236B74:
mov r0, #1
pop {r3, r4, r5, pc}
thumb_func_end ov80_02236B30