user: 这段汇编代码用C语言表示是什么样的?

```asm
<main>:
  endbr64
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x38,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x28(%rsp)
  xor    %eax,%eax
  lea    D181(%rip),%rdi
  call   <puts@plt>
  lea    D123(%rip),%rdi
  call   <puts@plt>
  lea    D179(%rip),%rdi
  call   <puts@plt>
  lea    D4(%rip),%rdi
  call   <puts@plt>
  lea    D285(%rip),%rdi
  call   <puts@plt>
  lea    D153(%rip),%rdi
  call   <puts@plt>
  lea    D15(%rip),%r13
  lea    D193(%rip),%r12
  lea    D360(%rip),%rbp
  lea    D8(%rip),%rbx
  jmp    L75
L32:
  cmp    $0x4,%eax
  jne    L178
  movl   $0x0,0x24(%rsp)
  lea    D440(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    0x24(%rsp),%rsi
  lea    D270(%rip),%rdi
  call   <scanf@plt>
  mov    0x24(%rsp),%edx
  test   %edx,%edx
  jle    L105
  mov    $0x0,%eax
  movss  D452(%rip),%xmm0
L126:
  movss  0x8(%rsp),%xmm1
  addss  %xmm0,%xmm1
  movss  %xmm1,0x8(%rsp)
  movss  0x1c(%rsp),%xmm2
  addss  %xmm0,%xmm2
  movss  %xmm2,0x1c(%rsp)
  add    $0x1,%eax
  cmp    %edx,%eax
  jne    L126
L105:
  pxor   %xmm0,%xmm0
  cvtss2sd 0x8(%rsp),%xmm0
  lea    D98(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  jmp    L75
L217:
  movl   $0x0,0x24(%rsp)
  lea    D140(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    0x24(%rsp),%rsi
  lea    D270(%rip),%rdi
  call   <scanf@plt>
  mov    0x24(%rsp),%edx
  test   %edx,%edx
  jle    L61
  mov    $0x0,%eax
  movss  D393(%rip),%xmm0
L143:
  movss  0x8(%rsp),%xmm2
  addss  %xmm0,%xmm2
  movss  %xmm2,0x8(%rsp)
  movss  0x10(%rsp),%xmm3
  addss  %xmm0,%xmm3
  movss  %xmm3,0x10(%rsp)
  add    $0x1,%eax
  cmp    %edx,%eax
  jne    L143
L61:
  pxor   %xmm0,%xmm0
  cvtss2sd 0x8(%rsp),%xmm0
  lea    D98(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  jmp    L75
L173:
  movl   $0x0,0x24(%rsp)
  lea    D369(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    0x24(%rsp),%rsi
  lea    D270(%rip),%rdi
  call   <scanf@plt>
  mov    0x24(%rsp),%edx
  test   %edx,%edx
  jle    L118
  mov    $0x0,%eax
  movss  D76(%rip),%xmm0
L205:
  movss  0x8(%rsp),%xmm6
  addss  %xmm0,%xmm6
  movss  %xmm6,0x8(%rsp)
  movss  0x18(%rsp),%xmm7
  addss  %xmm0,%xmm7
  movss  %xmm7,0x18(%rsp)
  add    $0x1,%eax
  cmp    %edx,%eax
  jne    L205
L118:
  pxor   %xmm0,%xmm0
  cvtss2sd 0x8(%rsp),%xmm0
  lea    D98(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  jmp    L75
L178:
  lea    D383(%rip),%rdi
  call   <puts@plt>
  lea    D281(%rip),%rdi
  call   <puts@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x10(%rsp),%xmm0
  lea    D404(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x14(%rsp),%xmm0
  lea    D401(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x18(%rsp),%xmm0
  lea    D225(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x1c(%rsp),%xmm0
  lea    D278(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  pxor   %xmm5,%xmm5
  cvtss2sd 0x8(%rsp),%xmm5
  movq   %xmm5,%rbx
  movapd %xmm5,%xmm0
  lea    D121(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movss  0x8(%rsp),%xmm4
  comiss D77(%rip),%xmm4
  ja     L190
L53:
  pxor   %xmm3,%xmm3
  cvtss2sd 0x8(%rsp),%xmm3
  movsd  %xmm3,0x8(%rsp)
  lea    D200(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D424(%rip),%rdi
  call   <puts@plt>
  movsd  0x8(%rsp),%xmm3
  movapd %xmm3,%xmm0
  mulsd  D279(%rip),%xmm0
  addsd  %xmm3,%xmm0
  addsd  D336(%rip),%xmm0
  cvtsd2ss %xmm0,%xmm0
  cvtss2sd %xmm0,%xmm0
  lea    D213(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  lea    D383(%rip),%rdi
  call   <puts@plt>
  mov    0x28(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L4
  mov    $0x0,%eax
  add    $0x38,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
L162:
  lea    D60(%rip),%rdi
  call   <puts@plt>
L75:
  mov    %r13,%rdi
  call   <puts@plt>
  mov    %r12,%rdi
  call   <puts@plt>
  mov    %rbp,%rdi
  call   <puts@plt>
  mov    %rbx,%rdi
  call   <puts@plt>
  lea    D152(%rip),%rdi
  call   <puts@plt>
  lea    D85(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    0x20(%rsp),%rsi
  lea    D270(%rip),%rdi
  call   <scanf@plt>
  mov    0x20(%rsp),%eax
  lea    -0x1(%rax),%edx
  cmp    $0x4,%edx
  ja     L162
  cmp    $0x3,%eax
  je     L173
  jg     L32
  cmp    $0x1,%eax
  je     L217
  cmp    $0x2,%eax
  jne    L178
  movl   $0x0,0x24(%rsp)
  lea    D428(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    0x24(%rsp),%rsi
  lea    D270(%rip),%rdi
  call   <scanf@plt>
  mov    0x24(%rsp),%edx
  test   %edx,%edx
  jle    L16
  mov    $0x0,%eax
  movss  D288(%rip),%xmm0
L33:
  movss  0x8(%rsp),%xmm4
  addss  %xmm0,%xmm4
  movss  %xmm4,0x8(%rsp)
  movss  0x14(%rsp),%xmm5
  addss  %xmm0,%xmm5
  movss  %xmm5,0x14(%rsp)
  add    $0x1,%eax
  cmp    %edx,%eax
  jne    L33
L16:
  pxor   %xmm0,%xmm0
  cvtss2sd 0x8(%rsp),%xmm0
  lea    D98(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  jmp    L75
L190:
  lea    D451(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movq   %rbx,%xmm1
  mulsd  D325(%rip),%xmm1
  movq   %rbx,%xmm0
  subsd  %xmm1,%xmm0
  pxor   %xmm6,%xmm6
  cvtsd2ss %xmm0,%xmm6
  movss  %xmm6,0x8(%rsp)
  jmp    L53
L4:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: tag: D181
type_infered: string
name: extract_symbolic_data
arguments: tag: D123
type_infered: string
name: extract_symbolic_data
arguments: tag: D179
type_infered: string
name: extract_symbolic_data
arguments: tag: D4
type_infered: string
name: extract_symbolic_data
arguments: tag: D285
type_infered: string
name: extract_symbolic_data
arguments: tag: D153
type_infered: string
name: extract_symbolic_data
arguments: tag: D15
type_infered: string
name: extract_symbolic_data
arguments: tag: D193
type_infered: string
name: extract_symbolic_data
arguments: tag: D360
type_infered: string
name: extract_symbolic_data
arguments: tag: D8
type_infered: string
name: extract_symbolic_data
arguments: tag: D440
type_infered: string
name: extract_symbolic_data
arguments: tag: D270
type_infered: string
name: extract_symbolic_data
arguments: tag: D452
type_infered: f32
name: extract_symbolic_data
arguments: tag: D98
type_infered: string
name: extract_symbolic_data
arguments: tag: D140
type_infered: string
name: extract_symbolic_data
arguments: tag: D393
type_infered: f32
name: extract_symbolic_data
arguments: tag: D369
type_infered: string
name: extract_symbolic_data
arguments: tag: D76
type_infered: f32
name: extract_symbolic_data
arguments: tag: D383
type_infered: string
name: extract_symbolic_data
arguments: tag: D281
type_infered: string
name: extract_symbolic_data
arguments: tag: D404
type_infered: string
name: extract_symbolic_data
arguments: tag: D401
type_infered: string
name: extract_symbolic_data
arguments: tag: D225
type_infered: string
name: extract_symbolic_data
arguments: tag: D278
type_infered: string
name: extract_symbolic_data
arguments: tag: D121
type_infered: string
name: extract_symbolic_data
arguments: tag: D77
type_infered: byte[4]
name: extract_symbolic_data
arguments: tag: D200
type_infered: string
name: extract_symbolic_data
arguments: tag: D424
type_infered: string
name: extract_symbolic_data
arguments: tag: D279
type_infered: byte[8]
name: extract_symbolic_data
arguments: tag: D336
type_infered: f64
name: extract_symbolic_data
arguments: tag: D213
type_infered: string
name: extract_symbolic_data
arguments: tag: D60
type_infered: string
name: extract_symbolic_data
arguments: tag: D152
type_infered: string
name: extract_symbolic_data
arguments: tag: D85
type_infered: string
name: extract_symbolic_data
arguments: tag: D428
type_infered: string
name: extract_symbolic_data
arguments: tag: D288
type_infered: f32
name: extract_symbolic_data
arguments: tag: D451
type_infered: string
name: extract_symbolic_data
arguments: tag: D325
type_infered: byte[8]

tool: D181: 
CSCE 1030.001

tool: D123: Homework #3

tool: D179: Alan Hodgson

tool: D4: ajh0213

tool: D285: alanhodgson@my.unt.edu


tool: D153: Welcome to the online office store!!


tool: D15: 1:	Office Chairs	$59.99 each

tool: D193: 2:	File Cabinets	$29.99 each

tool: D360: 3:	Desks        	$99.99 each

tool: D8: 4:	Bookcases    	$44.99 each

tool: D440: Enter the number of Bookcases to purchase: 

tool: D270: %d

tool: D452: 44.99

tool: D98: Current subtotal: %.02f



tool: D140: Enter the number of Office Chairs to purchase: 

tool: D393: 59.99

tool: D369: Enter the number of Desks to purchase: 

tool: D76: 99.99

tool: D383: 
**************************************

tool: D281: 
Thank you for purchasing from the online store!!

tool: D404: 
Subtotal for Office Chairs: %.02f

tool: D401: 
Subtotal for File Cabinets: %.02f

tool: D225: 
Subtotal for Desks: %.02f

tool: D278: 
Subtotal for Bookcases: %.02f


tool: D121: 
Grand Subtotal is: $%.02f


tool: {"D77": [0x00,0x00,0xfa,0x43]}

tool: D200: Tax rate: + 8.25%%


tool: D424: Shipping cost: + $25

tool: {"D279": [0x1f,0x85,0xeb,0x51,0xb8,0x1e,0xb5,0x3f]}

tool: D336: 25

tool: D213: 
GRAND TOTAL(tax and shipping included): $%.02f



tool: D60: 
Invalid Input! Returning to the menu


tool: D152: 5:	Checkout

tool: D85: Enter the number of the product you wish to purchase: 

tool: D428: Enter the number of File Cabinets to purchase: 

tool: D288: 29.99

tool: D451: Discount Added: - 10%%


tool: {"D325": [0x9a,0x99,0x99,0x99,0x99,0x99,0xb9,0x3f]}

assistant: ```c
int main(void) {
  float officeChair, fileCab, desk, bookcase, subtotal, total;
  float subtot1, subtot2, subtot3, subtot4;
  int orderInput;
  printf("\nCSCE 1030.001\n");
  printf("Homework #3\n");
  printf("Alan Hodgson\n");
  printf("ajh0213\n");
  printf("alanhodgson@my.unt.edu\n\n");
  officeChair = 59.99;
  fileCab = 29.99;
  desk = 99.99;
  bookcase = 44.99;
  printf("Welcome to the online office store!!\n\n");
menu:
  printf("1:\tOffice Chairs\t$59.99 each\n");
  printf("2:\tFile Cabinets\t$29.99 each\n");
  printf("3:\tDesks        \t$99.99 each\n");
  printf("4:\tBookcases    \t$44.99 each\n");
  printf("5:\tCheckout\n");
  printf("Enter the number of the product you wish to purchase: ");
  scanf("%d", &orderInput);
  if (orderInput > 0 && orderInput < 6) {
    switch (orderInput) {
    case 1: {
      int p = 0, i;
      printf("Enter the number of Office Chairs to purchase: ");
      scanf("%d", &p);
      for (i = 0; i < p; i++) {
        subtotal += officeChair;
        subtot1 += officeChair;
      }
      printf("Current subtotal: %.02f\n\n", subtotal);
      goto menu;
    }
    case 2: {
      int p = 0, i;
      printf("Enter the number of File Cabinets to purchase: ");
      scanf("%d", &p);
      for (i = 0; i < p; i++) {
        subtotal += fileCab;
        subtot2 += fileCab;
      }
      printf("Current subtotal: %.02f\n\n", subtotal);
      goto menu;
    }
    case 3: {
      int p = 0, i;
      printf("Enter the number of Desks to purchase: ");
      scanf("%d", &p);
      for (i = 0; i < p; i++) {
        subtotal += desk;
        subtot3 += desk;
      }
      printf("Current subtotal: %.02f\n\n", subtotal);
      goto menu;
    }
    case 4: {
      int p = 0, i;
      printf("Enter the number of Bookcases to purchase: ");
      scanf("%d", &p);
      for (i = 0; i < p; i++) {
        subtotal += bookcase;
        subtot4 += bookcase;
      }
      printf("Current subtotal: %.02f\n\n", subtotal);
      goto menu;
    }
    default: {
      printf("\n**************************************\n");
      break;
    }
    }
  } else {
    printf("\nInvalid Input! Returning to the menu\n\n");
    goto menu;
  }
  printf("\nThank you for purchasing from the online store!!\n");
  printf("\nSubtotal for Office Chairs: %.02f", subtot1);
  printf("\nSubtotal for File Cabinets: %.02f", subtot2);
  printf("\nSubtotal for Desks: %.02f", subtot3);
  printf("\nSubtotal for Bookcases: %.02f\n", subtot4);
  printf("\nGrand Subtotal is: $%.02f\n", subtotal);
  if (subtotal > 500) {
    printf("Discount Added: - 10%%\n");
    subtotal -= (subtotal * .10);
  } else {
    subtotal = subtotal;
  }
  total = subtotal + (subtotal * .0825) + 25.00;
  printf("Tax rate: + 8.25%%\n");
  printf("Shipping cost: + $25\n");
  printf("\nGRAND TOTAL(tax and shipping included): $%.02f\n\n", total);
  printf("\n**************************************\n");
  return 0;
}
```