user: 下面的汇编指令对应的C源代码是什么:

```asm
<ho_recognize_font_1_shin>:
  endbr64
  movsd  0x108(%rdi),%xmm3
  movsd  0xf8(%rdi),%xmm4
  movsd  D148(%rip),%xmm0
  movapd %xmm0,%xmm1
  mulsd  0x100(%rdi),%xmm1
  movapd %xmm3,%xmm2
  mulsd  %xmm0,%xmm2
  addsd  %xmm2,%xmm1
  movapd %xmm4,%xmm2
  mulsd  %xmm0,%xmm2
  addsd  %xmm2,%xmm1
  cvttsd2si %xmm1,%edx
  movsd  0x168(%rdi),%xmm2
  movsd  0x160(%rdi),%xmm6
  movsd  0x158(%rdi),%xmm5
  movapd %xmm2,%xmm1
  mulsd  %xmm0,%xmm1
  movapd %xmm6,%xmm7
  mulsd  %xmm0,%xmm7
  addsd  %xmm7,%xmm1
  mulsd  %xmm5,%xmm0
  addsd  %xmm1,%xmm0
  cvttsd2si %xmm0,%eax
  pxor   %xmm0,%xmm0
  ucomisd 0x220(%rdi),%xmm0
  jp     L9
  jne    L9
L29:
  pxor   %xmm1,%xmm1
  ucomisd 0x78(%rdi),%xmm1
  jp     L159
  jne    L159
L205:
  ucomisd D163(%rip),%xmm5
  jp     L27
  jne    L27
L288:
  ucomisd D163(%rip),%xmm2
  jp     L257
  jne    L257
L245:
  ucomisd D163(%rip),%xmm4
  jp     L83
  jne    L83
L344:
  ucomisd D163(%rip),%xmm3
  jp     L23
  jne    L23
L7:
  cmp    $0x3,%edx
  je     L337
L192:
  cmp    $0x2,%eax
  je     L191
L348:
  pxor   %xmm1,%xmm1
  ucomisd 0x208(%rdi),%xmm1
  jp     L12
  jne    L12
L265:
  pxor   %xmm1,%xmm1
  ucomisd 0x200(%rdi),%xmm1
  jp     L103
  jne    L103
L160:
  pxor   %xmm1,%xmm1
  ucomisd 0x178(%rdi),%xmm1
  jp     L111
  jne    L111
L120:
  ucomisd D163(%rip),%xmm6
  setnp  %al
  mov    $0x0,%ecx
  cmovne %ecx,%eax
  test   %al,%al
  je     L157
  ucomisd D163(%rip),%xmm2
  setnp  %al
  cmovne %ecx,%eax
  test   %al,%al
  jne    L48
L157:
  cmp    $0x3,%edx
  je     L0
  subsd  D194(%rip),%xmm0
L0:
  ret
L9:
  movsd  D173(%rip),%xmm0
  jmp    L29
L159:
  addsd  D173(%rip),%xmm0
  jmp    L205
L27:
  addsd  D194(%rip),%xmm0
  jmp    L288
L257:
  addsd  D194(%rip),%xmm0
  jmp    L245
L83:
  addsd  D194(%rip),%xmm0
  jmp    L344
L23:
  addsd  D194(%rip),%xmm0
  jmp    L7
L337:
  addsd  D17(%rip),%xmm0
  jmp    L192
L191:
  addsd  D17(%rip),%xmm0
  jmp    L348
L12:
  addsd  D17(%rip),%xmm0
  jmp    L265
L103:
  addsd  D17(%rip),%xmm0
  jmp    L160
L111:
  subsd  D17(%rip),%xmm0
  jmp    L120
L48:
  subsd  D17(%rip),%xmm0
  jmp    L157
```

tool_calls: name: read_data
arguments: data_tag: D148
data_type: f64
name: read_data
arguments: data_tag: D163
data_type: f64
name: read_data
arguments: data_tag: D194
data_type: f64
name: read_data
arguments: data_tag: D173
data_type: f64
name: read_data
arguments: data_tag: D17
data_type: f64

tool: D148: 10

tool: D163: 0

tool: D194: 0.1

tool: D173: 0.3

tool: D17: 0.2

assistant: ```c
double ho_recognize_font_1_shin(const double *array_in) {
  int count_edges;
  int count_notches;
  double return_value = 0.0;
  count_edges = (array_in[33]) * 10.0 + (array_in[32]) * 10.0 + (array_in[31]) * 10;
  count_notches = (array_in[45]) * 10.0 + (array_in[44]) * 10.0 + (array_in[43]) * 10;
  if ((array_in[68]))
    return_value += 0.3;
  if ((array_in[15]))
    return_value += 0.3;
  if ((array_in[43]))
    return_value += 0.1;
  if ((array_in[45]))
    return_value += 0.1;
  if ((array_in[31]))
    return_value += 0.1;
  if ((array_in[33]))
    return_value += 0.1;
  if (count_edges == 3)
    return_value += 0.2;
  if (count_notches == 2)
    return_value += 0.2;
  if ((array_in[65]))
    return_value += 0.2;
  if ((array_in[64]))
    return_value += 0.2;
  if ((array_in[47]))
    return_value -= 0.2;
  if (!(array_in[45]) && !(array_in[44]))
    return_value -= 0.2;
  if (count_edges != 3)
    return_value -= 0.1;
  return return_value;
}
```