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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10024375
mov eax, dword fs:[0]
push eax
mov eax, 0x1200
call fcn.10022010
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 [0x10032420]
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.1000edc0
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 4]
lea ecx, [ebp + ecx - 0xc4]
mov esi, esp
call dword [sym.imp.MSVCP100D.dll_public:_bool___thiscall_std::ios_base::operator__void_const]
cmp esi, esp
call fcn.10021dc0
movzx edx, al
test edx, edx
je 0x100053fb
mov esi, esp
mov eax, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
push str.Failed_to_open_file:
mov edx, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
push edx
call fcn.10015790
add esp, 8
push eax
call fcn.10016080
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP100D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
cmp esi, esp
call fcn.10021dc0
push 0x10028b6b
mov ecx, dword [ebp + 8]
call fcn.10002270
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005a60
mov eax, dword [ebp + 8]
jmp 0x10005988
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.10021dc0
test eax, eax
jne 0x10005493
mov esi, esp
mov eax, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push eax
push str.CryptAcquireContext_failed
mov ecx, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
push ecx
call fcn.10015790
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP100D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
cmp esi, esp
call fcn.10021dc0
lea ecx, [ebp - 0xc4]
call fcn.1000f000
push 0x10028b6b
mov ecx, dword [ebp + 8]
call fcn.10002270
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005a60
mov eax, dword [ebp + 8]
jmp 0x10005988
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.10021dc0
test eax, eax
jne 0x1000554c
mov esi, esp
mov eax, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push eax
push str.CryptCreateHash_failed
mov ecx, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
push ecx
call fcn.10015790
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP100D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
cmp esi, esp
call fcn.10021dc0
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.10021dc0
lea ecx, [ebp - 0xc4]
call fcn.1000f000
push 0x10028b6b
mov ecx, dword [ebp + 8]
call fcn.10002270
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005a60
mov eax, dword [ebp + 8]
jmp 0x10005988
mov dword [ebp - 0xe8], 0x1000
mov esi, esp
push 0
push 0x1000
lea eax, [ebp - 0x10f0]
push eax
lea ecx, [ebp - 0xc4]
call dword [sym.imp.MSVCP100D.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::read_char___long_long___int64__]
cmp esi, esp
call fcn.10021dc0
mov dword [ebp - 0x1208], eax
mov ecx, dword [ebp - 0x1208]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x1208]
add ecx, dword [edx + 4]
mov esi, esp
call dword [sym.imp.MSVCP100D.dll_public:_void____thiscall_std::ios_base::operator_void__void_const]
cmp esi, esp
call fcn.10021dc0
test eax, eax
je 0x1000566f
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.10021dc0
test eax, eax
jne 0x1000566a
mov esi, esp
mov eax, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push eax
push str.CryptHashData_failed
mov ecx, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
push ecx
call fcn.10015790
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP100D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
cmp esi, esp
call fcn.10021dc0
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.10021dc0
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.10021dc0
lea ecx, [ebp - 0xc4]
call fcn.1000f000
push 0x10028b6b
mov ecx, dword [ebp + 8]
call fcn.10002270
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005a60
mov eax, dword [ebp + 8]
jmp 0x10005988
jmp 0x10005556
mov esi, esp
push 0
mov edi, esp
lea ecx, [ebp - 0xc4]
call dword [sym.imp.MSVCP100D.dll_public:_long_long___int64____thiscall_std::basic_istream_char__struct_std::char_traits_char__::gcount_void_const]
cmp edi, esp
call fcn.10021dc0
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.10021dc0
test eax, eax
jne 0x10005743
mov esi, esp
mov eax, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push eax
push str.CryptHashData_failed
mov ecx, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
push ecx
call fcn.10015790
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP100D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
cmp esi, esp
call fcn.10021dc0
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.10021dc0
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.10021dc0
lea ecx, [ebp - 0xc4]
call fcn.1000f000
push 0x10028b6b
mov ecx, dword [ebp + 8]
call fcn.10002270
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005a60
mov eax, dword [ebp + 8]
jmp 0x10005988
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.10021dc0
test eax, eax
jne 0x1000581e
mov esi, esp
mov eax, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push eax
push str.CryptGetHashParam_failed
mov ecx, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
push ecx
call fcn.10015790
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP100D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
cmp esi, esp
call fcn.10021dc0
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.10021dc0
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.10021dc0
lea ecx, [ebp - 0xc4]
call fcn.1000f000
push 0x10028b6b
mov ecx, dword [ebp + 8]
call fcn.10002270
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005a60
mov eax, dword [ebp + 8]
jmp 0x10005988
push 0
mov eax, dword [ebp - 0x10fc]
push eax
lea ecx, [ebp - 0x1130]
call fcn.1000e650
mov byte [ebp - 4], 2
mov esi, esp
push 0
lea eax, [ebp - 0x10fc]
push eax
push 0
lea ecx, [ebp - 0x1130]
call fcn.1000e9a0
push eax
push 2
mov ecx, dword [ebp - 0xdc]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
cmp esi, esp
call fcn.10021dc0
test eax, eax
jne 0x10005910
mov esi, esp
mov eax, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
push eax
push str.CryptGetHashParam_failed
mov ecx, dword [sym.imp.MSVCP100D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
push ecx
call fcn.10015790
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP100D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
cmp esi, esp
call fcn.10021dc0
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.10021dc0
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.10021dc0
lea ecx, [ebp - 0xc4]
call fcn.1000f000
push 0x10028b6b
mov ecx, dword [ebp + 8]
call fcn.10002270
mov eax, dword [ebp - 0x11fc]
or eax, 1
mov dword [ebp - 0x11fc], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1130]
call fcn.10002320
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005a60
mov eax, dword [ebp + 8]
jmp 0x10005988
mov esi, esp
mov eax, dword [ebp - 0xdc]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.10021dc0
mov esi, esp
push 0
mov eax, dword [ebp - 0xd0]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp esi, esp
call fcn.10021dc0
lea ecx, [ebp - 0xc4]
call fcn.1000f000
lea eax, [ebp - 0x1130]
push eax
mov ecx, dword [ebp + 8]
call fcn.1000e700
mov ecx, dword [ebp - 0x11fc]
or ecx, 1
mov dword [ebp - 0x11fc], ecx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1130]
call fcn.10002320
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc4]
call fcn.10005a60
mov eax, dword [ebp + 8]
push edx
mov ecx, ebp
push eax
lea edx, [0x100059c4]
call fcn.10021df0
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.10021fe0
add esp, 0x120c
cmp ebp, esp
call fcn.10021dc0
mov esp, ebp
pop ebp
ret