user: Converte this assembly snippet into its equivalent C code:

```asm
<convert_int>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x18(%rbp)
  mov    %rsi,-0x20(%rbp)
  mov    -0x18(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  sub    $0x30,%eax
  mov    %eax,-0xc(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  sub    $0x30,%eax
  mov    %eax,-0x8(%rbp)
  cmpl   $0x9,-0xc(%rbp)
  jg     L70
  cmpl   $0x0,-0xc(%rbp)
  js     L70
  cmpl   $0x9,-0x8(%rbp)
  jg     L70
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  mov    %eax,%edx
  mov    -0x8(%rbp),%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  sub    $0x30,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  sub    $0x30,%eax
  mov    %eax,-0x10(%rbp)
  cmpl   $0x9,-0x4(%rbp)
  jg     L148
  cmpl   $0x0,-0x4(%rbp)
  js     L148
  cmpl   $0x9,-0x10(%rbp)
  jg     L148
  mov    -0x4(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  mov    %eax,%ecx
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  mov    -0x10(%rbp),%edx
  add    %ecx,%edx
  mov    %edx,(%rax)
  jmp    L159
L148:
  cmpl   $0x9,-0x4(%rbp)
  jg     L46
  cmpl   $0x0,-0x4(%rbp)
  js     L46
  cmpl   $0xa,-0x10(%rbp)
  jle    L46
  mov    -0x20(%rbp),%rax
  lea    0x4(%rax),%rdx
  mov    -0x4(%rbp),%eax
  mov    %eax,(%rdx)
  jmp    L159
L46:
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0xffffffff,%edi
  call   <exit@plt>
  jmp    L96
L159:
  jmp    L96
L70:
  cmpl   $0x9,-0xc(%rbp)
  jg     L129
  cmpl   $0x0,-0xc(%rbp)
  js     L129
  cmpl   $0xa,-0x8(%rbp)
  jle    L129
  mov    -0x20(%rbp),%rax
  mov    -0xc(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  sub    $0x30,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  test   %al,%al
  jne    L43
  movl   $0xffffffff,-0x10(%rbp)
  jmp    L216
L43:
  mov    -0x18(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  sub    $0x30,%eax
  mov    %eax,-0x10(%rbp)
L216:
  cmpl   $0x9,-0x4(%rbp)
  jg     L26
  cmpl   $0x0,-0x4(%rbp)
  js     L26
  cmpl   $0xffffffff,-0x10(%rbp)
  je     L26
  mov    -0x4(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  mov    %eax,%ecx
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  mov    -0x10(%rbp),%edx
  add    %ecx,%edx
  mov    %edx,(%rax)
  jmp    L71
L26:
  cmpl   $0x9,-0x4(%rbp)
  jg     L99
  cmpl   $0x0,-0x4(%rbp)
  js     L99
  cmpl   $0xffffffff,-0x10(%rbp)
  jne    L99
  mov    -0x20(%rbp),%rax
  lea    0x4(%rax),%rdx
  mov    -0x4(%rbp),%eax
  mov    %eax,(%rdx)
  jmp    L71
L99:
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0xffffffff,%edi
  call   <exit@plt>
  jmp    L96
L71:
  jmp    L96
L129:
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
L96:
  nop
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D0
type_guessed: string

tool: D0: Error reading options, please enter integer for (size ,start, end)


assistant: ```c
void convert_int(char *tmp, int *tmp1) {
  int n, m, n1, m1;
  n = (int)tmp[0] - 48;
  m = (int)tmp[1] - 48;
  if ((n < 10) && (0 <= n) && (m < 10)) {
    tmp1[0] = (10 * n) + m;
    n1 = (int)tmp[3] - 48;
    m1 = (int)tmp[4] - 48;
    if ((n1 < 10) && (0 <= n1) && (m1 < 10))
      tmp1[1] = (10 * n1) + m1;
    else if ((n1 < 10) && (0 <= n1) && (m1 > 10))
      tmp1[1] = n1;
    else {
      printf("Error reading options, please enter integer for (size ,start, end)\n");
      exit(-1);
    }
  } else if ((n < 10) && (0 <= n) && (m > 10)) {
    tmp1[0] = n;
    n1 = (int)tmp[2] - 48;
    if (tmp[3] == 0)
      m1 = -1;
    else
      m1 = (int)tmp[3] - 48;
    if ((n1 < 10) && (0 <= n1) && (m1 != -1))
      tmp1[1] = (10 * n1) + m1;
    else if ((n1 < 10) && (0 <= n1) && (m1 == -1))
      tmp1[1] = n1;
    else {
      printf("Error reading options, please enter integer for (size ,start, end)\n");
      exit(-1);
    }
  } else {
    printf("Error reading options, please enter integer for (size ,start, end)\n");
  }
}
```