Files
Pokemon-Firered/asm/wild_encounter.s
T
2019-10-31 14:31:21 -04:00

1008 lines
16 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8082CBC
sub_8082CBC: @ 8082CBC
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
lsls r1, 16
lsrs r7, r1, 16
mov r8, r7
ldr r0, _08082D44 @ =gUnknown_20386DC
ldrb r0, [r0]
cmp r0, 0x1
bne _08082CD4
b _08082E46
_08082CD4:
bl sub_8082934
lsls r0, 16
lsrs r4, r0, 16
ldr r0, _08082D48 @ =0x0000ffff
cmp r4, r0
bne _08082CE4
b _08082E46
_08082CE4:
adds r0, r6, 0
movs r1, 0x4
bl sub_8058F1C
cmp r0, 0x1
bne _08082D78
ldr r1, _08082D4C @ =gWildMonHeaders
lsls r2, r4, 2
adds r0, r2, r4
lsls r0, 2
adds r1, 0x4
adds r0, r1
ldr r0, [r0]
adds r5, r2, 0
cmp r0, 0
bne _08082D06
b _08082E46
_08082D06:
adds r0, r6, 0
movs r1, 0
bl sub_8058F1C
cmp r7, r0
beq _08082D1E
bl sub_8082C98
lsls r0, 24
cmp r0, 0
bne _08082D1E
b _08082E46
_08082D1E:
ldr r1, _08082D4C @ =gWildMonHeaders
adds r0, r5, r4
lsls r0, 2
adds r1, 0x4
adds r4, r0, r1
ldr r0, [r4]
ldrb r0, [r0]
movs r1, 0
bl sub_8082BCC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08082D50
_08082D3A:
ldr r0, [r4]
ldrb r0, [r0]
bl sub_8083410
b _08082E46
.align 2, 0
_08082D44: .4byte gUnknown_20386DC
_08082D48: .4byte 0x0000ffff
_08082D4C: .4byte gWildMonHeaders
_08082D50:
bl TryStartRoamerEncounter
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08082DFA
ldr r4, [r4]
adds r0, r4, 0
movs r1, 0
movs r2, 0x1
bl sub_8082AEC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08082E38
ldrb r0, [r4]
bl sub_8083410
b _08082E46
_08082D78:
adds r0, r6, 0
movs r1, 0x4
bl sub_8058F1C
cmp r0, 0x2
beq _08082DA8
movs r0, 0x8
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08082E46
adds r0, r6, 0
movs r1, 0
bl sub_8058F1C
lsls r0, 24
lsrs r0, 24
bl MetatileBehavior_IsBridge
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08082E46
_08082DA8:
ldr r1, _08082E18 @ =gWildMonHeaders
lsls r2, r4, 2
adds r0, r2, r4
lsls r0, 2
adds r1, 0x8
adds r0, r1
ldr r0, [r0]
adds r5, r2, 0
cmp r0, 0
beq _08082E46
adds r0, r6, 0
movs r1, 0
bl sub_8058F1C
cmp r8, r0
beq _08082DD2
bl sub_8082C98
lsls r0, 24
cmp r0, 0
beq _08082E46
_08082DD2:
ldr r1, _08082E18 @ =gWildMonHeaders
adds r0, r5, r4
lsls r0, 2
adds r1, 0x8
adds r4, r0, r1
ldr r0, [r4]
ldrb r0, [r0]
movs r1, 0
bl sub_8082BCC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08082D3A
bl TryStartRoamerEncounter
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08082E24
_08082DFA:
ldr r0, _08082E1C @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08082E20 @ =0x000030d0
adds r0, r1
ldrb r0, [r0, 0xC]
bl sub_808310C
lsls r0, 24
cmp r0, 0
beq _08082E46
bl BattleSetup_StartRoamerBattle
movs r0, 0x1
b _08082E48
.align 2, 0
_08082E18: .4byte gWildMonHeaders
_08082E1C: .4byte gSaveBlock1Ptr
_08082E20: .4byte 0x000030d0
_08082E24:
ldr r4, [r4]
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x1
bl sub_8082AEC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08082E40
_08082E38:
bl BattleSetup_StartWildBattle
movs r0, 0x1
b _08082E48
_08082E40:
ldrb r0, [r4]
bl sub_8083410
_08082E46:
movs r0, 0
_08082E48:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8082CBC
thumb_func_start Special_RockSmashEncounter
Special_RockSmashEncounter: @ 8082E54
push {r4,lr}
bl sub_8082934
lsls r0, 16
lsrs r2, r0, 16
ldr r0, _08082EA4 @ =0x0000ffff
cmp r2, r0
beq _08082EB0
ldr r1, _08082EA8 @ =gWildMonHeaders
lsls r0, r2, 2
adds r0, r2
lsls r0, 2
adds r1, 0xC
adds r0, r1
ldr r4, [r0]
cmp r4, 0
beq _08082E9C
ldrb r0, [r4]
movs r1, 0x1
bl sub_8082BCC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08082EB0
adds r0, r4, 0
movs r1, 0x2
movs r2, 0x1
bl sub_8082AEC
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1
bne _08082EB0
bl BattleSetup_StartWildBattle
_08082E9C:
ldr r0, _08082EAC @ =gSpecialVar_Result
strh r4, [r0]
b _08082EB6
.align 2, 0
_08082EA4: .4byte 0x0000ffff
_08082EA8: .4byte gWildMonHeaders
_08082EAC: .4byte gSpecialVar_Result
_08082EB0:
ldr r1, _08082EBC @ =gSpecialVar_Result
movs r0, 0
strh r0, [r1]
_08082EB6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08082EBC: .4byte gSpecialVar_Result
thumb_func_end Special_RockSmashEncounter
thumb_func_start SweetScentWildEncounter
SweetScentWildEncounter: @ 8082EC0
push {r4,r5,lr}
sub sp, 0x4
mov r4, sp
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
bl PlayerGetDestCoords
bl sub_8082934
lsls r0, 16
lsrs r5, r0, 16
ldr r0, _08082F14 @ =0x0000ffff
cmp r5, r0
beq _08082F6C
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
movs r2, 0
ldrsh r1, [r4, r2]
movs r2, 0x4
bl sub_8058F48
cmp r0, 0x1
bne _08082F1C
bl TryStartRoamerEncounter
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08082F3C
ldr r1, _08082F18 @ =gWildMonHeaders
lsls r0, r5, 2
adds r0, r5
lsls r0, 2
adds r1, 0x4
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _08082F6C
movs r1, 0
b _08082F58
.align 2, 0
_08082F14: .4byte 0x0000ffff
_08082F18: .4byte gWildMonHeaders
_08082F1C:
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
movs r2, 0
ldrsh r1, [r4, r2]
movs r2, 0x4
bl sub_8058F48
cmp r0, 0x2
bne _08082F6C
bl TryStartRoamerEncounter
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08082F44
_08082F3C:
bl BattleSetup_StartRoamerBattle
movs r0, 0x1
b _08082F6E
_08082F44:
ldr r1, _08082F68 @ =gWildMonHeaders
lsls r0, r5, 2
adds r0, r5
lsls r0, 2
adds r1, 0x8
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _08082F6C
movs r1, 0x1
_08082F58:
movs r2, 0
bl sub_8082AEC
bl BattleSetup_StartWildBattle
movs r0, 0x1
b _08082F6E
.align 2, 0
_08082F68: .4byte gWildMonHeaders
_08082F6C:
movs r0, 0
_08082F6E:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end SweetScentWildEncounter
thumb_func_start sub_8082F78
sub_8082F78: @ 8082F78
push {lr}
bl sub_8082934
lsls r0, 16
lsrs r2, r0, 16
ldr r0, _08082FA0 @ =0x0000ffff
cmp r2, r0
beq _08082FA8
ldr r0, _08082FA4 @ =gWildMonHeaders
lsls r1, r2, 2
adds r1, r2
lsls r1, 2
adds r0, 0x10
adds r1, r0
ldr r0, [r1]
cmp r0, 0
beq _08082FA8
movs r0, 0x1
b _08082FAA
.align 2, 0
_08082FA0: .4byte 0x0000ffff
_08082FA4: .4byte gWildMonHeaders
_08082FA8:
movs r0, 0
_08082FAA:
pop {r1}
bx r1
thumb_func_end sub_8082F78
thumb_func_start sub_8082FB0
sub_8082FB0: @ 8082FB0
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r4, _08082FE4 @ =gWildMonHeaders
bl sub_8082934
lsls r0, 16
lsrs r0, 16
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r4, 0x10
adds r1, r4
ldr r0, [r1]
adds r1, r5, 0
bl sub_8082B64
movs r0, 0xC
bl IncrementGameStat
bl BattleSetup_StartWildBattle
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08082FE4: .4byte gWildMonHeaders
thumb_func_end sub_8082FB0
thumb_func_start GetLocalWildMon
GetLocalWildMon: @ 8082FE8
push {r4-r6,lr}
adds r6, r0, 0
movs r0, 0
strb r0, [r6]
bl sub_8082934
lsls r0, 16
lsrs r3, r0, 16
ldr r0, _08083020 @ =0x0000ffff
cmp r3, r0
beq _0808301A
ldr r2, _08083024 @ =gWildMonHeaders
lsls r1, r3, 2
adds r1, r3
lsls r1, 2
adds r0, r2, 0x4
adds r0, r1, r0
ldr r5, [r0]
adds r2, 0x8
adds r1, r2
ldr r4, [r1]
cmp r5, 0
bne _08083028
cmp r4, 0
bne _0808302E
_0808301A:
movs r0, 0
b _0808306E
.align 2, 0
_08083020: .4byte 0x0000ffff
_08083024: .4byte gWildMonHeaders
_08083028:
cmp r4, 0
bne _0808303C
b _08083060
_0808302E:
movs r0, 0x1
strb r0, [r6]
bl ChooseWildMonIndex_WaterRock
lsls r0, 24
ldr r1, [r4, 0x4]
b _08083068
_0808303C:
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0x64
bl __umodsi3
lsls r0, 16
lsrs r0, 16
cmp r0, 0x4F
bls _08083060
movs r0, 0x1
strb r0, [r6]
bl ChooseWildMonIndex_WaterRock
lsls r0, 24
ldr r1, [r4, 0x4]
b _08083068
_08083060:
bl ChooseWildMonIndex_Land
lsls r0, 24
ldr r1, [r5, 0x4]
_08083068:
lsrs r0, 22
adds r0, r1
ldrh r0, [r0, 0x2]
_0808306E:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end GetLocalWildMon
thumb_func_start GetLocalWaterMon
GetLocalWaterMon: @ 8083074
push {r4,lr}
bl sub_8082934
lsls r0, 16
lsrs r2, r0, 16
ldr r0, _080830A8 @ =0x0000ffff
cmp r2, r0
beq _080830B0
ldr r1, _080830AC @ =gWildMonHeaders
lsls r0, r2, 2
adds r0, r2
lsls r0, 2
adds r1, 0x8
adds r0, r1
ldr r4, [r0]
cmp r4, 0
beq _080830B0
bl ChooseWildMonIndex_WaterRock
lsls r0, 24
ldr r1, [r4, 0x4]
lsrs r0, 22
adds r0, r1
ldrh r0, [r0, 0x2]
b _080830B2
.align 2, 0
_080830A8: .4byte 0x0000ffff
_080830AC: .4byte gWildMonHeaders
_080830B0:
movs r0, 0
_080830B2:
pop {r4}
pop {r1}
bx r1
thumb_func_end GetLocalWaterMon
thumb_func_start sub_80830B8
sub_80830B8: @ 80830B8
push {r4,r5,lr}
bl InUnionRoom
cmp r0, 0x1
beq _08083104
ldr r0, _080830F8 @ =gUnknown_203ADFA
ldrb r0, [r0]
cmp r0, 0x2
beq _08083104
ldr r5, _080830FC @ =0x00004020
adds r0, r5, 0
bl VarGet
lsls r0, 16
lsrs r0, 16
cmp r0, 0
beq _08083104
subs r4, r0, 0x1
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
adds r1, r4, 0
bl VarSet
cmp r4, 0
bne _08083104
ldr r0, _08083100 @ =EventScript_1BFB65
bl ScriptContext1_SetupScript
movs r0, 0x1
b _08083106
.align 2, 0
_080830F8: .4byte gUnknown_203ADFA
_080830FC: .4byte 0x00004020
_08083100: .4byte EventScript_1BFB65
_08083104:
movs r0, 0
_08083106:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80830B8
thumb_func_start sub_808310C
sub_808310C: @ 808310C
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _08083158 @ =0x00004020
bl VarGet
lsls r0, 16
cmp r0, 0
beq _08083152
movs r5, 0
_08083120:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _0808315C @ =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
bl GetMonData
cmp r0, 0
beq _08083160
adds r0, r4, 0
movs r1, 0x2D
bl GetMonData
cmp r0, 0
bne _08083160
adds r0, r4, 0
movs r1, 0x38
bl GetMonData
lsls r0, 24
lsrs r0, 24
cmp r6, r0
bcc _0808316A
_08083152:
movs r0, 0x1
b _0808316C
.align 2, 0
_08083158: .4byte 0x00004020
_0808315C: .4byte gPlayerParty
_08083160:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x5
bls _08083120
_0808316A:
movs r0, 0
_0808316C:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_808310C
thumb_func_start ApplyFluteEncounterRateMod
ApplyFluteEncounterRateMod: @ 8083174
push {r4,lr}
adds r4, r0, 0
bl sub_80831A0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0808318A
cmp r0, 0x2
beq _08083192
b _08083198
_0808318A:
ldr r0, [r4]
lsrs r1, r0, 1
adds r0, r1
b _08083196
_08083192:
ldr r0, [r4]
lsrs r0, 1
_08083196:
str r0, [r4]
_08083198:
pop {r4}
pop {r0}
bx r0
thumb_func_end ApplyFluteEncounterRateMod
thumb_func_start sub_80831A0
sub_80831A0: @ 80831A0
push {lr}
ldr r0, _080831B4 @ =0x00000803
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080831B8
movs r0, 0x1
b _080831D2
.align 2, 0
_080831B4: .4byte 0x00000803
_080831B8:
ldr r0, _080831CC @ =0x00000804
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _080831D0
movs r0, 0
b _080831D2
.align 2, 0
_080831CC: .4byte 0x00000804
_080831D0:
movs r0, 0x2
_080831D2:
pop {r1}
bx r1
thumb_func_end sub_80831A0
thumb_func_start ApplyCleanseTagEncounterRateMod
ApplyCleanseTagEncounterRateMod: @ 80831D8
push {r4,lr}
adds r4, r0, 0
bl sub_80831F8
lsls r0, 24
cmp r0, 0
beq _080831F2
ldr r0, [r4]
lsls r0, 1
movs r1, 0x3
bl __udivsi3
str r0, [r4]
_080831F2:
pop {r4}
pop {r0}
bx r0
thumb_func_end ApplyCleanseTagEncounterRateMod
thumb_func_start sub_80831F8
sub_80831F8: @ 80831F8
push {lr}
ldr r0, _08083208 @ =gUnknown_20386D0
ldrh r0, [r0, 0xA]
cmp r0, 0xBE
beq _0808320C
movs r0, 0
b _0808320E
.align 2, 0
_08083208: .4byte gUnknown_20386D0
_0808320C:
movs r0, 0x1
_0808320E:
pop {r1}
bx r1
thumb_func_end sub_80831F8
thumb_func_start sub_8083214
sub_8083214: @ 8083214
push {lr}
lsls r0, 16
lsrs r0, 16
ldr r1, _08083228 @ =gUnknown_20386D0
str r0, [r1]
bl sub_80832D4
pop {r0}
bx r0
.align 2, 0
_08083228: .4byte gUnknown_20386D0
thumb_func_end sub_8083214
thumb_func_start sub_808322C
sub_808322C: @ 808322C
ldr r2, _08083240 @ =gUnknown_20386D0
ldr r1, [r2]
ldr r0, _08083244 @ =0x41c64e6d
muls r0, r1
ldr r1, _08083248 @ =0x00003039
adds r0, r1
str r0, [r2]
lsrs r0, 16
bx lr
.align 2, 0
_08083240: .4byte gUnknown_20386D0
_08083244: .4byte 0x41c64e6d
_08083248: .4byte 0x00003039
thumb_func_end sub_808322C
thumb_func_start sub_808324C
sub_808324C: @ 808324C
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
bl sub_8082934
lsls r0, 16
lsrs r2, r0, 16
ldr r0, _08083284 @ =0x0000ffff
cmp r2, r0
beq _080832CC
cmp r4, 0x1
bne _0808328C
ldr r1, _08083288 @ =gWildMonHeaders
lsls r0, r2, 2
adds r0, r2
lsls r0, 2
adds r1, 0x4
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _080832CC
ldrb r1, [r0]
cmp r1, 0x4F
bhi _080832A8
cmp r1, 0x9
bls _080832B4
b _080832B8
.align 2, 0
_08083284: .4byte 0x0000ffff
_08083288: .4byte gWildMonHeaders
_0808328C:
cmp r5, 0x2
bne _080832CC
ldr r1, _080832AC @ =gWildMonHeaders
lsls r0, r2, 2
adds r0, r2
lsls r0, 2
adds r1, 0x8
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _080832CC
ldrb r1, [r0]
cmp r1, 0x4F
bls _080832B0
_080832A8:
movs r0, 0
b _080832CE
.align 2, 0
_080832AC: .4byte gWildMonHeaders
_080832B0:
cmp r1, 0x9
bhi _080832B8
_080832B4:
movs r0, 0x8
b _080832CE
_080832B8:
ldrb r0, [r0]
movs r1, 0xA
bl __udivsi3
adds r1, r0, 0
movs r0, 0x8
subs r0, r1
lsls r0, 24
lsrs r0, 24
b _080832CE
_080832CC:
movs r0, 0xFF
_080832CE:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_808324C
thumb_func_start sub_80832D4
sub_80832D4: @ 80832D4
ldr r0, _080832E0 @ =gUnknown_20386D0
movs r2, 0
movs r1, 0
strh r1, [r0, 0x6]
strb r2, [r0, 0x8]
bx lr
.align 2, 0
_080832E0: .4byte gUnknown_20386D0
thumb_func_end sub_80832D4
thumb_func_start sub_80832E4
sub_80832E4: @ 80832E4
push {r4,r5,lr}
movs r1, 0x4
bl sub_8058F1C
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _080833A0
bl sub_808324C
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xFF
beq _080833A0
lsls r4, 8
movs r5, 0xA0
lsls r5, 3
bl sub_80831A0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08083318
cmp r0, 0x2
beq _08083326
b _0808332A
_08083318:
lsrs r0, r4, 1
subs r4, r0
lsrs r0, r5, 1
movs r1, 0xA0
lsls r1, 3
adds r5, r0, r1
b _0808332A
_08083326:
lsls r4, 1
lsrs r5, 1
_0808332A:
ldr r0, _08083368 @ =gPlayerParty
movs r1, 0xC
bl GetMonData
ldr r1, _0808336C @ =gUnknown_20386D0
strh r0, [r1, 0xA]
bl sub_80831F8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08083356
adds r0, r4, 0
movs r1, 0x3
bl __udivsi3
adds r4, r0
adds r0, r5, 0
movs r1, 0x3
bl __udivsi3
subs r5, r0
_08083356:
bl sub_8082C58
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08083370
cmp r0, 0x2
beq _08083376
b _0808337A
.align 2, 0
_08083368: .4byte gPlayerParty
_0808336C: .4byte gUnknown_20386D0
_08083370:
lsls r4, 1
lsrs r5, 1
b _0808337A
_08083376:
lsrs r4, 1
lsls r5, 1
_0808337A:
lsrs r4, 8
lsrs r5, 8
ldr r1, _080833A4 @ =gUnknown_20386D0
ldrb r0, [r1, 0x8]
cmp r0, r4
bcs _080833A8
adds r0, 0x1
strb r0, [r1, 0x8]
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0x64
bl __umodsi3
lsls r0, 16
lsrs r0, 16
cmp r0, r5
bcc _080833A8
_080833A0:
movs r0, 0
b _080833AA
.align 2, 0
_080833A4: .4byte gUnknown_20386D0
_080833A8:
movs r0, 0x1
_080833AA:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80832E4
thumb_func_start sub_80833B0
sub_80833B0: @ 80833B0
push {r4,r5,lr}
adds r4, r0, 0
bl sub_80832E4
lsls r0, 24
cmp r0, 0
bne _080833D4
adds r0, r4, 0
movs r1, 0
bl sub_8058F1C
ldr r1, _080833D0 @ =gUnknown_20386D0
strh r0, [r1, 0x4]
movs r0, 0
b _0808340A
.align 2, 0
_080833D0: .4byte gUnknown_20386D0
_080833D4:
ldr r5, _080833F4 @ =gUnknown_20386D0
ldrh r1, [r5, 0x4]
adds r0, r4, 0
bl sub_8082CBC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _080833F8
adds r0, r4, 0
movs r1, 0
bl sub_8058F1C
strh r0, [r5, 0x4]
movs r0, 0
b _0808340A
.align 2, 0
_080833F4: .4byte gUnknown_20386D0
_080833F8:
movs r0, 0
movs r1, 0
strh r1, [r5, 0x6]
strb r0, [r5, 0x8]
adds r0, r4, 0
bl sub_8058F1C
strh r0, [r5, 0x4]
movs r0, 0x1
_0808340A:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80833B0
thumb_func_start sub_8083410
sub_8083410: @ 8083410
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _0808342C @ =0x00004020
bl VarGet
lsls r0, 16
cmp r0, 0
bne _08083434
ldr r1, _08083430 @ =gUnknown_20386D0
ldrh r0, [r1, 0x6]
adds r0, r4
b _08083438
.align 2, 0
_0808342C: .4byte 0x00004020
_08083430: .4byte gUnknown_20386D0
_08083434:
ldr r1, _08083440 @ =gUnknown_20386D0
movs r0, 0
_08083438:
strh r0, [r1, 0x6]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08083440: .4byte gUnknown_20386D0
thumb_func_end sub_8083410
.align 2, 0 @ Don't pad with nop.