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

```asm
<Ten90CprNl>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  movsd  %xmm0,-0x8(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L847
  movsd  -0x8(%rbp),%xmm0
  movq   D8(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
L847:
  movsd  D560(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L1018
  mov    $0x3b,%eax
  jmp    L241
L1018:
  movsd  D201(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L817
  mov    $0x3a,%eax
  jmp    L241
L817:
  movsd  D117(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L854
  mov    $0x39,%eax
  jmp    L241
L854:
  movsd  D66(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L119
  mov    $0x38,%eax
  jmp    L241
L119:
  movsd  D161(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L1012
  mov    $0x37,%eax
  jmp    L241
L1012:
  movsd  D220(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L300
  mov    $0x36,%eax
  jmp    L241
L300:
  movsd  D190(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L419
  mov    $0x35,%eax
  jmp    L241
L419:
  movsd  D55(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L592
  mov    $0x34,%eax
  jmp    L241
L592:
  movsd  D423(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L848
  mov    $0x33,%eax
  jmp    L241
L848:
  movsd  D469(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L75
  mov    $0x32,%eax
  jmp    L241
L75:
  movsd  D230(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L65
  mov    $0x31,%eax
  jmp    L241
L65:
  movsd  D561(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L28
  mov    $0x30,%eax
  jmp    L241
L28:
  movsd  D46(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L159
  mov    $0x2f,%eax
  jmp    L241
L159:
  movsd  D296(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L370
  mov    $0x2e,%eax
  jmp    L241
L370:
  movsd  D113(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L814
  mov    $0x2d,%eax
  jmp    L241
L814:
  movsd  D165(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L867
  mov    $0x2c,%eax
  jmp    L241
L867:
  movsd  D433(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L905
  mov    $0x2b,%eax
  jmp    L241
L905:
  movsd  D278(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L150
  mov    $0x2a,%eax
  jmp    L241
L150:
  movsd  D303(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L348
  mov    $0x29,%eax
  jmp    L241
L348:
  movsd  D138(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L152
  mov    $0x28,%eax
  jmp    L241
L152:
  movsd  D490(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L482
  mov    $0x27,%eax
  jmp    L241
L482:
  movsd  D231(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L502
  mov    $0x26,%eax
  jmp    L241
L502:
  movsd  D226(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L108
  mov    $0x25,%eax
  jmp    L241
L108:
  movsd  D147(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L99
  mov    $0x24,%eax
  jmp    L241
L99:
  movsd  D119(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L115
  mov    $0x23,%eax
  jmp    L241
L115:
  movsd  D97(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L523
  mov    $0x22,%eax
  jmp    L241
L523:
  movsd  D505(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L58
  mov    $0x21,%eax
  jmp    L241
L58:
  movsd  D321(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L621
  mov    $0x20,%eax
  jmp    L241
L621:
  movsd  D109(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L924
  mov    $0x1f,%eax
  jmp    L241
L924:
  movsd  D19(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L1099
  mov    $0x1e,%eax
  jmp    L241
L1099:
  movsd  D370(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L1058
  mov    $0x1d,%eax
  jmp    L241
L1058:
  movsd  D409(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L525
  mov    $0x1c,%eax
  jmp    L241
L525:
  movsd  D432(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L68
  mov    $0x1b,%eax
  jmp    L241
L68:
  movsd  D398(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L1130
  mov    $0x1a,%eax
  jmp    L241
L1130:
  movsd  D518(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L1062
  mov    $0x19,%eax
  jmp    L241
L1062:
  movsd  D266(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L776
  mov    $0x18,%eax
  jmp    L241
L776:
  movsd  D9(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L155
  mov    $0x17,%eax
  jmp    L241
L155:
  movsd  D114(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L409
  mov    $0x16,%eax
  jmp    L241
L409:
  movsd  D258(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L360
  mov    $0x15,%eax
  jmp    L241
L360:
  movsd  D276(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L486
  mov    $0x14,%eax
  jmp    L241
L486:
  movsd  D514(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L1095
  mov    $0x13,%eax
  jmp    L241
L1095:
  movsd  D572(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L668
  mov    $0x12,%eax
  jmp    L241
L668:
  movsd  D494(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L681
  mov    $0x11,%eax
  jmp    L241
L681:
  movsd  D203(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L1124
  mov    $0x10,%eax
  jmp    L241
L1124:
  movsd  D39(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L798
  mov    $0xf,%eax
  jmp    L241
L798:
  movsd  D499(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L1152
  mov    $0xe,%eax
  jmp    L241
L1152:
  movsd  D159(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L545
  mov    $0xd,%eax
  jmp    L241
L545:
  movsd  D385(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L648
  mov    $0xc,%eax
  jmp    L241
L648:
  movsd  D158(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L135
  mov    $0xb,%eax
  jmp    L241
L135:
  movsd  D30(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L1123
  mov    $0xa,%eax
  jmp    L241
L1123:
  movsd  D528(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L455
  mov    $0x9,%eax
  jmp    L241
L455:
  movsd  D354(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L83
  mov    $0x8,%eax
  jmp    L241
L83:
  movsd  D585(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L67
  mov    $0x7,%eax
  jmp    L241
L67:
  movsd  D302(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L1026
  mov    $0x6,%eax
  jmp    L241
L1026:
  movsd  D186(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L940
  mov    $0x5,%eax
  jmp    L241
L940:
  movsd  D81(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L932
  mov    $0x4,%eax
  jmp    L241
L932:
  movsd  D309(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L380
  mov    $0x3,%eax
  jmp    L241
L380:
  movsd  D253(%rip),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L632
  mov    $0x2,%eax
  jmp    L241
L632:
  mov    $0x1,%eax
L241:
  pop    %rbp
  ret
```

