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

Disassembly:
push ebp
lea ebp, [esp - 0x68]
mov eax, 0x800c0
call fcn.004048d0
push edi
xor edi, edi
cmp dword [ebp + 0x7c], edi
jne 0x402f25
mov dword [ebp + 0x7c], 0x408ec0
push dword [ebp + 0x7c]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, eax
push eax
push edi
push dword [ebp + 0x7c]
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0xf0000000
push 1
push edi
push edi
lea eax, [ebp + 0x54]
push eax
mov dword [ebp + 0x54], edi
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
cmp eax, edi
je 0x4030ee
lea eax, [ebp + 0x60]
push eax
push edi
push edi
push dword [ebp + 0x74]
push dword [ebp + 0x54]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
cmp eax, edi
mov dword [ebp + 0x58], eax
je 0x4030df
cmp dword [ebp + 0x74], 0x8004
mov dword [ebp + 0x5c], 2
jne 0x402f8f
mov dword [ebp + 0x5c], 3
push ebx
push esi
push 0x80000000
push dword [ebp + 0x70]
call fcn.004014ce
mov ebx, eax
cmp ebx, edi
pop ecx
pop ecx
je 0x40302c
push ebx
call fcn.0040155a
mov esi, eax
shr esi, 0x13
test eax, 0x7ffff
pop ecx
je 0x402fbe
inc esi
push edi
push edi
push edi
push ebx
mov dword [ebp + 0x50], edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push edi
lea eax, [ebp + 0x48]
push eax
push 0x80000
lea eax, [ebp - 0x80058]
push eax
push ebx
mov dword [ebp + 0x48], edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp + 0x48]
cmp eax, edi
mov dword [ebp + 0x64], eax
je 0x403025
push edi
push eax
lea eax, [ebp - 0x80058]
push eax
push dword [ebp + 0x60]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x403022
cmp dword [0x406c88], edi
je 0x402fcb
push dword [ebp + 0x5c]
inc dword [ebp + 0x50]
push esi
push dword [ebp + 0x50]
call fcn.00402e87
add esp, 0xc
jmp 0x402fcb
mov dword [ebp + 0x58], edi
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0x58], edi
je 0x4030d4
push 4
pop ecx
push dword [ebp + 0x78]
mov dword [ebp + 0x64], ecx
call fcn.00402e75
mov esi, dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
add esp, 4
push edi
mov dword [ebp + 0x5c], eax
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp + 0x4c]
push eax
push ecx
push dword [ebp + 0x60]
call esi
test eax, eax
je 0x4030d4
push dword [ebp + 0x4c]
call fcn.00401470
mov ebx, eax
cmp ebx, edi
pop ecx
je 0x4030d4
mov eax, dword [ebp + 0x4c]
push edi
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x64]
push eax
push ebx
push 2
push dword [ebp + 0x60]
call esi
test eax, eax
je 0x4030cd
push 0x9e
lea eax, [ebp - 0x56]
push edi
push eax
mov word [ebp - 0x58], di
call sub.MSVCRT.dll_memset
add esp, 0xc
xor esi, esi
cmp dword [ebp + 0x64], edi
jbe 0x4030cd
movzx eax, byte [esi + ebx]
push eax
push dword [ebp + 0x5c]
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x58]
push eax
push dword [ebp + 0x7c]
call dword [sym.imp.KERNEL32.dll_lstrcatW]
inc esi
cmp esi, dword [ebp + 0x64]
jb 0x4030a5
push ebx
call sub.MSVCRT.dll_free
pop ecx
push dword [ebp + 0x60]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
pop esi
pop ebx
push edi
push dword [ebp + 0x54]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp dword [ebp + 0x58], edi
jne 0x403109
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp + 0x74], 0x8003
jne 0x403104
mov dword [0x406e78], eax
jmp 0x403109
mov dword [0x406f1c], eax
mov eax, dword [ebp + 0x7c]
pop edi
add ebp, 0x68
leave
ret