Function at 0x14000fa80
Capabilities:
Hash data using sha1 via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x3a0]
sub rsp, 0x4a0
mov rax, qword [0x140048f50]
xor rax, rsp
mov qword [rbp + 0x390], rax
mov rax, qword [str.0123456789abcdef]
and qword [rsp + 0x30], 0
and dword [rsp + 0x40], 0
and dword [rsp + 0x44], 0
and qword [rsp + 0x48], 0
and qword [rsp + 0x50], 0
mov qword [rsp + 0x58], rax
mov rax, qword [0x1400383d8]
mov esi, r8d
mov qword [rsp + 0x60], rax
mov al, byte [0x1400383e0]
mov r14d, r9d
mov r12, rdx
mov ebx, 0x18
xor r9d, r9d
lea r8d, [rbx - 0x17]
mov edx, 0x80000000
mov dword [rsp + 0x28], 0x8000000
mov byte [rsp + 0x68], al
mov r13, rcx
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x14000fb44
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Error_opening_file__s_nError:__d_n
mov rdx, r13
mov r8d, eax
call fcn.140020780
xor eax, eax
jmp 0x14000fcd0
cmp esi, 0x8004
jne 0x14000fb53
mov ebx, 1
jmp 0x14000fb5c
cmp esi, 0x800c
cmove ebx, ebx
lea rcx, [rsp + 0x48]
mov r9d, ebx
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], 0xf0000000
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x14000fb9a
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.CryptAcquireContext_failed:__d_n
mov edx, eax
call fcn.140020780
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14000fb3d
mov rcx, qword [rsp + 0x48]
lea rax, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
mov edx, esi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x14000fbea
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.CryptAcquireContext_failed:__d_n
mov edx, eax
call fcn.140020780
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x48]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x14000fb3d
mov esi, 0x400
jmp 0x14000fc11
mov r8d, dword [rsp + 0x40]
test r8d, r8d
je 0x14000fc36
mov rcx, qword [rsp + 0x50]
lea rdx, [rbp - 0x70]
xor r9d, r9d
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x14000fc34
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
lea rdx, [rbp - 0x70]
mov r8d, esi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov ebx, eax
test eax, eax
jne 0x14000fbf1
jmp 0x14000fc36
xor ebx, ebx
mov dword [rsp + 0x44], r14d
test ebx, ebx
je 0x14000fcab
mov rcx, qword [rsp + 0x50]
and dword [rsp + 0x20], 0
lea r9, [rsp + 0x44]
lea r8, [rsp + 0x70]
mov edx, 2
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x14000fcab
mov eax, dword [rsp + 0x44]
mov byte [r12], 0
test eax, eax
je 0x14000fca0
lea r8, [rsp + 0x70]
mov rdx, r12
mov r9d, eax
movzx ecx, byte [r8]
inc r8
mov eax, ecx
and ecx, 0xf
shr rax, 4
mov al, byte [rsp + rax + 0x58]
mov byte [rdx], al
mov al, byte [rsp + rcx + 0x58]
add rdx, 2
dec r9
mov byte [rdx - 1], al
jne 0x14000fc7a
lea eax, [r14 + r14]
mov byte [rax + r12], 0
jmp 0x14000fcad
xor ebx, ebx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rsp + 0x48]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
mov rcx, qword [rbp + 0x390]
xor rcx, rsp
call fcn.14001eba0
add rsp, 0x4a0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret