user: 请从给定的汇编指令推导出C源代码：

```asm
<ho_recognize_font_1_samech>:
  endbr64
  movsd  0x88(%rdi),%xmm6
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm6
  jp     L590
  movapd %xmm1,%xmm0
  jne    L590
L402:
  ucomisd 0x98(%rdi),%xmm1
  jp     L335
  jne    L335
L283:
  ucomisd 0xa0(%rdi),%xmm1
  jp     L396
  jne    L396
L151:
  ucomisd 0xb0(%rdi),%xmm1
  jp     L195
  jne    L195
L376:
  movsd  0x60(%rdi),%xmm5
  movsd  D168(%rip),%xmm2
  movsd  0x50(%rdi),%xmm3
  comisd %xmm2,%xmm5
  jbe    L472
  movsd  D143(%rip),%xmm2
  addsd  %xmm2,%xmm0
L448:
  addsd  %xmm2,%xmm0
L460:
  movsd  D37(%rip),%xmm2
  movapd %xmm3,%xmm4
  addsd  %xmm2,%xmm4
  comisd %xmm4,%xmm5
  jbe    L183
  addsd  D143(%rip),%xmm0
L183:
  comisd %xmm2,%xmm3
  jbe    L359
  comisd %xmm2,%xmm5
  ja     L618
L359:
  movsd  0x218(%rdi),%xmm7
  ucomisd %xmm1,%xmm7
  jp     L90
  movsd  D85(%rip),%xmm4
  jne    L90
L111:
  comisd %xmm5,%xmm3
  jbe    L316
  subsd  %xmm2,%xmm0
L316:
  comisd %xmm3,%xmm4
  jbe    L645
  comisd %xmm5,%xmm4
  ja     L261
L645:
  movsd  D68(%rip),%xmm8
  comisd %xmm3,%xmm8
  jbe    L124
  subsd  %xmm2,%xmm0
L124:
  ucomisd %xmm1,%xmm7
  jp     L641
  jne    L641
L232:
  subsd  %xmm2,%xmm0
L173:
  ucomisd 0x220(%rdi),%xmm1
  jp     L139
  jne    L139
L398:
  ucomisd 0x110(%rdi),%xmm1
  jp     L101
  jne    L101
L388:
  movsd  0x160(%rdi),%xmm7
  ucomisd %xmm1,%xmm7
  jp     L89
  jne    L89
L575:
  movsd  D190(%rip),%xmm8
  comisd 0x10(%rdi),%xmm8
  jbe    L136
  subsd  %xmm2,%xmm0
L136:
  ucomisd %xmm1,%xmm6
  jp     L247
  jne    L247
  subsd  %xmm2,%xmm0
L247:
  movsd  D63(%rip),%xmm6
  movsd  0x28(%rdi),%xmm8
  comisd %xmm6,%xmm8
  jbe    L492
  subsd  %xmm4,%xmm0
L492:
  movsd  0x40(%rdi),%xmm8
  comisd %xmm6,%xmm8
  jbe    L594
  subsd  %xmm4,%xmm0
L594:
  ucomisd 0x130(%rdi),%xmm1
  jp     L229
  jne    L229
L311:
  ucomisd %xmm1,%xmm7
  jp     L578
  jne    L578
L627:
  ucomisd 0x138(%rdi),%xmm1
  jp     L576
  jne    L576
L489:
  ucomisd 0x208(%rdi),%xmm1
  jp     L285
  jne    L285
L106:
  ucomisd 0x1b8(%rdi),%xmm1
  jp     L389
  jne    L389
L132:
  movsd  D21(%rip),%xmm1
  comisd %xmm5,%xmm1
  jbe    L312
  subsd  %xmm2,%xmm0
L312:
  movsd  D58(%rip),%xmm1
  comisd 0x18(%rdi),%xmm1
  jbe    L314
  subsd  %xmm4,%xmm0
  ret
  nopl   (%rax)
L314:
  ret
  nopl   0x0(%rax)
L389:
  subsd  %xmm4,%xmm0
  jmp    L132
  xchg   %ax,%ax
L285:
  subsd  %xmm4,%xmm0
  jmp    L106
  cs nopw 0x0(%rax,%rax,1)
L576:
  subsd  D143(%rip),%xmm0
  jmp    L489
  nopw   0x0(%rax,%rax,1)
L578:
  subsd  D143(%rip),%xmm0
  jmp    L627
  nopl   (%rax)
L229:
  movsd  D140(%rip),%xmm6
  comisd %xmm3,%xmm6
  jbe    L311
  subsd  D143(%rip),%xmm0
  jmp    L311
  nop
L89:
  subsd  %xmm4,%xmm0
  jmp    L575
  nopl   0x0(%rax)
L101:
  ucomisd 0x120(%rdi),%xmm1
  jp     L64
  je     L388
L64:
  subsd  %xmm4,%xmm0
  jmp    L388
  nopl   0x0(%rax)
L139:
  subsd  %xmm2,%xmm0
  jmp    L398
  nopl   0x0(%rax)
L641:
  movsd  D208(%rip),%xmm7
  comisd 0x2a8(%rdi),%xmm7
  ja     L232
  jmp    L173
  nopl   0x0(%rax,%rax,1)
L90:
  movsd  D85(%rip),%xmm4
  addsd  %xmm4,%xmm0
  jmp    L111
  nopl   0x0(%rax)
L195:
  movsd  D143(%rip),%xmm2
  addsd  %xmm2,%xmm0
  jmp    L376
  nopl   0x0(%rax)
L396:
  movsd  D143(%rip),%xmm2
  addsd  %xmm2,%xmm0
  jmp    L151
  nopl   0x0(%rax)
L335:
  movsd  D143(%rip),%xmm2
  addsd  %xmm2,%xmm0
  jmp    L283
  nopl   0x0(%rax)
L590:
  movsd  D143(%rip),%xmm0
  jmp    L402
  nopl   (%rax)
L261:
  subsd  %xmm2,%xmm0
  jmp    L645
  nopl   0x0(%rax)
L618:
  addsd  D143(%rip),%xmm0
  jmp    L359
  nopl   (%rax)
L472:
  comisd %xmm2,%xmm3
  jbe    L460
  movsd  D143(%rip),%xmm2
  jmp    L448
```

tool_calls: name: parse_data
arguments: data_tag: D168
type_infered: f64
name: parse_data
arguments: data_tag: D143
type_infered: f64
name: parse_data
arguments: data_tag: D37
type_infered: f64
name: parse_data
arguments: data_tag: D85
type_infered: f64
name: parse_data
arguments: data_tag: D68
type_infered: f64
name: parse_data
arguments: data_tag: D190
type_infered: f64
name: parse_data
arguments: data_tag: D63
type_infered: f64
name: parse_data
arguments: data_tag: D21
type_infered: f64
name: parse_data
arguments: data_tag: D58
type_infered: f64
name: parse_data
arguments: data_tag: D140
type_infered: f64
name: parse_data
arguments: data_tag: D208
type_infered: f64

tool: D168: 0.45

tool: D143: 0.1

tool: D37: 0.3

tool: D85: 0.2

tool: D68: 0.12

tool: D190: 0.6

tool: D63: 0.4

tool: D21: 0.32

tool: D58: 0.35

tool: D140: 0.15

tool: D208: 0.17

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;
}
```