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

```asm
<ConvertState>:
  endbr64
  push   %rbx
  mov    %rdi,%rbx
  lea    D156(%rip),%rsi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x2b,%eax
  test   %edx,%edx
  je     L174
  lea    D150(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x3a,%eax
  test   %edx,%edx
  je     L174
  lea    D182(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x41,%eax
  test   %edx,%edx
  je     L174
  lea    D115(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x41,%eax
  test   %edx,%edx
  je     L174
  lea    D157(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x41,%eax
  test   %edx,%edx
  je     L174
  lea    D147(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x42,%eax
  test   %edx,%edx
  je     L174
  lea    D78(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x42,%eax
  test   %edx,%edx
  je     L174
  lea    D103(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x43,%eax
  test   %edx,%edx
  je     L174
  lea    D4(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x43,%eax
  test   %edx,%edx
  je     L174
  lea    D82(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x45,%eax
  test   %edx,%edx
  je     L174
  lea    D143(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x46,%eax
  test   %edx,%edx
  je     L174
  lea    D65(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x46,%eax
  test   %edx,%edx
  je     L174
  lea    D32(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x47,%eax
  test   %edx,%edx
  je     L174
  lea    D120(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x48,%eax
  test   %edx,%edx
  je     L174
  lea    D44(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x49,%eax
  test   %edx,%edx
  je     L174
  lea    D101(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x49,%eax
  test   %edx,%edx
  je     L174
  lea    D72(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %eax,%edx
  mov    $0x4b,%eax
  test   %edx,%edx
  je     L174
  lea    D129(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L203
  lea    D142(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L155
  lea    D45(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  cmp    $0x1,%eax
  sbb    %eax,%eax
  and    $0xfffffffe,%eax
  add    $0x4f,%eax
L174:
  pop    %rbx
  ret
L203:
  mov    $0x4c,%eax
  jmp    L174
L155:
  mov    $0x4c,%eax
  jmp    L174
```

tool_calls: name: disassemble_data
arguments: tag: D156
datatype: string
name: disassemble_data
arguments: tag: D150
datatype: string
name: disassemble_data
arguments: tag: D182
datatype: string
name: disassemble_data
arguments: tag: D115
datatype: string
name: disassemble_data
arguments: tag: D157
datatype: string
name: disassemble_data
arguments: tag: D147
datatype: string
name: disassemble_data
arguments: tag: D78
datatype: string
name: disassemble_data
arguments: tag: D103
datatype: string
name: disassemble_data
arguments: tag: D4
datatype: string
name: disassemble_data
arguments: tag: D82
datatype: string
name: disassemble_data
arguments: tag: D143
datatype: string
name: disassemble_data
arguments: tag: D65
datatype: string
name: disassemble_data
arguments: tag: D32
datatype: string
name: disassemble_data
arguments: tag: D120
datatype: string
name: disassemble_data
arguments: tag: D44
datatype: string
name: disassemble_data
arguments: tag: D101
datatype: string
name: disassemble_data
arguments: tag: D72
datatype: string
name: disassemble_data
arguments: tag: D129
datatype: string
name: disassemble_data
arguments: tag: D142
datatype: string
name: disassemble_data
arguments: tag: D45
datatype: string

tool: D156: +/+ cis 

tool: D150: -/- cis 

tool: D182: S/S cis 

tool: D115: S/s cis 

tool: D157: s/S cis 

tool: D147: S/H cis 

tool: D78: H/S cis 

tool: D103: S/W cis 

tool: D4: W/S cis 

tool: D82: W/W cis 

tool: D143: W/H cis 

tool: D65: H/W cis 

tool: D32:  stacked 

tool: D120: S/S tran

tool: D44: S/H tran

tool: D101: H/S tran

tool: D72: H/H tran

tool: D129: H/W tran

tool: D142: W/H tran

tool: D45: 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';
}
```