Function at 0x55356c
Capabilities:
Hash data via bcrypt

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x7c
mov eax, dword [ebp + 8]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x4c], 0x5792b4
mov dword [ebp - 0x48], 0x58a064
mov dword [ebp - 0x44], ebp
mov dword [ebp - 0x3c], esp
mov dword [ebp - 0x44], 0x5538e6
mov dword [ebp - 0x60], 1
lea eax, [ebp - 0x68]
call fcn.00579e71
lea eax, [ebp - 0x20]
push 0
push 0
push str.SHA512
push eax
call sub.BCRYPT.DLL_BCryptOpenAlgorithmProvider
test eax, eax
jne 0x5538cc
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x60], 2
sub esp, 8
lea edx, [ebp - 0x74]
lea ecx, [ebp - 0x6c]
push 0
push edx
push 4
push ecx
push str.ObjectLength
push eax
call sub.BCRYPT.DLL_BCryptGetProperty
add esp, 8
xor ecx, ecx
test eax, eax
jne 0x5538ae
mov dword [ebp - 0x60], 3
call sub.KERNEL32.DLL_GetProcessHeap
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x60], 4
sub esp, 4
push ecx
push 0
push eax
call sub.KERNEL32.DLL_HeapAlloc
add esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x55380c
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x60], 5
sub esp, 8
lea ecx, [ebp - 0x30]
push 0
lea edx, [ebp - 0x74]
push edx
push 4
push ecx
push str.HashDigestLength
push eax
call sub.BCRYPT.DLL_BCryptGetProperty
add esp, 8
xor ecx, ecx
test eax, eax
jne 0x55387b
mov dword [ebp - 0x60], 6
call sub.KERNEL32.DLL_GetProcessHeap
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x60], 7
sub esp, 4
push ecx
push 0
push eax
call sub.KERNEL32.DLL_HeapAlloc
add esp, 4
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x553813
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x60], 8
sub esp, 4
lea edx, [ebp - 0x2c]
push 0
push 0
push 0
push ecx
push dword [ebp - 0x14]
push edx
push eax
call sub.BCRYPT.DLL_BCryptCreateHash
add esp, 4
xor ecx, ecx
test eax, eax
jne 0x553848
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x60], 9
push 0
push ecx
push eax
push edx
call sub.BCRYPT.DLL_BCryptHashData
xor ecx, ecx
test eax, eax
jne 0x553829
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x60], 0xa
push 0
push ecx
push dword [ebp - 0x18]
push eax
call sub.BCRYPT.DLL_BCryptFinishHash
xor ecx, ecx
test eax, eax
jne 0x553829
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x60], 0xb
call sub.KERNEL32.DLL_GetProcessHeap
mov dword [ebp - 0x60], 0xc
sub esp, 4
push dword [ebp - 0x28]
push 0
push eax
call sub.KERNEL32.DLL_HeapAlloc
add esp, 4
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x553817
sub esp, 4
push ecx
push dword [ebp - 0x18]
push dword [ebp - 0x24]
call fcn.00566cac
add esp, 0x10
mov dword [ebp - 0x60], 0xd
call sub.KERNEL32.DLL_GetProcessHeap
mov dword [ebp - 0x60], 0xe
sub esp, 4
push dword [ebp - 0x28]
push 0
push eax
call sub.KERNEL32.DLL_HeapAlloc
add esp, 4
mov ecx, eax
mov eax, dword [ebp + 8]
mov esi, eax
mov dword [esi], ecx
sub esp, 4
mov edi, dword [ebp - 0x28]
push edi
push dword [ebp - 0x24]
push ecx
mov dword [ebp - 0x10], ecx
call fcn.00566cac
add esp, 0x10
mov dword [esi + 4], edi
mov dword [ebp - 0x60], 0xf
call sub.KERNEL32.DLL_GetProcessHeap
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x60], 0x10
sub esp, 4
push ecx
push 0
push eax
call sub.KERNEL32.DLL_HeapFree
mov ecx, dword [ebp - 0x10]
add esp, 4
jmp 0x553829
xor ecx, ecx
jmp 0x5538ae
xor ecx, ecx
jmp 0x55387b
mov eax, dword [ebp + 8]
mov dword [eax], 0
mov dword [eax + 4], 0
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x60], 0x13
sub esp, 0xc
push eax
call sub.BCRYPT.DLL_BCryptDestroyHash
mov ecx, dword [ebp - 0x10]
add esp, 0xc
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x60], 0x14
call sub.KERNEL32.DLL_GetProcessHeap
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x60], 0x15
sub esp, 4
push dword [ebp - 0x18]
push 0
push eax
call sub.KERNEL32.DLL_HeapFree
mov ecx, dword [ebp - 0x10]
add esp, 4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x60], 0x16
call sub.KERNEL32.DLL_GetProcessHeap
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x60], 0x17
sub esp, 4
push dword [ebp - 0x14]
push 0
push eax
call sub.KERNEL32.DLL_HeapFree
mov ecx, dword [ebp - 0x10]
add esp, 4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x60], 0x18
sub esp, 8
push 0
push eax
call sub.BCRYPT.DLL_BCryptCloseAlgorithmProvider
add esp, 8
sub esp, 0xc
lea eax, [ebp - 0x68]
push eax
call fcn.00579e92
add esp, 0x10
mov eax, dword [ebp + 8]
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret