Function at 0x140018414
Capabilities:
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x40
and qword [rbp - 0x10], 0
mov rbx, r8
and qword [rbp + 0x38], 0
mov esi, edx
and dword [rbp + 0x20], 0
mov rdi, rcx
test rcx, rcx
je 0x1400186af
test rbx, rbx
je 0x1400186af
mov r9d, 1
mov dword [rsp + 0x20], 0xf0000000
lea r8, str.Microsoft_Base_Cryptographic_Provider_v1.0
xor edx, edx
lea rcx, [rbp - 0x10]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
nop dword [rax + rax]
test eax, eax
jne 0x1400184ce
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov rcx, qword [0x140027688]
lea rax, [0x140027688]
cmp rcx, rax
je 0x1400186e2
test byte [rcx + 0x1c], 1
je 0x1400186e2
mov edx, 0xb
mov rcx, qword [rcx + 0x10]
lea r8, [0x140022370]
mov r9d, ebx
call fcn.1400175e8
jmp 0x1400186e2
mov rcx, qword [rbp - 0x10]
lea rax, [rbp + 0x38]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov edx, 0x8004
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
nop dword [rax + rax]
test eax, eax
jne 0x14001853b
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov rcx, qword [0x140027688]
lea rax, [0x140027688]
cmp rcx, rax
je 0x1400186e2
test byte [rcx + 0x1c], 1
je 0x1400186e2
mov edx, 0xc
jmp 0x1400184b6
mov rcx, qword [rbp + 0x38]
xor r9d, r9d
mov r8d, esi
mov rdx, rdi
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
nop dword [rax + rax]
test eax, eax
jne 0x14001859d
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov rcx, qword [0x140027688]
lea rax, [0x140027688]
cmp rcx, rax
je 0x1400186e2
test byte [rcx + 0x1c], 1
je 0x1400186e2
mov edx, 0xd
jmp 0x1400184b6
mov rcx, qword [rbp + 0x38]
lea r9, [rbp + 0x20]
and dword [rsp + 0x20], 0
xor r8d, r8d
lea edi, [r8 + 2]
mov edx, edi
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
nop dword [rax + rax]
test eax, eax
jne 0x140018606
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov rcx, qword [0x140027688]
lea rax, [0x140027688]
cmp rcx, rax
je 0x1400186e2
test byte [rcx + 0x1c], 1
je 0x1400186e2
lea edx, [rdi + 0xc]
jmp 0x1400184b6
cmp dword [rbp + 0x20], 0x14
jbe 0x14001864c
mov ebx, 0x8000ffff
mov rcx, qword [0x140027688]
lea rax, [0x140027688]
cmp rcx, rax
je 0x1400186e2
test byte [rcx + 0x1c], 1
je 0x1400186e2
mov rcx, qword [rcx + 0x10]
lea r8, [0x140022370]
mov edx, 0xf
call fcn.1400175bc
jmp 0x1400186e2
mov rcx, qword [rbp + 0x38]
lea r9, [rbp + 0x20]
and dword [rsp + 0x20], 0
mov r8, rbx
mov edx, edi
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
nop dword [rax + rax]
test eax, eax
jne 0x1400186ab
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov rcx, qword [0x140027688]
lea rax, [0x140027688]
cmp rcx, rax
je 0x1400186e2
test byte [rcx + 0x1c], 1
je 0x1400186e2
mov edx, 0x10
jmp 0x1400184b6
xor ebx, ebx
jmp 0x1400186e2
mov rcx, qword [0x140027688]
lea rax, [0x140027688]
cmp rcx, rax
je 0x1400186dd
test byte [rcx + 0x1c], 1
je 0x1400186dd
mov rcx, qword [rcx + 0x10]
lea r8, [0x140022370]
mov edx, 0xa
call fcn.1400175bc
mov ebx, 0x80070057
mov rcx, qword [rbp + 0x38]
test rcx, rcx
je 0x1400186fc
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
nop dword [rax + rax]
and qword [rbp + 0x38], 0
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x140018713
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
nop dword [rax + rax]
mov eax, ebx
mov rbx, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret