Function at 0x100057a0
Capabilities:
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10082995
mov eax, dword fs:[0]
push eax
mov eax, 0x1200
call fcn.10030d40
push ebx
push esi
push edi
lea edi, [ebp - 0x120c]
mov ecx, 0x480
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [0x100a2784]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x11fc], 0
push 1
push 0x40
push 0x20
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0xc4]
call fcn.10012310
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 4]
lea ecx, [ebp + ecx - 0xc4]
call fcn.10005ec0
movzx edx, al
test edx, edx
je 0x10005884
push 0x10005f80
mov eax, dword [ebp + 0xc]
push eax
push str.Failed_to_open_file:
push 0x100a6c10
call fcn.1001c150
add esp, 8
push eax
call fcn.1001c610
add esp, 8
mov ecx, eax
call fcn.10010d20
push 0x10087ea3
mov ecx, dword [ebp + 8]
call fcn.10002170
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005fd0
mov eax, dword [ebp + 8]
jmp 0x10005da1
mov dword [ebp - 0xd0], 0
mov esi, esp
push 0xf0000000
push 1
push 0
push 0
lea eax, [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
cmp esi, esp
call fcn.1002ec40
test eax, eax
jne 0x1000590f
push 0x10005f80
push str.CryptAcquireContext_failed
push 0x100a6c10
call fcn.1001c150
add esp, 8
mov ecx, eax
call fcn.10010d20
lea ecx, [ebp - 0xc4]
call fcn.10012510
push 0x10087ea3
mov ecx, dword [ebp + 8]
call fcn.10002170
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005fd0
mov eax, dword [ebp + 8]
jmp 0x10005da1
mov dword [ebp - 0xdc], 0
mov esi, esp
lea eax, [ebp - 0xdc]
push eax
push 0
push 0
push 0x800c
mov ecx, dword [ebp - 0xd0]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
cmp esi, esp
call fcn.1002ec40
test eax, eax
jne 0x100059b7
push 0x10005f80
push str.CryptCreateHash_failed
push 0x100a6c10
call fcn.1001c150
add esp, 8
mov ecx, eax
call fcn.10010d20
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002ec40
lea ecx, [ebp - 0xc4]
call fcn.10012510
push 0x10087ea3
mov ecx, dword [ebp + 8]
call fcn.10002170
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005fd0
mov eax, dword [ebp + 8]
jmp 0x10005da1
mov dword [ebp - 0xe8], 0x1000
push 0
push 0x1000
lea eax, [ebp - 0x10f0]
push eax
lea ecx, [ebp - 0xc4]
call fcn.10011d80
mov dword [ebp - 0x1208], eax
mov ecx, dword [ebp - 0x1208]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x1208]
add ecx, dword [edx + 4]
call fcn.10005e70
test eax, eax
je 0x10005ab9
mov esi, esp
push 0
push 0x1000
lea eax, [ebp - 0x10f0]
push eax
mov ecx, dword [ebp - 0xdc]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
cmp esi, esp
call fcn.1002ec40
test eax, eax
jne 0x10005ab4
push 0x10005f80
push str.CryptHashData_failed
push 0x100a6c10
call fcn.1001c150
add esp, 8
mov ecx, eax
call fcn.10010d20
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002ec40
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002ec40
lea ecx, [ebp - 0xc4]
call fcn.10012510
push 0x10087ea3
mov ecx, dword [ebp + 8]
call fcn.10002170
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005fd0
mov eax, dword [ebp + 8]
jmp 0x10005da1
jmp 0x100059c1
mov esi, esp
push 0
lea ecx, [ebp - 0xc4]
call fcn.10011f50
push eax
lea eax, [ebp - 0x10f0]
push eax
mov ecx, dword [ebp - 0xdc]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
cmp esi, esp
call fcn.1002ec40
test eax, eax
jne 0x10005b76
push 0x10005f80
push str.CryptHashData_failed
push 0x100a6c10
call fcn.1001c150
add esp, 8
mov ecx, eax
call fcn.10010d20
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002ec40
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002ec40
lea ecx, [ebp - 0xc4]
call fcn.10012510
push 0x10087ea3
mov ecx, dword [ebp + 8]
call fcn.10002170
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005fd0
mov eax, dword [ebp + 8]
jmp 0x10005da1
mov dword [ebp - 0x10fc], 0
mov dword [ebp - 0x1108], 4
mov esi, esp
push 0
lea eax, [ebp - 0x1108]
push eax
lea ecx, [ebp - 0x10fc]
push ecx
push 4
mov edx, dword [ebp - 0xdc]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
cmp esi, esp
call fcn.1002ec40
test eax, eax
jne 0x10005c44
push 0x10005f80
push str.CryptGetHashParam_failed
push 0x100a6c10
call fcn.1001c150
add esp, 8
mov ecx, eax
call fcn.10010d20
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002ec40
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002ec40
lea ecx, [ebp - 0xc4]
call fcn.10012510
push 0x10087ea3
mov ecx, dword [ebp + 8]
call fcn.10002170
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005fd0
mov eax, dword [ebp + 8]
jmp 0x10005da1
push 0
mov eax, dword [ebp - 0x10fc]
push eax
lea ecx, [ebp - 0x1130]
call fcn.10010710
mov byte [ebp - 4], 2
mov esi, esp
push 0
lea eax, [ebp - 0x10fc]
push eax
push 0
lea ecx, [ebp - 0x1130]
call fcn.10010a60
push eax
push 2
mov ecx, dword [ebp - 0xdc]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
cmp esi, esp
call fcn.1002ec40
test eax, eax
jne 0x10005d29
push 0x10005f80
push str.CryptGetHashParam_failed
push 0x100a6c10
call fcn.1001c150
add esp, 8
mov ecx, eax
call fcn.10010d20
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002ec40
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002ec40
lea ecx, [ebp - 0xc4]
call fcn.10012510
push 0x10087ea3
mov ecx, dword [ebp + 8]
call fcn.10002170
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1130]
call fcn.10002220
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005fd0
mov eax, dword [ebp + 8]
jmp 0x10005da1
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002ec40
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002ec40
lea ecx, [ebp - 0xc4]
call fcn.10012510
lea eax, [ebp - 0x1130]
push eax
mov ecx, dword [ebp + 8]
call fcn.100107c0
mov ecx, dword [ebp - 0x11fc]
or ecx, 1
mov dword [ebp - 0x11fc], ecx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1130]
call fcn.10002220
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005fd0
mov eax, dword [ebp + 8]
push edx
mov ecx, ebp
push eax
lea edx, [0x10005ddc]
call fcn.1002ec70
pop eax
pop edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1002f700
add esp, 0x120c
cmp ebp, esp
call fcn.1002ec40
mov esp, ebp
pop ebp
ret