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

```asm
<ho_recognize_font_1_bet>:
  endbr64
  pxor   %xmm0,%xmm0
  ucomisd 0x88(%rdi),%xmm0
  jp     L354
  jne    L354
L428:
  movsd  0x98(%rdi),%xmm2
  ucomisd D354(%rip),%xmm2
  jp     L288
  jne    L288
L301:
  pxor   %xmm1,%xmm1
  ucomisd 0xb0(%rdi),%xmm1
  jp     L440
  jne    L440
L278:
  pxor   %xmm1,%xmm1
  ucomisd 0x130(%rdi),%xmm1
  jp     L274
  jne    L274
L200:
  movsd  0x40(%rdi),%xmm4
  comisd D224(%rip),%xmm4
  jbe    L534
  addsd  D111(%rip),%xmm0
L534:
  movsd  0x10(%rdi),%xmm3
  comisd D44(%rip),%xmm3
  jbe    L290
  addsd  D111(%rip),%xmm0
L290:
  pxor   %xmm1,%xmm1
  ucomisd 0x308(%rdi),%xmm1
  jp     L30
  jne    L30
L28:
  movsd  0xf0(%rdi),%xmm1
  ucomisd D354(%rip),%xmm1
  jp     L48
  jne    L48
  pxor   %xmm5,%xmm5
  ucomisd 0x1b8(%rdi),%xmm5
  jp     L58
  jne    L58
L186:
  subsd  D170(%rip),%xmm0
L407:
  movsd  0x178(%rdi),%xmm1
  ucomisd D354(%rip),%xmm1
  jp     L280
  jne    L280
  pxor   %xmm5,%xmm5
  ucomisd 0x180(%rdi),%xmm5
  jp     L280
  je     L526
L280:
  subsd  D170(%rip),%xmm0
L526:
  movsd  D217(%rip),%xmm5
  comisd %xmm2,%xmm5
  jbe    L175
  subsd  D330(%rip),%xmm0
L175:
  pxor   %xmm2,%xmm2
  ucomisd 0xa0(%rdi),%xmm2
  jp     L123
  jne    L123
L260:
  movsd  D170(%rip),%xmm2
  comisd 0x8(%rdi),%xmm2
  jbe    L149
  subsd  %xmm2,%xmm0
L149:
  movsd  D214(%rip),%xmm2
  addsd  0x50(%rdi),%xmm2
  movsd  0x28(%rdi),%xmm5
  comisd %xmm2,%xmm5
  jbe    L145
  subsd  D170(%rip),%xmm0
L145:
  movsd  D170(%rip),%xmm2
  comisd %xmm4,%xmm2
  jbe    L133
  subsd  %xmm2,%xmm0
L133:
  ucomisd D354(%rip),%xmm1
  jp     L181
  jne    L181
  pxor   %xmm1,%xmm1
  ucomisd 0x180(%rdi),%xmm1
  jp     L181
  je     L19
L181:
  movsd  D181(%rip),%xmm1
  comisd %xmm3,%xmm1
  jbe    L19
  subsd  D330(%rip),%xmm0
L19:
  movsd  0x20(%rdi),%xmm1
  comisd D318(%rip),%xmm1
  ja     L360
  movsd  D13(%rip),%xmm2
  comisd %xmm1,%xmm2
  jbe    L550
L360:
  subsd  D330(%rip),%xmm0
L550:
  movsd  D217(%rip),%xmm1
  comisd %xmm3,%xmm1
  jbe    L516
  subsd  D170(%rip),%xmm0
L516:
  movsd  0x60(%rdi),%xmm1
  comisd D87(%rip),%xmm1
  jbe    L77
  subsd  D170(%rip),%xmm0
L77:
  pxor   %xmm1,%xmm1
  ucomisd 0x228(%rdi),%xmm1
  jp     L466
  jne    L466
  ret
L354:
  movsd  D111(%rip),%xmm0
  jmp    L428
L288:
  addsd  D111(%rip),%xmm0
  jmp    L301
L440:
  addsd  D111(%rip),%xmm0
  jmp    L278
L274:
  addsd  D111(%rip),%xmm0
  jmp    L200
L30:
  addsd  D330(%rip),%xmm0
  jmp    L28
L48:
  movsd  D214(%rip),%xmm5
  comisd 0x60(%rdi),%xmm5
  jbe    L67
  addsd  D111(%rip),%xmm0
L67:
  pxor   %xmm5,%xmm5
  ucomisd 0x1b8(%rdi),%xmm5
  jp     L203
  je     L407
L203:
  pxor   %xmm5,%xmm5
  ucomisd 0x188(%rdi),%xmm5
  jp     L545
  je     L407
L545:
  pxor   %xmm5,%xmm5
  ucomisd 0x198(%rdi),%xmm5
  jp     L368
  jne    L368
  addsd  D111(%rip),%xmm0
L368:
  ucomisd D354(%rip),%xmm1
  jp     L407
  je     L186
  jmp    L407
L123:
  subsd  D330(%rip),%xmm0
  jmp    L260
L466:
  subsd  D330(%rip),%xmm0
  ret
L58:
  pxor   %xmm5,%xmm5
  ucomisd 0x188(%rdi),%xmm5
  jp     L545
  je     L186
  jmp    L545
```

