user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<get_result>:
  endbr64
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rdi,%r12
  mov    %rsi,%rbx
  mov    %rdx,%rbp
  lea    D248(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L138
  lea    D30(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L157
L138:
  lea    D248(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L142
  lea    D240(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L5
L142:
  lea    D175(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L216
  lea    D240(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L203
L216:
  lea    D131(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L179
  lea    D30(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L135
L179:
  lea    D90(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L155
  lea    D240(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L127
L155:
  lea    D175(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L84
  lea    D30(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L181
L84:
  lea    D90(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L136
  lea    D30(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L25
L136:
  lea    D287(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L2
  lea    D30(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L265
L2:
  lea    D262(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L205
  lea    D30(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L273
L205:
  lea    D131(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L229
  lea    D240(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L229
  lea    D131(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L229
L157:
  lea    D175(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
L229:
  mov    %r12,%rax
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
L5:
  lea    D248(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L229
L203:
  lea    D131(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L229
L135:
  lea    D90(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L229
L127:
  lea    D248(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L229
L181:
  lea    D287(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L229
L25:
  lea    D262(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L229
L265:
  lea    D90(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L229
L273:
  lea    D175(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L229
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D248
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D30
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D240
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D175
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D131
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D90
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D287
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D262
type_infered: string

tool: D248: CLOSED

tool: D30: button_clicked

tool: D240: cycle_complete

tool: D175: OPENING

tool: D131: OPEN

tool: D90: CLOSING

tool: D287: STOPPED_WHILE_OPENING

tool: D262: STOPPED_WHILE_CLOSING

assistant: ```c
char *get_result(char *res, char *state, char *oper) {
  if (strcmp(state, "CLOSED") == 0 && strcmp(oper, "button_clicked") == 0) {
    strcpy(res, "OPENING");
  } else if (strcmp(state, "CLOSED") == 0 && strcmp(oper, "cycle_complete") == 0) {
    strcpy(res, "CLOSED");
  } else if (strcmp(state, "OPENING") == 0 && strcmp(oper, "cycle_complete") == 0) {
    strcpy(res, "OPEN");
  } else if (strcmp(state, "OPEN") == 0 && strcmp(oper, "button_clicked") == 0) {
    strcpy(res, "CLOSING");
  } else if (strcmp(state, "CLOSING") == 0 && strcmp(oper, "cycle_complete") == 0) {
    strcpy(res, "CLOSED");
  } else if (strcmp(state, "OPENING") == 0 && strcmp(oper, "button_clicked") == 0) {
    strcpy(res, "STOPPED_WHILE_OPENING");
  } else if (strcmp(state, "CLOSING") == 0 && strcmp(oper, "button_clicked") == 0) {
    strcpy(res, "STOPPED_WHILE_CLOSING");
  } else if (strcmp(state, "STOPPED_WHILE_OPENING") == 0 && strcmp(oper, "button_clicked") == 0) {
    strcpy(res, "CLOSING");
  } else if (strcmp(state, "STOPPED_WHILE_CLOSING") == 0 && strcmp(oper, "button_clicked") == 0) {
    strcpy(res, "OPENING");
  } else if (strcmp(state, "OPEN") == 0 && strcmp(oper, "cycle_complete") == 0) {
    strcpy(res, "OPEN");
  }
  return res;
}
```