Function at 0x408ce6
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x338
push edi
lea ecx, [ebp - 0x338]
call fcn.0040117c
mov ecx, dword [ebp + 8]
call fcn.004034d7
movzx eax, byte [ebp + 0x10]
test eax, eax
je 0x408d2e
lea ecx, [ebp - 0x338]
call fcn.00408004
movzx eax, al
test eax, eax
je 0x408d2c
lea eax, [ebp - 0x338]
push eax
mov ecx, dword [ebp + 8]
call fcn.00401262
jmp 0x408d4f
lea ecx, [ebp - 0x338]
call fcn.00408a80
movzx eax, al
test eax, eax
je 0x408d4f
lea eax, [ebp - 0x338]
push eax
mov ecx, dword [ebp + 8]
call fcn.00401262
cmp dword [ebp + 0xc], 0
je 0x408d76
push 2
pop eax
imul eax, eax, 0
mov ecx, dword [ebp + 0xc]
movzx eax, word [ecx + eax]
test eax, eax
je 0x408d76
push dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
call fcn.00403832
jmp 0x408e87
push 0x100
push 0xfe
lea eax, [ebp - 0x128]
push eax
push str.ProductId
mov edx, str.SOFTWAREMicrosoftWindows_NTCurrentVersion
mov ecx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.00403e35
add esp, 0x10
movzx eax, al
test eax, eax
jne 0x408db5
push 2
pop eax
imul eax, eax, 0
xor ecx, ecx
mov word [ebp + eax - 0x128], cx
push 2
pop eax
imul eax, eax, 0
movzx eax, word [ebp + eax - 0x128]
test eax, eax
je 0x408dd4
call fcn.004013bb
test eax, eax
je 0x408e78
push 0x100
push 0xfe
lea eax, [ebp - 0x128]
push eax
push 0x46d038
mov edx, str.SOFTWAREMetaQuotes_Software
mov ecx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.00403e35
add esp, 0x10
movzx eax, al
test eax, eax
je 0x408e17
lea eax, [ebp - 0x128]
push eax
call fcn.0042b875
pop ecx
cmp eax, 0x2710
jge 0x408e68
push 0x100
push 0xfe
lea eax, [ebp - 0x128]
push eax
push 0x46d038
mov edx, str.SOFTWAREMetaQuotes_Software
mov ecx, SysReAllocStringLen
call fcn.00403e35
add esp, 0x10
movzx eax, al
test eax, eax
je 0x408e5a
lea eax, [ebp - 0x128]
push eax
call fcn.0042b875
pop ecx
cmp eax, 0x2710
jge 0x408e68
push 0x7f
pop edx
lea ecx, [ebp - 0x128]
call fcn.00408add
mov edx, str.4ed6bfa8
lea ecx, [ebp - 0x128]
call fcn.00408bfd
lea eax, [ebp - 0x128]
push eax
mov ecx, dword [ebp + 8]
call fcn.00403832
call fcn.00408c0a
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x408ebb
push dword [ebp - 4]
push 0x4679e4
lea eax, [ebp - 0x338]
push eax
call fcn.004011fb
add esp, 0xc
lea eax, [ebp - 0x338]
push eax
mov ecx, dword [ebp + 8]
call fcn.00401262
mov ecx, dword [ebp + 8]
call fcn.00401b89
movzx eax, al
test eax, eax
jne 0x408ee5
lea ecx, [ebp - 0x338]
call fcn.0040363b
lea ecx, [ebp - 0x338]
call fcn.004011bb
jmp 0x408f8d
push 9
pop ecx
xor eax, eax
lea edi, [ebp - 0x28]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx eax, word [ebp - 8]
test eax, eax
je 0x408f4e
movzx eax, word [ebp - 6]
test eax, eax
je 0x408f4e
movzx eax, word [ebp - 6]
push eax
movzx eax, word [ebp - 8]
push eax
push str._u._u
lea eax, [ebp - 0x338]
push eax
call fcn.004011fb
add esp, 0x10
lea eax, [ebp - 0x338]
push eax
mov ecx, dword [ebp + 8]
call fcn.00401262
lea ecx, [ebp - 0x338]
call fcn.0040363b
lea ecx, [ebp - 0x338]
call fcn.004011bb
jmp 0x408f8d
call fcn.00408c7f
push eax
push 0x46ff40
lea eax, [ebp - 0x338]
push eax
call fcn.004011fb
add esp, 0xc
lea eax, [ebp - 0x338]
push eax
mov ecx, dword [ebp + 8]
call fcn.00401262
lea ecx, [ebp - 0x338]
call fcn.0040363b
lea ecx, [ebp - 0x338]
call fcn.004011bb
pop edi
leave
ret