user: 请将以下的汇编代码转换成C语言代码：

```asm
<codon_table>:
  endbr64
  push   %r12
  lea    D300(%rip),%rsi
  mov    $0x41,%r12d
  push   %rbp
  mov    %rdi,%rbp
  sub    $0x8,%rsp
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D26(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L198
L159:
  add    $0x8,%rsp
  mov    %r12d,%eax
  pop    %rbp
  pop    %r12
  ret
  nopw   0x0(%rax,%rax,1)
L198:
  lea    D397(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D599(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D59(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x52,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D529(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D183(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D55(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D496(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D184(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D307(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x4e,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D201(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D95(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x44,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D80(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D291(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x43,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D573(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D79(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x51,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D45(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D219(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x45,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D583(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D488(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x47,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D633(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D14(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D532(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D596(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x48,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D249(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D107(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x49,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D367(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D544(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D135(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x4d,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D206(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x4c,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D85(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D83(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D119(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D48(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D312(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D382(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x4b,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D117(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D552(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x46,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D368(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D416(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x50,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D383(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D492(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D459(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D209(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x53,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D554(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D504(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D515(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D616(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D342(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D134(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x54,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D589(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D631(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D91(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D218(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x57,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D250(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x59,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D556(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D363(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x56,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D486(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D195(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D468(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D268(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x2a,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D562(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L159
  lea    D50(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  cmp    $0x1,%eax
  sbb    %r12d,%r12d
  and    $0xffffffd2,%r12d
  add    $0x58,%r12d
  jmp    L159
```

tool_calls: name: unpack_data
arguments: tag: D300
type_guessed: string
name: unpack_data
arguments: tag: D26
type_guessed: string
name: unpack_data
arguments: tag: D397
type_guessed: string
name: unpack_data
arguments: tag: D599
type_guessed: string
name: unpack_data
arguments: tag: D59
type_guessed: string
name: unpack_data
arguments: tag: D529
type_guessed: string
name: unpack_data
arguments: tag: D183
type_guessed: string
name: unpack_data
arguments: tag: D55
type_guessed: string
name: unpack_data
arguments: tag: D496
type_guessed: string
name: unpack_data
arguments: tag: D184
type_guessed: string
name: unpack_data
arguments: tag: D307
type_guessed: string
name: unpack_data
arguments: tag: D201
type_guessed: string
name: unpack_data
arguments: tag: D95
type_guessed: string
name: unpack_data
arguments: tag: D80
type_guessed: string
name: unpack_data
arguments: tag: D291
type_guessed: string
name: unpack_data
arguments: tag: D573
type_guessed: string
name: unpack_data
arguments: tag: D79
type_guessed: string
name: unpack_data
arguments: tag: D45
type_guessed: string
name: unpack_data
arguments: tag: D219
type_guessed: string
name: unpack_data
arguments: tag: D583
type_guessed: string
name: unpack_data
arguments: tag: D488
type_guessed: string
name: unpack_data
arguments: tag: D633
type_guessed: string
name: unpack_data
arguments: tag: D14
type_guessed: string
name: unpack_data
arguments: tag: D532
type_guessed: string
name: unpack_data
arguments: tag: D596
type_guessed: string
name: unpack_data
arguments: tag: D249
type_guessed: string
name: unpack_data
arguments: tag: D107
type_guessed: string
name: unpack_data
arguments: tag: D367
type_guessed: string
name: unpack_data
arguments: tag: D544
type_guessed: string
name: unpack_data
arguments: tag: D135
type_guessed: string
name: unpack_data
arguments: tag: D206
type_guessed: string
name: unpack_data
arguments: tag: D85
type_guessed: string
name: unpack_data
arguments: tag: D83
type_guessed: string
name: unpack_data
arguments: tag: D119
type_guessed: string
name: unpack_data
arguments: tag: D48
type_guessed: string
name: unpack_data
arguments: tag: D312
type_guessed: string
name: unpack_data
arguments: tag: D382
type_guessed: string
name: unpack_data
arguments: tag: D117
type_guessed: string
name: unpack_data
arguments: tag: D552
type_guessed: string
name: unpack_data
arguments: tag: D368
type_guessed: string
name: unpack_data
arguments: tag: D416
type_guessed: string
name: unpack_data
arguments: tag: D383
type_guessed: string
name: unpack_data
arguments: tag: D492
type_guessed: string
name: unpack_data
arguments: tag: D459
type_guessed: string
name: unpack_data
arguments: tag: D209
type_guessed: string
name: unpack_data
arguments: tag: D554
type_guessed: string
name: unpack_data
arguments: tag: D504
type_guessed: string
name: unpack_data
arguments: tag: D515
type_guessed: string
name: unpack_data
arguments: tag: D616
type_guessed: string
name: unpack_data
arguments: tag: D342
type_guessed: string
name: unpack_data
arguments: tag: D134
type_guessed: string
name: unpack_data
arguments: tag: D589
type_guessed: string
name: unpack_data
arguments: tag: D631
type_guessed: string
name: unpack_data
arguments: tag: D91
type_guessed: string
name: unpack_data
arguments: tag: D218
type_guessed: string
name: unpack_data
arguments: tag: D250
type_guessed: string
name: unpack_data
arguments: tag: D556
type_guessed: string
name: unpack_data
arguments: tag: D363
type_guessed: string
name: unpack_data
arguments: tag: D486
type_guessed: string
name: unpack_data
arguments: tag: D195
type_guessed: string
name: unpack_data
arguments: tag: D468
type_guessed: string
name: unpack_data
arguments: tag: D268
type_guessed: string
name: unpack_data
arguments: tag: D562
type_guessed: string
name: unpack_data
arguments: tag: D50
type_guessed: string

