Function at 0x4052a0
Capabilities:
Get hostname
Resolve dns

Disassembly:
push 0xffffffffffffffff
push 0x413586
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x9c
push ebx
push ebp
push esi
xor ebx, ebx
push edi
lea ecx, [esp + 0x10]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], ebx
call sub.MFC42.DLL_CString::CString_2
lea eax, [esp + 0x2c]
push 0x80
push eax
mov dword [esp + 0xbc], ebx
call sub.WSOCK32.dll_gethostname
test eax, eax
jne 0x40550a
lea ecx, [esp + 0x2c]
push ecx
call sub.WSOCK32.dll_gethostbyname
cmp eax, ebx
mov dword [esp + 0x20], eax
je 0x40550a
mov dword [esp + 0x1c], ebx
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x1c]
cmp dword [edx + eax], ebx
je 0x40550a
push 0x41b3c4
lea ecx, [esp + 0x14]
call fcn.0041295a
mov ecx, dword [esp + 0x20]
xor edi, edi
xor ebp, ebp
xor esi, esi
cmp word [ecx + 0xa], bx
mov dword [esp + 0x28], ebx
jle 0x405454
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_2
cmp esi, ebx
mov byte [esp + 0xb4], 1
jle 0x405363
push 0x41a3f0
lea ecx, [esp + 0x14]
call fcn.00412a62
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
mov edx, dword [eax + ecx]
xor eax, eax
cmp esi, ebx
mov al, byte [edx + esi]
jne 0x4053b6
xor ecx, ecx
cmp eax, 0xa
sete cl
cmp ecx, ebx
mov dword [esp + 0x28], ecx
jne 0x405444
xor ecx, ecx
cmp eax, 0xac
sete cl
xor edx, edx
cmp eax, 0xc0
mov ebp, ecx
sete dl
xor ecx, ecx
cmp eax, 0xa9
sete cl
mov edi, edx
mov dword [esp + 0x18], ecx
jmp 0x4053eb
cmp esi, 1
jne 0x4053eb
cmp ebp, ebx
je 0x4053c9
cmp eax, 0x10
jb 0x4053c9
cmp eax, 0x1f
jbe 0x40542e
xor ebp, ebp
cmp edi, ebx
je 0x4053d6
cmp eax, 0xa8
je 0x405435
mov ecx, dword [esp + 0x18]
xor edi, edi
cmp ecx, ebx
je 0x4053e7
cmp eax, 0xfe
je 0x40543c
mov dword [esp + 0x18], ebx
push eax
lea edx, [esp + 0x18]
push 0x41a3ec
push edx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea eax, [esp + 0x14]
lea ecx, [esp + 0x10]
push eax
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x14]
mov byte [esp + 0xb4], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x20]
inc esi
movsx edx, word [ecx + 0xa]
cmp esi, edx
jge 0x405454
jmp 0x405340
mov ebp, 1
jmp 0x405444
mov edi, 1
jmp 0x405444
mov dword [esp + 0x18], 1
lea ecx, [esp + 0x14]
mov byte [esp + 0xb4], bl
call sub.MFC42.DLL_CString::CString
cmp dword [esp + 0x24], ebx
jne 0x40546e
cmp dword [esp + 0x28], ebx
jne 0x40546e
cmp ebp, ebx
jne 0x40546e
cmp edi, ebx
jne 0x40546e
mov dword [esp + 0x24], ebx
jmp 0x405486
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], 1
cmp eax, ebx
jne 0x4054ac
cmp ebp, ebx
jne 0x4054ac
cmp edi, ebx
jne 0x4054ac
cmp dword [esp + 0x18], ebx
jne 0x4054ac
mov eax, dword [esp + 0x10]
push str.127.0.0.1
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
je 0x4054ac
mov ecx, dword [esp + 0x10]
cmp dword [ecx - 8], ebx
jne 0x4054c0
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
jmp 0x40530a
push 0xa
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::GetBuffer
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0xb4], 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0xbc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
mov eax, 1
jmp 0x405520
lea ecx, [esp + 0x10]
mov dword [esp + 0xb4], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [esp + 0xac]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xa8
ret