Function at 0x1009f120
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
push 0x58
mov eax, 0x1014c3ff
call fcn.101439bc
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x54], eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], ebx
call fcn.1009ef38
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x3c], ebx
call fcn.100989f5
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 4], 1
call fcn.100989f5
push edi
mov eax, 0x10161d28
mov dword [ebp - 0x48], 1
push eax
push esi
mov esi, dword [ebp - 0x44]
push eax
push edi
push esi
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
pop ecx
pop ecx
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
pop ecx
pop ecx
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
pop ecx
pop ecx
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
pop ecx
pop ecx
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov eax, dword [ebp - 0x4c]
pop ecx
pop ecx
test eax, eax
je 0x1009f271
lea ecx, [ebp - 0x3c]
push ecx
push ebx
push ebx
push 0x8003
push eax
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x1009f271
push ebx
push dword [esi + 8]
push dword [esi + 4]
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x1009f271
push 4
pop ecx
push ebx
lea eax, [ebp - 0x50]
mov dword [ebp - 0x40], ebx
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x50], ecx
push eax
push ecx
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x1009f271
push dword [ebp - 0x40]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov edi, eax
pop ecx
test edi, edi
je 0x1009f271
push ebx
lea eax, [ebp - 0x40]
push eax
push edi
push 2
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
mov ecx, esi
push 0xffffffffffffffff
push 0x10155980
test eax, eax
jne 0x1009f232
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
jmp 0x1009f268
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
cmp dword [ebp - 0x40], 0
jbe 0x1009f268
cmp ebx, 0x28
jae 0x1009f268
movzx eax, byte [ebx + edi]
push eax
lea eax, [ebp - 0x38]
push 0x10161ca0
push eax
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
lea eax, [ebp - 0x38]
push eax
push esi
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
add esp, 0x14
inc ebx
cmp ebx, dword [ebp - 0x40]
jb 0x1009f23d
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
pop ecx
jmp 0x1009f27f
push 0xffffffffffffffff
push 0x10155980
mov ecx, esi
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
cmp dword [ebp - 0x3c], 0
je 0x1009f28e
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
lea ecx, [ebp - 0x64]
call sym.rt3d.dll_public:_void___stdcall_MATRIX3D::Invert_struct_MATRIX3D_const__
mov eax, esi
call fcn.10143966
ret