Function at 0x140016c90
Capabilities:
Encrypt data using dpapi

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
mov eax, 0x1008
call fcn.140218950
sub rsp, rax
movdqa xmmword [rsp + 0xff0], xmm15
movdqa xmmword [rsp + 0xfe0], xmm14
movdqa xmmword [rsp + 0xfd0], xmm13
movdqa xmmword [rsp + 0xfc0], xmm12
movdqa xmmword [rsp + 0xfb0], xmm11
movdqa xmmword [rsp + 0xfa0], xmm10
movdqa xmmword [rsp + 0xf90], xmm9
movdqa xmmword [rsp + 0xf80], xmm8
movdqa xmmword [rsp + 0xf70], xmm7
movdqa xmmword [rsp + 0xf60], xmm6
mov rbx, qword [rdx]
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x7c0], rax
cmp rax, 0x20
jne 0x14001766c
mov rdi, r8
mov rsi, rcx
mov r14, qword [str._h._]
movzx eax, byte [r14]
cmp al, 0xff
je 0x140016d3e
cmp al, 1
je 0x140016d93
jmp 0x1400174c9
lea rcx, [rsp + 0x400]
mov edx, 1
call fcn.140130bf0
lea rcx, [rsp + 0x7c0]
mov edx, 7
xor r8d, r8d
call fcn.140130c20
mov ebp, dword [rsp + 0x408]
mov eax, ebp
not eax
test eax, 0xc000000
jne 0x1400174c5
call fcn.140016b40
and eax, 2
shr eax, 1
shr ebp, 0x19
and ebp, eax
mov byte [r14], bpl
je 0x1400174c9
movdqu xmm6, xmmword [rbx]
movdqu xmm7, xmmword [rbx + 0x10]
movdqa xmmword [rsp + 0x80], xmm7
lea rbx, [rsp + 0x4f0]
lea rcx, [rsp + 0x500]
lea rdx, [rsp + 0x80]
call fcn.140016ab0
movdqa xmmword [rsp + 0x90], xmm7
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0x90]
call fcn.140016af0
pshufd xmm0, xmmword [rsp + 0x220], 0xff
movdqa xmmword [rsp + 0x70], xmm6
movdqa xmm1, xmm6
pslldq xmm1, 4
movdqa xmm2, xmm6
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm0, xmm6
pslldq xmm0, 0xc
pxor xmm0, xmm1
pxor xmm0, xmm2
pxor xmm0, xmm6
movdqa xmmword [rsp + 0xa0], xmm0
movdqa xmm6, xmm0
lea rcx, [rsp + 0x510]
lea rdx, [rsp + 0xa0]
call fcn.140016ab0
movdqa xmmword [rsp + 0xb0], xmm6
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0xb0]
call fcn.140016ad0
pshufd xmm0, xmmword [rsp + 0x220], 0xaa
movdqa xmmword [rsp + 0x60], xmm7
movdqa xmm1, xmm7
pslldq xmm1, 4
movdqa xmm2, xmm7
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm0, xmm7
pslldq xmm0, 0xc
pxor xmm0, xmm1
pxor xmm0, xmm2
pxor xmm0, xmm7
movdqa xmmword [rsp + 0xc0], xmm0
movdqa xmm7, xmm0
lea rcx, [rsp + 0x520]
lea rdx, [rsp + 0xc0]
call fcn.140016ab0
movdqa xmmword [rsp + 0xd0], xmm7
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0xd0]
call fcn.140016b30
pshufd xmm0, xmmword [rsp + 0x220], 0xff
movdqa xmm3, xmm6
movdqa xmmword [rsp + 0x50], xmm6
movdqa xmm1, xmm6
pslldq xmm1, 4
movdqa xmm2, xmm6
pslldq xmm2, 8
pxor xmm2, xmm0
pslldq xmm6, 0xc
pxor xmm6, xmm1
pxor xmm6, xmm2
pxor xmm6, xmm3
movdqa xmmword [rsp + 0xe0], xmm6
lea rcx, [rsp + 0x530]
lea rdx, [rsp + 0xe0]
call fcn.140016ab0
movdqa xmmword [rsp + 0xf0], xmm6
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0xf0]
call fcn.140016ad0
pshufd xmm0, xmmword [rsp + 0x220], 0xaa
movdqa xmm3, xmm7
movdqa xmmword [rsp + 0x40], xmm7
movdqa xmm1, xmm7
pslldq xmm1, 4
movdqa xmm2, xmm7
pslldq xmm2, 8
pxor xmm2, xmm0
pslldq xmm7, 0xc
pxor xmm7, xmm1
pxor xmm7, xmm2
pxor xmm7, xmm3
movdqa xmmword [rsp + 0x100], xmm7
lea rcx, [rsp + 0x540]
lea rdx, [rsp + 0x100]
call fcn.140016ab0
movdqa xmmword [rsp + 0x110], xmm7
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0x110]
call fcn.140016ae0
pshufd xmm0, xmmword [rsp + 0x220], 0xff
movdqa xmm1, xmm6
pslldq xmm1, 4
movdqa xmm2, xmm6
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm8, xmm6
pslldq xmm8, 0xc
pxor xmm8, xmm1
pxor xmm8, xmm2
pxor xmm8, xmm6
movdqa xmmword [rsp + 0x120], xmm8
lea rcx, [rsp + 0x550]
lea rdx, [rsp + 0x120]
call fcn.140016ab0
movdqa xmmword [rsp + 0x130], xmm8
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0x130]
call fcn.140016ad0
pshufd xmm0, xmmword [rsp + 0x220], 0xaa
movdqa xmm1, xmm7
pslldq xmm1, 4
movdqa xmm2, xmm7
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm9, xmm7
pslldq xmm9, 0xc
pxor xmm9, xmm1
pxor xmm9, xmm2
pxor xmm9, xmm7
movdqa xmmword [rsp + 0x140], xmm9
lea rcx, [rsp + 0x560]
lea rdx, [rsp + 0x140]
call fcn.140016ab0
movdqa xmmword [rsp + 0x150], xmm9
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0x150]
call fcn.140016b20
pshufd xmm0, xmmword [rsp + 0x220], 0xff
movdqa xmm1, xmm8
pslldq xmm1, 4
movdqa xmm2, xmm8
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm10, xmm8
pslldq xmm10, 0xc
pxor xmm10, xmm1
pxor xmm10, xmm2
pxor xmm10, xmm8
movdqa xmmword [rsp + 0x160], xmm10
lea rcx, [rsp + 0x570]
lea rdx, [rsp + 0x160]
call fcn.140016ab0
movdqa xmmword [rsp + 0x170], xmm10
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0x170]
call fcn.140016ad0
pshufd xmm0, xmmword [rsp + 0x220], 0xaa
movdqa xmm1, xmm9
pslldq xmm1, 4
movdqa xmm2, xmm9
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm11, xmm9
pslldq xmm11, 0xc
pxor xmm11, xmm1
pxor xmm11, xmm2
pxor xmm11, xmm9
movdqa xmmword [rsp + 0x180], xmm11
lea rcx, [rsp + 0x580]
lea rdx, [rsp + 0x180]
call fcn.140016ab0
movdqa xmmword [rsp + 0x190], xmm11
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0x190]
call fcn.140016b00
pshufd xmm0, xmmword [rsp + 0x220], 0xff
movdqa xmm1, xmm10
pslldq xmm1, 4
movdqa xmm2, xmm10
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm12, xmm10
pslldq xmm12, 0xc
pxor xmm12, xmm1
pxor xmm12, xmm2
pxor xmm12, xmm10
movdqa xmmword [rsp + 0x1a0], xmm12
lea rcx, [rsp + 0x590]
lea rdx, [rsp + 0x1a0]
call fcn.140016ab0
movdqa xmmword [rsp + 0x1b0], xmm12
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0x1b0]
call fcn.140016ad0
pshufd xmm0, xmmword [rsp + 0x220], 0xaa
movdqa xmm1, xmm11
pslldq xmm1, 4
movdqa xmm2, xmm11
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm13, xmm11
pslldq xmm13, 0xc
pxor xmm13, xmm1
pxor xmm13, xmm2
pxor xmm13, xmm11
movdqa xmmword [rsp + 0x1c0], xmm13
lea rcx, [rsp + 0x5a0]
lea rdx, [rsp + 0x1c0]
call fcn.140016ab0
movdqa xmmword [rsp + 0x1d0], xmm13
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0x1d0]
call fcn.140016ac0
pshufd xmm0, xmmword [rsp + 0x220], 0xff
movdqa xmm1, xmm12
pslldq xmm1, 4
movdqa xmm2, xmm12
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm14, xmm12
pslldq xmm14, 0xc
pxor xmm14, xmm1
pxor xmm14, xmm2
pxor xmm14, xmm12
movdqa xmmword [rsp + 0x1e0], xmm14
lea rcx, [rsp + 0x5b0]
lea rdx, [rsp + 0x1e0]
call fcn.140016ab0
movdqa xmmword [rsp + 0x1f0], xmm14
lea rcx, [rsp + 0x220]
lea rdx, [rsp + 0x1f0]
call fcn.140016ad0
pshufd xmm0, xmmword [rsp + 0x220], 0xaa
movdqa xmm1, xmm13
pslldq xmm1, 4
movdqa xmm2, xmm13
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm15, xmm13
pslldq xmm15, 0xc
pxor xmm15, xmm1
pxor xmm15, xmm2
pxor xmm15, xmm13
movdqa xmmword [rsp + 0x200], xmm15
lea rcx, [rsp + 0x5c0]
lea rdx, [rsp + 0x200]
call fcn.140016ab0
movdqa xmmword [rsp + 0x220], xmm15
lea rcx, [rsp + 0x210]
lea rdx, [rsp + 0x220]
call fcn.140016b10
pshufd xmm0, xmmword [rsp + 0x210], 0xff
movdqa xmm1, xmm14
pslldq xmm1, 8
pxor xmm1, xmm0
movdqa xmm0, xmm14
pslldq xmm0, 4
movdqa xmm2, xmm14
pslldq xmm2, 0xc
pxor xmm2, xmm0
pxor xmm2, xmm1
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x400], xmm0
movaps xmm1, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x410], xmm1
movaps xmm1, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x420], xmm1
movaps xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x430], xmm1
movdqa xmmword [rsp + 0x440], xmm6
movdqa xmmword [rsp + 0x450], xmm7
movdqa xmmword [rsp + 0x460], xmm8
movdqa xmmword [rsp + 0x470], xmm9
movdqa xmmword [rsp + 0x480], xmm10
movdqa xmmword [rsp + 0x490], xmm11
movdqa xmmword [rsp + 0x4a0], xmm12
movdqa xmmword [rsp + 0x4b0], xmm13
pxor xmm2, xmm14
movdqa xmmword [rsp + 0x4c0], xmm14
movdqa xmmword [rsp + 0x4d0], xmm15
movdqa xmmword [rsp + 0x4e0], xmm2
movaps xmmword [rsp + 0x4f0], xmm0
movdqa xmmword [rsp + 0x5d0], xmm2
lea r14, [rsp + 0x220]
lea rdx, [rsp + 0x400]
mov r8d, 0xf0
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x310]
mov r8d, 0xf0
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x7c0]
mov r8d, 0x1e0
mov rdx, r14
call sub.VCRUNTIME140.dll_memcpy
jmp 0x1400174d9
mov byte [r14], 0
lea rcx, [rsp + 0x7c0]
mov rdx, rbx
call fcn.14012e690
lea r14, [rsp + 0x400]
lea rdx, [rsp + 0x7c0]
mov r8d, 0x3c0
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0xb80]
mov rdx, r14
call fcn.1400180a0
mov r15, qword [rdi + 0x10]
cmp r15, 0xe
jbe 0x1400176a4
mov rbx, qword [rdi]
lea r8, [rbx + 3]
lea rax, [r15 - 0xf]
lea r9, [rbx + 0xf]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x7c0]
lea rdx, [rsp + 0xb80]
call fcn.140017900
cmp qword [rsp + 0x7c0], 0
je 0x14001757b
mov rax, qword [rsp + 0x7d0]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rsp + 0x7c0]
movups xmmword [rsi], xmm0
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x140017601
mov r8d, 1
mov rcx, rbx
jmp 0x1400175fc
mov rdi, qword [rdi + 8]
mov dword [rsp + 0x220], r15d
mov qword [rsp + 0x228], rbx
mov dword [rsp + 0x400], 0
mov qword [rsp + 0x408], 0
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x220]
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.crypt32.dll_CryptUnprotectData
mov rax, qword [rsp + 0x408]
mov ecx, dword [rsp + 0x400]
mov qword [rsi], rax
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rcx
test rdi, rdi
je 0x140017601
mov r8d, 1
mov rcx, rbx
mov rdx, rdi
call fcn.140018810
mov rax, rsi
movaps xmm6, xmmword [rsp + 0xf60]
movaps xmm7, xmmword [rsp + 0xf70]
movaps xmm8, xmmword [rsp + 0xf80]
movaps xmm9, xmmword [rsp + 0xf90]
movaps xmm10, xmmword [rsp + 0xfa0]
movaps xmm11, xmmword [rsp + 0xfb0]
movaps xmm12, xmmword [rsp + 0xfc0]
movaps xmm13, xmmword [rsp + 0xfd0]
movaps xmm14, xmmword [rsp + 0xfe0]
movaps xmm15, xmmword [rsp + 0xff0]
add rsp, 0x1008
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov qword [rsp + 0xb80], 0
lea rax, str.C:UsersJuanjo.cargo_registry_srcindex.crates.io_6f17d22bba15001fgeneric_array_0.14.7_srclib.rs
mov qword [rsp + 0x20], rax
lea r8, [0x1402265f0]
lea rdx, [rsp + 0x7c0]
lea r9, [rsp + 0xb80]
xor ecx, ecx
call fcn.140219c20
ud2
lea r8, str.srccrypto.rs
mov ecx, 0xf
mov rdx, r15
call fcn.140222b90
ud2