Function at 0x4143d0
Capabilities:
Check for time delay via queryperformancecounter
Hash data using fnv
Receive data
Receive data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x45a080]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x38], eax
mov ecx, 0x4690e3
call fcn.00447953
mov ecx, dword [edi + 0x66c]
mov word [edi + 0x610], 0
test ecx, ecx
jne 0x414861
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x20], eax
cmp eax, 0xffffffff
je 0x414444
push 4
lea eax, [ebp - 0x20]
push eax
push 0x1006
push 0xffff
push dword [edi + 8]
call dword [sym.imp.WS2_32.dll_setsockopt]
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [edi + 0x30], eax
cmp esi, 0xffffffff
je 0x41491a
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0x10
push eax
lea eax, [ebp - 0x18]
push eax
push 0
push 0x5dc
lea eax, [edi + 0x34]
push eax
push dword [edi + 8]
call dword [sym.imp.WS2_32.dll_recvfrom]
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [edi + 0x614], eax
call ebx
mov esi, dword [0x4618a8]
mov dword [edi + 0x30], eax
movsd xmm0, qword [esi + 0x1758]
comisd xmm0, xmmword [0x453cd8]
jbe 0x414643
lea esi, [edi + 0x650]
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [esi]
sub ecx, dword [edi + 0x648]
mov edx, dword [esi + 4]
sbb edx, dword [edi + 0x64c]
call fcn.00447a00
mulsd xmm0, qword [0x461ce0]
cvttsd2si eax, xmm0
cmp eax, dword [edi + 0x660]
jge 0x4144d6
inc dword [edi + 0x63c]
jmp 0x41491a
xorps xmm0, xmm0
mov esi, 2
movsd qword [ebp - 0x2c], xmm0
movsd xmm0, qword [0x453d50]
movsd qword [ebp - 0x24], xmm0
movsd qword [ebp - 0x34], xmm0
call fcn.0041c070
movsd xmm2, qword [ebp - 0x34]
xorps xmm3, xmm3
movd xmm0, eax
cvtdq2pd xmm4, xmm0
shr eax, 0x1f
addsd xmm4, qword [eax*8 + 0x453e60]
subsd xmm4, xmm3
mulsd xmm4, xmm2
mulsd xmm2, qword [0x453df0]
addsd xmm4, qword [ebp - 0x2c]
movsd qword [ebp - 0x34], xmm2
movsd qword [ebp - 0x2c], xmm4
sub esi, 1
jne 0x4144f5
divsd xmm4, xmm2
mov esi, dword [0x4618a8]
movsd xmm1, qword [0x465a38]
subsd xmm1, qword [0x465a30]
movsd xmm0, qword [esi + 0x1758]
mulsd xmm1, xmm4
addsd xmm1, qword [0x465a30]
comisd xmm0, xmm1
jbe 0x414643
movsd qword [ebp - 0x3c], xmm3
mov esi, 2
nop dword [eax]
call fcn.0041c070
movsd xmm2, qword [ebp - 0x24]
movd xmm0, eax
cvtdq2pd xmm3, xmm0
shr eax, 0x1f
addsd xmm3, qword [eax*8 + 0x453e60]
subsd xmm3, qword [0x453cd8]
mulsd xmm3, xmm2
mulsd xmm2, qword [0x453df0]
addsd xmm3, qword [ebp - 0x3c]
movsd qword [ebp - 0x24], xmm2
movsd qword [ebp - 0x3c], xmm3
sub esi, 1
jne 0x414580
divsd xmm3, xmm2
movsd xmm0, qword [0x465a38]
subsd xmm0, qword [0x465a30]
mulsd xmm0, xmm3
addsd xmm0, qword [0x465a30]
call fcn.00447a50
mov eax, dword [0x4618a8]
mov eax, dword [eax + 0x1750]
neg eax
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [0x453d08]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [edi + 0x660], eax
lea eax, [edi + 0x648]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm0, xmm0
mov dword [edi + 0x640], esi
movsd qword [edi + 0x658], xmm0
mov dword [edi + 0x63c], 1
jmp 0x41491a
mov ecx, dword [edi + 0x614]
cmp ecx, 0xffffffff
jne 0x414670
call ebx
cmp eax, 0x274c
jne 0x41491a
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0042195a
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp - 0x14]
cmp eax, dword [0x4618c4]
je 0x41465b
test ecx, ecx
je 0x41465b
mov al, byte [edi + 0x34]
inc dword [edi + 0x674]
mov byte [edi + 0x628], al
mov ebx, dword [edi + 0x35]
mov byte [edi + 0x610], 1
mov dword [ebp - 0x20], ebx
test al, al
jns 0x414744
lea eax, [esi + 0x16dc]
mov dword [ebp - 0x30], ebx
push eax
mov dword [ebp - 0x28], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [esi + 0x16b4]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.004128e0
mov eax, dword [eax + 4]
test eax, eax
jne 0x414712
mov eax, dword [esi + 0x16b8]
cmp eax, dword [esi + 0x16b8]
je 0x4147f1
mov eax, dword [eax + 0xc]
mov byte [eax + 0x10], 1
lea eax, [esi + 0x16dc]
inc dword [esi + 0x172c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [0x4618a8]
mov dword [edi + 0x634], ebx
mov cl, byte [edi + 0x628]
mov eax, dword [edi + 0x614]
mov dword [edi + 0x66c], eax
mov dword [edi + 0x668], 0
test cl, 0x10
jne 0x41477d
mov ax, word [edi + 0x39]
movsd xmm0, qword [edi + 0x3b]
mov word [edi + 0x618], ax
movsd qword [edi + 0x620], xmm0
xor eax, eax
test cl, cl
js 0x414840
cmp byte [edi + 0x629], al
je 0x414834
inc dword [esi + 0x1720]
mov eax, dword [edi + 0x638]
inc eax
sub ebx, eax
mov dword [ebp - 0x28], eax
test ebx, ebx
jle 0x414831
cmp byte [esi + 0x16a0], 0
je 0x414831
push ebx
push eax
push 0x40d
push dword [0x461ce8]
mov dword [edi + 0x62c], ebx
mov dword [edi + 0x630], eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [0x4618a8]
cmp ebx, 0x64
jg 0x41481e
push ebx
push dword [ebp - 0x28]
lea ecx, [ecx + 0x16a8]
call fcn.004118d0
jmp 0x414831
mov eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [edi + 0x614]
mov dword [edi + 0x634], 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0042195a
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ecx + 0x1b8]
add ecx, 0x1b8
push str.FULLIMAGE
call dword [eax]
mov ebx, dword [ebp - 0x20]
mov eax, dword [edi + 0x668]
mov dword [edi + 0x638], ebx
test byte [edi + 0x628], 0x10
mov ecx, dword [edi + 0x66c]
je 0x4148a5
add eax, 7
add ecx, 0xfffffff9
mov dword [edi + 0x668], eax
mov dword [edi + 0x66c], ecx
mov ebx, dword [edi + 0x668]
lea edx, [edi + 0x34]
add edx, ebx
movzx eax, byte [edx + 2]
lea esi, [eax + 4]
cmp eax, 0xfb
ja 0x414906
cmp esi, ecx
jg 0x414906
sub ecx, esi
lea eax, [ebx + esi]
mov dword [edi + 0x66c], ecx
mov dword [edi + 0x668], eax
jne 0x4148b3
mov dword [edi + 0x668], 0
jmp 0x4148b7
add eax, 0xf
add ecx, 0xfffffff1
mov dword [edi + 0x668], eax
jmp 0x41485b
test ecx, ecx
js 0x414906
cmp esi, dword [ebp + 0xc]
jle 0x4148d4
mov eax, 0xfffffffe
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0042195a
mov esp, ebp
pop ebp
ret 0xc
push esi
push edx
push dword [ebp - 0x38]
call fcn.00423480
add esp, 0xc
cmp dword [edi + 0x66c], 0
jne 0x4148f1
mov byte [edi + 0x611], 1
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0042195a
mov esp, ebp
pop ebp
ret 0xc
mov dword [edi + 0x66c], 0
mov dword [edi + 0x668], 0
mov ecx, dword [ebp - 8]
or eax, 0xffffffff
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042195a
mov esp, ebp
pop ebp
ret 0xc