tool: D300: GCT

tool: D26: GCC

tool: D397: GCA

tool: D599: GCG

tool: D59: CGT

tool: D529: CGC

tool: D183: CGA

tool: D55: CGG

tool: D496: AGA

tool: D184: AGG

tool: D307: AAT

tool: D201: AAC

tool: D95: GAT

tool: D80: GAC

tool: D291: TGT

tool: D573: TGC

tool: D79: CAA

tool: D45: CAG

tool: D219: GAA

tool: D583: GAG

tool: D488: GGT

tool: D633: GGC

tool: D14: GGA

tool: D532: GGG

tool: D596: CAT

tool: D249: CAC

tool: D107: ATT

tool: D367: ATC

tool: D544: ATA

tool: D135: ATG

tool: D206: TTA

tool: D85: TTG

tool: D83: CTT

tool: D119: CTC

tool: D48: CTA

tool: D312: CTG

tool: D382: AAA

tool: D117: AAG

tool: D552: TTT

tool: D368: TTC

tool: D416: CCT

tool: D383: CCC

tool: D492: CCA

tool: D459: CCG

tool: D209: TCT

tool: D554: TCC

tool: D504: TCA

tool: D515: TCG

tool: D616: AGT

tool: D342: AGC

tool: D134: ACT

tool: D589: ACC

tool: D631: ACA

tool: D91: ACG

tool: D218: TGG

tool: D250: TAT

tool: D556: TAC

tool: D363: GTT

tool: D486: GTC

tool: D195: GTA

tool: D468: GTG

tool: D268: TAG

tool: D562: TGA

tool: D50: TAA

assistant: ```c
char codon_table(char *temp) {
  char pep;
  if (strcmp(temp, "GCT") == 0 || strcmp(temp, "GCC") == 0 || strcmp(temp, "GCA") == 0 || strcmp(temp, "GCG") == 0) {
    pep = 'A';
  } else if (strcmp(temp, "CGT") == 0 || strcmp(temp, "CGC") == 0 || strcmp(temp, "CGA") == 0 || strcmp(temp, "CGG") == 0 || strcmp(temp, "AGA") == 0 || strcmp(temp, "AGG") == 0) {
    pep = 'R';
  } else if (strcmp(temp, "AAT") == 0 || strcmp(temp, "AAC") == 0) {
    pep = 'N';
  } else if (strcmp(temp, "GAT") == 0 || strcmp(temp, "GAC") == 0) {
    pep = 'D';
  } else if (strcmp(temp, "TGT") == 0 || strcmp(temp, "TGC") == 0) {
    pep = 'C';
  } else if (strcmp(temp, "CAA") == 0 || strcmp(temp, "CAG") == 0) {
    pep = 'Q';
  } else if (strcmp(temp, "GAA") == 0 || strcmp(temp, "GAG") == 0) {
    pep = 'E';
  } else if (strcmp(temp, "GGT") == 0 || strcmp(temp, "GGC") == 0 || strcmp(temp, "GGA") == 0 || strcmp(temp, "GGG") == 0) {
    pep = 'G';
  } else if (strcmp(temp, "CAT") == 0 || strcmp(temp, "CAC") == 0) {
    pep = 'H';
  } else if (strcmp(temp, "ATT") == 0 || strcmp(temp, "ATC") == 0 || strcmp(temp, "ATA") == 0) {
    pep = 'I';
  } else if (strcmp(temp, "ATG") == 0) {
    pep = 'M';
  } else if (strcmp(temp, "TTA") == 0 || strcmp(temp, "TTG") == 0 || strcmp(temp, "CTT") == 0 || strcmp(temp, "CTC") == 0 || strcmp(temp, "CTA") == 0 || strcmp(temp, "CTG") == 0) {
    pep = 'L';
  } else if (strcmp(temp, "AAA") == 0 || strcmp(temp, "AAG") == 0) {
    pep = 'K';
  } else if (strcmp(temp, "ATG") == 0) {
    pep = 'M';
  } else if (strcmp(temp, "TTT") == 0 || strcmp(temp, "TTC") == 0) {
    pep = 'F';
  } else if (strcmp(temp, "CCT") == 0 || strcmp(temp, "CCC") == 0 || strcmp(temp, "CCA") == 0 || strcmp(temp, "CCG") == 0) {
    pep = 'P';
  } else if (strcmp(temp, "TCT") == 0 || strcmp(temp, "TCC") == 0 || strcmp(temp, "TCA") == 0 || strcmp(temp, "TCG") == 0 || strcmp(temp, "AGT") == 0 || strcmp(temp, "AGC") == 0) {
    pep = 'S';
  } else if (strcmp(temp, "ACT") == 0 || strcmp(temp, "ACC") == 0 || strcmp(temp, "ACA") == 0 || strcmp(temp, "ACG") == 0) {
    pep = 'T';
  } else if (strcmp(temp, "TGG") == 0) {
    pep = 'W';
  } else if (strcmp(temp, "TAT") == 0 || strcmp(temp, "TAC") == 0) {
    pep = 'Y';
  } else if (strcmp(temp, "GTT") == 0 || strcmp(temp, "GTC") == 0 || strcmp(temp, "GTA") == 0 || strcmp(temp, "GTG") == 0) {
    pep = 'V';
  } else if (strcmp(temp, "TAG") == 0 || strcmp(temp, "TGA") == 0 || strcmp(temp, "TAA") == 0) {
    pep = '*';
  } else {
    if (temp[0] == 'N' || temp[1] == 'N' || temp[2] == 'N') {
      pep = 'X';
    } else {
      pep = 'X';
    }
  }
  return pep;
}
```