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

Disassembly:
push rdi
sub rsp, 0x50
mov rax, qword [0x1400c5040]
xor rax, rsp
mov qword [rsp + 0x48], rax
cmp dword [rcx + 8], 0
mov rdi, rcx
jne 0x14000e9a3
xor al, al
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140074360
add rsp, 0x50
pop rdi
ret
mov rdx, qword [rcx + 0x850]
mov qword [rsp + 0x68], rbx
lea rbx, [rcx + 0x448]
mov qword [rsp + 0x70], rsi
cmp rdx, 0x14
jl 0x14000e9db
movzx eax, word [rbx]
mov rsi, rbx
mov qword [rcx + 0x858], 0
cmp rdx, rax
jge 0x14000eaea
mov r8d, 0x404
mov rsi, rbx
cmp rdx, r8
jae 0x14000eaea
mov r9d, dword [rdi + 4]
mov qword [rsp + 0x78], r14
mov r14d, 2
mov ecx, r14d
sub r9d, 1
je 0x14000ea65
cmp r9d, 1
jne 0x14000ead1
mov rcx, qword [rdi + 0x440]
lea rax, [rsp + 0x30]
sub r8d, edx
mov qword [rsp + 0x28], rax
add rdx, 0x448
mov dword [rsp + 0x30], reloc.WS2_32.dll_recv
lea rax, [rsp + 0x38]
add rdx, rdi
xor r9d, r9d
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_recvfrom]
movsxd rsi, eax
mov ecx, r14d
test eax, eax
jns 0x14000ea9f
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
xor ecx, ecx
cmp eax, 0x2733
cmove ecx, r14d
jmp 0x14000eab0
mov rcx, qword [rdi + 0x440]
sub r8d, edx
add rdx, 0x448
xor r9d, r9d
add rdx, rdi
call qword [sym.imp.WS2_32.dll_recv]
movsxd rsi, eax
mov ecx, r14d
test eax, eax
jns 0x14000ea9f
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
xor ecx, ecx
cmp eax, 0x2733
cmove ecx, r14d
jmp 0x14000eab0
jne 0x14000eaa5
xor ecx, ecx
jmp 0x14000eab0
test rsi, rsi
mov eax, 1
cmovg ecx, eax
cmp ecx, 1
jne 0x14000ead1
movups xmm0, xmmword [rsp + 0x38]
add qword [rdi + 0x850], rsi
mov rsi, rbx
mov dword [rdi + 8], r14d
movups xmmword [rdi + 0xc70], xmm0
jmp 0x14000eae5
mov rsi, rbx
test ecx, ecx
jne 0x14000eae5
cmp dword [rdi], 1
je 0x14000eae5
mov rcx, rdi
call fcn.14000e610
mov r14, qword [rsp + 0x78]
mov rcx, qword [rdi + 0x850]
cmp rcx, 0x14
jl 0x14000ec1d
mov qword [rdi + 0x858], 0
movzx eax, word [rsi]
cmp rcx, rax
jl 0x14000ec1d
mov rax, qword [rdi + 0x858]
movzx ecx, word [rax + rdi + 0x448]
lea rdx, [rax + 2]
mov qword [rdi + 0x858], rdx
mov word [rdi + 0x28], cx
movzx eax, byte [rdx + rdi + 0x448]
inc rdx
mov qword [rdi + 0x858], rdx
lea rbx, [rcx - 0x14]
mov byte [rdi + 0x2a], al
lea rcx, [rdi + 0x40]
mov r8, rbx
mov eax, dword [rdx + rdi + 0x448]
add rdx, 4
mov qword [rdi + 0x858], rdx
mov dword [rdi + 0x2c], eax
mov eax, dword [rdx + rdi + 0x448]
add rdx, 4
mov qword [rdi + 0x858], rdx
mov dword [rdi + 0x30], eax
mov eax, dword [rdx + rdi + 0x448]
add rdx, 4
mov qword [rdi + 0x858], rdx
mov dword [rdi + 0x34], eax
mov eax, dword [rdx + rdi + 0x448]
add rdx, 4
mov qword [rdi + 0x858], rdx
mov dword [rdi + 0x38], eax
movzx eax, byte [rdx + rdi + 0x448]
inc rdx
mov qword [rdi + 0x858], rdx
add rdx, 0x448
add rdx, rdi
mov byte [rdi + 0x3c], al
call fcn.14008f790
movzx edx, word [rdi + 0x28]
mov rcx, rsi
mov r8, qword [rdi + 0x850]
add qword [rdi + 0x858], rbx
sub r8, rdx
mov qword [rdi + 0x430], 0
lea rax, [rdx - 0x14]
add rdx, 0x448
add rdx, rdi
mov qword [rdi + 0x438], rax
call fcn.14008f790
movzx eax, word [rdi + 0x28]
sub qword [rdi + 0x850], rax
movzx eax, byte [rdi + 0xc]
cmp byte [rdi + 0x2a], al
jne 0x14000ec1d
mov al, 1
jmp 0x14000ec1f
xor al, al
mov rsi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140074360
add rsp, 0x50
pop rdi
ret