user: What would the C source look like for the assembly code provided here?

```asm
<ho_recognize_font_1_gimal>:
  endbr64
  pxor   %xmm0,%xmm0
  ucomisd 0x110(%rdi),%xmm0
  jp     L139
  jne    L139
L398:
  movsd  0x120(%rdi),%xmm2
  ucomisd D171(%rip),%xmm2
  jp     L264
  jne    L264
L397:
  pxor   %xmm1,%xmm1
  ucomisd 0x338(%rdi),%xmm1
  jp     L57
  jne    L57
L369:
  movsd  0x178(%rdi),%xmm3
  ucomisd D171(%rip),%xmm3
  jp     L430
  jne    L430
  pxor   %xmm1,%xmm1
  ucomisd 0x180(%rdi),%xmm1
  jp     L430
  je     L19
L430:
  addsd  D64(%rip),%xmm0
L19:
  movsd  0x28(%rdi),%xmm5
  movsd  0x50(%rdi),%xmm1
  comisd %xmm1,%xmm5
  jbe    L130
  addsd  D64(%rip),%xmm0
L130:
  movsd  0x38(%rdi),%xmm4
  comisd 0x60(%rdi),%xmm4
  jbe    L81
  addsd  D64(%rip),%xmm0
L81:
  movsd  0x58(%rdi),%xmm4
  comisd D273(%rip),%xmm4
  jbe    L262
  movsd  D198(%rip),%xmm6
  comisd %xmm4,%xmm6
  jbe    L262
  addsd  D64(%rip),%xmm0
L262:
  addsd  D273(%rip),%xmm1
  comisd %xmm1,%xmm5
  jbe    L247
  addsd  D63(%rip),%xmm0
L247:
  movsd  0x8(%rdi),%xmm1
  movsd  D148(%rip),%xmm5
  comisd %xmm1,%xmm5
  jbe    L132
  addsd  D63(%rip),%xmm0
L316:
  pxor   %xmm5,%xmm5
  ucomisd 0x98(%rdi),%xmm5
  jp     L182
  je     L390
L182:
  movsd  D64(%rip),%xmm5
  ucomisd 0x208(%rdi),%xmm5
  jp     L223
  jne    L223
L309:
  addsd  D63(%rip),%xmm0
  jmp    L390
L139:
  movsd  D64(%rip),%xmm0
  jmp    L398
L264:
  addsd  D64(%rip),%xmm0
  jmp    L397
L57:
  addsd  D64(%rip),%xmm0
  jmp    L369
L132:
  movsd  D148(%rip),%xmm5
  comisd %xmm1,%xmm5
  ja     L316
L390:
  comisd D248(%rip),%xmm4
  jbe    L80
  subsd  D148(%rip),%xmm0
L80:
  movsd  0x20(%rdi),%xmm4
  comisd D346(%rip),%xmm4
  ja     L292
  movsd  D28(%rip),%xmm5
  comisd %xmm4,%xmm5
  jbe    L45
L292:
  subsd  D64(%rip),%xmm0
L45:
  movsd  D311(%rip),%xmm5
  comisd %xmm4,%xmm5
  jbe    L159
  subsd  D148(%rip),%xmm0
L159:
  ucomisd D171(%rip),%xmm3
  jp     L59
  jne    L59
  pxor   %xmm3,%xmm3
  ucomisd 0x180(%rdi),%xmm3
  jp     L59
  jne    L59
  subsd  D63(%rip),%xmm0
L59:
  pxor   %xmm3,%xmm3
  ucomisd 0xa0(%rdi),%xmm3
  jp     L360
  jne    L360
L341:
  comisd D60(%rip),%xmm1
  jbe    L110
  subsd  D63(%rip),%xmm0
L110:
  movsd  0x10(%rdi),%xmm1
  comisd D175(%rip),%xmm1
  jbe    L230
  subsd  D63(%rip),%xmm0
L230:
  movsd  D148(%rip),%xmm1
  comisd (%rdi),%xmm1
  jbe    L277
  subsd  %xmm1,%xmm0
L277:
  ucomisd D171(%rip),%xmm2
  jp     L290
  jne    L290
  subsd  D63(%rip),%xmm0
L290:
  ret
L223:
  movsd  D64(%rip),%xmm5
  ucomisd 0x210(%rdi),%xmm5
  jp     L390
  je     L309
  jmp    L390
L360:
  subsd  D148(%rip),%xmm0
  jmp    L341
```

tool_calls: name: retrieve_data
arguments: label: D171
type_guessed: f64
name: retrieve_data
arguments: label: D64
type_guessed: f64
name: retrieve_data
arguments: label: D273
type_guessed: f64[2]
name: retrieve_data
arguments: label: D198
type_guessed: f64
name: retrieve_data
arguments: label: D63
type_guessed: f64
name: retrieve_data
arguments: label: D148
type_guessed: f64
name: retrieve_data
arguments: label: D248
type_guessed: f64[2]
name: retrieve_data
arguments: label: D346
type_guessed: f64[2]
name: retrieve_data
arguments: label: D28
type_guessed: byte[8]
name: retrieve_data
arguments: label: D311
type_guessed: f64
name: retrieve_data
arguments: label: D60
type_guessed: f64[2]
name: retrieve_data
arguments: label: D175
type_guessed: f64

tool: D171: 0

tool: D64: 0.1

tool: {"D273": [0.25,0.45]}

tool: D198: 0.45

tool: D63: 0.2

tool: D148: 0.3

tool: {"D248": [0.5,0.57]}

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

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

tool: D311: 0.43

tool: {"D60": [0.34,0.8]}

tool: D175: 0.8

assistant: ```c
double ho_recognize_font_1_gimal(const double *array_in) {
  double return_value = 0.0;
  if ((array_in[34]))
    return_value += 0.1;
  if ((array_in[36]))
    return_value += 0.1;
  if ((array_in[103]))
    return_value += 0.1;
  if ((array_in[47]) || (array_in[48]))
    return_value += 0.1;
  if ((array_in[5]) > (array_in[10]))
    return_value += 0.1;
  if ((array_in[7]) > (array_in[12]))
    return_value += 0.1;
  if ((array_in[11]) > 0.25 && (array_in[11]) < 0.45)
    return_value += 0.1;
  if ((array_in[5]) > ((array_in[10]) + 0.25))
    return_value += 0.2;
  if ((array_in[1]) < 0.3)
    return_value += 0.2;
  if ((array_in[1]) < 0.3 && (array_in[19]) && ((array_in[65]) == 0.1 || (array_in[66]) == 0.1))
    return_value += 0.2;
  if ((array_in[11]) > 0.5)
    return_value -= 0.3;
  if ((array_in[4]) > 0.57 || (array_in[4]) < 43)
    return_value -= 0.10;
  if ((array_in[4]) < 0.43)
    return_value -= 0.3;
  if (!(array_in[47]) && !(array_in[48]))
    return_value -= 0.2;
  if ((array_in[20]))
    return_value -= 0.3;
  if ((array_in[1]) > 0.34)
    return_value -= 0.2;
  if ((array_in[2]) > 0.8)
    return_value -= 0.2;
  if ((array_in[0]) < 0.3)
    return_value -= 0.3;
  if (!(array_in[36]))
    return_value -= 0.2;
  return return_value;
}
```