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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
add eax, 0x20
mov edi, ecx
push eax
push 0x5c
mov dword [ebp - 4], eax
call fcn.00449da0
mov ebx, dword [ebp + 8]
add esp, 8
mov esi, eax
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x452002
lock inc dword [ecx + 8]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
lea edx, [ecx + 8]
mov dword [ebp + 8], eax
mov al, byte [ebx + 4]
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0x4537f0
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 ecx, ecx
je 0x45205d
lock inc dword [edx]
mov eax, dword [ebp + 8]
mov dword [esi + 0x24], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x28], ecx
mov eax, dword [eax]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [esi + 0x30], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov dword [esi + 0x34], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 4]
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x40], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x44], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x14]
mov dword [esi + 0x48], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x18]
mov dword [esi + 0x4c], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x1c]
mov dword [esi + 0x50], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov dword [esi + 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [esi + 0x58], eax
test ecx, ecx
je 0x4520e1
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4520e1
mov eax, dword [ecx]
call dword [eax + 4]
test byte [ebx + 4], 0x10
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [edx]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], eax
je 0x452100
test eax, eax
jne 0x452100
mov cl, 1
jmp 0x452102
xor cl, cl
mov eax, dword [edi + 4]
add eax, 0x18
lock inc dword [eax]
push 0
test cl, cl
je 0x452125
mov ecx, dword [edi + 4]
push 0
push esi
call fcn.0044ec30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebx]
cmp ecx, 0xffffffff
jne 0x452143
mov ecx, dword [edi + 4]
push 0x2719
push esi
call fcn.0044ec30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0x10]
push esi
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x14]
mov dword [ebp + 0x14], 0
push eax
push 1
lea eax, [ebp - 0x14]
push eax
push ecx
call dword [sym.imp.WS2_32.dll_WSARecv]
mov ebx, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x40
jne 0x45217a
mov eax, 0x2746
jmp 0x452187
cmp eax, 0x4d2
mov ecx, 0x274d
cmove eax, ecx
test ebx, ebx
je 0x4521a8
cmp eax, 0x3e5
je 0x4521a8
push dword [ebp + 0x14]
mov ecx, dword [edi + 4]
push eax
push esi
call fcn.0044ec30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [edi + 4]
push esi
call fcn.0044ecb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10