Function at 0x406fe0
Capabilities:
Receive data
Receive data on socket

Disassembly:
sub esp, 0x1c
mov eax, dword [esp + 0x2c]
push ebx
push ebp
push esi
mov dword [esp + 0x1c], eax
mov ebp, ecx
push edi
add eax, 0x28
push eax
push 0x64
call fcn.00414730
mov edi, dword [esp + 0x38]
add esp, 8
mov esi, eax
mov ebx, dword [edi + 0xc]
mov eax, dword [edi + 8]
mov dword [esp + 0x30], eax
test ebx, ebx
je 0x407017
lock inc dword [ebx + 8]
mov al, byte [edi + 4]
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0x416f00
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
mov byte [esi + 0x20], al
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
test ebx, ebx
je 0x40706a
lock inc dword [ebx + 8]
mov edx, dword [esi + 0x28]
or ecx, 0xffffffff
test edx, edx
je 0x407087
mov eax, ecx
lock xadd dword [edx + 8], eax
jne 0x407087
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 4]
or ecx, 0xffffffff
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov dword [esi + 0x28], ebx
mov dword [esi + 0x24], eax
mov eax, dword [edx]
mov dword [esi + 0x2c], eax
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x3c]
mov dword [esi + 0x30], eax
mov eax, dword [edx]
mov dword [esi + 0x34], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x38], eax
mov dword [esi + 0x4c], 0
mov dword [esi + 0x50], 0
movups xmm0, xmmword [edx + 8]
movups xmmword [esi + 0x3c], xmm0
movq xmm0, qword [edx + 0x18]
movq qword [esi + 0x4c], xmm0
mov dword [edx + 0x18], 0
mov dword [edx + 0x1c], 0xf
mov byte [edx + 8], 0
mov eax, dword [edx + 0x20]
mov dword [esi + 0x54], eax
mov eax, dword [edx + 0x24]
mov dword [esi + 0x58], eax
mov eax, dword [edx + 0x28]
mov dword [esi + 0x5c], eax
mov eax, dword [edx + 0x2c]
mov dword [esi + 0x60], eax
test ebx, ebx
je 0x40710c
lock xadd dword [ebx + 8], ecx
dec ecx
jne 0x40710c
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
test byte [edi + 4], 0x10
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 4]
mov ecx, dword [edx]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
je 0x40712f
test eax, eax
jne 0x40712f
mov bl, 1
jmp 0x407131
xor bl, bl
cmp dword [edi + 0x14], 0
jne 0x407142
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [edi + 0x14], eax
jmp 0x407154
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [edi + 0x14], eax
je 0x407154
mov dword [edi + 0x14], 0xffffffff
mov eax, dword [ebp + 4]
add eax, 0x18
lock inc dword [eax]
push 0
test bl, bl
je 0x407173
mov ecx, dword [ebp + 4]
push 0
push esi
call fcn.004198e0
jmp 0x4071f8
mov ecx, dword [edi]
cmp ecx, 0xffffffff
jne 0x40718a
mov ecx, dword [ebp + 4]
push 0x2719
push esi
call fcn.004198e0
jmp 0x4071f8
mov eax, dword [esp + 0x3c]
push esi
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x48]
mov dword [esp + 0x48], 0
push eax
push 1
lea eax, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.WS2_32.dll_WSARecv]
mov edi, eax
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
cmp eax, 0x40
jne 0x4071c7
mov eax, 0x2746
jmp 0x4071d4
cmp eax, 0x4d2
mov ecx, 0x274d
cmove eax, ecx
test edi, edi
je 0x4071ef
cmp eax, 0x3e5
je 0x4071ef
push dword [esp + 0x3c]
mov ecx, dword [ebp + 4]
push eax
push esi
call fcn.004198e0
jmp 0x4071f8
mov ecx, dword [ebp + 4]
push esi
call fcn.00419a20
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
call fcn.0041b1b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x10