user: 请将以下的汇编代码转换成C语言代码：

```asm
<get_comp_point>:
  endbr64
  lea    D165(%rip),%rax
  comisd D95(%rip),%xmm0
  ja     L312
  pxor   %xmm1,%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D402(%rip),%rax
  movsd  D391(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D455(%rip),%rax
  movsd  D596(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D552(%rip),%rax
  movsd  D439(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D389(%rip),%rax
  movsd  D221(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D323(%rip),%rax
  movsd  D362(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D420(%rip),%rax
  movsd  D504(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D603(%rip),%rax
  movsd  D383(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D121(%rip),%rax
  movsd  D660(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D556(%rip),%rax
  movsd  D118(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D194(%rip),%rax
  movsd  D652(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D408(%rip),%rax
  movsd  D337(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D284(%rip),%rax
  movsd  D224(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D254(%rip),%rax
  movsd  D454(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D227(%rip),%rax
  movsd  D79(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D69(%rip),%rax
  movsd  D375(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D245(%rip),%rax
  movsd  D99(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D379(%rip),%rax
  movsd  D481(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D419(%rip),%rax
  movsd  D30(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D114(%rip),%rax
  movsd  D29(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D299(%rip),%rax
  movsd  D451(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D6(%rip),%rax
  movsd  D279(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D276(%rip),%rax
  movsd  D335(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D449(%rip),%rax
  movsd  D336(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D566(%rip),%rax
  movsd  D154(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D244(%rip),%rax
  movsd  D525(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D253(%rip),%rax
  movsd  D343(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D569(%rip),%rax
  movsd  D120(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D480(%rip),%rax
  movsd  D23(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D485(%rip),%rax
  movsd  D33(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D604(%rip),%rax
  movsd  D43(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  lea    D452(%rip),%rax
  movsd  D21(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L312
  movsd  D447(%rip),%xmm1
  comisd %xmm0,%xmm1
  lea    D247(%rip),%rax
  lea    D402(%rip),%rdx
  cmovbe %rdx,%rax
L312:
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D165
data_type: string
name: disassemble_data
arguments: data_tag: D95
data_type: f64[2]
name: disassemble_data
arguments: data_tag: D402
data_type: string
name: disassemble_data
arguments: data_tag: D391
data_type: f64
name: disassemble_data
arguments: data_tag: D455
data_type: string
name: disassemble_data
arguments: data_tag: D596
data_type: f64
name: disassemble_data
arguments: data_tag: D552
data_type: string
name: disassemble_data
arguments: data_tag: D439
data_type: f64
name: disassemble_data
arguments: data_tag: D389
data_type: string
name: disassemble_data
arguments: data_tag: D221
data_type: f64
name: disassemble_data
arguments: data_tag: D323
data_type: string
name: disassemble_data
arguments: data_tag: D362
data_type: f64
name: disassemble_data
arguments: data_tag: D420
data_type: string
name: disassemble_data
arguments: data_tag: D504
data_type: f64
name: disassemble_data
arguments: data_tag: D603
data_type: string
name: disassemble_data
arguments: data_tag: D383
data_type: f64
name: disassemble_data
arguments: data_tag: D121
data_type: string
name: disassemble_data
arguments: data_tag: D660
data_type: f64
name: disassemble_data
arguments: data_tag: D556
data_type: string
name: disassemble_data
arguments: data_tag: D118
data_type: f64
name: disassemble_data
arguments: data_tag: D194
data_type: string
name: disassemble_data
arguments: data_tag: D652
data_type: f64
name: disassemble_data
arguments: data_tag: D408
data_type: string
name: disassemble_data
arguments: data_tag: D337
data_type: f64
name: disassemble_data
arguments: data_tag: D284
data_type: string
name: disassemble_data
arguments: data_tag: D224
data_type: f64
name: disassemble_data
arguments: data_tag: D254
data_type: string
name: disassemble_data
arguments: data_tag: D454
data_type: f64
name: disassemble_data
arguments: data_tag: D227
data_type: string
name: disassemble_data
arguments: data_tag: D79
data_type: f64
name: disassemble_data
arguments: data_tag: D69
data_type: string
name: disassemble_data
arguments: data_tag: D375
data_type: f64
name: disassemble_data
arguments: data_tag: D245
data_type: string
name: disassemble_data
arguments: data_tag: D99
data_type: f64
name: disassemble_data
arguments: data_tag: D379
data_type: string
name: disassemble_data
arguments: data_tag: D481
data_type: f64
name: disassemble_data
arguments: data_tag: D419
data_type: string
name: disassemble_data
arguments: data_tag: D30
data_type: f64
name: disassemble_data
arguments: data_tag: D114
data_type: string
name: disassemble_data
arguments: data_tag: D29
data_type: f64
name: disassemble_data
arguments: data_tag: D299
data_type: string
name: disassemble_data
arguments: data_tag: D451
data_type: f64
name: disassemble_data
arguments: data_tag: D6
data_type: string
name: disassemble_data
arguments: data_tag: D279
data_type: f64
name: disassemble_data
arguments: data_tag: D276
data_type: string
name: disassemble_data
arguments: data_tag: D335
data_type: f64
name: disassemble_data
arguments: data_tag: D449
data_type: string
name: disassemble_data
arguments: data_tag: D336
data_type: f64
name: disassemble_data
arguments: data_tag: D566
data_type: string
name: disassemble_data
arguments: data_tag: D154
data_type: f64
name: disassemble_data
arguments: data_tag: D244
data_type: string
name: disassemble_data
arguments: data_tag: D525
data_type: f64
name: disassemble_data
arguments: data_tag: D253
data_type: string
name: disassemble_data
arguments: data_tag: D343
data_type: f64
name: disassemble_data
arguments: data_tag: D569
data_type: string
name: disassemble_data
arguments: data_tag: D120
data_type: f64
name: disassemble_data
arguments: data_tag: D480
data_type: string
name: disassemble_data
arguments: data_tag: D23
data_type: f64
name: disassemble_data
arguments: data_tag: D485
data_type: string
name: disassemble_data
arguments: data_tag: D33
data_type: f64
name: disassemble_data
arguments: data_tag: D604
data_type: string
name: disassemble_data
arguments: data_tag: D43
data_type: f64
name: disassemble_data
arguments: data_tag: D452
data_type: string
name: disassemble_data
arguments: data_tag: D21
data_type: f64
name: disassemble_data
arguments: data_tag: D447
data_type: f64
name: disassemble_data
arguments: data_tag: D247
data_type: string

tool: D165: X

tool: {"D95": [360.0,5.63]}

tool: D402: N

tool: D391: 5.63

tool: D455: NbE

tool: D596: 16.88

tool: D552: NNE

tool: D439: 28.13

tool: D389: NEbN

tool: D221: 39.38

tool: D323: NE

tool: D362: 50.63

tool: D420: NEbE

tool: D504: 61.88

tool: D603: ENE

tool: D383: 73.13

tool: D121: EbN

tool: D660: 84.38

tool: D556: E

tool: D118: 95.63

tool: D194: EbS

tool: D652: 106.88

tool: D408: ESE

tool: D337: 118.13

tool: D284: SEbE

tool: D224: 129.38

tool: D254: SE

tool: D454: 140.63

tool: D227: SEbS

tool: D79: 151.88

tool: D69: SSE

tool: D375: 163.13

tool: D245: SbE

tool: D99: 174.38

tool: D379: S

tool: D481: 185.63

tool: D419: SbW

tool: D30: 196.88

tool: D114: SSW

tool: D29: 208.13

tool: D299: SWbS

tool: D451: 219.38

tool: D6: SW

tool: D279: 230.63

tool: D276: SWbW

tool: D335: 241.88

tool: D449: WSW

tool: D336: 253.13

tool: D566: WbS

tool: D154: 264.38

tool: D244: W

tool: D525: 275.63

tool: D253: WbN

tool: D343: 286.88

tool: D569: WNW

tool: D120: 298.13

tool: D480: NWbW

tool: D23: 309.38

tool: D485: NW

tool: D33: 320.63

tool: D604: NWbN

tool: D43: 331.88

tool: D452: NNW

tool: D21: 343.13

tool: D447: 354.38

tool: D247: NbW

assistant: ```c
const char *get_comp_point(double v) {
  if (v > 360.0 || v < 0.0)
    return "X";
  if (v < 5.63)
    return "N";
  if (v < 16.88)
    return "NbE";
  if (v < 28.13)
    return "NNE";
  if (v < 39.38)
    return "NEbN";
  if (v < 50.63)
    return "NE";
  if (v < 61.88)
    return "NEbE";
  if (v < 73.13)
    return "ENE";
  if (v < 84.38)
    return "EbN";
  if (v < 95.63)
    return "E";
  if (v < 106.88)
    return "EbS";
  if (v < 118.13)
    return "ESE";
  if (v < 129.38)
    return "SEbE";
  if (v < 140.63)
    return "SE";
  if (v < 151.88)
    return "SEbS";
  if (v < 163.13)
    return "SSE";
  if (v < 174.38)
    return "SbE";
  if (v < 185.63)
    return "S";
  if (v < 196.88)
    return "SbW";
  if (v < 208.13)
    return "SSW";
  if (v < 219.38)
    return "SWbS";
  if (v < 230.63)
    return "SW";
  if (v < 241.88)
    return "SWbW";
  if (v < 253.13)
    return "WSW";
  if (v < 264.38)
    return "WbS";
  if (v < 275.63)
    return "W";
  if (v < 286.88)
    return "WbN";
  if (v < 298.13)
    return "WNW";
  if (v < 309.38)
    return "NWbW";
  if (v < 320.63)
    return "NW";
  if (v < 331.88)
    return "NWbN";
  if (v < 343.13)
    return "NNW";
  if (v < 354.38)
    return "NbW";
  return "N";
}
```