tool_calls: name: unpack_data
arguments: label: D8
type_guessed: byte[8]
name: unpack_data
arguments: label: D560
type_guessed: f64
name: unpack_data
arguments: label: D201
type_guessed: f64
name: unpack_data
arguments: label: D117
type_guessed: f64
name: unpack_data
arguments: label: D66
type_guessed: f64
name: unpack_data
arguments: label: D161
type_guessed: f64
name: unpack_data
arguments: label: D220
type_guessed: f64
name: unpack_data
arguments: label: D190
type_guessed: f64
name: unpack_data
arguments: label: D55
type_guessed: f64
name: unpack_data
arguments: label: D423
type_guessed: f64
name: unpack_data
arguments: label: D469
type_guessed: f64
name: unpack_data
arguments: label: D230
type_guessed: f64
name: unpack_data
arguments: label: D561
type_guessed: f64
name: unpack_data
arguments: label: D46
type_guessed: f64
name: unpack_data
arguments: label: D296
type_guessed: f64
name: unpack_data
arguments: label: D113
type_guessed: f64
name: unpack_data
arguments: label: D165
type_guessed: f64
name: unpack_data
arguments: label: D433
type_guessed: f64
name: unpack_data
arguments: label: D278
type_guessed: f64
name: unpack_data
arguments: label: D303
type_guessed: f64
name: unpack_data
arguments: label: D138
type_guessed: f64
name: unpack_data
arguments: label: D490
type_guessed: f64
name: unpack_data
arguments: label: D231
type_guessed: f64
name: unpack_data
arguments: label: D226
type_guessed: f64
name: unpack_data
arguments: label: D147
type_guessed: f64
name: unpack_data
arguments: label: D119
type_guessed: f64
name: unpack_data
arguments: label: D97
type_guessed: f64
name: unpack_data
arguments: label: D505
type_guessed: f64
name: unpack_data
arguments: label: D321
type_guessed: f64
name: unpack_data
arguments: label: D109
type_guessed: f64
name: unpack_data
arguments: label: D19
type_guessed: f64
name: unpack_data
arguments: label: D370
type_guessed: f64
name: unpack_data
arguments: label: D409
type_guessed: f64
name: unpack_data
arguments: label: D432
type_guessed: f64
name: unpack_data
arguments: label: D398
type_guessed: f64
name: unpack_data
arguments: label: D518
type_guessed: f64
name: unpack_data
arguments: label: D266
type_guessed: f64
name: unpack_data
arguments: label: D9
type_guessed: f64
name: unpack_data
arguments: label: D114
type_guessed: f64
name: unpack_data
arguments: label: D258
type_guessed: f64
name: unpack_data
arguments: label: D276
type_guessed: f64
name: unpack_data
arguments: label: D514
type_guessed: f64
name: unpack_data
arguments: label: D572
type_guessed: f64
name: unpack_data
arguments: label: D494
type_guessed: f64
name: unpack_data
arguments: label: D203
type_guessed: f64
name: unpack_data
arguments: label: D39
type_guessed: f64
name: unpack_data
arguments: label: D499
type_guessed: f64
name: unpack_data
arguments: label: D159
type_guessed: f64
name: unpack_data
arguments: label: D385
type_guessed: f64
name: unpack_data
arguments: label: D158
type_guessed: f64
name: unpack_data
arguments: label: D30
type_guessed: f64
name: unpack_data
arguments: label: D528
type_guessed: f64
name: unpack_data
arguments: label: D354
type_guessed: f64
name: unpack_data
arguments: label: D585
type_guessed: f64
name: unpack_data
arguments: label: D302
type_guessed: f64
name: unpack_data
arguments: label: D186
type_guessed: f64
name: unpack_data
arguments: label: D81
type_guessed: f64
name: unpack_data
arguments: label: D309
type_guessed: f64
name: unpack_data
arguments: label: D253
type_guessed: f64

tool: {"D8": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80]}

tool: D560: 10.4704713

tool: D201: 14.82817437

