Function at 0x404030
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x405a78
mov eax, dword fs:[0]
push eax
mov eax, 0x1233c
call fcn.00405a20
mov eax, dword [0x408010]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.00401ad0
test eax, eax
jne 0x4049bb
mov byte [ebp - 0x12341], al
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], eax
mov byte [ebp - 0x40], al
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x28], al
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x58], al
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 2
push eax
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x40]
call fcn.00403d90
mov edi, dword [ebp - 0x2c]
lea ecx, [ebp - 0x40]
mov ebx, dword [ebp - 0x40]
lea esi, [ebp - 0x40]
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x40]
add esp, 4
cmp edi, 0x10
cmovae ecx, ebx
cmovae esi, ebx
add eax, ecx
cmp edi, 0x10
cmovae edx, ebx
cmp edx, eax
je 0x4040f8
push dword [sym.imp.MSVCR120.dll_tolower]
lea ecx, [ebp - 0x12340]
push esi
push eax
call fcn.00405010
mov edi, dword [ebp - 0x2c]
add esp, 0xc
mov ebx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x28]
mov esi, dword [ebp - 0x28]
lea ecx, [ebp - 0x28]
cmp edx, 0x10
cmovae eax, esi
cmovae ecx, esi
mov dword [ebp - 0x12340], eax
mov eax, dword [ebp - 0x18]
add eax, ecx
cmp edx, 0x10
lea ecx, [ebp - 0x28]
cmovae ecx, esi
cmp ecx, eax
je 0x404148
push dword [sym.imp.MSVCR120.dll_tolower]
mov edx, ecx
lea ecx, [ebp - 0x12340]
push dword [ebp - 0x12340]
push eax
call fcn.00405010
mov edi, dword [ebp - 0x2c]
add esp, 0xc
mov ebx, dword [ebp - 0x40]
mov esi, dword [sym.imp.MSVCR120.dll_strstr]
lea eax, [ebp - 0x40]
cmp edi, 0x10
push str.nvidia
cmovae eax, ebx
push eax
call esi
mov edi, dword [sym.imp.MSVCR120.dll_printf]
add esp, 8
test eax, eax
je 0x4041c3
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
push str.geforce
cmovae eax, dword [ebp - 0x28]
push eax
call esi
add esp, 8
test eax, eax
je 0x4041c3
cmp dword [ebp - 0x14], 0x10
lea esi, [ebp - 0x28]
cmovae esi, dword [ebp - 0x28]
mov al, byte [esi]
test al, al
je 0x4041b9
mov ebx, dword [sym.imp.MSVCR120.dll_isdigit]
lea ecx, [ecx]
movsx eax, al
push eax
call ebx
add esp, 4
test eax, eax
jne 0x404299
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4041a0
push str.Extract_strRenderer_type_failed_n
call edi
add esp, 4
mov bl, byte [ebp - 0x12341]
cmp dword [ebp - 0x44], 0x10
mov esi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
jb 0x4041dd
push dword [ebp - 0x58]
call esi
add esp, 4
cmp dword [ebp - 0x14], 0x10
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], 0
mov byte [ebp - 0x58], 0
jb 0x4041fd
push dword [ebp - 0x28]
call esi
add esp, 4
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x2c], 0x10
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
jb 0x404224
push dword [ebp - 0x40]
call esi
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea eax, [ebp - 0x178]
push eax
mov dword [ebp - 0x178], 0x11c
call esi
test eax, eax
jne 0x404254
lea eax, [ebp - 0x178]
mov dword [ebp - 0x178], 0x114
push eax
call esi
mov ecx, dword [ebp - 0x174]
cmp ecx, 6
jne 0x4042f5
cmp dword [ebp - 0x170], 1
jbe 0x4042f5
lea ecx, [ebp - 0x290]
call fcn.00403fb0
test al, al
je 0x4042ef
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x170], eax
jmp 0x4042f5
cmp byte [esi], 0
je 0x4041b9
push 0xa
lea eax, [ebp - 0x12340]
mov dword [ebp - 0x12340], 0
push eax
push esi
call dword [sym.imp.MSVCR120.dll_strtol]
add esp, 0xc
cmp eax, 0x424
jne 0x4041c3
mov eax, dword [ebp - 0x12340]
cmp byte [eax], 0x6d
je 0x4041c3
push 0x424
push str.Is_desktop_nvidia_graphics_card_type_d_n
call edi
add esp, 8
mov bl, 1
jmp 0x4041c9
mov ecx, dword [ebp - 0x174]
test bl, bl
je 0x404302
cmp ecx, 6
jne 0x404302
mov bl, 1
jmp 0x404304
xor bl, bl
lea eax, [ebp - 0x1233c]
mov dword [ebp - 0x1233c], 0
push eax
call fcn.004011d0
add esp, 4
test eax, eax
jne 0x4049bb
push dword [ebp - 0x1233c]
call fcn.00401370
add esp, 4
test eax, eax
jne 0x4049ad
mov dword [ebp - 0x12340], eax
lea eax, [ebp - 0x12340]
push eax
push dword [ebp - 0x1233c]
call fcn.004016b0
add esp, 8
test eax, eax
jne 0x404466
push 0x3020
push eax
lea eax, [ebp - 0x32b0]
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x32b0], 0x13020
lea eax, [ebp - 0x32b0]
push eax
push 0x101e61a9
push dword [ebp - 0x12340]
push dword [ebp - 0x1233c]
call fcn.004019f0
add esp, 0x10
test eax, eax
jne 0x404466
cmp dword [ebp - 0x1294], 2
jb 0x404466
push 0x3020
push eax
lea eax, [ebp - 0x32b0]
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x32b0], 0x13020
lea eax, [ebp - 0x32b0]
push eax
push 0x10d2bb16
push dword [ebp - 0x12340]
push dword [ebp - 0x1233c]
call fcn.004019f0
add esp, 0x10
test eax, eax
jne 0x404466
cmp dword [ebp - 0x1294], eax
je 0x404466
mov dword [ebp - 0x22a8], eax
mov dword [ebp - 0x22a4], eax
mov dword [ebp - 0x22a0], eax
mov dword [ebp - 0x229c], eax
mov dword [ebp - 0x1294], eax
mov dword [ebp - 0x2298], eax
lea eax, [ebp - 0x32b0]
push eax
push dword [ebp - 0x12340]
mov dword [ebp - 0x22ac], 0x10d2bb16
push dword [ebp - 0x1233c]
call fcn.00401920
add esp, 0xc
test eax, eax
jne 0x404466
push dword [ebp - 0x1233c]
call fcn.00401440
add esp, 4
test eax, eax
jne 0x404466
push str.success__n
call edi
add esp, 4
lea eax, [ebp - 0x12340]
push eax
push str.leidian
push dword [ebp - 0x1233c]
call fcn.00401780
add esp, 0xc
test eax, eax
jne 0x4044c6
push dword [ebp - 0x12340]
push dword [ebp - 0x1233c]
call fcn.004015e0
add esp, 8
mov dword [ebp - 0x12340], 0
test bl, bl
je 0x4046ce
push dword [ebp - 0x1233c]
call fcn.00401440
add esp, 4
test eax, eax
jne 0x4044c6
push str.success__n
call edi
add esp, 4
test bl, bl
je 0x4046ce
lea eax, [ebp - 0x12340]
push eax
push dword [ebp - 0x1233c]
call fcn.004016b0
add esp, 8
test eax, eax
jne 0x4049ad
push 0x3020
push eax
lea eax, [ebp - 0x32b0]
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x32b0], 0x13020
lea eax, [ebp - 0x32b0]
mov dword [ebp - 0x22ac], 0x20c1221e
mov dword [ebp - 0x22a8], 0
mov dword [ebp - 0x22a4], 0
push eax
push dword [ebp - 0x12340]
mov dword [ebp - 0x22a0], 0
push dword [ebp - 0x1233c]
mov dword [ebp - 0x229c], 0
mov dword [ebp - 0x1294], 2
mov dword [ebp - 0x2298], 2
call fcn.00401920
add esp, 0xc
test eax, eax
jne 0x40458b
push dword [ebp - 0x1233c]
call fcn.00401440
add esp, 4
test eax, eax
jne 0x40458b
push str.success__n
call edi
add esp, 4
push 0x301c
lea eax, [ebp - 0x72e4]
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x72e8], 0x13020
lea eax, [ebp - 0xa304]
mov dword [ebp - 0x62e4], 0x10f9dc80
mov dword [ebp - 0x62e0], 0
push 0x301c
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0xa308], 0x13020
lea eax, [ebp - 0x12334]
mov dword [ebp - 0x9304], 0x10f9dc81
mov dword [ebp - 0x9300], 0
push 0x301c
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x12338], 0x13020
lea eax, [ebp - 0x72e8]
mov dword [ebp - 0x11334], 0x10f9dc84
mov dword [ebp - 0x11330], 0
mov dword [ebp - 0x52cc], 1
push eax
push dword [ebp - 0x12340]
mov dword [ebp - 0x82ec], 1
push dword [ebp - 0x1233c]
mov dword [ebp - 0x1031c], 0
call fcn.00401920
add esp, 0xc
test eax, eax
jne 0x4049ad
lea eax, [ebp - 0xa308]
push eax
push dword [ebp - 0x12340]
push dword [ebp - 0x1233c]
call fcn.00401920
add esp, 0xc
test eax, eax
jne 0x4049ad
lea eax, [ebp - 0x12338]
push eax
push dword [ebp - 0x12340]
push dword [ebp - 0x1233c]
call fcn.00401920
add esp, 0xc
test eax, eax
jne 0x4049ad
push dword [ebp - 0x1233c]
call fcn.00401440
add esp, 4
test eax, eax
jne 0x4049ad
push str.save_global_success__n
jmp 0x4049a8
push 0x1014
lea eax, [ebp - 0x42c8]
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x42c8], 0x11014
mov dword [ebp - 0x32c0], 0
xor ecx, ecx
lea ebx, [ebx]
movzx eax, word [ecx + str.leidian]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x42c6], ax
test ax, ax
jne 0x404700
lea eax, [ebp - 0x12340]
push eax
lea eax, [ebp - 0x42c8]
push eax
push dword [ebp - 0x1233c]
call fcn.00401510
add esp, 0xc
test eax, eax
jne 0x4049ad
push 0x500c
push eax
lea eax, [ebp - 0xf318]
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0xf318], 0x13008
mov dword [ebp - 0xf314], 0
xor ecx, ecx
movzx eax, word [ecx + str.C:Program_FilesldplayerboxLdVBoxHeadless.exe]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0xf312], ax
test ax, ax
jne 0x404766
xor ecx, ecx
nop
movzx eax, word [ecx + str.LdBox]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0xe312], ax
test ax, ax
jne 0x404780
xor ecx, ecx
lea esp, [esp]
movzx eax, word [ecx + 0x4069cc]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0xd312], ax
test ax, ax
jne 0x4047a0
lea eax, [ebp - 0xf318]
push eax
push dword [ebp - 0x12340]
push dword [ebp - 0x1233c]
call fcn.00401850
add esp, 0xc
test eax, eax
jne 0x4049ad
push 0x3020
push eax
lea eax, [ebp - 0x32b0]
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x32b0], 0x13020
lea eax, [ebp - 0x32b0]
mov dword [ebp - 0x22ac], 0x20c1221e
mov dword [ebp - 0x22a8], 0
mov dword [ebp - 0x22a4], 0
push eax
push dword [ebp - 0x12340]
mov dword [ebp - 0x22a0], 0
push dword [ebp - 0x1233c]
mov dword [ebp - 0x229c], 0
mov dword [ebp - 0x1294], 2
mov dword [ebp - 0x2298], 2
call fcn.00401920
add esp, 0xc
test eax, eax
jne 0x40487a
push dword [ebp - 0x1233c]
call fcn.00401440
add esp, 4
test eax, eax
jne 0x40487a
push str.success__n
call edi
add esp, 4
push 0x301c
lea eax, [ebp - 0x12334]
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x12338], 0x13020
lea eax, [ebp - 0xa304]
mov dword [ebp - 0x11334], 0x10f9dc80
mov dword [ebp - 0x11330], 0
push 0x301c
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0xa308], 0x13020
lea eax, [ebp - 0x72e4]
mov dword [ebp - 0x9304], 0x10f9dc81
mov dword [ebp - 0x9300], 0
push 0x301c
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x72e8], 0x13020
lea eax, [ebp - 0x12338]
mov dword [ebp - 0x62e4], 0x10f9dc84
mov dword [ebp - 0x62e0], 0
mov dword [ebp - 0x1031c], 1
push eax
push dword [ebp - 0x12340]
mov dword [ebp - 0x82ec], 1
push dword [ebp - 0x1233c]
mov dword [ebp - 0x52cc], 0
call fcn.00401920
add esp, 0xc
test eax, eax
jne 0x4049ad
lea eax, [ebp - 0xa308]
push eax
push dword [ebp - 0x12340]
push dword [ebp - 0x1233c]
call fcn.00401920
add esp, 0xc
test eax, eax
jne 0x4049ad
lea eax, [ebp - 0x72e8]
push eax
push dword [ebp - 0x12340]
push dword [ebp - 0x1233c]
call fcn.00401920
add esp, 0xc
test eax, eax
jne 0x4049ad
push dword [ebp - 0x1233c]
call fcn.00401440
add esp, 4
test eax, eax
jne 0x4049ad
push str.success__n
call edi
add esp, 4
push dword [ebp - 0x1233c]
call fcn.004012a0
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00405072
mov esp, ebp
pop ebp
ret