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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x58
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x539d50
mov dword [ebp - 0x30], ecx
lea eax, [ebp - 0x18]
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 0x10]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], esi
jmp 0x526d61
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x5b93c8]
call dword [sym.imp.kernel32.dll_HeapFree]
push dword [ebp - 0x28]
push 0
push dword [0x5b93c8]
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x10], 0xffffffff
mov edx, dword [ebp - 0x3c]
lea ecx, [ebp - 0x5c]
push 0
push dword [ebp + 8]
call fcn.005266e0
add esp, 8
mov eax, dword [ebp - 0x5c]
cmp eax, 2
je 0x526f2b
mov edi, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x54]
test eax, eax
jne 0x526f33
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov esi, dword [eax + 8]
mov eax, edx
sub eax, esi
jb 0x526f77
mov edx, dword [ebp - 0x64]
cmp edx, 0xffffffff
je 0x526f83
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x28], esi
mov ecx, dword [ecx]
add ecx, esi
cmp eax, 0x7fffffff
mov esi, 0x7fffffff
cmovae eax, esi
push 0
push eax
push ecx
push edx
call dword [sym.imp.ws2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x526dea
call dword [sym.imp.ws2_32.dll_WSAGetLastError]
mov ecx, eax
xor eax, eax
cmp ecx, 0x274a
jne 0x526ea1
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x44], 4
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
cmp cl, 4
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], ecx
je 0x526f3d
lea ecx, [ebp - 0x38]
call fcn.0046ee10
cmp al, 0xd
jne 0x526f1d
movzx eax, byte [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
and edi, 0x23
xor edi, 0x2f
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], eax
movzx edx, bl
mov ecx, dword [ecx + 0x48]
shl edx, 0x10
nop dword [eax + eax]
mov eax, ecx
shr eax, 0x10
cmp bl, al
jne 0x526e5d
mov esi, ecx
mov eax, ecx
mov ecx, dword [ebp - 0x3c]
and esi, edi
or esi, edx
lock cmpxchg dword [ecx + 0x48], esi
mov ecx, eax
jne 0x526e40
cmp dword [ebp - 0x24], 3
jne 0x526d5a
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x2c], ecx
push ecx
mov dword [ebp - 0x24], eax
call dword [eax]
add esp, 4
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0
je 0x526d49
cmp dword [eax + 8], 9
jae 0x526d34
mov eax, dword [ebp - 0x2c]
jmp 0x526d3a
mov byte [ebp - 0x44], 0
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x44]
call fcn.0046ee10
mov esi, dword [ebp - 0x28]
cmp al, 0xd
jne 0x526df4
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x526df4
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [ebp - 0x24], ecx
lock inc dword [ecx]
jle 0x526ff4
add edx, 8
lea ecx, [ebp - 0x5c]
push dword [eax + 0xc]
push dword [eax + 8]
push dword [ebp - 0x24]
call fcn.0046de40
add esp, 0xc
movzx eax, byte [ebp - 0x5c]
cmp al, 4
je 0x526df4
lea edx, [ebp - 0x5b]
lea esi, [ebp - 0x37]
mov ecx, dword [edx]
mov edx, dword [edx + 3]
mov dword [esi + 3], edx
mov dword [esi], ecx
mov byte [ebp - 0x38], al
lea ecx, [ebp - 0x38]
call fcn.0046ee10
cmp al, 0xd
je 0x526e19
movsd xmm0, qword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
movsd qword [eax], xmm0
jmp 0x526f66
mov eax, dword [ebp - 0x30]
mov byte [eax], 5
jmp 0x526f66
mov eax, dword [ebp - 0x30]
mov dword [eax], edi
mov dword [eax + 4], ebx
jmp 0x526f66
mov edx, dword [ebp + 0xc]
lea ecx, [esi + eax]
mov edx, dword [edx + 0xc]
cmp ecx, edx
jbe 0x526f52
mov edx, dword [ebp + 0xc]
mov dword [edx + 0xc], ecx
mov edx, ecx
add esi, eax
jb 0x526f8d
cmp edx, ecx
jb 0x526fb5
mov eax, dword [ebp + 0xc]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 4
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
push 0x5a6504
call fcn.0053bab0
mov ecx, 0x5a67a4
call fcn.0053bf10
mov byte [ebp - 0x1d], 4
mov byte [ebp - 0x1e], 0
mov dword [ebp - 0x10], 0
mov ecx, str.filled_overflowfilled_must_not_become_larger_than_initialized
mov edx, 0xf
push 0x5a67b4
call fcn.0053bf30
add esp, 4
jmp 0x526ff4
lea ecx, [ebp - 0x5c]
mov edx, 0x5a67b4
mov dword [ebp - 0x5c], 0x5a6490
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x54], str.Index_out_of_bounds
mov dword [ebp - 0x50], 0
mov byte [ebp - 0x1d], 4
mov byte [ebp - 0x1e], 0
mov dword [ebp - 0x10], 0
call fcn.0053ba80
ud2