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

```asm
<bioImageGeneName>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x240,%rsp
  mov    %rdi,-0x238(%rbp)
  mov    %esi,-0x23c(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    -0x23c(%rbp),%edx
  lea    -0x210(%rbp),%rax
  mov    %edx,%ecx
  lea    D20(%rip),%rdx
  mov    $0x100,%esi
  mov    %rax,%rdi
  call   <sqlSafef@plt>
  lea    -0x110(%rbp),%rdx
  lea    -0x210(%rbp),%rsi
  mov    -0x238(%rbp),%rax
  mov    $0x100,%ecx
  mov    %rax,%rdi
  call   <sqlNeedQuickQuery@plt>
  movzbl -0x110(%rbp),%eax
  test   %al,%al
  jne    L32
  mov    -0x23c(%rbp),%edx
  lea    -0x210(%rbp),%rax
  mov    %edx,%ecx
  lea    D23(%rip),%rdx
  mov    $0x100,%esi
  mov    %rax,%rdi
  call   <sqlSafef@plt>
  lea    -0x110(%rbp),%rdx
  lea    -0x210(%rbp),%rsi
  mov    -0x238(%rbp),%rax
  mov    $0x100,%ecx
  mov    %rax,%rdi
  call   <sqlNeedQuickQuery@plt>
  movzbl -0x110(%rbp),%eax
  test   %al,%al
  jne    L32
  mov    -0x23c(%rbp),%edx
  lea    -0x210(%rbp),%rax
  mov    %edx,%ecx
  lea    D10(%rip),%rdx
  mov    $0x100,%esi
  mov    %rax,%rdi
  call   <sqlSafef@plt>
  lea    -0x110(%rbp),%rdx
  lea    -0x210(%rbp),%rsi
  mov    -0x238(%rbp),%rax
  mov    $0x100,%ecx
  mov    %rax,%rdi
  call   <sqlNeedQuickQuery@plt>
  movzbl -0x110(%rbp),%eax
  test   %al,%al
  jne    L32
  mov    -0x23c(%rbp),%edx
  lea    -0x210(%rbp),%rax
  mov    %edx,%ecx
  lea    D1(%rip),%rdx
  mov    $0x100,%esi
  mov    %rax,%rdi
  call   <sqlSafef@plt>
  lea    -0x230(%rbp),%rdx
  lea    -0x210(%rbp),%rsi
  mov    -0x238(%rbp),%rax
  mov    $0x20,%ecx
  mov    %rax,%rdi
  call   <sqlNeedQuickQuery@plt>
  movzbl -0x230(%rbp),%eax
  test   %al,%al
  jne    L11
  mov    -0x23c(%rbp),%edx
  lea    -0x210(%rbp),%rax
  mov    %edx,%ecx
  lea    D0(%rip),%rdx
  mov    $0x100,%esi
  mov    %rax,%rdi
  call   <sqlSafef@plt>
  lea    -0x110(%rbp),%rdx
  lea    -0x210(%rbp),%rsi
  mov    -0x238(%rbp),%rax
  mov    $0x100,%ecx
  mov    %rax,%rdi
  call   <sqlNeedQuickQuery@plt>
  jmp    L32
L11:
  lea    -0x230(%rbp),%rdx
  lea    -0x110(%rbp),%rax
  mov    %rdx,%rcx
  lea    D43(%rip),%rdx
  mov    $0x100,%esi
  mov    %rax,%rdi
  call   <safef@plt>
L32:
  lea    -0x110(%rbp),%rax
  mov    %rax,%rdi
  call   <cloneString@plt>
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L36
  call   <__stack_chk_fail@plt>
L36:
  leave
  ret
```

tool_calls: name: parse_data
arguments: tag: D20
datatype: string
name: parse_data
arguments: tag: D23
datatype: string
name: parse_data
arguments: tag: D10
datatype: string
name: parse_data
arguments: tag: D1
datatype: string
name: parse_data
arguments: tag: D0
datatype: string
name: parse_data
arguments: tag: D43
datatype: string

tool: D20: select gene from image where id=%d

tool: D23: select refSeq from image where id=%d

tool: D10: select genbank from image where id=%d

tool: D1: select locusLink from image where id=%d

tool: D0: select submitId from image where id=%d

tool: D43: NCBI Gene ID #%s

assistant: ```c
char *bioImageGeneName(struct sqlConnection *conn, int id) {
  char query[256], buf[256];
  sqlSafef(query, sizeof(query), "select gene from image where id=%d", id);
  sqlNeedQuickQuery(conn, query, buf, sizeof(buf));
  if (buf[0] == 0) {
    sqlSafef(query, sizeof(query), "select refSeq from image where id=%d", id);
    sqlNeedQuickQuery(conn, query, buf, sizeof(buf));
    if (buf[0] == 0) {
      sqlSafef(query, sizeof(query), "select genbank from image where id=%d", id);
      sqlNeedQuickQuery(conn, query, buf, sizeof(buf));
      if (buf[0] == 0) {
        char locusLink[32];
        sqlSafef(query, sizeof(query), "select locusLink from image where id=%d", id);
        sqlNeedQuickQuery(conn, query, locusLink, sizeof(locusLink));
        if (locusLink[0] == 0) {
          sqlSafef(query, sizeof(query), "select submitId from image where id=%d", id);
          sqlNeedQuickQuery(conn, query, buf, sizeof(buf));
        } else {
          safef(buf, sizeof(buf), "NCBI Gene ID #%s", locusLink);
        }
      }
    }
  }
  return cloneString(buf);
}
```