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

```asm
<byg_detect>:
  endbr64
  sub    $0x488,%rsp
  mov    %rdi,%r8
  movdqa D12(%rip),%xmm0
  mov    $0x80,%ecx
  mov    %fs:0x28,%rax
  mov    %rax,0x478(%rsp)
  xor    %eax,%eax
  lea    0x70(%rsp),%rdx
  movaps %xmm0,(%rsp)
  movdqa D27(%rip),%xmm0
  mov    %rdx,%rdi
  lea    D69(%rip),%rdx
  movaps %xmm0,0x10(%rsp)
  movdqa D49(%rip),%xmm0
  movaps %xmm0,0x20(%rsp)
  movdqa D65(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    D39(%rip),%rax
  lea    0x13(%rdx),%rcx
  movaps %xmm0,0x30(%rsp)
  movdqa D28(%rip),%xmm0
  mov    %rax,0x60(%rsp)
  mov    $0x1,%eax
  movaps %xmm0,0x40(%rsp)
  movdqa D47(%rip),%xmm0
  movaps %xmm0,0x50(%rsp)
  jmp    L32
  nopl   0x0(%rax)
L48:
  movsbl (%rdx),%eax
  add    $0x1,%rdx
  sub    $0x41,%eax
  cltq
  movslq (%rsp,%rax,4),%rax
L32:
  test   %eax,%eax
  js     L49
  orl    $0x1,0x70(%rsp,%rax,4)
L49:
  cmp    %rdx,%rcx
  jne    L48
  test   %esi,%esi
  jle    L24
  lea    -0x1(%rsi),%edx
  mov    %r8,%rax
  xor    %ecx,%ecx
  lea    0x4(%r8,%rdx,4),%rsi
  nop
L43:
  movslq (%rax),%rdx
  cmp    $0xffffffff,%edx
  je     L10
  lea    0x1(%rcx,%rcx,1),%ecx
  and    0x70(%rsp,%rdx,4),%ecx
  test   $0x1,%cl
  jne    L38
L10:
  add    $0x4,%rax
  cmp    %rsi,%rax
  jne    L43
L24:
  mov    $0x1,%eax
L27:
  mov    0x478(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L56
  add    $0x488,%rsp
  ret
L38:
  xor    %eax,%eax
  jmp    L27
L56:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D12
type_guessed: byte[16]
name: extract_symbolic_data
arguments: data_label: D27
type_guessed: byte[16]
name: extract_symbolic_data
arguments: data_label: D69
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D49
type_guessed: byte[16]
name: extract_symbolic_data
arguments: data_label: D65
type_guessed: byte[16]
name: extract_symbolic_data
arguments: data_label: D39
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D28
type_guessed: byte[16]
name: extract_symbolic_data
arguments: data_label: D47
type_guessed: byte[16]

tool: {"D12": [0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00]}

tool: {"D27": [0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00]}

tool: D69: DEFHIJKLMNOPQRSVWYZ

tool: {"D49": [0x08,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x09,0x00,0x00,0x00,0x0a,0x00,0x00,0x00]}

tool: {"D65": [0x0b,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x0d,0x00,0x00,0x00]}

tool: {"D39": [0x15,0x00,0x00,0x00,0x16,0x00,0x00,0x00]}

tool: {"D28": [0x0e,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00]}

tool: {"D47": [0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x14,0x00,0x00,0x00]}

assistant: ```c
int byg_detect(int *text, int n) {
  int Tc;
  int i = 0;
  int s = 0;
  int T[256];
  for (i = 0; i < 256; i++) {
    T[i] = 0;
  }
  int mb = 1;
  char *unique_aa = "BDEFHIJKLMNOPQRSVWYZ";
  int aacode[26] = {0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 9, 10, 11, 12, 23, 13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 22};
  for (i = 0; i < 20; i++) {
    if (aacode[unique_aa[i] - 65] >= 0) {
      T[(int)aacode[unique_aa[i] - 65]] |= 1;
    }
  }
  for (i = 0; i < n; i++) {
    if (text[i] != -1) {
      s <<= 1;
      s |= 1;
      Tc = T[text[i]];
      s &= Tc;
      if (s & mb) {
        return 0;
      }
    }
  }
  return 1;
}
```