Function at 0x1001524c
Capabilities:
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x348
push ebx
mov ebx, dword [0x10028990]
push esi
push edi
push 0x12c
mov edi, eax
xor esi, esi
lea eax, [ebp - 0x144]
push esi
push eax
mov dword [ebp - 8], ebx
call sub.msvcrt.dll_memset
mov ecx, dword [ebp + 8]
mov al, byte [ecx + 0x2a]
add esp, 0xc
mov byte [ebp - 0x144], 5
test al, al
jne 0x100152ef
cmp byte [edi], 5
je 0x10015298
or eax, 0xffffffff
jmp 0x100154c6
movzx ecx, byte [edi + 1]
xor eax, eax
cmp ecx, esi
jle 0x100152b8
mov edx, dword [ebp + 0x10]
add edx, 0xfffffffe
cmp eax, edx
jge 0x100152b8
cmp byte [eax + edi + 2], 2
je 0x100152df
inc eax
cmp eax, ecx
jl 0x100152a8
mov byte [ebp - 0x143], 0xff
mov esi, ebx
push 2
lea eax, [ebp - 0x144]
push eax
mov eax, dword [ebp + 8]
push dword [eax + 6]
push 3
call fcn.10014dc4
add esp, 0x10
jmp 0x100154c4
mov eax, dword [ebp + 8]
mov byte [ebp - 0x143], 2
mov byte [eax + 0x2a], 1
jmp 0x100152bf
cmp al, 1
jne 0x100153a7
movzx esi, byte [edi + 1]
lea eax, [esi + 4]
cmp dword [ebp + 0x10], eax
jge 0x1001530b
push 0xfffffffffffffffe
pop eax
jmp 0x100154c6
lea ecx, [ebp - 0x344]
push esi
lea eax, [edi + 2]
push ecx
call fcn.1000da17
lea eax, [esi + edi]
movzx ebx, byte [eax + 2]
pop ecx
pop ecx
lea ecx, [ebx + esi + 3]
mov byte [ebp + esi - 0x344], 0
cmp dword [ebp + 0x10], ecx
jge 0x10015339
push 0xfffffffffffffffd
jmp 0x10015305
lea ecx, [ebp - 0x244]
push ebx
add eax, 3
push ecx
call fcn.1000da17
mov al, byte [edi]
mov edi, dword [ebp + 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
pop ecx
mov byte [ebp - 0x144], al
pop ecx
lea eax, [edi + 0x45]
push eax
lea eax, [ebp - 0x344]
push eax
mov byte [ebp + ebx - 0x244], 0
call esi
test eax, eax
jne 0x10015398
add edi, 0x145
push edi
lea eax, [ebp - 0x244]
push eax
call esi
test eax, eax
jne 0x10015398
mov byte [ebp - 0x143], al
mov eax, dword [ebp + 8]
mov byte [eax + 0x2a], 2
jmp 0x1001539f
mov byte [ebp - 0x143], 1
mov esi, dword [ebp - 8]
jmp 0x100152c1
cmp al, 2
jne 0x100154c4
cmp byte [edi + 1], 1
jne 0x100154b8
cmp byte [edi], 5
mov al, byte [edi + 3]
mov dword [ebp - 0xc], esi
jne 0x10015290
cmp al, 1
jne 0x100153d8
mov eax, dword [edi + 4]
mov dword [ebp - 0x10], eax
movzx eax, word [edi + 8]
jmp 0x10015426
cmp al, 3
jne 0x10015473
movzx ebx, byte [edi + 4]
lea ecx, [ebp - 0x244]
push ebx
lea eax, [edi + 5]
push ecx
call fcn.1000da17
pop ecx
pop ecx
lea eax, [ebp - 0x244]
push eax
mov byte [ebp + ebx - 0x244], 0
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
je 0x10015469
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10015469
cmp dword [eax], esi
je 0x10015469
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
movzx eax, word [ebx + edi + 5]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx esi, ax
mov eax, dword [ebp + 0xc]
add eax, 0x45
mov dx, word [eax]
mov ecx, 0x100259d0
cmp dx, word [ecx]
je 0x1001547b
cmp si, 0x19
je 0x10015465
mov ecx, 0x24b
cmp si, cx
jne 0x1001547b
push 4
push str.pups
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNA]
test eax, eax
je 0x1001547b
push 2
jmp 0x1001546b
push 4
push dword [ebp + 8]
mov esi, dword [ebp - 8]
jmp 0x100154bd
cmp al, 4
jne 0x10015430
push 8
jmp 0x100154ba
lea eax, [ebp - 0xc]
push eax
push 0
push esi
push dword [ebp - 0x10]
call fcn.10013227
mov edi, dword [ebp + 8]
add esp, 0x10
mov dword [edi + 0xa], eax
test eax, eax
jns 0x100154a2
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push 5
push edi
jmp 0x1001546e
cmp dword [ebp - 0xc], 1
jne 0x100154ae
mov byte [edi + 0x20], 1
jmp 0x100154c4
mov esi, dword [ebp - 8]
call fcn.100154cb
jmp 0x100154c4
push 7
mov esi, ebx
push ecx
call fcn.1001552a
pop ecx
pop ecx
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret