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

Disassembly:
push 0x54
mov eax, 0x10150c7f
call fcn.10147e2c
mov ebx, dword [ebp + 8]
xor eax, eax
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x50], ebx
mov dword [ebp - 4], eax
mov dword [ebp - 0x44], eax
call fcn.100a1e88
and dword [ebp - 0x3c], 0
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x48], eax
call fcn.1009b955
mov ecx, ebx
mov dword [ebp - 4], 1
call fcn.1009b955
push edi
mov eax, 0x10165d08
mov dword [ebp - 0x44], 1
push eax
push esi
push eax
push edi
push ebx
call sym.rt3d.dll_struct_POINT3D___stdcall_GetRightAngle_struct_MATRIX3D___struct_POINT3D__bool_
pop ecx
pop ecx
push eax
call sym.rt3d.dll_struct_POINT3D___stdcall_GetRightAngle_struct_MATRIX3D___struct_POINT3D__bool_
pop ecx
pop ecx
push eax
call sym.rt3d.dll_struct_POINT3D___stdcall_GetRightAngle_struct_MATRIX3D___struct_POINT3D__bool_
pop ecx
pop ecx
push eax
call sym.rt3d.dll_struct_POINT3D___stdcall_GetRightAngle_struct_MATRIX3D___struct_POINT3D__bool_
pop ecx
pop ecx
push eax
call sym.rt3d.dll_struct_POINT3D___stdcall_GetRightAngle_struct_MATRIX3D___struct_POINT3D__bool_
mov eax, dword [ebp - 0x48]
pop ecx
pop ecx
test eax, eax
jne 0x100a2105
push 0xffffffffffffffff
push 0x10159980
mov ecx, ebx
call sym.rt3d.dll_struct_POINT3D___stdcall_GetRightAngle_struct_MATRIX3D___struct_POINT3D__bool_
jmp 0x100a21c1
lea ecx, [ebp - 0x3c]
xor esi, esi
push ecx
push esi
push esi
push 0x8003
push eax
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x100a20f2
push esi
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x100a20f2
push 4
pop ecx
push esi
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x40], esi
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x4c], ecx
push eax
push ecx
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x100a20f2
push dword [ebp - 0x40]
call sym.rt3d.dll_struct_POINT3D___stdcall_GetRightAngle_struct_MATRIX3D___struct_POINT3D__bool_
mov edi, eax
pop ecx
test edi, edi
je 0x100a20f2
push esi
lea eax, [ebp - 0x40]
push eax
push edi
push 2
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
mov ecx, ebx
push 0xffffffffffffffff
push 0x10159980
test eax, eax
jne 0x100a2185
call sym.rt3d.dll_struct_POINT3D___stdcall_GetRightAngle_struct_MATRIX3D___struct_POINT3D__bool_
jmp 0x100a21ba
call sym.rt3d.dll_struct_POINT3D___stdcall_GetRightAngle_struct_MATRIX3D___struct_POINT3D__bool_
cmp dword [ebp - 0x40], esi
jbe 0x100a21ba
cmp esi, 0x28
jae 0x100a21ba
movzx eax, byte [esi + edi]
push eax
lea eax, [ebp - 0x38]
push 0x10165c80
push eax
call sym.rt3d.dll_struct_POINT3D___stdcall_GetRightAngle_struct_MATRIX3D___struct_POINT3D__bool_
lea eax, [ebp - 0x38]
push eax
push ebx
call sym.rt3d.dll_struct_POINT3D___stdcall_GetRightAngle_struct_MATRIX3D___struct_POINT3D__bool_
add esp, 0x14
inc esi
cmp esi, dword [ebp - 0x40]
jb 0x100a218f
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
pop ecx
cmp dword [ebp - 0x3c], 0
je 0x100a21d0
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
lea ecx, [ebp - 0x60]
call sym.rt3d.dll_struct_POINT3D___stdcall_GetRightAngle_struct_MATRIX3D___struct_POINT3D__bool_
mov eax, ebx
call fcn.10147dd6
ret