Function at 0x57b0d0
Capabilities:
Encrypt data using dpapi

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
mov dword [rsp + 0x68], 0
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x70], xmm0
mov dword [rsp + 0x80], 7
mov qword [rsp + 0x84], 0
mov word [rsp + 0x8c], 0
mov byte [rsp + 0x88], 1
lea r8, [rsp + 0x68]
call fcn.005a4970
mov rdi, rdx
test rax, rax
je 0x57b14f
mov r14, rdi
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x57b57c
jmp 0x57b564
lea rcx, [rsp + 0x68]
mov rdx, rdi
call fcn.005a4b90
cmp dword [rsp + 0x68], 2
jne 0x57b18c
mov rax, qword [rsp + 0x70]
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], 1
call fcn.00584cb0
mov eax, 1
xor r9d, r9d
xor esi, esi
jmp 0x57b1f2
mov rsi, qword [rsp + 0xa0]
test rsi, rsi
je 0x57b1e5
js 0x57bbb2
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x57b1ca
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x57bba3
mov rcx, rax
mov qword [0x009bf100], rax
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x57bba3
mov r9d, 1
jmp 0x57b1f2
mov r9d, 1
xor esi, esi
mov eax, 1
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x20], rsi
lea rcx, [rsp + 0xd0]
lea r8, [rsp + 0x40]
mov rdx, rdi
call fcn.005a6d90
mov r15, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x50]
lea rcx, [rsp + 0x68]
mov rdx, r15
mov r8, rbx
call fcn.00450790
cmp qword [rsp + 0x68], 0
mov rax, qword [rsp + 0xd0]
je 0x57b25f
test rax, rax
je 0x57b529
mov r14, qword [rsp + 0xd8]
jmp 0x57b530
mov r14, qword [rsp + 0xd8]
mov qword [rsp + 0x50], rbx
test rax, rax
jne 0x57b530
mov rbp, qword [rsp + 0x48]
mov rcx, rdi
call sub.KERNEL32.dll_CloseHandle
mov byte [rsp + 0xf0], 0
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 1
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x88], xmm0
mov byte [rsp + 0x98], pe_nt_image_headers64
lea rcx, [rsp + 0x40]
lea rdi, [rsp + 0x68]
mov rdx, rdi
call fcn.0057bc50
cmp byte [rsp + 0x40], 6
je 0x57bbb9
movdqu xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0xe0], xmm1
movdqa xmmword [rsp + 0xd0], xmm0
mov r9, qword [rsp + 0x70]
mov rax, qword [rsp + 0x78]
cmp rax, r9
jae 0x57b346
mov rcx, qword [rsp + 0x68]
movabs rdx, 0x100002600
nop word cs:[rax + rax]
movzx r8d, byte [rcx + rax]
cmp r8, 0x20
ja 0x57b9c2
bt rdx, r8
jae 0x57b9c2
inc rax
mov qword [rsp + 0x78], rax
cmp r9, rax
jne 0x57b320
movzx ebx, byte [rsp + 0xd0]
mov eax, dword [rsp + 0xd1]
mov dword [rsp + 0xc8], eax
mov eax, dword [rsp + 0xd4]
mov dword [rsp + 0xcb], eax
mov rsi, qword [rsp + 0xd8]
movdqa xmm0, xmmword [rsp + 0xe0]
movdqa xmmword [rsp + 0x40], xmm0
cmp qword [rsp + 0x88], 0
je 0x57b3a2
mov r8, qword [rsp + 0x80]
mov rcx, qword [0x009bf100]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
cmp bl, 6
je 0x57bb62
mov eax, dword [rsp + 0xc8]
mov ecx, dword [rsp + 0xcb]
mov dword [rsp + 0xf4], ecx
mov dword [rsp + 0xf1], eax
movdqa xmm0, xmmword [rsp + 0x40]
movdqu xmmword [rsp + 0x100], xmm0
mov byte [rsp + 0xf0], bl
mov qword [rsp + 0xf8], rsi
lea rax, [0x00905009]
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 0x68]
movabs rax, 0x23ec5c3d51a2efb
mov qword [rsp + 0x68], rax
mov rdx, qword [rsp + 0x68]
call fcn.00577b80
movabs rcx, 0xf082bbc28a742c7f
xor rcx, qword [rax]
mov qword [rsp + 0x40], rcx
cmp bl, 5
jne 0x57b617
test rsi, rsi
je 0x57b617
mov qword [rsp + 0xb0], rbp
mov qword [rsp + 0xb8], r15
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0xc0], rax
xor r12d, r12d
mov ebp, 8
lea r14, [rsp + 0x40]
mov r15d, 0xff
lea rax, [rsi + 0x168]
mov qword [rsp + 0x38], rsi
movzx ecx, word [rsi + 0x272]
mov qword [rsp + 0x110], rcx
lea rcx, [rcx*8]
lea rdi, [rcx + rcx*2]
mov rbx, 0xffffffffffffffff
nop word cs:[rax + rax]
test rdi, rdi
je 0x57b4f5
lea rsi, [rax + 0x18]
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
mov r13, r8
sub r13, 8
cmovae r8, rbp
neg r13
mov rcx, r14
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r13, rax
xor ecx, ecx
test r13, r13
setne cl
cmovs ecx, r15d
inc rbx
add rdi, 0xffffffffffffffe8
mov rax, rsi
cmp cl, 1
je 0x57b4a0
movzx eax, cl
test eax, eax
jne 0x57b4fd
jmp 0x57b61c
mov rbx, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x38]
mov rax, qword [rsp + 0xc0]
sub rax, 1
jb 0x57b628
mov qword [rsp + 0xc0], rax
mov rsi, qword [rsi + rbx*8 + 0x278]
jmp 0x57b466
lea r14, str.stream_did_not_contain_valid_UTF_8
cmp qword [rsp + 0x48], 0
je 0x57b549
mov rcx, qword [0x009bf100]
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapFree
mov rcx, rdi
call sub.KERNEL32.dll_CloseHandle
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x57b57c
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x57bb92
mov rcx, rax
mov qword [0x009bf100], rax
mov r8d, 0x18
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x57bb92
mov rdi, rax
mov qword [rax], 1
pxor xmm0, xmm0
movdqu xmmword [rax + 8], xmm0
mov eax, r14d
and eax, 3
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x57b600
test rax, rax
je 0x57b600
lea rsi, [r14 - 1]
mov rbx, qword [r14 - 1]
mov r14, qword [r14 + 7]
mov rcx, rbx
call qword [r14]
cmp qword [r14 + 8], 0
je 0x57b5ef
cmp qword [r14 + 0x10], 0x11
jb 0x57b5de
mov rbx, qword [rbx - 8]
mov rcx, qword [0x009bf100]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x009bf100]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rax, rdi
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r12d, r12d
jmp 0x57b63d
shl rbx, 5
mov r12, qword [rsp + 0x38]
add r12, rbx
mov r15, qword [rsp + 0xb8]
mov rbp, qword [rsp + 0xb0]
lea rdi, [rsp + 0x68]
test r12, r12
lea rsi, [0x009101e0]
cmove r12, rsi
lea rax, [0x00900e0e]
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 0x68]
movabs rax, 0x88d54d1c608d9897
mov qword [rsp + 0x68], rax
mov rdx, qword [rsp + 0x68]
call fcn.00577aa0
movabs rcx, 0x6f2007e787d7fb59
xor rcx, qword [rax]
mov edx, 0x9446d129
xor edx, dword [rax + 8]
movzx eax, byte [rax + 0xc]
xor al, 0x18
mov qword [rsp + 0x68], rcx
mov dword [rsp + 0x70], edx
mov byte [rsp + 0x74], al
cmp byte [r12], 5
jne 0x57b7e2
mov r13, qword [r12 + 8]
test r13, r13
je 0x57b7e2
mov qword [rsp + 0xb0], rbp
mov qword [rsp + 0xb8], r15
mov rax, qword [r12 + 0x10]
mov qword [rsp + 0x38], rax
mov ebp, 0xd
lea rdi, [rsp + 0x68]
mov r15d, 0xff
lea rax, [r13 + 0x168]
movzx ecx, word [r13 + 0x272]
mov qword [rsp + 0xc0], rcx
lea rcx, [rcx*8]
lea rsi, [rcx + rcx*2]
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
test rsi, rsi
je 0x57b762
lea r12, [rax + 0x18]
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
mov r14, r8
sub r14, 0xd
cmovae r8, rbp
neg r14
mov rcx, rdi
call sub.msvcrt.dll_memcmp
cdqe
test eax, eax
cmovne r14, rax
xor ecx, ecx
test r14, r14
setne cl
cmovs ecx, r15d
inc rbx
add rsi, 0xffffffffffffffe8
mov rax, r12
cmp cl, 1
je 0x57b710
movzx eax, cl
test eax, eax
jne 0x57b76a
jmp 0x57b787
mov rbx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x38]
sub rax, 1
jb 0x57b7cb
mov qword [rsp + 0x38], rax
mov r13, qword [r13 + rbx*8 + 0x278]
jmp 0x57b6e0
shl rbx, 5
add r13, rbx
mov r15, qword [rsp + 0xb8]
mov rbp, qword [rsp + 0xb0]
lea rsi, [0x009101e0]
test r13, r13
cmovne rsi, r13
cmp byte [rsi], 3
je 0x57b7f1
lea rcx, str.called__Option::unwrap____on_a__None__value_root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_untrusted_0.9.0_src_reader.rsinternal_error:_entered_unreachable_code_root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rustls_webpki_0.101.7_src_calendar.rs
lea r8, str.src_crypt.rs
mov edx, 0x2b
call fcn.0044fe30
ud2
mov r15, qword [rsp + 0xb8]
mov rbp, qword [rsp + 0xb0]
lea rsi, [0x009101e0]
xor r13d, r13d
test r13, r13
cmovne rsi, r13
cmp byte [rsi], 3
jne 0x57b7b1
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x18]
lea rbx, [rsp + 0x68]
mov rcx, rbx
call fcn.0040a690
mov rdi, qword [rsp + 0x68]
test rdi, rdi
je 0x57bbcb
mov rdx, qword [rsp + 0x78]
cmp rdx, 4
jbe 0x57bc00
mov rsi, qword [rsp + 0x70]
lea rax, [rdi + 5]
add edx, 0xfffffffb
mov dword [rsp + 0x40], edx
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x40]
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call sub.CRYPT32.dll_CryptUnprotectData
mov r14, qword [rsp + 0x70]
mov ebx, dword [rsp + 0x68]
test rsi, rsi
je 0x57b890
mov rcx, qword [0x009bf100]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
movzx eax, byte [0x009bf181]
mov rcx, qword [0x009bf100]
test rcx, rcx
jne 0x57b8bb
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x57bb92
mov rcx, rax
mov qword [0x009bf100], rax
mov r8d, 0x18
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x57bb92
mov rdi, rax
mov qword [rax], r14
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbx
movzx eax, byte [rsp + 0xf0]
cmp rax, 3
jb 0x57b9a8
cmp eax, 3
je 0x57b908
cmp eax, 4
jne 0x57b92f
lea rcx, [rsp + 0xf8]
call fcn.0057afe0
cmp qword [rsp + 0x100], 0
je 0x57b9a8
mov r8, qword [rsp + 0xf8]
mov rcx, qword [0x009bf100]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x57b9a8
mov rcx, qword [rsp + 0xf8]
test rcx, rcx
je 0x57b985
mov rdx, qword [rsp + 0x100]
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rdx
mov ecx, 1
jmp 0x57b989
xor ecx, ecx
xor eax, eax
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0xa8], rax
lea rcx, [rsp + 0x68]
call fcn.00579130
test rbp, rbp
je 0x57b600
mov rcx, qword [0x009bf100]
xor edx, edx
mov r8, r15
jmp 0x57b5fb
mov qword [rsp + 0x40], 0x16
inc rax
cmp r9, rax
mov r10, rax
cmovb r10, r9
test r10, r10
jne 0x57b9ea
xor r8d, r8d
mov edx, 1
jmp 0x57badc
cmp r10, 4
jae 0x57b9fd
mov edx, 1
xor r8d, r8d
jmp 0x57baa5
cmp r9, rax
mov r11, rax
cmovb r11, r9
and r11, 0xfffffffffffffffc
mov esi, 1
xor r8d, r8d
movdqa xmm0, xmmword [0x00871370]
mov edi, 3
mov ebx, 2
mov edx, 1
add r8, 4
movd xmm1, dword [rcx]
add rcx, 4
pcmpeqb xmm1, xmm0
punpcklbw xmm1, xmm1
punpcklwd xmm1, xmm1
movmskps ebp, xmm1
test bpl, 1
cmovne r8, rdi
test bpl, 2
cmovne r8, rbx
test bpl, 4
cmovne r8, rsi
test bpl, 8
mov r14d, 0
cmovne r8, r14
mov r14d, ebp
shr r14b, 1
and r14b, 5
sub bpl, r14b
mov r14d, ebp
and r14b, 0x33
shr bpl, 2
and bpl, 0x33
add bpl, r14b
mov r14d, ebp
shr r14b, 4
add r14b, bpl
and r14b, 0xf
movzx r14d, r14b
add rdx, r14
add r11, 0xfffffffffffffffc
jne 0x57ba2a
test r10b, 3
je 0x57badc
cmp r9, rax
cmovb rax, r9
and eax, 3
xor r9d, r9d
inc r8
xor r10d, r10d
cmp byte [rcx + r9], 0xa
mov r11d, 0
cmove r8, r11
sete r10b
add rdx, r10
inc r9
cmp rax, r9
jne 0x57bab8
lea rcx, [rsp + 0x40]
call fcn.00583210
mov rsi, rax
movzx eax, byte [rsp + 0xd0]
cmp rax, 3
jb 0x57bb41
cmp eax, 3
je 0x57bb0e
lea rcx, [rsp + 0xd8]
cmp eax, 4
jne 0x57bb3c
call fcn.0057afe0
cmp qword [rsp + 0xe0], 0
je 0x57bb41
mov r8, qword [rsp + 0xd8]
mov rcx, qword [0x009bf100]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x88], 0
jne 0x57bb4c
jmp 0x57bb62
call fcn.005790c0
cmp qword [rsp + 0x88], 0
je 0x57bb62
mov r8, qword [rsp + 0x80]
mov rcx, qword [0x009bf100]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov qword [rsp + 0x68], rsi
lea rax, str.src_crypt.rs
mov qword [rsp + 0x20], rax
lea rcx, str.called__Result::unwrap____on_an__Err__value
lea r9, fcn.0057d140
lea r8, [rsp + 0x68]
mov edx, 0x2b
call fcn.00451990
ud2
mov ecx, 8
mov edx, 0x18
call fcn.0044dfd0
ud2
mov ecx, 1
mov rdx, rsi
call fcn.0044dfd0
jmp 0x57bbb7
call fcn.0044df90
ud2
mov rsi, qword [rsp + 0x48]
cmp qword [rsp + 0x88], 0
jne 0x57bb4c
jmp 0x57bb62
movups xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x40], xmm0
lea rax, str.src_crypt.rs
mov qword [rsp + 0x20], rax
lea rcx, str.called__Result::unwrap____on_an__Err__value
lea r9, [0x0090eb20]
lea r8, [rsp + 0x40]
mov edx, 0x2b
call fcn.00451990
ud2
lea r8, str.src_crypt.rs
mov ecx, 5
call fcn.0044f110
ud2