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

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2d0
mov qword [rsp + 0xa8], 0xfffffffffffffffe
mov rax, qword [0x140114720]
xor rax, rsp
mov qword [rsp + 0x2c0], rax
mov r14, r8
mov rbx, rdx
mov r13, rcx
cmp qword [rcx + 0xa90], 0
jne 0x140010e5b
xor al, al
jmp 0x1400111a9
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x38], rax
mov byte [rsp + 0x30], al
mov ecx, 0x2000
call fcn.140079a24
mov rdi, rax
mov qword [rsp + 0x98], rax
mov ecx, 0x1000
call fcn.140079a24
mov rsi, rax
mov qword [rsp + 0xa0], rax
test rdi, rdi
je 0x14001111d
test rax, rax
je 0x14001111d
lea rdx, [0x1400cf0f8]
mov rcx, rbx
call fcn.140079cc0
mov rbx, rax
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x140010ee5
lea rax, str.Could_not_open_data_file
mov qword [rsp + 0x50], rax
lea rdx, [0x14010a320]
lea rcx, [rsp + 0x50]
call fcn.1400541a0
lea rdx, [0x1400cf0f8]
mov rcx, r14
call fcn.140079cc0
mov r15, rax
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x140010f1e
lea rax, str.Could_not_open_signature_file
mov qword [rsp + 0x58], rax
lea rdx, [0x14010a320]
lea rcx, [rsp + 0x58]
call fcn.1400541a0
mov r9, r15
mov edx, 1
mov r8d, 0x1000
mov rcx, rsi
call fcn.14007a1e4
mov r12, rax
mov rcx, r15
call fcn.140079ee8
test eax, eax
je 0x140010f60
lea rax, str.Could_not_read_signature_file
mov qword [rsp + 0x60], rax
lea rdx, [0x14010a320]
lea rcx, [rsp + 0x60]
call fcn.1400541a0
mov rcx, r15
call fcn.140079ebc
test eax, eax
jne 0x140010f89
lea rax, str.Invalid_signature_file
mov qword [rsp + 0x68], rax
lea rdx, [0x14010a320]
lea rcx, [rsp + 0x68]
call fcn.1400541a0
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8004
mov rcx, qword [r13 + 0xa88]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x140010fcc
lea rax, str.Could_not_create_hash_object
mov qword [rsp + 0x70], rax
lea rdx, [0x14010a320]
lea rcx, [rsp + 0x70]
call fcn.1400541a0
mov r9, r12
shr r9, 1
je 0x140011000
mov rdx, rsi
lea r8, [rsi - 1]
add r8, r12
nop
movzx ecx, byte [rdx]
movzx eax, byte [r8]
mov byte [rdx], al
mov byte [r8], cl
lea rdx, [rdx + 1]
lea r8, [r8 - 1]
sub r9, 1
jne 0x140010fe0
nop word [rax + rax]
mov rcx, rbx
call fcn.140079ebc
test eax, eax
jne 0x140011087
mov r9, rbx
lea edx, [rax + 1]
mov r8d, 0x2000
mov rcx, rdi
call fcn.14007a1e4
mov r14, rax
mov rcx, rbx
call fcn.140079ee8
test eax, eax
je 0x14001104c
lea rax, str.Error_reading_data_file
mov qword [rsp + 0x78], rax
lea rdx, [0x14010a320]
lea rcx, [rsp + 0x78]
call fcn.1400541a0
xor r9d, r9d
mov r8d, r14d
mov rdx, rdi
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x140011000
lea rax, str.Error_while_hashing_data
mov qword [rsp + 0x80], rax
lea rdx, [0x14010a320]
lea rcx, [rsp + 0x80]
call fcn.1400541a0
xor eax, eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rax
mov r9, qword [r13 + 0xa90]
mov r8d, r12d
mov rdx, rsi
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptVerifySignatureW]
test eax, eax
je 0x1400110bb
mov r14b, 1
mov byte [rsp + 0x30], r14b
jmp 0x140011161
movups xmm0, xmmword [str.Bad_update_signature]
movaps xmmword [rsp + 0xc0], xmm0
movups xmm1, xmmword [0x1400cef60]
movaps xmmword [rsp + 0xd0], xmm1
movsd xmm0, qword [0x1400cef70]
movsd qword [rsp + 0xe0], xmm0
movzx eax, word [0x1400cef78]
mov word [rsp + 0xe8], ax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x88], rax
lea rdx, [0x14010a320]
lea rcx, [rsp + 0x88]
call fcn.1400541a0
lea rax, str.Could_not_allocate_memory_for_reading_file
mov qword [rsp + 0x90], rax
lea rdx, [0x14010a320]
lea rcx, [rsp + 0x90]
call fcn.1400541a0
nop
mov rbx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xa0]
movzx r14d, byte [rsp + 0x30]
test rbx, rbx
je 0x14001116e
mov rcx, rbx
call fcn.140079e24
test r15, r15
je 0x14001117b
mov rcx, r15
call fcn.140079e24
test rdi, rdi
je 0x140011188
mov rcx, rdi
call fcn.140079a1c
test rsi, rsi
je 0x140011195
mov rcx, rsi
call fcn.140079a1c
cmp qword [rsp + 0x38], 0
jne 0x1400111a5
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
movzx eax, r14b
mov rcx, qword [rsp + 0x2c0]
xor rcx, rsp
call fcn.1400264d0
add rsp, 0x2d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret