Function at 0x4010d0
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x108
push ebx
push ebp
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x441460
push 0x100
lea eax, [esp + 0x20]
push eax
push 0x436800
push str.ShowHints
push str.System
call edi
lea ecx, [esp + 0x18]
push ecx
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea edx, [esp + 0x20]
push edx
push 0x4367e8
push str.FirstRun
push str.System
mov dword [0x4418e4], eax
call edi
lea eax, [esp + 0x18]
push eax
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x4367e8
push str.ShowLogo
push str.System
mov dword [0x4418dc], eax
call edi
lea edx, [esp + 0x18]
push edx
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
mov dword [0x4418e0], eax
lea eax, [esp + 0x20]
push eax
push 0x436800
push str.UseSystemMouse
push str.System
call edi
lea ecx, [esp + 0x18]
push ecx
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea edx, [esp + 0x20]
push edx
push 0x4367e8
push str.Camera
push str.System
mov dword [0x4418e8], eax
call edi
lea eax, [esp + 0x18]
push eax
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x436800
push str.MouseControl
push str.System
mov dword [0x43f9e8], eax
call edi
lea edx, [esp + 0x18]
push edx
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
mov dword [0x4418ec], eax
lea eax, [esp + 0x20]
push eax
push 0x4367e8
push str.VideoMode
push str.Display
call edi
lea ecx, [esp + 0x18]
push ecx
call fcn.0042af3b
push eax
mov dword [0x441860], eax
call fcn.00401000
add esp, 8
push 0x441460
push 0x100
lea edx, [esp + 0x20]
push edx
push 0x436800
push str.ColorDepth
push str.Display
call edi
lea eax, [esp + 0x18]
push eax
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x4367e8
push str.Fullscreen
push str.Display
mov dword [0x44186c], eax
call edi
lea edx, [esp + 0x18]
push edx
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
mov dword [0x441870], eax
lea eax, [esp + 0x20]
push eax
push 0x436800
push str.ForceFullscreen
push str.Display
call edi
lea ecx, [esp + 0x18]
push ecx
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea edx, [esp + 0x20]
push edx
push 0x436800
push str.WaitVSync
push str.Display
mov dword [0x441874], eax
call edi
lea eax, [esp + 0x18]
push eax
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x43675c
push str.Brightness
push str.Display
mov dword [0x441878], eax
call edi
lea edx, [esp + 0x18]
push edx
call fcn.0042ae98
add esp, 4
fstp dword [0x44187c]
push 0x441460
push 0x100
lea eax, [esp + 0x20]
push eax
push 0x436800
push str.AllowSoftware
push str.Graphics
call edi
lea ecx, [esp + 0x18]
push ecx
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea edx, [esp + 0x20]
push edx
push 0x436800
push str.TextureFilter
push str.Graphics
mov dword [0x44188c], eax
call edi
lea eax, [esp + 0x18]
push eax
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x436800
push str.DisableDistanceFog
push str.Graphics
mov dword [0x4418a8], eax
call edi
lea edx, [esp + 0x18]
push edx
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
mov dword [0x441894], eax
lea eax, [esp + 0x20]
push eax
push 0x436800
push str.DisableMultitexture
push str.Graphics
call edi
lea ecx, [esp + 0x18]
push ecx
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea edx, [esp + 0x20]
push edx
push 0x436800
push str.DisableVertexArray
push str.Graphics
mov dword [0x441898], eax
call edi
lea eax, [esp + 0x18]
push eax
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x436800
push str.DisableTextureEnvAdd
push str.Graphics
mov dword [0x44189c], eax
call edi
lea edx, [esp + 0x18]
push edx
call fcn.0042af3b
add esp, 4
mov dword [0x4418a0], eax
push 0x441460
push 0x100
lea eax, [esp + 0x20]
push eax
push 0x436800
push str.DisableTextureEnvCombine
push str.Graphics
call edi
lea ecx, [esp + 0x18]
push ecx
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea edx, [esp + 0x20]
push edx
push 0x436800
push str.ShowFPS
push str.Debug
mov dword [0x4418a4], eax
call edi
lea eax, [esp + 0x18]
push eax
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x436800
push str.ShowTris
push str.Debug
mov dword [0x4418bc], eax
call edi
lea edx, [esp + 0x18]
push edx
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
mov dword [0x4418c0], eax
lea eax, [esp + 0x20]
push eax
push 0x436800
push str.ShowTexBinds
push str.Debug
call edi
lea ecx, [esp + 0x18]
push ecx
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea edx, [esp + 0x20]
push edx
push 0x436800
push str.ShowCounters
push str.Debug
mov dword [0x4418c4], eax
call edi
lea eax, [esp + 0x18]
push eax
call fcn.0042af3b
add esp, 4
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x436674
push str.SfxVolume
push 0x436660
mov dword [0x4418c8], eax
call edi
lea edx, [esp + 0x18]
push edx
call fcn.0042ae98
fcomp qword [0x436658]
add esp, 4
fnstsw ax
test ah, 5
jp 0x4015ae
lea eax, [esp + 0x18]
push eax
call fcn.0042ae98
add esp, 4
jmp 0x4015b4
fld qword [0x436658]
push 0x441460
fstp dword [0x4418b4]
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x436674
push str.MusicVolume
push 0x436660
call edi
lea edx, [esp + 0x18]
push edx
call fcn.0042ae98
fcomp qword [0x436658]
add esp, 4
fnstsw ax
test ah, 5
jp 0x401603
lea eax, [esp + 0x18]
push eax
call fcn.0042ae98
add esp, 4
jmp 0x401609
fld qword [0x436658]
push 0x441460
fstp dword [0x4418b8]
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x436800
push str.Sound3D
push 0x436660
call edi
lea edx, [esp + 0x18]
push edx
call fcn.0042ae98
fcomp qword [0x436658]
add esp, 4
fnstsw ax
test ah, 5
jp 0x401658
lea eax, [esp + 0x18]
push eax
call fcn.0042ae98
add esp, 4
jmp 0x40165e
fld qword [0x436658]
call fcn.0042af90
mov dword [0x4418b0], eax
mov dword [esp + 0x10], str.Controls
mov dword [esp + 0x14], str.Controls2
lea ebp, [esp + 0x10]
mov esi, 0x2067c58
mov ebx, dword [ebp]
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push str.38_243
push str.KeyMoveForward
push ebx
call edi
lea edx, [esi + 4]
push edx
push esi
lea eax, [esp + 0x20]
push str._i__i
push eax
call fcn.0042ae64
add esp, 0x10
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push str.40_244
push str.KeyMoveBackward
push ebx
call edi
lea edx, [esi + 0x10]
push edx
lea eax, [esi + 0xc]
push eax
lea ecx, [esp + 0x20]
push str._i__i
push ecx
call fcn.0042ae64
add esp, 0x10
push 0x441460
push 0x100
lea edx, [esp + 0x20]
push edx
push str.37_241
push str.KeyMoveLeft
push ebx
call edi
lea eax, [esi + 0x1c]
push eax
lea ecx, [esi + 0x18]
push ecx
lea edx, [esp + 0x20]
push str._i__i
push edx
call fcn.0042ae64
add esp, 0x10
push 0x441460
push 0x100
lea eax, [esp + 0x20]
push eax
push str.39_242
push str.KeyMoveRight
push ebx
call edi
lea ecx, [esi + 0x28]
push ecx
lea edx, [esi + 0x24]
push edx
lea eax, [esp + 0x20]
push str._i__i
push eax
call fcn.0042ae64
add esp, 0x10
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push str.17_203
push str.KeyPrimaryAttack
push ebx
call edi
lea edx, [esi - 0x44]
push edx
lea eax, [esi - 0x48]
push eax
push str._i__i
lea ecx, [esp + 0x24]
push ecx
call fcn.0042ae64
add esp, 0x10
push 0x441460
push 0x100
lea edx, [esp + 0x20]
push edx
push str.50_206
push str.KeySwitchWeapon
push ebx
call edi
lea eax, [esi - 0x38]
push eax
lea ecx, [esi - 0x3c]
push ecx
lea edx, [esp + 0x20]
push str._i__i
push edx
call fcn.0042ae64
add esp, 0x10
push 0x441460
push 0x100
lea eax, [esp + 0x20]
push eax
push str.16_204
push str.KeyMissileAttack
push ebx
call edi
lea ecx, [esi - 0x2c]
push ecx
lea edx, [esi - 0x30]
push edx
lea eax, [esp + 0x20]
push str._i__i
push eax
call fcn.0042ae64
add esp, 0x10
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push str.49_211
push str.KeySwitchMissiles
push ebx
call edi
lea edx, [esi - 0x20]
push edx
lea eax, [esi - 0x24]
push eax
lea ecx, [esp + 0x20]
push str._i__i
push ecx
call fcn.0042ae64
add esp, 0x10
push 0x441460
push 0x100
lea edx, [esp + 0x20]
push edx
push str.32_205
push str.KeyUsePowerUp
push ebx
call edi
lea eax, [esi - 0x14]
push eax
lea ecx, [esi - 0x18]
push ecx
lea edx, [esp + 0x20]
push str._i__i
push edx
call fcn.0042ae64
add esp, 0x10
push 0x441460
push 0x100
lea eax, [esp + 0x20]
push eax
push str.50_212
push str.KeySwitchPowerUp
push ebx
call edi
lea ecx, [esi - 8]
push ecx
lea edx, [esi - 0xc]
push edx
lea eax, [esp + 0x20]
push str._i__i
push eax
call fcn.0042ae64
add esi, 0x14c
add esp, 0x10
add ebp, 4
cmp esi, 0x2067ef0
jl 0x401681
push 0x441460
push 0x100
lea ecx, [esp + 0x20]
push ecx
push 0x436800
push str.JoystickDisabled
push str.Joystick
call edi
lea edx, [esp + 0x18]
push edx
call fcn.0042af3b
add esp, 4
neg eax
sbb eax, eax
push 0x441460
inc eax
push 0x100
mov dword [0x4418cc], eax
lea eax, [esp + 0x20]
push eax
push 0x436500
push str.JoystickThresholdX
push str.Joystick
call edi
lea ecx, [esp + 0x18]
push ecx
call fcn.0042ae98
fstp dword [0x4418d0]
add esp, 4
push 0x441460
push 0x100
lea edx, [esp + 0x20]
push edx
push 0x436500
push str.JoystickThresholdY
push str.Joystick
call edi
lea eax, [esp + 0x18]
push eax
call fcn.0042ae98
fstp dword [0x4418d4]
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 0x2067c08
or ecx, 0xffffffff
pop ebx
jmp 0x401960
mov edx, dword [eax - 4]
test edx, edx
jne 0x40196a
mov dword [eax - 4], ecx
cmp dword [eax], 0
jne 0x401971
mov dword [eax], ecx
mov edx, dword [eax + 0x148]
test edx, edx
jne 0x401981
mov dword [eax + 0x148], ecx
mov edx, dword [eax + 0x14c]
test edx, edx
jne 0x401991
mov dword [eax + 0x14c], ecx
add eax, 0xc
cmp eax, 0x2067c8c
jl 0x401960
mov byte [0x4418d8], 1
add esp, 0x108
ret