Function at 0x424c67
Capabilities:
Check for time delay via gettickcount
Check for time delay via queryperformancecounter
Create raw socket
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x178
mov eax, dword [0x448008]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0x18]
mov ebx, edx
push edi
push 1
push 3
push 2
mov dword [ebp - 0x140], eax
mov edi, 0x3e8
pop eax
push eax
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x160], esi
mov dword [ebp - 0x148], edi
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0x138], eax
cmp eax, 0xffffffff
jne 0x424cc8
test esi, esi
je 0x424cc1
or dword [esi], eax
xor eax, eax
jmp 0x424fec
test esi, esi
je 0x424ccf
and dword [esi], 0
lea eax, [ebp - 0x174]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov eax, dword [ebp - 0x148]
test eax, eax
cmove eax, edi
mov dword [ebp - 0x148], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x2710
lea edi, [ebp - 0x11c]
mov dword [ebp - 0x158], eax
xor eax, eax
stosd dword es:[edi], eax
push 2
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
pop eax
mov word [ebp - 0x11c], ax
mov eax, dword [ebp - 0x144]
push 4
mov dword [ebp - 0x118], eax
lea eax, [ebp - 0x148]
push eax
push 0x1006
push 0xffff
push dword [ebp - 0x138]
call dword [sym.imp.WS2_32.dll_setsockopt]
mov edi, dword [ebp - 0x140]
xor eax, eax
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x13c], eax
mov dword [edi], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, dword [ebp - 0x158]
jae 0x424fb9
mov eax, dword [edi]
inc eax
push 4
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x15c]
push eax
push 4
push 0
push dword [ebp - 0x138]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x424fab
push 7
pop ecx
xor eax, eax
mov dword [ebp - 0x14c], 0x10
lea edi, [ebp - 0x10c]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x138]
lea ecx, [ebp - 0x10c]
mov eax, dword [0x4f8b24]
push 0xe
mov word [ebp - 0x108], di
pop edi
mov word [ebp - 0x106], ax
inc eax
push 2
mov byte [ebp - 0x10c], 8
xor edx, edx
mov dword [0x4f8b24], eax
pop esi
movzx eax, word [ecx]
add ecx, esi
add edx, eax
sub edi, 1
jne 0x424ddd
mov esi, dword [ebp - 0x160]
mov ecx, edx
mov edi, dword [ebp - 0x138]
movzx eax, dx
shr ecx, 0x10
add ecx, eax
mov eax, ecx
shr eax, 0x10
add eax, ecx
not eax
mov word [ebp - 0x10a], ax
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [ebp - 0x14c]
lea eax, [ebp - 0x11c]
push eax
push 0
push 0x1c
lea eax, [ebp - 0x10c]
push eax
push edi
call dword [sym.imp.WS2_32.dll_sendto]
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x12c]
push eax
push 0
push 0x100
lea eax, [ebp - 0x10c]
push eax
push edi
call dword [sym.imp.WS2_32.dll_recvfrom]
mov dword [ebp - 0x144], eax
lea eax, [ebp - 0x154]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movzx ecx, byte [ebp - 0x10c]
and ecx, 0xf
lea eax, [ecx*4 + 0x1c]
cmp dword [ebp - 0x144], eax
jl 0x424f46
mov al, byte [ebp + ecx*4 - 0x10c]
mov edx, dword [ebp - 0x100]
mov byte [ebp - 0x12d], al
cmp al, 0xb
je 0x424ec6
test al, al
jne 0x424f46
cmp dword [ebp - 0x118], edx
jne 0x424f46
cmp word [ebp - 0x108], di
jne 0x424f46
mov ecx, dword [ebp - 0x154]
sub ecx, dword [ebp - 0x16c]
mov eax, dword [ebp - 0x150]
sbb eax, dword [ebp - 0x168]
push 0
push 0x2710
push eax
push ecx
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x150], eax
mov dword [ebx], edx
call fcn.00439f00
push dword [ebp - 0x170]
push dword [ebp - 0x174]
push edx
push eax
call fcn.0043c0c0
mov edi, dword [ebp - 0x140]
xor edx, edx
mov word [ebx + 4], ax
mov eax, dword [ebp - 0x134]
mov byte [ebx + 6], al
mov byte [ebx + 7], dl
add ebx, 8
inc dword [edi]
cmp dword [edi], 1
mov dword [ebp - 0x134], edx
mov dword [ebp - 0x13c], edx
je 0x424fa0
cmp byte [ebp - 0x12d], 0xb
jne 0x424fc3
jmp 0x424fa0
cmp dword [ebp - 0x144], 0
jge 0x424f55
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov eax, dword [ebp - 0x134]
push 2
inc eax
pop ecx
mov dword [ebp - 0x134], eax
cmp eax, ecx
jae 0x424f71
cmp dword [ebp - 0x13c], ecx
jb 0x424f9a
mov edi, dword [ebp - 0x140]
xor edx, edx
xor ecx, ecx
mov dword [ebx], edx
mov word [ebx + 4], cx
mov byte [ebx + 6], al
mov byte [ebx + 7], dl
add ebx, 8
inc dword [edi]
inc dword [ebp - 0x13c]
mov dword [ebp - 0x134], edx
jmp 0x424fa0
mov edi, dword [ebp - 0x140]
cmp dword [edi], 0x20
jb 0x424d55
jmp 0x424fc3
test esi, esi
je 0x424fc3
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esi], eax
jmp 0x424fc3
test esi, esi
je 0x424fc3
mov dword [esi], 0xfffffffe
push dword [ebp - 0x138]
call dword [sym.imp.WS2_32.dll_closesocket]
mov ecx, dword [edi]
imul eax, ecx, 0xfffffff8
add ebx, eax
test ecx, ecx
je 0x424fea
mov ecx, dword [edi]
cmp dword [ebx + ecx*8 - 8], 0
jne 0x424fea
sub ecx, 1
mov dword [edi], ecx
jne 0x424fda
mov eax, dword [edi]
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042a623
mov esp, ebp
pop ebp
ret