Function at 0x4b34e0
Capabilities:
Get socket status
Receive data
Receive data on socket

Disassembly:
sub esp, 0x118
mov eax, dword [0x6f7d14]
xor eax, esp
mov dword [esp + 0x114], eax
push ebp
mov ebp, dword [esp + 0x120]
test ebp, ebp
je 0x4b37c3
mov eax, dword [ebp + 0x2c]
cmp eax, 0xffffffff
je 0x4b37c3
lea ecx, [esp + 0xc]
mov dword [esp + 0x18], eax
push ecx
push 0
push 0
lea ecx, [esp + 0x20]
mov dword [esp + 0x18], 0
push ecx
inc eax
mov dword [esp + 0x20], 0
push eax
mov dword [esp + 0x28], 1
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x4b37b2
test eax, eax
je 0x4b379a
cmp dword [ebp + 0x2c], 0xffffffff
push ebx
push esi
push edi
mov dword [esp + 0x14], 0xffffffff
je 0x4b377e
nop dword [eax + eax]
cmp dword [ebp + 0x2c], 0xffffffff
je 0x4b377e
mov ecx, dword [ebp + 0x440]
cmp ecx, 0x400
ja 0x4b377e
mov eax, dword [ebp + 0x444]
cmp eax, 0x400
ja 0x4b377e
cmp ecx, eax
jg 0x4b377e
lea esi, [ebp + 0x3c]
test ecx, ecx
jle 0x4b35e2
sub eax, ecx
push eax
lea eax, [esi + ecx]
push eax
push esi
call fcn.00633990
mov eax, dword [ebp + 0x440]
add esp, 0xc
sub dword [ebp + 0x444], eax
xor ecx, ecx
mov eax, dword [ebp + 0x444]
mov ebx, eax
mov dword [ebp + 0x440], 0
mov dword [esp + 0x10], ebx
jmp 0x4b35e8
mov ebx, eax
mov dword [esp + 0x10], eax
mov edx, 0x400
sub edx, eax
jne 0x4b35f5
xor eax, eax
jmp 0x4b3627
push 0
push edx
lea eax, [esi + ecx]
push eax
push dword [ebp + 0x2c]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
js 0x4b375d
add dword [ebp + 0x444], eax
mov ecx, dword [ebp + 0x444]
mov byte [ecx + esi], 0
mov ebx, dword [ebp + 0x444]
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4b3633
test eax, eax
je 0x4b377e
mov eax, dword [ebp + 0x440]
add esi, ebx
add eax, 0x3c
add eax, ebp
cmp eax, esi
jae 0x4b36d4
mov ecx, esi
sub ecx, eax
cmp ecx, 3
jl 0x4b369e
mov dl, byte [eax]
mov cl, dl
sub cl, 0x30
cmp cl, 9
ja 0x4b369e
mov ch, byte [eax + 1]
mov cl, ch
movsx edx, dl
sub cl, 0x30
cmp cl, 9
ja 0x4b369e
mov bl, byte [eax + 2]
mov cl, bl
sub cl, 0x30
cmp cl, 9
ja 0x4b369e
movsx ecx, ch
lea edx, [edx + edx*4]
lea ecx, [ecx + edx*2]
lea edx, [ecx + ecx*4]
movsx ecx, bl
lea ecx, [ecx + edx*2]
add ecx, 0xffffeb30
cmp byte [eax + 3], 0x2d
jne 0x4b369a
neg ecx
test ecx, ecx
jg 0x4b3715
cmp eax, esi
jae 0x4b36ae
mov dl, byte [eax]
cmp dl, 0xa
je 0x4b36bd
inc eax
cmp eax, esi
jb 0x4b36a2
mov eax, dword [esp + 0x10]
mov dword [ebp + 0x440], eax
jmp 0x4b3570
cmp eax, esi
jae 0x4b36ae
cmp dl, 0xd
lea ecx, [eax + 1]
cmove ecx, eax
mov eax, ecx
cmp eax, esi
jb 0x4b3648
mov ecx, dword [esp + 0x14]
test ecx, ecx
js 0x4b3570
sub eax, ebp
sub eax, 0x3c
mov dword [ebp + 0x440], eax
mov eax, 0x51eb851f
imul ecx
pop edi
sar edx, 5
pop esi
mov eax, edx
shr eax, 0x1f
pop ebx
add eax, edx
pop ebp
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0062fc3e
add esp, 0x118
ret
mov dword [esp + 0x14], ecx
add eax, 3
mov ecx, eax
sub ecx, ebp
sub ecx, 0x3c
mov dword [ebp + 0x448], ecx
cmp eax, esi
jae 0x4b373a
nop dword [eax]
cmp byte [eax], 0xa
je 0x4b373a
inc eax
cmp eax, esi
jb 0x4b3730
mov dl, byte [eax]
mov bl, dl
cmp dl, 0xa
jne 0x4b3746
mov bl, byte [eax + 1]
lea ecx, [eax + 1]
cmp dl, 0xa
cmovne ecx, eax
cmp bl, 0xd
lea eax, [ecx + 1]
cmovne eax, ecx
jmp 0x4b36d4
push str.recv_failed
push 0
push 9
call fcn.00472980
add esp, 0xc
push dword [ebp + 0x2c]
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [ebp + 0x2c], 0xffffffff
pop edi
pop esi
pop ebx
or eax, 0xffffffff
pop ebp
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0062fc3e
add esp, 0x118
ret
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0062fc3e
add esp, 0x118
ret
push str.select
push 0
push 9
call fcn.00472980
add esp, 0xc
mov ecx, dword [esp + 0x118]
or eax, 0xffffffff
pop ebp
xor ecx, esp
call fcn.0062fc3e
add esp, 0x118
ret