Function at 0x4856f0
Capabilities:
Get hostname
Get local ipv4 addresses
Get socket information
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov eax, dword [0x4ff94c]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x1b
call fcn.00490110
push 0x6e
call fcn.00490110
push 0x76
call fcn.00490110
add esp, 0xc
cmp byte [0x50e368], 0
mov eax, 0x78
je 0x48572e
mov eax, 0x79
cmp byte [0x4f84c9], 0
je 0x48573a
or eax, 2
cmp dword [0x512120], 0
je 0x485746
or eax, 4
cmp word [0x50e5f0], 0
jne 0x485755
or eax, 0x80
push esi
push edi
mov edi, dword [sym.imp.MSVCR100.dll_sprintf]
test eax, eax
je 0x48577f
push eax
lea eax, [ebp - 0x84]
push 0x4e58fc
push eax
call edi
lea ecx, [ebp - 0x84]
push ecx
call fcn.00490170
add esp, 0x10
mov al, byte [str.Pronto_Xi_Thin_Client_Version_7.2v3.0]
mov esi, str.Pronto_Xi_Thin_Client_Version_7.2v3.0
test al, al
je 0x4857a0
lea ecx, [ecx]
cmp al, 0x30
jl 0x485798
cmp al, 0x39
jle 0x4857a0
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x485790
movzx eax, byte [esi]
cmp al, 0x30
jl 0x4857ab
cmp al, 0x39
jle 0x4857af
cmp al, 0x2e
jne 0x4857bb
push eax
call fcn.00490110
add esp, 4
inc esi
jmp 0x4857a0
push 0x56
call fcn.00490110
add esp, 4
cmp byte [esi], 0x76
jne 0x4857f2
movzx eax, byte [esi + 1]
inc esi
cmp al, 0x30
jl 0x4857e8
cmp al, 0x39
jg 0x4857e8
push eax
call fcn.00490110
mov al, byte [esi + 1]
inc esi
add esp, 4
cmp al, 0x30
jge 0x4857d3
push 0x53
call fcn.00490110
add esp, 4
mov eax, dword [0x4f84b4]
mov ecx, dword [0x4f84b0]
cmp eax, 0x50
jl 0x485807
cmp ecx, 0x18
jge 0x485826
push ecx
push eax
lea edx, [ebp - 0x84]
push str._dC_dB
push edx
call edi
lea eax, [ebp - 0x84]
push eax
call fcn.00490170
add esp, 0x14
cmp byte [ebp + 8], 0
je 0x4859c1
mov eax, dword [0x4fac14]
cmp eax, 0x3e7
je 0x48584e
cmp eax, 0x3e6
je 0x48584e
cmp eax, 0x3e5
jne 0x4859c1
call dword [sym.imp.KERNEL32.dll_GetVersion]
test eax, eax
js 0x4858f1
lea ecx, [ebp - 0x19c]
push ecx
push 0x20018
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x4858f1
mov ecx, dword [ebp - 0x19c]
lea edx, [ebp - 0x1a4]
push edx
push 4
lea eax, [ebp - 0x198]
push eax
push 0xc
push ecx
mov dword [ebp - 0x198], 0
call dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
je 0x4858e4
mov eax, dword [ebp - 0x198]
test eax, eax
je 0x4858e4
push eax
lea edx, [ebp - 0x84]
push 0x4e58f0
push edx
call edi
movzx eax, byte [ebp - 0x84]
add esp, 0xc
lea esi, [ebp - 0x84]
test al, al
je 0x4858e4
push eax
call fcn.00490110
mov al, byte [esi + 1]
inc esi
add esp, 4
test al, al
jne 0x4858d3
mov eax, dword [ebp - 0x19c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x4fac14], 0x3e5
mov edi, dword [sym.imp.WSOCK32.dll_gethostname]
jne 0x485937
push 0xff
lea ecx, [ebp - 0x184]
push ecx
call edi
test eax, eax
jne 0x48597d
lea edx, [ebp - 0x184]
push edx
call dword [sym.imp.WSOCK32.dll_gethostbyname]
test eax, eax
je 0x48597d
cmp word [eax + 8], 2
jne 0x48597d
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
mov eax, dword [ecx]
push eax
jmp 0x485971
mov ecx, dword [0x517900]
lea edx, [ebp - 0x1a0]
push edx
lea eax, [ebp - 0x194]
push eax
push ecx
mov dword [ebp - 0x1a0], 0x10
call dword [sym.imp.WSOCK32.dll_getsockname]
test eax, eax
jne 0x48597d
cmp word [ebp - 0x194], 2
jne 0x48597d
mov edx, dword [ebp - 0x190]
push edx
call dword [sym.imp.WSOCK32.dll_inet_ntoa]
mov esi, eax
test esi, esi
jne 0x485995
push 0xff
lea eax, [ebp - 0x184]
push eax
call edi
test eax, eax
jne 0x4859c1
lea esi, [ebp - 0x184]
cmp byte [esi], 0
je 0x4859c1
push 0x3b
call fcn.00490110
movzx eax, byte [esi]
add esp, 4
test al, al
je 0x4859c1
jmp 0x4859b0
push eax
call fcn.00490110
mov al, byte [esi + 1]
inc esi
add esp, 4
test al, al
jne 0x4859b0
push 0xd
call fcn.00490110
add esp, 4
call fcn.0048e840
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004b7f56
mov esp, ebp
pop ebp
ret