user: Please show me the C implementation that matches the assembly code listed below:

```asm
<update_cov_rangefinder>:
  endbr64
  movaps %xmm0,%xmm8
  mov    %rdi,%rax
  movss  0x18(%rsp),%xmm9
  movss  0xe0(%rsp),%xmm13
  movss  0xf0(%rsp),%xmm14
  movss  0xe8(%rsp),%xmm12
  movss  0xf8(%rsp),%xmm0
  movaps %xmm13,%xmm10
  unpcklps %xmm12,%xmm10
  movaps %xmm14,%xmm15
  unpcklps %xmm14,%xmm12
  unpcklps %xmm0,%xmm15
  movaps %xmm10,%xmm11
  movq   %xmm10,%r8
  movss  0x100(%rsp),%xmm10
  movlhps %xmm15,%xmm11
  movq   %xmm15,%rdi
  movaps %xmm5,%xmm14
  movss  0x110(%rsp),%xmm15
  unpcklps %xmm13,%xmm15
  movss  0x108(%rsp),%xmm13
  movq   %xmm15,%rdx
  unpcklps %xmm13,%xmm10
  movaps %xmm10,%xmm13
  movlhps %xmm15,%xmm13
  movaps %xmm0,%xmm15
  movss  0x100(%rsp),%xmm0
  unpcklps %xmm0,%xmm15
  movaps %xmm12,%xmm0
  movlhps %xmm15,%xmm0
  movaps %xmm0,-0x28(%rsp)
  movss  D7(%rip),%xmm0
  xorps  %xmm0,%xmm14
  movss  %xmm14,-0x10(%rsp)
  movaps %xmm5,%xmm14
  unpcklps %xmm5,%xmm5
  unpcklps %xmm6,%xmm14
  xorps  %xmm0,%xmm6
  movlhps %xmm14,%xmm5
  xorps  D18(%rip),%xmm5
  movd   %xmm6,%r11d
  movaps %xmm8,%xmm6
  movaps %xmm5,%xmm14
  xorps  %xmm0,%xmm6
  shufps $0xff,%xmm5,%xmm14
  movss  %xmm14,-0xc(%rsp)
  movaps %xmm1,%xmm14
  shufps $0x0,%xmm6,%xmm6
  mulps  %xmm11,%xmm6
  xorps  %xmm0,%xmm14
  mulps  %xmm13,%xmm5
  movd   %xmm14,%r10d
  movaps %xmm2,%xmm14
  xorps  %xmm0,%xmm14
  xorps  %xmm3,%xmm0
  movd   %xmm14,%r9d
  movss  0x10(%rsp),%xmm14
  shufps $0x0,%xmm0,%xmm0
  unpcklps %xmm9,%xmm14
  movss  0x8(%rsp),%xmm9
  unpcklps %xmm9,%xmm7
  movss  0x28(%rsp),%xmm9
  movlhps %xmm14,%xmm7
  movss  0x40(%rsp),%xmm14
  addps  %xmm7,%xmm6
  movaps %xmm8,%xmm7
  unpcklps %xmm8,%xmm8
  unpcklps %xmm1,%xmm7
  unpcklps %xmm1,%xmm1
  movlhps %xmm7,%xmm8
  movss  0x30(%rsp),%xmm7
  movups %xmm6,(%rax)
  movss  0x38(%rsp),%xmm6
  mulps  %xmm13,%xmm8
  unpcklps %xmm6,%xmm7
  movss  0x20(%rsp),%xmm6
  unpcklps %xmm9,%xmm6
  movss  0x48(%rsp),%xmm9
  movlhps %xmm7,%xmm6
  movd   %r10d,%xmm7
  subps  %xmm8,%xmm6
  shufps $0x0,%xmm7,%xmm7
  mulps  -0x28(%rsp),%xmm7
  unpcklps %xmm9,%xmm14
  movss  0x50(%rsp),%xmm8
  movq   %r8,%xmm9
  movups %xmm6,0x10(%rax)
  movss  0x58(%rsp),%xmm6
  unpcklps %xmm6,%xmm8
  movaps %xmm14,%xmm6
  movss  0x70(%rsp),%xmm14
  movlhps %xmm8,%xmm6
  movss  0x108(%rsp),%xmm8
  addps  %xmm6,%xmm7
  movups %xmm7,0x20(%rax)
  movaps %xmm2,%xmm7
  unpcklps %xmm2,%xmm7
  unpcklps %xmm3,%xmm2
  movlhps %xmm7,%xmm1
  movss  0x110(%rsp),%xmm7
  unpcklps %xmm7,%xmm8
  movaps %xmm8,%xmm7
  movlhps %xmm8,%xmm15
  mulps  %xmm15,%xmm0
  movlhps %xmm9,%xmm7
  mulps  %xmm7,%xmm1
  movss  0x78(%rsp),%xmm7
  unpcklps %xmm7,%xmm14
  movss  0x60(%rsp),%xmm7
  movss  0x68(%rsp),%xmm9
  movss  0x98(%rsp),%xmm6
  unpcklps %xmm9,%xmm7
  movss  0x88(%rsp),%xmm9
  movlhps %xmm14,%xmm7
  movss  0x80(%rsp),%xmm14
  subps  %xmm1,%xmm7
  movd   %r9d,%xmm1
  shufps $0x0,%xmm1,%xmm1
  unpcklps %xmm9,%xmm14
  movups %xmm7,0x30(%rax)
  movq   %rdi,%xmm7
  movlhps %xmm10,%xmm7
  mulps  %xmm7,%xmm1
  movss  0x90(%rsp),%xmm7
  unpcklps %xmm6,%xmm7
  movaps %xmm14,%xmm6
  movlhps %xmm7,%xmm6
  addps  %xmm6,%xmm1
  movups %xmm1,0x40(%rax)
  movaps %xmm3,%xmm1
  unpcklps %xmm3,%xmm1
  movq   %rdx,%xmm3
  movlhps %xmm1,%xmm2
  movlhps %xmm12,%xmm3
  movss  0xb8(%rsp),%xmm1
  mulps  %xmm2,%xmm3
  movss  0xb0(%rsp),%xmm2
  unpcklps %xmm1,%xmm2
  movss  0xa0(%rsp),%xmm1
  movaps %xmm2,%xmm6
  movss  0xa8(%rsp),%xmm2
  unpcklps %xmm2,%xmm1
  movss  0xd0(%rsp),%xmm2
  movlhps %xmm6,%xmm1
  subps  %xmm3,%xmm1
  movss  0xc8(%rsp),%xmm3
  movups %xmm1,0x50(%rax)
  movss  0xd8(%rsp),%xmm1
  unpcklps %xmm1,%xmm2
  movss  0xc0(%rsp),%xmm1
  unpcklps %xmm3,%xmm1
  movss  0x120(%rsp),%xmm3
  movlhps %xmm2,%xmm1
  movss  0x128(%rsp),%xmm2
  addps  %xmm1,%xmm0
  movups %xmm0,0x60(%rax)
  movss  D27(%rip),%xmm0
  subss  %xmm4,%xmm0
  movaps %xmm0,%xmm1
  shufps $0x0,%xmm1,%xmm1
  mulps  %xmm11,%xmm1
  movups %xmm1,0x70(%rax)
  movaps %xmm0,%xmm1
  mulss  0x110(%rsp),%xmm0
  shufps $0xe0,%xmm1,%xmm1
  mulps  %xmm10,%xmm1
  movss  %xmm0,0x88(%rax)
  movss  -0x10(%rsp),%xmm0
  movlps %xmm1,0x80(%rax)
  movss  0x130(%rsp),%xmm1
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm11,%xmm0
  unpcklps %xmm1,%xmm2
  movss  0x118(%rsp),%xmm1
  unpcklps %xmm3,%xmm1
  movlhps %xmm2,%xmm1
  movss  0x140(%rsp),%xmm2
  addps  %xmm1,%xmm0
  movss  0x148(%rsp),%xmm1
  movups %xmm0,0x8c(%rax)
  movss  0x150(%rsp),%xmm0
  unpcklps %xmm0,%xmm1
  movss  0x138(%rsp),%xmm0
  movss  -0xc(%rsp),%xmm4
  movss  0x108(%rsp),%xmm10
  movss  0x160(%rsp),%xmm3
  movss  0x180(%rsp),%xmm9
  unpcklps %xmm2,%xmm0
  movss  0x168(%rsp),%xmm2
  mulss  %xmm4,%xmm10
  movlhps %xmm1,%xmm0
  movss  0x170(%rsp),%xmm1
  mulss  0x110(%rsp),%xmm4
  addps  %xmm0,%xmm5
  movd   %r11d,%xmm0
  shufps $0x0,%xmm0,%xmm0
  mulps  -0x28(%rsp),%xmm0
  unpcklps %xmm1,%xmm2
  movss  0x158(%rsp),%xmm1
  addss  0x178(%rsp),%xmm10
  unpcklps %xmm3,%xmm1
  movups %xmm5,0x9c(%rax)
  movlhps %xmm2,%xmm1
  movss  %xmm10,0xbc(%rax)
  addss  %xmm4,%xmm9
  addps  %xmm1,%xmm0
  movss  %xmm9,0xc0(%rax)
  movups %xmm0,0xac(%rax)
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D7
type_infered: byte[4]
name: extract_symbolic_data
arguments: tag: D18
type_infered: byte[16]
name: extract_symbolic_data
arguments: tag: D27
type_infered: byte[4]

tool: {"D7": [0x00,0x00,0x00,0x80]}

tool: {"D18": [0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80]}

tool: {"D27": [0x00,0x00,0x80,0x3f]}

assistant: ```c
void update_cov_rangefinder(float g11, float g21, float g31, float g41, float g51, float g61, float g71, float p11, float p12, float p13, float p14, float p15, float p16, float p17, float p21, float p22, float p23, float p24, float p25, float p26, float p27, float p31, float p32, float p33, float p34, float p35, float p36, float p37, float p41, float p42, float p43, float p44, float p45, float p46, float p47, float p51, float p52, float p53, float p54, float p55, float p56, float p57, float p61, float p62, float p63, float p64, float p65, float p66, float p67, float p71, float p72, float p73, float p74, float p75, float p76, float p77, float *out_4405977212521852574) {
  out_4405977212521852574[0] = -g11 * p51 + p11;
  out_4405977212521852574[1] = -g11 * p52 + p12;
  out_4405977212521852574[2] = -g11 * p53 + p13;
  out_4405977212521852574[3] = -g11 * p54 + p14;
  out_4405977212521852574[4] = -g11 * p55 + p15;
  out_4405977212521852574[5] = -g11 * p56 + p16;
  out_4405977212521852574[6] = -g11 * p57 + p17;
  out_4405977212521852574[7] = -g21 * p51 + p21;
  out_4405977212521852574[8] = -g21 * p52 + p22;
  out_4405977212521852574[9] = -g21 * p53 + p23;
  out_4405977212521852574[10] = -g21 * p54 + p24;
  out_4405977212521852574[11] = -g21 * p55 + p25;
  out_4405977212521852574[12] = -g21 * p56 + p26;
  out_4405977212521852574[13] = -g21 * p57 + p27;
  out_4405977212521852574[14] = -g31 * p51 + p31;
  out_4405977212521852574[15] = -g31 * p52 + p32;
  out_4405977212521852574[16] = -g31 * p53 + p33;
  out_4405977212521852574[17] = -g31 * p54 + p34;
  out_4405977212521852574[18] = -g31 * p55 + p35;
  out_4405977212521852574[19] = -g31 * p56 + p36;
  out_4405977212521852574[20] = -g31 * p57 + p37;
  out_4405977212521852574[21] = -g41 * p51 + p41;
  out_4405977212521852574[22] = -g41 * p52 + p42;
  out_4405977212521852574[23] = -g41 * p53 + p43;
  out_4405977212521852574[24] = -g41 * p54 + p44;
  out_4405977212521852574[25] = -g41 * p55 + p45;
  out_4405977212521852574[26] = -g41 * p56 + p46;
  out_4405977212521852574[27] = -g41 * p57 + p47;
  out_4405977212521852574[28] = p51 * (-g51 + 1);
  out_4405977212521852574[29] = p52 * (-g51 + 1);
  out_4405977212521852574[30] = p53 * (-g51 + 1);
  out_4405977212521852574[31] = p54 * (-g51 + 1);
  out_4405977212521852574[32] = p55 * (-g51 + 1);
  out_4405977212521852574[33] = p56 * (-g51 + 1);
  out_4405977212521852574[34] = p57 * (-g51 + 1);
  out_4405977212521852574[35] = -g61 * p51 + p61;
  out_4405977212521852574[36] = -g61 * p52 + p62;
  out_4405977212521852574[37] = -g61 * p53 + p63;
  out_4405977212521852574[38] = -g61 * p54 + p64;
  out_4405977212521852574[39] = -g61 * p55 + p65;
  out_4405977212521852574[40] = -g61 * p56 + p66;
  out_4405977212521852574[41] = -g61 * p57 + p67;
  out_4405977212521852574[42] = -g71 * p51 + p71;
  out_4405977212521852574[43] = -g71 * p52 + p72;
  out_4405977212521852574[44] = -g71 * p53 + p73;
  out_4405977212521852574[45] = -g71 * p54 + p74;
  out_4405977212521852574[46] = -g71 * p55 + p75;
  out_4405977212521852574[47] = -g71 * p56 + p76;
  out_4405977212521852574[48] = -g71 * p57 + p77;
}
```