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

```asm
<update_cov_rangefinder>:
  endbr64
  movd   %xmm1,%edx
  movss  0xe0(%rsp),%xmm14
  movss  0xe8(%rsp),%xmm13
  movss  0xf0(%rsp),%xmm12
  movss  0xf8(%rsp),%xmm10
  movss  0x100(%rsp),%xmm9
  movss  0x108(%rsp),%xmm8
  movss  0x110(%rsp),%xmm11
  movss  D5(%rip),%xmm15
  xorps  %xmm15,%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm14,%xmm1
  addss  %xmm1,%xmm7
  movss  %xmm7,(%rdi)
  movaps %xmm0,%xmm7
  mulss  %xmm13,%xmm7
  addss  0x8(%rsp),%xmm7
  movss  %xmm7,0x4(%rdi)
  movaps %xmm0,%xmm7
  mulss  %xmm12,%xmm7
  addss  0x10(%rsp),%xmm7
  movss  %xmm7,0x8(%rdi)
  movaps %xmm0,%xmm7
  mulss  %xmm10,%xmm7
  addss  0x18(%rsp),%xmm7
  movss  %xmm7,0xc(%rdi)
  movaps %xmm0,%xmm7
  mulss  %xmm9,%xmm7
  addss  0x20(%rsp),%xmm7
  movss  %xmm7,0x10(%rdi)
  movaps %xmm0,%xmm7
  mulss  %xmm8,%xmm7
  addss  0x28(%rsp),%xmm7
  movss  %xmm7,0x14(%rdi)
  mulss  %xmm11,%xmm0
  addss  0x30(%rsp),%xmm0
  movss  %xmm0,0x18(%rdi)
  movd   %edx,%xmm1
  xorps  %xmm15,%xmm1
  movaps %xmm1,%xmm0
  mulss  %xmm14,%xmm0
  addss  0x38(%rsp),%xmm0
  movss  %xmm0,0x1c(%rdi)
  movaps %xmm1,%xmm0
  mulss  %xmm13,%xmm0
  addss  0x40(%rsp),%xmm0
  movss  %xmm0,0x20(%rdi)
  movaps %xmm1,%xmm0
  mulss  %xmm12,%xmm0
  addss  0x48(%rsp),%xmm0
  movss  %xmm0,0x24(%rdi)
  movaps %xmm1,%xmm0
  mulss  %xmm10,%xmm0
  addss  0x50(%rsp),%xmm0
  movss  %xmm0,0x28(%rdi)
  movaps %xmm1,%xmm0
  mulss  %xmm9,%xmm0
  addss  0x58(%rsp),%xmm0
  movss  %xmm0,0x2c(%rdi)
  movaps %xmm1,%xmm0
  mulss  %xmm8,%xmm0
  addss  0x60(%rsp),%xmm0
  movss  %xmm0,0x30(%rdi)
  mulss  %xmm11,%xmm1
  addss  0x68(%rsp),%xmm1
  movss  %xmm1,0x34(%rdi)
  xorps  %xmm15,%xmm2
  movaps %xmm2,%xmm0
  mulss  %xmm14,%xmm0
  addss  0x70(%rsp),%xmm0
  movss  %xmm0,0x38(%rdi)
  movaps %xmm2,%xmm0
  mulss  %xmm13,%xmm0
  addss  0x78(%rsp),%xmm0
  movss  %xmm0,0x3c(%rdi)
  movaps %xmm2,%xmm0
  mulss  %xmm12,%xmm0
  addss  0x80(%rsp),%xmm0
  movss  %xmm0,0x40(%rdi)
  movaps %xmm2,%xmm0
  mulss  %xmm10,%xmm0
  addss  0x88(%rsp),%xmm0
  movss  %xmm0,0x44(%rdi)
  movaps %xmm2,%xmm0
  mulss  %xmm9,%xmm0
  addss  0x90(%rsp),%xmm0
  movss  %xmm0,0x48(%rdi)
  movaps %xmm2,%xmm0
  mulss  %xmm8,%xmm0
  addss  0x98(%rsp),%xmm0
  movss  %xmm0,0x4c(%rdi)
  mulss  %xmm11,%xmm2
  addss  0xa0(%rsp),%xmm2
  movss  %xmm2,0x50(%rdi)
  xorps  %xmm15,%xmm3
  movaps %xmm3,%xmm0
  mulss  %xmm14,%xmm0
  addss  0xa8(%rsp),%xmm0
  movss  %xmm0,0x54(%rdi)
  movaps %xmm3,%xmm0
  mulss  %xmm13,%xmm0
  addss  0xb0(%rsp),%xmm0
  movss  %xmm0,0x58(%rdi)
  movaps %xmm3,%xmm0
  mulss  %xmm12,%xmm0
  addss  0xb8(%rsp),%xmm0
  movss  %xmm0,0x5c(%rdi)
  movaps %xmm3,%xmm0
  mulss  %xmm10,%xmm0
  addss  0xc0(%rsp),%xmm0
  movss  %xmm0,0x60(%rdi)
  movaps %xmm3,%xmm0
  mulss  %xmm9,%xmm0
  addss  0xc8(%rsp),%xmm0
  movss  %xmm0,0x64(%rdi)
  movaps %xmm3,%xmm0
  mulss  %xmm8,%xmm0
  addss  0xd0(%rsp),%xmm0
  movss  %xmm0,0x68(%rdi)
  mulss  %xmm11,%xmm3
  addss  0xd8(%rsp),%xmm3
  movss  %xmm3,0x6c(%rdi)
  movss  D12(%rip),%xmm0
  subss  %xmm4,%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm14,%xmm1
  movss  %xmm1,0x70(%rdi)
  movaps %xmm0,%xmm1
  mulss  %xmm13,%xmm1
  movss  %xmm1,0x74(%rdi)
  movaps %xmm0,%xmm1
  mulss  %xmm12,%xmm1
  movss  %xmm1,0x78(%rdi)
  movaps %xmm0,%xmm1
  mulss  %xmm10,%xmm1
  movss  %xmm1,0x7c(%rdi)
  movaps %xmm0,%xmm1
  mulss  %xmm9,%xmm1
  movss  %xmm1,0x80(%rdi)
  movaps %xmm0,%xmm1
  mulss  %xmm8,%xmm1
  movss  %xmm1,0x84(%rdi)
  mulss  %xmm11,%xmm0
  movss  %xmm0,0x88(%rdi)
  xorps  %xmm15,%xmm5
  movaps %xmm5,%xmm0
  mulss  %xmm14,%xmm0
  addss  0x118(%rsp),%xmm0
  movss  %xmm0,0x8c(%rdi)
  movaps %xmm5,%xmm0
  mulss  %xmm13,%xmm0
  addss  0x120(%rsp),%xmm0
  movss  %xmm0,0x90(%rdi)
  movaps %xmm5,%xmm0
  mulss  %xmm12,%xmm0
  addss  0x128(%rsp),%xmm0
  movss  %xmm0,0x94(%rdi)
  movaps %xmm5,%xmm0
  mulss  %xmm10,%xmm0
  addss  0x130(%rsp),%xmm0
  movss  %xmm0,0x98(%rdi)
  movaps %xmm5,%xmm0
  mulss  %xmm9,%xmm0
  addss  0x138(%rsp),%xmm0
  movss  %xmm0,0x9c(%rdi)
  movaps %xmm5,%xmm0
  mulss  %xmm8,%xmm0
  addss  0x140(%rsp),%xmm0
  movss  %xmm0,0xa0(%rdi)
  mulss  %xmm11,%xmm5
  addss  0x148(%rsp),%xmm5
  movss  %xmm5,0xa4(%rdi)
  xorps  %xmm15,%xmm6
  movaps %xmm14,%xmm2
  mulss  %xmm6,%xmm2
  addss  0x150(%rsp),%xmm2
  movss  %xmm2,0xa8(%rdi)
  movaps %xmm13,%xmm1
  mulss  %xmm6,%xmm1
  addss  0x158(%rsp),%xmm1
  movss  %xmm1,0xac(%rdi)
  movaps %xmm12,%xmm0
  mulss  %xmm6,%xmm0
  addss  0x160(%rsp),%xmm0
  movss  %xmm0,0xb0(%rdi)
  mulss  %xmm6,%xmm10
  addss  0x168(%rsp),%xmm10
  movss  %xmm10,0xb4(%rdi)
  mulss  %xmm6,%xmm9
  addss  0x170(%rsp),%xmm9
  movss  %xmm9,0xb8(%rdi)
  mulss  %xmm6,%xmm8
  addss  0x178(%rsp),%xmm8
  movss  %xmm8,0xbc(%rdi)
  mulss  %xmm11,%xmm6
  addss  0x180(%rsp),%xmm6
  movss  %xmm6,0xc0(%rdi)
  ret
```

tool_calls: name: disassemble_data
arguments: label: D5
data_type: byte[4]
name: disassemble_data
arguments: label: D12
data_type: byte[4]

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

tool: {"D12": [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;
}
```