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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10082ee5
mov eax, dword fs:[0]
push eax
mov eax, 0x1200
call fcn.100312f0
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 [0x100a3784]
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.10012880
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 4]
lea ecx, [ebp + ecx - 0xc4]
call fcn.10006270
movzx edx, al
test edx, edx
je 0x10005c34
push 0x100046b0
mov eax, dword [ebp + 0xc]
push eax
push str.Failed_to_open_file:
push 0x100a7cc0
call fcn.1001c600
add esp, 8
push eax
call fcn.1001cb80
add esp, 8
mov ecx, eax
call fcn.10011290
push 0x10088efb
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.10006330
mov eax, dword [ebp + 8]
jmp 0x10006151
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.1002f1f0
test eax, eax
jne 0x10005cbf
push 0x100046b0
push str.CryptAcquireContext_failed
push 0x100a7cc0
call fcn.1001c600
add esp, 8
mov ecx, eax
call fcn.10011290
lea ecx, [ebp - 0xc4]
call fcn.10012a80
push 0x10088efb
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.10006330
mov eax, dword [ebp + 8]
jmp 0x10006151
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.1002f1f0
test eax, eax
jne 0x10005d67
push 0x100046b0
push str.CryptCreateHash_failed
push 0x100a7cc0
call fcn.1001c600
add esp, 8
mov ecx, eax
call fcn.10011290
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002f1f0
lea ecx, [ebp - 0xc4]
call fcn.10012a80
push 0x10088efb
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.10006330
mov eax, dword [ebp + 8]
jmp 0x10006151
mov dword [ebp - 0xe8], 0x1000
push 0
push 0x1000
lea eax, [ebp - 0x10f0]
push eax
lea ecx, [ebp - 0xc4]
call fcn.100122f0
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.10006220
test eax, eax
je 0x10005e69
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.1002f1f0
test eax, eax
jne 0x10005e64
push 0x100046b0
push str.CryptHashData_failed
push 0x100a7cc0
call fcn.1001c600
add esp, 8
mov ecx, eax
call fcn.10011290
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002f1f0
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002f1f0
lea ecx, [ebp - 0xc4]
call fcn.10012a80
push 0x10088efb
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.10006330
mov eax, dword [ebp + 8]
jmp 0x10006151
jmp 0x10005d71
mov esi, esp
push 0
lea ecx, [ebp - 0xc4]
call fcn.100124c0
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.1002f1f0
test eax, eax
jne 0x10005f26
push 0x100046b0
push str.CryptHashData_failed
push 0x100a7cc0
call fcn.1001c600
add esp, 8
mov ecx, eax
call fcn.10011290
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002f1f0
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002f1f0
lea ecx, [ebp - 0xc4]
call fcn.10012a80
push 0x10088efb
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.10006330
mov eax, dword [ebp + 8]
jmp 0x10006151
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.1002f1f0
test eax, eax
jne 0x10005ff4
push 0x100046b0
push str.CryptGetHashParam_failed
push 0x100a7cc0
call fcn.1001c600
add esp, 8
mov ecx, eax
call fcn.10011290
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002f1f0
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002f1f0
lea ecx, [ebp - 0xc4]
call fcn.10012a80
push 0x10088efb
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.10006330
mov eax, dword [ebp + 8]
jmp 0x10006151
push 0
mov eax, dword [ebp - 0x10fc]
push eax
lea ecx, [ebp - 0x1130]
call fcn.10010c80
mov byte [ebp - 4], 2
mov esi, esp
push 0
lea eax, [ebp - 0x10fc]
push eax
push 0
lea ecx, [ebp - 0x1130]
call fcn.10010fd0
push eax
push 2
mov ecx, dword [ebp - 0xdc]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
cmp esi, esp
call fcn.1002f1f0
test eax, eax
jne 0x100060d9
push 0x100046b0
push str.CryptGetHashParam_failed
push 0x100a7cc0
call fcn.1001c600
add esp, 8
mov ecx, eax
call fcn.10011290
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002f1f0
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002f1f0
lea ecx, [ebp - 0xc4]
call fcn.10012a80
push 0x10088efb
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.10006330
mov eax, dword [ebp + 8]
jmp 0x10006151
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002f1f0
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002f1f0
lea ecx, [ebp - 0xc4]
call fcn.10012a80
lea eax, [ebp - 0x1130]
push eax
mov ecx, dword [ebp + 8]
call fcn.10010d30
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.10006330
mov eax, dword [ebp + 8]
push edx
mov ecx, ebp
push eax
lea edx, [0x1000618c]
call fcn.1002f220
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.1002fcb0
add esp, 0x120c
cmp ebp, esp
call fcn.1002f1f0
mov esp, ebp
pop ebp
ret