Function at 0x140002f50
Capabilities:
Hash data via bcrypt

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0xd0]
sub rsp, 0x1d0
mov rax, qword [0x1401ca1c8]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov r15, r9
mov r14, r8
mov rsi, rcx
mov qword [rbp + 0x18], rcx
xor r12d, r12d
mov dword [rsp + 0x60], r12d
mov qword [rsp + 0x50], r12
movups xmm0, xmmword [rdx]
movaps xmmword [rsp + 0x70], xmm0
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 0x20]
call fcn.14003ddc0
cmp qword [rax + 0x18], 8
jb 0x140002fb5
mov rax, qword [rax]
xor r9d, r9d
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x50]
call sub.bcrypt.dll_BCryptOpenAlgorithmProvider
test eax, eax
sets bl
mov rdx, qword [rbp + 0x38]
cmp rdx, 8
jb 0x14000300d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003008
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400032d9
call fcn.1400fb310
test bl, bl
jne 0x1400032df
lea rax, [0x140131c48]
mov qword [rbp - 0x68], rax
mov rax, qword [rsp + 0x50]
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x68]
mov qword [rbp - 0x30], rax
lea rax, [rbp - 0x68]
mov qword [rbp - 0x70], rax
lea rax, [rbp + 0x80]
mov qword [rsp + 0x70], rax
mov qword [rbp + 0xb8], r12
lea rdx, [rbp + 0x80]
lea rcx, [rbp - 0x68]
call qword [0x140131c48]
mov qword [rbp + 0xb8], rax
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x140003081
mov rax, qword [rcx]
lea rdx, [rbp - 0x68]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp - 0x30], 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 0x140003300
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 0x140003321
mov qword [rsp + 0x58], r12
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x20], xmm0
mov rbx, r12
mov qword [rbp + 0x30], rbx
mov edx, dword [rsp + 0x48]
test rdx, rdx
je 0x140003125
lea r8, [rsp + 0x40]
lea rcx, [rbp + 0x20]
call fcn.140001950
mov rbx, qword [rbp + 0x30]
mov r9, qword [rbp + 0x28]
mov rdi, qword [rbp + 0x20]
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 0x140003342
lea rax, [0x140131c80]
mov qword [rbp - 0x28], rax
mov rax, qword [rsp + 0x58]
mov qword [rbp - 0x20], rax
lea rax, [rbp - 0x28]
mov qword [rbp + 0x10], rax
lea rax, [rbp - 0x28]
mov qword [rsp + 0x70], rax
lea rax, [rbp + 0x40]
mov qword [rbp - 0x70], rax
mov qword [rbp + 0x78], r12
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x28]
call qword [0x140131c80]
mov qword [rbp + 0x78], rax
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x1400031b9
mov rax, qword [rcx]
lea rdx, [rbp - 0x28]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x10], r12
xor r9d, r9d
mov r8d, r15d
mov rdx, r14
mov rcx, qword [rsp + 0x58]
call sub.bcrypt.dll_BCryptHashData
test eax, eax
js 0x140003365
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.1400033e0
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 0x140003388
mov rcx, qword [rbp + 0x78]
test rcx, rcx
je 0x14000323e
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0x78]
test rcx, rcx
je 0x14000323e
mov rax, qword [rcx]
lea rdx, [rbp + 0x40]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x78], r12
test rdi, rdi
je 0x140003273
sub rbx, rdi
mov rax, rdi
cmp rbx, 0x1000
jb 0x140003267
add rbx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400032d3
mov rdx, rbx
mov rcx, rdi
call fcn.1400fb310
nop
mov r9, qword [rbp + 0xb8]
test r9, r9
je 0x1400032af
mov rax, qword [r9]
mov rcx, r9
call qword [rax + 0x10]
mov r9, qword [rbp + 0xb8]
test r9, r9
je 0x1400032af
mov rcx, qword [r9]
mov r8, qword [rcx + 0x20]
lea rax, [rbp + 0x80]
cmp r9, rax
setne dl
mov rcx, r9
call r8
nop
mov rax, rsi
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.1400fb3b0
add rsp, 0x1d0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1401025e4
nop
call fcn.1401025e4
int3
lea rdx, str.Failed_to_open_algorithm_provider
lea rcx, [rbp + 0x20]
call fcn.140001430
lea rdx, [0x1401c3140]
lea rcx, [rbp + 0x20]
call fcn.1400fc9b0
nop
lea rdx, str.Failed_to_get_algorithm_object_length
lea rcx, [rbp + 0x20]
call fcn.140001430
lea rdx, [0x1401c3140]
lea rcx, [rbp + 0x20]
call fcn.1400fc9b0
int3
lea rdx, str.Failed_to_get_the_hash_length_of_the_algorithm
lea rcx, [rbp + 0x20]
call fcn.140001430
lea rdx, [0x1401c3140]
lea rcx, [rbp + 0x20]
call fcn.1400fc9b0
nop
lea rdx, str.Failed_to_create_hash_object
lea rcx, [rsp + 0x70]
call fcn.140001430
lea rdx, [0x1401c3140]
lea rcx, [rsp + 0x70]
call fcn.1400fc9b0
nop
lea rdx, str.Failed_to_hash_the_input_string
lea rcx, [rsp + 0x70]
call fcn.140001430
lea rdx, [0x1401c3140]
lea rcx, [rsp + 0x70]
call fcn.1400fc9b0
int3
lea rdx, str.Failed_to_finalize_the_hash
lea rcx, [rsp + 0x70]
call fcn.140001430
lea rdx, [0x1401c3140]
lea rcx, [rsp + 0x70]
call fcn.1400fc9b0
int3