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

```asm
<ho_recognize_font_1_bet>:
  endbr64
  pxor   %xmm1,%xmm1
  ucomisd 0x88(%rdi),%xmm1
  jp     L378
  movapd %xmm1,%xmm0
  jne    L378
L538:
  movsd  0x98(%rdi),%xmm5
  ucomisd %xmm1,%xmm5
  jp     L97
  jne    L97
L433:
  ucomisd 0xb0(%rdi),%xmm1
  jp     L269
  jne    L269
L481:
  ucomisd 0x130(%rdi),%xmm1
  jp     L328
  jne    L328
L448:
  movsd  0x40(%rdi),%xmm6
  comisd D169(%rip),%xmm6
  jbe    L264
  addsd  D141(%rip),%xmm0
L264:
  movsd  0x10(%rdi),%xmm4
  comisd D175(%rip),%xmm4
  jbe    L260
  addsd  D141(%rip),%xmm0
L260:
  ucomisd 0x308(%rdi),%xmm1
  jp     L486
  jne    L486
L539:
  movsd  0xf0(%rdi),%xmm7
  movsd  0x60(%rdi),%xmm9
  movsd  0x1b8(%rdi),%xmm2
  ucomisd %xmm1,%xmm7
  jp     L241
  jne    L241
  ucomisd %xmm1,%xmm2
  jp     L505
  movsd  D31(%rip),%xmm3
  je     L427
L505:
  ucomisd 0x188(%rdi),%xmm1
  movsd  D31(%rip),%xmm3
  jp     L475
  jne    L475
L427:
  movsd  D46(%rip),%xmm2
  subsd  %xmm2,%xmm0
L27:
  movsd  0x178(%rdi),%xmm8
  ucomisd %xmm1,%xmm8
  jp     L317
  jne    L317
  ucomisd 0x180(%rdi),%xmm1
  jp     L317
  je     L195
L317:
  subsd  %xmm2,%xmm0
L195:
  movsd  D131(%rip),%xmm7
  comisd %xmm5,%xmm7
  jbe    L130
  subsd  D238(%rip),%xmm0
L130:
  ucomisd 0xa0(%rdi),%xmm1
  jp     L79
  je     L160
L79:
  subsd  D238(%rip),%xmm0
L160:
  comisd 0x8(%rdi),%xmm2
  jbe    L330
  subsd  %xmm2,%xmm0
L330:
  addsd  0x50(%rdi),%xmm3
  movsd  0x28(%rdi),%xmm5
  comisd %xmm3,%xmm5
  jbe    L65
  subsd  %xmm2,%xmm0
L65:
  comisd %xmm6,%xmm2
  jbe    L358
  subsd  %xmm2,%xmm0
L358:
  ucomisd %xmm1,%xmm8
  jp     L4
  jne    L4
  ucomisd 0x180(%rdi),%xmm1
  jp     L4
  je     L147
L4:
  movsd  D10(%rip),%xmm3
  comisd %xmm4,%xmm3
  jbe    L147
  subsd  D238(%rip),%xmm0
L147:
  movsd  0x20(%rdi),%xmm3
  comisd D201(%rip),%xmm3
  ja     L262
  movsd  D167(%rip),%xmm5
  comisd %xmm3,%xmm5
  jbe    L307
L262:
  subsd  D238(%rip),%xmm0
L307:
  comisd %xmm4,%xmm7
  jbe    L439
  subsd  %xmm2,%xmm0
L439:
  comisd D245(%rip),%xmm9
  jbe    L404
  subsd  %xmm2,%xmm0
L404:
  ucomisd 0x228(%rdi),%xmm1
  jp     L385
  je     L313
L385:
  subsd  D238(%rip),%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L328:
  addsd  D141(%rip),%xmm0
  jmp    L448
  nopl   (%rax)
L269:
  addsd  D141(%rip),%xmm0
  jmp    L481
  nopl   (%rax)
L97:
  addsd  D141(%rip),%xmm0
  jmp    L433
  nopl   (%rax)
L378:
  movsd  D141(%rip),%xmm0
  jmp    L538
  nopl   (%rax)
L241:
  movsd  D31(%rip),%xmm3
  comisd %xmm9,%xmm3
  jbe    L399
  addsd  D141(%rip),%xmm0
L399:
  ucomisd %xmm1,%xmm2
  jp     L372
  movsd  D46(%rip),%xmm2
  je     L27
L372:
  ucomisd 0x188(%rdi),%xmm1
  jp     L475
  movsd  D46(%rip),%xmm2
  je     L27
L475:
  ucomisd 0x198(%rdi),%xmm1
  jp     L191
  jne    L191
  addsd  D141(%rip),%xmm0
L191:
  ucomisd %xmm1,%xmm7
  jp     L526
  je     L427
L526:
  movsd  D46(%rip),%xmm2
  jmp    L27
L486:
  addsd  D238(%rip),%xmm0
  jmp    L539
  nopl   (%rax)
L313:
  ret
```

tool_calls: name: read_data
arguments: label: D169
data_type: f64[2]
name: read_data
arguments: label: D141
data_type: f64
name: read_data
arguments: label: D175
data_type: f64[2]
name: read_data
arguments: label: D31
data_type: f64
name: read_data
arguments: label: D46
data_type: f64
name: read_data
arguments: label: D131
data_type: f64
name: read_data
arguments: label: D238
data_type: f64
name: read_data
arguments: label: D10
data_type: f64
name: read_data
arguments: label: D201
data_type: f64[2]
name: read_data
arguments: label: D167
data_type: f32[2]
name: read_data
arguments: label: D245
data_type: f64

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

tool: D141: 0.1

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

tool: D31: 0.25

tool: D46: 0.3

tool: D131: 0.5

tool: D238: 0.2

tool: D10: 0.6

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

tool: {"D167": [0.0,3.0859375]}

tool: D245: 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;
}
```