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

```asm
<ho_recognize_font_1_samech>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x18(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L2
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L503
L2:
  movsd  -0x8(%rbp),%xmm1
  movsd  D42(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L503:
  mov    -0x18(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L128
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L452
L128:
  movsd  -0x8(%rbp),%xmm1
  movsd  D42(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L452:
  mov    -0x18(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L269
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L492
L269:
  movsd  -0x8(%rbp),%xmm1
  movsd  D42(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L492:
  mov    -0x18(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L391
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L121
L391:
  movsd  -0x8(%rbp),%xmm1
  movsd  D42(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L121:
  mov    -0x18(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm0
  comisd D82(%rip),%xmm0
  jbe    L42
  movsd  -0x8(%rbp),%xmm1
  movsd  D42(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L42:
  mov    -0x18(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm0
  comisd D82(%rip),%xmm0
  ja     L90
  mov    -0x18(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm0
  comisd D82(%rip),%xmm0
  jbe    L283
L90:
  movsd  -0x8(%rbp),%xmm1
  movsd  D42(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L283:
  mov    -0x18(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm1
  movsd  D212(%rip),%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L1
  movsd  -0x8(%rbp),%xmm1
  movsd  D42(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L1:
  mov    -0x18(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm0
  comisd D212(%rip),%xmm0
  jbe    L157
  mov    -0x18(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm0
  comisd D212(%rip),%xmm0
  jbe    L157
  movsd  -0x8(%rbp),%xmm1
  movsd  D42(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L157:
  mov    -0x18(%rbp),%rax
  add    $0x218,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L280
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L450
L280:
  movsd  -0x8(%rbp),%xmm1
  movsd  D294(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L450:
  mov    -0x18(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  jbe    L237
  movsd  -0x8(%rbp),%xmm0
  movsd  D212(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L237:
  mov    -0x18(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm1
  movsd  D294(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L52
  mov    -0x18(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm1
  movsd  D294(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L52
  movsd  -0x8(%rbp),%xmm0
  movsd  D212(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L52:
  mov    -0x18(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm1
  movsd  D297(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L380
  movsd  -0x8(%rbp),%xmm0
  movsd  D212(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L380:
  mov    -0x18(%rbp),%rax
  add    $0x218,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L123
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jne    L123
  movsd  -0x8(%rbp),%xmm0
  movsd  D212(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L123:
  mov    -0x18(%rbp),%rax
  add    $0x218,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L408
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L49
L408:
  mov    -0x18(%rbp),%rax
  add    $0x2a8,%rax
  movsd  (%rax),%xmm1
  movsd  D0(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L49
  movsd  -0x8(%rbp),%xmm0
  movsd  D212(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L49:
  mov    -0x18(%rbp),%rax
  add    $0x220,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L290
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L505
L290:
  movsd  -0x8(%rbp),%xmm0
  movsd  D212(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L505:
  mov    -0x18(%rbp),%rax
  add    $0x110,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L430
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L112
L430:
  mov    -0x18(%rbp),%rax
  add    $0x120,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L204
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L112
L204:
  movsd  -0x8(%rbp),%xmm0
  movsd  D294(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L112:
  mov    -0x18(%rbp),%rax
  add    $0x160,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L215
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L352
L215:
  movsd  -0x8(%rbp),%xmm0
  movsd  D294(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L352:
  mov    -0x18(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm1
  movsd  D92(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L346
  movsd  -0x8(%rbp),%xmm0
  movsd  D212(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L346:
  mov    -0x18(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L370
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jne    L370
  movsd  -0x8(%rbp),%xmm0
  movsd  D212(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L370:
  mov    -0x18(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm0
  comisd D249(%rip),%xmm0
  jbe    L351
  movsd  -0x8(%rbp),%xmm0
  movsd  D294(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L351:
  mov    -0x18(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm0
  comisd D249(%rip),%xmm0
  jbe    L470
  movsd  -0x8(%rbp),%xmm0
  movsd  D294(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L470:
  mov    -0x18(%rbp),%rax
  add    $0x130,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L319
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L124
L319:
  mov    -0x18(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm1
  movsd  D372(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L124
  movsd  -0x8(%rbp),%xmm0
  movsd  D42(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L124:
  mov    -0x18(%rbp),%rax
  add    $0x160,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L251
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L191
L251:
  movsd  -0x8(%rbp),%xmm0
  movsd  D42(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L191:
  mov    -0x18(%rbp),%rax
  add    $0x138,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L100
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L282
L100:
  movsd  -0x8(%rbp),%xmm0
  movsd  D42(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L282:
  mov    -0x18(%rbp),%rax
  add    $0x208,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L143
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L244
L143:
  movsd  -0x8(%rbp),%xmm0
  movsd  D294(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L244:
  mov    -0x18(%rbp),%rax
  add    $0x1b8,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L297
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L148
L297:
  movsd  -0x8(%rbp),%xmm0
  movsd  D294(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L148:
  mov    -0x18(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm1
  movsd  D192(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L247
  movsd  -0x8(%rbp),%xmm0
  movsd  D212(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L247:
  mov    -0x18(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm1
  movsd  D344(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L62
  movsd  -0x8(%rbp),%xmm0
  movsd  D294(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L62:
  movsd  -0x8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: data_label: D42
type_infered: f64
name: read_data
arguments: data_label: D82
type_infered: f64[2]
name: read_data
arguments: data_label: D212
type_infered: f64[2]
name: read_data
arguments: data_label: D294
type_infered: f64
name: read_data
arguments: data_label: D297
type_infered: f64
name: read_data
arguments: data_label: D0
type_infered: f64
name: read_data
arguments: data_label: D92
type_infered: f64
name: read_data
arguments: data_label: D249
type_infered: f64[2]
name: read_data
arguments: data_label: D372
type_infered: f64
name: read_data
arguments: data_label: D192
type_infered: f64
name: read_data
arguments: data_label: D344
type_infered: f64

tool: D42: 0.1

tool: {"D82": [0.45,0.3]}

tool: {"D212": [0.3,0.2]}

tool: D294: 0.2

tool: D297: 0.12

tool: D0: 0.17

tool: D92: 0.6

tool: {"D249": [0.4,0.15]}

tool: D372: 0.15

tool: D192: 0.32

tool: D344: 0.35

assistant: ```c
double ho_recognize_font_1_samech(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[20]))
    return_value += 0.1;
  if ((array_in[22]))
    return_value += 0.1;
  if ((array_in[12]) > 0.45)
    return_value += 0.1;
  if ((array_in[10]) > 0.45 || (array_in[12]) > 0.45)
    return_value += 0.1;
  if (((array_in[10]) + 0.3) < ((array_in[12])))
    return_value += 0.1;
  if ((array_in[10]) > 0.30 && (array_in[12]) > 0.30)
    return_value += 0.1;
  if ((array_in[67]))
    return_value += 0.2;
  if (((array_in[10])) > ((array_in[12])))
    return_value -= 0.3;
  if ((array_in[10]) < 0.2 && (array_in[12]) < 0.2)
    return_value -= 0.3;
  if ((array_in[10]) < 0.12)
    return_value -= 0.3;
  if (!(array_in[67]))
    return_value -= 0.3;
  if ((array_in[67]) && (array_in[85]) < 0.17)
    return_value -= 0.3;
  if ((array_in[68]))
    return_value -= 0.3;
  if ((array_in[34]) && (array_in[36]))
    return_value -= 0.2;
  if ((array_in[44]))
    return_value -= 0.2;
  if ((array_in[2]) < 0.60)
    return_value -= 0.3;
  if (!(array_in[17]))
    return_value -= 0.3;
  if ((array_in[5]) > 0.4)
    return_value -= 0.2;
  if ((array_in[8]) > 0.4)
    return_value -= 0.2;
  if ((array_in[38]) && (array_in[10]) < 0.15)
    return_value -= 0.1;
  if ((array_in[44]))
    return_value -= 0.1;
  if ((array_in[39]))
    return_value -= 0.1;
  if ((array_in[65]))
    return_value -= 0.2;
  if ((array_in[55]))
    return_value -= 0.2;
  if ((array_in[12]) < 0.32)
    return_value -= 0.3;
  if ((array_in[3]) < 0.35)
    return_value -= 0.2;
  return return_value;
}
```