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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, edx
xor ebx, ebx
mov esi, ecx
mov dword [ebp - 4], esi
mov edx, dword [edi + 0x2c]
and edx, 0xfffeffff
mov dword [edi + 0x2c], edx
cmp dword [eax + 0x20], ebx
jge 0x52747b
mov eax, edx
and eax, 0x41000
cmp eax, 0x40000
je 0x52766a
and edx, 0xffffefff
sub dword [edi + 0x40], 1
mov dword [edi + 0x2c], edx
mov ecx, edx
jne 0x527432
mov eax, edx
and al, 5
cmp al, 4
jne 0x527432
and ecx, 0xfffffffb
mov dword [edi + 0x2c], ecx
test cl, 8
je 0x527432
mov eax, dword [edi + 4]
dec dword [eax + 4]
mov ecx, dword [edi + 0x2c]
test ecx, 0x40000
je 0x52743e
mov eax, ebx
jmp 0x52744a
mov ebx, dword [edi + 0x98]
mov eax, dword [edi + 0x9c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], ebx
mov ecx, dword [eax + 0x20]
call fcn.0052bfb7
cmp eax, 0x2745
jne 0x527463
inc eax
lea ecx, [ebp - 0x14]
push ecx
mov ecx, eax
call fcn.0043752f
push eax
push edi
call dword [edi + 0x38]
add esp, 0xc
jmp 0x52766a
test edx, 0x40000
jne 0x5274ae
cmp dword [eax + 0x24], ebx
jbe 0x52754d
lea esi, [edi + 0x98]
push esi
push dword [eax + 0x24]
push edi
call dword [edi + 0x38]
mov eax, dword [ebp + 8]
add esp, 0xc
mov eax, dword [eax + 0x24]
cmp eax, dword [esi]
jb 0x52764f
mov edx, dword [edi + 0x2c]
push 0x20
pop esi
test edx, 0x1000
je 0x52764f
mov eax, esi
dec esi
test eax, eax
jle 0x52764f
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], ebx
push eax
push 0x10000
push edi
mov dword [ebp - 0x10], ebx
call dword [edi + 0x34]
add esp, 0xc
cmp dword [ebp - 0x10], ebx
je 0x52763f
cmp dword [ebp - 0x14], ebx
je 0x52763f
push ebx
push ebx
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], ebx
push eax
lea eax, [ebp - 8]
push eax
push 1
lea eax, [ebp - 0x14]
push eax
push dword [edi + 0x90]
call dword [sym.imp.WS2_32.dll_WSARecv]
cmp eax, 0xffffffff
je 0x5275e2
cmp dword [ebp - 8], ebx
jbe 0x5275a8
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 8]
push edi
call dword [edi + 0x38]
mov eax, dword [ebp - 8]
add esp, 0xc
cmp eax, dword [ebp - 0x14]
jb 0x52764f
test dword [edi + 0x2c], 0x1000
jne 0x5274bd
jmp 0x52764f
test edx, 0x1000
je 0x527581
mov ecx, edx
and ecx, 0xffffefff
sub dword [edi + 0x40], 1
mov edx, ecx
jne 0x527581
mov eax, ecx
and al, 5
cmp al, 4
jne 0x527581
and edx, 0xfffffffb
mov dword [edi + 0x2c], edx
test dl, 8
je 0x527581
mov eax, dword [edi + 4]
dec dword [eax + 4]
mov edx, dword [edi + 0x2c]
lea eax, [edi + 0x98]
mov dword [ebp - 0x10], ebx
push eax
and edx, 0xffffbfff
mov dword [ebp - 0x14], ebx
push 0xfffff001
push edi
mov dword [edi + 0x2c], edx
call dword [edi + 0x38]
add esp, 0xc
jmp 0x527652
mov ecx, dword [edi + 0x2c]
mov eax, ecx
and eax, 0xffffafff
sub dword [edi + 0x40], 1
mov dword [edi + 0x2c], eax
jne 0x5275d7
mov eax, ecx
and al, 5
cmp al, 4
jne 0x5275d7
and ecx, 0xffffaffb
mov dword [edi + 0x2c], ecx
test cl, 8
je 0x5275d7
mov eax, dword [edi + 4]
dec dword [eax + 4]
lea eax, [ebp - 0x14]
push eax
push 0xfffff001
jmp 0x527648
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
cmp edx, 0x2733
jne 0x5275f9
lea eax, [ebp - 0x14]
push eax
push ebx
jmp 0x527648
mov ecx, dword [edi + 0x2c]
mov eax, ecx
and eax, 0xffffefff
sub dword [edi + 0x40], 1
mov dword [edi + 0x2c], eax
jne 0x527628
mov eax, ecx
and al, 5
cmp al, 4
jne 0x527628
and ecx, 0xffffeffb
mov dword [edi + 0x2c], ecx
test cl, 8
je 0x527628
mov eax, dword [edi + 4]
dec dword [eax + 4]
cmp edx, 0x2745
jne 0x527631
inc edx
lea eax, [ebp - 0x14]
mov ecx, edx
push eax
call fcn.0043752f
push eax
jmp 0x527648
lea eax, [ebp - 0x14]
push eax
push 0xfffff024
push edi
call dword [edi + 0x38]
add esp, 0xc
mov esi, dword [ebp - 4]
mov eax, dword [edi + 0x2c]
and eax, 0x11000
cmp eax, 0x1000
jne 0x52766a
mov edx, edi
mov ecx, esi
call fcn.00527ca5
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x2c]
dec ecx
mov dword [edi + 0x3c], ecx
test al, 1
je 0x52768f
test ecx, ecx
jne 0x52768f
test al, 0x20
jne 0x52768f
or eax, 0x20
mov dword [edi + 0x2c], eax
mov eax, dword [esi + 0x2c]
mov dword [edi + 0x28], eax
mov dword [esi + 0x2c], edi
pop edi
pop esi
pop ebx
leave
ret