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

```asm
<my_atoi>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x18(%rbp)
  movl   $0x0,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  sub    $0x30,%eax
  cmp    $0x9,%eax
  ja     L122
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D57(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D57(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  movl   $0x0,-0x4(%rbp)
  jmp    L122
  movl   $0x64,-0x4(%rbp)
  jmp    L122
  movl   $0xc8,-0x4(%rbp)
  jmp    L122
  movl   $0x12c,-0x4(%rbp)
  jmp    L122
  movl   $0x190,-0x4(%rbp)
  jmp    L122
  movl   $0x1f4,-0x4(%rbp)
  jmp    L122
  movl   $0x258,-0x4(%rbp)
  jmp    L122
  movl   $0x2bc,-0x4(%rbp)
  jmp    L122
  movl   $0x320,-0x4(%rbp)
  jmp    L122
  movl   $0x384,-0x4(%rbp)
  nop
L122:
  mov    -0x18(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  sub    $0x30,%eax
  cmp    $0x9,%eax
  ja     L169
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D29(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D29(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  addl   $0xa,-0x4(%rbp)
  jmp    L169
  addl   $0x14,-0x4(%rbp)
  jmp    L169
  addl   $0x1e,-0x4(%rbp)
  jmp    L169
  addl   $0x28,-0x4(%rbp)
  jmp    L169
  addl   $0x32,-0x4(%rbp)
  jmp    L169
  addl   $0x3c,-0x4(%rbp)
  jmp    L169
  addl   $0x46,-0x4(%rbp)
  jmp    L169
  addl   $0x50,-0x4(%rbp)
  jmp    L169
  addl   $0x5a,-0x4(%rbp)
  jmp    L169
  nop
L169:
  mov    -0x18(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  sub    $0x30,%eax
  cmp    $0x9,%eax
  ja     L132
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D52(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D52(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  addl   $0x1,-0x4(%rbp)
  jmp    L132
  addl   $0x2,-0x4(%rbp)
  jmp    L132
  addl   $0x3,-0x4(%rbp)
  jmp    L132
  addl   $0x4,-0x4(%rbp)
  jmp    L132
  addl   $0x5,-0x4(%rbp)
  jmp    L132
  addl   $0x6,-0x4(%rbp)
  jmp    L132
  addl   $0x7,-0x4(%rbp)
  jmp    L132
  addl   $0x8,-0x4(%rbp)
  jmp    L132
  addl   $0x9,-0x4(%rbp)
  jmp    L132
  nop
L132:
  mov    -0x4(%rbp),%eax
  pop    %rbp
  ret
```

assistant: ```c
int my_atoi(char *t) {
  int r = 0;
  switch (t[0]) {
  case '0':
    r = 0;
    break;
  case '1':
    r = 100;
    break;
  case '2':
    r = 200;
    break;
  case '3':
    r = 300;
    break;
  case '4':
    r = 400;
    break;
  case '5':
    r = 500;
    break;
  case '6':
    r = 600;
    break;
  case '7':
    r = 700;
    break;
  case '8':
    r = 800;
    break;
  case '9':
    r = 900;
    break;
  }
  switch (t[1]) {
  case '0':
    r += 0;
    break;
  case '1':
    r += 10;
    break;
  case '2':
    r += 20;
    break;
  case '3':
    r += 30;
    break;
  case '4':
    r += 40;
    break;
  case '5':
    r += 50;
    break;
  case '6':
    r += 60;
    break;
  case '7':
    r += 70;
    break;
  case '8':
    r += 80;
    break;
  case '9':
    r += 90;
    break;
  }
  switch (t[2]) {
  case '0':
    r += 0;
    break;
  case '1':
    r += 1;
    break;
  case '2':
    r += 2;
    break;
  case '3':
    r += 3;
    break;
  case '4':
    r += 4;
    break;
  case '5':
    r += 5;
    break;
  case '6':
    r += 6;
    break;
  case '7':
    r += 7;
    break;
  case '8':
    r += 8;
    break;
  case '9':
    r += 9;
    break;
  }
  return r;
}
```