user: Converte this assembly snippet into its equivalent C code:

```asm
<ho_recognize_font_1_pey_sofit>:
  endbr64
  pxor   %xmm1,%xmm1
  ucomisd 0x88(%rdi),%xmm1
  jp     L240
  jne    L240
  movsd  D88(%rip),%xmm3
  movapd %xmm1,%xmm0
  movapd %xmm3,%xmm2
L144:
  ucomisd 0xb0(%rdi),%xmm1
  jp     L472
  jne    L472
L497:
  ucomisd 0x120(%rdi),%xmm1
  jp     L398
  jne    L398
L174:
  movsd  0x20(%rdi),%xmm4
  movsd  D171(%rip),%xmm2
  comisd %xmm4,%xmm2
  jbe    L314
  addsd  D11(%rip),%xmm0
L314:
  movsd  0x188(%rdi),%xmm6
  ucomisd %xmm1,%xmm6
  jp     L306
  jne    L306
  ucomisd 0x190(%rdi),%xmm1
  jp     L306
  jne    L306
L263:
  addsd  D11(%rip),%xmm0
L464:
  movsd  (%rdi),%xmm5
  comisd D63(%rip),%xmm5
  jbe    L114
  addsd  %xmm3,%xmm0
L114:
  ucomisd 0x68(%rdi),%xmm1
  jp     L123
  jne    L123
L439:
  ucomisd 0x98(%rdi),%xmm1
  jp     L495
  movsd  D126(%rip),%xmm2
  jne    L495
L436:
  ucomisd 0xa0(%rdi),%xmm1
  jp     L270
  jne    L270
L222:
  ucomisd 0xa8(%rdi),%xmm1
  jp     L110
  jne    L110
L218:
  movsd  D46(%rip),%xmm3
  ucomisd 0x40(%rdi),%xmm3
  jp     L32
  jne    L32
  subsd  D11(%rip),%xmm0
L32:
  ucomisd 0x228(%rdi),%xmm1
  jp     L491
  jne    L491
L460:
  movsd  D137(%rip),%xmm3
  comisd %xmm3,%xmm4
  jbe    L86
  subsd  %xmm2,%xmm0
L86:
  comisd 0x8(%rdi),%xmm2
  jbe    L191
  subsd  %xmm2,%xmm0
L191:
  ucomisd %xmm1,%xmm6
  jp     L367
  jne    L367
L179:
  comisd %xmm5,%xmm3
  jbe    L286
  subsd  %xmm2,%xmm0
L286:
  comisd %xmm3,%xmm4
  jbe    L474
  subsd  D11(%rip),%xmm0
L474:
  movsd  D103(%rip),%xmm3
  comisd 0x10(%rdi),%xmm3
  jbe    L485
  subsd  %xmm2,%xmm0
L485:
  movsd  D158(%rip),%xmm3
  comisd 0x50(%rdi),%xmm3
  jbe    L106
  subsd  %xmm2,%xmm0
L106:
  ucomisd 0x1c8(%rdi),%xmm1
  jp     L157
  jne    L157
  subsd  D11(%rip),%xmm0
L157:
  ucomisd 0x1c0(%rdi),%xmm1
  jp     L66
  jne    L66
  ret
  nopl   0x0(%rax,%rax,1)
L306:
  ucomisd 0x1d0(%rdi),%xmm1
  jp     L263
  je     L464
  addsd  D11(%rip),%xmm0
  jmp    L464
  nopl   0x0(%rax)
L66:
  subsd  D11(%rip),%xmm0
  ret
  nopl   0x0(%rax)
L398:
  addsd  %xmm3,%xmm0
  jmp    L174
  nopl   0x0(%rax)
L367:
  ucomisd 0x1d0(%rdi),%xmm1
  jp     L179
  jne    L179
  subsd  %xmm2,%xmm0
  jmp    L179
  nopl   (%rax)
L491:
  subsd  %xmm2,%xmm0
  jmp    L460
  nopl   0x0(%rax)
L472:
  movapd %xmm2,%xmm0
  jmp    L497
  nopl   0x0(%rax)
L240:
  movsd  D88(%rip),%xmm3
  movsd  D11(%rip),%xmm2
  movapd %xmm3,%xmm0
  jmp    L144
  nopl   0x0(%rax)
L110:
  subsd  %xmm3,%xmm0
  jmp    L218
  nopl   0x0(%rax)
L270:
  subsd  %xmm2,%xmm0
  jmp    L222
  nopl   0x0(%rax)
L495:
  movsd  D126(%rip),%xmm2
  subsd  %xmm2,%xmm0
  jmp    L436
  nopl   0x0(%rax)
L123:
  addsd  %xmm3,%xmm0
  jmp    L439
```

tool_calls: name: disassemble_data
arguments: label: D88
type_guessed: f64
name: disassemble_data
arguments: label: D171
type_guessed: f64
name: disassemble_data
arguments: label: D11
type_guessed: f64
name: disassemble_data
arguments: label: D63
type_guessed: f64[2]
name: disassemble_data
arguments: label: D126
type_guessed: f64
name: disassemble_data
arguments: label: D46
type_guessed: f64
name: disassemble_data
arguments: label: D137
type_guessed: f64
name: disassemble_data
arguments: label: D103
type_guessed: f64
name: disassemble_data
arguments: label: D158
type_guessed: f64

tool: D88: 0.1

tool: D171: 0.47

tool: D11: 0.2

tool: {"D63": [0.51,0.3]}

tool: D126: 0.3

tool: D46: 1

tool: D137: 0.5

tool: D103: 0.45

tool: D158: 0.75

assistant: ```c
double ho_recognize_font_1_pey_sofit(const double *array_in) {
  double return_value = 0.0;
  if ((array_in[17]))
    return_value += 0.1;
  if ((array_in[22]))
    return_value += 0.1;
  if ((array_in[36]))
    return_value += 0.1;
  if ((array_in[4]) < 0.47)
    return_value += 0.2;
  if ((!(array_in[49]) && !(array_in[50])) || (array_in[58]))
    return_value += 0.2;
  if ((array_in[0]) > 0.51)
    return_value += 0.1;
  if ((array_in[13]))
    return_value += 0.1;
  if ((array_in[19]))
    return_value -= 0.3;
  if ((array_in[20]))
    return_value -= 0.3;
  if ((array_in[21]))
    return_value -= 0.1;
  if ((array_in[8]) == 1.0)
    return_value -= 0.2;
  if ((array_in[69]))
    return_value -= 0.3;
  if ((array_in[4]) > 0.50)
    return_value -= 0.3;
  if ((array_in[1]) < 0.3)
    return_value -= 0.3;
  if ((array_in[49]) && !(array_in[58]))
    return_value -= 0.3;
  if ((array_in[0]) < 0.5)
    return_value -= 0.3;
  if ((array_in[4]) > 0.50)
    return_value -= 0.2;
  if ((array_in[2]) < 0.45)
    return_value -= 0.3;
  if ((array_in[10]) < 0.75)
    return_value -= 0.3;
  if (!(array_in[57]))
    return_value -= 0.2;
  if ((array_in[56]))
    return_value -= 0.2;
  return return_value;
}
```