Function at 0x140002700
Capabilities:
Encrypt or decrypt data via bcrypt

Disassembly:
mov r11, rsp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x150
mov rax, qword [0x1400e8040]
xor rax, rsp
mov qword [rsp + 0x148], rax
mov r14, r8
mov r15, rdx
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rdx
mov qword [r11 - 0x108], r8
xor esi, esi
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rsi
mov r12, qword [r8 + 8]
sub r12, qword [r8]
mov dword [rsp + 0xf0], esi
xorps xmm1, xmm1
movdqu xmmword [r11 - 0x78], xmm1
mov edi, esi
mov qword [r11 - 0x68], rsi
je 0x1400027a0
mov rdx, r12
lea rcx, [r11 - 0x78]
call fcn.140005e70
mov r8, r12
xor edx, edx
mov rbx, qword [rsp + 0x110]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
lea rax, [rbx + r12]
mov qword [rsp + 0x118], rax
mov rdi, qword [rsp + 0x120]
jmp 0x1400027a8
mov rbx, qword [rsp + 0x110]
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x128], xmm1
mov r13, rsi
mov qword [rsp + 0x138], rsi
movdqu xmmword [rsp + 0xf8], xmm1
mov qword [rsp + 0x108], rsi
mov edx, 0xc
lea rcx, [rsp + 0xf8]
call fcn.140005e70
xor eax, eax
mov rsi, qword [rsp + 0xf8]
mov qword [rsi], rax
mov dword [rsi + 8], eax
lea rax, [rsi + 0xc]
mov qword [rsp + 0x100], rax
mov rdx, qword [r14]
add rdx, 3
mov r8d, 0xc
mov rcx, rsi
call sub.VCRUNTIME140.dll_memmove
mov rax, qword [r14]
lea r8, [rax + r12]
lea rdx, [rax + 0xf]
sub r8, rdx
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x1400c8c78]
lea rcx, [rsp + 0x70]
call qword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
mov dword [rsp + 0x50], eax
test eax, eax
jns 0x140002965
lea rdx, str.BCryptOpenAlgorithmProvider_failed_with_status:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140005150
mov edx, dword [rsp + 0x50]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___long_int____ptr64]
lea rdx, [0x140005330]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xorps xmm0, xmm0
movups xmmword [r15], xmm0
xor r12d, r12d
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], r12
xor r8d, r8d
lea rdx, [0x1400c8b81]
mov rcx, r15
call fcn.140005820
nop
test rsi, rsi
je 0x1400028e0
mov rdx, qword [rsp + 0x108]
sub rdx, rsi
mov rax, rsi
cmp rdx, 0x1000
jb 0x1400028d7
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003024
mov rcx, rsi
call fcn.1400c3b4c
nop
test rbx, rbx
je 0x140002919
sub rdi, rbx
mov rax, rbx
cmp rdi, 0x1000
jb 0x14000290d
add rdi, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000309a
mov rdx, rdi
mov rcx, rbx
call fcn.1400c3b4c
nop
mov rcx, qword [r14]
test rcx, rcx
je 0x14000295d
mov rdx, qword [r14 + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14000294d
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x1f
ja 0x140003129
mov rcx, r8
call fcn.1400c3b4c
mov qword [r14], r12
mov qword [r14 + 8], r12
mov qword [r14 + 0x10], r12
mov rax, r15
jmp 0x140003106
mov dword [rsp + 0x20], 0
mov r9d, 0x20
lea r8, str.ChainingModeGCM
lea rdx, str.ChainingMode
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.bcrypt.dll_BCryptSetProperty]
mov dword [rsp + 0x50], eax
test eax, eax
jns 0x140002abd
lea rdx, str.BCryptSetProperty_failed_with_status:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140005150
mov edx, dword [rsp + 0x50]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___long_int____ptr64]
lea rdx, [0x140005330]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor edx, edx
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
xorps xmm0, xmm0
movups xmmword [r15], xmm0
xor r12d, r12d
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], r12
xor r8d, r8d
lea rdx, [0x1400c8b81]
mov rcx, r15
call fcn.140005820
nop
test rsi, rsi
je 0x140002a38
mov rdx, qword [rsp + 0x108]
sub rdx, rsi
mov rax, rsi
cmp rdx, 0x1000
jb 0x140002a2f
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003024
mov rcx, rsi
call fcn.1400c3b4c
nop
test rbx, rbx
je 0x140002a71
sub rdi, rbx
mov rax, rbx
cmp rdi, 0x1000
jb 0x140002a65
add rdi, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000309a
mov rdx, rdi
mov rcx, rbx
call fcn.1400c3b4c
nop
mov rcx, qword [r14]
test rcx, rcx
je 0x140002ab5
mov rdx, qword [r14 + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x140002aa5
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140003129
mov rcx, r8
call fcn.1400c3b4c
mov qword [r14], r12
mov qword [r14 + 8], r12
mov qword [r14 + 0x10], r12
mov rax, r15
jmp 0x140003106
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx]
mov dword [rsp + 0x30], 0
mov eax, dword [rcx]
mov dword [rsp + 0x28], eax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.bcrypt.dll_BCryptGenerateSymmetricKey]
mov dword [rsp + 0x50], eax
test eax, eax
jns 0x140002c23
lea rdx, str.BcryptGenertaeSymmetricKey_failed_with_status:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140005150
mov edx, dword [rsp + 0x50]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___long_int____ptr64]
lea rdx, [0x140005330]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor edx, edx
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
xorps xmm0, xmm0
movups xmmword [r15], xmm0
xor r12d, r12d
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], r12
xor r8d, r8d
lea rdx, [0x1400c8b81]
mov rcx, r15
call fcn.140005820
nop
test rsi, rsi
je 0x140002b9e
mov rdx, qword [rsp + 0x108]
sub rdx, rsi
mov rax, rsi
cmp rdx, 0x1000
jb 0x140002b95
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003024
mov rcx, rsi
call fcn.1400c3b4c
nop
test rbx, rbx
je 0x140002bd7
sub rdi, rbx
mov rax, rbx
cmp rdi, 0x1000
jb 0x140002bcb
add rdi, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000309a
mov rdx, rdi
mov rcx, rbx
call fcn.1400c3b4c
nop
mov rcx, qword [r14]
test rcx, rcx
je 0x140002c1b
mov rdx, qword [r14 + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x140002c0b
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140003129
mov rcx, r8
call fcn.1400c3b4c
mov qword [r14], r12
mov qword [r14 + 8], r12
mov qword [r14 + 0x10], r12
mov rax, r15
jmp 0x140003106
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xd0], xmm0
mov qword [rsp + 0xe0], rax
mov dword [rsp + 0x90], 0x58
mov dword [rsp + 0x94], 1
lea rcx, [r12 - 0x1f]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x98], rsi
mov dword [rsp + 0xa0], 0xc
lea rax, [rbx + rcx]
mov qword [rsp + 0xb8], rax
mov dword [rsp + 0xc0], 0x10
xor edx, edx
mov dword [rsp + 0x48], edx
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], edx
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x90]
mov r8d, ecx
mov rdx, rbx
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.bcrypt.dll_BCryptDecrypt]
mov r12d, eax
test eax, eax
jns 0x140002e02
lea rdx, str.BCryptDecrypt__1__failed_with_status:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140005150
mov edx, r12d
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___long_int____ptr64]
lea rdx, [0x140005330]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xorps xmm0, xmm0
movups xmmword [r15], xmm0
xor r12d, r12d
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], r12
xor r8d, r8d
lea rdx, [0x1400c8b81]
mov rcx, r15
call fcn.140005820
nop
test rsi, rsi
je 0x140002d7d
mov rdx, qword [rsp + 0x108]
sub rdx, rsi
mov rax, rsi
cmp rdx, 0x1000
jb 0x140002d74
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003024
mov rcx, rsi
call fcn.1400c3b4c
nop
test rbx, rbx
je 0x140002db6
sub rdi, rbx
mov rax, rbx
cmp rdi, 0x1000
jb 0x140002daa
add rdi, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000309a
mov rdx, rdi
mov rcx, rbx
call fcn.1400c3b4c
nop
mov rcx, qword [r14]
test rcx, rcx
je 0x140002dfa
mov rdx, qword [r14 + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x140002dea
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140003129
mov rcx, r8
call fcn.1400c3b4c
mov qword [r14], r12
mov qword [r14 + 8], r12
mov qword [r14 + 0x10], r12
mov rax, r15
jmp 0x140003106
mov eax, dword [rsp + 0xf0]
mov edx, eax
test eax, eax
je 0x140002e2b
lea rcx, [rsp + 0x128]
call fcn.1400067b0
mov eax, dword [rsp + 0xf0]
mov r13, qword [rsp + 0x138]
xor edx, edx
mov dword [rsp + 0x48], edx
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x38], eax
mov r12, qword [rsp + 0x128]
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x90]
mov r8d, dword [rsp + 0x58]
mov rdx, rbx
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.bcrypt.dll_BCryptDecrypt]
mov dword [rsp + 0x50], eax
test eax, eax
jns 0x140002fd2
lea rdx, str.BCrypt_Decrypt__2__failed_with_status:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140005150
mov edx, dword [rsp + 0x50]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___long_int____ptr64]
lea rdx, [0x140005330]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xorps xmm0, xmm0
movups xmmword [r15], xmm0
xor eax, eax
mov qword [r15 + 0x10], rax
mov qword [r15 + 0x18], rax
xor r8d, r8d
lea rdx, [0x1400c8b81]
mov rcx, r15
call fcn.140005820
nop
test rsi, rsi
je 0x140002f11
mov rdx, qword [rsp + 0x108]
sub rdx, rsi
mov rax, rsi
cmp rdx, 0x1000
jb 0x140002f08
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003024
mov rcx, rsi
call fcn.1400c3b4c
nop
test r12, r12
je 0x140002f4b
sub r13, r12
mov rax, r12
cmp r13, 0x1000
jb 0x140002f3f
add r13, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000305e
mov rdx, r13
mov rcx, r12
call fcn.1400c3b4c
nop
test rbx, rbx
je 0x140002f84
sub rdi, rbx
mov rax, rbx
cmp rdi, 0x1000
jb 0x140002f78
add rdi, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000309a
mov rdx, rdi
mov rcx, rbx
call fcn.1400c3b4c
nop
mov rcx, qword [r14]
test rcx, rcx
je 0x140002fca
mov rdx, qword [r14 + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x140002fb8
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140003129
mov rcx, r8
call fcn.1400c3b4c
xor eax, eax
mov qword [r14], rax
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rax
mov rax, r15
jmp 0x140003106
xor edx, edx
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
mov r8, qword [rsp + 0x130]
mov rdx, r12
mov rcx, r15
call fcn.140005370
nop
test rsi, rsi
je 0x140003034
mov rdx, qword [rsp + 0x108]
sub rdx, rsi
mov rax, rsi
cmp rdx, 0x1000
jb 0x14000302b
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000302b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rsi
call fcn.1400c3b4c
nop
test r12, r12
je 0x140003071
sub r13, r12
mov rax, r12
cmp r13, 0x1000
jb 0x140003065
add r13, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140003065
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rdx, r13
mov rcx, r12
call fcn.1400c3b4c
nop
test rbx, rbx
je 0x1400030ad
sub rdi, rbx
mov rax, rbx
cmp rdi, 0x1000
jb 0x1400030a1
add rdi, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400030a1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rdx, rdi
mov rcx, rbx
call fcn.1400c3b4c
nop
mov rcx, qword [r14]
test rcx, rcx
je 0x1400030ef
mov rdx, qword [r14 + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x1400030dd
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140003129
mov rcx, r8
call fcn.1400c3b4c
xor eax, eax
mov qword [r14], rax
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rax
mov rax, r15
jmp 0x140003106
mov rcx, qword [rsp + 0x148]
xor rcx, rsp
call fcn.1400c3af0
add rsp, 0x150
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3