Function at 0x18008e560
Capabilities:
Encrypt data using dpapi
Encrypt or decrypt data via bcrypt

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2200]
mov eax, 0x2300
call fcn.1800f7ae0
sub rsp, rax
mov rax, qword [0x18012a010]
xor rax, rsp
mov qword [rbp + 0x21f0], rax
cmp qword [0x18012ce50], 0x10
mov esi, 0xf
mov r12, rcx
mov qword [rbp - 0x48], rdx
mov r15, rdx
mov qword [rbp + 0x188], rsi
mov edx, esi
mov qword [rbp + 0x1e8], rsi
mov qword [rbp + 0x1a8], rdx
lea rcx, [0x18012ce38]
cmovae rcx, qword [0x18012ce38]
mov r14d, esi
xor edi, edi
mov qword [rbp + 0x1c8], rdx
xor r9d, r9d
mov qword [rbp + 0x180], rdi
lea rdx, [rbp + 0xe8]
mov byte [rbp + 0x170], dil
mov qword [rbp + 0x1e0], rdi
lea r8d, [rdi + 6]
mov byte [rbp + 0x1d0], dil
mov qword [rbp + 0x1a0], rdi
mov byte [rbp + 0x190], dil
mov qword [rbp + 0x1c0], rdi
mov byte [rbp + 0x1b0], dil
call fcn.180087d50
test eax, eax
je 0x18008e6cb
mov rdx, qword [r12 + 0x18]
cmp rdx, 0x10
jb 0x18008e66e
mov rcx, qword [r12]
inc rdx
cmp rdx, 0x1000
jb 0x18008e669
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18008fd2d
mov rcx, r8
call fcn.1800cff50
mov qword [r12 + 0x10], rdi
mov byte [r12], dil
mov qword [r12 + 0x18], rsi
mov rdx, qword [r15 + 0x18]
cmp rdx, 0x10
jb 0x18008e6b6
mov rcx, qword [r15]
inc rdx
cmp rdx, 0x1000
jb 0x18008e6b1
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18008fd2d
mov rcx, r8
call fcn.1800cff50
mov qword [r15 + 0x10], rdi
mov eax, 0xffffffff
mov qword [r15 + 0x18], rsi
mov byte [r15], dil
jmp 0x18008fb2b
lea rdx, [0x18012d058]
lea rcx, [rbp + 0xa0]
call fcn.1800c2a30
mov rdx, rax
lea rcx, [rbp + 0x60]
call fcn.18008b080
cmp qword [rax + 0x18], 0x10
jb 0x18008e6f4
mov rax, qword [rax]
mov r9d, 1
mov qword [rsp + 0x30], rdi
lea rcx, [rbp + 0xe0]
mov rdx, rax
mov qword [rsp + 0x28], rcx
mov rcx, qword [rbp + 0xe8]
lea r8d, [r9 - 2]
mov qword [rsp + 0x20], rdi
call fcn.180063bf0
mov rdx, qword [rbp + 0x78]
test eax, eax
setne bl
cmp rdx, 0x10
jb 0x18008e763
mov rcx, qword [rbp + 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008e75e
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fd09
call fcn.1800cff50
test bl, bl
jne 0x18008e632
mov rcx, qword [rbp + 0xe0]
call fcn.18002c150
cmp eax, 0x64
jne 0x18008fae9
mov rcx, qword [rbp + 0xe0]
xor edx, edx
call fcn.18002cd70
mov rcx, qword [rbp + 0xe0]
mov edx, 1
mov rbx, rax
call fcn.18002cd70
mov rcx, qword [rbp + 0xe0]
mov edx, 2
mov rdi, rax
call fcn.18002cd70
mov r13, rax
test rbx, rbx
je 0x18008fae9
test rdi, rdi
je 0x18008fae9
test rax, rax
je 0x18008fae9
mov rcx, 0xffffffffffffffff
nop dword [rax + rax]
inc rcx
cmp byte [rbx + rcx], 0
jne 0x18008e7e0
test rcx, rcx
je 0x18008fad4
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rdi + rax], 0
jne 0x18008e800
test rax, rax
je 0x18008fad4
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rax + r13], 0
jne 0x18008e820
test rax, rax
je 0x18008fad4
xor r15d, r15d
mov qword [rbp - 0x78], 0xf
mov qword [rbp - 0x80], r15
mov r8, 0xffffffffffffffff
mov byte [rsp + 0x70], r15b
nop
inc r8
cmp byte [rbx + r8], r15b
jne 0x18008e850
mov rdx, rbx
lea rcx, [rsp + 0x70]
call fcn.1800c30f0
cmp rsi, 0x10
jb 0x18008e8a1
mov rcx, qword [rbp + 0x170]
lea rdx, [rsi + 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008e89c
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fd2d
call fcn.1800cff50
movups xmm0, xmmword [rsp + 0x70]
lea rdx, [rbp + 0x170]
mov qword [rsp + 0x60], r15
movups xmm1, xmmword [rbp - 0x80]
mov qword [rsp + 0x68], 0xf
movq rcx, xmm0
mov byte [rsp + 0x50], r15b
movups xmmword [rbp + 0x170], xmm0
movdqa xmm0, xmm1
movq r8, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 0x10
movups xmmword [rbp + 0x180], xmm1
cmovae rdx, rcx
lea rcx, [rsp + 0x50]
call fcn.1800c30f0
mov rdx, qword [rbp + 0x188]
cmp rdx, 0x10
jb 0x18008e93d
mov rcx, qword [rbp + 0x170]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008e938
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fd2d
call fcn.1800cff50
movups xmm0, xmmword [rsp + 0x50]
mov qword [rbp + 0x10], r15
mov r8, 0xffffffffffffffff
movups xmm1, xmmword [rsp + 0x60]
mov qword [rbp + 0x18], 0xf
movups xmmword [rbp + 0x170], xmm0
mov byte [rbp], r15b
movups xmmword [rbp + 0x180], xmm1
nop dword [rax]
inc r8
cmp byte [rdi + r8], r15b
jne 0x18008e970
mov rdx, rdi
lea rcx, [rbp]
call fcn.1800c30f0
cmp r14, 0x10
jb 0x18008e9c0
mov rcx, qword [rbp + 0x1d0]
lea rdx, [r14 + 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008e9bb
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fd2d
call fcn.1800cff50
mov r15, qword [rsp + 0x68]
lea rsi, [rbp + 0x170]
movups xmm0, xmmword [rbp]
mov r14, qword [rsp + 0x50]
cmp r15, 0x10
movups xmm1, xmmword [rbp + 0x10]
mov rbx, qword [rsp + 0x60]
cmovae rsi, r14
movups xmmword [rbp + 0x1d0], xmm0
movups xmmword [rbp + 0x1e0], xmm1
cmp rbx, 0x10
jae 0x18008ea0b
movups xmm0, xmmword [rsi]
mov qword [rbp - 0x58], 0xf
movups xmmword [rbp - 0x70], xmm0
jmp 0x18008ea84
movabs rax, 0x7fffffffffffffff
mov rdi, rbx
or rdi, 0xf
cmp rdi, rax
cmova rdi, rax
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x18008ea5f
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18008fd15
mov rcx, rax
call fcn.1800cff58
mov rcx, rax
test rax, rax
je 0x18008fd2d
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x18008ea6d
test rcx, rcx
je 0x18008ea6b
call fcn.1800cff58
jmp 0x18008ea6d
xor eax, eax
lea r8, [rbx + 1]
mov qword [rbp - 0x70], rax
mov rdx, rsi
mov rcx, rax
call fcn.1800d35e0
mov qword [rbp - 0x58], rdi
mov r8d, 2
mov qword [rbp - 0x60], rbx
lea rdx, [0x180118cd4]
mov qword [rbp - 0x80], 0
lea rcx, [rsp + 0x70]
mov qword [rbp - 0x78], 0xf
mov byte [rsp + 0x70], 0
call fcn.1800c30f0
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x70]
call fcn.18008cca0
test eax, eax
jle 0x18008f25c
cmp r15, 0x10
lea rsi, [rbp + 0x170]
cmovae rsi, r14
cmp rbx, 0x10
jae 0x18008eaf2
movups xmm0, xmmword [rsi]
mov qword [rsp + 0x68], 0xf
movups xmmword [rsp + 0x50], xmm0
jmp 0x18008eb6d
movabs rax, 0x7fffffffffffffff
mov rdi, rbx
or rdi, 0xf
cmp rdi, rax
cmova rdi, rax
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x18008eb46
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18008fd15
mov rcx, rax
call fcn.1800cff58
mov rcx, rax
test rax, rax
je 0x18008fd2d
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x18008eb54
test rcx, rcx
je 0x18008eb52
call fcn.1800cff58
jmp 0x18008eb54
xor eax, eax
lea r8, [rbx + 1]
mov qword [rsp + 0x50], rax
mov rdx, rsi
mov rcx, rax
call fcn.1800d35e0
mov qword [rsp + 0x68], rdi
xor esi, esi
mov qword [rsp + 0x60], rbx
lea rdx, [0x180118cd4]
mov qword [rbp - 0x30], rsi
lea rcx, [rbp - 0x40]
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], sil
lea r8d, [rsi + 2]
call fcn.1800c30f0
lea rdx, [rsp + 0x50]
mov qword [rbp - 0x10], rsi
lea rcx, [rbp - 0x40]
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], sil
call fcn.18008cca0
dec eax
lea rdx, [rbp + 0x170]
movsxd r8, eax
lea rcx, [rbp - 0x20]
cmp rbx, r8
cmovb r8, rbx
cmp r15, 0x10
cmovae rdx, r14
call fcn.1800c30f0
mov rax, qword [rbp + 0x1c8]
cmp rax, 0x10
jb 0x18008ec1c
mov rcx, qword [rbp + 0x1b0]
lea rdx, [rax + 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008ec17
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fd2d
call fcn.1800cff50
movups xmm0, xmmword [rbp - 0x20]
cmp qword [rbp + 0x188], 0x10
lea rdi, [rbp + 0x170]
movups xmm1, xmmword [rbp - 0x10]
cmovae rdi, qword [rbp + 0x170]
lea rdx, [0x180118cd4]
mov r8d, 2
mov qword [rsp + 0x60], rsi
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x68], 0xf
movups xmmword [rbp + 0x1b0], xmm0
mov byte [rsp + 0x50], sil
movups xmmword [rbp + 0x1c0], xmm1
call fcn.1800c30f0
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
inc rbx
cmp byte [rdi + rbx], sil
jne 0x18008ec80
lea rdx, [rbp + 0x170]
lea rcx, [rbp + 0xa0]
call fcn.1800c2a30
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.18008cca0
inc eax
mov qword [rbp - 0x78], 0xf
movsxd rcx, eax
xor edi, edi
mov rax, qword [rbp + 0x180]
mov qword [rbp - 0x80], rdi
mov byte [rsp + 0x70], sil
cmp rax, rcx
jb 0x18008fd27
sub rax, rcx
lea rdx, [rbp + 0x170]
cmp rax, rbx
cmovb rbx, rax
cmp qword [rbp + 0x188], 0x10
mov r8, rbx
cmovae rdx, qword [rbp + 0x170]
add rdx, rcx
lea rcx, [rsp + 0x70]
call fcn.1800c30f0
mov rdx, qword [rbp + 0x188]
cmp rdx, 0x10
jb 0x18008ed43
mov rcx, qword [rbp + 0x170]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008ed3e
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fd0f
call fcn.1800cff50
movups xmm0, xmmword [rsp + 0x70]
lea rsi, [rbp + 0x170]
movups xmm1, xmmword [rbp - 0x80]
movq r14, xmm0
movups xmmword [rbp + 0x170], xmm0
movdqa xmm0, xmm1
movq rbx, xmm1
psrldq xmm0, 8
movq r15, xmm0
cmp r15, 0x10
movups xmmword [rbp + 0x180], xmm1
cmovae rsi, r14
cmp rbx, 0x10
jae 0x18008ed98
movups xmm0, xmmword [rsi]
mov qword [rbp - 0x28], 0xf
movups xmmword [rbp - 0x40], xmm0
jmp 0x18008ee13
movabs rax, 0x7fffffffffffffff
mov rdi, rbx
or rdi, 0xf
cmp rdi, rax
cmova rdi, rax
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x18008edec
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18008fd15
mov rcx, rax
call fcn.1800cff58
mov rcx, rax
test rax, rax
je 0x18008fd2d
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x18008edfa
test rcx, rcx
je 0x18008edf8
call fcn.1800cff58
jmp 0x18008edfa
xor eax, eax
lea r8, [rbx + 1]
mov qword [rbp - 0x40], rax
mov rdx, rsi
mov rcx, rax
call fcn.1800d35e0
mov qword [rbp - 0x28], rdi
xor edi, edi
mov r8d, 1
mov qword [rbp - 0x30], rbx
lea rdx, [0x180118cd8]
mov qword [rbp + 0x30], rdi
lea rcx, [rbp + 0x20]
mov qword [rbp + 0x38], 0xf
mov byte [rbp + 0x20], 0
call fcn.1800c30f0
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x20]
call fcn.18008cca0
test eax, eax
jle 0x18008f121
cmp r15, 0x10
lea rsi, [rbp + 0x170]
cmovae rsi, r14
cmp rbx, 0x10
jae 0x18008ee79
movups xmm0, xmmword [rsi]
mov qword [rbp - 0x78], 0xf
movups xmmword [rsp + 0x70], xmm0
jmp 0x18008eef5
movabs rax, 0x7fffffffffffffff
mov rdi, rbx
or rdi, 0xf
cmp rdi, rax
cmova rdi, rax
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x18008eecd
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18008fd1b
mov rcx, rax
call fcn.1800cff58
mov rcx, rax
test rax, rax
je 0x18008fcf7
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x18008eedb
test rcx, rcx
je 0x18008eed9
call fcn.1800cff58
jmp 0x18008eedb
xor eax, eax
lea r8, [rbx + 1]
mov qword [rsp + 0x70], rax
mov rdx, rsi
mov rcx, rax
call fcn.1800d35e0
mov qword [rbp - 0x78], rdi
xor edi, edi
mov r8d, 1
mov qword [rbp - 0x80], rbx
lea rdx, [0x180118cd8]
mov qword [rbp + 0x50], rdi
lea rcx, [rbp + 0x40]
mov qword [rbp + 0x58], 0xf
mov byte [rbp + 0x40], 0
call fcn.1800c30f0
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 0x40]
call fcn.18008cca0
dec eax
mov qword [rsp + 0x60], rdi
movsxd r8, eax
lea rdx, [rbp + 0x170]
cmp rbx, r8
mov qword [rsp + 0x68], 0xf
lea rcx, [rsp + 0x50]
mov byte [rsp + 0x50], 0
cmovb r8, rbx
cmp r15, 0x10
cmovae rdx, r14
call fcn.1800c30f0
mov rbx, qword [rbp - 0x10]
mov qword [rbp - 0x60], rdi
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
lea rdx, [rbx + 2]
cmp rdx, 0x10
jb 0x18008ef90
lea rcx, [rbp - 0x70]
call fcn.1800c9530
mov qword [rbp - 0x60], rdi
cmp qword [rbp - 8], 0x10
lea rdx, [rbp + 0x1b0]
mov r8, rbx
lea rcx, [rbp - 0x70]
cmovae rdx, qword [rbp - 0x20]
call fcn.1800c2860
mov r8d, 2
lea rdx, [0x180118cd4]
lea rcx, [rbp - 0x70]
call fcn.1800c2860
mov rdx, qword [rbp - 0x58]
mov r9, qword [rbp - 0x60]
mov rax, rdx
mov r8, qword [rsp + 0x60]
sub rax, r9
mov rcx, qword [rsp + 0x68]
cmp r8, rax
jbe 0x18008f004
mov rax, rcx
sub rax, r8
cmp rax, r9
jb 0x18008f004
cmp rdx, 0x10
lea r8, [rbp - 0x70]
lea rcx, [rsp + 0x50]
cmovae r8, qword [rbp - 0x70]
call fcn.1800c77e0
jmp 0x18008f01c
cmp rcx, 0x10
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
cmovae rdx, qword [rsp + 0x50]
call fcn.1800c2860
movups xmm0, xmmword [rax]
mov rdx, qword [rbp + 0x188]
movups xmmword [rbp - 0x40], xmm0
movups xmm0, xmmword [rax + 0x10]
mov byte [rax], 0
mov qword [rax + 0x18], 0xf
mov qword [rax + 0x10], rdi
movups xmmword [rbp - 0x20], xmm0
cmp rdx, 0x10
jb 0x18008f07b
mov rcx, qword [rbp + 0x170]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008f076
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fcf7
call fcn.1800cff50
movups xmm0, xmmword [rbp - 0x40]
mov rdx, qword [rbp - 0x58]
movups xmm1, xmmword [rbp - 0x20]
movups xmmword [rbp + 0x170], xmm0
movups xmmword [rbp + 0x180], xmm1
cmp rdx, 0x10
jb 0x18008f0cc
mov rcx, qword [rbp - 0x70]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008f0c7
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fcf7
call fcn.1800cff50
mov rdx, qword [rsp + 0x68]
mov qword [rbp - 0x60], rdi
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
cmp rdx, 0x10
jb 0x18008f25c
mov rcx, qword [rsp + 0x50]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008f257
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fcf7
jmp 0x18008f257
mov qword [rsp + 0x60], rdi
mov rdi, qword [rbp - 0x10]
mov qword [rsp + 0x68], 0xf
mov byte [rsp + 0x50], 0
lea rdx, [rdi + 2]
cmp rdx, 0x10
jb 0x18008f155
lea rcx, [rsp + 0x50]
call fcn.1800c9530
mov qword [rsp + 0x60], 0
cmp qword [rbp - 8], 0x10
lea rdx, [rbp + 0x1b0]
mov r8, rdi
lea rcx, [rsp + 0x50]
cmovae rdx, qword [rbp - 0x20]
call fcn.1800c2860
mov r8d, 2
lea rdx, [0x180118cd4]
lea rcx, [rsp + 0x50]
call fcn.1800c2860
cmp r15, 0x10
lea rdx, [rbp + 0x170]
mov r8, rbx
lea rcx, [rsp + 0x50]
cmovae rdx, r14
call fcn.1800c2860
mov rdx, qword [rbp + 0x188]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x40], xmm1
cmp rdx, 0x10
jb 0x18008f211
mov rcx, qword [rbp + 0x170]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008f204
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fd21
call fcn.1800cff50
movups xmm0, xmmword [rbp - 0x20]
movups xmm1, xmmword [rbp - 0x40]
mov rdx, qword [rsp + 0x68]
movups xmmword [rbp + 0x170], xmm0
movups xmmword [rbp + 0x180], xmm1
cmp rdx, 0x10
jb 0x18008f25c
mov rcx, qword [rsp + 0x50]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008f257
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fd21
call fcn.1800cff50
mov rdi, qword [rbp + 0xe0]
mov edx, 2
mov rcx, rdi
call fcn.18002c8c0
mov rbx, rax
movzx eax, word [rax + 8]
test al, 0x10
jne 0x18008f2b2
mov edx, 0x202
movzx ecx, ax
and cx, dx
cmp cx, dx
jne 0x18008f297
cmp byte [rbx + 0xa], 1
jne 0x18008f297
mov rax, qword [rbx + 0x10]
jmp 0x18008f2a5
test al, 1
jne 0x18008f2aa
mov dl, 1
mov rcx, rbx
call fcn.180026330
test rax, rax
jne 0x18008f2b2
xor r14d, r14d
mov esi, r14d
jmp 0x18008f2c5
mov esi, dword [rbx + 0xc]
mov eax, 0x4000
test word [rbx + 8], ax
je 0x18008f2c2
add esi, dword [rbx]
xor r14d, r14d
test rdi, rdi
je 0x18008f30f
mov rcx, qword [rdi]
mov edx, dword [rdi + 0x84]
test rcx, rcx
jne 0x18008f2dd
movzx eax, dl
jmp 0x18008f2f7
cmp byte [rcx + 0x50], 0
jne 0x18008f2f2
cmp edx, 0xc0a
je 0x18008f2f2
mov eax, dword [rcx + 0x48]
and eax, edx
jmp 0x18008f2f7
call fcn.180006d20
mov rcx, qword [rdi]
mov dword [rdi + 0x84], eax
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x18008f30f
call qword [0x18012aeb8]
cmp byte [r13], 0x76
jne 0x18008f56e
movzx eax, byte [r13 + 1]
cmp al, 0x31
jne 0x18008f56e
cmp byte [r13 + 2], 0x30
je 0x18008f340
cmp al, al
jne 0x18008f56e
cmp byte [r13 + 2], al
jne 0x18008f56e
lea rdx, [rbp - 0x50]
mov dword [rbp - 0x50], r14d
call fcn.18008e1c0
test eax, eax
je 0x18008fb55
mov edx, dword [rbp - 0x50]
lea r8, [rbp + 0x1f0]
call fcn.18008e3b0
test eax, eax
je 0x18008fb55
lea rax, [rbp + 0x1f0]
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x18008f380
xor r9d, r9d
lea rdx, [0x180118c90]
xor r8d, r8d
lea rcx, [0x18012fab8]
call qword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
test eax, eax
jne 0x18008f3cb
mov rcx, qword [0x18012fab8]
lea r9d, [rax + 0x20]
lea r8, str.ChainingModeGCM
mov dword [rsp + 0x20], r14d
lea rdx, str.ChainingMode
call qword [sym.imp.bcrypt.dll_BCryptSetProperty]
mov rcx, qword [0x18012fab8]
lea rax, [rbp + 0x1f0]
mov dword [rsp + 0x30], r14d
lea rdx, [0x18012fa50]
mov dword [rsp + 0x28], ebx
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.bcrypt.dll_BCryptGenerateSymmetricKey]
mov r9, qword [0x18012fae8]
test r9, r9
jne 0x18008f423
mov ecx, 0x400
call fcn.1800d8574
mov qword [0x18012fae8], rax
mov r9, rax
test rax, rax
je 0x18008fb55
xorps xmm0, xmm0
mov dword [rsp + 0x48], r14d
xor eax, eax
mov dword [rbp + 0xe8], r14d
mov qword [rbp + 0x160], rax
lea rcx, [r13 - 0x10]
movups xmmword [rbp + 0x110], xmm0
lea rax, [r13 + 3]
mov dword [rbp + 0x110], 0x58
mov qword [rbp + 0x118], rax
lea r8d, [rsi - 0x1f]
movsxd rax, esi
lea rdx, [r13 + 0xf]
add rcx, rax
mov dword [rbp + 0x114], 1
lea rax, [rbp + 0xe8]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], 0x400
mov qword [rsp + 0x30], r9
lea r9, [rbp + 0x110]
movups xmmword [rbp + 0x130], xmm0
mov qword [rbp + 0x138], rcx
mov rcx, qword [0x18012fa50]
movups xmmword [rbp + 0x120], xmm0
mov dword [rsp + 0x28], r14d
movups xmmword [rbp + 0x140], xmm0
mov qword [rsp + 0x20], r14
movups xmmword [rbp + 0x150], xmm0
mov dword [rbp + 0x120], 0xc
mov dword [rbp + 0x140], 0x10
call qword [sym.imp.bcrypt.dll_BCryptDecrypt]
mov eax, dword [rbp + 0xe8]
mov r8, 0xffffffffffffffff
mov rdx, qword [0x18012fae8]
mov qword [rbp - 0x80], r14
mov qword [rbp - 0x78], 0xf
mov byte [rsp + 0x70], 0
mov byte [rax + rdx], 0
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x18008f510
lea rcx, [rsp + 0x70]
call fcn.1800c30f0
mov rax, qword [rbp + 0x1a8]
cmp rax, 0x10
jb 0x18008f660
mov rcx, qword [rbp + 0x190]
lea rdx, [rax + 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008f65b
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fcfd
jmp 0x18008f65b
lea rax, [rbp + 0x100]
mov qword [rbp + 0xf8], r13
mov qword [rsp + 0x30], rax
lea rcx, [rbp + 0xf0]
mov dword [rsp + 0x28], r14d
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], r14
xor edx, edx
mov dword [rbp + 0xf0], esi
call qword [sym.imp.CRYPT32.dll_CryptUnprotectData]
test eax, eax
je 0x18008f5d9
mov ebx, dword [rbp + 0x100]
test ebx, ebx
je 0x18008f5ca
mov rdx, qword [rbp + 0x108]
lea rcx, [rbp + 0x1f0]
mov r8d, ebx
call fcn.1800d35e0
mov byte [rbp + rbx + 0x1f0], 0
mov eax, 1
jmp 0x18008f5dc
mov eax, r14d
test eax, eax
je 0x18008f677
mov qword [rbp - 0x80], r14
lea rax, [rbp + 0x1f0]
mov qword [rbp - 0x78], 0xf
mov r8, 0xffffffffffffffff
mov byte [rsp + 0x70], 0
inc r8
cmp byte [rax + r8], 0
jne 0x18008f603
lea rdx, [rbp + 0x1f0]
lea rcx, [rsp + 0x70]
call fcn.1800c30f0
mov rax, qword [rbp + 0x1a8]
cmp rax, 0x10
jb 0x18008f660
mov rcx, qword [rbp + 0x190]
lea rdx, [rax + 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008f65b
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fd2d
call fcn.1800cff50
movups xmm1, xmmword [rbp - 0x80]
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rbp + 0x1a0], xmm1
movups xmmword [rbp + 0x190], xmm0
cmp qword [r12 + 0x18], 0x10
mov rax, r12
jb 0x18008f686
mov rax, qword [r12]
cmp qword [r12 + 0x10], 1
jne 0x18008f697
cmp byte [rax], 0x30
jne 0x18008f697
mov al, 1
jmp 0x18008f699
xor al, al
test al, al
je 0x18008f968
mov rbx, qword [rbp + 0x180]
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], 0xf
mov byte [rsp + 0x50], 0
lea rdx, [rbx + 1]
cmp rdx, 0x10
jb 0x18008f6d4
lea rcx, [rsp + 0x50]
call fcn.1800c9530
mov qword [rsp + 0x60], r14
mov r8d, 1
lea rdx, [0x180118ce0]
lea rcx, [rsp + 0x50]
call fcn.1800c2860
cmp qword [rbp + 0x188], 0x10
lea rdx, [rbp + 0x170]
mov r8, rbx
lea rcx, [rsp + 0x50]
cmovae rdx, qword [rbp + 0x170]
call fcn.1800c2860
mov r8d, 1
lea rdx, [0x180118cdc]
lea rcx, [rsp + 0x50]
call fcn.1800c2860
lea rdx, [rbp + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x10], r14
movq rcx, xmm0
mov qword [rax + 0x18], 0xf
movups xmmword [rbp + 0x80], xmm0
mov byte [rax], 0
movdqa xmm0, xmm1
movq r8, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 0x10
movups xmmword [rbp + 0x90], xmm1
cmovae rdx, rcx
lea rcx, [0x18012cb98]
call fcn.1800c2860
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x18008f7be
mov rcx, qword [rbp + 0x80]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008f7b9
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fcf1
call fcn.1800cff50
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x18008f7fb
mov rcx, qword [rsp + 0x50]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008f7f6
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fcf1
call fcn.1800cff50
mov rbx, qword [rbp + 0x10]
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], 0xf
mov byte [rsp + 0x50], 0
lea rdx, [rbx + 1]
cmp rdx, 0x10
jb 0x18008f82b
lea rcx, [rsp + 0x50]
call fcn.1800c9530
mov qword [rsp + 0x60], r14
mov r8d, 1
lea rdx, [0x180118ce0]
lea rcx, [rsp + 0x50]
call fcn.1800c2860
cmp qword [rbp + 0x18], 0x10
lea rdx, [rbp + 0x1d0]
mov r8, rbx
lea rcx, [rsp + 0x50]
cmovae rdx, qword [rbp]
call fcn.1800c2860
mov r8d, 1
lea rdx, [0x180118cdc]
lea rcx, [rsp + 0x50]
call fcn.1800c2860
lea rdx, [rbp + 0x60]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x10], r14
movq rcx, xmm0
mov qword [rax + 0x18], 0xf
movups xmmword [rbp + 0x60], xmm0
mov byte [rax], 0
movdqa xmm0, xmm1
movq r8, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 0x10
movups xmmword [rbp + 0x70], xmm1
cmovae rdx, rcx
lea rcx, [0x18012cb98]
call fcn.1800c2860
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x18008f900
mov rcx, qword [rbp + 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008f8fb
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fd03
call fcn.1800cff50
lea rcx, [rsp + 0x50]
call fcn.1800c2940
lea r8, [rbp + 0x190]
lea rdx, [0x180118ce0]
lea rcx, [rbp + 0x20]
call fcn.1800c3790
mov rdx, rax
lea r8, [0x180118cdc]
lea rcx, [rbp + 0x40]
call fcn.1800c3830
mov rdx, rax
lea rcx, [0x18012cb98]
call fcn.1800c2900
lea rcx, [rbp + 0x40]
call fcn.1800c2940
lea rcx, [rbp + 0x20]
call fcn.1800c2940
lea rdx, [0x18010f0fc]
lea rcx, [0x18012cb98]
call fcn.1800c28e0
lea rdx, [0x18010dedc]
mov rcx, r12
call fcn.1800c3620
test al, al
je 0x18008fabc
lea r8, [0x180118cec]
lea rdx, [0x18012cb98]
lea rcx, [rbp + 0xa0]
call fcn.1800c3890
mov rdx, rax
lea r8, [0x180118ce8]
lea rcx, [rbp + 0xc0]
call fcn.1800c3830
mov r15, qword [rbp - 0x48]
lea rcx, [rbp - 0x40]
mov r8, r15
mov rdx, rax
call fcn.1800c3670
mov rdx, rax
lea r8, [0x180118ce8]
lea rcx, [rbp - 0x20]
call fcn.1800c3830
mov rdx, rax
lea r8, [rbp + 0x170]
lea rcx, [rbp - 0x70]
call fcn.1800c3670
mov rdx, rax
lea r8, [0x180118ce8]
lea rcx, [rbp]
call fcn.1800c3830
mov rdx, rax
lea r8, [rbp + 0x1d0]
lea rcx, [rsp + 0x50]
call fcn.1800c3670
mov rdx, rax
lea r8, [0x180118ce8]
lea rcx, [rsp + 0x70]
call fcn.1800c3830
mov rdx, rax
lea r8, [rbp + 0x190]
lea rcx, [rbp + 0x20]
call fcn.1800c3670
mov rdx, rax
lea r8, [0x180118ce4]
lea rcx, [rbp + 0x40]
call fcn.1800c3830
mov rdx, rax
lea rcx, [0x18012cb98]
call fcn.1800c29a0
lea rcx, [rbp + 0x40]
call fcn.1800c2940
lea rcx, [rbp + 0x20]
call fcn.1800c2940
lea rcx, [rsp + 0x70]
call fcn.1800c2940
lea rcx, [rsp + 0x50]
call fcn.1800c2940
lea rcx, [rbp]
call fcn.1800c2940
lea rcx, [rbp - 0x70]
call fcn.1800c2940
lea rcx, [rbp - 0x20]
call fcn.1800c2940
lea rcx, [rbp - 0x40]
call fcn.1800c2940
lea rcx, [rbp + 0xc0]
call fcn.1800c2940
lea rcx, [rbp + 0xa0]
call fcn.1800c2940
jmp 0x18008fac0
mov r15, qword [rbp - 0x48]
inc dword [0x18012fae0]
mov rsi, qword [rbp + 0x188]
mov r14, qword [rbp + 0x1e8]
mov rcx, qword [rbp + 0xe0]
call fcn.18002c150
cmp eax, 0x64
je 0x18008e780
lea rcx, [rbp + 0x1b0]
call fcn.1800c2940
lea rcx, [rbp + 0x190]
call fcn.1800c2940
lea rcx, [rbp + 0x1d0]
call fcn.1800c2940
lea rcx, [rbp + 0x170]
call fcn.1800c2940
mov rcx, r12
call fcn.1800c2940
mov rcx, r15
call fcn.1800c2940
xor eax, eax
mov rcx, qword [rbp + 0x21f0]
xor rcx, rsp
call fcn.1800cfc90
mov rbx, qword [rsp + 0x2350]
add rsp, 0x2300
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rdx, qword [rbp + 0x1c8]
cmp rdx, 0x10
jb 0x18008fb96
mov rcx, qword [rbp + 0x1b0]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008fb91
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fcfd
call fcn.1800cff50
mov rdx, qword [rbp + 0x1a8]
cmp rdx, 0x10
jb 0x18008fbd7
mov rcx, qword [rbp + 0x190]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008fbd2
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fcfd
call fcn.1800cff50
mov rdx, qword [rbp + 0x18]
cmp rdx, 0x10
jb 0x18008fc12
mov rcx, qword [rbp]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008fc0d
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fcfd
call fcn.1800cff50
mov rdx, qword [rbp + 0x188]
cmp rdx, 0x10
jb 0x18008fc53
mov rcx, qword [rbp + 0x170]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008fc4e
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008fcfd
call fcn.1800cff50
mov rdx, qword [r12 + 0x18]
cmp rdx, 0x10
jb 0x18008fc8b
mov rcx, qword [r12]
inc rdx
cmp rdx, 0x1000
jb 0x18008fc86
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18008fcfd
mov rcx, r8
call fcn.1800cff50
mov rbx, qword [rbp - 0x48]
mov qword [r12 + 0x10], r14
mov qword [r12 + 0x18], 0xf
mov byte [r12], 0
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x18008fcd8
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x18008fcd3
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18008fcfd
mov rcx, r8
call fcn.1800cff50
mov qword [rbx + 0x10], r14
mov eax, 0xffffffff
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
jmp 0x18008fb2b
call fcn.1800df1b0
int3
call fcn.1800df1b0
int3
call fcn.1800df1b0
int3
call fcn.1800df1b0
int3
call fcn.1800df1b0
int3
call fcn.1800df1b0
int3
call fcn.180089250
int3
call fcn.180089250
int3
call fcn.1800df1b0
int3
call fcn.1800c33a0
int3
call fcn.1800df1b0
int3