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

Disassembly:
push 0x74
mov eax, 0x1002aa01
call fcn.1000c9b0
mov edi, ecx
push 0xf
xor ebx, ebx
lea ecx, [ebp - 0x44]
pop esi
push ebx
mov dword [ebp - 0x44], ebx
push 0x1002d0c4
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], esi
mov byte [ebp - 0x44], bl
call fcn.100048ba
lea eax, [ebp - 0x44]
mov dword [ebp - 4], ebx
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
call fcn.10003f7c
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x28]
push ecx
lea ecx, [edi + 4]
mov dword [edi], eax
call fcn.10005d0b
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x10008771
mov ecx, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], ecx
cmp eax, 0x1000
jb 0x10008768
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.10003ded
mov eax, dword [ebp - 0x80]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x7c]
push eax
push ecx
call fcn.1000c94c
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], esi
mov byte [ebp - 0x28], bl
cmp eax, 0x10
jb 0x100087b5
mov ecx, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x80], ecx
cmp eax, 0x1000
jb 0x100087ac
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.10003ded
mov eax, dword [ebp - 0x7c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x80]
push eax
push ecx
call fcn.1000c94c
pop ecx
pop ecx
lea esi, [edi + 0x1c]
xor ecx, ecx
lea ebx, [edi + 0x20]
cmp dword [esi], ecx
je 0x100087f7
cmp dword [ebx], ecx
je 0x100087f7
push 0xf
pop esi
xor ebx, ebx
mov dword [ebp - 0x30], esi
push str.Cryptographic_provider_already_acquired_
mov byte [ebp - 0x7c], bl
lea ecx, [ebp - 0x44]
push dword [ebp - 0x7c]
mov dword [ebp - 0x44], ebx
push 0x28
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x44], bl
call fcn.100024a6
mov dword [ebp - 4], 1
mov dword [ebp - 0x2c], ebx
jmp 0x1000884b
mov eax, dword [edi + 0x24]
push 0xf0000020
push 1
push ecx
push ecx
push esi
mov dword [edi + 0x28], eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x100088ef
push 0xf
pop esi
xor ebx, ebx
mov dword [ebp - 0x30], esi
push str.Failed_to_acquire_cryptographic_context.
mov byte [ebp - 0x7c], bl
lea ecx, [ebp - 0x44]
push dword [ebp - 0x7c]
mov dword [ebp - 0x44], ebx
push 0x28
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x44], bl
call fcn.100024a6
mov dword [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x44]
mov dword [ebp - 0x28], ebx
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
call fcn.10003f7c
mov eax, dword [ebp - 0x2c]
lea ecx, [edi + 4]
mov dword [edi], eax
lea eax, [ebp - 0x28]
push eax
call fcn.10005d0b
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x100088a8
mov ecx, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], eax
cmp eax, 0x1000
jb 0x1000889f
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.10003ded
mov eax, dword [ebp - 0x7c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x80]
push eax
push ecx
call fcn.1000c94c
pop ecx
pop ecx
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x28], bl
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], ebx
cmp eax, 0x10
jb 0x100088e8
mov ecx, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], eax
cmp eax, 0x1000
jb 0x100088df
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.10003ded
mov eax, dword [ebp - 0x7c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x80]
push eax
push ecx
call fcn.1000c94c
pop ecx
pop ecx
xor al, al
jmp 0x100089f1
push ebx
xor ebx, ebx
push ebx
push ebx
push 0x8004
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x100089ef
push str.Failed_to_acquire_cryptographic_context.
mov byte [ebp - 0x7c], bl
lea ecx, [ebp - 0x78]
push dword [ebp - 0x7c]
mov dword [ebp - 0x78], ebx
push 0x28
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], 0xf
mov byte [ebp - 0x78], bl
call fcn.100024a6
mov dword [ebp - 4], 3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x60], eax
lea ecx, [ebp - 0x5c]
lea eax, [ebp - 0x78]
mov dword [ebp - 0x5c], ebx
push eax
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
call fcn.10003f7c
mov eax, dword [ebp - 0x60]
lea ecx, [edi + 4]
mov dword [edi], eax
lea eax, [ebp - 0x5c]
push eax
call fcn.10005d0b
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jb 0x1000899b
mov ecx, dword [ebp - 0x5c]
inc eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x80], ecx
cmp eax, 0x1000
jb 0x10008992
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.10003ded
mov eax, dword [ebp - 0x7c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x80]
push eax
push ecx
call fcn.1000c94c
pop ecx
pop ecx
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], bl
cmp eax, 0x10
jb 0x100089df
mov ecx, dword [ebp - 0x78]
inc eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x80], ecx
cmp eax, 0x1000
jb 0x100089d6
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.10003ded
mov eax, dword [ebp - 0x7c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x80]
push eax
push ecx
call fcn.1000c94c
pop ecx
pop ecx
push ebx
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov dword [esi], ebx
jmp 0x100088e8
mov al, 1
call fcn.1000c96e
ret