Function at 0x425630
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x47f3ba
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x12c
push ebx
push esi
lea eax, [esp + 0x28]
xor esi, esi
push eax
mov dword [esp + 0xc], esi
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [esp + 0x40]
cmp eax, 0x182
je 0x425689
cmp eax, 0x1e6
je 0x425689
push eax
push ebx
push ecx
push edx
mov eax, 1
cpuid
mov dword [esp + 0x18], edx
pop edx
pop ecx
pop ebx
pop eax
mov eax, dword [esp + 8]
mov ecx, eax
mov edx, eax
and ecx, 0x800000
and edx, 0x2000000
and eax, 0x4000000
mov dword [edi + 0x878], ecx
mov dword [edi + 0x87c], edx
mov dword [edi + 0x880], eax
cmp ecx, esi
jne 0x4256fe
push 0x69
push str.Your_CPU_does_not_support_MMX_technology__it_must_be_pretty_old__.__Please_buy_a_newer_PC_then_try_again_
lea ecx, [esp + 0x30]
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], esi
mov byte [esp + 0x34], 0
call fcn.00414d30
mov dword [esp + 0x13c], esi
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.00415340
push 0x4978fc
lea edx, [esp + 0x5c]
push edx
call fcn.004637cb
mov esi, dword [ebp + 8]
mov eax, dword [esi]
lea ebx, [edi + 0x8c]
push edi
mov dword [edi + 0xc64], eax
mov dword [ebx], edi
call fcn.00425220
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x14]
push edx
push 0x3e5
mov ecx, str.APPBLOCK
call fcn.00425430
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
add esp, 0xc
push eax
lea edx, [edi + 0xd4]
push ebx
call fcn.00406210
xor ebx, ebx
cmp dword [edi + 0x164], ebx
jbe 0x425791
cmp byte [edi + 0xb34], bl
je 0x425791
push str.Cannot_enable_both_multisamples_and_motion_blur.__Please_change_one_of_these_settings.
lea ecx, [esp + 0x2c]
call fcn.00414e10
mov dword [esp + 0x13c], 1
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x5c]
push edx
call fcn.00415340
push 0x4978fc
lea eax, [esp + 0x5c]
push eax
call fcn.004637cb
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x14]
push edx
push 0x3e1
mov ecx, str.MENUBLOCK
call fcn.00425430
mov eax, dword [edi + 0xd8]
mov dword [esi + 4], eax
mov ecx, dword [edi + 0xdc]
mov dword [esi + 8], ecx
mov dl, byte [edi + 0xf4]
mov byte [esi + 0xc], dl
mov eax, dword [edi + 0xe4]
mov ecx, dword [edi + 0xe8]
mov dword [edi + 0x8bc], eax
mov dword [edi + 0x8b8], ecx
mov dword [esi + 0x34], eax
mov al, byte [edi + 0xec]
movzx edx, al
mov byte [edi + 0xb88], al
mov dword [esi + 0x28], edx
mov eax, dword [edi + 0xd8]
mov dword [esi + 0x2c], eax
mov ecx, dword [edi + 0xdc]
mov dword [esi + 0x30], ecx
mov eax, dword [edi + 0x164]
add esp, 0xc
cmp eax, 3
ja case.0x425812.0
jmp dword [eax*4 + 0x426164]
mov dword [esi + 0x48], 2
jmp 0x425837
mov dword [esi + 0x48], 4
jmp 0x425837
mov dword [esi + 0x48], 8
jmp 0x425837
mov dword [esi + 0x48], ebx
lea ebx, [edi + 0x300]
mov esi, ebx
call fcn.0044c760
mov edx, dword [ebp + 8]
push edx
mov esi, edi
call fcn.00426e20
test al, al
jne 0x42588a
push str.Cannot_create_window
lea ecx, [esp + 0x2c]
call fcn.00414e10
mov dword [esp + 0x13c], 2
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.00415340
push 0x4978fc
lea edx, [esp + 0x5c]
push edx
call fcn.004637cb
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov eax, dword [edi + 0xd4]
mov ecx, dword [edi + 0xc58]
push eax
mov eax, dword [ecx]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
cmp byte [edi + 0xf4], 0
jne 0x4258c3
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
cmp dword [edi + 0xe0], 0
je 0x4258f8
mov ecx, dword [edi + 0x100]
sub ecx, dword [edi + 0xfc]
test ecx, 0xfffffffc
je 0x4258f8
mov edx, dword [edi + 0xfc]
mov ecx, dword [edx]
mov eax, dword [edi + 0xc58]
mov edx, dword [eax]
push ecx
push edx
call dword [sym.imp.USER32.dll_SetMenu]
mov esi, dword [ebp + 8]
lea ecx, [edi + 0xc54]
lea eax, [esi + 0x10]
push ecx
push eax
mov dword [esp + 0x1c], eax
call fcn.00427d40
mov eax, dword [edi + 0xc58]
mov edx, dword [eax]
xor eax, eax
mov dword [esi + 0x20], edx
mov dword [edi + 0x88c], eax
mov dword [edi + 0x890], eax
cmp dword [esi + 0x28], eax
je 0x4259e5
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x20], eax
mov eax, 0x186a0
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x24], eax
mov byte [esp + 0xf], 0
mov dword [esp + 0x18], eax
jmp 0x425960
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x90]
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_EnumDisplaySettingsA]
inc dword [esp + 0x1c]
test eax, eax
je 0x4259c1
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jne 0x4259a0
mov edx, dword [esp + 0x100]
cmp edx, dword [esp + 0x4c]
jne 0x42599e
mov byte [esp + 0xf], 1
cmp eax, ecx
jl 0x425960
mov ecx, dword [esp + 0x100]
cmp ecx, dword [esp + 0x4c]
jl 0x425960
cmp eax, dword [esp + 0x18]
jge 0x425960
cmp ecx, dword [esp + 0x24]
jge 0x425960
mov dword [esp + 0x24], ecx
jmp 0x425951
cmp byte [esp + 0xf], 0
jne 0x4259e5
mov ecx, dword [esp + 0x18]
cmp ecx, 0x186a0
je 0x425a41
mov eax, dword [esp + 0x24]
cmp eax, 0x186a0
je 0x425a41
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x14]
push eax
push ebx
call fcn.0044c850
push edi
call fcn.0041fa70
mov eax, dword [edi + 0x744]
xor esi, esi
cmp eax, esi
je 0x425a18
cmp dword [edi + 0x7f4], 0xffffffff
jne 0x425a18
mov eax, edi
call fcn.00419d70
mov dword [edi + 0x7f4], eax
mov eax, 6
lea edx, [eax - 0x17]
lea ecx, [eax + 0xa]
cmp dword [edi + 0xf0], esi
jne 0x425aa8
cmp dword [ebx + 0x254], eax
jne 0x425a78
mov dword [ebx + 0x268], esi
and dword [ebx + 0x240], edx
jmp 0x425a84
push str.The_display_resolution_required_by_this_application_is_not_supported.
lea ecx, [esp + 0x2c]
call fcn.00414e10
mov dword [esp + 0x13c], 3
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.00415340
push 0x4978fc
lea edx, [esp + 0x5c]
push edx
call fcn.004637cb
mov dword [ebx + 0x268], eax
or dword [ebx + 0x240], ecx
cmp dword [ebx + 0x250], eax
jne 0x425a9b
mov dword [ebx + 0x264], esi
and dword [ebx + 0x240], 0xfffffff7
jmp 0x425aa8
mov dword [ebx + 0x264], eax
or dword [ebx + 0x240], 8
cmp dword [edi + 0xf0], 1
mov eax, 7
jne 0x425afc
cmp dword [ebx + 0x254], eax
jne 0x425acc
mov dword [ebx + 0x268], esi
and dword [ebx + 0x240], edx
jmp 0x425ad8
mov dword [ebx + 0x268], eax
or dword [ebx + 0x240], ecx
cmp dword [ebx + 0x250], eax
jne 0x425aef
mov dword [ebx + 0x264], esi
and dword [ebx + 0x240], 0xfffffff7
jmp 0x425afc
mov dword [ebx + 0x264], eax
or dword [ebx + 0x240], 8
mov eax, ebx
call fcn.0044e5d0
mov eax, 3
cmp dword [ebx + 0x248], eax
jne 0x425b1f
mov dword [ebx + 0x25c], esi
and dword [ebx + 0x240], 0xfffffffd
jmp 0x425b2c
mov dword [ebx + 0x25c], eax
or dword [ebx + 0x240], 2
cmp dword [ebx + 0x24c], eax
jne 0x425b43
mov dword [ebx + 0x260], esi
and dword [ebx + 0x240], 0xfffffffb
jmp 0x425b50
mov dword [ebx + 0x260], eax
or dword [ebx + 0x240], 4
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x14]
push edx
push 0x3e3
mov ecx, str.IMAGEBLOCK
call fcn.00425430
mov ecx, dword [esp + 0x1c]
add esp, 0xc
lea eax, [edi + 0x7d0]
push eax
push ecx
mov ecx, dword [esp + 0x10]
lea esi, [edi + 0x8c]
call fcn.00406e40
push 0
lea esi, [edi + 0x810]
push esi
push 0x4814e0
push 0x800
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call sub.DINPUT8.dll_DirectInput8Create
test eax, eax
jge 0x425be3
push str.Failed_to_initialise_DirectInput.__Please_ensure_you_have_DirectX_8_or_above_installed_
lea ecx, [esp + 0x2c]
call fcn.00414e10
mov dword [esp + 0x13c], 4
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x5c]
push eax
call fcn.00415340
push 0x4978fc
lea ecx, [esp + 0x5c]
push ecx
call fcn.004637cb
mov eax, dword [esi]
mov edx, dword [eax]
push 0
lea ebx, [edi + 0x814]
push ebx
push 0x481540
push eax
mov eax, dword [edx + 0xc]
call eax
test eax, eax
jge 0x425c36
push str.Failed_to_initialise_DirectInput.
lea ecx, [esp + 0x2c]
call fcn.00414e10
mov dword [esp + 0x13c], 5
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x5c]
push edx
call fcn.00415340
push 0x4978fc
lea eax, [esp + 0x5c]
push eax
call fcn.004637cb
mov eax, dword [ebx]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push 0x48173c
push eax
call edx
test eax, eax
jge 0x425c80
push str.Failed_to_initialise_DirectInput.
lea ecx, [esp + 0x2c]
call fcn.00414e10
mov dword [esp + 0x13c], 6
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.00415340
push 0x4978fc
lea edx, [esp + 0x5c]
push edx
call fcn.004637cb
mov ecx, dword [edi + 0xc58]
mov eax, dword [ebx]
mov ecx, dword [ecx]
mov edx, dword [eax]
mov edx, dword [edx + 0x34]
push 0xa
push ecx
push eax
call edx
test eax, eax
jge 0x425cd0
push str.Failed_to_initialise_DirectInput.
lea ecx, [esp + 0x2c]
call fcn.00414e10
mov dword [esp + 0x13c], 7
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.00415340
push 0x4978fc
lea edx, [esp + 0x5c]
push edx
call fcn.004637cb
mov ebx, dword [ebx]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1c]
push ebx
call ecx
test eax, eax
jge 0x425d15
push str.Failed_to_initialise_DirectInput.
lea ecx, [esp + 0x2c]
call fcn.00414e10
mov dword [esp + 0x13c], 8
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x5c]
push eax
call fcn.00415340
push 0x4978fc
lea ecx, [esp + 0x5c]
push ecx
call fcn.004637cb
mov eax, dword [esi]
mov edx, dword [eax]
push 0
lea ebx, [edi + 0x818]
push ebx
push 0x481530
push eax
mov eax, dword [edx + 0xc]
call eax
test eax, eax
jge 0x425d68
push str.Failed_to_initialise_DirectInput.
lea ecx, [esp + 0x2c]
call fcn.00414e10
mov dword [esp + 0x13c], 9
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x5c]
push edx
call fcn.00415340
push 0x4978fc
lea eax, [esp + 0x5c]
push eax
call fcn.004637cb
mov ecx, dword [edi + 0xc58]
mov eax, dword [ebx]
mov ecx, dword [ecx]
mov edx, dword [eax]
mov edx, dword [edx + 0x34]
push 0xa
push ecx
push eax
call edx
test eax, eax
jge 0x425db8
push str.Failed_to_initialise_DirectInput.
lea ecx, [esp + 0x2c]
call fcn.00414e10
mov dword [esp + 0x13c], 0xa
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.00415340
push 0x4978fc
lea edx, [esp + 0x5c]
push edx
call fcn.004637cb
mov eax, dword [ebx]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push 0x481944
push eax
call edx
test eax, eax
jge 0x425e02
push str.Failed_to_initialise_DirectInput.
lea ecx, [esp + 0x2c]
call fcn.00414e10
mov dword [esp + 0x13c], 0xb
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.00415340
push 0x4978fc
lea edx, [esp + 0x5c]
push edx
call fcn.004637cb
mov ebx, dword [ebx]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1c]
push ebx
call ecx
test eax, eax
jge 0x425e47
push str.Failed_to_initialise_DirectInput.
lea ecx, [esp + 0x2c]
call fcn.00414e10
mov dword [esp + 0x13c], 0xc
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x5c]
push eax
call fcn.00415340
push 0x4978fc
lea ecx, [esp + 0x5c]
push ecx
call fcn.004637cb
mov eax, dword [ebp + 8]
mov byte [edi + 0xadb], 1
mov edx, dword [eax + 4]
mov dword [edi + 0x884], edx
mov eax, dword [eax + 8]
mov dword [edi + 0x888], eax
mov eax, dword [edi + 0xc58]
mov edx, dword [eax]
lea ecx, [esp + 0x80]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
sub eax, dword [esp + 0x80]
sub ecx, dword [esp + 0x84]
push edi
push 0x427580
push str.DEPENDENCIES
push 0
mov dword [edi + 0x894], eax
mov dword [edi + 0x898], ecx
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesA]
push edi
call fcn.004275a0
lea edx, [esp + 8]
push edx
lea eax, [esp + 0x14]
push eax
push 0x3e6
mov ecx, str.LEVELBLOCK
call fcn.00425430
mov ecx, dword [esp + 0x1c]
add esp, 0xc
push ecx
mov ecx, dword [esp + 0xc]
lea esi, [edi + 0x8c]
push esi
call fcn.00403010
lea edx, [esp + 8]
push edx
lea eax, [esp + 0x14]
push eax
push 0x3e7
mov ecx, str.EVENTBLOCK
call fcn.00425430
mov ecx, dword [esp + 0x1c]
add esp, 0xc
push ecx
mov ecx, dword [esp + 0xc]
mov edx, esi
call fcn.00401330
mov eax, dword [edi + 0xb10]
mov ebx, dword [edi + 0xb0c]
mov dword [esp + 0x20], eax
cmp ebx, eax
je 0x425f78
lea esp, [esp]
mov eax, dword [ebx]
mov esi, dword [eax + 0x13c]
mov eax, dword [eax + 0x140]
mov dword [esp + 0x14], eax
cmp esi, eax
je 0x425f6f
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [ebx]
mov edx, dword [edx + 0x1c]
push eax
call edx
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
cmp eax, 3
jne 0x425f66
mov eax, dword [esi]
mov byte [eax + 0x24], 1
add esi, 4
cmp esi, dword [esp + 0x14]
jne 0x425f46
add ebx, 4
cmp ebx, dword [esp + 0x20]
jne 0x425f30
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x14]
push edx
push 0x3e2
mov ecx, str.HLSL
call fcn.00425430
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
add esp, 0xc
push eax
lea eax, [edi + 0x8c]
push eax
call fcn.004077d0
cmp byte [edi + 0xb34], 0
je 0x425fb8
push edi
call fcn.00425520
call fcn.00461b63
mov edx, dword [edi]
mov dword [edi + 0xc68], eax
mov eax, dword [edx + 0xd8]
push str.No_serialize
mov ecx, edi
mov dword [edi + 0xc4c], 0
call eax
test eax, eax
je 0x426020
mov ecx, dword [eax + 0x90]
sub ecx, dword [eax + 0x8c]
test ecx, 0xfffffffc
je 0x426020
mov ecx, dword [eax + 0x8c]
mov eax, dword [eax + 0x90]
cmp ecx, eax
je 0x426020
jmp 0x426010
mov edx, dword [ecx]
add ecx, 4
mov byte [edx + 0xc4], 1
cmp ecx, eax
jne 0x426010
mov eax, dword [edi + 0xb0c]
mov ebx, dword [eax]
lea eax, [edi + 0xb18]
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x18], ebx
call fcn.00420320
mov dword [edi + 0x20c], ebx
mov eax, ebx
mov byte [ebx + 0x70], 1
call fcn.004336b0
mov esi, dword [edi + 0xb0c]
add esi, 4
cmp esi, dword [edi + 0xb10]
je 0x42608a
mov edi, edi
mov ecx, dword [esi]
mov eax, dword [ecx + 0x1b0]
cmp eax, 1
je 0x426079
test eax, eax
jne 0x42607f
cmp dword [edi + 0xce8], eax
jne 0x42607f
push ecx
call fcn.0044b780
add esi, 4
cmp esi, dword [edi + 0xb10]
jne 0x426060
lea ecx, [esp + 0x50]
push ecx
mov byte [edi + 0xc84], 1
call dword [sym.imp.USER32.dll_GetCursorPos]
cmp byte [edi + 0xb88], 0
jne 0x4260b9
mov eax, dword [edi + 0xc58]
mov eax, dword [eax]
lea edx, [esp + 0x50]
push edx
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
fild dword [esp + 0x50]
push ebx
fstp qword [ebx + 0x58]
fild dword [esp + 0x58]
fstp qword [ebx + 0x60]
call fcn.004336e0
push edi
call fcn.00419e40
cmp dword [edi + 0x160], 0
mov ecx, dword [edi + 0x884]
mov edx, dword [edi + 0x888]
mov dword [edi + 0x2ec], ecx
mov dword [edi + 0x2f0], edx
jg 0x42610f
mov eax, dword [edi]
mov edx, dword [eax + 0x98]
push 0
push 1
push 0xffffffffffffffff
mov ecx, edi
call edx
cmp dword [edi + 0x160], 0
jle 0x42614a
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.none
call fcn.00414ba0
mov dword [esp + 0x144], 0xd
mov eax, dword [edi + 0x160]
push eax
lea ecx, [edi + 0x168]
mov dword [esp + 0x148], 0xffffffff
call fcn.00440c40
mov ecx, dword [esp + 0x134]
pop esi
mov al, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4