Function at 0x4016a0
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x250
push ebx
push esi
push edi
mov dword [ebp - 0x180], 0x401e10
mov dword [ebp - 4], 0
mov eax, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
mov dword [ebp - 0x18c], eax
mov ecx, dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x184], ecx
mov dword [ebp - 0x188], 0x4524e8
mov edx, dword [ebp - 0x184]
movzx eax, byte [edx]
cmp eax, 0x8b
je 0x401721
mov ecx, dword [ebp - 0x184]
movzx edx, byte [ecx]
cmp edx, 0x6a
je 0x401721
mov eax, dword [ebp - 0x184]
movzx ecx, byte [eax]
cmp ecx, 0x55
je 0x401721
mov edx, dword [ebp - 0x184]
movzx eax, byte [edx]
cmp eax, 0xff
je 0x401721
xor eax, eax
jmp 0x401a81
mov dword [ebp - 0x22c], 0x30
mov dword [ebp - 0x228], 3
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x218], 0
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [ebp - 0x214], eax
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x1e8], 0
lea ecx, [ebp - 0x1fc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0x1e8], 0
jne 0x4017aa
xor eax, eax
jmp 0x401a81
lea edx, [ebp - 0x4c]
push edx
mov eax, dword [ebp - 0x188]
push eax
push 0x80000002
call dword [ebp - 0x18c]
test eax, eax
jne 0x4017cb
xor eax, eax
jmp 0x401a81
mov ecx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
mov dword [ebp - 0x250], ecx
mov dword [ebp - 0xe4], 0x64
mov dword [ebp - 0x14], 0xc
mov dword [ebp - 4], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0xe0], 1
mov dword [ebp - 0xc], 0
mov edx, dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [0x452534], edx
call fcn.00401520
mov eax, dword [0x452538]
push eax
call fcn.004015d0
add esp, 4
mov dword [0x452544], eax
mov ecx, dword [0x452544]
push ecx
call fcn.00401d40
add esp, 4
mov dword [0x452510], eax
mov edx, dword [0x452544]
mov dword [ebp - 0x90], edx
lea eax, [ebp - 0x4c]
push eax
mov ecx, dword [str.SOFTWAREClassesInterface00000141_0000_0000_c000_000000000046]
push ecx
push 0x80000002
call dword [ebp - 0x250]
test eax, eax
je 0x40186c
xor eax, eax
jmp 0x401a81
mov edx, dword [ebp - 4]
cmp edx, dword [0x452544]
jae 0x4018e4
mov eax, dword [ebp - 0x90]
push eax
mov ecx, dword [ebp - 0xe4]
push ecx
call fcn.004015f0
add esp, 8
mov dword [ebp - 0xdc], eax
mov edx, dword [ebp - 0xdc]
push edx
mov eax, dword [0x452538]
add eax, dword [ebp - 0x48]
push eax
mov ecx, dword [0x452510]
add ecx, dword [ebp - 4]
push ecx
call fcn.00401550
add esp, 0xc
mov edx, dword [ebp - 0x14]
add edx, dword [ebp - 0xe4]
add edx, dword [ebp - 0x48]
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0xe4]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x90]
sub ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x90], ecx
jmp 0x40186c
mov edx, dword [0x452544]
push edx
mov eax, dword [0x452510]
push eax
call fcn.004014e0
add esp, 8
pushal
mov ecx, dword [ebp + 8]
mov dword [0x45252c], ecx
mov dword [ebp - 4], 0
mov dword [ebp - 0x48], 0
mov edx, dword [0x452544]
push edx
push 0
mov eax, dword [0x452530]
push eax
call fcn.00401500
add esp, 0xc
mov ecx, dword [0x452544]
mov dword [ebp - 0x90], ecx
mov edx, dword [ebp - 4]
cmp edx, dword [0x452544]
jae 0x4019ac
mov eax, dword [ebp - 0x90]
push eax
mov ecx, dword [ebp - 0xe4]
push ecx
call fcn.004015f0
add esp, 8
mov dword [ebp - 0xdc], eax
mov edx, dword [ebp - 0xdc]
push edx
mov eax, dword [0x452538]
add eax, dword [ebp - 0x48]
push eax
mov ecx, dword [0x452530]
add ecx, dword [ebp - 4]
push ecx
call fcn.00401550
add esp, 0xc
mov edx, dword [ebp - 0x14]
add edx, dword [ebp - 0xe4]
add edx, dword [ebp - 0x48]
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0xe4]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x90]
sub ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x90], ecx
jmp 0x401934
mov edx, dword [0x452544]
push edx
mov eax, dword [0x452530]
push eax
call fcn.004014e0
add esp, 8
mov dword [ebp - 0x180], 0x401e10
mov ecx, dword [0x452510]
mov edx, dword [0x452530]
mov dword [ecx], edx
push 0x47000
call fcn.00401d40
add esp, 4
mov dword [0x452508], eax
mov eax, dword [0x452508]
add eax, 0x300
mov dword [0x45251c], eax
push 0x44400
mov ecx, dword [0x452510]
push ecx
mov edx, dword [0x45251c]
push edx
call fcn.00401550
add esp, 0xc
call fcn.00401690
mov dword [0x452504], eax
mov eax, dword [0x452508]
sub eax, dword [0x452504]
push eax
mov ecx, dword [0x452508]
push ecx
mov edx, dword [0x452530]
push edx
call fcn.00401f00
add esp, 0xc
mov eax, dword [0x452508]
add eax, 0x443b0
mov dword [0x45250c], eax
mov ecx, ecx
popal
push 0x87a23
mov eax, dword [ebp - 0x180]
mov ecx, esp
push edx
mov edx, ecx
sub edx, 0x28
mov ecx, edx
pop edx
add ecx, 0x24
jmp 0x401a6e
jmp 0x401a71
sub ecx, 0xa
mov edx, ecx
mov dword [edx + 0xe], 0
add dword [edx + 0xe], eax
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret