user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<main>:
  endbr64
  push   %r13
  lea    D132(%rip),%rdi
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x28,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x18(%rsp)
  xor    %eax,%eax
  movl   $0x0,0xc(%rsp)
  movl   $0x0,0x10(%rsp)
  movl   $0x0,0x14(%rsp)
  call   <puts@plt>
  lea    0xa(%rsp),%rdi
  call   <get_input@plt>
  cmpb   $0x4c,0xa(%rsp)
  jne    L227
L91:
  mov    $0xffffffd8,%r13d
  lea    0x14(%rsp),%r12
  lea    D52(%rip),%rdi
  call   <puts@plt>
  lea    0x10(%rsp),%rbp
  lea    D117(%rip),%rbx
  nopw   0x0(%rax,%rax,1)
L3:
  pxor   %xmm0,%xmm0
  mov    %r12,%rdi
  cvtsi2ss %r13d,%xmm0
  movss  %xmm0,0x14(%rsp)
  movss  %xmm0,0x10(%rsp)
  call   <To_Celsius@plt>
  mov    %rbp,%rdi
  call   <To_Celsius@plt>
  pxor   %xmm1,%xmm1
  mov    %r13d,%esi
  pxor   %xmm0,%xmm0
  cvtss2sd 0x10(%rsp),%xmm1
  mov    %rbx,%rdi
  addsd  D74(%rip),%xmm1
  mov    $0x2,%eax
  add    $0x14,%r13d
  cvtss2sd 0x14(%rsp),%xmm0
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,0x10(%rsp)
  cvtss2sd %xmm1,%xmm1
  call   <printf@plt>
  cmp    $0xdc,%r13d
  jne    L3
