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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1007f635
mov eax, dword fs:[0]
push eax
mov eax, 0x1200
call fcn.1002db00
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 [0x1009f774]
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.1000f130
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 4]
lea ecx, [ebp + ecx - 0xc4]
call fcn.10005a20
movzx edx, al
test edx, edx
je 0x100053e4
push 0x10004660
mov eax, dword [ebp + 0xc]
push eax
push str.Failed_to_open_file:
push 0x100a3c60
call fcn.10018eb0
add esp, 8
push eax
call fcn.10019430
add esp, 8
mov ecx, eax
call fcn.1000db40
push 0x10084d83
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.10005ae0
mov eax, dword [ebp + 8]
jmp 0x10005901
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.1002ba00
test eax, eax
jne 0x1000546f
push 0x10004660
push str.CryptAcquireContext_failed
push 0x100a3c60
call fcn.10018eb0
add esp, 8
mov ecx, eax
call fcn.1000db40
lea ecx, [ebp - 0xc4]
call fcn.1000f330
push 0x10084d83
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.10005ae0
mov eax, dword [ebp + 8]
jmp 0x10005901
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.1002ba00
test eax, eax
jne 0x10005517
push 0x10004660
push str.CryptCreateHash_failed
push 0x100a3c60
call fcn.10018eb0
add esp, 8
mov ecx, eax
call fcn.1000db40
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002ba00
lea ecx, [ebp - 0xc4]
call fcn.1000f330
push 0x10084d83
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.10005ae0
mov eax, dword [ebp + 8]
jmp 0x10005901
mov dword [ebp - 0xe8], 0x1000
push 0
push 0x1000
lea eax, [ebp - 0x10f0]
push eax
lea ecx, [ebp - 0xc4]
call fcn.1000eba0
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.100059d0
test eax, eax
je 0x10005619
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.1002ba00
test eax, eax
jne 0x10005614
push 0x10004660
push str.CryptHashData_failed
push 0x100a3c60
call fcn.10018eb0
add esp, 8
mov ecx, eax
call fcn.1000db40
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002ba00
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002ba00
lea ecx, [ebp - 0xc4]
call fcn.1000f330
push 0x10084d83
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.10005ae0
mov eax, dword [ebp + 8]
jmp 0x10005901
jmp 0x10005521
mov esi, esp
push 0
lea ecx, [ebp - 0xc4]
call fcn.1000ed70
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.1002ba00
test eax, eax
jne 0x100056d6
push 0x10004660
push str.CryptHashData_failed
push 0x100a3c60
call fcn.10018eb0
add esp, 8
mov ecx, eax
call fcn.1000db40
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002ba00
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002ba00
lea ecx, [ebp - 0xc4]
call fcn.1000f330
push 0x10084d83
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.10005ae0
mov eax, dword [ebp + 8]
jmp 0x10005901
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.1002ba00
test eax, eax
jne 0x100057a4
push 0x10004660
push str.CryptGetHashParam_failed
push 0x100a3c60
call fcn.10018eb0
add esp, 8
mov ecx, eax
call fcn.1000db40
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002ba00
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002ba00
lea ecx, [ebp - 0xc4]
call fcn.1000f330
push 0x10084d83
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.10005ae0
mov eax, dword [ebp + 8]
jmp 0x10005901
push 0
mov eax, dword [ebp - 0x10fc]
push eax
lea ecx, [ebp - 0x1130]
call fcn.1000d530
mov byte [ebp - 4], 2
mov esi, esp
push 0
lea eax, [ebp - 0x10fc]
push eax
push 0
lea ecx, [ebp - 0x1130]
call fcn.1000d880
push eax
push 2
mov ecx, dword [ebp - 0xdc]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
cmp esi, esp
call fcn.1002ba00
test eax, eax
jne 0x10005889
push 0x10004660
push str.CryptGetHashParam_failed
push 0x100a3c60
call fcn.10018eb0
add esp, 8
mov ecx, eax
call fcn.1000db40
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002ba00
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002ba00
lea ecx, [ebp - 0xc4]
call fcn.1000f330
push 0x10084d83
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.10005ae0
mov eax, dword [ebp + 8]
jmp 0x10005901
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.1002ba00
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.1002ba00
lea ecx, [ebp - 0xc4]
call fcn.1000f330
lea eax, [ebp - 0x1130]
push eax
mov ecx, dword [ebp + 8]
call fcn.1000d5e0
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.10005ae0
mov eax, dword [ebp + 8]
push edx
mov ecx, ebp
push eax
lea edx, [0x1000593c]
call fcn.1002ba30
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.1002c4c0
add esp, 0x120c
cmp ebp, esp
call fcn.1002ba00
mov esp, ebp
pop ebp
ret