Function at 0x41b9b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x5c
push esi
mov esi, ecx
push edi
lea ecx, [esp + 8]
call fcn.00563850
mov edi, dword [esp + 0x68]
test edi, edi
jne 0x41b9d3
mov edi, dword [esi]
test edi, edi
jne 0x41b9d3
mov edi, 0x5ad73f
push 0x80
push edi
call fcn.0058abbb
add esp, 8
push 1
push 1
push 1
push 0
push edi
lea ecx, [esp + 0x1c]
call fcn.00564660
test al, al
jne 0x41ba0a
lea ecx, [esp + 8]
call fcn.00563e80
pop edi
xor al, al
pop esi
add esp, 0x5c
ret 4
lea eax, [esp + 8]
push str._COMPONENTS__n
push eax
call fcn.00563a50
mov eax, dword [esi + 8]
add esp, 8
test eax, eax
jne 0x41ba28
mov eax, 0x5ad73f
push eax
lea ecx, [esp + 0xc]
push str.GamesDir_s_n
push ecx
call fcn.00563a50
mov eax, dword [esi + 0x10]
add esp, 0xc
test eax, eax
jne 0x41ba47
mov eax, 0x5ad73f
push eax
lea edx, [esp + 0xc]
push str.SoundDir_s_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0x18]
add esp, 0xc
test eax, eax
jne 0x41ba66
mov eax, 0x5ad73f
push eax
lea eax, [esp + 0xc]
push str.VehicleSound_s_n
push eax
call fcn.00563a50
mov eax, dword [esi + 0x20]
add esp, 0xc
test eax, eax
jne 0x41ba85
mov eax, 0x5ad73f
push eax
lea ecx, [esp + 0xc]
push str.OptionsAnim_s_n
push ecx
call fcn.00563a50
mov eax, dword [esi + 0x28]
add esp, 0xc
test eax, eax
jne 0x41baa4
mov eax, 0x5ad73f
push eax
lea edx, [esp + 0xc]
push str.OptionsFlags_s_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0x30]
add esp, 0xc
test eax, eax
jne 0x41bac3
mov eax, 0x5ad73f
push eax
lea eax, [esp + 0xc]
push str.OptionsSounds_s_n
push eax
call fcn.00563a50
mov eax, dword [esi + 0x38]
add esp, 0xc
test eax, eax
jne 0x41bae2
mov eax, 0x5ad73f
push eax
lea ecx, [esp + 0xc]
push str.OSCFile_s_n
push ecx
call fcn.00563a50
mov eax, dword [esi + 0x40]
add esp, 0xc
test eax, eax
jne 0x41bb01
mov eax, 0x5ad73f
push eax
lea edx, [esp + 0xc]
push str.OptionsDir_s_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0x48]
add esp, 0xc
test eax, eax
jne 0x41bb20
mov eax, 0x5ad73f
push eax
lea eax, [esp + 0xc]
push str.ReplayDir_s_n
push eax
call fcn.00563a50
mov eax, dword [esi + 0x50]
add esp, 0xc
test eax, eax
jne 0x41bb3f
mov eax, 0x5ad73f
push eax
lea ecx, [esp + 0xc]
push str.ReplayPluginsDir_s_n
push ecx
call fcn.00563a50
mov eax, dword [esi + 0x60]
add esp, 0xc
test eax, eax
jne 0x41bb5e
mov eax, 0x5ad73f
push eax
lea edx, [esp + 0xc]
push str.PluginsDir_s_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0x68]
add esp, 0xc
test eax, eax
jne 0x41bb7d
mov eax, 0x5ad73f
push eax
lea eax, [esp + 0xc]
push str.MovieDir_s_n
push eax
call fcn.00563a50
mov eax, dword [esi + 0x70]
add esp, 0xc
test eax, eax
jne 0x41bb9c
mov eax, 0x5ad73f
push eax
lea ecx, [esp + 0xc]
push str.TracksDir_s_n
push ecx
call fcn.00563a50
mov eax, dword [esi + 0x78]
add esp, 0xc
test eax, eax
jne 0x41bbbb
mov eax, 0x5ad73f
push eax
lea edx, [esp + 0xc]
push str.PitsDir_s_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0x80]
add esp, 0xc
test eax, eax
jne 0x41bbdd
mov eax, 0x5ad73f
push eax
lea eax, [esp + 0xc]
push str.VehiclesDir_s_n
push eax
call fcn.00563a50
mov eax, dword [esi + 0x88]
add esp, 0xc
test eax, eax
jne 0x41bbff
mov eax, 0x5ad73f
push eax
lea ecx, [esp + 0xc]
push str.DriversDir_s_n
push ecx
call fcn.00563a50
mov eax, dword [esi + 0x90]
add esp, 0xc
test eax, eax
jne 0x41bc21
mov eax, 0x5ad73f
push eax
lea edx, [esp + 0xc]
push str.HelmetsDir_s_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0x98]
add esp, 0xc
test eax, eax
jne 0x41bc43
mov eax, 0x5ad73f
push eax
lea eax, [esp + 0xc]
push str.CommentaryDir_s_n
push eax
call fcn.00563a50
mov eax, dword [esi + 0xa0]
add esp, 0xc
test eax, eax
jne 0x41bc65
mov eax, 0x5ad73f
push eax
lea ecx, [esp + 0xc]
push str.CommentaryFile_s_n
push ecx
call fcn.00563a50
mov eax, dword [esi + 0xa8]
add esp, 0xc
test eax, eax
jne 0x41bc87
mov eax, 0x5ad73f
push eax
lea edx, [esp + 0xc]
push str.LogDir_s_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0xb0]
add esp, 0xc
test eax, eax
jne 0x41bca9
mov eax, 0x5ad73f
push eax
lea eax, [esp + 0xc]
push str.SaveDir_s_n
push eax
call fcn.00563a50
mov eax, dword [esi + 0xb8]
add esp, 0xc
test eax, eax
jne 0x41bccb
mov eax, 0x5ad73f
push eax
lea ecx, [esp + 0xc]
push str.MusicDir_s_n
push ecx
call fcn.00563a50
mov eax, dword [esi + 0xd0]
add esp, 0xc
test eax, eax
jne 0x41bced
mov eax, 0x5ad73f
push eax
lea edx, [esp + 0xc]
push str.CameraEditorResourceDir_s_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0xe0]
add esp, 0xc
test eax, eax
jne 0x41bd0f
mov eax, 0x5ad73f
push eax
lea eax, [esp + 0xc]
push str.ShadersDir_s_n
push eax
call fcn.00563a50
mov eax, dword [esi + 0xe8]
add esp, 0xc
test eax, eax
jne 0x41bd31
mov eax, 0x5ad73f
push eax
lea ecx, [esp + 0xc]
push str.ControllerDir_s_n
push ecx
call fcn.00563a50
mov eax, dword [esi + 0xf0]
add esp, 0xc
test eax, eax
jne 0x41bd53
mov eax, 0x5ad73f
push eax
lea edx, [esp + 0xc]
push str.ScreenShotsDir_s_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0xf8]
add esp, 0xc
test eax, eax
jne 0x41bd75
mov eax, 0x5ad73f
push eax
lea eax, [esp + 0xc]
push str.SupportDir_s_n
push eax
call fcn.00563a50
mov eax, dword [esi + 0x100]
add esp, 0xc
test eax, eax
jne 0x41bd97
mov eax, 0x5ad73f
push eax
lea ecx, [esp + 0xc]
push str.LanguagesDir_s_n
push ecx
call fcn.00563a50
mov eax, dword [esi + 0x108]
add esp, 0xc
test eax, eax
jne 0x41bdb9
mov eax, 0x5ad73f
push eax
lea edx, [esp + 0xc]
push str.LanguagesFile_s_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0x110]
add esp, 0xc
test eax, eax
jne 0x41bddb
mov eax, 0x5ad73f
push eax
lea eax, [esp + 0xc]
push str.MasterPlayerFile_s_n
push eax
call fcn.00563a50
mov ecx, dword [esi + 0x12c]
push ecx
lea edx, [esp + 0x18]
push str.CPURating_d_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0x130]
push eax
lea ecx, [esp + 0x24]
push str.SystemRAM_d_n
push ecx
call fcn.00563a50
mov edx, dword [esi + 0x134]
push edx
lea eax, [esp + 0x30]
push str.VideoRAM_d_n
push eax
call fcn.00563a50
mov ecx, dword [esi + 0x13c]
push ecx
lea edx, [esp + 0x3c]
push str.ObjDetail_d_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0x140]
push eax
lea ecx, [esp + 0x48]
push str.TexDetail_d_n
push ecx
call fcn.00563a50
mov eax, dword [esi + 0x118]
add esp, 0x48
test eax, eax
jne 0x41be6b
mov eax, 0x5ad73f
push eax
lea edx, [esp + 0xc]
push str.VideoGUID_s_n
push edx
call fcn.00563a50
mov eax, dword [esi + 0x120]
push eax
lea ecx, [esp + 0x18]
push str.VideoDriver_d_n
push ecx
call fcn.00563a50
mov edx, dword [esi + 0x124]
push edx
lea eax, [esp + 0x24]
push str.VideoMode_d_n
push eax
call fcn.00563a50
mov ecx, dword [esi + 0x128]
push ecx
lea edx, [esp + 0x30]
push str.VideoRefresh_d_n
push edx
call fcn.00563a50
movzx eax, byte [esi + 0x138]
push eax
lea ecx, [esp + 0x3c]
push str.WindowedMode_d_n
push ecx
call fcn.00563a50
movzx edx, byte [esi + 0x139]
push edx
lea eax, [esp + 0x48]
push str.RunBenchmarks_d_n
push eax
call fcn.00563a50
mov ecx, dword [esi + 0x144]
add esp, 0x48
push ecx
lea edx, [esp + 0xc]
push str.FSAA_d_n
push edx
call fcn.00563a50
movzx eax, byte [esi + 0x13a]
push eax
lea ecx, [esp + 0x18]
push str.VSync_d_n
push ecx
call fcn.00563a50
mov edx, dword [esi + 0x148]
push edx
lea eax, [esp + 0x24]
push str.ShaderLevel_d_n
push eax
call fcn.00563a50
mov ecx, dword [esi + 0x14c]
push ecx
lea edx, [esp + 0x30]
push str.SubViews_d_n
push edx
call fcn.00563a50
movzx eax, byte [esi + 0x13b]
push eax
lea ecx, [esp + 0x3c]
push str.WidescreenUI_d_n
push ecx
call fcn.00563a50
mov edx, dword [esi + 0x164]
mov eax, dword [esi + 0x160]
push edx
push eax
lea ecx, [esp + 0x4c]
push str.CustomVidRes__d___d__n
push ecx
call fcn.00563a50
mov edx, dword [esi + 0x154]
mov eax, dword [esi + 0x150]
add esp, 0x4c
push edx
push eax
push str.MinimumVidRes__d___d__n
lea ecx, [esp + 0x14]
push ecx
call fcn.00563a50
mov edx, dword [esi + 0x15c]
mov eax, dword [esi + 0x158]
push edx
push eax
lea ecx, [esp + 0x20]
push str.MaximumVidRes__d___d__n
push ecx
call fcn.00563a50
lea edx, [esp + 0x28]
push str._n_INSTALL__n
push edx
call fcn.00563a50
mov eax, dword [esi + 0xc0]
add esp, 0x28
test eax, eax
jne 0x41bfd9
mov eax, 0x5ad73f
push eax
lea eax, [esp + 0xc]
push str.InstallFrom_s_n
push eax
call fcn.00563a50
mov eax, dword [esi + 0xc8]
add esp, 0xc
test eax, eax
jne 0x41bffb
mov eax, 0x5ad73f
push eax
lea ecx, [esp + 0xc]
push str.InstallTo_s_n
push ecx
call fcn.00563a50
lea edx, [esp + 0x14]
push str._n_AUTOLAUNCH__n
push edx
call fcn.00563a50
add esp, 0x14
mov ecx, 0x679384
call fcn.004073d0
push eax
mov ecx, 0x679384
call fcn.004073c0
push eax
lea eax, [esp + 0xc]
push str.Mode_s_n
push eax
call fcn.00563a50
add esp, 0xc
mov ecx, 0x679384
call fcn.004073e0
call fcn.00588a90
push eax
lea ecx, [esp + 0xc]
push str.LaunchTime_d_n
push ecx
call fcn.00563a50
lea edx, [esp + 0x14]
push str._n_VERSION__n
push edx
call fcn.00563a50
fld dword [esi + 0x168]
add esp, 0xc
fstp qword [esp]
lea eax, [esp + 0x10]
push str.Version_f
push eax
call fcn.00563a50
add esp, 0x10
lea ecx, [esp + 8]
call fcn.00563940
lea ecx, [esp + 8]
call fcn.00563e80
pop edi
mov al, 1
pop esi
add esp, 0x5c
ret 4