Function at 0x10001470
Capabilities:
Act as tcp client
Check for time delay via queryperformancecounter
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create thread
Create udp socket
Resolve dns
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x10020168]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push esi
mov esi, ecx
mov edx, dword [esi]
mov dword [ebp - 0x34], eax
mov eax, dword [edx]
push edi
mov edi, dword [ebp + 8]
call eax
mov ecx, dword [esi + 0xc8]
push ecx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push 6
push 1
push 2
mov dword [esi + 0xcc], 0
call dword [sym.imp.WS2_32.dll_socket]
mov dword [esi + 0x2e8], eax
cmp eax, 0xffffffff
jne 0x100014d5
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000979f
mov esp, ebp
pop ebp
ret 0xc
push ebx
push 0
push 0
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push edi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x24], eax
inc eax
push eax
call fcn.10009d27
mov edx, dword [ebp - 0x24]
add esp, 4
push 0
push 0
push edx
mov ebx, eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push edi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov eax, dword [ebp - 0x24]
push ebx
mov byte [ebx + eax], 0
call dword [sym.imp.WS2_32.dll_gethostbyname]
push ebx
mov edi, eax
call fcn.100098cd
add esp, 4
test edi, edi
je 0x10001667
mov edx, dword [ebp + 0xc]
mov ecx, 2
push edx
mov word [ebp - 0x20], cx
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x1e], ax
mov eax, dword [edi + 0xc]
mov ecx, dword [eax]
mov edx, dword [ecx]
lea edi, [esi + 0xb8]
push edi
mov dword [ebp - 0x1c], edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [esi + 0x2e8]
push 0x10
lea eax, [ebp - 0x20]
push eax
push ecx
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x10001667
lea ebx, [esi + 0xc0]
push ebx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [ebx]
sub edx, dword [edi]
mov eax, dword [ebx + 4]
sbb eax, dword [edi + 4]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], eax
fild qword [ebp - 0x2c]
fild qword [esi + 0xb0]
mov edx, dword [esi + 0x2e8]
push 4
lea ecx, [ebp - 0x28]
fdiv qword [0x1001df98]
push ecx
push 8
push 0xffff
mov ebx, 1
push edx
mov dword [ebp - 0x28], ebx
fdivp st(1)
fstp qword [esi + 0xa8]
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jne 0x10001614
mov edx, dword [esi + 0x2e8]
push eax
push eax
lea eax, [ebp - 0x38]
push eax
push 0
push 0
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 0x98000004
push edx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 0x2bf20
mov dword [ebp - 8], 0x1388
call dword [sym.imp.WS2_32.dll_WSAIoctl]
mov eax, dword [ebp - 0x34]
push eax
lea edi, [esi + 0xd4]
push 0xff
push edi
call fcn.10009f0c
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 2]
push eax
push edi
push edi
mov dword [esi + 0x2d4], eax
call fcn.1000ad30
mov eax, dword [esi + 0x2d4]
lea ecx, [eax + 4]
push eax
mov dword [esi + 0x2d8], ecx
call fcn.10009d27
add esp, 0x10
mov dword [esi + 0x2e0], eax
test eax, eax
jne 0x1000167c
pop ebx
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000979f
mov esp, ebp
pop ebp
ret 0xc
lea edx, [ebp - 0x30]
push edx
push 0
push esi
push 0x100016c0
push 0
push 0
mov dword [esi + 0xcc], ebx
mov dword [ebp - 0x30], 0
call fcn.10009e6c
mov ecx, dword [ebp - 4]
add esp, 0x18
mov dword [esi + 0x2e4], eax
mov al, bl
pop ebx
pop edi
xor ecx, ebp
pop esi
call fcn.1000979f
mov esp, ebp
pop ebp
ret 0xc