Function at 0x4510c0
Capabilities:
Get hostname
Query or enumerate registry value
Resolve dns
Set socket configuration

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x50f8cd
push eax
mov eax, 0x11c0
mov dword fs:[0], esp
call fcn.004c27a0
mov eax, dword [0x5581a0]
push ebp
push esi
push edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x11d4], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], eax
mov esi, 1
mov dword [esp + 0x10], 0
mov ebp, esi
mov dword [esp + 0x18], eax
lea eax, [esp + 0x38]
mov byte [esp + 0x11d4], 6
push eax
mov dword [esp + 0x3c], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [esp + 0x48]
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp eax, 2
jne 0x4511ee
lea ecx, [esp + 0x10]
push ecx
push 0x20019
push 0
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionNetworkCards1
push reloc.WSOCK32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x451208
lea edx, [esp + 0x14]
lea eax, [esp + 0x1cc]
push edx
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push eax
push ecx
push 0
push str.ServiceName
push edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], 0x1000
call edi
cmp dword [esp + 0xc], esi
jne 0x4511df
push str.SYSTEMCurrentControlSetServices_
lea ecx, [esp + 0x1c]
call fcn.004dd2da
lea eax, [esp + 0x1cc]
lea ecx, [esp + 0x18]
push eax
call fcn.004dd52d
push str.ParametersTcpip
lea ecx, [esp + 0x1c]
call fcn.004dd52d
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x45120a
mov ecx, dword [esp + 0x10]
xor ebp, ebp
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x45120a
cmp eax, esi
jne 0x451208
mov eax, dword [esp + 0x40]
push str.SystemCurrentControlSetServicesVxDDHCPDhcpInfo00
lea ecx, [esp + 0x1c]
test eax, eax
call fcn.004dd2da
jmp 0x45120a
xor ebp, ebp
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x10]
push edx
push 0x20019
push 0
push eax
push reloc.WSOCK32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x451446
lea ecx, [esp + 0x14]
lea edx, [esp + 0x1cc]
push ecx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push eax
push 0
push str.DhcpIPAddress
push ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], 0x1000
call edi
cmp dword [esp + 0xc], esi
jne 0x451273
lea edx, [esp + 0x1cc]
lea ecx, [esp + 0x2c]
push edx
call fcn.004dd2da
jmp 0x451275
xor ebp, ebp
lea eax, [esp + 0x14]
lea ecx, [esp + 0x1cc]
push eax
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x10]
push ecx
push edx
push 0
push str.DhcpSubnetMask
push eax
mov dword [esp + 0x2c], 0x1000
mov dword [esp + 0x24], esi
call edi
cmp dword [esp + 0xc], esi
jne 0x4512ba
lea ecx, [esp + 0x1cc]
push ecx
lea ecx, [esp + 0x28]
call fcn.004dd2da
jmp 0x4512bc
xor ebp, ebp
cmp dword [esp + 0x48], esi
jne 0x4513a8
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.SystemCurrentControlSetServicesClassNetTrans0013
lea ecx, [esp + 0x1c]
call fcn.004dd2da
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
push ecx
push reloc.WSOCK32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x451446
lea edx, [esp + 0x14]
lea eax, [esp + 0x1cc]
push edx
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push eax
push ecx
push 0
mov esi, 7
push str.IPAddress
push edx
mov dword [esp + 0x2c], 0x1000
mov dword [esp + 0x24], esi
call edi
cmp dword [esp + 0xc], esi
jne 0x45134d
lea eax, [esp + 0x1cc]
lea ecx, [esp + 0x1c]
push eax
call fcn.004dd2da
jmp 0x45134f
xor ebp, ebp
lea ecx, [esp + 0x14]
lea edx, [esp + 0x1cc]
push ecx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push eax
push 0
push str.SubnetMask
push ecx
mov dword [esp + 0x2c], 0x1000
mov dword [esp + 0x24], esi
call edi
cmp dword [esp + 0xc], esi
jne 0x45139c
lea edx, [esp + 0x1cc]
lea ecx, [esp + 0x20]
push edx
call fcn.004dd2da
mov eax, dword [esp + 0x10]
push eax
jmp 0x451440
mov eax, dword [esp + 0x10]
xor ebp, ebp
push eax
jmp 0x451440
lea ecx, [esp + 0x14]
lea edx, [esp + 0x1cc]
push ecx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push eax
push 0
mov esi, 7
push str.IPAddress
push ecx
mov dword [esp + 0x2c], 0x1000
mov dword [esp + 0x24], esi
call edi
cmp dword [esp + 0xc], esi
jne 0x4513f2
lea edx, [esp + 0x1cc]
lea ecx, [esp + 0x1c]
push edx
call fcn.004dd2da
jmp 0x4513f4
xor ebp, ebp
lea eax, [esp + 0x14]
lea ecx, [esp + 0x1cc]
push eax
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x10]
push ecx
push edx
push 0
push str.SubnetMask
push eax
mov dword [esp + 0x2c], 0x1000
mov dword [esp + 0x24], esi
call edi
cmp dword [esp + 0xc], esi
jne 0x451439
lea ecx, [esp + 0x1cc]
push ecx
lea ecx, [esp + 0x24]
call fcn.004dd2da
jmp 0x45143b
xor ebp, ebp
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebp, ebp
je 0x45154d
lea eax, [esp + 0xcc]
push 0xff
push eax
call sub.WSOCK32.dll_gethostname
cmp eax, 0xffffffff
je 0x45148d
lea ecx, [esp + 0xcc]
push ecx
call sub.WSOCK32.dll_gethostbyname
test eax, eax
je 0x45148d
mov edx, dword [eax + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax]
push ecx
call sub.WSOCK32.dll_inet_ntoa
push eax
lea ecx, [esp + 0x34]
call fcn.004dd2da
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x4b0]
mov eax, dword [eax + 8]
push eax
call sub.WSOCK32.dll_gethostbyname
test eax, eax
je 0x451529
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x1c]
push eax
mov edx, dword [ecx]
mov ecx, dword [esp + 0x34]
push ecx
mov edi, dword [edx]
call fcn.004c2316
add esp, 8
test eax, eax
jne 0x4514f7
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x1c]
mov eax, dword [edx - 8]
push eax
call fcn.004dd581
push eax
call sub.WSOCK32.dll_inet_addr
mov esi, eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x20]
mov eax, dword [eax - 8]
push eax
call fcn.004dd581
push eax
call sub.WSOCK32.dll_inet_addr
jmp 0x451535
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x2c]
push eax
call fcn.004dd581
push eax
call sub.WSOCK32.dll_inet_addr
mov edx, dword [esp + 0x24]
mov esi, eax
lea ecx, [esp + 0x24]
mov eax, dword [edx - 8]
push eax
call fcn.004dd581
push eax
call sub.WSOCK32.dll_inet_addr
jmp 0x451535
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
test esi, esi
je 0x45154d
test eax, eax
je 0x45154d
test edi, edi
je 0x45154d
mov ecx, eax
and eax, edi
and ecx, esi
cmp ecx, eax
je 0x45154d
xor ebp, ebp
lea ecx, [esp + 0x18]
mov byte [esp + 0x11d4], 5
call fcn.004dd151
lea ecx, [esp + 0x28]
mov byte [esp + 0x11d4], 4
call fcn.004dd151
lea ecx, [esp + 0x30]
mov byte [esp + 0x11d4], 3
call fcn.004dd151
lea ecx, [esp + 0x20]
mov byte [esp + 0x11d4], 2
call fcn.004dd151
lea ecx, [esp + 0x24]
mov byte [esp + 0x11d4], 1
call fcn.004dd151
lea ecx, [esp + 0x1c]
mov byte [esp + 0x11d4], 0
call fcn.004dd151
lea ecx, [esp + 0x2c]
mov dword [esp + 0x11d4], 0xffffffff
call fcn.004dd151
mov ecx, dword [esp + 0x11cc]
pop edi
mov eax, ebp
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x11cc
ret