user: Translate the below assembly code into C programming language:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D81(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x28(%rbp),%rax
  mov    %rax,%rsi
  lea    D167(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    D151(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x24(%rbp),%rax
  mov    %rax,%rsi
  lea    D141(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    D111(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x20(%rbp),%rax
  mov    %rax,%rsi
  lea    D167(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    D181(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1c(%rbp),%rax
  mov    %rax,%rsi
  lea    D141(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    D30(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x18(%rbp),%rax
  mov    %rax,%rsi
  lea    D141(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  mov    -0x28(%rbp),%eax
  pxor   %xmm1,%xmm1
  cvtsi2ss %eax,%xmm1
  movss  -0x24(%rbp),%xmm0
  mulss  %xmm0,%xmm1
  mov    -0x20(%rbp),%eax
  pxor   %xmm2,%xmm2
  cvtsi2ss %eax,%xmm2
  movss  -0x1c(%rbp),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  -0x18(%rbp),%xmm0
  cvtss2sd %xmm0,%xmm0
  movsd  D158(%rip),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  cvtss2sd -0x14(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x14(%rbp),%xmm0
  addss  -0x10(%rbp),%xmm0
  movss  %xmm0,-0xc(%rbp)
  lea    D120(%rip),%rax
  mov    %rax,%rsi
  lea    D127(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0xa,%esi
  lea    D183(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x28(%rbp),%eax
  pxor   %xmm1,%xmm1
  cvtsi2ss %eax,%xmm1
  movss  -0x24(%rbp),%xmm0
  mulss  %xmm1,%xmm0
  cvtss2sd %xmm0,%xmm0
  movss  -0x24(%rbp),%xmm1
  pxor   %xmm3,%xmm3
  cvtss2sd %xmm1,%xmm3
  movq   %xmm3,%rdx
  mov    -0x28(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D58(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    -0x20(%rbp),%eax
  pxor   %xmm1,%xmm1
  cvtsi2ss %eax,%xmm1
  movss  -0x1c(%rbp),%xmm0
  mulss  %xmm1,%xmm0
  cvtss2sd %xmm0,%xmm0
  movss  -0x1c(%rbp),%xmm1
  pxor   %xmm4,%xmm4
  cvtss2sd %xmm1,%xmm4
  movq   %xmm4,%rdx
  mov    -0x20(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D172(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movss  -0x18(%rbp),%xmm0
  pxor   %xmm5,%xmm5
  cvtss2sd %xmm0,%xmm5
  movq   %xmm5,%rax
  movq   %rax,%xmm0
  lea    D18(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  pxor   %xmm6,%xmm6
  cvtss2sd -0x10(%rbp),%xmm6
  movq   %xmm6,%rax
  movq   %rax,%xmm0
  lea    D87(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  pxor   %xmm7,%xmm7
  cvtss2sd -0xc(%rbp),%xmm7
  movq   %xmm7,%rax
  movq   %rax,%xmm0
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L9
  call   <__stack_chk_fail@plt>
L9:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D81
type_infered: string
name: disassemble_data
arguments: data_tag: D167
type_infered: string
name: disassemble_data
arguments: data_tag: D151
type_infered: string
name: disassemble_data
arguments: data_tag: D141
type_infered: string
name: disassemble_data
arguments: data_tag: D111
type_infered: string
name: disassemble_data
arguments: data_tag: D181
type_infered: string
name: disassemble_data
arguments: data_tag: D30
type_infered: string
name: disassemble_data
arguments: data_tag: D158
type_infered: f64
name: disassemble_data
arguments: data_tag: D120
type_infered: string
name: disassemble_data
arguments: data_tag: D127
type_infered: string
name: disassemble_data
arguments: data_tag: D183
type_infered: string
name: disassemble_data
arguments: data_tag: D58
type_infered: string
name: disassemble_data
arguments: data_tag: D172
type_infered: string
name: disassemble_data
arguments: data_tag: D18
type_infered: string
name: disassemble_data
arguments: data_tag: D87
type_infered: string
name: disassemble_data
arguments: data_tag: D61
type_infered: string

tool: D81: what is the quantity of item_1?

tool: D167: %d

tool: D151: what is the price for item_1?

tool: D141: %f

tool: D111: what is the quantity of item_2?

tool: D181: what is the price of item_2?

tool: D30: what is the tax rate (in percent)?

tool: D158: 100

tool: D120: Hassan

tool: D127: 		 Company_Name is %s


tool: D183: invoice # %d


tool: D58: item 1 :	 %d @ $%.2f per item		$%.2f


tool: D172: item 2 :	 %d @ $%.2f per item		$%.2f


tool: D18: tax rate : 					%.2f


tool: D87: tax amount: 					$%.2f


tool: D61: total cost: 					$%.2f


assistant: ```c
int main() {
  int item_1;
  float price_1;
  int item_2;
  float price_2;
  float pretax_cost;
  float tax_dollars;
  float total_cost;
  float tax_rate;
  printf("what is the quantity of item_1?");
  scanf("%d", &item_1);
  printf("what is the price for item_1?");
  scanf("%f", &price_1);
  printf("what is the quantity of item_2?");
  scanf("%d", &item_2);
  printf("what is the price of item_2?");
  scanf("%f", &price_2);
  printf("what is the tax rate (in percent)?");
  scanf("%f", &tax_rate);
  pretax_cost = (item_1 * price_1) + (item_2 * price_2);
  tax_dollars = (tax_rate / 100.0) * pretax_cost;
  total_cost = pretax_cost + tax_dollars;
  printf("\t\t Company_Name is %s\n", "Hassan");
  printf("invoice # %d\n", 10);
  printf("item 1 :\t %d @ $%.2f per item\t\t$%.2f\n", item_1, price_1, item_1 * price_1);
  printf("item 2 :\t %d @ $%.2f per item\t\t$%.2f\n", item_2, price_2, item_2 * price_2);
  printf("tax rate : \t\t\t\t\t%.2f\n", tax_rate);
  printf("tax amount: \t\t\t\t\t$%.2f\n", tax_dollars);
  printf("total cost: \t\t\t\t\t$%.2f\n", total_cost);
  return 0;
}
```