Show me an equivalent reimplementation of this code in C

cf2_glyphpath_hintPoint proc near

arg_0= qword ptr  8
arg_8= qword ptr  10h
arg_10= qword ptr  18h
arg_18= qword ptr  20h
arg_20= dword ptr  28h

mov     [rsp+arg_0], rbx
mov     [rsp+arg_8], rsi
mov     [rsp+arg_10], rdi
mov     [rsp+arg_18], r14
push    r15
sub     rsp, 20h
mov     rdi, rdx
mov     r14, rcx
mov     ecx, [rcx+48C8h]
mov     edx, r9d
mov     r15, r8
call    FT_MulFix
mov     edx, [rsp+28h+arg_20]
mov     esi, eax
mov     ecx, [r14+48CCh]
call    FT_MulFix
mov     edx, [rsp+28h+arg_20]
mov     rcx, rdi
add     esi, eax
call    cf2_hintmap_map
mov     rcx, [r14]
mov     edx, eax
mov     edi, eax
mov     ecx, [rcx+4Ch]
call    FT_MulFix
mov     rcx, [r14]
mov     edx, esi
mov     ebx, eax
mov     ecx, [rcx+44h]
call    FT_MulFix
mov     edx, edi
lea     r8d, [rbx+rax]
add     r8d, [r14+48D4h]
mov     [r15], r8d
mov     rax, [r14]
mov     ecx, [rax+50h]
call    FT_MulFix
mov     rcx, [r14]
mov     edx, esi
mov     ebx, eax
mov     ecx, [rcx+48h]
call    FT_MulFix
mov     rsi, [rsp+28h+arg_8]
mov     rdi, [rsp+28h+arg_10]
lea     ecx, [rbx+rax]
mov     rbx, [rsp+28h+arg_0]
add     ecx, [r14+48D8h]
mov     r14, [rsp+28h+arg_18]
mov     [r15+4], ecx
add     rsp, 20h
pop     r15
retn