tool: D117: 18.18626357

tool: D66: 21.02939493

tool: D161: 23.54504487

tool: D220: 25.82924707

tool: D190: 27.9389871

tool: D55: 29.91135686

tool: D423: 31.77209708

tool: D469: 33.53993436

tool: D230: 35.22899598

tool: D561: 36.85025108

tool: D46: 38.41241892

tool: D296: 39.92256684

tool: D113: 41.38651832

tool: D165: 42.80914012

tool: D433: 44.19454951

tool: D278: 45.54626723

tool: D303: 46.86733252

tool: D138: 48.16039128

tool: D490: 49.42776439

tool: D231: 50.67150166

tool: D226: 51.89342469

tool: D147: 53.09516153

tool: D119: 54.27817472

tool: D97: 55.44378444

tool: D505: 56.59318756

tool: D321: 57.72747354

tool: D109: 58.84763776

tool: D19: 59.95459277

tool: D370: 61.04917774

tool: D409: 62.13216659

tool: D432: 63.20427479

tool: D398: 64.26616523

tool: D518: 65.3184531

tool: D266: 66.36171008

tool: D9: 67.39646774

tool: D114: 68.42322022

tool: D258: 69.44242631

tool: D276: 70.45451075

tool: D514: 71.45986473

tool: D572: 72.45884545

tool: D494: 73.45177442

tool: D203: 74.43893416

tool: D39: 75.42056257

tool: D499: 76.39684391

tool: D159: 77.36789461

tool: D385: 78.33374083

tool: D158: 79.29428225

tool: D30: 80.24923213

tool: D528: 81.19801349

tool: D354: 82.13956981

tool: D585: 83.07199445

tool: D302: 83.99173563

tool: D186: 84.89166191

tool: D81: 85.75541621

tool: D309: 86.53536998

tool: D253: 87

assistant: ```c
int Ten90CprNl(double lat) {
  if (lat < 0)
    lat = -lat;
  if (lat < 10.47047130)
    return 59;
  if (lat < 14.82817437)
    return 58;
  if (lat < 18.18626357)
    return 57;
  if (lat < 21.02939493)
    return 56;
  if (lat < 23.54504487)
    return 55;
  if (lat < 25.82924707)
    return 54;
  if (lat < 27.93898710)
    return 53;
  if (lat < 29.91135686)
    return 52;
  if (lat < 31.77209708)
    return 51;
  if (lat < 33.53993436)
    return 50;
  if (lat < 35.22899598)
    return 49;
  if (lat < 36.85025108)
    return 48;
  if (lat < 38.41241892)
    return 47;
  if (lat < 39.92256684)
    return 46;
  if (lat < 41.38651832)
    return 45;
  if (lat < 42.80914012)
    return 44;
  if (lat < 44.19454951)
    return 43;
  if (lat < 45.54626723)
    return 42;
  if (lat < 46.86733252)
    return 41;
  if (lat < 48.16039128)
    return 40;
  if (lat < 49.42776439)
    return 39;
  if (lat < 50.67150166)
    return 38;
  if (lat < 51.89342469)
    return 37;
  if (lat < 53.09516153)
    return 36;
  if (lat < 54.27817472)
    return 35;
  if (lat < 55.44378444)
    return 34;
  if (lat < 56.59318756)
    return 33;
  if (lat < 57.72747354)
    return 32;
  if (lat < 58.84763776)
    return 31;
  if (lat < 59.95459277)
    return 30;
  if (lat < 61.04917774)
    return 29;
  if (lat < 62.13216659)
    return 28;
  if (lat < 63.20427479)
    return 27;
  if (lat < 64.26616523)
    return 26;
  if (lat < 65.31845310)
    return 25;
  if (lat < 66.36171008)
    return 24;
  if (lat < 67.39646774)
    return 23;
  if (lat < 68.42322022)
    return 22;
  if (lat < 69.44242631)
    return 21;
  if (lat < 70.45451075)
    return 20;
  if (lat < 71.45986473)
    return 19;
  if (lat < 72.45884545)
    return 18;
  if (lat < 73.45177442)
    return 17;
  if (lat < 74.43893416)
    return 16;
  if (lat < 75.42056257)
    return 15;
  if (lat < 76.39684391)
    return 14;
  if (lat < 77.36789461)
    return 13;
  if (lat < 78.33374083)
    return 12;
  if (lat < 79.29428225)
    return 11;
  if (lat < 80.24923213)
    return 10;
  if (lat < 81.19801349)
    return 9;
  if (lat < 82.13956981)
    return 8;
  if (lat < 83.07199445)
    return 7;
  if (lat < 83.99173563)
    return 6;
  if (lat < 84.89166191)
    return 5;
  if (lat < 85.75541621)
    return 4;
  if (lat < 86.53536998)
    return 3;
  if (lat < 87.00000000)
    return 2;
  else
    return 1;
}
```