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

Disassembly:
sub esp, 0x24
push ebx
push ebp
push esi
mov esi, dword [esp + 0x34]
xor ebx, ebx
push edi
cmp dword [esi + 0x28], ebx
jne 0x4b9971
cmp dword [esi + 8], ebx
jne 0x4b9971
movzx ecx, word [esi + 6]
mov edx, 0x216
cmp cx, dx
mov ebx, str.queue
mov eax, str.file
cmovne ebx, eax
xor edx, edx
cmp dword [esi + 0x18], edx
je 0x4b9781
mov edi, edx
jmp 0x4b97a5
mov eax, dword [0x5215a8]
mov edi, dword [eax]
test edi, edi
je 0x4b995f
mov eax, dword [esi]
cmp dword [edi], eax
je 0x4b979d
mov edi, dword [edi + 5]
test edi, edi
jne 0x4b9792
test edi, edi
je 0x4b995f
mov eax, dword [esp + 0x3c]
mov ebp, ecx
mov dword [esp + 0x38], eax
jmp 0x4b98e5
mov eax, dword [0x5215b0]
cmp word [eax], dx
je 0x4b97cd
push ebx
push str.Waiting_for__str__manager_socket_to_become_readable
call fcn.004b8a31
pop ecx
pop ecx
xor edx, edx
cmp dword [esi + 0x18], 0
je 0x4b97e0
push 0xffffffffffffffff
push dword [esi + 0x18]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x4b9857
mov eax, dword [0x5215a0]
xor ecx, ecx
mov word [eax], cx
cmp byte [edi + 4], cl
jne 0x4b9857
jmp 0x4b97f3
xor edx, edx
mov ecx, dword [0x5215a0]
cmp word [ecx], dx
jne 0x4b985d
mov eax, dword [0x5215ac]
mov ecx, dword [0x521594]
movzx eax, word [eax]
test ax, ax
jne 0x4b9843
mov edx, dword [ecx]
mov eax, edx
push edx
push eax
mov eax, dword [0x50d234]
push dword [eax]
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
cmp eax, 0xffffffff
je 0x4b991f
test eax, eax
je 0x4b9847
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x4b9851
xor eax, eax
jmp 0x4b9815
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_PostQuitMessage]
cmp byte [edi + 4], 0
je 0x4b97f1
mov ecx, dword [0x5215a0]
movzx eax, word [ecx]
mov edx, 0xfa0
cmp ax, dx
ja 0x4b995a
test ax, ax
mov eax, dword [0x5215b0]
jne 0x4b9947
xor ecx, ecx
cmp word [eax], cx
je 0x4b9894
push ebx
push ebp
push str.Attempting_to_receive__dword__5_bytes_from__str__manager
call fcn.004b8a31
add esp, 0xc
xor ecx, ecx
test edi, edi
je 0x4b989b
mov byte [edi + 4], cl
push ecx
push ebp
push dword [esp + 0x40]
push dword [esi]
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x4b98d9
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
xor edx, edx
mov eax, dword [0x5215b0]
cmp ecx, 0x2733
jne 0x4b990b
cmp word [eax], dx
je 0x4b98e5
push ebx
push str.recv___from__str__manager_returned_WSAEWOULDBLOCK
call fcn.004b8a31
pop ecx
pop ecx
jmp 0x4b98e3
test eax, eax
je 0x4b992c
sub ebp, eax
add dword [esp + 0x38], eax
xor edx, edx
test ebp, ebp
jne 0x4b97b4
mov eax, dword [0x5215b0]
cmp word [eax], dx
je 0x4b9a41
push 0x4c060e
call fcn.00413fa8
pop ecx
jmp 0x4b9a41
cmp word [eax], dx
je 0x4b991f
push ecx
push ebx
push str.recv___from__str__manager_returned__dword__5
call fcn.004b8a31
add esp, 0xc
mov eax, 0xc0d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov eax, dword [0x5215b0]
xor edx, edx
cmp word [eax], dx
je 0x4b991f
push ebx
push str.recv___from__str__manager_returned_zero___connection_broken
call fcn.004b8a31
pop ecx
pop ecx
jmp 0x4b991f
xor edx, edx
cmp word [eax], dx
je 0x4b991f
movzx eax, word [ecx]
push ebx
push eax
push str.Error__word__5_on__str__manager_read
jmp 0x4b9917
mov ax, word [ecx]
jmp 0x4b9924
mov eax, dword [0x5215b0]
cmp word [eax], dx
je 0x4b991f
push ebx
push str.No__str__manager_readability_descriptor
jmp 0x4b993e
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x4b99e1
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x4b99b2
push 0xffffffffffffffff
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push ebx
push eax
push 2
mov dword [esp + 0x24], ecx
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov edi, eax
cmp edi, 0x81
je 0x4b99a6
cmp edi, 1
jne 0x4b99c0
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x4b99c0
push 0xea60
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edi, eax
test edi, edi
je 0x4b9a26
jmp 0x4b991f
push dword [esi + 8]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4b991f
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esi + 0x24]
cmp byte [eax], bl
je 0x4b99c9
mov eax, dword [0x521598]
push dword [eax]
push dword [eax]
mov eax, dword [0x50d234]
push dword [eax]
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
mov edi, eax
test edi, edi
jne 0x4b9a13
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_PostQuitMessage]
cmp edi, 0xffffffff
je 0x4b991f
cmp dword [esp + 0x20], ebx
jne 0x4b991f
movzx eax, word [esi + 6]
push eax
mov eax, dword [esi + 0x24]
inc eax
push eax
push dword [esp + 0x44]
call fcn.00442cc0
mov eax, dword [esi + 0x24]
add esp, 0xc
mov byte [eax], bl
xor eax, eax
jmp 0x4b9924