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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x378
movaps xmmword [rsp + 0x360], xmm6
mov ebx, 0x8000
mov esi, 0x8000
xor r12d, r12d
mov rdi, rcx
mov ecx, 0x8000
mov qword [rsp + 0x3c8], rdx
mov rbp, r8
call sym.vcalloc_noscan
mov qword [rsp + 0x3c0], rdi
lea r13, [rsp + 0x1e0]
lea r15, [rsp + 0x260]
mov r14, rax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x90], rax
nop dword [rax + rax]
mov dword [rsp + 0x28], r12d
mov rcx, qword [rsp + 0x78]
xor r8d, r8d
mov r9d, esi
mov dword [rsp + 0x30], 0x7fffffff
mov rdx, r14
mov dword [rsp + 0x20], 1
mov dword [rsp + 0x74], r12d
call sym.array_slice.isra.0
movdqu xmm5, xmmword [rbp]
mov rcx, qword [rbp + 0x58]
mov r11d, dword [rbp + 0x20]
mov r9, qword [rbp + 0x28]
movzx edx, byte [rbp + 0x60]
movzx r8d, byte [rbp + 0x30]
movaps xmmword [rsp + 0x1e0], xmm5
movzx edi, byte [rbp + 0x78]
movdqu xmm5, xmmword [rbp + 0x68]
mov qword [rsp + 0x238], rcx
mov ecx, pe_nt_image_headers64
movdqu xmm6, xmmword [rbp + 0x10]
movdqu xmm3, xmmword [rbp + 0x34]
mov dword [rsp + 0x200], r11d
movdqu xmm4, xmmword [rbp + 0x44]
mov eax, dword [rbp + 0x64]
movups xmmword [rsp + 0x248], xmm5
mov qword [rsp + 0x208], r9
mov byte [rsp + 0x210], r8b
mov byte [rsp + 0x240], dl
mov byte [rsp + 0x258], dil
movaps xmmword [rsp + 0x1f0], xmm6
movups xmmword [rsp + 0x214], xmm3
movups xmmword [rsp + 0x224], xmm4
mov dword [rsp + 0x244], eax
call sym._v_malloc
mov rdx, qword [r13 + 0x20]
mov rcx, qword [r13 + 0x28]
movdqa xmm1, xmmword [r13]
movdqa xmm0, xmmword [r13 + 0x10]
mov edi, edx
movdqa xmm6, xmmword [r13 + 0x40]
mov r8, qword [r13 + 0x68]
mov qword [rax + 0x20], rdx
mov rdx, qword [r13 + 0x30]
movdqa xmm2, xmmword [r13 + 0x50]
mov qword [rax + 0x28], rcx
mov rcx, qword [r13 + 0x38]
movdqa xmm3, xmmword [r13 + 0x70]
movups xmmword [rax + 0x40], xmm6
mov r9d, edx
mov qword [rax + 0x30], rdx
mov rdx, qword [r13 + 0x60]
mov r10, qword [rsp + 0x100]
mov r11, qword [rax + 0x28]
mov qword [rax + 0x38], rcx
mov qword [rax + 0x60], rdx
mov ecx, edx
mov edx, dword [rsp + 0x10c]
movdqu xmm4, xmmword [rax + 0x34]
movups xmmword [rax + 0x50], xmm2
mov qword [rax + 0x68], r8
mov r8, qword [rax + 0x58]
movups xmmword [rax], xmm1
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x70], xmm3
movdqu xmm3, xmmword [rax + 0x44]
movdqu xmm2, xmmword [rax + 0x68]
mov dword [rsp + 0x40], edx
mov edx, dword [rax + 0x64]
mov qword [rsp + 0x58], r10
movzx eax, byte [rax + 0x78]
mov byte [rsp + 0x2c0], cl
mov ecx, pe_nt_image_headers64
mov dword [rsp + 0x280], edi
mov byte [rsp + 0x290], r9b
mov qword [rsp + 0x2b8], r8
mov dword [rsp + 0x2c4], edx
movaps xmmword [rsp + 0x260], xmm1
movaps xmmword [rsp + 0x270], xmm0
movups xmmword [rsp + 0x294], xmm4
movups xmmword [rsp + 0x2c8], xmm2
mov qword [rsp + 0x288], r11
mov byte [rsp + 0x2d8], al
movups xmmword [rsp + 0x2a4], xmm3
call sym._v_malloc
movdqa xmm1, xmmword [r15 + 0x10]
mov rdx, qword [r15 + 8]
xor r9d, r9d
mov rdi, rax
mov rax, qword [r15]
movdqa xmm0, xmmword [r15 + 0x20]
movdqa xmm4, xmmword [r15 + 0x30]
movdqa xmm5, xmmword [r15 + 0x40]
movups xmmword [rdi + 0x10], xmm1
movdqa xmm6, xmmword [r15 + 0x50]
movdqa xmm2, xmmword [r15 + 0x60]
mov qword [rdi], rax
movdqa xmm1, xmmword [r15 + 0x70]
mov r8d, dword [rsp + 0x40]
mov dword [rsp + 0x8c], eax
cdqe
mov qword [rdi + 8], rdx
mov rcx, rax
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x80], rax
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm4
movups xmmword [rdi + 0x40], xmm5
movups xmmword [rdi + 0x50], xmm6
movups xmmword [rdi + 0x60], xmm2
movups xmmword [rdi + 0x70], xmm1
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
je 0x140020fe9
mov rdx, qword [0x14003e190]
mov dword [rsp + 0x308], eax
mov byte [rsp + 0x2e0], 0
movdqa xmm4, xmmword [rdx + 0x10]
movdqa xmm0, xmmword [rdx]
movups xmmword [rsp + 0x2f8], xmm4
movdqa xmm1, xmmword [rsp + 0x300]
movups xmmword [rsp + 0x2e8], xmm0
movdqa xmm6, xmmword [rsp + 0x2e0]
movdqa xmm2, xmmword [rsp + 0x2f0]
movaps xmmword [rsp + 0x140], xmm1
movsxd rax, dword [rsp + 0x148]
movaps xmmword [rsp + 0x60], xmm4
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x130], xmm2
test eax, eax
jle 0x140020f50
add r12, rax
mov rax, qword [rsp + 0x3c8]
mov rdi, qword [rax + 0x218]
test rdi, rdi
je 0x140020eb5
mov eax, dword [rsp + 0x74]
mov dword [rsp + 0x30], r12d
xor r8d, r8d
mov r9d, esi
mov dword [rsp + 0x20], 1
mov rcx, qword [rsp + 0x90]
mov rdx, r14
mov dword [rsp + 0x28], eax
call sym.array_slice.isra.0
mov rdx, qword [rsp + 0x3c8]
mov r9, r12
mov rcx, r15
movdqa xmm0, xmmword [rsp + 0xe0]
lea r8, [rsp + 0xb0]
movdqa xmm3, xmmword [rsp + 0xf0]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xc0], xmm3
call rdi
cmp byte [rsp + 0x260], 0
jne 0x140021432
movsxd rax, esi
cmp r12, rax
jl 0x140020b60
mov qword [rsp + 0x3d0], rbp
nop dword [rax]
mov edi, esi
add esi, 0x1000
cmp esi, ebx
jle 0x140020f21
test ebx, ebx
jle 0x140020f40
add ebx, ebx
cmp esi, ebx
jg 0x140020ee0
movsxd rbp, ebx
test ebx, ebx
js 0x1400214e6
xor edx, edx
mov rcx, rbp
call sym.GC_malloc_kind_global
mov r8, rbp
xor edx, edx
mov rcx, rax
call sym.memset
mov rcx, rax
test r14, r14
je 0x140020f1e
movsxd r8, edi
mov rdx, r14
call sym.memcpy
mov rcx, rax
mov r14, rcx
movsxd rax, esi
cmp rax, r12
jle 0x140020ed0
mov rbp, qword [rsp + 0x3d0]
jmp 0x140020b60
cmp esi, 2
jle 0x140020fda
mov ebx, 2
jmp 0x140020ee0
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x140021133
test eax, eax
je 0x14002111c
mov rdi, qword [rsp + 0x98]
mov edx, eax
mov rcx, rdi
call sym.net__wrap_error.part.0
cmp byte [rsp + 0x1b0], 0
je 0x14002111c
mov rax, qword [rdi]
mov rcx, qword [rdi + 8]
movdqa xmm6, xmmword [rdi + 0x10]
mov qword [rsp + 0x2e0], rax
mov edx, eax
mov rax, qword [rdi + 0x20]
mov qword [rsp + 0x2e8], rcx
mov qword [rsp + 0x300], rax
movsxd rax, dword [rsp + 0x308]
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x2f0], xmm6
test dl, dl
je 0x140020e2b
mov rdi, qword [rsp + 0x3c0]
jmp 0x14002103c
mov ebp, 2
mov ebx, 2
jmp 0x140020ef1
lea rax, str.none
mov ecx, 0x18
mov dword [rsp + 0x2f0], 0
mov rdi, qword [rsp + 0x3c0]
mov qword [rsp + 0x2e0], rax
mov rax, qword [0x14003ce00]
mov qword [rsp + 0x2e8], rax
call sym._v_malloc
mov rdx, qword [rsp + 0x2f0]
movdqa xmm4, xmmword [rsp + 0x2e0]
mov qword [rax + 0x10], rdx
movups xmmword [rax], xmm4
mov ecx, 0x18
call sym._v_malloc
mov eax, dword [rsp + 0x74]
mov r9d, esi
xor r8d, r8d
mov dword [rsp + 0x28], 0
mov rdx, r14
mov rcx, r15
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x20], 1
call sym.array_slice.isra.0
mov rax, qword [0x14003e190]
movdqa xmm4, xmmword [rsp + 0x260]
mov byte [rsp + 0x2e0], 0
movdqa xmm5, xmmword [rax]
movdqa xmm2, xmmword [rax + 0x10]
movups xmmword [rsp + 0x308], xmm4
movups xmmword [rsp + 0x2e8], xmm5
movdqa xmm6, xmmword [rsp + 0x2e0]
movaps xmmword [rsp + 0x40], xmm5
movdqa xmm5, xmmword [rsp + 0x270]
movups xmmword [rsp + 0x2f8], xmm2
movdqa xmm2, xmmword [rsp + 0x2f0]
movdqa xmm0, xmmword [rsp + 0x300]
movups xmmword [rsp + 0x318], xmm5
mov rax, qword [rsp + 0x320]
movdqa xmm4, xmmword [rsp + 0x310]
movups xmmword [rdi], xmm6
mov qword [rdi + 0x40], rax
movups xmmword [rdi + 0x10], xmm2
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm4
movaps xmm6, xmmword [rsp + 0x360]
mov rax, rdi
add rsp, 0x378
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0x18
mov rdi, qword [rsp + 0x3c0]
call sym._v_malloc
jmp 0x14002103c
movd xmm6, dword [rdi + 0x14]
movd xmm1, dword [rdi + 0x10]
movd xmm5, dword [rdi + 0x1c]
movd xmm0, dword [rdi + 0x18]
movd xmm2, dword [rdi + 8]
punpckldq xmm1, xmm6
movd xmm6, dword [rdi + 0xc]
punpckldq xmm0, xmm5
movzx ecx, byte [rdi + 0x30]
mov r9d, dword [rdi + 0x20]
punpcklqdq xmm1, xmm0
punpckldq xmm2, xmm6
mov r8, qword [rdi + 0x28]
mov rdx, qword [rdi + 0x58]
movd xmm6, dword [rdi + 4]
mov r11d, dword [rdi + 0x64]
mov byte [rsp + 0x310], cl
mov ecx, pe_nt_image_headers64
movd xmm0, dword [rsp + 0x8c]
movdqu xmm5, xmmword [rdi + 0x34]
mov dword [rsp + 0x300], r9d
movdqu xmm4, xmmword [rdi + 0x44]
movzx eax, byte [rdi + 0x60]
mov qword [rsp + 0x308], r8
movdqu xmm3, xmmword [rdi + 0x68]
movzx r10d, byte [rdi + 0x78]
punpckldq xmm0, xmm6
mov qword [rsp + 0x338], rdx
punpcklqdq xmm0, xmm2
mov dword [rsp + 0x344], r11d
lea rdi, [rsp + 0x2e0]
mov byte [rsp + 0x358], r10b
movaps xmmword [rsp + 0x2e0], xmm0
movaps xmmword [rsp + 0x2f0], xmm1
movups xmmword [rsp + 0x314], xmm5
movups xmmword [rsp + 0x324], xmm4
movups xmmword [rsp + 0x348], xmm3
mov byte [rsp + 0x340], al
call sym._v_malloc
mov rcx, qword [rsp + 0x2e0]
movdqa xmm5, xmmword [rsp + 0x2f0]
movdqa xmm6, xmmword [rsp + 0x310]
movdqa xmm2, xmmword [rsp + 0x350]
movdqa xmm3, xmmword [rsp + 0x320]
movups xmmword [rax + 0x10], xmm5
mov edx, ecx
movdqa xmm5, xmmword [rsp + 0x300]
movups xmmword [rax + 0x30], xmm6
movdqa xmm6, xmmword [rsp + 0x340]
movups xmmword [rax + 0x20], xmm5
movdqa xmm5, xmmword [rsp + 0x330]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x2e8]
movups xmmword [rax + 0x40], xmm3
movups xmmword [rax + 0x50], xmm5
movdqu xmm0, xmmword [rax + 0x48]
mov r8, qword [rax + 0x58]
movups xmmword [rax + 0x60], xmm6
mov r9, qword [rax + 0x60]
movups xmmword [rax + 0x70], xmm2
movdqu xmm2, xmmword [rax + 0x38]
mov qword [rax + 8], rcx
lea rcx, [rsp + 0x1b0]
mov qword [rsp + 0xd0], r8
movaps xmmword [rsp + 0xc0], xmm0
mov qword [rsp + 0x1a8], r9
mov qword [rsp + 0xd8], r9
mov dword [rsp + 0x20], 0
movaps xmmword [rsp + 0xb0], xmm2
mov r9, qword [rax + 0x68]
mov qword [rsp + 0x1a0], r8
lea r8, [rsp + 0xb0]
movaps xmmword [rsp + 0x190], xmm0
movaps xmmword [rsp + 0x180], xmm2
call sym.net__wait_for_common
mov rax, qword [rsp + 0x1b0]
mov rdx, qword [rsp + 0x1b8]
mov r8, qword [rsp + 0x1d0]
mov r9, qword [rsp + 0x1d8]
movdqa xmm0, xmmword [rsp + 0x1c0]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rdx
mov qword [rsp + 0x170], r8
mov qword [rsp + 0x178], r9
mov qword [rsp + 0x180], rax
mov qword [rsp + 0x188], rdx
mov qword [rsp + 0x1a0], r8
mov qword [rsp + 0x1a8], r9
movaps xmmword [rsp + 0x160], xmm0
movaps xmmword [rsp + 0x190], xmm0
test al, al
jne 0x140020fd0
xor r9d, r9d
mov r8d, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
je 0x14002148e
mov rdx, qword [0x14003e190]
mov dword [rsp + 0x308], eax
mov byte [rsp + 0x2e0], 0
movdqa xmm6, xmmword [rdx + 0x10]
movdqa xmm4, xmmword [rdx]
movups xmmword [rsp + 0x2f8], xmm6
movdqa xmm5, xmmword [rsp + 0x300]
movups xmmword [rsp + 0x2e8], xmm4
movdqa xmm3, xmmword [rsp + 0x2e0]
movdqa xmm4, xmmword [rsp + 0x2f0]
movaps xmmword [rsp + 0x1d0], xmm5
movsxd rax, dword [rsp + 0x1d8]
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x1b0], xmm3
movaps xmmword [rsp + 0x1c0], xmm4
test eax, eax
jns 0x140020e2b
mov rcx, rdi
call sym.net__socket_error.part.0
movzx edx, byte [rsp + 0x2e0]
movsxd rax, dword [rsp + 0x308]
jmp 0x140020fc8
mov rax, qword [rsp + 0x280]
mov rdi, qword [rsp + 0x3c0]
movdqa xmm1, xmmword [rsp + 0x260]
movdqa xmm3, xmmword [rsp + 0x270]
mov qword [rsp + 0x300], rax
movdqa xmm5, xmmword [rsp + 0x310]
movdqa xmm4, xmmword [rsp + 0x300]
mov rax, qword [rsp + 0x320]
movups xmmword [rdi], xmm1
movups xmmword [rdi + 0x10], xmm3
mov qword [rdi + 0x40], rax
movups xmmword [rdi + 0x20], xmm4
movups xmmword [rdi + 0x30], xmm5
jmp 0x1400210fd
lea rax, str.none
mov ecx, 0x18
mov dword [rsp + 0x2f0], 0
mov rdi, qword [rsp + 0x3c0]
mov qword [rsp + 0x2e0], rax
mov rax, qword [0x14003ce00]
mov qword [rsp + 0x2e8], rax
call sym._v_malloc
mov rdx, qword [rsp + 0x2f0]
movdqa xmm3, xmmword [rsp + 0x2e0]
mov qword [rax + 0x10], rdx
movups xmmword [rax], xmm3
jmp 0x14002103c
lea rax, str.calloc_noscan_
pxor xmm0, xmm0
lea rcx, [rsp + 0xa0]
mov dword [rsp + 0x2f0], 0xfe09
mov qword [rsp + 0x2e0], rax
mov rax, qword [0x14003cf28]
lea rdx, [rsp + 0x2e0]
movups xmmword [rsp + 0x304], xmm0
mov qword [rsp + 0x2e8], rax
lea rax, [0x14003bcef]
mov qword [rsp + 0x308], rax
mov rax, qword [0x14003ce50]
movups xmmword [rsp + 0x314], xmm0
movups xmmword [rsp + 0x2f4], xmm0
mov qword [rsp + 0x310], rax
mov qword [rsp + 0x2f8], rbp
movups xmmword [rsp + 0x320], xmm0
call sym.str_intp.constprop.0
mov edx, dword [rsp + 0xa8]
mov rcx, qword [rsp + 0xa0]
call sym._v_panic.isra.0
nop
nop word cs:[rax + rax]
nop