Function at 0x566bd5
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
movdqa xmmword [rsp + 0x70], xmm7
movdqa xmmword [rsp + 0x60], xmm6
mov r13, r9
mov r14, r8
mov r15, rdx
mov rsi, rcx
lea r12, [rdx + 0x10]
mov rcx, r12
call fcn.0056712c
mov rdi, rax
test rax, rax
je 0x566ca5
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], 1
mov eax, edi
and eax, 3
cmp eax, 1
jne 0x566e76
cmp byte [rdi + 0xf], 6
jne 0x566e76
mov rcx, qword [rdi - 1]
mov rax, qword [rdi + 7]
call qword [rax + 0x40]
mov r14, rax
mov rbx, rdx
cmp rdx, 0xc
jb 0x566e4c
cmp rbx, 0x19
ja 0x566eac
movabs rax, 0x796669746f4e6573
movabs rcx, 0x746f4e65736f6c43
mov rdx, rbx
cmp rbx, 0xb
jb 0x566c99
mov r8, qword [r14]
mov r9, qword [r14 + 3]
inc r14
lea rbx, [rdx - 1]
xor r8, rcx
xor r9, rax
or r9, r8
jne 0x566c77
cmp rdx, 0xb
setae al
jmp 0x567030
lea rdi, [rsp + 0x30]
cmp qword [r15 + 0xf0], 0
mov al, byte [r15 + 0x3fb]
jne 0x566cfc
test al, al
jne 0x566cfc
cmp byte [r15 + 0x3f7], 0
jne 0x566cd3
cmp qword [r15 + 0x150], 0
jne 0x566d1a
mov rcx, rdi
mov rdx, r12
mov r8, r15
call fcn.00567198
cmp qword [rsp + 0x30], 0
jne 0x566ea2
cmp qword [rsp + 0x38], 0
jne 0x566caa
mov al, byte [r15 + 0x3fb]
test al, al
je 0x566d1a
mov rcx, qword [r15 + 0x10]
mov rdx, qword [r15 + 0x28]
cmp rdx, rcx
jb 0x567094
test rcx, rcx
sete bpl
jmp 0x566d1c
xor ebp, ebp
mov al, byte [r15 + 0x3fc]
mov byte [rsp + 0x27], al
xor edi, edi
test r13, r13
je 0x566e09
cmp qword [r15 + 0xf0], 0
je 0x566e09
lea r12, [r15 + 0xd8]
xor edi, edi
mov rcx, qword [r15 + 0xd8]
mov rax, qword [r15 + 0xe8]
cmp rax, rcx
jb 0x566d71
mov rdx, rax
not rdx
and rdx, rcx
not rcx
and rcx, rax
sub rcx, rdx
mov rax, rcx
cmp rdi, r13
ja 0x56706e
mov rcx, qword [r15 + 0xe0]
lea rax, [rax + rax*2]
mov rdx, qword [rcx + rax*8 + 8]
mov rax, qword [rcx + rax*8 + 0x10]
mov rbx, r13
sub rbx, rdi
lea rcx, [r14 + rdi]
cmp rbx, rax
cmovae rbx, rax
cmp rbx, 1
jne 0x566dba
cmp rdi, r13
je 0x567082
mov al, byte [rdx]
mov byte [rcx], al
mov edx, 1
jmp 0x566deb
mov eax, ebx
not eax
mov r8, rbx
and r8, 0xfffffffffffffffe
mov r9d, ebx
and r9d, 1
neg r9
and eax, 1
imul rax, r8
mov r8, rbx
or r8, 1
and r8, r9
add r8, rax
call sub.msvcrt.dll_memcpy
mov rdx, rbx
mov rcx, r12
call fcn.004ff160
add rdi, rbx
cmp rdi, r13
jae 0x566e09
cmp qword [r15 + 0xf0], 0
jne 0x566d49
test r13, r13
je 0x566e3f
test rdi, rdi
jne 0x566e3f
test bpl, bpl
jne 0x566e3f
cmp byte [rsp + 0x27], 0
je 0x566edb
lea rdx, str.peer_closed_connection_without_sending_TLS_close_notify:_https:__docs.rs_rustls_latest_rustls_manual__03_howto_index.htmlunexpected_eofreceived_plaintext_buffer_fullfailed_to_parse_private_key_as_RSA__ECDSA__or_EdDSA
mov r8d, 0x88
mov cl, 0x25
call fcn.004ecd9b
mov rdi, rax
jmp 0x566c18
mov qword [rsi + 8], rdi
mov qword [rsi], 0
jmp 0x566e81
cmp rbx, 0xb
jne 0x566e76
movabs rax, 0x746f4e65736f6c43
xor rax, qword [r14]
movabs rcx, 0x796669746f4e6573
xor rcx, qword [r14 + 3]
or rcx, rax
je 0x567038
mov qword [rsi + 8], rdi
mov qword [rsi], 1
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsp + 0x38]
jmp 0x566c18
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rbx
lea rax, [0x00618099]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 0xa
xor r15d, r15d
cmp rbx, 0x4b
jae 0x566eea
xor eax, eax
jmp 0x566f9a
movabs rdi, 0xd00000003
jmp 0x566c18
movdqa xmm6, xmmword [str.yyyyyyyyyyyyyyyyCCCCCCCCCCCCCCCC]
movdqa xmm7, xmmword [0x005b84e0]
mov r12, rsi
mov qword [rsp + 0x28], 0
lea rax, [r14 + r15]
xor ecx, ecx
movdqu xmm0, xmmword [rax + rcx*8]
pcmpeqb xmm0, xmm7
movdqu xmm1, xmmword [rax + rcx*8 + 0xa]
pcmpeqb xmm1, xmm6
pand xmm1, xmm0
pmovmskb edx, xmm1
mov word [rsp + rcx + 0x28], dx
add rcx, 2
cmp rcx, 8
jne 0x566f0c
xor esi, esi
mov r13, r15
xor eax, eax
movzx r8d, word [rsp + rsi*2 + 0x28]
inc rsi
test r8w, r8w
jne 0x566f58
add r13, 0x10
cmp rsi, 4
jne 0x566f3d
jmp 0x566f73
test al, al
setne bpl
lea rcx, [rsp + 0x30]
mov rdx, r13
mov r9d, ebp
call fcn.005670a2
or al, bpl
jmp 0x566f4c
mov rcx, r15
and r15d, 0x40
xor rcx, 0x40
lea rdx, [rcx + r15*2]
add rdx, 0x4a
lea r15, [rcx + r15*2]
cmp rdx, rbx
mov rsi, r12
jae 0x566f9a
cmp al, 1
jne 0x566efa
lea rcx, [r15 + 0x1a]
cmp rcx, rbx
jae 0x567004
cmp al, 1
je 0x567004
movdqa xmm6, xmmword [str.yyyyyyyyyyyyyyyyCCCCCCCCCCCCCCCC]
movdqa xmm7, xmmword [0x005b84e0]
lea r12, [rsp + 0x30]
movdqu xmm0, xmmword [r14 + r15]
pcmpeqb xmm0, xmm7
movdqu xmm1, xmmword [r14 + r15 + 0xa]
pcmpeqb xmm1, xmm6
pand xmm1, xmm0
pmovmskb r8d, xmm1
test r8d, r8d
jne 0x566ff4
xor eax, eax
lea rcx, [r15 + 0x2a]
cmp rcx, rbx
jae 0x567004
add r15, 0x10
test al, al
je 0x566fbc
jmp 0x567004
mov rcx, r12
mov rdx, r15
xor r9d, r9d
call fcn.005670a2
jmp 0x566fe1
movdqu xmm0, xmmword [r14 + rbx - 0x1a]
movdqu xmm1, xmmword [r14 + rbx - 0x10]
pcmpeqb xmm1, xmmword [str.yyyyyyyyyyyyyyyyCCCCCCCCCCCCCCCC]
pcmpeqb xmm0, xmmword [0x005b84e0]
pand xmm0, xmm1
pmovmskb r8d, xmm0
test r8d, r8d
jne 0x56704f
test al, 1
je 0x566e76
lea rcx, [rsp + 0x58]
pxor xmm0, xmm0
movdqu xmmword [rsi], xmm0
call fcn.00438ca5
jmp 0x566e81
add rbx, 0xffffffffffffffe6
test al, al
setne bpl
lea rcx, [rsp + 0x30]
mov rdx, rbx
mov r9d, ebp
call fcn.005670a2
or al, bpl
jmp 0x567030
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_scrape_0.22.4_src_vecbuf.rs
mov rcx, rdi
mov rdx, r13
call fcn.00429500
ud2
lea r8, str._repos_rust_1.70.0_library_std_src_io_impls.rs
xor ecx, ecx
xor edx, edx
call fcn.004262b0
ud2
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_scrape_0.22.4_src_msgs_deframer.rs
call fcn.004292f0
ud2