user: What is the c source code of the assembly code below?

```asm
<rssi_to_heat>:
  endbr64
  movss  D79(%rip),%xmm1
  xor    %eax,%eax
  comiss %xmm0,%xmm1
  ja     L78
  movsd  D21(%rip),%xmm2
  pxor   %xmm1,%xmm1
  mov    $0x1,%eax
  cvtss2sd %xmm0,%xmm1
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D136(%rip),%xmm2
  mov    $0x2,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D36(%rip),%xmm2
  mov    $0x3,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D46(%rip),%xmm2
  mov    $0x4,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D57(%rip),%xmm2
  mov    $0x5,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D122(%rip),%xmm2
  mov    $0x6,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D113(%rip),%xmm2
  mov    $0x7,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D20(%rip),%xmm2
  mov    $0x8,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D107(%rip),%xmm2
  mov    $0x9,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D47(%rip),%xmm2
  mov    $0xa,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D70(%rip),%xmm2
  mov    $0xb,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D106(%rip),%xmm2
  mov    $0xc,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D80(%rip),%xmm2
  mov    $0xd,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D25(%rip),%xmm2
  mov    $0xe,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D125(%rip),%xmm2
  mov    $0xf,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movsd  D85(%rip),%xmm2
  mov    $0x10,%eax
  comisd %xmm1,%xmm2
  ja     L78
  movss  D134(%rip),%xmm1
  xor    %eax,%eax
  ucomiss %xmm0,%xmm1
  setbe  %al
  add    $0x11,%eax
L78:
  ret
```

tool_calls: name: unpack_data
arguments: tag: D79
type: byte[4]
name: unpack_data
arguments: tag: D21
type: byte[8]
name: unpack_data
arguments: tag: D136
type: byte[8]
name: unpack_data
arguments: tag: D36
type: byte[8]
name: unpack_data
arguments: tag: D46
type: byte[8]
name: unpack_data
arguments: tag: D57
type: byte[8]
name: unpack_data
arguments: tag: D122
type: byte[8]
name: unpack_data
arguments: tag: D113
type: byte[8]
name: unpack_data
arguments: tag: D20
type: byte[8]
name: unpack_data
arguments: tag: D107
type: byte[8]
name: unpack_data
arguments: tag: D47
type: byte[8]
name: unpack_data
arguments: tag: D70
type: byte[8]
name: unpack_data
arguments: tag: D106
type: byte[8]
name: unpack_data
arguments: tag: D80
type: byte[8]
name: unpack_data
arguments: tag: D25
type: byte[8]
name: unpack_data
arguments: tag: D125
type: byte[8]
name: unpack_data
arguments: tag: D85
type: byte[8]
name: unpack_data
arguments: tag: D134
type: byte[4]

tool: {"D79": [0x00,0x00,0xcc,0xc2]}

tool: {"D21": [0x85,0xeb,0x51,0xb8,0x1e,0xe5,0x58,0xc0]}

tool: {"D136": [0x7b,0x14,0xae,0x47,0xe1,0x4a,0x58,0xc0]}

tool: {"D36": [0x71,0x3d,0x0a,0xd7,0xa3,0xb0,0x57,0xc0]}

tool: {"D46": [0x66,0x66,0x66,0x66,0x66,0x16,0x57,0xc0]}

tool: {"D57": [0x5c,0x8f,0xc2,0xf5,0x28,0x7c,0x56,0xc0]}

tool: {"D122": [0xe1,0x7a,0x14,0xae,0x47,0xe1,0x55,0xc0]}

tool: {"D113": [0xd7,0xa3,0x70,0x3d,0x0a,0x47,0x55,0xc0]}

tool: {"D20": [0xcd,0xcc,0xcc,0xcc,0xcc,0xac,0x54,0xc0]}

tool: {"D107": [0xc3,0xf5,0x28,0x5c,0x8f,0x12,0x54,0xc0]}

tool: {"D47": [0xb8,0x1e,0x85,0xeb,0x51,0x78,0x53,0xc0]}

tool: {"D70": [0xae,0x47,0xe1,0x7a,0x14,0xde,0x52,0xc0]}

tool: {"D106": [0x33,0x33,0x33,0x33,0x33,0x43,0x52,0xc0]}

tool: {"D80": [0x29,0x5c,0x8f,0xc2,0xf5,0xa8,0x51,0xc0]}

tool: {"D25": [0x1f,0x85,0xeb,0x51,0xb8,0x0e,0x51,0xc0]}

tool: {"D125": [0x14,0xae,0x47,0xe1,0x7a,0x74,0x50,0xc0]}

tool: {"D85": [0x14,0xae,0x47,0xe1,0x7a,0xb4,0x4f,0xc0]}

tool: {"D134": [0x00,0x00,0x74,0xc2]}

assistant: ```c
int rssi_to_heat(float rssi) {
  if (rssi < -102) {
    return 0;
  } else if (rssi < -99.58) {
    return 1;
  } else if (rssi < -97.17) {
    return 2;
  } else if (rssi < -94.76) {
    return 3;
  } else if (rssi < -92.35) {
    return 4;
  } else if (rssi < -89.94) {
    return 5;
  } else if (rssi < -87.52) {
    return 6;
  } else if (rssi < -85.11) {
    return 7;
  } else if (rssi < -82.70) {
    return 8;
  } else if (rssi < -80.29) {
    return 9;
  } else if (rssi < -77.88) {
    return 10;
  } else if (rssi < -75.47) {
    return 11;
  } else if (rssi < -73.05) {
    return 12;
  } else if (rssi < -70.64) {
    return 13;
  } else if (rssi < -68.23) {
    return 14;
  } else if (rssi < -65.82) {
    return 15;
  } else if (rssi < -63.41) {
    return 16;
  }
  if (rssi < -61.0f) {
    return 17;
  } else {
    return 18;
  }
}
```