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

```asm
<main>:
  endbr64
  sub    $0x8,%rsp
  movsd  D67(%rip),%xmm14
  movapd %xmm14,%xmm6
  movapd %xmm14,%xmm4
  movsd  D3(%rip),%xmm12
  movapd %xmm14,%xmm9
  movapd %xmm12,%xmm8
  jmp    L256
L170:
  addsd  %xmm9,%xmm0
  comisd %xmm0,%xmm8
  jbe    L147
L110:
  movapd %xmm7,%xmm2
  addsd  %xmm0,%xmm2
  comisd %xmm5,%xmm2
  jae    L147
  ucomisd %xmm1,%xmm4
  jp     L224
  jne    L224
  movapd %xmm2,%xmm13
  divsd  %xmm5,%xmm13
  movapd %xmm0,%xmm15
  divsd  %xmm3,%xmm15
  ucomisd %xmm15,%xmm13
  jp     L224
  jne    L224
  mulsd  %xmm3,%xmm6
  mulsd  %xmm0,%xmm14
L224:
  ucomisd %xmm0,%xmm4
  jp     L158
  jne    L158
  movapd %xmm2,%xmm13
  divsd  %xmm5,%xmm13
  movapd %xmm1,%xmm15
  divsd  %xmm3,%xmm15
  ucomisd %xmm15,%xmm13
  jp     L158
  jne    L158
  mulsd  %xmm3,%xmm6
  mulsd  %xmm1,%xmm14
L158:
  ucomisd %xmm1,%xmm3
  jp     L127
  jne    L127
  movapd %xmm2,%xmm13
  divsd  %xmm5,%xmm13
  movapd %xmm0,%xmm15
  divsd  %xmm4,%xmm15
  ucomisd %xmm15,%xmm13
  jp     L127
  jne    L127
  mulsd  %xmm4,%xmm6
  mulsd  %xmm0,%xmm14
L127:
  ucomisd %xmm0,%xmm3
  jp     L170
  jne    L170
  divsd  %xmm5,%xmm2
  movapd %xmm1,%xmm15
  divsd  %xmm4,%xmm15
  ucomisd %xmm15,%xmm2
  jp     L170
  jne    L170
  mulsd  %xmm4,%xmm6
  mulsd  %xmm1,%xmm14
  jmp    L170
L147:
  addsd  %xmm11,%xmm1
  comisd %xmm1,%xmm10
  jbe    L19
L42:
  movapd %xmm1,%xmm7
  mulsd  %xmm12,%xmm7
  movsd  D67(%rip),%xmm0
  jmp    L110
L19:
  addsd  D67(%rip),%xmm3
  sub    $0x1,%ecx
  je     L228
L173:
  comisd D67(%rip),%xmm10
  jbe    L19
  movapd %xmm4,%xmm5
  mulsd  D3(%rip),%xmm5
  addsd  %xmm3,%xmm5
  movsd  D67(%rip),%xmm1
  movapd %xmm1,%xmm11
  jmp    L42
L228:
  movsd  D3(%rip),%xmm0
  comisd %xmm10,%xmm0
  jbe    L52
  movapd %xmm10,%xmm4
L256:
  mov    $0x9,%ecx
  movsd  D67(%rip),%xmm3
  movapd %xmm3,%xmm10
  addsd  %xmm4,%xmm10
  jmp    L173
L52:
  cvttsd2si %xmm6,%edx
  cvttsd2si %xmm14,%esi
  lea    D68(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  add    $0x8,%rsp
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D67
data_type: byte[16]
name: unpack_data
arguments: data_label: D3
data_type: byte[8]
name: unpack_data
arguments: data_label: D68
data_type: string

tool: {"D67": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x40]}

tool: {"D3": [0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x40]}

tool: D68: %d / %d


assistant: ```c
int main() {
  double a, b, c, d;
  double fracn, fracd, sumn, sumd;
  sumn = sumd = 1;
  for (a = 1; a < 10; a++) {
    for (b = 1; b < 10; b++) {
      for (c = 1; c < (a + 1); c++) {
        for (d = 1; d < 10; d++) {
          fracd = (a * 10) + b;
          fracn = (c * 10) + d;
          if (fracd <= fracn)
            break;
          if (a == c)
            if (fracn / fracd == d / b) {
              sumn *= b;
              sumd *= d;
            }
          if (a == d)
            if (fracn / fracd == c / b) {
              sumn *= b;
              sumd *= c;
            }
          if (b == c)
            if (fracn / fracd == d / a) {
              sumn *= a;
              sumd *= d;
            }
          if (b == d)
            if (fracn / fracd == c / a) {
              sumn *= a;
              sumd *= c;
            }
        }
      }
    }
  }
  printf("%d / %d\n", (int)sumd, (int)sumn);
  return 0;
}
```