Function at 0x140002f60
Capabilities:
Hash data via bcrypt

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0xe0]
sub rsp, 0x1e0
mov rax, qword [0x1401cf048]
xor rax, rsp
mov qword [rbp + 0xd0], rax
mov r15, r9
mov r14, r8
mov rsi, rcx
mov qword [rbp + 0x28], rcx
xor r12d, r12d
mov dword [rsp + 0x60], r12d
mov qword [rsp + 0x50], r12
movups xmm0, xmmword [rdx]
movaps xmmword [rbp - 0x80], xmm0
lea rdx, [rbp - 0x80]
lea rcx, [rbp + 0xb0]
call fcn.14003e160
cmp qword [rax + 0x18], 8
jb 0x140002fc6
mov rax, qword [rax]
xor r9d, r9d
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x50]
call sub.bcrypt.dll_BCryptOpenAlgorithmProvider
mov ebx, eax
shr ebx, 0x1f
mov rdx, qword [rbp + 0xc8]
cmp rdx, 8
jb 0x140003024
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xb0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000301f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400032e9
call fcn.1401009e8
test bl, bl
jne 0x1400032ef
lea rax, fcn.140001d20
mov qword [rbp - 0x58], rax
mov rax, qword [rsp + 0x50]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x58]
mov qword [rbp - 0x20], rax
lea rax, [rbp - 0x58]
mov qword [rbp - 0x60], rax
lea rax, [rbp + 0x70]
mov qword [rbp - 0x80], rax
mov qword [rbp + 0xa8], r12
lea rdx, [rbp + 0x70]
lea rcx, [rbp - 0x58]
call fcn.140001d20
mov qword [rbp + 0xa8], rax
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x140003090
mov rax, qword [rcx]
lea rdx, [rbp - 0x58]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp - 0x20], r12
mov dword [rsp + 0x44], r12d
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x4c], r12d
mov dword [rsp + 0x28], r12d
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov r9d, 4
lea r8, [rsp + 0x48]
lea rdx, str.ObjectLength
mov rcx, qword [rsp + 0x50]
call sub.bcrypt.dll_BCryptGetProperty
test eax, eax
js 0x140003312
mov dword [rsp + 0x28], r12d
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov r9d, 4
lea r8, [rsp + 0x4c]
lea rdx, str.HashDigestLength
mov rcx, qword [rsp + 0x50]
call sub.bcrypt.dll_BCryptGetProperty
test eax, eax
js 0x140003335
mov qword [rsp + 0x58], r12
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
mov rbx, r12
mov qword [rsp + 0x78], rbx
mov edx, dword [rsp + 0x48]
test rdx, rdx
je 0x140003138
lea r8, [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.140001950
mov rbx, qword [rsp + 0x78]
mov r9, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
sub r9, rdi
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
mov r8, rdi
lea rdx, [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
call sub.bcrypt.dll_BCryptCreateHash
test eax, eax
js 0x140003358
lea rax, fcn.140001d80
mov qword [rbp - 0x18], rax
mov rax, qword [rsp + 0x58]
mov qword [rbp - 0x10], rax
lea rax, [rbp - 0x18]
mov qword [rbp + 0x20], rax
lea rax, [rbp - 0x18]
mov qword [rbp - 0x80], rax
lea rax, [rbp + 0x30]
mov qword [rbp - 0x60], rax
mov qword [rbp + 0x68], r12
lea rdx, [rbp + 0x30]
lea rcx, [rbp - 0x18]
call fcn.140001d80
mov qword [rbp + 0x68], rax
mov rcx, qword [rbp + 0x20]
test rcx, rcx
je 0x1400031cc
mov rax, qword [rcx]
lea rdx, [rbp - 0x18]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x20], r12
xor r9d, r9d
mov r8d, r15d
mov rdx, r14
mov rcx, qword [rsp + 0x58]
call sub.bcrypt.dll_BCryptHashData
test eax, eax
js 0x140003379
mov qword [rsi], r12
mov qword [rsi + 8], r12
mov qword [rsi + 0x10], r12
mov dword [rsp + 0x60], 1
mov edx, dword [rsp + 0x4c]
mov rcx, rsi
call fcn.1400033f0
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
sub r8, rdx
xor r9d, r9d
mov rcx, qword [rsp + 0x58]
call sub.bcrypt.dll_BCryptFinishHash
test eax, eax
js 0x14000339a
mov rcx, qword [rbp + 0x68]
test rcx, rcx
je 0x140003251
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0x68]
test rcx, rcx
je 0x140003251
mov rax, qword [rcx]
lea rdx, [rbp + 0x30]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x68], r12
test rdi, rdi
je 0x140003286
sub rbx, rdi
mov rax, rdi
cmp rbx, 0x1000
jb 0x14000327a
add rbx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400032e3
mov rdx, rbx
mov rcx, rdi
call fcn.1401009e8
nop
mov r9, qword [rbp + 0xa8]
test r9, r9
je 0x1400032bf
mov rax, qword [r9]
mov rcx, r9
call qword [rax + 0x10]
mov r9, qword [rbp + 0xa8]
test r9, r9
je 0x1400032bf
mov rcx, qword [r9]
mov r8, qword [rcx + 0x20]
lea rax, [rbp + 0x70]
cmp r9, rax
setne dl
mov rcx, r9
call r8
nop
mov rax, rsi
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.140100a80
add rsp, 0x1e0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140107a98
nop
call fcn.140107a98
int3
lea rdx, str.Failed_to_open_algorithm_provider
lea rcx, [rsp + 0x68]
call fcn.140001430
lea rdx, [0x1401c8d30]
lea rcx, [rsp + 0x68]
call fcn.140101e78
nop
lea rdx, str.Failed_to_get_algorithm_object_length
lea rcx, [rsp + 0x68]
call fcn.140001430
lea rdx, [0x1401c8d30]
lea rcx, [rsp + 0x68]
call fcn.140101e78
int3
lea rdx, str.Failed_to_get_the_hash_length_of_the_algorithm
lea rcx, [rsp + 0x68]
call fcn.140001430
lea rdx, [0x1401c8d30]
lea rcx, [rsp + 0x68]
call fcn.140101e78
nop
lea rdx, str.Failed_to_create_hash_object
lea rcx, [rbp - 0x80]
call fcn.140001430
lea rdx, [0x1401c8d30]
lea rcx, [rbp - 0x80]
call fcn.140101e78
nop
lea rdx, str.Failed_to_hash_the_input_string
lea rcx, [rbp - 0x80]
call fcn.140001430
lea rdx, [0x1401c8d30]
lea rcx, [rbp - 0x80]
call fcn.140101e78
int3
lea rdx, str.Failed_to_finalize_the_hash
lea rcx, [rbp - 0x80]
call fcn.140001430
lea rdx, [0x1401c8d30]
lea rcx, [rbp - 0x80]
call fcn.140101e78
int3