Function at 0x10007c884
Capabilities:
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Import public key
Initialize hashing via wincrypt

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x50
and qword [rax + 0x20], 0
xor edi, edi
mov r13, rcx
and qword [r8], rdi
and qword [rax - 0x38], rdi
and qword [rax - 0x48], rdi
and qword [rax - 0x40], rdi
mov ebp, edx
lea r15d, [rdi + 1]
lea rcx, [rax - 0x38]
xor r12d, r12d
xor r8d, r8d
mov r9d, r15d
xor edx, edx
mov dword [rax - 0x58], 0xf0000000
mov qword [rax - 0x30], r12
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x10007c903
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x1ed40139
mov r8d, eax
xor r9d, r9d
xor ecx, ecx
mov ebx, eax
call fcn.1000b51b8
jmp 0x10007cc56
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x30]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8004
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x10007c93a
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x1ed90139
jmp 0x10007c8ef
test ebp, ebp
je 0x10007cc1d
lea r9, [rsp + 0x98]
lea r8, [rsp + 0x90]
mov edx, ebp
mov rcx, r13
xor esi, esi
call fcn.10007c674
mov ebx, eax
test eax, eax
jne 0x10007cc13
lea rcx, [rsp + 0x90]
call fcn.10007c7b4
test eax, eax
je 0x10007cc0c
mov eax, dword [rsp + 0x90]
sub eax, 2
je 0x10007ca83
cmp eax, r15d
je 0x10007c9f5
mov rcx, qword [rsp + 0x30]
lea r8d, [rsi + 8]
lea rdx, [rsp + 0x90]
xor r9d, r9d
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x10007cb74
mov r8d, dword [rsp + 0x94]
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x30]
xor r9d, r9d
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x10007cb3a
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x1f380139
mov ebx, eax
mov r8d, eax
jmp 0x10007cc2b
cmp qword [rsp + 0x38], rsi
jne 0x10007cbd1
test rdi, rdi
je 0x10007cbc2
mov r8, qword [rdi + 0x18]
mov rcx, qword [rsp + 0x40]
lea r9, [rsp + 0x38]
add r8, 0x60
mov edx, r15d
call qword [sym.imp.CRYPT32.dll_CryptImportPublicKeyInfo]
test eax, eax
je 0x10007cbaa
mov r9, qword [rsp + 0x38]
mov r8d, dword [rsp + 0x94]
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x30]
and dword [rsp + 0x28], esi
and qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_CryptVerifySignatureW]
test eax, eax
je 0x10007cb8f
mov ecx, 0x981
mov esi, r15d
call fcn.1000ba420
mov rcx, rax
call fcn.1000b99b0
lea rcx, [0x10000c564]
call fcn.1000b99b0
jmp 0x10007cb3a
cmp dword [0x10011bd04], esi
jne 0x10007ca93
cmp dword [0x10011bd20], esi
je 0x10007cab5
mov edx, dword [rsp + 0x94]
mov rcx, qword [rsp + 0x98]
or r8d, 0xffffffff
call fcn.10007c5e8
mov ebx, eax
test eax, eax
jne 0x10007cc02
test rdi, rdi
jne 0x10007cbf3
mov r8d, dword [rsp + 0x94]
mov rdx, qword [rsp + 0x98]
mov ecx, r15d
call qword [sym.imp.CRYPT32.dll_CertCreateCertificateContext]
mov rdi, rax
test rax, rax
je 0x10007cbdb
mov rdx, qword [rax + 0x18]
lea r9, [rsp + 0x48]
mov r8d, 0x2000003
add rdx, 0x50
mov ecx, r15d
call fcn.1000c1f24
test eax, eax
je 0x10007cb14
xor r9d, r9d
mov r8d, eax
mov edx, 0x1f070139
xor ecx, ecx
call fcn.1000b51b8
mov ecx, 0x8d3
call fcn.1000ba420
mov rcx, rax
call fcn.1000b99b0
mov r12, qword [rsp + 0x48]
lea rcx, [0x10001e308]
mov rdx, r12
call fcn.1000b99b0
mov rcx, qword [rsp + 0x98]
call qword [sym.imp.KERNEL32.dll_LocalFree]
and qword [rsp + 0x98], 0
mov eax, 0xfffffff8
sub eax, dword [rsp + 0x94]
add ebp, eax
jne 0x10007c942
test esi, esi
je 0x10007cc1d
xor ebx, ebx
jmp 0x10007cc35
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x1f330139
mov ebx, eax
mov r8d, eax
jmp 0x10007cc2b
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x1f280139
mov ebx, eax
mov r8d, eax
jmp 0x10007cc2b
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x1f1d0139
mov ebx, eax
mov r8d, eax
jmp 0x10007cc2b
mov ebx, 0x80096002
mov edx, 0x1f140139
mov r8d, ebx
jmp 0x10007cc2b
xor r8d, r8d
mov edx, 0x1f0f0139
jmp 0x10007cc2b
call sub.KERNEL32.dll_GetLastError
mov ecx, eax
call fcn.1000b7bec
mov edx, 0x1f000139
mov ebx, eax
mov r8d, eax
jmp 0x10007cc2b
mov ebx, 0x800700b7
mov edx, 0x1ef70139
mov r8d, ebx
jmp 0x10007cc2b
mov r8d, eax
mov edx, 0x1ef10139
jmp 0x10007cc2b
mov edx, 0x1ee70139
jmp 0x10007cc22
mov r8d, eax
mov edx, 0x1ee20139
jmp 0x10007cc2b
mov edx, 0x1f440139
mov r8d, 0x8007000d
mov ebx, r8d
xor r9d, r9d
xor ecx, ecx
call fcn.1000b51b8
test r12, r12
je 0x10007cc43
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x10007cc56
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x10007cc66
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x10007cc76
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x10007cc88
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
lea r11, [rsp + 0x50]
mov eax, ebx
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret