Function at 0x140016510
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
movdqa xmmword [rsp + 0x130], xmm14
movdqa xmmword [rsp + 0x120], xmm13
movdqa xmmword [rsp + 0x110], xmm12
movdqa xmmword [rsp + 0x100], xmm11
movdqa xmmword [rsp + 0xf0], xmm10
movdqa xmmword [rsp + 0xe0], xmm9
movdqa xmmword [rsp + 0xd0], xmm8
movdqa xmmword [rsp + 0xc0], xmm7
movdqa xmmword [rsp + 0xb0], xmm6
mov rdi, rcx
mov rax, qword [rcx + 0x20]
movzx ecx, byte [rcx + 0x80]
mov r9, r8
test rcx, rcx
je 0x1400165a2
mov r10d, 0x40
sub r10, rcx
mov r9, r8
sub r9, r10
jbe 0x1400165c5
not rax
mov r10d, r9d
and r10d, 0x3f
shr r9, 6
cmp r10, 1
sbb r9, 0xffffffffffffffff
cmp r9, rax
ja 0x140016e82
test cl, cl
je 0x140016601
mov r10d, 0x40
sub r10, rcx
lea rax, [rdi + rcx]
add rax, 0x40
mov r11, r8
sub r11, r10
jae 0x1400165f5
test r8, r8
je 0x140016e15
cmp r8, 8
jae 0x140016612
xor r10d, r10d
jmp 0x140016e00
cmp cl, 0x38
jbe 0x140016609
xor ecx, ecx
jmp 0x1400166b0
mov r11, r8
jmp 0x1400166c8
cmp cl, 0x20
jbe 0x140016624
xor ecx, ecx
jmp 0x140016685
cmp r8, 0x20
jae 0x140016d7a
xor r10d, r10d
jmp 0x140016dd3
mov rcx, r10
and rcx, 0xffffffffffffffe0
movdqu xmm0, xmmword [rdx]
movdqu xmm1, xmmword [rdx + 0x10]
movdqu xmm2, xmmword [rax]
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax + 0x10]
pxor xmm0, xmm1
movdqu xmmword [rdx], xmm2
movdqu xmmword [rdx + 0x10], xmm0
cmp rcx, 0x20
je 0x14001667a
movdqu xmm0, xmmword [rdx + 0x20]
movdqu xmm1, xmmword [rdx + 0x30]
movdqu xmm2, xmmword [rax + 0x20]
pxor xmm2, xmm0
movdqu xmm0, xmmword [rax + 0x30]
pxor xmm0, xmm1
movdqu xmmword [rdx + 0x20], xmm2
movdqu xmmword [rdx + 0x30], xmm0
cmp r10, rcx
je 0x1400166c5
test r10b, 0x18
je 0x1400166b0
mov r8, rcx
mov rcx, r10
and rcx, 0xfffffffffffffff8
nop
mov r9, qword [rax + r8]
xor qword [rdx + r8], r9
add r8, 8
cmp rcx, r8
jne 0x140016690
cmp r10, rcx
je 0x1400166c5
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
xor byte [rdx + rcx], r8b
lea r8, [rcx + 1]
mov rcx, r8
cmp r10, r8
jne 0x1400166b0
add rdx, r10
mov eax, r11d
and eax, 0x3f
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x48], r11
cmp r11, 0x40
mov qword [rsp + 0x88], rdi
jb 0x140016a38
mov rax, qword [rsp + 0x48]
shr rax, 6
mov qword [rsp + 0x90], rax
mov eax, 1
mov rcx, rdx
mov qword [rsp + 0x40], rdx
nop dword [rax + rax]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rax
mov r13d, dword [rdi]
mov ebx, dword [rdi + 4]
mov eax, dword [rdi + 8]
mov qword [rsp + 0x30], rax
mov eax, dword [rdi + 0xc]
mov qword [rsp + 0x28], rax
mov r8d, dword [rdi + 0x10]
mov eax, dword [rdi + 0x14]
mov r12d, dword [rdi + 0x18]
mov r14d, dword [rdi + 0x1c]
mov edx, dword [rdi + 0x20]
mov ecx, dword [rdi + 0x24]
mov r9d, dword [rdi + 0x28]
mov ebp, dword [rdi + 0x2c]
mov esi, dword [rdi + 0x30]
mov r15d, dword [rdi + 0x34]
mov r11d, dword [rdi + 0x38]
mov r10d, dword [rdi + 0x3c]
mov edi, 0xa
nop word cs:[rax + rax]
mov qword [rsp + 0x78], rdi
lea edi, [rsi + r13]
rol edi, 7
xor edi, r8d
mov qword [rsp + 0x58], rdi
lea r8d, [rdi + r13]
rol r8d, 9
xor r8d, edx
mov qword [rsp + 0x68], r8
lea edx, [r8 + rdi]
rol edx, 0xd
xor edx, esi
mov qword [rsp + 0x70], rdx
add edx, r8d
rol edx, 0x12
xor edx, r13d
lea r8d, [rbx + rax]
rol r8d, 7
xor r8d, ecx
mov qword [rsp + 0x50], r8
lea ecx, [r8 + rax]
rol ecx, 9
xor ecx, r15d
mov qword [rsp + 0x60], rcx
add r8d, ecx
rol r8d, 0xd
xor r8d, ebx
add ecx, r8d
rol ecx, 0x12
xor ecx, eax
lea eax, [r12 + r9]
rol eax, 7
xor eax, r11d
mov qword [rsp + 0xa8], rax
lea esi, [rax + r9]
rol esi, 9
xor esi, dword [rsp + 0x30]
add eax, esi
rol eax, 0xd
xor eax, r12d
lea r11d, [rax + rsi]
rol r11d, 0x12
xor r11d, r9d
lea r12d, [r10 + rbp]
rol r12d, 7
xor r12d, dword [rsp + 0x28]
lea r15d, [r12 + r10]
rol r15d, 9
xor r15d, r14d
lea r9d, [r15 + r12]
rol r9d, 0xd
xor r9d, ebp
lea edi, [r9 + r15]
rol edi, 0x12
xor edi, r10d
lea ebx, [r12 + rdx]
rol ebx, 7
xor ebx, r8d
lea r10d, [rbx + rdx]
rol r10d, 9
xor r10d, esi
lea r8d, [r10 + rbx]
rol r8d, 0xd
xor r8d, r12d
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x30], r10
lea r13d, [r8 + r10]
rol r13d, 0x12
xor r13d, edx
mov rdx, qword [rsp + 0x58]
lea r12d, [rcx + rdx]
rol r12d, 7
xor r12d, eax
lea r14d, [r12 + rcx]
rol r14d, 9
xor r14d, r15d
lea r8d, [r14 + r12]
rol r8d, 0xd
xor r8d, edx
lea eax, [r8 + r14]
rol eax, 0x12
xor eax, ecx
mov r10, qword [rsp + 0x50]
lea ebp, [r11 + r10]
rol ebp, 7
xor ebp, r9d
lea edx, [r11 + rbp]
rol edx, 9
xor edx, dword [rsp + 0x68]
lea ecx, [rdx + rbp]
rol ecx, 0xd
xor ecx, r10d
lea r9d, [rcx + rdx]
rol r9d, 0x12
xor r9d, r11d
mov r10, qword [rsp + 0xa8]
lea esi, [rdi + r10]
rol esi, 7
xor esi, dword [rsp + 0x70]
lea r15d, [rsi + rdi]
rol r15d, 9
xor r15d, dword [rsp + 0x60]
lea r11d, [r15 + rsi]
rol r11d, 0xd
xor r11d, r10d
lea r10d, [r11 + r15]
rol r10d, 0x12
xor r10d, edi
mov rdi, qword [rsp + 0x78]
dec rdi
jne 0x140016770
movd xmm3, r10d
movd xmm1, r11d
movd xmm4, r15d
movd xmm0, esi
movd xmm6, ebp
movd xmm5, r9d
movd xmm7, ecx
movd xmm2, edx
movd xmm8, r14d
movd xmm9, r12d
movd xmm10, eax
movd xmm11, r8d
movd xmm12, dword [rsp + 0x28]
movd xmm13, dword [rsp + 0x30]
movd xmm14, ebx
punpckldq xmm1, xmm3
punpckldq xmm0, xmm4
mov rdi, qword [rsp + 0x88]
movdqu xmm3, xmmword [rdi]
punpcklqdq xmm0, xmm1
movdqu xmm1, xmmword [rdi + 0x30]
paddd xmm0, xmm1
mov rcx, qword [rsp + 0x98]
movdqu xmm1, xmmword [rcx + 0x30]
pxor xmm0, xmm1
movdqu xmm1, xmmword [rdi + 0x10]
punpckldq xmm5, xmm6
movdqu xmm4, xmmword [rdi + 0x20]
inc qword [rdi + 0x20]
punpckldq xmm2, xmm7
punpcklqdq xmm2, xmm5
paddd xmm2, xmm4
movdqu xmm4, xmmword [rcx + 0x20]
pxor xmm2, xmm4
punpckldq xmm9, xmm8
movd xmm4, r13d
xor eax, eax
mov r8, qword [rsp + 0x90]
mov r9, qword [rsp + 0xa0]
cmp r8, r9
setne al
punpckldq xmm11, xmm10
movdqu xmm5, xmmword [rcx]
punpcklqdq xmm11, xmm9
movdqu xmm6, xmmword [rcx + 0x10]
paddd xmm11, xmm1
pxor xmm11, xmm6
punpckldq xmm13, xmm12
punpckldq xmm4, xmm14
punpcklqdq xmm4, xmm13
paddd xmm4, xmm3
pxor xmm4, xmm5
movdqu xmmword [rcx], xmm4
movdqu xmmword [rcx + 0x10], xmm11
movdqu xmmword [rcx + 0x20], xmm2
movdqu xmmword [rcx + 0x30], xmm0
mov rcx, r9
shl rcx, 6
mov rdx, qword [rsp + 0x40]
add rcx, rdx
add rax, r9
cmp r8, r9
jne 0x140016710
mov r8, qword [rsp + 0x80]
test r8, r8
je 0x140016e18
mov rax, qword [rsp + 0x48]
and rax, 0xffffffffffffffc0
add rdx, rax
mov qword [rsp + 0x40], rdx
mov r8d, dword [rdi]
mov r14d, dword [rdi + 4]
mov rax, rdi
mov edi, dword [rdi + 8]
mov ecx, dword [rax + 0xc]
mov qword [rsp + 0x28], rcx
mov ecx, dword [rax + 0x10]
mov r12d, dword [rax + 0x14]
mov ebx, dword [rax + 0x18]
mov edx, dword [rax + 0x1c]
mov qword [rsp + 0x30], rdx
mov r13d, dword [rax + 0x20]
mov ebp, dword [rax + 0x24]
mov r15d, dword [rax + 0x28]
mov esi, dword [rax + 0x2c]
mov r10d, dword [rax + 0x30]
mov r9d, dword [rax + 0x34]
mov edx, dword [rax + 0x38]
mov eax, dword [rax + 0x3c]
mov r11d, 0xa
mov qword [rsp + 0x50], r11
mov r11, qword [rsp + 0x28]
nop dword [rax]
mov qword [rsp + 0x28], rdi
lea edi, [r10 + r8]
rol edi, 7
xor edi, ecx
mov qword [rsp + 0x60], rdi
lea ecx, [rdi + r8]
rol ecx, 9
xor ecx, r13d
mov r13, rcx
mov qword [rsp + 0x70], rcx
add ecx, edi
rol ecx, 0xd
xor ecx, r10d
mov qword [rsp + 0x78], rcx
add ecx, r13d
rol ecx, 0x12
xor ecx, r8d
lea r10d, [r14 + r12]
rol r10d, 7
xor r10d, ebp
lea edi, [r10 + r12]
rol edi, 9
xor edi, r9d
mov qword [rsp + 0x68], rdi
lea r8d, [rdi + r10]
rol r8d, 0xd
xor r8d, r14d
lea r9d, [r8 + rdi]
rol r9d, 0x12
xor r9d, r12d
lea edi, [rbx + r15]
rol edi, 7
xor edi, edx
mov qword [rsp + 0x58], rdi
lea r13d, [rdi + r15]
rol r13d, 9
xor r13d, dword [rsp + 0x28]
lea r12d, [rdi + r13]
rol r12d, 0xd
xor r12d, ebx
lea edx, [r12 + r13]
rol edx, 0x12
xor edx, r15d
lea ebx, [rsi + rax]
rol ebx, 7
xor ebx, r11d
lea ebp, [rbx + rax]
rol ebp, 9
xor ebp, dword [rsp + 0x30]
lea r15d, [rbx + rbp]
rol r15d, 0xd
xor r15d, esi
lea r11d, [r15 + rbp]
rol r11d, 0x12
xor r11d, eax
mov qword [rsp + 0x28], r11
lea r14d, [rbx + rcx]
rol r14d, 7
xor r14d, r8d
lea edi, [r14 + rcx]
rol edi, 9
xor edi, r13d
lea r11d, [rdi + r14]
rol r11d, 0xd
xor r11d, ebx
lea r8d, [r11 + rdi]
rol r8d, 0x12
xor r8d, ecx
mov rsi, qword [rsp + 0x60]
lea ebx, [r9 + rsi]
rol ebx, 7
xor ebx, r12d
lea eax, [rbx + r9]
rol eax, 9
xor eax, ebp
lea ecx, [rax + rbx]
rol ecx, 0xd
xor ecx, esi
mov qword [rsp + 0x30], rax
lea r12d, [rcx + rax]
rol r12d, 0x12
xor r12d, r9d
lea esi, [rdx + r10]
rol esi, 7
xor esi, r15d
lea r13d, [rsi + rdx]
rol r13d, 9
xor r13d, dword [rsp + 0x70]
lea ebp, [rsi + r13]
rol ebp, 0xd
xor ebp, r10d
lea r15d, [rbp + r13]
rol r15d, 0x12
xor r15d, edx
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x28]
lea r10d, [rdx + rax]
rol r10d, 7
xor r10d, dword [rsp + 0x78]
lea r9d, [r10 + rdx]
rol r9d, 9
xor r9d, dword [rsp + 0x68]
lea edx, [r9 + r10]
rol edx, 0xd
xor edx, eax
lea eax, [rdx + r9]
rol eax, 0x12
xor eax, dword [rsp + 0x28]
dec qword [rsp + 0x50]
jne 0x140016ab0
movd xmm1, r11d
movd xmm0, edi
movd xmm2, r14d
movd xmm3, r8d
movd xmm4, dword [rsp + 0x30]
movd xmm5, ebx
movd xmm6, r12d
movd xmm7, ecx
movd xmm8, esi
movd xmm9, r15d
movd xmm10, ebp
punpckldq xmm0, xmm1
movd xmm1, r13d
mov rdi, qword [rsp + 0x88]
mov rcx, qword [rdi + 0x20]
punpckldq xmm3, xmm2
punpcklqdq xmm3, xmm0
movdqu xmm0, xmmword [rdi]
paddd xmm0, xmm3
movdqu xmm2, xmmword [rdi + 0x10]
movdqu xmm3, xmmword [rdi + 0x20]
movdqu xmmword [rdi + 0x40], xmm0
punpckldq xmm5, xmm4
inc rcx
punpckldq xmm7, xmm6
punpcklqdq xmm7, xmm5
paddd xmm7, xmm2
movdqu xmmword [rdi + 0x50], xmm7
mov dword [rdi + 0x20], ecx
shr rcx, 0x20
mov dword [rdi + 0x24], ecx
movd xmm0, eax
movd xmm2, edx
movd xmm4, r9d
movd xmm5, r10d
punpckldq xmm9, xmm8
punpckldq xmm1, xmm10
punpcklqdq xmm1, xmm9
paddd xmm1, xmm3
movdqu xmmword [rdi + 0x60], xmm1
movdqu xmm1, xmmword [rdi + 0x30]
punpckldq xmm2, xmm0
punpckldq xmm5, xmm4
punpcklqdq xmm5, xmm2
paddd xmm5, xmm1
movdqu xmmword [rdi + 0x70], xmm5
mov r8, qword [rsp + 0x80]
cmp r8d, 8
jae 0x140016d2a
xor eax, eax
mov r9, qword [rsp + 0x40]
jmp 0x140016d60
mov r10, qword [rsp + 0x48]
and r10d, 7
mov rax, r8
sub rax, r10
xor ecx, ecx
mov r9, qword [rsp + 0x40]
mov rdx, qword [rdi + rcx + 0x40]
xor qword [r9 + rcx], rdx
add rcx, 8
cmp rax, rcx
jne 0x140016d40
test r10, r10
je 0x140016e18
nop dword [rax + rax]
movzx ecx, byte [rdi + rax + 0x40]
xor byte [r9 + rax], cl
lea rcx, [rax + 1]
mov rax, rcx
cmp r8, rcx
jne 0x140016d60
jmp 0x140016e18
mov r10, r8
and r10, 0xffffffffffffffe0
lea r11, [rcx + rdi]
add r11, 0x50
xor r9d, r9d
nop dword [rax]
movdqu xmm0, xmmword [rdx + r9]
movdqu xmm1, xmmword [rdx + r9 + 0x10]
movdqu xmm2, xmmword [r11 + r9 - 0x10]
pxor xmm2, xmm0
movdqu xmm0, xmmword [r11 + r9]
pxor xmm0, xmm1
movdqu xmmword [rdx + r9], xmm2
movdqu xmmword [rdx + r9 + 0x10], xmm0
add r9, 0x20
cmp r10, r9
jne 0x140016d90
cmp r10, r8
je 0x140016e15
test r8b, 0x18
je 0x140016e00
mov r11, r10
mov r10, r8
and r10, 0xfffffffffffffff8
nop dword [rax]
mov r9, qword [rax + r11]
xor qword [rdx + r11], r9
add r11, 8
cmp r10, r11
jne 0x140016de0
cmp r10, r8
je 0x140016e15
nop word cs:[rax + rax]
movzx r9d, byte [rax + r10]
xor byte [rdx + r10], r9b
lea r9, [r10 + 1]
mov r10, r9
cmp r8, r9
jne 0x140016e00
add r8b, cl
mov byte [rdi + 0x80], r8b
movaps xmm6, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm8, xmmword [rsp + 0xd0]
movaps xmm9, xmmword [rsp + 0xe0]
movaps xmm10, xmmword [rsp + 0xf0]
movaps xmm11, xmmword [rsp + 0x100]
movaps xmm12, xmmword [rsp + 0x110]
movaps xmm13, xmmword [rsp + 0x120]
movaps xmm14, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, str.C:UsersA_scooppersist_rustup.cargo_registry_srcindex.crates.io_6f17d22bba15001fcipher_0.4.4_src_stream.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x140043c16]
lea r9, [0x140043c48]
lea r8, [rsp + 0x3f]
mov edx, 0x2b
call fcn.14003ca10
int3