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

```asm
<graphMain>:
  endbr64
  push   %r15
  xor    %r15d,%r15d
  push   %r14
  mov    $0x3f800000,%r14d
  push   %r13
  movd   %xmm1,%r13d
  push   %r12
  movd   %xmm0,%r12d
  push   %rbp
  lea    D68(%rip),%rbp
  push   %rbx
  sub    $0x28,%rsp
  movss  %xmm2,0xc(%rsp)
  lea    0x17(%rsp),%rbx
  mov    %fs:0x28,%rax
  mov    %rax,0x18(%rsp)
  xor    %eax,%eax
  movb   $0x0,0x17(%rsp)
  movl   $0x3f800000,(%rsp)
  movl   $0x0,0x4(%rsp)
  movl   $0x0,0x8(%rsp)
  jmp    L33
  nopl   0x0(%rax,%rax,1)
L121:
  cmp    $0x2d,%al
  je     L3
  cmp    $0xf,%al
  jne    L34
  movss  D66(%rip),%xmm0
  mulss  (%rsp),%xmm0
  addss  0x4(%rsp),%xmm0
  movss  %xmm0,0x4(%rsp)
L134:
  movss  D47(%rip),%xmm1
  mulss  (%rsp),%xmm1
  xor    %r14d,%r14d
  movd   %r13d,%xmm5
  movss  0x8(%rsp),%xmm7
  movss  0x4(%rsp),%xmm2
  movd   %r12d,%xmm4
  movss  0xc(%rsp),%xmm6
  movaps %xmm7,%xmm0
  movaps %xmm2,%xmm3
  subss  %xmm1,%xmm0
  addss  %xmm1,%xmm3
  subss  %xmm1,%xmm2
  addss  %xmm7,%xmm1
  call   <plotWrapper@plt>
L11:
  movd   %r15d,%xmm7
  pxor   %xmm3,%xmm3
  ucomiss %xmm3,%xmm7
  jp     L81
  jne    L81
L33:
  mov    %rbx,%rdi
  call   <sysGetChar@plt>
  movzbl 0x17(%rsp),%eax
  cmp    $0xa,%al
  je     L141
L72:
  cmp    $0x2b,%al
  jne    L121
  movss  (%rsp),%xmm6
  mov    $0x3f800000,%r14d
  divss  D49(%rip),%xmm6
  movss  %xmm6,(%rsp)
L105:
  movd   %r14d,%xmm4
  pxor   %xmm5,%xmm5
  ucomiss %xmm5,%xmm4
  jp     L134
  je     L11
  jmp    L134
  cs nopw 0x0(%rax,%rax,1)
L34:
  cmp    $0xe,%al
  jne    L122
  movss  (%rsp),%xmm0
  mulss  D66(%rip),%xmm0
  movss  0x4(%rsp),%xmm4
  subss  %xmm0,%xmm4
  movss  %xmm4,0x4(%rsp)
  jmp    L134
  cs nopw 0x0(%rax,%rax,1)
L3:
  movss  D49(%rip),%xmm6
  mulss  (%rsp),%xmm6
  movss  %xmm6,(%rsp)
  jmp    L134
L122:
  cmp    $0xd,%al
  jne    L155
  movss  (%rsp),%xmm0
  mulss  D66(%rip),%xmm0
  movss  0x8(%rsp),%xmm5
  subss  %xmm0,%xmm5
  movss  %xmm5,0x8(%rsp)
  jmp    L134
  nopl   (%rax)
L141:
  xor    %eax,%eax
  mov    $0x3f800000,%r15d
  call   <sysClear@plt>
  mov    $0xff,%ecx
  xor    %esi,%esi
  mov    %rbp,%rdi
  mov    $0xff,%edx
  call   <sysPrintString@plt>
  movzbl 0x17(%rsp),%eax
  jmp    L72
  nopl   0x0(%rax,%rax,1)
L81:
  mov    0x18(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L149
  add    $0x28,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L155:
  cmp    $0xc,%al
  jne    L105
  movss  (%rsp),%xmm0
  mulss  D66(%rip),%xmm0
  addss  0x8(%rsp),%xmm0
  movss  %xmm0,0x8(%rsp)
  jmp    L134
L149:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: tag: D68
data_type: string
name: extract_symbolic_data
arguments: tag: D66
data_type: byte[4]
name: extract_symbolic_data
arguments: tag: D47
data_type: f32
name: extract_symbolic_data
arguments: tag: D49
data_type: f32

tool: D68: Exited plot Successfully


tool: {"D66": [0x00,0x00,0xa0,0x40]}

tool: D47: 10

tool: D49: 1.5

assistant: ```c
int graphMain(float a, float b, float c) {
  float x_r = 10;
  float x_l = -10;
  float y_d = x_l;
  float y_u = x_r;
  float x_offset = 0, y_offset = 0, ready_to_exit = 0, draw = 1;
  float factor = 1;
  char ch = 0;
  while (!ready_to_exit) {
    sysGetChar(&ch);
    if (ch == '\n') {
      sysClear();
      sysPrintString("Exited plot Successfully\n", 0, 255, 255);
      ready_to_exit = 1;
    }
    if (ch == '+') {
      factor /= 1.5;
      draw = 1;
    }
    if (ch == '-') {
      factor *= 1.5;
      draw = 1;
    }
    if (ch == 15) {
      y_offset += (5 * factor);
      draw = 1;
    }
    if (ch == 14) {
      y_offset -= (5 * factor);
      draw = 1;
    }
    if (ch == 13) {
      x_offset -= (5 * factor);
      draw = 1;
    }
    if (ch == 12) {
      x_offset += (5 * factor);
      draw = 1;
    }
    if (draw) {
      draw = 0;
      plotWrapper((x_l * factor) + x_offset, (x_r * factor) + x_offset, (y_d * factor) + y_offset, (y_u * factor) + y_offset, a, b, c);
    }
  }
  return 0;
}
```