Function at 0x62e180
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x28
mov eax, dword [0x6d63d0]
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push edi
push 0x76cb98
push 0x2bc
push str.VolMusic
push str.Game
mov dword [esp + 0x40], eax
call esi
mov ebx, eax
push ebx
lea eax, [esp + 0x14]
push 0x68d830
push eax
call fcn.00671a9a
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
add esp, 0xc
push 0x76cb98
lea ecx, [esp + 0x14]
push ecx
push str.VolMusic
push str.Game
call edi
test ebx, ebx
mov dword [esp + 0xc], ebx
jl 0x62e1ec
cmp ebx, 0x3e8
jle 0x62e1f4
mov dword [esp + 0xc], 0x2bc
fild dword [esp + 0xc]
push 0x76cb98
push 0x3e8
push str.VolSFX
fmul dword [0x68b554]
push str.Game
fstp dword [0x76cd10]
call esi
mov ebx, eax
push ebx
lea edx, [esp + 0x14]
push 0x68d830
push edx
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea eax, [esp + 0x14]
push eax
push str.VolSFX
push str.Game
call edi
test ebx, ebx
mov dword [esp + 0xc], ebx
jl 0x62e255
cmp ebx, 0x3e8
jle 0x62e25d
mov dword [esp + 0xc], 0x3e8
fild dword [esp + 0xc]
push 0x76cb98
push 0x3e8
push str.VolVoice
fmul dword [0x68b554]
push str.Game
fstp dword [0x76cb84]
call esi
mov ebx, eax
push ebx
lea ecx, [esp + 0x14]
push 0x68d830
push ecx
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea edx, [esp + 0x14]
push edx
push str.VolVoice
push str.Game
call edi
test ebx, ebx
mov dword [esp + 0xc], ebx
jl 0x62e2be
cmp ebx, 0x3e8
jle 0x62e2c6
mov dword [esp + 0xc], 0x3e8
fild dword [esp + 0xc]
push 0x76cb98
push 0x3e8
push str.VolMovie
fmul dword [0x68b554]
push str.Game
fstp dword [0x76cb88]
call esi
mov ebx, eax
push ebx
lea eax, [esp + 0x14]
push 0x68d830
push eax
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea ecx, [esp + 0x14]
push ecx
push str.VolMovie
push str.Game
call edi
test ebx, ebx
mov dword [esp + 0xc], ebx
jl 0x62e327
cmp ebx, 0x3e8
jle 0x62e32f
mov dword [esp + 0xc], 0x3e8
fild dword [esp + 0xc]
push 0x76cb98
push 0
push str.Subtitles
fmul dword [0x68b554]
push str.Game
fstp dword [0x76cca8]
call esi
mov ebx, eax
push ebx
lea edx, [esp + 0x14]
push 0x68d830
push edx
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea eax, [esp + 0x14]
push eax
push str.Subtitles
push str.Game
call edi
push 0x76cb98
push 1
cmp ebx, 1
push str.Radar
sete cl
push str.Game
mov byte [0x76cb80], cl
call esi
mov ebx, eax
push ebx
lea edx, [esp + 0x14]
push 0x68d830
push edx
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea eax, [esp + 0x14]
push eax
push str.Radar
push str.Game
call edi
push 0x76cb98
push 1
cmp ebx, 1
push str.Dispatcher
sete cl
push str.Game
mov byte [0x76cb38], cl
call esi
mov ebx, eax
push ebx
lea edx, [esp + 0x14]
push 0x68d830
push edx
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea eax, [esp + 0x14]
push eax
push str.Dispatcher
push str.Game
call edi
push 0x76cb98
push 1
cmp ebx, 1
push str.Vibration
sete cl
push str.Game
mov byte [0x76cb91], cl
call esi
mov ebx, eax
push ebx
lea edx, [esp + 0x14]
push 0x68d830
push edx
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea eax, [esp + 0x14]
push eax
push str.Vibration
push str.Game
call edi
push 0x76cb98
push 0
cmp ebx, 1
push str.InverseAim
sete cl
push str.Game
mov byte [0x76ccac], cl
call esi
mov ebx, eax
push ebx
lea edx, [esp + 0x14]
push 0x68d830
push edx
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea eax, [esp + 0x14]
push eax
push str.InverseAim
push str.Game
call edi
push 0x76cb98
push 1
cmp ebx, 1
push str.MouseSteering
sete cl
push str.Game
mov byte [0x76cca4], cl
call esi
mov ebx, eax
push ebx
lea edx, [esp + 0x14]
push 0x68d830
push edx
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea eax, [esp + 0x14]
push eax
push str.MouseSteering
push str.Game
call edi
push 0x76cb98
push 3
cmp ebx, 1
push str.Reticle
sete cl
push str.Game
mov byte [0x76cc98], cl
mov dword [0x76ccbc], 6
call esi
mov ebx, eax
push ebx
lea edx, [esp + 0x14]
push 0x68d830
push edx
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea eax, [esp + 0x14]
push eax
push str.Reticle
push str.Game
call edi
push 0x76cb98
push 0
push str.ReticleR
push str.Game
mov dword [0x76cb8c], ebx
call esi
mov ebx, eax
push ebx
lea ecx, [esp + 0x14]
push 0x68d830
push ecx
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea edx, [esp + 0x14]
push edx
push str.ReticleR
push str.Game
call edi
push 0x76cb98
push 0x80
push str.ReticleG
push str.Game
mov dword [0x76cd14], ebx
call esi
mov ebx, eax
push ebx
lea eax, [esp + 0x14]
push 0x68d830
push eax
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea ecx, [esp + 0x14]
push ecx
push str.ReticleG
push str.Game
call edi
push 0x76cb98
push 0xff
push str.ReticleB
push str.Game
mov dword [0x76cca0], ebx
call esi
mov esi, eax
push esi
lea edx, [esp + 0x14]
push 0x68d830
push edx
call fcn.00671a9a
add esp, 0xc
push 0x76cb98
lea eax, [esp + 0x14]
push eax
push str.ReticleB
push str.Game
call edi
mov eax, dword [0x76cd14]
cmp eax, 0x80
mov ecx, esi
mov dword [0x76ccb4], ecx
jg 0x62e62d
test eax, eax
jge 0x62e634
xor eax, eax
mov dword [0x76cd14], eax
mov edx, dword [0x76cca0]
cmp edx, 0x80
jg 0x62e646
test edx, edx
jge 0x62e651
mov edx, 0x80
mov dword [0x76cca0], edx
cmp esi, 0x80
jg 0x62e65d
test esi, esi
jge 0x62e668
mov ecx, 0xff
mov dword [0x76ccb4], ecx
mov esi, dword [0x76cb8c]
test esi, esi
jl 0x62e677
cmp esi, 4
jle 0x62e681
mov dword [0x76cb8c], 3
push 1
push 0
mov byte [esp + 0x14], al
mov byte [esp + 0x15], dl
mov byte [esp + 0x16], cl
mov byte [esp + 0x17], 0xff
mov ecx, dword [esp + 0x14]
push str.UnlockedExtras
push str.Game
mov dword [0x6ebbd4], ecx
call fcn.0062e0a0
push 1
push 0
push str.SandwichIcons
push str.Game
mov dword [0x76cc9c], eax
call fcn.0062e0a0
push 1
push 0
push str.SoldierIcons
push str.Game
mov dword [0x76cb28], eax
call fcn.0062e0a0
add esp, 0x30
mov dword [0x76cde0], eax
call fcn.0062cbf0
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebx
call fcn.00671b23
add esp, 0x28
ret