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

```asm
<get_comp_point>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  comisd D265(%rip),%xmm0
  ja     L393
  pxor   %xmm0,%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L654
L393:
  lea    D489(%rip),%rax
  jmp    L557
L654:
  movsd  D472(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L295
  lea    D103(%rip),%rax
  jmp    L557
L295:
  movsd  D616(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L69
  lea    D229(%rip),%rax
  jmp    L557
L69:
  movsd  D370(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L153
  lea    D344(%rip),%rax
  jmp    L557
L153:
  movsd  D171(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L465
  lea    D173(%rip),%rax
  jmp    L557
L465:
  movsd  D109(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L209
  lea    D169(%rip),%rax
  jmp    L557
L209:
  movsd  D354(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L424
  lea    D399(%rip),%rax
  jmp    L557
L424:
  movsd  D541(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L33
  lea    D156(%rip),%rax
  jmp    L557
L33:
  movsd  D570(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L179
  lea    D567(%rip),%rax
  jmp    L557
L179:
  movsd  D250(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L550
  lea    D249(%rip),%rax
  jmp    L557
L550:
  movsd  D478(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L325
  lea    D505(%rip),%rax
  jmp    L557
L325:
  movsd  D188(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L304
  lea    D268(%rip),%rax
  jmp    L557
L304:
  movsd  D255(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L464
  lea    D117(%rip),%rax
  jmp    L557
L464:
  movsd  D378(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L310
  lea    D232(%rip),%rax
  jmp    L557
L310:
  movsd  D372(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L525
  lea    D15(%rip),%rax
  jmp    L557
L525:
  movsd  D200(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L13
  lea    D35(%rip),%rax
  jmp    L557
L13:
  movsd  D430(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L180
  lea    D62(%rip),%rax
  jmp    L557
L180:
  movsd  D33(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L288
  lea    D23(%rip),%rax
  jmp    L557
L288:
  movsd  D153(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L265
  lea    D114(%rip),%rax
  jmp    L557
L265:
  movsd  D145(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L515
  lea    D73(%rip),%rax
  jmp    L557
L515:
  movsd  D331(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L42
  lea    D184(%rip),%rax
  jmp    L557
L42:
  movsd  D321(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L477
  lea    D486(%rip),%rax
  jmp    L557
L477:
  movsd  D325(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L417
  lea    D37(%rip),%rax
  jmp    L557
L417:
  movsd  D587(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L543
  lea    D102(%rip),%rax
  jmp    L557
L543:
  movsd  D445(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L364
  lea    D610(%rip),%rax
  jmp    L557
L364:
  movsd  D462(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L400
  lea    D303(%rip),%rax
  jmp    L557
L400:
  movsd  D283(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L584
  lea    D473(%rip),%rax
  jmp    L557
L584:
  movsd  D480(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L50
  lea    D482(%rip),%rax
  jmp    L557
L50:
  movsd  D361(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L504
  lea    D162(%rip),%rax
  jmp    L557
L504:
  movsd  D416(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L529
  lea    D302(%rip),%rax
  jmp    L557
L529:
  movsd  D68(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L284
  lea    D164(%rip),%rax
  jmp    L557
L284:
  movsd  D81(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L167
  lea    D1(%rip),%rax
  jmp    L557
L167:
  movsd  D289(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L609
  lea    D622(%rip),%rax
  jmp    L557
L609:
  lea    D103(%rip),%rax
L557:
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: tag: D265
datatype: f64[2]
name: retrieve_data
arguments: tag: D489
datatype: string
name: retrieve_data
arguments: tag: D472
datatype: f64
name: retrieve_data
arguments: tag: D103
datatype: string
name: retrieve_data
arguments: tag: D616
datatype: f64
name: retrieve_data
arguments: tag: D229
datatype: string
name: retrieve_data
arguments: tag: D370
datatype: f64
name: retrieve_data
arguments: tag: D344
datatype: string
name: retrieve_data
arguments: tag: D171
datatype: f64
name: retrieve_data
arguments: tag: D173
datatype: string
name: retrieve_data
arguments: tag: D109
datatype: f64
name: retrieve_data
arguments: tag: D169
datatype: string
name: retrieve_data
arguments: tag: D354
datatype: f64
name: retrieve_data
arguments: tag: D399
datatype: string
name: retrieve_data
arguments: tag: D541
datatype: f64
name: retrieve_data
arguments: tag: D156
datatype: string
name: retrieve_data
arguments: tag: D570
datatype: f64
name: retrieve_data
arguments: tag: D567
datatype: string
name: retrieve_data
arguments: tag: D250
datatype: f64
name: retrieve_data
arguments: tag: D249
datatype: string
name: retrieve_data
arguments: tag: D478
datatype: f64
name: retrieve_data
arguments: tag: D505
datatype: string
name: retrieve_data
arguments: tag: D188
datatype: f64
name: retrieve_data
arguments: tag: D268
datatype: string
name: retrieve_data
arguments: tag: D255
datatype: f64
name: retrieve_data
arguments: tag: D117
datatype: string
name: retrieve_data
arguments: tag: D378
datatype: f64
name: retrieve_data
arguments: tag: D232
datatype: string
name: retrieve_data
arguments: tag: D372
datatype: f64
name: retrieve_data
arguments: tag: D15
datatype: string
name: retrieve_data
arguments: tag: D200
datatype: f64
name: retrieve_data
arguments: tag: D35
datatype: string
name: retrieve_data
arguments: tag: D430
datatype: f64
name: retrieve_data
arguments: tag: D62
datatype: string
name: retrieve_data
arguments: tag: D33
datatype: f64
name: retrieve_data
arguments: tag: D23
datatype: string
name: retrieve_data
arguments: tag: D153
datatype: f64
name: retrieve_data
arguments: tag: D114
datatype: string
name: retrieve_data
arguments: tag: D145
datatype: f64
name: retrieve_data
arguments: tag: D73
datatype: string
name: retrieve_data
arguments: tag: D331
datatype: f64
name: retrieve_data
arguments: tag: D184
datatype: string
name: retrieve_data
arguments: tag: D321
datatype: f64
name: retrieve_data
arguments: tag: D486
datatype: string
name: retrieve_data
arguments: tag: D325
datatype: f64
name: retrieve_data
arguments: tag: D37
datatype: string
name: retrieve_data
arguments: tag: D587
datatype: f64
name: retrieve_data
arguments: tag: D102
datatype: string
name: retrieve_data
arguments: tag: D445
datatype: f64
name: retrieve_data
arguments: tag: D610
datatype: string
name: retrieve_data
arguments: tag: D462
datatype: f64
name: retrieve_data
arguments: tag: D303
datatype: string
name: retrieve_data
arguments: tag: D283
datatype: f64
name: retrieve_data
arguments: tag: D473
datatype: string
name: retrieve_data
arguments: tag: D480
datatype: f64
name: retrieve_data
arguments: tag: D482
datatype: string
name: retrieve_data
arguments: tag: D361
datatype: f64
name: retrieve_data
arguments: tag: D162
datatype: string
name: retrieve_data
arguments: tag: D416
datatype: f64
name: retrieve_data
arguments: tag: D302
datatype: string
name: retrieve_data
arguments: tag: D68
datatype: f64
name: retrieve_data
arguments: tag: D164
datatype: string
name: retrieve_data
arguments: tag: D81
datatype: f64
name: retrieve_data
arguments: tag: D1
datatype: string
name: retrieve_data
arguments: tag: D289
datatype: f64
name: retrieve_data
arguments: tag: D622
datatype: string

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

tool: D489: X

tool: D472: 5.63

tool: D103: N

tool: D616: 16.88

tool: D229: NbE

tool: D370: 28.13

tool: D344: NNE

tool: D171: 39.38

tool: D173: NEbN

tool: D109: 50.63

tool: D169: NE

tool: D354: 61.88

tool: D399: NEbE

tool: D541: 73.13

tool: D156: ENE

tool: D570: 84.38

tool: D567: EbN

tool: D250: 95.63

tool: D249: E

tool: D478: 106.88

tool: D505: EbS

tool: D188: 118.13

tool: D268: ESE

tool: D255: 129.38

tool: D117: SEbE

tool: D378: 140.63

tool: D232: SE

tool: D372: 151.88

tool: D15: SEbS

tool: D200: 163.13

tool: D35: SSE

tool: D430: 174.38

tool: D62: SbE

tool: D33: 185.63

tool: D23: S

tool: D153: 196.88

tool: D114: SbW

tool: D145: 208.13

tool: D73: SSW

tool: D331: 219.38

tool: D184: SWbS

tool: D321: 230.63

tool: D486: SW

tool: D325: 241.88

tool: D37: SWbW

tool: D587: 253.13

tool: D102: WSW

tool: D445: 264.38

tool: D610: WbS

tool: D462: 275.63

tool: D303: W

tool: D283: 286.88

tool: D473: WbN

tool: D480: 298.13

tool: D482: WNW

tool: D361: 309.38

tool: D162: NWbW

tool: D416: 320.63

tool: D302: NW

tool: D68: 331.88

tool: D164: NWbN

tool: D81: 343.13

tool: D1: NNW

tool: D289: 354.38

tool: D622: 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";
}
```