Function at 0x45a2f0
Capabilities:
Hash data via wincrypt
Initialize hashing via wincrypt
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1014
call fcn.0046ce60
mov eax, dword [0x49c00c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0x1c]
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1014], eax
xor eax, eax
push 0x1000
push eax
mov esi, eax
mov dword [ebp - 0x1010], eax
mov dword [ebp - 0x1008], eax
mov dword [ebp - 0x100c], eax
lea eax, [ebp - 0x1004]
push eax
call fcn.00447480
add esp, 0xc
lea eax, [ebp - 0x1010]
push 0xf0000040
push dword [ebp + 0xc]
push esi
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x45a399
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x45a376
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x45a37d
mov esi, 0x80004005
push esi
mov ebx, 0xe2
mov edi, str.d:_awixwix_srclibsdutilwixtoolset.dutilcryputil.cpp
push ebx
push edi
call fcn.00401225
push str.Failed_to_acquire_crypto_context.
jmp 0x45a475
lea eax, [ebp - 0x1008]
push eax
push 0
push 0
push dword [ebp + 0x10]
push dword [ebp - 0x1010]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x45a420
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x45a3ce
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x45a3d5
mov esi, 0x80004005
push esi
mov ebx, 0xe8
mov edi, str.d:_awixwix_srclibsdutilwixtoolset.dutilcryputil.cpp
push ebx
push edi
call fcn.00401225
push str.Failed_to_initiate_hash.
jmp 0x45a475
push 0
cmp dword [ebp - 0x100c], esi
je 0x45a4fd
push dword [ebp - 0x100c]
lea eax, [ebp - 0x1004]
push eax
push dword [ebp - 0x1008]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x45a4c3
push 0
lea eax, [ebp - 0x100c]
push eax
push 0x1000
lea eax, [ebp - 0x1004]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x45a3f1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x45a457
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x45a45e
mov esi, 0x80004005
push esi
mov ebx, 0xf0
mov edi, str.d:_awixwix_srclibsdutilwixtoolset.dutilcryputil.cpp
push ebx
push edi
call fcn.00401225
push str.Failed_to_read_data_block.
push esi
push 0xb
push 5
push ebx
push edi
call fcn.00401228
add esp, 0x18
cmp dword [ebp - 0x1008], 0
je 0x45a499
push dword [ebp - 0x1008]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp dword [ebp - 0x1010], 0
je 0x45a4b0
push 0
push dword [ebp - 0x1010]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00446806
leave
ret 0x18
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x45a4da
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x45a4e1
mov esi, 0x80004005
push esi
mov ebx, 0xfb
mov edi, str.d:_awixwix_srclibsdutilwixtoolset.dutilcryputil.cpp
push ebx
push edi
call fcn.00401225
push str.Failed_to_hash_data_block.
jmp 0x45a475
lea eax, [ebp + 0x18]
push eax
push dword [ebp - 0x1014]
push 2
push dword [ebp - 0x1008]
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
jne 0x45a553
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x45a530
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x45a537
mov esi, 0x80004005
push esi
mov ebx, 0x102
mov edi, str.d:_awixwix_srclibsdutilwixtoolset.dutilcryputil.cpp
push ebx
push edi
call fcn.00401225
push str.Failed_to_get_hash_value.
jmp 0x45a475
test ebx, ebx
je 0x45a484
push 1
push ebx
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x45a484
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x45a588
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x45a58f
mov esi, 0x80004005
push esi
mov ebx, 0x109
mov edi, str.d:_awixwix_srclibsdutilwixtoolset.dutilcryputil.cpp
push ebx
push edi
call fcn.00401225
push str.Failed_to_get_file_pointer.
jmp 0x45a475