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

```asm
<chk_status>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x18(%rbp)
  movl   $0x0,-0x4(%rbp)
  jmp    L298
L142:
  movl   $0x0,-0x8(%rbp)
  jmp    L386
L337:
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x8(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L474
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x8(%rbp),%eax
  add    $0x1,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L474
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x8(%rbp),%eax
  add    $0x2,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L474
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x8(%rbp),%eax
  add    $0x3,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L474
  mov    $0x1,%eax
  jmp    L310
L474:
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x8(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L419
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x8(%rbp),%eax
  add    $0x1,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L419
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x8(%rbp),%eax
  add    $0x2,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L419
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x8(%rbp),%eax
  add    $0x3,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L419
  mov    $0x2,%eax
  jmp    L310
L419:
  addl   $0x1,-0x8(%rbp)
L386:
  cmpl   $0x3,-0x8(%rbp)
  jle    L337
  addl   $0x1,-0x4(%rbp)
L298:
  cmpl   $0x5,-0x4(%rbp)
  jle    L142
  movl   $0x0,-0x4(%rbp)
  jmp    L64
L179:
  movl   $0x0,-0x8(%rbp)
  jmp    L351
L381:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L320
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L320
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    0xe(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L320
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    0x15(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L320
  mov    $0x1,%eax
  jmp    L310
L320:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L299
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L299
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    0xe(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L299
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    0x15(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L299
  mov    $0x2,%eax
  jmp    L310
L299:
  addl   $0x1,-0x8(%rbp)
L351:
  cmpl   $0x2,-0x8(%rbp)
  jle    L381
  addl   $0x1,-0x4(%rbp)
L64:
  cmpl   $0x6,-0x4(%rbp)
  jle    L179
  movl   $0x0,-0x8(%rbp)
  jmp    L75
L445:
  movl   $0x0,-0x4(%rbp)
  jmp    L534
L26:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L186
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L186
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    0xe(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L186
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    0x15(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L186
  mov    $0x1,%eax
  jmp    L310
L186:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L420
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L420
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    0xe(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L420
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    0x15(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L420
  mov    $0x2,%eax
  jmp    L310
L420:
  addl   $0x1,-0x4(%rbp)
L534:
  cmpl   $0x3,-0x4(%rbp)
  jle    L26
  addl   $0x1,-0x8(%rbp)
L75:
  cmpl   $0x2,-0x8(%rbp)
  jle    L445
  movl   $0x0,-0x8(%rbp)
  jmp    L254
L173:
  movl   $0x6,-0x4(%rbp)
  jmp    L383
L455:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L119
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L119
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    0xe(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L119
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    0x15(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x58,%al
  jne    L119
  mov    $0x1,%eax
  jmp    L310
L119:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L225
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  mov    %rax,%rcx
  mov    -0x18(%rbp),%rax
  lea    (%rcx,%rax,1),%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L225
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    0xe(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L225
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    0x15(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x4f,%al
  jne    L225
  mov    $0x2,%eax
  jmp    L310
L225:
  subl   $0x1,-0x4(%rbp)
L383:
  cmpl   $0x2,-0x4(%rbp)
  jg     L455
  addl   $0x1,-0x8(%rbp)
L254:
  cmpl   $0x2,-0x8(%rbp)
  jle    L173
  movl   $0x0,-0x8(%rbp)
  jmp    L491
L518:
  mov    -0x18(%rbp),%rax
  lea    0x23(%rax),%rdx
  mov    -0x8(%rbp),%eax
  cltq
  movzbl (%rdx,%rax,1),%eax
  cmp    $0x5f,%al
  jne    L388
  mov    $0x3,%eax
  jmp    L310
L388:
  addl   $0x1,-0x8(%rbp)
L491:
  cmpl   $0x6,-0x8(%rbp)
  jle    L518
  mov    $0x0,%eax
L310:
  pop    %rbp
  ret
```

assistant: ```c
int chk_status(char board[][7]) {
  int i, j, k;
  for (j = 0; j < 6; j++) {
    for (i = 0; i < 7 - 3; i++) {
      if ((board[j][i] == 'X') && (board[j][i + 1] == 'X') && (board[j][i + 2] == 'X') && (board[j][i + 3] == 'X'))
        return 1;
      else if ((board[j][i] == 'O') && (board[j][i + 1] == 'O') && (board[j][i + 2] == 'O') && (board[j][i + 3] == 'O'))
        return 2;
    }
  }
  for (j = 0; j < 7; j++) {
    for (i = 0; i < 6 - 3; i++) {
      if ((board[i][j] == 'X') && (board[i + 1][j] == 'X') && (board[i + 2][j] == 'X') && (board[i + 3][j] == 'X'))
        return 1;
      else if ((board[i][j] == 'O') && (board[i + 1][j] == 'O') && (board[i + 2][j] == 'O') && (board[i + 3][j] == 'O'))
        return 2;
    }
  }
  for (i = 0; i < 6 - 3; i++) {
    for (j = 0; j < 7 - 3; j++) {
      if ((board[i][j] == 'X') && (board[i + 1][j + 1] == 'X') && (board[i + 2][j + 2] == 'X') && (board[i + 3][j + 3] == 'X'))
        return 1;
      else if ((board[i][j] == 'O') && (board[i + 1][j + 1] == 'O') && (board[i + 2][j + 2] == 'O') && (board[i + 3][j + 3] == 'O'))
        return 2;
    }
  }
  for (i = 0; i < 6 - 3; i++) {
    for (j = 7 - 1; j > 2; j--) {
      if ((board[i][j] == 'X') && (board[i + 1][j - 1] == 'X') && (board[i + 2][j - 2] == 'X') && (board[i + 3][j - 3] == 'X'))
        return 1;
      else if ((board[i][j] == 'O') && (board[i + 1][j - 1] == 'O') && (board[i + 2][j - 2] == 'O') && (board[i + 3][j - 3] == 'O'))
        return 2;
    }
  }
  for (i = 0; i < 7; i++)
    if (board[6 - 1][i] == '_')
      return 3;
  return 0;
}
```