Function at 0x1000251f
Capabilities:
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x348
push ebx
mov ebx, dword [0x1002bbac]
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 edx, dword [ebp + 8]
mov al, byte [edx + 0x2a]
add esp, 0xc
mov byte [ebp - 0x144], 5
test al, al
jne 0x100025bc
cmp byte [edi], 5
je 0x1000256b
or eax, 0xffffffff
jmp 0x100027aa
movzx ecx, byte [edi + 1]
xor eax, eax
cmp ecx, esi
jle 0x1000258b
mov esi, dword [ebp + 0x10]
add esi, 0xfffffffe
cmp eax, esi
jge 0x1000258b
cmp byte [eax + edi + 2], 2
je 0x100025af
inc eax
cmp eax, ecx
jl 0x1000257b
mov byte [ebp - 0x143], 0xff
push 2
lea eax, [ebp - 0x144]
push eax
push dword [edx + 6]
mov esi, ebx
push 3
call fcn.10001286
add esp, 0x10
jmp 0x100027a8
mov byte [ebp - 0x143], 2
mov byte [edx + 0x2a], 1
jmp 0x10002592
cmp al, 1
jne 0x10002683
movzx esi, byte [edi + 1]
lea eax, [esi + 4]
cmp dword [ebp + 0x10], eax
jge 0x100025d8
push 0xfffffffffffffffe
pop eax
jmp 0x100027aa
lea ecx, [ebp - 0x344]
push esi
lea eax, [edi + 2]
push ecx
call fcn.10010b02
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 0x10002606
push 0xfffffffffffffffd
jmp 0x100025d2
lea ecx, [ebp - 0x244]
push ebx
add eax, 3
push ecx
call fcn.10010b02
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 0x10002665
add edi, 0x145
push edi
lea eax, [ebp - 0x244]
push eax
call esi
test eax, eax
jne 0x10002665
mov byte [ebp - 0x143], al
mov eax, dword [ebp + 8]
mov byte [eax + 0x2a], 2
jmp 0x1000266c
mov byte [ebp - 0x143], 1
mov esi, dword [ebp - 8]
push 2
lea eax, [ebp - 0x144]
push eax
mov eax, dword [ebp + 8]
push dword [eax + 6]
jmp 0x100025a0
cmp al, 2
jne 0x100027a8
cmp byte [edi + 1], 1
jne 0x1000279c
cmp byte [edi], 5
mov al, byte [edi + 3]
mov dword [ebp - 0xc], esi
jne 0x10002563
cmp al, 1
jne 0x100026b4
mov eax, dword [edi + 4]
mov dword [ebp - 0x10], eax
movzx eax, word [edi + 8]
jmp 0x10002702
cmp al, 3
jne 0x10002757
movzx ebx, byte [edi + 4]
lea ecx, [ebp - 0x244]
push ebx
lea eax, [edi + 5]
push ecx
call fcn.10010b02
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 0x1000274d
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1000274d
cmp dword [eax], esi
je 0x1000274d
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 edi, dword [ebp + 0xc]
push 2
add edi, 0x45
push 0x10020bd0
push edi
call dword [sym.imp.msvcrt.dll_memcmp]
add esp, 0xc
test eax, eax
je 0x1000275f
cmp si, 0x19
je 0x10002749
mov eax, 0x24b
cmp si, ax
jne 0x1000275f
push 4
push str.pups
push edi
call dword [sym.imp.SHLWAPI.dll_StrCmpNA]
test eax, eax
je 0x1000275f
push 2
jmp 0x1000274f
push 4
push dword [ebp + 8]
mov esi, dword [ebp - 8]
jmp 0x100027a1
cmp al, 4
jne 0x1000270c
push 8
jmp 0x1000279e
lea eax, [ebp - 0xc]
push eax
push 0
push esi
push dword [ebp - 0x10]
call fcn.10011d8c
mov edi, dword [ebp + 8]
add esp, 0x10
mov dword [edi + 0xa], eax
test eax, eax
jns 0x10002786
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push 5
push edi
jmp 0x10002752
cmp dword [ebp - 0xc], 1
jne 0x10002792
mov byte [edi + 0x20], 1
jmp 0x100027a8
mov esi, dword [ebp - 8]
call fcn.100027af
jmp 0x100027a8
push 7
mov esi, ebx
push edx
call fcn.1000280e
pop ecx
pop ecx
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret