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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1014
call fcn.00451870
mov eax, dword [0x4b1040]
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.00452250
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 0x46532d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x46530a
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x465311
mov esi, 0x80004005
push esi
mov ebx, 0xe2
mov edi, str.d:_awixwix_srclibsdutilwixtoolset.dutilcryputil.cpp
push ebx
push edi
call fcn.0040129e
push str.Failed_to_acquire_crypto_context.
jmp 0x465409
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 0x4653b4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x465362
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x465369
mov esi, 0x80004005
push esi
mov ebx, 0xe8
mov edi, str.d:_awixwix_srclibsdutilwixtoolset.dutilcryputil.cpp
push ebx
push edi
call fcn.0040129e
push str.Failed_to_initiate_hash.
jmp 0x465409
push 0
cmp dword [ebp - 0x100c], esi
je 0x465491
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 0x465457
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 0x465385
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x4653eb
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x4653f2
mov esi, 0x80004005
push esi
mov ebx, 0xf0
mov edi, str.d:_awixwix_srclibsdutilwixtoolset.dutilcryputil.cpp
push ebx
push edi
call fcn.0040129e
push str.Failed_to_read_data_block.
push esi
push 0xb
push 5
push ebx
push edi
call fcn.004012a1
add esp, 0x18
cmp dword [ebp - 0x1008], 0
je 0x46542d
push dword [ebp - 0x1008]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp dword [ebp - 0x1010], 0
je 0x465444
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.00451586
leave
ret 0x18
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x46546e
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x465475
mov esi, 0x80004005
push esi
mov ebx, 0xfb
mov edi, str.d:_awixwix_srclibsdutilwixtoolset.dutilcryputil.cpp
push ebx
push edi
call fcn.0040129e
push str.Failed_to_hash_data_block.
jmp 0x465409
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 0x4654e7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x4654c4
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x4654cb
mov esi, 0x80004005
push esi
mov ebx, 0x102
mov edi, str.d:_awixwix_srclibsdutilwixtoolset.dutilcryputil.cpp
push ebx
push edi
call fcn.0040129e
push str.Failed_to_get_hash_value.
jmp 0x465409
test ebx, ebx
je 0x465418
push 1
push ebx
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x465418
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x46551c
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x465523
mov esi, 0x80004005
push esi
mov ebx, 0x109
mov edi, str.d:_awixwix_srclibsdutilwixtoolset.dutilcryputil.cpp
push ebx
push edi
call fcn.0040129e
push str.Failed_to_get_file_pointer.
jmp 0x465409