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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push ebx
push esi
mov esi, ecx
push edi
mov al, byte [esi + 0x50]
not al
test al, 1
jne 0x4b38b2
cmp dword [esi + 0x68], 0
jne 0x4b356a
push str.m_pConnectionCallback
push 0x6b6
push str.c:_buildslave_steam_rel_client_hotfix_win32_build_srccommon_tcpconnection.cpp
call fcn.00536b70
add esp, 0xc
test al, al
jne 0x4b356a
int3
cmp dword [esi + 0xc], 0xdddddddd
jne 0x4b358f
push str.m_hConnection___0xdddddddd
push 0x6b7
push str.c:_buildslave_steam_rel_client_hotfix_win32_build_srccommon_tcpconnection.cpp
call fcn.00536b70
add esp, 0xc
test al, al
jne 0x4b358f
int3
mov ecx, dword [0x7d9a84]
xor al, al
mov dword [ebp - 8], eax
mov eax, dword [0x7d9a80]
mov dword [esi + 0x160], eax
mov dword [esi + 0x164], ecx
mov dword [ebp - 0x14], 0x18
lea eax, [ebp - 3]
mov byte [ebp - 2], 0
push eax
lea eax, [ebp - 1]
mov byte [ebp - 1], 0
push eax
lea eax, [ebp - 2]
mov byte [ebp - 3], 0
push eax
push dword [esi + 0x18]
call fcn.004e9750
mov cl, byte [ebp - 1]
add esp, 0x10
test cl, cl
je 0x4b35e6
mov ecx, esi
call fcn.004b38c0
mov cl, byte [ebp - 1]
cmp byte [ebp - 3], 0
mov eax, dword [esi + 0x10]
jne 0x4b386a
cmp eax, 1
je 0x4b382c
cmp eax, 2
je 0x4b360a
cmp eax, 3
jne 0x4b3837
cmp byte [ebp - 2], 0
je 0x4b3837
mov ecx, esi
call fcn.004e3530
test al, al
je 0x4b3837
mov edi, dword [esi + 0x118]
test edi, edi
jne 0x4b3664
call fcn.00536730
push 1
push edi
push 0x6f4
mov ecx, dword [eax]
push str.c:_buildslave_steam_rel_client_hotfix_win32_build_srccommon_tcpconnection.cpp
push dword [esi + 0x158]
mov edx, dword [ecx + 8]
mov ecx, eax
call edx
mov edx, dword [esi + 0x158]
mov edi, eax
mov dword [esi + 0x118], eax
mov dword [esi + 0x11c], edx
jmp 0x4b366a
mov edx, dword [esi + 0x11c]
mov ebx, dword [esi + 0x120]
sub edx, ebx
mov eax, dword [esi + 0x5c]
cmp eax, 0xffffffff
je 0x4b36ac
lea ecx, [eax + eax*2]
mov eax, dword [0x7d9b0c]
mov eax, dword [eax + ecx*8 + 8]
cmp eax, 0x30d40
jle 0x4b3694
mov eax, 0x2000
jmp 0x4b36a5
cmp eax, 0xc350
mov eax, 0x800
jg 0x4b36a5
mov eax, 0x200
cmp edx, eax
cmovl eax, edx
mov edx, eax
push 0
push edx
lea eax, [ebx + edi]
push eax
push dword [esi + 0x18]
call dword [sym.imp.WS2_32.dll_recv]
mov ebx, eax
mov dword [ebp - 0xc], ebx
test ebx, ebx
js 0x4b37ff
mov al, 1
mov dword [ebp - 8], eax
jle 0x4b3788
cmp dword [0x8240e4], 0
mov eax, dword [esi + 0x118]
mov dword [ebp - 0x18], eax
jne 0x4b36ea
xor eax, eax
jmp 0x4b36fd
lea eax, [ebp - 0x10]
push eax
push 6
push str.CTCPConnection::OnDataArrived
call fcn.0053be40
add esp, 0xc
mov dword [ebp - 0x10], eax
mov ecx, 0x7da158
mov eax, ebx
cdq
mov ebx, edx
mov edi, eax
push ebx
push edi
call fcn.004ed8b0
add dword [0x7d9d38], edi
mov ecx, esi
mov edi, dword [ebp - 0xc]
adc dword [0x7d9d3c], ebx
test dword [esi + 0x50], 0x190
mov byte [ebp - 4], 0
je 0x4b3742
push 0
push 0
push edi
push dword [ebp - 0x18]
mov bl, 1
call fcn.004b4840
jmp 0x4b374f
lea eax, [ebp - 4]
push eax
push edi
call fcn.004b1a60
mov bl, byte [ebp - 4]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x4b375f
push eax
call fcn.0053be00
add esp, 4
push edi
mov ecx, esi
call fcn.004e3560
test al, al
sete al
test bl, al
je 0x4b3837
mov ebx, dword [ebp - 0x14]
dec ebx
mov dword [ebp - 0x14], ebx
test ebx, ebx
jg 0x4b35b2
jmp 0x4b3837
and dword [ebp - 0x3c], 0xff0fffff
xor eax, eax
push str.Disconnecting_connection_because_::recv___returned_zero_bytes_n
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
mov byte [ebp - 0x39], 0
and dword [ebp - 0x3c], 0xfff00000
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0
push eax
push 4
push 4
push 0
push 0xb
push 0
push 0
mov dword [ebp - 0x24], 3
call fcn.00450b10
add esp, 0x28
cmp byte [esi + 0x150], 0
jne 0x4b3837
mov eax, dword [esi]
mov ecx, esi
push 0x26
mov byte [esi + 0x150], 1
call dword [eax + 0x60]
jmp 0x4b3837
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0xb
je 0x4b3837
lea ecx, [esi + 0x20]
push ecx
push str.recv
push str.CTCPConnection::BPollConnection
push eax
push esi
call fcn.004b4330
mov eax, dword [esi]
add esp, 0x14
mov ecx, esi
push 3
call dword [eax + 0x60]
jmp 0x4b3837
test cl, cl
je 0x4b3837
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x68]
mov ecx, dword [esi + 0x70]
test ecx, ecx
je 0x4b385e
mov edx, dword [ecx]
mov edx, dword [edx + 0x2c]
call edx
mov ebx, dword [ebp - 8]
test al, al
movzx ebx, bl
mov ecx, 1
pop edi
cmovne ebx, ecx
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 8]
mov al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x4b38a4
test cl, cl
jne 0x4b388e
cmp byte [ebp - 2], cl
jne 0x4b388e
mov eax, dword [esi]
mov ecx, esi
push 0
push 5
push 0x23
call dword [eax + 0x6c]
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
mov ecx, esi
push 0
push 6
push 0x23
call dword [eax + 0x6c]
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4b38b2
mov eax, dword [esi]
mov ecx, esi
push 0xb
call dword [eax + 0x60]
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret