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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov edi, edx
mov dword [esp], ecx
mov ecx, dword [esp + 0x60]
add edx, 0xc
xor eax, eax
cmp dword [edi + 0xc], 0xffffffff
cmove edx, eax
mov dword [esp + 0x14], edx
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 8]
mov dword [esp + 0x10], edx
sub edx, eax
mov ecx, dword [ecx]
mov dword [esp + 4], eax
add ecx, eax
mov dword [esp + 0x20], ecx
mov eax, 0x7fffffff
cmp edx, eax
cmovae edx, eax
mov dword [esp + 0x24], edx
mov edx, dword [edi + 8]
lea ecx, [esp + 0x28]
push 0
push dword [esp + 0x60]
call fcn.004e12b4
pop eax
pop ecx
mov edx, dword [esp + 0x28]
cmp edx, 2
je 0x4e1656
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
test edx, edx
jne 0x4e165e
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 4]
jb 0x4e16a3
mov esi, dword [esp + 0x14]
mov ecx, esi
mov edx, 0x54a9e8
call fcn.00442a76
push 0
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [esi]
call dword [sym.imp.ws2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x4e1578
call dword [sym.imp.ws2_32.dll_WSAGetLastError]
mov ebp, eax
xor eax, eax
cmp ebp, 0x274a
jne 0x4e15c5
mov dword [esp + 0xc], eax
mov byte [esp + 8], 4
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], ebx
cmp bl, 4
je 0x4e1668
lea ecx, [esp + 0x18]
call fcn.00469f1c
cmp al, 0xd
jne 0x4e1693
mov ecx, edi
lea edx, [esp + 0x40]
call fcn.004e121f
movzx ecx, bl
mov edx, esi
call fcn.004c2ea6
jmp 0x4e14f8
mov byte [esp + 8], 0
mov dword [esp + 0xc], ebp
lea ecx, [esp + 8]
call fcn.00469f1c
cmp al, 0xd
jne 0x4e1581
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
test eax, eax
je 0x4e1644
mov edx, dword [eax]
mov esi, dword [eax + 4]
lock inc dword [esi]
jle 0x4e16b8
add edx, 8
lea ecx, [esp + 0x28]
push dword [eax + 0xc]
push dword [eax + 8]
push esi
call fcn.0046b713
add esp, 0xc
push 4
pop ecx
call fcn.0046a24c
cmp byte [esp + 0x28], 4
je 0x4e1581
mov ebx, dword [esp + 0x28]
cmp bl, 4
je 0x4e1581
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
xor ecx, ecx
mov edx, ebp
call fcn.0046a24c
jmp 0x4e159a
and dword [esp + 0x2c], 0
mov dword [esp + 0x28], 4
jmp 0x4e1581
mov eax, dword [esp]
mov byte [eax], 5
jmp 0x4e169b
mov edx, dword [esp]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp 0x4e169b
mov eax, dword [esp + 4]
add eax, esi
mov edx, dword [esp + 0x60]
mov ecx, dword [edx + 0xc]
cmp eax, ecx
jbe 0x4e167e
mov dword [edx + 0xc], eax
mov ecx, eax
add dword [esp + 4], esi
jb 0x4e16bc
cmp ecx, eax
jb 0x4e16d0
mov dword [edx + 8], eax
mov eax, dword [esp]
mov byte [eax], 4
jmp 0x4e169b
mov eax, dword [esp]
mov dword [eax], ebx
mov dword [eax + 4], esi
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x10]
push 0x54a868
call fcn.00506b80
pop eax
ud2
ud2
push 0xf
pop edx
mov ecx, str.filled_overflowfilled_must_not_become_larger_than_initialized
push 0x54a9f8
call fcn.00507030
jmp 0x4e16b5
lea ecx, [esp + 0x28]
mov dword [ecx], 0x54a8b8
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.OutOfRangeImpossibleNotEnoughInvalidTooShortTooLongBadFormat__NonexhaustiveEmpty
and dword [ecx + 0xc], 0
mov edx, 0x54a9f8
call fcn.00506b50
ud2