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

```asm
<ConvertState>:
  endbr64
  push   %r12
  lea    D163(%rip),%rsi
  mov    $0x2b,%r12d
  push   %rbp
  mov    %rdi,%rbp
  sub    $0x8,%rsp
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D176(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x3a,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D4(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x41,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D5(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D27(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D15(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x42,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D11(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D111(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x43,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D14(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D71(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x45,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D10(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x46,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D91(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D109(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x47,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D199(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x48,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D191(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x49,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D3(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D172(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x4b,%r12d
  call   <strcmp@plt>
  test   %eax,%eax
  je     L9
  lea    D29(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L42
  lea    D180(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L42
  lea    D140(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  cmp    $0x1,%eax
  sbb    %r12d,%r12d
  and    $0xfffffffe,%r12d
  add    $0x4f,%r12d
L9:
  add    $0x8,%rsp
  mov    %r12d,%eax
  pop    %rbp
  pop    %r12
  ret
L42:
  mov    $0x4c,%r12d
  jmp    L9
```

tool_calls: name: unpack_data
arguments: data_tag: D163
type: string
name: unpack_data
arguments: data_tag: D176
type: string
name: unpack_data
arguments: data_tag: D4
type: string
name: unpack_data
arguments: data_tag: D5
type: string
name: unpack_data
arguments: data_tag: D27
type: string
name: unpack_data
arguments: data_tag: D15
type: string
name: unpack_data
arguments: data_tag: D11
type: string
name: unpack_data
arguments: data_tag: D111
type: string
name: unpack_data
arguments: data_tag: D14
type: string
name: unpack_data
arguments: data_tag: D71
type: string
name: unpack_data
arguments: data_tag: D10
type: string
name: unpack_data
arguments: data_tag: D91
type: string
name: unpack_data
arguments: data_tag: D109
type: string
name: unpack_data
arguments: data_tag: D199
type: string
name: unpack_data
arguments: data_tag: D191
type: string
name: unpack_data
arguments: data_tag: D3
type: string
name: unpack_data
arguments: data_tag: D172
type: string
name: unpack_data
arguments: data_tag: D29
type: string
name: unpack_data
arguments: data_tag: D180
type: string
name: unpack_data
arguments: data_tag: D140
type: string

tool: D163: +/+ cis 

tool: D176: -/- cis 

tool: D4: S/S cis 

tool: D5: S/s cis 

tool: D27: s/S cis 

tool: D15: S/H cis 

tool: D11: H/S cis 

tool: D111: S/W cis 

tool: D14: W/S cis 

tool: D71: W/W cis 

tool: D10: W/H cis 

tool: D91: H/W cis 

tool: D109:  stacked 

tool: D199: S/S tran

tool: D191: S/H tran

tool: D3: H/S tran

tool: D172: H/H tran

tool: D29: H/W tran

tool: D180: W/H tran

tool: D140: W/W tran

assistant: ```c
char ConvertState(char *stringState) {
  if (!strcmp(stringState, "+/+ cis "))
    return '+';
  else if (!strcmp(stringState, "-/- cis "))
    return ':';
  else if (!strcmp(stringState, "S/S cis "))
    return 'A';
  else if (!strcmp(stringState, "S/s cis "))
    return 'A';
  else if (!strcmp(stringState, "s/S cis "))
    return 'A';
  else if (!strcmp(stringState, "S/H cis "))
    return 'B';
  else if (!strcmp(stringState, "H/S cis "))
    return 'B';
  else if (!strcmp(stringState, "S/W cis "))
    return 'C';
  else if (!strcmp(stringState, "W/S cis "))
    return 'C';
  else if (!strcmp(stringState, "W/W cis "))
    return 'E';
  else if (!strcmp(stringState, "W/H cis "))
    return 'F';
  else if (!strcmp(stringState, "H/W cis "))
    return 'F';
  else if (!strcmp(stringState, " stacked "))
    return 'G';
  else if (!strcmp(stringState, "S/S tran"))
    return 'H';
  else if (!strcmp(stringState, "S/H tran"))
    return 'I';
  else if (!strcmp(stringState, "H/S tran"))
    return 'I';
  else if (!strcmp(stringState, "H/H tran"))
    return 'K';
  else if (!strcmp(stringState, "H/W tran"))
    return 'L';
  else if (!strcmp(stringState, "W/H tran"))
    return 'L';
  else if (!strcmp(stringState, "W/W tran"))
    return 'M';
  else
    return 'O';
}
```