Function at 0x10001f10
Capabilities:
Get socket status
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
sub esp, 0x478
push ebx
push esi
mov esi, ecx
push edi
push 0
lea eax, [esp + 0x10]
mov ecx, dword [esi + 0xa8]
push 4
mov bl, 2
push eax
push ecx
mov dword [esp + 0x20], 3
mov dword [esp + 0x24], 0
mov byte [esp + 0x1c], 5
mov byte [esp + 0x1d], bl
mov byte [esp + 0x1e], 0
mov byte [esp + 0x1f], bl
call dword [sym.imp.WS2_32.dll_send]
mov ecx, 0x96
xor eax, eax
lea edi, [esp + 0x22c]
mov edx, dword [esi + 0xa8]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x10]
lea ecx, [esp + 0x24]
push eax
push 0
push 0
push ecx
push 0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], 1
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jg 0x10001fac
mov edx, dword [esi + 0xa8]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
pop edi
pop esi
xor al, al
pop ebx
add esp, 0x478
ret 8
mov ecx, dword [esi + 0xa8]
push 0
lea eax, [esp + 0x230]
push 0x258
push eax
push ecx
call dword [sym.imp.WS2_32.dll_recv]
cmp byte [esp + 0x22c], 5
jne 0x100021f9
mov al, byte [esp + 0x22d]
test al, al
je 0x10001feb
cmp al, bl
jne 0x100021f9
jmp 0x10001ff3
cmp al, bl
jne 0x10002105
mov edi, 0x100218cc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x10002105
mov edi, 0x100218cc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x100219cc
mov ebx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ebp
mov ebp, ecx
mov ecx, 0x40
lea edi, [esp + 0x12c]
lea edx, [esp + 0x12e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x100218cc
push edx
mov byte [esp + 0x134], 5
mov byte [esp + 0x135], bl
call edi
lea eax, [esp + ebx + 0x12f]
push 0x100219cc
push eax
mov dword [esp + ebx + 0x136], ebp
call edi
mov eax, dword [esi + 0xa8]
lea ecx, [ebx + ebp + 3]
push 0
lea edx, [esp + 0x130]
push ecx
push edx
push eax
call dword [sym.imp.WS2_32.dll_send]
lea edx, [esp + 0x14]
xor eax, eax
mov ecx, 0x96
lea edi, [esp + 0x230]
push edx
push eax
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0xa8]
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0x38], ecx
push eax
push 0
mov dword [esp + 0x3c], 1
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
pop ebp
jle 0x100021f9
mov eax, dword [esi + 0xa8]
push 0
lea edx, [esp + 0x230]
push 0x258
push edx
push eax
call dword [sym.imp.WS2_32.dll_recv]
cmp byte [esp + 0x22c], 5
jne 0x100021f9
mov al, byte [esp + 0x22d]
test al, al
jne 0x100021f9
mov edx, dword [esp + 0x488]
push edx
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
je 0x10002206
mov byte [esp + 0x18], 5
mov byte [esp + 0x19], 1
mov byte [esp + 0x1a], 0
mov byte [esp + 0x1b], 1
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
mov eax, dword [esp + 0x48c]
push eax
mov edx, dword [ecx]
mov dword [esp + 0x20], edx
call dword [sym.imp.WS2_32.dll_ntohs]
mov edx, dword [esi + 0xa8]
push 0
lea ecx, [esp + 0x1c]
push 0xa
push ecx
push edx
mov word [esp + 0x30], ax
call dword [sym.imp.WS2_32.dll_send]
mov ecx, 0x96
xor eax, eax
lea edi, [esp + 0x22c]
lea edx, [esp + 0x24]
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0xa8]
lea ecx, [esp + 0x10]
push ecx
push 0
push 0
push edx
push 0
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], 1
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jg 0x100021ba
mov eax, dword [esi + 0xa8]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
pop edi
pop esi
xor al, al
pop ebx
add esp, 0x478
ret 8
mov edx, dword [esi + 0xa8]
push 0
lea ecx, [esp + 0x230]
push 0x258
push ecx
push edx
call dword [sym.imp.WS2_32.dll_recv]
cmp byte [esp + 0x22c], 5
jne 0x1000219f
mov al, byte [esp + 0x22d]
test al, al
jne 0x1000219f
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x478
ret 8
mov ecx, dword [esi + 0xa8]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
pop edi
pop esi
xor al, al
pop ebx
add esp, 0x478
ret 8