L124:
  mov    0x18(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L196
  add    $0x28,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
  nopl   (%rax)
L227:
  lea    D131(%rip),%rdi
  call   <puts@plt>
  lea    0xb(%rsp),%rdi
  call   <get_input@plt>
  movzbl 0xa(%rsp),%eax
  cmp    $0x46,%al
  je     L10
  jle    L264
  cmp    $0x4b,%al
  jne    L226
  movzbl 0xb(%rsp),%eax
  cmp    $0x46,%al
  je     L171
  cmp    $0x43,%al
  je     L219
  cmp    $0x4b,%al
  jne    L124
  lea    D137(%rip),%rdi
  call   <puts@plt>
  lea    0xc(%rsp),%rdi
  call   <get_num@plt>
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  lea    D179(%rip),%rdi
  cvtss2sd 0xc(%rsp),%xmm0
  call   <printf@plt>
  jmp    L124
  nopl   0x0(%rax)
L264:
  cmp    $0x43,%al
  jne    L100
  movzbl 0xb(%rsp),%eax
  cmp    $0x46,%al
  je     L69
  cmp    $0x4b,%al
  je     L47
  cmp    $0x43,%al
  jne    L124
  lea    D137(%rip),%rdi
  call   <puts@plt>
  lea    0xc(%rsp),%rdi
  call   <get_num@plt>
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  lea    D103(%rip),%rdi
  cvtss2sd 0xc(%rsp),%xmm0
  call   <printf@plt>
  jmp    L124
  nopw   0x0(%rax,%rax,1)
L226:
  cmp    $0x4c,%al
  je     L91
L100:
  lea    D102(%rip),%rdi
  call   <puts@plt>
  jmp    L124
L10:
  movzbl 0xb(%rsp),%eax
  cmp    $0x43,%al
  je     L35
  cmp    $0x4b,%al
  je     L175
  cmp    $0x46,%al
  jne    L124
  lea    D137(%rip),%rdi
  call   <puts@plt>
  lea    0xc(%rsp),%rdi
  call   <get_num@plt>
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  lea    D39(%rip),%rdi
  cvtss2sd 0xc(%rsp),%xmm0
  call   <printf@plt>
  jmp    L124
L171:
  lea    0xc(%rsp),%rbp
  lea    D137(%rip),%rdi
  call   <puts@plt>
  mov    %rbp,%rdi
  call   <get_num@plt>
  pxor   %xmm0,%xmm0
  mov    %rbp,%rdi
  cvtss2sd 0xc(%rsp),%xmm0
  subsd  D74(%rip),%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0xc(%rsp)
  call   <To_Fahr@plt>
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  lea    D128(%rip),%rdi
  cvtss2sd 0xc(%rsp),%xmm0
  call   <printf@plt>
  jmp    L124
L69:
  lea    0xc(%rsp),%rbp
  lea    D137(%rip),%rdi
  call   <puts@plt>
  mov    %rbp,%rdi
  call   <get_num@plt>
  mov    %rbp,%rdi
  call   <To_Fahr@plt>
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  lea    D226(%rip),%rdi
  cvtss2sd 0xc(%rsp),%xmm0
  call   <printf@plt>
  jmp    L124
L35:
  lea    0xc(%rsp),%rbp
  lea    D137(%rip),%rdi
  call   <puts@plt>
  mov    %rbp,%rdi
  call   <get_num@plt>
  mov    %rbp,%rdi
  call   <To_Celsius@plt>
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  lea    D38(%rip),%rdi
  cvtss2sd 0xc(%rsp),%xmm0
  call   <printf@plt>
  jmp    L124
L219:
  lea    D137(%rip),%rdi
  call   <puts@plt>
  lea    0xc(%rsp),%rdi
  call   <get_num@plt>
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  lea    D121(%rip),%rdi
  cvtss2sd 0xc(%rsp),%xmm0
  subsd  D74(%rip),%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0xc(%rsp)
  cvtss2sd %xmm0,%xmm0
  call   <printf@plt>
  jmp    L124
L47:
  lea    D137(%rip),%rdi
  call   <puts@plt>
  lea    0xc(%rsp),%rdi
  call   <get_num@plt>
L126:
  pxor   %xmm0,%xmm0
  lea    D221(%rip),%rdi
  mov    $0x1,%eax
  cvtss2sd 0xc(%rsp),%xmm0
  addsd  D74(%rip),%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0xc(%rsp)
  cvtss2sd %xmm0,%xmm0
  call   <printf@plt>
  jmp    L124
L175:
  lea    0xc(%rsp),%rbp
  lea    D137(%rip),%rdi
  call   <puts@plt>
  mov    %rbp,%rdi
  call   <get_num@plt>
  mov    %rbp,%rdi
  call   <To_Celsius@plt>
  jmp    L126
L196:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: tag: D132
data_type: string
name: extract_symbolic_data
arguments: tag: D52
data_type: string
name: extract_symbolic_data
arguments: tag: D117
data_type: string
name: extract_symbolic_data
arguments: tag: D74
data_type: f64
name: extract_symbolic_data
arguments: tag: D131
data_type: string
name: extract_symbolic_data
arguments: tag: D137
data_type: string
name: extract_symbolic_data
arguments: tag: D179
data_type: string
name: extract_symbolic_data
arguments: tag: D103
data_type: string
name: extract_symbolic_data
arguments: tag: D102
data_type: string
name: extract_symbolic_data
arguments: tag: D39
data_type: string
name: extract_symbolic_data
arguments: tag: D128
data_type: string
name: extract_symbolic_data
arguments: tag: D226
data_type: string
name: extract_symbolic_data
arguments: tag: D38
data_type: string
name: extract_symbolic_data
arguments: tag: D121
data_type: string
name: extract_symbolic_data
arguments: tag: D221
data_type: string

tool: D132: 
Would you like to convert from (F)ahrenheit, (C)elsius, (K)elvin, or see a (L)ist of conversions?

tool: D52: Fahrenheit	Celcius	Kelvin


tool: D117: 
	%3d	%06.3f	%06.3f


tool: D74: 273.15

tool: D131: Convert to (F)ahrenheit, (C)elsius, or (K)elvin?

tool: D137: Enter Temperature to convert:

tool: D179: %06.3f Kelvin, Duh


tool: D103: %06.3f Degrees Celsius, Duh


tool: D102: Something went wrong.

tool: D39: %06.3f Degrees Fahrenheit, Duh


tool: D128: %06.3f Degrees Fehrenheit


tool: D226: %06.3f Degrees Fahrenheit


tool: D38: %06.3f Degrees Celsius


tool: D121: %06.3f Celsius


tool: D221: %06.3f Kelvin


assistant: ```c
int main() {
  char deg_in, deg_out;
  float deg_num = 0.0;
  float kelvin_loop = 0.0;
  float celsius_loop = 0.0;
  int i;
  printf("\nWould you like to convert from (F)ahrenheit, (C)elsius, (K)elvin, or see a (L)ist of conversions?\n");
  get_input(&deg_in);
  if (deg_in != 'L') {
    printf("Convert to (F)ahrenheit, (C)elsius, or (K)elvin?\n");
    get_input(&deg_out);
  }
  switch (deg_in) {
  case 'F':
    if (deg_out == 'C') {
      printf("Enter Temperature to convert:\n");
      get_num(&deg_num);
      To_Celsius(&deg_num);
      printf("%06.3f Degrees Celsius\n", deg_num);
    } else if (deg_out == 'K') {
      printf("Enter Temperature to convert:\n");
      get_num(&deg_num);
      To_Celsius(&deg_num);
      deg_num += 273.15;
      printf("%06.3f Kelvin\n", deg_num);
    } else if (deg_out == 'F') {
      printf("Enter Temperature to convert:\n");
      get_num(&deg_num);
      printf("%06.3f Degrees Fahrenheit, Duh\n", deg_num);
    }
    break;
  case 'C':
    if (deg_out == 'F') {
      printf("Enter Temperature to convert:\n");
      get_num(&deg_num);
      To_Fahr(&deg_num);
      printf("%06.3f Degrees Fahrenheit\n", deg_num);
    } else if (deg_out == 'K') {
      printf("Enter Temperature to convert:\n");
      get_num(&deg_num);
      deg_num += 273.15;
      printf("%06.3f Kelvin\n", deg_num);
    } else if (deg_out == 'C') {
      printf("Enter Temperature to convert:\n");
      get_num(&deg_num);
      printf("%06.3f Degrees Celsius, Duh\n", deg_num);
    }
    break;
  case 'K':
    if (deg_out == 'F') {
      printf("Enter Temperature to convert:\n");
      get_num(&deg_num);
      deg_num -= 273.15;
      To_Fahr(&deg_num);
      printf("%06.3f Degrees Fehrenheit\n", deg_num);
    } else if (deg_out == 'C') {
      printf("Enter Temperature to convert:\n");
      get_num(&deg_num);
      deg_num -= 273.15;
      printf("%06.3f Celsius\n", deg_num);
    } else if (deg_out == 'K') {
      printf("Enter Temperature to convert:\n");
      get_num(&deg_num);
      printf("%06.3f Kelvin, Duh\n", deg_num);
    }
    break;
  case 'L':
    printf("Fahrenheit\tCelcius\tKelvin\n\n");
    for (i = -40; i <= 200; i += 20) {
      celsius_loop = i;
      kelvin_loop = i;
      To_Celsius(&celsius_loop);
      To_Celsius(&kelvin_loop);
      kelvin_loop += 273.15;
      printf("\n\t%3d\t%06.3f\t%06.3f\n", i, celsius_loop, kelvin_loop);
    }
    break;
  default:
    printf("Something went wrong.\n");
    break;
  }
}
```