Function at 0x404520
Capabilities:
Get hostname
Get local ipv4 addresses
Get memory capacity
Get socket information
Get system information on windows

Disassembly:
sub esp, 0x880
mov eax, dword [esp + 0x884]
push ebx
push ebp
push esi
lea ecx, [esp + 0x410]
mov bl, 0x25
push eax
push ecx
mov byte [esp + 0x14], bl
mov byte [esp + 0x15], 0x64
mov byte [esp + 0x16], 0
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0xa0]
mov byte [esp + 0x9c], 0x66
push edx
mov dword [esp + 0x194], 0
mov dword [esp + 0xa4], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
lea eax, [esp + 0xac]
lea ecx, [esp + 0xa8]
push eax
lea edx, [esp + 0xa8]
push ecx
push edx
call fcn.004044d0
add esp, 0xc
lea eax, [esp + 0x510]
push 0x100
push eax
call dword [sym.imp.WS2_32.dll_gethostname]
lea ecx, [esp + 0x2b0]
push 0x32
lea edx, [esp + 0x414]
push ecx
push edx
call fcn.00404300
xor eax, eax
add esp, 0xc
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x2c], eax
push ecx
mov dword [esp + 0x34], eax
lea edx, [esp + 0x2c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x898]
push edx
mov dword [esp + 0x2c], 0x10
mov ecx, dword [eax + 0xa8]
push ecx
call dword [sym.imp.WS2_32.dll_getsockname]
mov ecx, dword [0x408cb4]
lea edx, [esp + 0x2c]
push 4
lea eax, [esp + 0x158]
push edx
push eax
call fcn.00403bc0
lea ecx, [esp + 0x510]
push 0x32
lea edx, [esp + 0x15c]
push ecx
mov ecx, dword [0x408cb4]
push edx
call fcn.00403bc0
call fcn.00404110
mov dword [esp + 0x13c], eax
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ecx, dword [esp + 0x8c]
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
push ecx
lea edx, [esp + 0x144]
push 0x4086f0
push edx
call ebp
add esp, 0xc
call fcn.00404480
test eax, eax
setne al
lea ecx, [esp + 0x38]
mov byte [esp + 0x194], al
push ecx
mov dword [esp + 0x3c], 0x40
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov ecx, 0x14
call fcn.00405ce0
lea edx, [esp + 0x22b]
push 0
push edx
mov dword [esp + 0x194], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [esp + 0x233]
push 0
push eax
push 1
push str.DriverDesc
push str.SYSTEMCurrentControlSetControlClass4D36E968_E325_11CE_BFC1_08002BE103180000
push 0x80000002
call fcn.00403f10
add esp, 0x20
test eax, eax
jne 0x40470c
push edi
mov edi, 0x4080ac
or ecx, 0xffffffff
lea edx, [esp + 0x22f]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea ecx, [esp + 0x20]
push ecx
push 0x406290
push 7
push 0
push 0x406260
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jl 0x40473d
mov eax, dword [esp + 0x20]
push 0
push eax
mov edx, dword [eax]
call dword [edx + 0x48]
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x610]
mov dword [esp + 0x610], 0x17c
push 0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
mov eax, dword [esp + 0x20]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [esp + 0x64c]
mov eax, 0x4104105
mul ecx
sub ecx, edx
mov eax, 0x4104105
shr ecx, 1
add ecx, edx
shr ecx, 9
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 9
mov dword [esp + 0x2ac], ecx
call fcn.00404170
push str.WmiPrvSER.exe
mov dword [esp + 0x194], eax
mov byte [esp + 0x2e6], 0
call fcn.00405620
add esp, 4
test eax, eax
je 0x4047c1
mov byte [esp + 0x2e2], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov eax, 0x31b5d43b
mul esi
shr edx, 0x18
push edx
lea edx, [esp + 0x10]
lea eax, [esp + 0x34c]
push edx
push eax
call ebp
mov eax, esi
xor edx, edx
mov ecx, 0x5265c00
div ecx
mov eax, 0x95217cb1
mov esi, edx
mul esi
shr edx, 0x15
push edx
lea edx, [esp + 0x1c]
lea eax, [esp + 0x3bc]
push edx
push eax
call ebp
mov eax, esi
xor edx, edx
mov ecx, 0x36ee80
div ecx
mov eax, 0x45e7b273
mul edx
shr edx, 0xe
push edx
lea edx, [esp + 0x28]
lea eax, [esp + 0x300]
push edx
push eax
call ebp
lea ecx, [esp + 0x308]
mov al, 0x73
push 0x40867c
push ecx
lea edx, [esp + 0x3d8]
mov byte [esp + 0x3d], al
mov byte [esp + 0x3f], al
mov byte [esp + 0x41], al
mov byte [esp + 0x43], al
mov byte [esp + 0x45], al
mov byte [esp + 0x47], al
push 0x408678
push edx
lea eax, [esp + 0x37c]
push 0x408674
lea ecx, [esp + 0x48]
push eax
lea edx, [esp + 0x235]
push ecx
push edx
mov byte [esp + 0x54], bl
mov byte [esp + 0x56], bl
mov byte [esp + 0x58], bl
mov byte [esp + 0x5a], bl
mov byte [esp + 0x5c], bl
mov byte [esp + 0x5e], bl
mov byte [esp + 0x60], 0
call ebp
add esp, 0x44
lea eax, [esp + 0x195]
lea ecx, [esp + 0x410]
push 0x32
push eax
push ecx
call fcn.00404400
lea edx, [esp + 0x798]
push 0x100
lea eax, [esp + 0x420]
push edx
push eax
call fcn.00404370
add esp, 0x18
pop esi
pop ebp
pop ebx
test eax, eax
mov eax, str.Default
je 0x4048e6
lea eax, [esp + 0x780]
lea ecx, [esp + 0x1bb]
push eax
push ecx
mov ecx, dword [0x408cb4]
call fcn.00403cb0
mov ecx, dword [esp + 0x888]
lea edx, [esp + 0x90]
push 0x248
push edx
call fcn.00401bd0
add esp, 0x880
ret