Function at 0x14001dbe0
Capabilities:
Encrypt data using dpapi

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe18
mov rbx, qword [r8 + 8]
mov rax, qword [r8 + 0x10]
mov qword [rsp + 0xd0], rax
cmp rax, 0x20
jne 0x14001e639
mov r13, rdx
mov rsi, rcx
mov r12, qword [0x140343018]
movzx eax, byte [r12]
cmp al, 0xff
je 0x14001dc2c
cmp al, 1
je 0x14001dc7a
jmp 0x14001dcd3
lea rcx, [rsp + 0x490]
mov edx, 1
call fcn.140022fd0
lea rcx, [rsp + 0xd0]
mov edx, 7
xor r8d, r8d
call fcn.140023000
mov edi, dword [rsp + 0x498]
mov eax, edi
not eax
test eax, 0xc000000
jne 0x14001dcce
call fcn.14001a380
and eax, 2
shr eax, 1
shr edi, 0x19
and edi, eax
mov byte [r12], dil
je 0x14001dcd3
lea rdi, [rsp + 0xd0]
mov rcx, rdi
mov rdx, rbx
call fcn.140025dd0
lea rcx, [rsp + 0x940]
mov rdx, rdi
call fcn.1400153c0
lea rbx, [rsp + 0x850]
mov r8d, 0xf0
mov rcx, rbx
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0xd0]
mov r8d, 0x1e0
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
jmp 0x14001dce3
mov byte [r12], 0
lea rcx, [rsp + 0xd0]
mov rdx, rbx
call fcn.140023a00
lea rcx, [rsp + 0x490]
lea rdx, [rsp + 0xd0]
mov r8d, 0x3c0
call sub.VCRUNTIME140.dll_memcpy
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
movzx eax, byte [r12]
cmp al, 1
jne 0x14001dd26
lea rcx, [rsp + 0x490]
lea rdx, [rsp + 0x70]
mov r8, rdx
call fcn.14001c9c0
jmp 0x14001dd75
movaps xmmword [rsp + 0x880], xmm0
movaps xmmword [rsp + 0x870], xmm0
movaps xmmword [rsp + 0x860], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x850], xmm0
lea rcx, [rsp + 0xd0]
lea rdx, [rsp + 0x490]
lea r8, [rsp + 0x850]
call fcn.140024350
movups xmm0, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x70], xmm0
movzx eax, byte [rsp + 0x70]
movzx ecx, byte [rsp + 0x71]
movzx r10d, byte [rsp + 0x72]
movzx r8d, byte [rsp + 0x73]
movzx edx, byte [rsp + 0x74]
movzx r9d, byte [rsp + 0x75]
shl rcx, 0x30
shl r10, 0x28
or r10, rcx
movzx ecx, byte [rsp + 0x76]
shl r8, 0x20
or r8, r10
movzx r10d, byte [rsp + 0x77]
shl edx, 0x18
or rdx, r8
movzx r8d, byte [rsp + 0x78]
shl r9d, 0x10
or r9, rdx
movzx edx, byte [rsp + 0x79]
shl ecx, 8
or rcx, r9
movzx r9d, byte [rsp + 0x7a]
or rcx, r10
movzx r10d, byte [rsp + 0x7b]
shl r8, 0x38
shl rdx, 0x30
shl r9, 0x28
or rdx, r8
or rdx, r9
movzx r9d, byte [rsp + 0x7c]
shl r10, 0x20
or rdx, r10
movzx r10d, byte [rsp + 0x7d]
shl r9d, 0x18
or rdx, r9
movzx r9d, byte [rsp + 0x7e]
shl r10d, 0x10
or rdx, r10
movzx r10d, byte [rsp + 0x7f]
or rdx, r10
mov r10, rax
shl r10, 0x38
shl r9d, 8
or rdx, r9
or rcx, r10
shr eax, 7
shld rcx, r8, 1
movabs r8, 0x8000000000000000
and r10, r8
mov r8, rax
shl r8, 0x3e
or r8, r10
lea rdx, [rax + rdx*2]
shl rax, 0x39
or rax, r8
xor rax, rcx
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xd8], rax
lea r14, [rsp + 0xdf0]
lea rdx, [rsp + 0xd0]
mov rcx, r14
xor r8d, r8d
xor r9d, r9d
call fcn.140023910
lea rdi, [rsp + 0xa30]
lea rdx, [rsp + 0x490]
mov r8d, 0x3c0
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov r15, qword [r13 + 0x10]
cmp r15, 0xe
jbe 0x14001e65a
mov rbx, qword [r13 + 8]
mov rbp, r15
add rbp, 0xfffffffffffffff1
je 0x14001e49f
mov qword [rsp + 0x98], r13
js 0x14001e66e
movzx eax, byte [0x14034bf01]
mov r13d, 1
mov edx, 1
mov rcx, rbp
call fcn.140022700
test rax, rax
je 0x14001e671
mov r12, rax
lea rdx, [rbx + 0xf]
mov rcx, rax
mov r8, rbp
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x80], rbp
cmp rbp, 0x10
jb 0x14001e47f
lea r13, [r15 - 0x1f]
movabs rax, 0x1000000011
cmp r13, rax
jae 0x14001e47f
mov eax, dword [rbx + 3]
mov ecx, dword [rbx + 7]
mov edx, dword [rbx + 0xb]
mov qword [rsp + 0xa0], rdi
mov dword [rsp + 0xa8], eax
mov dword [rsp + 0xac], ecx
mov dword [rsp + 0xb0], edx
mov qword [rsp + 0xb4], 1
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
mov r8, qword [0x140343018]
movzx r8d, byte [r8]
cmp r8b, 1
jne 0x14001dfa8
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0xa30]
lea r8, [rsp + 0x50]
call fcn.14001c920
jmp 0x14001e015
mov dword [rsp + 0xb8], 1
movups xmmword [rsp + 0x4c0], xmm0
movups xmmword [rsp + 0x4b0], xmm0
movups xmmword [rsp + 0x4a0], xmm0
mov dword [rsp + 0x490], eax
mov dword [rsp + 0x494], ecx
mov dword [rsp + 0x498], edx
mov dword [rsp + 0x49c], 0x1000000
lea rcx, [rsp + 0xd0]
lea rdx, [rsp + 0xa30]
lea r8, [rsp + 0x490]
call fcn.140024350
movups xmm0, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], rsi
movzx eax, byte [rsp + 0x50]
mov byte [rsp + 0x6e], al
movzx eax, byte [rsp + 0x51]
mov byte [rsp + 0x44], al
movzx ebx, byte [rsp + 0x52]
movzx eax, byte [rsp + 0x53]
mov byte [rsp + 0x45], al
movzx esi, byte [rsp + 0x54]
movzx eax, byte [rsp + 0x55]
mov byte [rsp + 0x6f], al
movzx eax, byte [rsp + 0x56]
mov byte [rsp + 0x46], al
movzx eax, byte [rsp + 0x57]
mov byte [rsp + 0x47], al
movzx eax, byte [rsp + 0x58]
mov byte [rsp + 0x48], al
movzx eax, byte [rsp + 0x59]
mov byte [rsp + 0x49], al
movzx eax, byte [rsp + 0x5a]
mov byte [rsp + 0x4a], al
movzx eax, byte [rsp + 0x5b]
mov byte [rsp + 0x4b], al
movzx eax, byte [rsp + 0x5c]
mov byte [rsp + 0x4c], al
movzx eax, byte [rsp + 0x5d]
mov byte [rsp + 0x4d], al
movzx eax, byte [rsp + 0x5e]
mov byte [rsp + 0x4e], al
movzx eax, byte [rsp + 0x5f]
mov byte [rsp + 0x4f], al
movups xmm0, xmmword [rsp + 0xa0]
movups xmm1, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x850], xmm0
movaps xmmword [rsp + 0x860], xmm1
lea rdi, [rsp + 0x490]
mov rcx, rdi
mov rdx, r14
call fcn.1400239d0
mov rax, qword [0x140343008]
movzx eax, byte [rax]
mov r8, r13
shr r8, 4
mov rcx, rdi
mov rdx, r12
mov qword [rsp + 0xc0], r8
call fcn.14001cfd0
mov r14, rbp
and r14, 0xf
je 0x14001e166
movabs rdi, 0x1ffffffff0
and rdi, r13
add rdi, r12
mov r8d, 0x10
sub r8, r14
lea rcx, [rsp + r14]
add rcx, 0xd0
xor edx, edx
call sub.VCRUNTIME140.dll_memset
lea rcx, [rsp + 0xd0]
mov rdx, rdi
mov r8, r14
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x490]
mov r8d, 1
lea rdx, [rsp + 0xd0]
call fcn.14001cfd0
mov qword [rsp + 0xc8], r14
lea rax, [r13*8]
bswap rax
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], rax
lea rcx, [rsp + 0x490]
lea rdx, [rsp + 0xd0]
mov r8d, 1
call fcn.14001cfd0
movaps xmm0, xmmword [rsp + 0x490]
movaps xmm1, xmmword [rsp + 0x4a0]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0xd0]
call fcn.1400239b0
movzx ecx, byte [rsp + 0x6e]
xor cl, byte [rsp + 0x5f]
movzx r14d, byte [rsp + 0x44]
xor r14b, byte [rsp + 0x5e]
xor bl, byte [rsp + 0x5d]
mov byte [rsp + 0x44], bl
movzx ebx, byte [rsp + 0x45]
xor bl, byte [rsp + 0x5c]
xor sil, byte [rsp + 0x5b]
mov byte [rsp + 0x45], sil
movzx esi, byte [rsp + 0x6f]
xor sil, byte [rsp + 0x5a]
movzx eax, byte [rsp + 0x46]
xor al, byte [rsp + 0x59]
mov byte [rsp + 0x46], al
movzx eax, byte [rsp + 0x47]
xor al, byte [rsp + 0x58]
mov byte [rsp + 0x47], al
movzx eax, byte [rsp + 0x48]
xor al, byte [rsp + 0x57]
mov byte [rsp + 0x48], al
movzx eax, byte [rsp + 0x49]
xor al, byte [rsp + 0x56]
mov byte [rsp + 0x49], al
movzx eax, byte [rsp + 0x4a]
xor al, byte [rsp + 0x55]
mov byte [rsp + 0x4a], al
movzx eax, byte [rsp + 0x4b]
xor al, byte [rsp + 0x54]
mov byte [rsp + 0x4b], al
movzx eax, byte [rsp + 0x4c]
xor al, byte [rsp + 0x53]
mov byte [rsp + 0x4c], al
movzx eax, byte [rsp + 0x4d]
xor al, byte [rsp + 0x52]
mov byte [rsp + 0x4d], al
movzx eax, byte [rsp + 0x4e]
xor al, byte [rsp + 0x51]
mov byte [rsp + 0x4e], al
movzx eax, byte [rsp + 0x4f]
xor al, byte [rsp + 0x50]
mov byte [rsp + 0x4f], al
cmp cl, byte [r12 + r13]
sete cl
call fcn.1400239f0
mov edi, eax
cmp r14b, byte [r12 + r13 + 1]
sete cl
call fcn.1400239f0
and dil, al
movzx eax, byte [rsp + 0x44]
cmp al, byte [r12 + r13 + 2]
sete cl
call fcn.1400239f0
mov r14d, eax
cmp bl, byte [r12 + r13 + 3]
sete cl
call fcn.1400239f0
and r14b, al
and r14b, dil
movzx eax, byte [rsp + 0x45]
cmp al, byte [r12 + r13 + 4]
sete cl
call fcn.1400239f0
mov edi, eax
cmp sil, byte [r12 + r13 + 5]
sete cl
call fcn.1400239f0
and dil, al
movzx eax, byte [rsp + 0x46]
cmp al, byte [r12 + r13 + 6]
sete cl
call fcn.1400239f0
and dil, al
and dil, r14b
movzx eax, byte [rsp + 0x47]
cmp al, byte [r12 + r13 + 7]
sete cl
call fcn.1400239f0
mov r14d, eax
movzx eax, byte [rsp + 0x48]
cmp al, byte [r12 + r13 + 8]
sete cl
call fcn.1400239f0
and r14b, al
movzx eax, byte [rsp + 0x49]
cmp al, byte [r12 + r13 + 9]
sete cl
call fcn.1400239f0
and r14b, al
movzx eax, byte [rsp + 0x4a]
cmp al, byte [r12 + r13 + 0xa]
sete cl
call fcn.1400239f0
and r14b, al
and r14b, dil
movzx eax, byte [rsp + 0x4b]
cmp al, byte [r12 + r13 + 0xb]
sete cl
call fcn.1400239f0
mov edi, eax
movzx eax, byte [rsp + 0x4c]
cmp al, byte [r12 + r13 + 0xc]
sete cl
call fcn.1400239f0
and dil, al
movzx eax, byte [rsp + 0x4d]
cmp al, byte [r12 + r13 + 0xd]
sete cl
call fcn.1400239f0
and dil, al
movzx eax, byte [rsp + 0x4e]
cmp al, byte [r12 + r13 + 0xe]
sete cl
call fcn.1400239f0
and dil, al
movzx eax, byte [rsp + 0x4f]
cmp al, byte [r12 + r13 + 0xf]
sete cl
call fcn.1400239f0
and dil, al
and dil, r14b
and dil, 1
mov ecx, edi
call fcn.1400239f0
test al, al
je 0x14001e46f
mov rdi, qword [rsp + 0xc8]
test rdi, rdi
mov rsi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x88]
je 0x14001e41b
mov eax, dword [rsp + 0x868]
not eax
cmp rdi, rax
jae 0x14001e67c
cmp r13, 0x11
jb 0x14001e54a
movabs rax, 0x1ffffffff0
and rax, r13
mov qword [rsp + 0xd0], r12
mov qword [rsp + 0xd8], r12
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xe0], rcx
add r12, rax
lea rcx, [rsp + 0x850]
lea rdx, [rsp + 0xd0]
call fcn.14001b960
jmp 0x14001e54d
mov rsi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x88]
mov r8d, 1
mov rcx, r12
mov rdx, rbp
call fcn.140022710
mov r12, qword [0x140343018]
mov r13, qword [rsp + 0x98]
mov rdi, qword [r13]
mov dword [rsp + 0x490], r15d
mov qword [rsp + 0x498], rbx
mov dword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x490]
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.CRYPT32.dll_CryptUnprotectData
mov r14, qword [rsp + 0xd8]
mov r15d, dword [rsp + 0xd0]
test rdi, rdi
je 0x14001e523
mov r8d, 1
mov rcx, rbx
mov rdx, rdi
call fcn.140022710
mov qword [rsi], r15
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], r15
movzx eax, byte [r12]
mov rax, rsi
add rsp, 0xe18
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, r13
test rdi, rdi
je 0x14001e5c8
lea rax, [rdi - 0x10]
neg rax
cmp rdi, 0x10
mov r8d, 0
cmovb r8, rax
lea rcx, [rsp + rdi]
add rcx, 0x50
xor edx, edx
call sub.VCRUNTIME140.dll_memset
lea r14, [rsp + 0x50]
mov rcx, r14
mov rdx, r12
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x490], r14
mov qword [rsp + 0x498], r14
mov qword [rsp + 0x4a0], 1
lea rcx, [rsp + 0x850]
lea rdx, [rsp + 0x490]
call fcn.14001b960
mov rcx, r12
mov rdx, r14
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x70]
mov rdx, r13
call fcn.140026360
mov rax, qword [rsp + 0x70]
movabs rcx, 0x8000000000000000
cmp rax, rcx
mov r12, qword [0x140343018]
mov r13, qword [rsp + 0x98]
je 0x14001e49f
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
mov qword [rsi], rax
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rdx
movzx eax, byte [r12]
mov rdx, qword [r13]
test rdx, rdx
je 0x14001e533
mov r8d, 1
mov rcx, rbx
call fcn.140022710
jmp 0x14001e533
mov qword [rsp + 0xa30], 0
lea rcx, [rsp + 0xd0]
lea rdx, [rsp + 0xa30]
call fcn.140286460
lea r8, str.srccrypt.rs
mov ecx, 0xf
mov rdx, r15
call fcn.14028f0f0
xor r13d, r13d
mov rcx, r13
mov rdx, rbp
call fcn.14028e990
lea rax, str.C:Users_asdasd.cargo_registry_srcindex.crates.io_6f17d22bba15001fcipher_0.4.4_src_stream_core.rsinternal_error:_entered_unreachable_codeC:Users_asdasd.cargo_registry_srcindex.crates.io_6f17d22bba15001f_serde_json_1.0.117_src_ser.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x140293728]
lea r9, [0x1402937d8]
lea r8, [rsp + 0xd0]
mov edx, 0x2b
call fcn.14028eff0
int3