Function at 0x180020cb0
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], xmm15
movdqa xmmword [rsp + 0x120], xmm14
movdqa xmmword [rsp + 0x110], xmm13
movdqa xmmword [rsp + 0x100], xmm12
movdqa xmmword [rsp + 0xf0], xmm11
movdqa xmmword [rsp + 0xe0], xmm10
movdqa xmmword [rsp + 0xd0], xmm9
movdqa xmmword [rsp + 0xc0], xmm8
movdqa xmmword [rsp + 0xb0], xmm7
movdqa xmmword [rsp + 0xa0], xmm6
mov rdi, rcx
mov r14, qword [rdx + 0x10]
mov r9, qword [rcx + 0x20]
not r9
movzx r8d, byte [rcx + 0x80]
test r8, r8
je 0x180020ed1
mov ecx, 0x40
sub rcx, r8
mov r10, r14
sub r10, rcx
jbe 0x180020d71
mov eax, r10d
and eax, 0x3f
shr r10, 6
cmp rax, 1
sbb r10, 0xffffffffffffffff
mov al, 1
cmp r10, r9
ja 0x18002170b
lea r10, [rdi + r8]
add r10, 0x40
mov rax, r14
sub rax, rcx
jae 0x180020f07
test r14, r14
je 0x180020ec9
mov rax, qword [rdx]
mov rcx, qword [rdx + 8]
xor edx, edx
cmp r14, 8
jb 0x180020e36
mov r9, rcx
sub r9, rax
cmp r9, 8
jb 0x180020e36
mov rdx, r14
and rdx, 0xfffffffffffffff8
mov r9, qword [r10]
xor r9, qword [rax]
mov qword [rcx], r9
cmp rdx, 8
je 0x180020e2d
mov r9, qword [r10 + 8]
xor r9, qword [rax + 8]
mov qword [rcx + 8], r9
cmp rdx, 0x10
je 0x180020e2d
mov r9, qword [r10 + 0x10]
xor r9, qword [rax + 0x10]
mov qword [rcx + 0x10], r9
cmp rdx, 0x18
je 0x180020e2d
mov r9, qword [r10 + 0x18]
xor r9, qword [rax + 0x18]
mov qword [rcx + 0x18], r9
cmp rdx, 0x20
je 0x180020e2d
mov r9, qword [r10 + 0x20]
xor r9, qword [rax + 0x20]
mov qword [rcx + 0x20], r9
cmp rdx, 0x28
je 0x180020e2d
mov r9, qword [r10 + 0x28]
xor r9, qword [rax + 0x28]
mov qword [rcx + 0x28], r9
cmp rdx, 0x30
je 0x180020e2d
mov r9, qword [r10 + 0x30]
xor r9, qword [rax + 0x30]
mov qword [rcx + 0x30], r9
cmp r14, rdx
je 0x180020ec9
mov r11, r14
mov r9, rdx
and r11, 3
je 0x180020e67
mov rsi, rdx
nop word cs:[rax + rax]
movzx ebx, byte [r10 + rsi]
xor bl, byte [rax + rsi]
lea r9, [rsi + 1]
mov byte [rcx + rsi], bl
mov rsi, r9
dec r11
jne 0x180020e50
sub rdx, r14
cmp rdx, 0xfffffffffffffffc
ja 0x180020ec9
lea rdx, [r8 + rdi]
add rdx, 0x43
nop dword [rax + rax]
movzx r10d, byte [rdx + r9 - 3]
xor r10b, byte [rax + r9]
mov byte [rcx + r9], r10b
movzx r10d, byte [rdx + r9 - 2]
xor r10b, byte [rax + r9 + 1]
mov byte [rcx + r9 + 1], r10b
movzx r10d, byte [rdx + r9 - 1]
xor r10b, byte [rax + r9 + 2]
mov byte [rcx + r9 + 2], r10b
movzx r10d, byte [rdx + r9]
xor r10b, byte [rax + r9 + 3]
mov byte [rcx + r9 + 3], r10b
lea r10, [r9 + 4]
mov r9, r10
cmp r14, r10
jne 0x180020e80
add r14b, r8b
jmp 0x180021702
mov eax, r14d
and eax, 0x3f
mov rcx, r14
shr rcx, 6
cmp rax, 1
sbb rcx, 0xffffffffffffffff
mov al, 1
cmp rcx, r9
ja 0x18002170b
mov rax, qword [rdx]
mov qword [rsp + 0x40], rax
mov rax, qword [rdx + 8]
mov qword [rsp + 0x38], rax
jmp 0x18002101c
mov r9, qword [rdx]
mov r11, qword [rdx + 8]
lea rsi, [r9 + rcx]
lea rbx, [r11 + rcx]
mov qword [rsp + 0x40], rsi
mov qword [rdx], rsi
mov qword [rsp + 0x38], rbx
mov qword [rdx + 8], rbx
mov qword [rdx + 0x10], rax
xor edx, edx
cmp r8b, 0x38
ja 0x180021000
mov rsi, r11
sub rsi, r9
cmp rsi, 0x10
jb 0x180021000
cmp r8b, 0x30
jbe 0x180020f83
xor edx, edx
mov r8, rdx
mov edx, ecx
and edx, 0x78
nop word [rax + rax]
mov rsi, qword [r10 + r8]
xor rsi, qword [r9 + r8]
mov qword [r11 + r8], rsi
add r8, 8
cmp rdx, r8
jne 0x180020f60
cmp rcx, rdx
jne 0x180021000
jmp 0x180021019
mov edx, ecx
and edx, 0x70
movdqu xmm0, xmmword [r9]
movdqu xmm1, xmmword [r10]
pxor xmm1, xmm0
movdqu xmmword [r11], xmm1
cmp rdx, 0x10
je 0x180020fed
movdqu xmm0, xmmword [r9 + 0x10]
movdqu xmm1, xmmword [r10 + 0x10]
pxor xmm1, xmm0
movdqu xmmword [r11 + 0x10], xmm1
cmp edx, 0x20
je 0x180020fed
movdqu xmm0, xmmword [r9 + 0x20]
movdqu xmm1, xmmword [r10 + 0x20]
pxor xmm1, xmm0
movdqu xmmword [r11 + 0x20], xmm1
cmp edx, 0x30
je 0x180020fed
movdqu xmm0, xmmword [r9 + 0x30]
movdqu xmm1, xmmword [r10 + 0x30]
pxor xmm1, xmm0
movdqu xmmword [r11 + 0x30], xmm1
cmp rcx, rdx
je 0x180021019
test cl, 8
jne 0x180020f4f
nop dword [rax + rax]
movzx r8d, byte [r10 + rdx]
xor r8b, byte [r9 + rdx]
mov byte [r11 + rdx], r8b
lea r8, [rdx + 1]
mov rdx, r8
cmp rcx, r8
jne 0x180021000
mov r14, rax
mov eax, r14d
and eax, 0x3f
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x30], r14
cmp r14, 0x40
mov qword [rsp + 0x88], rdi
jb 0x180021365
mov rax, qword [rsp + 0x30]
shr rax, 6
mov qword [rsp + 0x90], rax
xor edx, edx
nop word cs:[rax + rax]
mov qword [rsp + 0x98], rdx
mov r13d, dword [rdi]
mov ebx, dword [rdi + 4]
mov eax, dword [rdi + 8]
mov qword [rsp + 0x28], rax
mov eax, dword [rdi + 0xc]
mov qword [rsp + 0x20], rax
mov eax, dword [rdi + 0x10]
mov edx, dword [rdi + 0x14]
mov r12d, dword [rdi + 0x18]
mov r15d, dword [rdi + 0x1c]
mov ecx, dword [rdi + 0x20]
mov r14d, dword [rdi + 0x24]
mov r8d, dword [rdi + 0x28]
mov ebp, dword [rdi + 0x2c]
mov esi, dword [rdi + 0x30]
mov r11d, dword [rdi + 0x34]
mov r10d, dword [rdi + 0x38]
mov r9d, dword [rdi + 0x3c]
mov edi, 0xa
nop
mov qword [rsp + 0x78], rdi
lea edi, [rsi + r13]
rol edi, 7
xor edi, eax
mov rax, rdi
add edi, r13d
mov qword [rsp + 0x48], rax
rol edi, 9
xor edi, ecx
mov qword [rsp + 0x68], rdi
add eax, edi
rol eax, 0xd
xor eax, esi
mov qword [rsp + 0x70], rax
add eax, edi
rol eax, 0x12
xor eax, r13d
lea ecx, [rbx + rdx]
rol ecx, 7
xor ecx, r14d
mov qword [rsp + 0x58], rcx
lea esi, [rcx + rdx]
rol esi, 9
xor esi, r11d
mov qword [rsp + 0x60], rsi
lea r11d, [rsi + rcx]
rol r11d, 0xd
xor r11d, ebx
lea ecx, [r11 + rsi]
rol ecx, 0x12
xor ecx, edx
lea edx, [r12 + r8]
rol edx, 7
xor edx, r10d
mov qword [rsp + 0x50], rdx
lea esi, [rdx + r8]
rol esi, 9
xor esi, dword [rsp + 0x28]
add edx, esi
rol edx, 0xd
xor edx, r12d
lea r10d, [rdx + rsi]
rol r10d, 0x12
xor r10d, r8d
lea r12d, [r9 + rbp]
rol r12d, 7
xor r12d, dword [rsp + 0x20]
lea r14d, [r12 + r9]
rol r14d, 9
xor r14d, r15d
lea r8d, [r14 + r12]
rol r8d, 0xd
xor r8d, ebp
lea edi, [r8 + r14]
rol edi, 0x12
xor edi, r9d
lea ebx, [r12 + rax]
rol ebx, 7
xor ebx, r11d
lea r11d, [rbx + rax]
rol r11d, 9
xor r11d, esi
lea r9d, [r11 + rbx]
rol r9d, 0xd
xor r9d, r12d
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], r11
lea r13d, [r9 + r11]
rol r13d, 0x12
xor r13d, eax
mov r9, qword [rsp + 0x48]
lea r12d, [rcx + r9]
rol r12d, 7
xor r12d, edx
lea r15d, [r12 + rcx]
rol r15d, 9
xor r15d, r14d
lea eax, [r15 + r12]
rol eax, 0xd
xor eax, r9d
lea edx, [rax + r15]
rol edx, 0x12
xor edx, ecx
mov r9, qword [rsp + 0x58]
lea ebp, [r10 + r9]
rol ebp, 7
xor ebp, r8d
lea ecx, [r10 + rbp]
rol ecx, 9
xor ecx, dword [rsp + 0x68]
lea r14d, [rcx + rbp]
rol r14d, 0xd
xor r14d, r9d
lea r8d, [r14 + rcx]
rol r8d, 0x12
xor r8d, r10d
mov r9, qword [rsp + 0x50]
lea esi, [rdi + r9]
rol esi, 7
xor esi, dword [rsp + 0x70]
lea r11d, [rsi + rdi]
rol r11d, 9
xor r11d, dword [rsp + 0x60]
lea r10d, [r11 + rsi]
rol r10d, 0xd
xor r10d, r9d
lea r9d, [r10 + r11]
rol r9d, 0x12
xor r9d, edi
mov rdi, qword [rsp + 0x78]
dec rdi
jne 0x1800210b0
movd xmm6, r9d
movd xmm3, r10d
movd xmm7, r11d
movd xmm0, esi
movd xmm5, ebp
movd xmm4, r8d
movd xmm8, r14d
movd xmm1, ecx
movd xmm10, r15d
movd xmm9, r12d
movd xmm12, edx
movd xmm2, eax
movd xmm14, dword [rsp + 0x20]
movd xmm13, dword [rsp + 0x28]
mov rdi, qword [rsp + 0x88]
movdqu xmm11, xmmword [rdi]
movdqu xmm15, xmmword [rdi + 0x10]
punpckldq xmm3, xmm6
movdqu xmm6, xmmword [rdi + 0x20]
punpckldq xmm0, xmm7
movdqu xmm7, xmmword [rdi + 0x30]
inc qword [rdi + 0x20]
punpcklqdq xmm0, xmm3
movd xmm3, ebx
mov rdx, qword [rsp + 0x98]
mov rax, rdx
shl rax, 6
paddd xmm0, xmm7
mov rcx, qword [rsp + 0x40]
movdqu xmm7, xmmword [rcx + rax + 0x30]
pxor xmm0, xmm7
movd xmm7, r13d
punpckldq xmm4, xmm5
punpckldq xmm1, xmm8
punpcklqdq xmm1, xmm4
paddd xmm1, xmm6
movdqu xmm4, xmmword [rcx + rax + 0x20]
pxor xmm1, xmm4
punpckldq xmm9, xmm10
punpckldq xmm2, xmm12
movdqu xmm4, xmmword [rcx + rax]
punpcklqdq xmm2, xmm9
movdqu xmm5, xmmword [rcx + rax + 0x10]
paddd xmm2, xmm15
pxor xmm2, xmm5
punpckldq xmm13, xmm14
punpckldq xmm7, xmm3
punpcklqdq xmm7, xmm13
paddd xmm7, xmm11
pxor xmm7, xmm4
mov rcx, qword [rsp + 0x38]
movdqu xmmword [rcx + rax], xmm7
movdqu xmmword [rcx + rax + 0x10], xmm2
movdqu xmmword [rcx + rax + 0x20], xmm1
movdqu xmmword [rcx + rax + 0x30], xmm0
inc rdx
cmp qword [rsp + 0x90], rdx
jne 0x180021060
mov r14, qword [rsp + 0x80]
test r14, r14
mov rax, qword [rsp + 0x30]
je 0x180021702
and rax, 0xffffffffffffffc0
mov rcx, qword [rsp + 0x40]
add rcx, rax
mov qword [rsp + 0x48], rcx
add rax, qword [rsp + 0x38]
mov qword [rsp + 0x30], rax
mov r10d, dword [rdi]
mov r13d, dword [rdi + 4]
mov r14d, dword [rdi + 8]
mov eax, dword [rdi + 0xc]
mov qword [rsp + 0x20], rax
mov r11d, dword [rdi + 0x10]
mov ebp, dword [rdi + 0x14]
mov r15d, dword [rdi + 0x18]
mov eax, dword [rdi + 0x1c]
mov qword [rsp + 0x28], rax
mov esi, dword [rdi + 0x20]
mov ecx, dword [rdi + 0x24]
mov edx, dword [rdi + 0x28]
mov ebx, dword [rdi + 0x2c]
mov r9d, dword [rdi + 0x30]
mov eax, dword [rdi + 0x34]
mov r8d, dword [rdi + 0x38]
mov r12d, dword [rdi + 0x3c]
mov edi, 0xa
mov qword [rsp + 0x50], rdi
mov rdi, qword [rsp + 0x20]
nop word cs:[rax + rax]
mov qword [rsp + 0x20], r14
lea r14d, [r9 + r10]
rol r14d, 7
xor r14d, r11d
mov qword [rsp + 0x60], r14
lea r11d, [r14 + r10]
rol r11d, 9
xor r11d, esi
mov rsi, r11
mov qword [rsp + 0x70], r11
add r11d, r14d
rol r11d, 0xd
xor r11d, r9d
mov qword [rsp + 0x78], r11
add r11d, esi
rol r11d, 0x12
xor r11d, r10d
lea r9d, [r13 + rbp]
rol r9d, 7
xor r9d, ecx
lea r10d, [r9 + rbp]
rol r10d, 9
xor r10d, eax
mov qword [rsp + 0x68], r10
lea ecx, [r10 + r9]
rol ecx, 0xd
xor ecx, r13d
lea eax, [rcx + r10]
rol eax, 0x12
xor eax, ebp
lea esi, [r15 + rdx]
rol esi, 7
xor esi, r8d
mov qword [rsp + 0x58], rsi
lea r10d, [rsi + rdx]
rol r10d, 9
xor r10d, dword [rsp + 0x20]
add esi, r10d
rol esi, 0xd
xor esi, r15d
lea r8d, [rsi + r10]
rol r8d, 0x12
xor r8d, edx
lea r15d, [rbx + r12]
rol r15d, 7
xor r15d, edi
lea ebp, [r15 + r12]
rol ebp, 9
xor ebp, dword [rsp + 0x28]
lea edx, [r15 + rbp]
rol edx, 0xd
xor edx, ebx
lea edi, [rdx + rbp]
rol edi, 0x12
xor edi, r12d
mov qword [rsp + 0x20], rdi
lea r13d, [r15 + r11]
rol r13d, 7
xor r13d, ecx
lea r14d, [r11 + r13]
rol r14d, 9
xor r14d, r10d
lea edi, [r14 + r13]
rol edi, 0xd
xor edi, r15d
lea r10d, [rdi + r14]
rol r10d, 0x12
xor r10d, r11d
mov rbx, qword [rsp + 0x60]
lea r15d, [rax + rbx]
rol r15d, 7
xor r15d, esi
lea ecx, [r15 + rax]
rol ecx, 9
xor ecx, ebp
lea r11d, [rcx + r15]
rol r11d, 0xd
xor r11d, ebx
mov qword [rsp + 0x28], rcx
lea ebp, [r11 + rcx]
rol ebp, 0x12
xor ebp, eax
lea ebx, [r8 + r9]
rol ebx, 7
xor ebx, edx
lea esi, [rbx + r8]
rol esi, 9
xor esi, dword [rsp + 0x70]
lea ecx, [rsi + rbx]
rol ecx, 0xd
xor ecx, r9d
lea edx, [rcx + rsi]
rol edx, 0x12
xor edx, r8d
mov r12, qword [rsp + 0x58]
mov rax, qword [rsp + 0x20]
lea r9d, [rax + r12]
rol r9d, 7
xor r9d, dword [rsp + 0x78]
add eax, r9d
rol eax, 9
xor eax, dword [rsp + 0x68]
lea r8d, [rax + r9]
rol r8d, 0xd
xor r8d, r12d
lea r12d, [r8 + rax]
rol r12d, 0x12
xor r12d, dword [rsp + 0x20]
dec qword [rsp + 0x50]
jne 0x1800213f0
movd xmm3, edi
movd xmm0, r14d
movd xmm5, r13d
movd xmm1, r10d
movd xmm6, dword [rsp + 0x28]
movd xmm7, r15d
movd xmm8, ebp
movd xmm9, r11d
movd xmm4, ebx
movd xmm2, edx
movd xmm10, ecx
punpckldq xmm0, xmm3
movd xmm3, esi
mov rdi, qword [rsp + 0x88]
mov rcx, qword [rdi + 0x20]
punpckldq xmm1, xmm5
punpcklqdq xmm1, xmm0
movdqu xmm0, xmmword [rdi]
paddd xmm0, xmm1
movdqu xmm1, xmmword [rdi + 0x10]
movdqu xmm5, xmmword [rdi + 0x20]
movdqu xmmword [rdi + 0x40], xmm0
punpckldq xmm7, xmm6
punpckldq xmm9, xmm8
punpcklqdq xmm9, xmm7
paddd xmm9, xmm1
inc rcx
movdqu xmmword [rdi + 0x50], xmm9
mov dword [rdi + 0x20], ecx
shr rcx, 0x20
mov dword [rdi + 0x24], ecx
movd xmm0, r12d
punpckldq xmm2, xmm4
punpckldq xmm3, xmm10
punpcklqdq xmm3, xmm2
paddd xmm3, xmm5
movdqu xmmword [rdi + 0x60], xmm3
movdqu xmm1, xmmword [rdi + 0x30]
movd xmm2, r8d
punpckldq xmm2, xmm0
movd xmm0, eax
movd xmm3, r9d
punpckldq xmm3, xmm0
punpcklqdq xmm3, xmm2
paddd xmm3, xmm1
movdqu xmmword [rdi + 0x70], xmm3
mov r14, qword [rsp + 0x80]
cmp r14, 1
mov rax, r14
adc rax, 0
lea rdx, [rax - 1]
cmp rdx, r14
cmovae rdx, r14
xor ecx, ecx
cmp rdx, 8
jb 0x1800216c8
mov r8, qword [rsp + 0x38]
sub r8, qword [rsp + 0x40]
cmp r8, 7
mov r9, qword [rsp + 0x30]
mov r10, qword [rsp + 0x48]
jbe 0x1800216e0
inc rdx
mov ecx, edx
and ecx, 7
mov r8d, 8
cmovne r8, rcx
mov rcx, rdx
sub rcx, r8
xor edx, edx
nop
mov r8, qword [rdi + rdx + 0x40]
xor r8, qword [r10 + rdx]
mov qword [r9 + rdx], r8
add rdx, 8
cmp rcx, rdx
jne 0x1800216b0
jmp 0x1800216e0
mov r9, qword [rsp + 0x30]
mov r10, qword [rsp + 0x48]
nop word cs:[rax + rax]
cmp r14, rcx
je 0x180021777
movzx edx, byte [rdi + rcx + 0x40]
xor dl, byte [r10 + rcx]
mov byte [r9 + rcx], dl
lea rdx, [rcx + 1]
mov rcx, rdx
cmp rax, rdx
jne 0x1800216e0
mov byte [rdi + 0x80], r14b
xor eax, eax
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0xd0]
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm11, xmmword [rsp + 0xf0]
movaps xmm12, xmmword [rsp + 0x100]
movaps xmm13, xmmword [rsp + 0x110]
movaps xmm14, xmmword [rsp + 0x120]
movaps xmm15, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001finout_0.1.3_srcinout_buf.rs
mov rcx, r14
mov rdx, r14
call fcn.18004be10
int3