Function at 0x1400a2588
Capabilities:
Hash data via bcrypt

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x28], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov rax, qword [0x1401ea028]
xor rax, rsp
mov qword [rbp - 8], rax
mov r15, r8
mov r14, rdx
mov ecx, 0x18
call fcn.14011b490
mov rdi, rax
xor esi, esi
test rax, rax
je 0x1400a287f
add qword [0x1401ee6f8], 0x18
mov qword [rax], rsi
lea r13, [rax + 8]
mov qword [r13], rsi
lea r12, [rax + 0x10]
mov qword [r12], rsi
mov qword [rbp - 0x20], rax
xor r9d, r9d
lea r8, str.Microsoft_Primitive_Provider
lea rdx, str.SHA1
mov rcx, r13
call qword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
nop dword [rax + rax]
mov ebx, eax
or ebx, 0x10000000
jl 0x1400a26ee
mov dword [rsp + 0x28], esi
lea rax, [rbp - 0x2c]
mov qword [rsp + 0x20], rax
lea r9d, [rsi + 4]
lea r8, [rbp - 0x30]
lea rdx, str.ObjectLength
mov rcx, qword [r13]
call qword [sym.imp.bcrypt.dll_BCryptGetProperty]
nop dword [rax + rax]
mov ebx, eax
or ebx, 0x10000000
jl 0x1400a26ee
mov ebx, dword [rbp - 0x30]
mov ecx, ebx
call fcn.140131404
mov rsi, rax
test rax, rax
je 0x1400a267d
mov r8d, ebx
xor edx, edx
mov rcx, rax
call fcn.140133710
jmp 0x1400a267f
xor esi, esi
mov rbx, rsi
lea rax, [rbp - 0x20]
cmp rdi, rax
je 0x1400a269f
xor ebx, ebx
mov rcx, qword [rdi]
mov qword [rdi], rsi
xor esi, esi
test rcx, rcx
je 0x1400a26ae
call fcn.1401313f8
test rsi, rsi
je 0x1400a26ac
mov rcx, rbx
call fcn.1401313f8
xor esi, esi
mov r8, qword [rdi]
test r8, r8
jne 0x1400a26c0
mov ebx, 0x8007000e
jmp 0x1400a2812
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, dword [rbp - 0x30]
mov rdx, r12
mov rcx, qword [r13]
call qword [sym.imp.bcrypt.dll_BCryptCreateHash]
nop dword [rax + rax]
or eax, 0x10000000
mov ebx, esi
cmovl ebx, eax
test ebx, ebx
js 0x1400a2812
movups xmm0, xmmword [0x140195568]
movdqu xmmword [rbp - 0x20], xmm0
mov dword [rbp - 0x20], 0x4c132ae7
rol word [rbp - 0x1c], 8
rol word [rbp - 0x1a], 8
xor r9d, r9d
lea r8d, [r9 + 0x10]
lea rdx, [rbp - 0x20]
mov rcx, qword [r12]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
nop dword [rax + rax]
mov ebx, eax
or ebx, 0x10000000
cmovge ebx, esi
test ebx, ebx
js 0x1400a2812
mov rdx, r14
cmp qword [r14 + 0x18], 0x10
jb 0x1400a274e
mov rdx, qword [r14]
mov eax, 0xffffffff
cmp qword [r14 + 0x10], rax
ja 0x1400a27c2
xor r9d, r9d
mov r8d, dword [r14 + 0x10]
mov rcx, qword [r12]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
nop dword [rax + rax]
mov ebx, eax
mov r14d, 0x10000000
or ebx, r14d
cmovge ebx, esi
test ebx, ebx
js 0x1400a2812
xor r9d, r9d
lea r8d, [r9 + 0x14]
lea rdx, [rbp - 0x20]
mov rcx, qword [r12]
call qword [sym.imp.bcrypt.dll_BCryptFinishHash]
nop dword [rax + rax]
mov ebx, eax
or ebx, r14d
cmovge ebx, esi
test ebx, ebx
js 0x1400a2812
test r15, r15
jne 0x1400a27c9
call fcn.140111d38
mov dword [rax], 0x16
call fcn.14010f980
mov ebx, 0x8000ffff
jmp 0x1400a2812
movups xmm0, xmmword [rbp - 0x20]
movdqu xmmword [r15], xmm0
mov eax, dword [r15]
bswap eax
mov dword [r15], eax
movzx eax, word [r15 + 4]
rol ax, 8
mov word [r15 + 4], ax
movzx eax, word [r15 + 6]
rol ax, 8
mov ecx, 0xfff
and ax, cx
mov ecx, 0x5000
or ax, cx
mov word [r15 + 6], ax
and byte [r15 + 8], 0x3f
or byte [r15 + 8], 0x80
mov ebx, esi
mov rcx, qword [r12]
test rcx, rcx
je 0x1400a2827
call qword [sym.imp.bcrypt.dll_BCryptDestroyHash]
nop dword [rax + rax]
mov rcx, qword [r13]
test rcx, rcx
je 0x1400a283e
xor edx, edx
call qword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
nop dword [rax + rax]
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400a284b
call fcn.1401313f8
mov edx, 0x18
mov rcx, rdi
call fcn.1401313f8
mov eax, ebx
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1401313d0
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
xor edx, edx
xor r9d, r9d
mov ebx, 0x7d5
mov r8d, ebx
xor ecx, ecx
call fcn.1400a1124
mov ecx, ebx
call fcn.14011a578
int3