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

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x58
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x3c], 0
mov rax, qword [rsp + 0x60]
mov ecx, 0x80000
sub ecx, dword [rax + 0x80018]
mov eax, ecx
mov rcx, qword [rsp + 0x60]
movsxd rcx, dword [rcx + 0x80018]
mov rdx, qword [rsp + 0x60]
lea rcx, [rdx + rcx + 0x18]
xor r9d, r9d
mov r8d, eax
mov rdx, rcx
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + 0x10]
call qword [sym.imp.WS2_32.dll_recv]
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0xffffffff
jne 0x7ff6c0907a11
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x7ff6c09079e2
mov al, 1
jmp 0x7ff6c0907cc7
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r9d, eax
lea r8, [0x7ff6c0919d98]
xor edx, edx
lea rcx, [0x7ff6c0c82d30]
call fcn.7ff6c0909fb0
mov rcx, qword [rsp + 0x60]
call fcn.7ff6c0908140
xor al, al
jmp 0x7ff6c0907cc7
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 0x80018]
add eax, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x60]
mov dword [rcx + 0x80018], eax
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x80018], 3
jge 0x7ff6c0907a40
mov al, 1
jmp 0x7ff6c0907cc7
xor eax, eax
cmp eax, 1
je 0x7ff6c0907cc5
movsxd rax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax + 0x18]
cmp eax, 0xc1
je 0x7ff6c0907a77
movsxd rax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax + 0x18]
cmp eax, 0xc3
jne 0x7ff6c0907abc
movsxd rax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax + 0x18]
mov byte [rsp + 0x31], al
mov eax, dword [rsp + 0x34]
inc eax
cdqe
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax + 0x18]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x34]
add eax, 2
cdqe
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax + 0x18]
mov byte [rsp + 0x30], al
jmp 0x7ff6c0907b91
movsxd rax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax + 0x18]
cmp eax, 0xc2
je 0x7ff6c0907ae8
movsxd rax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax + 0x18]
cmp eax, 0xc4
jne 0x7ff6c0907b59
movsxd rax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax + 0x18]
mov byte [rsp + 0x31], al
mov eax, dword [rsp + 0x34]
add eax, 2
cdqe
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax + 0x18]
and rax, 0xff
movzx eax, al
mov ecx, dword [rsp + 0x34]
inc ecx
movsxd rcx, ecx
mov rdx, qword [rsp + 0x60]
movzx ecx, byte [rdx + rcx + 0x18]
and rcx, 0xff
movzx ecx, cl
shl ecx, 8
or eax, ecx
movzx eax, ax
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x34]
add eax, 3
cdqe
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax + 0x18]
mov byte [rsp + 0x30], al
jmp 0x7ff6c0907b91
movsxd rax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + rax + 0x18]
mov r9d, eax
lea r8, [0x7ff6c0919dc8]
xor edx, edx
lea rcx, [0x7ff6c0c82d30]
call fcn.7ff6c0909fb0
mov rcx, qword [rsp + 0x60]
call fcn.7ff6c0908140
xor al, al
jmp 0x7ff6c0907cc7
cmp dword [rsp + 0x38], 3
jl 0x7ff6c0907ba2
cmp dword [rsp + 0x38], 0x80000
jle 0x7ff6c0907be1
movzx eax, byte [rsp + 0x30]
movzx ecx, byte [rsp + 0x31]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x20], eax
mov r9d, ecx
lea r8, [0x7ff6c0919e00]
xor edx, edx
lea rcx, [0x7ff6c0c82d30]
call fcn.7ff6c0909fb0
mov rcx, qword [rsp + 0x60]
call fcn.7ff6c0908140
xor al, al
jmp 0x7ff6c0907cc7
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 0x80018]
cmp dword [rsp + 0x38], eax
jg 0x7ff6c0907c57
movsxd rax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x60]
lea rax, [rcx + rax + 0x18]
mov r8d, dword [rsp + 0x38]
mov rdx, rax
movzx ecx, byte [rsp + 0x30]
mov rax, qword [rsp + 0x60]
call qword [rax + 0x100020]
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x34]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x34], eax
mov rax, qword [rsp + 0x60]
mov ecx, dword [rsp + 0x38]
mov eax, dword [rax + 0x80018]
sub eax, ecx
mov rcx, qword [rsp + 0x60]
mov dword [rcx + 0x80018], eax
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x80018], 0
jg 0x7ff6c0907c55
jmp 0x7ff6c0907cc5
jmp 0x7ff6c0907cc0
cmp dword [rsp + 0x34], 0
jle 0x7ff6c0907cbe
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x80018], 0
jle 0x7ff6c0907cbe
mov eax, 0x80000
sub eax, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x60]
cmp dword [rcx + 0x80018], eax
jg 0x7ff6c0907cbe
mov rax, qword [rsp + 0x60]
movsxd rax, dword [rax + 0x80018]
movsxd rcx, dword [rsp + 0x34]
mov rdx, qword [rsp + 0x60]
lea rcx, [rdx + rcx + 0x18]
mov rdx, qword [rsp + 0x60]
add rdx, 0x18
mov qword [rsp + 0x40], rdx
mov r8, rax
mov rdx, rcx
mov rax, qword [rsp + 0x40]
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
jmp 0x7ff6c0907cc5
jmp 0x7ff6c0907a40
mov al, 1
add rsp, 0x58
ret