Function at 0x140017760
Capabilities:
Enumerate pe sections
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
push rbx
push rsi
push r12
push r14
push r15
sub rsp, 0x40
mov r12, r8
mov rbx, rcx
and qword [rax - 0x30], 0
and qword [rax + 0x20], 0
and dword [rax + 8], 0
test rcx, rcx
je 0x140017bd3
cmp rdx, 0x108
jb 0x140017bd3
test r8, r8
je 0x140017bd3
lea r8, [rcx + rdx]
cmp r8, rcx
jb 0x140017bbd
movzx eax, word [rcx + 0x14]
lea rdx, [rcx + 0x18]
add rdx, rax
movzx eax, word [rcx + 6]
lea rcx, [rax + rax*4]
lea r14, [rdx + rcx*8]
cmp r14, rdx
jb 0x140017bbd
cmp r14, r8
ja 0x140017bbd
mov eax, 0x10b
cmp word [rbx + 0x18], ax
je 0x140017806
mov eax, 0x20b
cmp word [rbx + 0x18], ax
je 0x1400177fc
mov ebx, 0x80070057
jmp 0x140017bc2
lea rsi, [rbx + 0x30]
lea r15, [rsi + 8]
jmp 0x14001780e
lea rsi, [rbx + 0x34]
lea r15, [rsi + 4]
cmp rsi, rbx
jb 0x140017bbd
cmp rsi, r14
jae 0x140017bbd
cmp r15, rsi
jb 0x140017bbd
cmp r15, r14
jae 0x140017bbd
sub esi, ebx
sub r14d, r15d
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 1
lea r8, str.Microsoft_Base_Cryptographic_Provider_v1.0
xor edx, edx
lea rcx, [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
nop dword [rax + rax]
test eax, eax
jne 0x1400178bf
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov dword [rsp + 0x30], ebx
lea rax, [0x140027688]
mov rcx, qword [0x140027688]
cmp rcx, rax
je 0x140017bc6
test byte [rcx + 0x1c], 1
je 0x140017bc6
mov edx, 0x31
mov r9d, ebx
lea r8, [0x140022340]
mov rcx, qword [rcx + 0x10]
call fcn.1400175e8
jmp 0x140017bc6
lea rax, [rsp + 0x88]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8004
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
nop dword [rax + rax]
test eax, eax
jne 0x140017935
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov dword [rsp + 0x30], ebx
lea rax, [0x140027688]
mov rcx, qword [0x140027688]
cmp rcx, rax
je 0x140017bc6
test byte [rcx + 0x1c], 1
je 0x140017bc6
mov edx, 0x32
jmp 0x1400178a7
xor r9d, r9d
mov r8d, esi
mov rdx, rbx
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
nop dword [rax + rax]
test eax, eax
jne 0x14001799f
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov dword [rsp + 0x30], ebx
lea rax, [0x140027688]
mov rcx, qword [0x140027688]
cmp rcx, rax
je 0x140017bc6
test byte [rcx + 0x1c], 1
je 0x140017bc6
mov edx, 0x33
jmp 0x1400178a7
xor r9d, r9d
mov r8d, r14d
mov rdx, r15
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
nop dword [rax + rax]
test eax, eax
jne 0x140017a09
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov dword [rsp + 0x30], ebx
lea rax, [0x140027688]
mov rcx, qword [0x140027688]
cmp rcx, rax
je 0x140017bc6
test byte [rcx + 0x1c], 1
je 0x140017bc6
mov edx, 0x34
jmp 0x1400178a7
xor r9d, r9d
lea r8d, [r9 + 8]
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
nop dword [rax + rax]
test eax, eax
jne 0x140017a76
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov dword [rsp + 0x30], ebx
lea rax, [0x140027688]
mov rcx, qword [0x140027688]
cmp rcx, rax
je 0x140017bc6
test byte [rcx + 0x1c], 1
je 0x140017bc6
mov edx, 0x35
jmp 0x1400178a7
and dword [rsp + 0x70], 0
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r12], xmm0
mov dword [r12 + 0x10], eax
mov word [r12 + 0x14], ax
and dword [rsp + 0x20], eax
lea r9, [rsp + 0x70]
xor r8d, r8d
lea ebx, [rax + 2]
mov edx, ebx
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
nop dword [rax + rax]
test eax, eax
jne 0x140017b02
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov dword [rsp + 0x30], ebx
lea rax, [0x140027688]
mov rcx, qword [0x140027688]
cmp rcx, rax
je 0x140017bc6
test byte [rcx + 0x1c], 1
je 0x140017bc6
mov edx, 0x36
jmp 0x1400178a7
cmp dword [rsp + 0x70], 0x14
je 0x140017b4a
mov ebx, 0x8000ffff
mov dword [rsp + 0x30], ebx
lea rax, [0x140027688]
mov rcx, qword [0x140027688]
cmp rcx, rax
je 0x140017bc6
test byte [rcx + 0x1c], 1
je 0x140017bc6
mov edx, 0x37
lea r8, [0x140022340]
mov rcx, qword [rcx + 0x10]
call fcn.1400175bc
jmp 0x140017bc6
lea r8, [r12 + 2]
and dword [rsp + 0x20], 0
lea r9, [rsp + 0x70]
mov edx, ebx
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
nop dword [rax + rax]
test eax, eax
jne 0x140017bb4
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov dword [rsp + 0x30], ebx
lea rax, [0x140027688]
mov rcx, qword [0x140027688]
cmp rcx, rax
je 0x140017bc6
test byte [rcx + 0x1c], 1
je 0x140017bc6
mov edx, 0x38
jmp 0x1400178a7
mov byte [r12], 1
xor ebx, ebx
jmp 0x140017bc2
mov ebx, 0xd000007b
mov dword [rsp + 0x30], ebx
jmp 0x140017bd8
mov ebx, 0x80070057
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x140017bfa
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
nop dword [rax + rax]
and qword [rsp + 0x88], 0
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140017c12
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
nop dword [rax + rax]
mov eax, ebx
add rsp, 0x40
pop r15
pop r14
pop r12
pop rsi
pop rbx
ret