Function at 0x140003558
Capabilities:
Hash data via bcrypt

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x14000c008]
xor rax, rsp
mov qword [rbp - 8], rax
movups xmm0, xmmword [0x14000aed8]
xor r13d, r13d
lea rcx, [rbp - 0x20]
mov r14, r9
mov qword [rbp - 0x20], r13
movdqu xmmword [rbp - 0x18], xmm0
mov qword [rbp - 0x28], r13
mov r12d, r8d
xorps xmm0, xmm0
mov dword [rbp - 0x30], r13d
movups xmmword [r9], xmm0
mov r15, rdx
mov dword [rbp - 0x2c], r13d
xor r9d, r9d
lea r8, str.Microsoft_Primitive_Provider
lea rdx, str.SHA1
mov esi, r13d
mov edi, r13d
call qword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
js 0x1400036a8
mov rcx, qword [rbp - 0x20]
lea rax, [rbp - 0x2c]
mov dword [rsp + 0x28], r13d
lea r9d, [r13 + 4]
lea r8, [rbp - 0x30]
mov qword [rsp + 0x20], rax
lea rdx, str.ObjectLength
call qword [sym.imp.bcrypt.dll_BCryptGetProperty]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
js 0x1400036a8
mov ecx, dword [rbp - 0x30]
call fcn.1400037f0
test rax, rax
mov rsi, rax
mov eax, 0xc0000017
cmove ebx, eax
test ebx, ebx
js 0x1400036aa
mov r9d, dword [rbp - 0x30]
lea rdx, [rbp - 0x28]
mov rcx, qword [rbp - 0x20]
mov r8, rsi
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
call qword [sym.imp.bcrypt.dll_BCryptCreateHash]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
js 0x1400036a8
mov rcx, qword [rbp - 0x28]
lea r8d, [r13 + 0x10]
xor r9d, r9d
mov dword [rbp - 0x18], 0x12d8ff70
lea rdx, [rbp - 0x18]
mov dword [rbp - 0x14], 0x7d4c7f4c
call qword [sym.imp.bcrypt.dll_BCryptHashData]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
js 0x1400036a8
mov rcx, qword [rbp - 0x28]
xor r9d, r9d
mov r8d, r12d
mov rdx, r15
call qword [sym.imp.bcrypt.dll_BCryptHashData]
nop dword [rax + rax]
mov ebx, eax
test ebx, ebx
jne 0x1400036f6
mov rcx, qword [rbp - 0x20]
lea rax, [rbp - 0x2c]
mov dword [rsp + 0x28], r13d
lea r8, [rbp - 0x30]
mov r9d, 4
mov qword [rsp + 0x20], rax
lea rdx, str.HashDigestLength
call qword [sym.imp.bcrypt.dll_BCryptGetProperty]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
jne 0x1400036f6
mov ecx, dword [rbp - 0x30]
call fcn.1400037f0
mov rdi, rax
test rax, rax
jne 0x1400036fa
mov ebx, 0xc0000017
test ebx, ebx
js 0x140003773
mov r8d, dword [rbp - 0x30]
xor r9d, r9d
mov rcx, qword [rbp - 0x28]
mov rdx, rdi
call qword [sym.imp.bcrypt.dll_BCryptFinishHash]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
js 0x140003773
mov r8d, dword [rbp - 0x30]
mov eax, 0x10
cmp dword [rbp - 0x30], eax
mov rdx, rdi
mov rcx, r14
cmovae r8d, eax
call sub.msvcrt.dll_memcpy
mov eax, dword [r14]
mov ecx, 0xfff
bswap eax
mov dword [r14], eax
movzx eax, word [r14 + 4]
rol ax, 8
mov word [r14 + 4], ax
movzx eax, word [r14 + 6]
and byte [r14 + 8], 0x3f
rol ax, 8
and ax, cx
mov ecx, 0x5000
or ax, cx
or byte [r14 + 8], 0x80
mov word [r14 + 6], ax
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x140003788
call qword [sym.imp.bcrypt.dll_BCryptDestroyHash]
nop dword [rax + rax]
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x14000379f
xor edx, edx
call qword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
nop dword [rax + rax]
test rsi, rsi
je 0x1400037ac
mov rcx, rsi
call fcn.140003830
test rdi, rdi
je 0x1400037b9
mov rcx, rdi
call fcn.140003830
mov eax, ebx
bts eax, 0x1c
test ebx, ebx
cmovns eax, r13d
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.140003b70
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret