Function at 0x404f40
Capabilities:
Hide graphical window

Disassembly:
push 0xffffffffffffffff
push 0x4f0d3b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb64
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x834]
mov ebp, edx
mov ebx, 1
call fcn.004164d0
mov eax, dword [0x51f490]
push eax
xor edi, edi
push ebx
mov edx, ebp
mov ecx, esi
mov dword [esp + 0xb84], edi
call fcn.00405a80
test eax, eax
jne 0x404faf
lea ecx, [esp + 0x834]
mov dword [esp + 0xb7c], 0xffffffff
call fcn.00413220
xor eax, eax
jmp 0x405a4e
mov ecx, dword [0x52001c]
mov dword [0x51f480], edi
mov edx, dword [ecx]
push ebp
call dword [edx + 0xc4]
cmp eax, edi
je 0x405031
mov ecx, dword [0x52001c]
mov edx, dword [ecx]
lea edi, [esp + 0x434]
push edi
add eax, 8
push eax
call dword [edx + 0xc8]
mov edi, dword [0x51ef58]
test edi, edi
jne 0x404ff1
mov edi, 0x51ef98
lea eax, [esp + 0x434]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x40501c
test cl, cl
je 0x405018
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x40501c
add eax, 2
add edi, 2
test cl, cl
jne 0x404ff8
xor eax, eax
jmp 0x405021
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x405031
mov dword [0x51f480], 1
jmp 0x40503a
mov eax, dword [0x51f480]
test eax, eax
je 0x40508b
mov ecx, dword [0x51f43c]
push ebp
mov dword [0x51f45c], ebp
call fcn.00415b10
test eax, eax
mov dword [0x51f444], eax
je 0x40506c
push 0
push 6
push 0x258
push 0x320
mov ecx, eax
call fcn.00415750
jmp 0x40506e
xor eax, eax
mov ecx, dword [0x51f45c]
mov dword [0x51ef60], ecx
mov dword [0x51ef64], eax
mov dword [0x51ef68], 0
jmp 0x40509a
mov eax, dword [0x51ef60]
mov dword [0x51f45c], eax
mov eax, dword [0x51ef64]
movzx edx, byte [0x51ef7e]
mov ecx, dword [0x51f43c]
mov dword [0x51f460], eax
mov eax, dword [0x51ef88]
mov dword [0x51f458], eax
movzx eax, byte [0x51ef7c]
mov dword [0x51f454], edx
mov dword [0x51f44c], eax
call fcn.00415b00
mov ecx, dword [0x51f45c]
cmp ecx, eax
jl 0x4050df
xor ecx, ecx
mov dword [0x51f45c], ecx
push ecx
mov ecx, dword [0x51f43c]
call fcn.00415b10
mov dword [0x51f444], eax
add eax, 4
lea edx, [esp + 0x34]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x405100
lea ecx, [esp + 0x34]
push ecx
call fcn.004efff8
lea edx, [esp + 0x38]
push str.PARHELIA
push edx
call fcn.00432780
add esp, 0xc
test eax, eax
je 0x40512c
xor ebx, ebx
lea eax, [esp + 0x34]
push str.GEFORCE2
push eax
call fcn.00432780
add esp, 8
test eax, eax
je 0x405144
xor ebx, ebx
lea ecx, [esp + 0x34]
push str.GEFORCE4
push ecx
call fcn.00432780
add esp, 8
test eax, eax
je 0x405188
lea edx, [esp + 0x34]
push 0x50dac4
push edx
call fcn.00432780
add esp, 8
test eax, eax
je 0x405188
lea eax, [esp + 0x34]
push 0x50dac0
push eax
call fcn.00432780
add esp, 8
test eax, eax
je 0x405188
xor ebx, ebx
lea ecx, [esp + 0x34]
push str.RADEON
push ecx
call fcn.00432780
add esp, 8
test eax, eax
je 0x4051b6
lea edx, [esp + 0x34]
push str.7200
push edx
call fcn.00432780
add esp, 8
test eax, eax
je 0x4051b6
xor ebx, ebx
lea eax, [esp + 0x34]
push str.RADEON
push eax
call fcn.00432780
add esp, 8
test eax, eax
je 0x4051e4
lea ecx, [esp + 0x34]
push str.8500
push ecx
call fcn.00432780
add esp, 8
test eax, eax
je 0x4051e4
xor ebx, ebx
lea edx, [esp + 0x34]
push str.RADEON
push edx
call fcn.00432780
add esp, 8
test eax, eax
je 0x405212
lea eax, [esp + 0x34]
push str.9000
push eax
call fcn.00432780
add esp, 8
test eax, eax
je 0x405212
xor ebx, ebx
lea ecx, [esp + 0x34]
push str.RADEON
push ecx
call fcn.00432780
add esp, 8
test eax, eax
je 0x405240
lea edx, [esp + 0x34]
push str.9200
push edx
call fcn.00432780
add esp, 8
test eax, eax
je 0x405240
xor ebx, ebx
mov ecx, dword [0x51f444]
call fcn.00415910
test eax, eax
je 0x405253
test ebx, ebx
jne 0x405281
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
push 0
push 0x4a4
push esi
call ebx
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push 0
xor dl, dl
mov ecx, esi
call fcn.00404110
mov dword [0x51f488], 1
jmp 0x4052b7
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
push 1
push 0x4a4
push esi
call ebx
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov edx, dword [0x51ef88]
test edx, edx
setne al
mov dl, 1
mov ecx, esi
push eax
call fcn.00404110
mov dword [0x51f488], 0
mov ecx, dword [0x51f444]
push 0
call fcn.00415690
mov ecx, dword [0x51f460]
cmp ecx, eax
jl 0x4052d6
xor ecx, ecx
mov dword [0x51f460], ecx
push ecx
mov ecx, dword [0x51f444]
call fcn.00415710
mov edi, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0
push 0
push 0x14b
push 0x3f5
push esi
mov dword [0x51f448], eax
call edi
mov ecx, dword [0x51f444]
push 0
mov dword [esp + 0x18], 0
call fcn.00415690
test eax, eax
jle 0x405460
nop
lea esp, [esp]
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [0x51f444]
mov dword [esp + 0x14], 1
call fcn.00415710
mov ebp, dword [eax + 8]
cmp ebp, 0x280
mov edx, dword [eax + 0x18]
mov ebx, dword [eax + 0xc]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x20], edx
jl 0x405358
cmp ebx, 0x1e0
jge 0x40535c
xor eax, eax
jmp 0x405360
mov eax, dword [esp + 0x10]
add ecx, 0xfffffffb
cmp ecx, 3
ja case.default.0x40536c
jmp dword [ecx*4 + 0x405a6c]
mov dword [esp + 0x10], 0x10
jmp 0x405385
mov dword [esp + 0x10], 0x20
test eax, eax
je case.default.0x40536c
push 0x51efac
push 0x50da94
mov ecx, 0x51efa0
call fcn.00403930
test eax, eax
je 0x4053b8
xor eax, eax
mov cl, byte [eax + 0x50da94]
mov byte [eax + 0x51efac], cl
inc eax
test cl, cl
jne 0x4053a7
mov eax, dword [esp + 0x10]
push 0x51efac
push eax
push ebx
push ebp
lea ecx, [esp + 0x444]
push str.__4d_x___4d__d__s
push ecx
call fcn.004326d1
add esp, 0x18
lea edx, [esp + 0x434]
push edx
push 0
push 0x158
push 0x3f5
push esi
call edi
cmp eax, 0xffffffff
je 0x4053fd
mov eax, dword [esp + 0x20]
test eax, eax
jne case.default.0x40536c
lea eax, [esp + 0x434]
push eax
push 0
push 0x143
push 0x3f5
push esi
call edi
mov ecx, dword [esp + 0x14]
push ecx
mov ebx, eax
push ebx
push 0x151
push 0x3f5
push esi
call edi
cmp ebp, 0x320
jne case.default.0x40536c
cmp dword [esp + 0x10], 0x10
jne case.default.0x40536c
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [0x51f444]
inc ebx
push 0
mov dword [esp + 0x18], ebx
call fcn.00415690
cmp ebx, eax
jl 0x405320
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
mov eax, dword [0x51f1b0]
test eax, eax
push 0
je 0x4054d3
xor ebp, ebp
push ebp
push 0x146
push 0x3f5
push esi
call edi
test eax, eax
jle 0x4055ed
push 0
push ebp
push 0x150
push 0x3f5
push esi
call edi
mov ecx, dword [0x51ef68]
mov edx, dword [0x51f460]
sub edx, ecx
cmp eax, edx
push 0
je 0x4054c0
push 0
push 0x146
push 0x3f5
push esi
inc ebp
call edi
cmp ebp, eax
jl 0x405483
jmp 0x4055ed
push ebp
push 0x14e
push 0x3f5
push esi
call edi
jmp 0x4055ed
mov eax, dword [esp + 0x1c]
push eax
push 0x150
push 0x3f5
push esi
call edi
mov ecx, dword [0x51f444]
push eax
mov dword [0x51f460], eax
call fcn.00415710
mov dword [0x51f448], eax
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
push 0x51f3b8
push ecx
mov ecx, dword [0x51f444]
push edx
push eax
call fcn.004157d0
cmp eax, 0xffffffff
mov dword [0x51f470], eax
je 0x4055be
test eax, eax
jle 0x405549
mov ecx, dword [0x51f3b8]
test ecx, ecx
jle 0x405549
push 0
push 0
push 0x14b
push 0x4b3
push esi
call edi
mov eax, dword [0x51f470]
xor ebp, ebp
test eax, eax
jle 0x4055be
nop
push 0x51efac
push 0x50da7c
mov ecx, 0x51efa0
call fcn.00403930
test eax, eax
je 0x405581
xor eax, eax
lea ebx, [ebx]
mov cl, byte [eax + 0x50da7c]
mov byte [eax + 0x51efac], cl
inc eax
test cl, cl
jne 0x405570
mov ecx, dword [ebp*4 + 0x51f3b8]
push 0x51efac
push ecx
lea edx, [esp + 0x2c]
push str._d__s
push edx
call fcn.004326d1
add esp, 0x10
lea eax, [esp + 0x24]
push eax
push 0
push 0x143
push 0x4b3
push esi
call edi
mov eax, dword [0x51f470]
inc ebp
cmp ebp, eax
jl 0x405550
mov ecx, dword [esp + 0x18]
push 0
push ecx
push 0x14e
push 0x3f5
push esi
call edi
push 0
push 0
push 0x14e
push 0x4b3
push esi
call edi
mov dword [0x51ef68], 0
mov edx, dword [0x51f45c]
push 0
push edx
push 0x14e
push 0x3f4
push esi
call edi
push 0
push 0x49f
push esi
call ebx
mov ebp, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call ebp
mov al, byte [0x51ef7c]
push 0
movzx eax, al
push eax
push 0xf1
push 0x4b1
push esi
call edi
mov eax, dword [0x51f480]
test eax, eax
je 0x405642
mov byte [0x51ef7d], 1
push 0
jmp 0x405644
push 1
push 0x4a7
push esi
call ebx
push eax
call ebp
mov al, byte [0x51ef7d]
xor ecx, ecx
mov cl, al
push 0
push ecx
push 0xf1
push 0x4a7
push esi
call edi
movzx edx, byte [0x51ef7d]
mov eax, dword [0x51f448]
mov dword [0x50d7b0], edx
mov dword [0x51f3b8], 0x3c
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
push 0x51f3b8
push ecx
mov ecx, dword [0x51f444]
push edx
push eax
call fcn.004157d0
test eax, eax
mov dword [0x51f470], eax
jle 0x4056d7
mov eax, dword [0x51f448]
mov ecx, dword [eax + 0x14]
mov ebp, dword [0x51f3b8]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
push ebp
push ecx
mov ecx, dword [0x51f444]
push edx
push eax
call fcn.00415750
mov ebp, dword [sym.imp.USER32.dll_EnableWindow]
mov dword [0x51f460], eax
push 0
push 0
push 0x14b
push 0x4b3
push esi
call edi
mov eax, dword [0x51f448]
mov ecx, dword [eax + 0x18]
test ecx, ecx
jne 0x40570e
push 0
push 0x4b5
push esi
call ebx
mov ebp, dword [sym.imp.USER32.dll_ShowWindow]
push eax
call ebp
push 0
jmp 0x4057f5
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
push 0x51f3b8
push ecx
mov ecx, dword [0x51f444]
push edx
push eax
call fcn.004157d0
test eax, eax
mov dword [0x51f470], eax
jle 0x405806
xor ebp, ebp
test eax, eax
jle 0x4057ae
lea ecx, [ecx]
push 0x51efac
push 0x50da7c
mov ecx, 0x51efa0
call fcn.00403930
test eax, eax
je 0x405771
xor eax, eax
lea ebx, [ebx]
mov cl, byte [eax + 0x50da7c]
mov byte [eax + 0x51efac], cl
inc eax
test cl, cl
jne 0x405760
mov eax, dword [ebp*4 + 0x51f3b8]
push 0x51efac
push eax
lea ecx, [esp + 0x2c]
push str._d__s
push ecx
call fcn.004326d1
add esp, 0x10
lea edx, [esp + 0x24]
push edx
push 0
push 0x143
push 0x4b3
push esi
call edi
mov eax, dword [0x51f470]
inc ebp
cmp ebp, eax
jl 0x405740
xor ecx, ecx
test eax, eax
jle 0x4057e0
mov edx, dword [0x51f448]
mov edx, dword [edx + 0x18]
lea ecx, [ecx]
cmp dword [ecx*4 + 0x51f3b8], edx
je 0x4057d0
inc ecx
cmp ecx, eax
jl 0x4057c0
jmp 0x4057e0
push 0
push ecx
push 0x14e
push 0x4b3
push esi
call edi
push 1
push 0x4b5
push esi
call ebx
mov ebp, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call ebp
push 1
push 0x4b3
push esi
call ebx
push eax
call ebp
mov ebp, dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [0x51f444]
test byte [eax + 0x104], 8
je 0x405830
push 1
push 0x4a3
push esi
call ebx
push eax
call ebp
mov al, byte [0x51ef7e]
test al, al
push 0
je 0x40583f
push 1
jmp 0x405841
push 0
push 0x4a3
push esi
call ebx
push eax
call ebp
push 0
push 0
push 0xf1
push 0x4a3
push esi
call edi
mov ecx, dword [0x52001c]
mov edx, dword [ecx]
lea eax, [esp + 0x1c]
push eax
push 0
push 0
call dword [edx + 0x274]
push 0
push 0
push 0x14b
push 0x4b4
push esi
or ebx, 0xffffffff
call edi
push 0x51efac
push str.Auto
mov ecx, 0x51efa0
call fcn.00403930
test eax, eax
je 0x4058a4
xor eax, eax
mov cl, byte [eax + str.Auto]
mov byte [eax + 0x51efac], cl
inc eax
test cl, cl
jne 0x405893
push 0x51efac
push 0
push 0x143
push 0x4b4
push esi
call edi
push 0
mov ebp, eax
push ebp
push 0x151
push 0x4b4
push esi
call edi
mov eax, dword [0x51ef94]
test eax, eax
jne 0x4058d5
mov ebx, ebp
mov eax, dword [esp + 0x1c]
cmp eax, 0x404
jg 0x4058f9
je 0x405904
cmp eax, 0x101
je 0x4059c2
cmp eax, 0x202
je 0x405962
jmp 0x405a22
cmp eax, 0x408
jne 0x405a22
push 0x51efac
push str.DirectX_9
mov ecx, 0x51efa0
call fcn.00403930
test eax, eax
je 0x405931
xor eax, eax
mov edi, edi
mov cl, byte [eax + str.DirectX_9]
mov byte [eax + 0x51efac], cl
inc eax
test cl, cl
jne 0x405920
push 0x51efac
push 0
push 0x143
push 0x4b4
push esi
call edi
push 3
mov ebp, eax
push ebp
push 0x151
push 0x4b4
push esi
call edi
cmp dword [0x51ef94], 3
jne 0x405962
mov ebx, ebp
push 0x51efac
push str.DirectX_8
mov ecx, 0x51efa0
call fcn.00403930
test eax, eax
je 0x405991
xor eax, eax
lea esp, [esp]
mov cl, byte [eax + str.DirectX_8]
mov byte [eax + 0x51efac], cl
inc eax
test cl, cl
jne 0x405980
push 0x51efac
push 0
push 0x143
push 0x4b4
push esi
call edi
push 2
mov ebp, eax
push ebp
push 0x151
push 0x4b4
push esi
call edi
cmp dword [0x51ef94], 2
jne 0x4059c2
mov ebx, ebp
push 0x51efac
push str.DirectX_7
mov ecx, 0x51efa0
call fcn.00403930
test eax, eax
je 0x4059f1
xor eax, eax
lea esp, [esp]
mov cl, byte [eax + str.DirectX_7]
mov byte [eax + 0x51efac], cl
inc eax
test cl, cl
jne 0x4059e0
push 0x51efac
push 0
push 0x143
push 0x4b4
push esi
call edi
push 1
mov ebp, eax
push ebp
push 0x151
push 0x4b4
push esi
call edi
cmp dword [0x51ef94], 1
jne 0x405a22
mov ebx, ebp
push 0
push ebx
push 0x14e
push 0x4b4
push esi
call edi
lea ecx, [esp + 0x834]
mov dword [esp + 0xb7c], 0xffffffff
call fcn.00413220
mov eax, 1
mov ecx, dword [esp + 0xb74]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xb70
ret 4