tool_calls: name: parse_data
arguments: label: D354
datatype: f64
name: parse_data
arguments: label: D224
datatype: f64[2]
name: parse_data
arguments: label: D111
datatype: f64
name: parse_data
arguments: label: D44
datatype: f64[2]
name: parse_data
arguments: label: D170
datatype: f64
name: parse_data
arguments: label: D217
datatype: f64
name: parse_data
arguments: label: D330
datatype: f64
name: parse_data
arguments: label: D214
datatype: f64
name: parse_data
arguments: label: D181
datatype: f64
name: parse_data
arguments: label: D318
datatype: f64[2]
name: parse_data
arguments: label: D13
datatype: byte[8]
name: parse_data
arguments: label: D87
datatype: f64

tool: D354: 0

tool: {"D224": [0.9,0.8]}

tool: D111: 0.1

tool: {"D44": [0.8,0.2]}

tool: D170: 0.3

tool: D217: 0.5

tool: D330: 0.2

tool: D214: 0.25

tool: D181: 0.6

tool: {"D318": [0.57,43.0]}

tool: {"D13": [0x00,0x00,0x00,0x00,0x00,0x80,0x45,0x40]}

tool: D87: 0.33

assistant: ```c
double ho_recognize_font_1_bet(const double *array_in) {
  double return_value = 0.0;
  if ((array_in[17]))
    return_value += 0.1;
  if ((array_in[19]))
    return_value += 0.1;
  if ((array_in[22]))
    return_value += 0.1;
  if ((array_in[38]))
    return_value += 0.1;
  if ((array_in[8]) > 0.9)
    return_value += 0.1;
  if ((array_in[2]) > 0.8)
    return_value += 0.1;
  if ((array_in[97]))
    return_value += 0.2;
  if ((array_in[30]) && (array_in[12]) < 0.25)
    return_value += 0.1;
  if ((array_in[55]) && (array_in[49]) && !(array_in[51]))
    return_value += 0.1;
  if (!(array_in[30]))
    return_value -= 0.3;
  if ((array_in[47]) || (array_in[48]))
    return_value -= 0.3;
  if ((array_in[19]) < 0.5)
    return_value -= 0.2;
  if ((array_in[20]))
    return_value -= 0.2;
  if ((array_in[1]) < 0.3)
    return_value -= 0.3;
  if ((array_in[5]) > ((array_in[10]) + 0.25))
    return_value -= 0.3;
  if ((array_in[8]) < 0.3)
    return_value -= 0.3;
  if (((array_in[47]) || (array_in[48])) && (array_in[2]) < 0.6)
    return_value -= 0.2;
  if ((array_in[4]) > 0.57 || (array_in[4]) < 43)
    return_value -= 0.20;
  if ((array_in[2]) < 0.50)
    return_value -= 0.3;
  if ((array_in[12]) > 0.33)
    return_value -= 0.3;
  if ((array_in[69]))
    return_value -= 0.2;
  return return_value;
}
```