user: Please show me the C implementation that matches the assembly code listed below:

```asm
<main>:
  endbr64
  push   %r12
  lea    D118(%rip),%rdi
  lea    D26(%rip),%r12
  push   %rbp
  lea    D134(%rip),%rbp
  sub    $0x38,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x28(%rsp)
  xor    %eax,%eax
  call   <puts@plt>
  lea    0x14(%rsp),%rsi
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <scanf@plt>
  lea    D150(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    0x1c(%rsp),%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <scanf@plt>
  lea    D146(%rip),%rdi
  call   <puts@plt>
  lea    0x18(%rsp),%rsi
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <scanf@plt>
  lea    D114(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    0x20(%rsp),%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <scanf@plt>
  lea    D98(%rip),%rdi
  call   <puts@plt>
  lea    0x24(%rsp),%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <scanf@plt>
  pxor   %xmm0,%xmm0
  xor    %eax,%eax
  movss  0x1c(%rsp),%xmm2
  cvtsi2ssl 0x14(%rsp),%xmm0
  movss  0x20(%rsp),%xmm3
  lea    D6(%rip),%rsi
  lea    D52(%rip),%rdi
  mulss  %xmm0,%xmm2
  pxor   %xmm0,%xmm0
  cvtsi2ssl 0x18(%rsp),%xmm0
  mulss  %xmm0,%xmm3
  movaps %xmm2,%xmm0
  movss  %xmm2,0x4(%rsp)
  addss  %xmm3,%xmm0
  mulss  0x24(%rsp),%xmm0
  movss  %xmm3,0x8(%rsp)
  movaps %xmm0,%xmm4
  divss  D135(%rip),%xmm4
  movss  %xmm4,0xc(%rsp)
  call   <printf@plt>
  mov    $0x234c36,%esi
  lea    D42(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    0x14(%rsp),%esi
  lea    D24(%rip),%rdi
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  mov    $0x2,%eax
  cvtss2sd 0x1c(%rsp),%xmm0
  cvtss2sd 0x4(%rsp),%xmm1
  call   <printf@plt>
  mov    0x18(%rsp),%esi
  lea    D58(%rip),%rdi
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  mov    $0x2,%eax
  cvtss2sd 0x8(%rsp),%xmm1
  cvtss2sd 0x20(%rsp),%xmm0
  call   <printf@plt>
  pxor   %xmm0,%xmm0
  lea    D82(%rip),%rdi
  mov    $0x1,%eax
  cvtss2sd 0x24(%rsp),%xmm0
  call   <printf@plt>
  lea    D30(%rip),%rdi
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  cvtss2sd 0xc(%rsp),%xmm0
  call   <printf@plt>
  mov    $0x1,%eax
  movss  0x4(%rsp),%xmm0
  addss  0xc(%rsp),%xmm0
  addss  0x8(%rsp),%xmm0
  lea    D18(%rip),%rdi
  cvtss2sd %xmm0,%xmm0
  call   <printf@plt>
  mov    0x28(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1
  add    $0x38,%rsp
  xor    %eax,%eax
  pop    %rbp
  pop    %r12
  ret
L1:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: read_data
arguments: data_label: D118
type_guessed: string
name: read_data
arguments: data_label: D26
type_guessed: string
name: read_data
arguments: data_label: D134
type_guessed: string
name: read_data
arguments: data_label: D150
type_guessed: string
name: read_data
arguments: data_label: D146
type_guessed: string
name: read_data
arguments: data_label: D114
type_guessed: string
name: read_data
arguments: data_label: D98
type_guessed: string
name: read_data
arguments: data_label: D6
type_guessed: string
name: read_data
arguments: data_label: D52
type_guessed: string
name: read_data
arguments: data_label: D135
type_guessed: f32
name: read_data
arguments: data_label: D42
type_guessed: string
name: read_data
arguments: data_label: D24
type_guessed: string
name: read_data
arguments: data_label: D58
type_guessed: string
name: read_data
arguments: data_label: D82
type_guessed: string
name: read_data
arguments: data_label: D30
type_guessed: string
name: read_data
arguments: data_label: D18
type_guessed: string

tool: D118: What is the quantity of item 1?

tool: D26:  %d

tool: D134:  %f

tool: D150: What is the price of item 1?
$

tool: D146: What is the quantity of item 2?

tool: D114: What is the price of item 2?
$

tool: D98: What is the tax rate for item1?(as percentage)

tool: D6: Tru Inc.

tool: D52: 
	%s


tool: D135: 100

tool: D42: Invoice #%d



tool: D24: Item1: %d @ $%.2f per item	$%.2f


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


tool: D82: Tax rate:	%.2f%%


tool: D30: Tax amount:	%.2f


tool: D18: Total cost:	%.2f


assistant: ```c
int main() {
  int item1_quantity, item2_quantity;
  float item1_price, item2_price;
  float tax_rate;
  printf("What is the quantity of item 1?\n");
  scanf(" %d", &item1_quantity);
  printf("What is the price of item 1?\n$");
  scanf(" %f", &item1_price);
  printf("What is the quantity of item 2?\n");
  scanf(" %d", &item2_quantity);
  printf("What is the price of item 2?\n$");
  scanf(" %f", &item2_price);
  printf("What is the tax rate for item1?(as percentage)\n");
  scanf(" %f", &tax_rate);
  float item1_total = item1_quantity * item1_price;
  float item2_total = item2_quantity * item2_price;
  float tax_total = (item1_total + item2_total) * tax_rate / 100;
  float total_cost = tax_total + item1_total + item2_total;
  printf("\n\t%s\n", "Tru Inc.");
  printf("Invoice #%d\n\n", 2313270);
  printf("Item1: %d @ $%.2f per item\t$%.2f\n", item1_quantity, item1_price, item1_total);
  printf("Item2: %d @ $%.2f per item\t$%.2f\n", item2_quantity, item2_price, item2_total);
  printf("Tax rate:\t%.2f%%\n", tax_rate);
  printf("Tax amount:\t%.2f\n", tax_total);
  printf("Total cost:\t%.2f\n", total_cost);
  return 0;
}
```