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

```asm
<edge_type>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rsi,%rbx
  sub    $0x18,%rsp
  movzbl (%rcx,%rdx,1),%eax
  mov    %rdi,(%rsp)
  mov    %eax,%edx
  mov    %r8,0x8(%rsp)
  and    $0xffffffdf,%edx
  cmp    $0x41,%dl
  jne    L467
  test   %rdi,%rdi
  jle    L751
  add    $0x8,%rbx
  xor    %ebp,%ebp
  xor    %r15d,%r15d
  xor    %r14d,%r14d
  mov    $0x1,%r12d
  lea    D42(%rip),%r13
  jmp    L802
  nopl   0x0(%rax)
L542:
  add    $0x1,%r14
L1239:
  mov    (%rbx),%rdi
  lea    D330(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L753
L1024:
  add    $0x1,%r15
L183:
  mov    (%rbx),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L611
L689:
  add    $0x1,%rbp
L1172:
  add    $0x1,%r12
  add    $0x8,%rbx
  cmp    %r12,(%rsp)
  jl     L843
L802:
  mov    (%rbx),%rdi
  lea    D279(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L542
  mov    (%rbx),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L542
  mov    (%rbx),%rdi
  lea    D330(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L542
  jmp    L1239
  nopl   0x0(%rax,%rax,1)
L467:
  sub    $0x43,%eax
  cmp    $0x32,%al
  ja     L535
  lea    D624(%rip),%rdx
  movzbl %al,%eax
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  nopl   0x0(%rax,%rax,1)
L535:
  xor    %ebx,%ebx
  xor    %eax,%eax
  xor    %ebp,%ebp
  xor    %r15d,%r15d
  xor    %r14d,%r14d
L137:
  cmp    %rbx,%r14
  je     L521
  nopl   (%rax)
L1248:
  cmp    %rbx,%r15
  je     L1309
  cmp    %rbp,%rax
  jle    L509
L668:
  test   %rbx,%rbx
  je     L253
L1091:
  cmp    $0x1,%rbx
  je     L766
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L611:
  mov    (%rbx),%rdi
  lea    D300(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L689
  mov    (%rbx),%rdi
  lea    D728(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L689
  mov    (%rbx),%rdi
  lea    D718(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L689
  mov    (%rbx),%rdi
  lea    D442(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L689
  mov    (%rbx),%rdi
  lea    D147(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L689
  mov    (%rbx),%rdi
  lea    D739(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L689
  mov    (%rbx),%rdi
  lea    D461(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L689
  mov    (%rbx),%rdi
  lea    D128(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L689
  jmp    L1172
  nopl   (%rax)
L753:
  mov    (%rbx),%rdi
  lea    D667(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1024
  mov    (%rbx),%rdi
  lea    D387(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1024
  mov    (%rbx),%rdi
  lea    D266(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1024
  jmp    L183
  nopl   (%rax)
L843:
  cmp    %r15,%r14
  mov    %r15,%rax
  cmovge %r14,%rax
  cmp    %rax,%rbp
  mov    %rax,%rbx
  cmovge %rbp,%rbx
  cmp    %rbx,%r14
  jne    L1248
L521:
  mov    0x8(%rsp),%rdi
  lea    D734(%rip),%rsi
  call   <strcpy@plt>
  test   %rbx,%rbx
  jne    L1091
  nopw   0x0(%rax,%rax,1)
L253:
  lea    D862(%rip),%rsi
L512:
  mov    0x8(%rsp),%rdi
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1060 <strcpy@plt>
  nop
L766:
  lea    D302(%rip),%rsi
  jmp    L512
  nopl   0x0(%rax)
L751:
  lea    D734(%rip),%rsi
  mov    %r8,%rdi
  call   <strcpy@plt>
  jmp    L253
  cmpq   $0x0,(%rsp)
  jle    L157
  add    $0x8,%rbx
  xor    %ebp,%ebp
  xor    %r15d,%r15d
  xor    %r14d,%r14d
  mov    $0x1,%r12d
  lea    D837(%rip),%r13
  jmp    L730
  nopw   0x0(%rax,%rax,1)
L854:
  add    $0x1,%r14
L448:
  mov    (%rbx),%rdi
  lea    D131(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L1016
L942:
  add    $0x1,%r15
L1085:
  mov    (%rbx),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L335
L1125:
  add    $0x1,%rbp
L692:
  add    $0x1,%r12
  add    $0x8,%rbx
  cmp    %r12,(%rsp)
  jl     L843
L730:
  cmp    $0x1,%r12
  je     L735
  mov    -0x8(%rbx),%rsi
  mov    (%rbx),%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L692
L735:
  mov    (%rbx),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L854
  mov    (%rbx),%rdi
  lea    D300(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L854
  mov    (%rbx),%rdi
  lea    D131(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L854
  jmp    L448
  cmpq   $0x0,(%rsp)
  jle    L157
  add    $0x8,%rbx
  xor    %ebp,%ebp
  xor    %r15d,%r15d
  xor    %r14d,%r14d
  mov    $0x1,%r12d
  lea    D837(%rip),%r13
  jmp    L53
  nopl   0x0(%rax)
L713:
  add    $0x1,%r14
L619:
  mov    (%rbx),%rdi
  lea    D131(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L1214
L123:
  add    $0x1,%r15
L644:
  mov    (%rbx),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L994
L1211:
  add    $0x1,%rbp
L224:
  add    $0x1,%r12
  add    $0x8,%rbx
  cmp    %r12,(%rsp)
  jl     L86
L53:
  cmp    $0x1,%r12
  je     L267
  mov    -0x8(%rbx),%rsi
  mov    (%rbx),%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L224
L267:
  mov    (%rbx),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L713
  mov    (%rbx),%rdi
  lea    D300(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L713
  mov    (%rbx),%rdi
  lea    D131(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L713
  jmp    L619
  cmpq   $0x0,(%rsp)
  jle    L157
  add    $0x8,%rbx
  xor    %ebp,%ebp
  xor    %r15d,%r15d
  xor    %r14d,%r14d
  mov    $0x1,%r12d
  lea    D42(%rip),%r13
  jmp    L54
  nopl   0x0(%rax)
L924:
  add    $0x1,%r14
L918:
  mov    (%rbx),%rdi
  lea    D87(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L757
L1286:
  add    $0x1,%r15
L725:
  mov    (%rbx),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L1319
L113:
  add    $0x1,%rbp
L943:
  add    $0x1,%r12
  add    $0x8,%rbx
  cmp    %r12,(%rsp)
  jl     L843
L54:
  cmp    $0x1,%r12
  je     L844
  mov    -0x8(%rbx),%rsi
  mov    (%rbx),%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L943
L844:
  mov    (%rbx),%rdi
  lea    D279(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L924
  mov    (%rbx),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L924
  mov    (%rbx),%rdi
  lea    D87(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L924
  jmp    L918
  cmpq   $0x0,(%rsp)
  jle    L157
  add    $0x8,%rbx
  xor    %ebp,%ebp
  xor    %r15d,%r15d
  xor    %r14d,%r14d
  mov    $0x1,%r12d
  lea    D457(%rip),%r13
  jmp    L610
  nopl   0x0(%rax)
L1447:
  add    $0x1,%r14
L69:
  mov    (%rbx),%rdi
  lea    D87(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L251
L182:
  add    $0x1,%r15
L923:
  mov    (%rbx),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L1372
L745:
  add    $0x1,%rbp
L1135:
  add    $0x1,%r12
  add    $0x8,%rbx
  cmp    %r12,(%rsp)
  jl     L843
L610:
  cmp    $0x1,%r12
  je     L819
  mov    -0x8(%rbx),%rsi
  mov    (%rbx),%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1135
L819:
  mov    (%rbx),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1447
  mov    (%rbx),%rdi
  lea    D279(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1447
  mov    (%rbx),%rdi
  lea    D87(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1447
  jmp    L69
  cmpq   $0x0,(%rsp)
  jle    L157
  add    $0x8,%rbx
  xor    %ebp,%ebp
  xor    %r15d,%r15d
  xor    %r14d,%r14d
  mov    $0x1,%r12d
  lea    D837(%rip),%r13
  jmp    L125
  nopl   0x0(%rax)
L1064:
  add    $0x1,%r14
L1435:
  mov    (%rbx),%rdi
  lea    D589(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L1096
L1189:
  add    $0x1,%r15
L698:
  mov    (%rbx),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L974
L573:
  add    $0x1,%rbp
L895:
  add    $0x1,%r12
  add    $0x8,%rbx
  cmp    %r12,(%rsp)
  jl     L843
L125:
  cmp    $0x1,%r12
  je     L328
  mov    -0x8(%rbx),%rsi
  mov    (%rbx),%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L895
L328:
  mov    (%rbx),%rdi
  mov    %r13,%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1064
  mov    (%rbx),%rdi
  lea    D300(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1064
  mov    (%rbx),%rdi
  lea    D589(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1064
  jmp    L1435
  nopw   0x0(%rax,%rax,1)
L974:
  mov    (%rbx),%rdi
  lea    D279(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L573
  mov    (%rbx),%rdi
  lea    D442(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L573
  mov    (%rbx),%rdi
  lea    D147(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L573
  mov    (%rbx),%rdi
  lea    D739(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L573
  mov    (%rbx),%rdi
  lea    D461(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L573
  mov    (%rbx),%rdi
  lea    D128(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L573
  jmp    L895
  nopl   (%rax)
L1096:
  mov    (%rbx),%rdi
  lea    D667(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1189
  mov    (%rbx),%rdi
  lea    D357(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1189
  jmp    L698
  nopl   (%rax)
L251:
  mov    (%rbx),%rdi
  lea    D667(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L182
  mov    (%rbx),%rdi
  lea    D387(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L182
  mov    (%rbx),%rdi
  lea    D266(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L182
  jmp    L923
  nopl   (%rax)
L757:
  mov    (%rbx),%rdi
  lea    D667(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1286
  mov    (%rbx),%rdi
  lea    D387(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1286
  mov    (%rbx),%rdi
  lea    D266(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1286
  jmp    L725
  nopl   (%rax)
L1214:
  mov    (%rbx),%rdi
  lea    D279(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L123
  mov    (%rbx),%rdi
  lea    D357(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L123
  jmp    L644
  nopl   (%rax)
L994:
  mov    (%rbx),%rdi
  lea    D667(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1211
  mov    (%rbx),%rdi
  lea    D442(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1211
  mov    (%rbx),%rdi
  lea    D147(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1211
  mov    (%rbx),%rdi
  lea    D739(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1211
  mov    (%rbx),%rdi
  lea    D461(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1211
  mov    (%rbx),%rdi
  lea    D128(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1211
  jmp    L224
  nopl   (%rax)
L1372:
  mov    (%rbx),%rdi
  lea    D300(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L745
  mov    (%rbx),%rdi
  lea    D728(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L745
  mov    (%rbx),%rdi
  lea    D718(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L745
  mov    (%rbx),%rdi
  lea    D442(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L745
  mov    (%rbx),%rdi
  lea    D147(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L745
  mov    (%rbx),%rdi
  lea    D128(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L745
  jmp    L1135
  nopl   (%rax)
L1319:
  mov    (%rbx),%rdi
  lea    D300(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L113
  mov    (%rbx),%rdi
  lea    D728(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L113
  mov    (%rbx),%rdi
  lea    D718(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L113
  mov    (%rbx),%rdi
  lea    D442(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L113
  mov    (%rbx),%rdi
  lea    D147(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L113
  mov    (%rbx),%rdi
  lea    D739(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L113
  mov    (%rbx),%rdi
  lea    D461(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L113
  mov    (%rbx),%rdi
  lea    D128(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L113
  jmp    L943
  nopl   (%rax)
L335:
  mov    (%rbx),%rdi
  lea    D279(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1125
  mov    (%rbx),%rdi
  lea    D442(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1125
  mov    (%rbx),%rdi
  lea    D147(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1125
  mov    (%rbx),%rdi
  lea    D739(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1125
  mov    (%rbx),%rdi
  lea    D461(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1125
  mov    (%rbx),%rdi
  lea    D128(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L1125
  jmp    L692
  nopl   (%rax)
L1016:
  mov    (%rbx),%rdi
  lea    D667(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L942
  mov    (%rbx),%rdi
  lea    D357(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L942
  jmp    L1085
  nopl   (%rax)
L1309:
  mov    0x8(%rsp),%rdi
  lea    D553(%rip),%rsi
  call   <strcpy@plt>
  jmp    L668
  xchg   %ax,%ax
L509:
  mov    0x8(%rsp),%rdi
  lea    D407(%rip),%rsi
  call   <strcpy@plt>
  jmp    L668
  cs nopw 0x0(%rax,%rax,1)
L86:
  cmp    %r15,%r14
  mov    %r15,%rax
  mov    %rbp,%rbx
  cmovge %r14,%rax
  cmp    %rbp,%rax
  cmovge %rax,%rbx
  jmp    L137
  nopl   0x0(%rax)
L157:
  mov    0x8(%rsp),%rdi
  lea    D734(%rip),%rsi
  call   <strcpy@plt>
  jmp    L253
```

tool_calls: name: retrieve_data
arguments: tag: D42
type_infered: string
name: retrieve_data
arguments: tag: D330
type_infered: string
name: retrieve_data
arguments: tag: D279
type_infered: string
name: retrieve_data
arguments: tag: D300
type_infered: string
name: retrieve_data
arguments: tag: D728
type_infered: string
name: retrieve_data
arguments: tag: D718
type_infered: string
name: retrieve_data
arguments: tag: D442
type_infered: string
name: retrieve_data
arguments: tag: D147
type_infered: string
name: retrieve_data
arguments: tag: D739
type_infered: string
name: retrieve_data
arguments: tag: D461
type_infered: string
name: retrieve_data
arguments: tag: D128
type_infered: string
name: retrieve_data
arguments: tag: D667
type_infered: string
name: retrieve_data
arguments: tag: D387
type_infered: string
name: retrieve_data
arguments: tag: D266
type_infered: string
name: retrieve_data
arguments: tag: D734
type_infered: string
name: retrieve_data
arguments: tag: D862
type_infered: string
name: retrieve_data
arguments: tag: D302
type_infered: string
name: retrieve_data
arguments: tag: D837
type_infered: string
name: retrieve_data
arguments: tag: D131
type_infered: string
name: retrieve_data
arguments: tag: D87
type_infered: string
name: retrieve_data
arguments: tag: D457
type_infered: string
name: retrieve_data
arguments: tag: D589
type_infered: string
name: retrieve_data
arguments: tag: D357
type_infered: string
name: retrieve_data
arguments: tag: D553
type_infered: string
name: retrieve_data
arguments: tag: D407
type_infered: string

tool: D42:  C2 

tool: D330:  N6 

tool: D279:  N1 

tool: D300:  N3 

tool: D728:  C4 

tool: D718:  N9 

tool: D442:  C1'

tool: D147:  C2'

tool: D739:  C3'

tool: D461:  O3'

tool: D128:  O2'

tool: D667:  C5 

tool: D387:  N7 

tool: D266:  C8 

tool: D734: W

tool: D862: ?

tool: D302: .

tool: D837:  O2 

tool: D131:  O4 

tool: D87:  O6 

tool: D457:  N2 

tool: D589:  N4 

tool: D357:  C6 

tool: D553: H

tool: D407: S

assistant: ```c
void edge_type(long nh, char **hb_atm, long i, char *bseq, char *type_wd) {
  long k, max1, max2, max, Watson = 0, Hoogsteen = 0, Suger = 0;
  long s = 0, h = 0, w = 0;
  if (bseq[i] == 'A' || bseq[i] == 'a') {
    for (k = 1; k <= nh; k++) {
      if (strcmp(hb_atm[k], " N1 ") == 0 || strcmp(hb_atm[k], " C2 ") == 0 || strcmp(hb_atm[k], " N6 ") == 0)
        Watson++;
      if (strcmp(hb_atm[k], " N6 ") == 0 || strcmp(hb_atm[k], " C5 ") == 0 || strcmp(hb_atm[k], " N7 ") == 0 || strcmp(hb_atm[k], " C8 ") == 0)
        Hoogsteen++;
      if (strcmp(hb_atm[k], " C2 ") == 0 || strcmp(hb_atm[k], " N3 ") == 0 || strcmp(hb_atm[k], " C4 ") == 0 || strcmp(hb_atm[k], " N9 ") == 0 || strcmp(hb_atm[k], " C1'") == 0 || strcmp(hb_atm[k], " C2'") == 0 || strcmp(hb_atm[k], " C3'") == 0 || strcmp(hb_atm[k], " O3'") == 0 || strcmp(hb_atm[k], " O2'") == 0)
        Suger++;
    };
  } else if (bseq[i] == 'I' || bseq[i] == 'i') {
    for (k = 1; k <= nh; k++) {
      if (k > 1 && !strcmp(hb_atm[k], hb_atm[k - 1]))
        continue;
      if (strcmp(hb_atm[k], " N1 ") == 0 || strcmp(hb_atm[k], " C2 ") == 0 || strcmp(hb_atm[k], " O6 ") == 0)
        Watson++;
      if (strcmp(hb_atm[k], " O6 ") == 0 || strcmp(hb_atm[k], " C5 ") == 0 || strcmp(hb_atm[k], " N7 ") == 0 || strcmp(hb_atm[k], " C8 ") == 0)
        Hoogsteen++;
      if (strcmp(hb_atm[k], " C2 ") == 0 || strcmp(hb_atm[k], " N3 ") == 0 || strcmp(hb_atm[k], " C4 ") == 0 || strcmp(hb_atm[k], " N9 ") == 0 || strcmp(hb_atm[k], " C1'") == 0 || strcmp(hb_atm[k], " C2'") == 0 || strcmp(hb_atm[k], " C3'") == 0 || strcmp(hb_atm[k], " O3'") == 0 || strcmp(hb_atm[k], " O2'") == 0)
        Suger++;
    };
  } else if (bseq[i] == 'G' || bseq[i] == 'g') {
    for (k = 1; k <= nh; k++) {
      if (k > 1 && !strcmp(hb_atm[k], hb_atm[k - 1]))
        continue;
      if (strcmp(hb_atm[k], " N2 ") == 0 || strcmp(hb_atm[k], " N1 ") == 0 || strcmp(hb_atm[k], " O6 ") == 0)
        Watson++;
      if (strcmp(hb_atm[k], " O6 ") == 0 || strcmp(hb_atm[k], " C5 ") == 0 || strcmp(hb_atm[k], " N7 ") == 0 || strcmp(hb_atm[k], " C8 ") == 0)
        Hoogsteen++;
      if (strcmp(hb_atm[k], " N2 ") == 0 || strcmp(hb_atm[k], " N3 ") == 0 || strcmp(hb_atm[k], " C4 ") == 0 || strcmp(hb_atm[k], " N9 ") == 0 || strcmp(hb_atm[k], " C1'") == 0 || strcmp(hb_atm[k], " C2'") == 0 || strcmp(hb_atm[k], " O2'") == 0)
        Suger++;
    };
  } else if (bseq[i] == 'C' || bseq[i] == 'c') {
    for (k = 1; k <= nh; k++) {
      if (k > 1 && !strcmp(hb_atm[k], hb_atm[k - 1]))
        continue;
      if (strcmp(hb_atm[k], " O2 ") == 0 || strcmp(hb_atm[k], " N3 ") == 0 || strcmp(hb_atm[k], " N4 ") == 0)
        Watson++;
      if (strcmp(hb_atm[k], " N4 ") == 0 || strcmp(hb_atm[k], " C5 ") == 0 || strcmp(hb_atm[k], " C6 ") == 0)
        Hoogsteen++;
      if (strcmp(hb_atm[k], " O2 ") == 0 || strcmp(hb_atm[k], " N1 ") == 0 || strcmp(hb_atm[k], " C1'") == 0 || strcmp(hb_atm[k], " C2'") == 0 || strcmp(hb_atm[k], " C3'") == 0 || strcmp(hb_atm[k], " O3'") == 0 || strcmp(hb_atm[k], " O2'") == 0)
        Suger++;
    };
  } else if (bseq[i] == 'U' || bseq[i] == 'T' || bseq[i] == 'u' || bseq[i] == 't') {
    for (k = 1; k <= nh; k++) {
      if (k > 1 && !strcmp(hb_atm[k], hb_atm[k - 1]))
        continue;
      if (strcmp(hb_atm[k], " O2 ") == 0 || strcmp(hb_atm[k], " N3 ") == 0 || strcmp(hb_atm[k], " O4 ") == 0)
        Watson++;
      if (strcmp(hb_atm[k], " O4 ") == 0 || strcmp(hb_atm[k], " C5 ") == 0 || strcmp(hb_atm[k], " C6 ") == 0)
        Hoogsteen++;
      if (strcmp(hb_atm[k], " O2 ") == 0 || strcmp(hb_atm[k], " N1 ") == 0 || strcmp(hb_atm[k], " C1'") == 0 || strcmp(hb_atm[k], " C2'") == 0 || strcmp(hb_atm[k], " C3'") == 0 || strcmp(hb_atm[k], " O3'") == 0 || strcmp(hb_atm[k], " O2'") == 0)
        Suger++;
    };
  } else if (bseq[i] == 'P' || bseq[i] == 'p') {
    for (k = 1; k <= nh; k++) {
      if (k > 1 && !strcmp(hb_atm[k], hb_atm[k - 1]))
        continue;
      if (strcmp(hb_atm[k], " O2 ") == 0 || strcmp(hb_atm[k], " N3 ") == 0 || strcmp(hb_atm[k], " O4 ") == 0)
        Watson++;
      if (strcmp(hb_atm[k], " O4 ") == 0 || strcmp(hb_atm[k], " N1 ") == 0 || strcmp(hb_atm[k], " C6 ") == 0)
        Hoogsteen++;
      if (strcmp(hb_atm[k], " O2 ") == 0 || strcmp(hb_atm[k], " C5 ") == 0 || strcmp(hb_atm[k], " C1'") == 0 || strcmp(hb_atm[k], " C2'") == 0 || strcmp(hb_atm[k], " C3'") == 0 || strcmp(hb_atm[k], " O3'") == 0 || strcmp(hb_atm[k], " O2'") == 0)
        Suger++;
    };
  }
  w = Watson;
  h = Hoogsteen;
  s = Suger;
  max1 = (Watson >= Hoogsteen) ? Watson : Hoogsteen;
  max2 = (Hoogsteen >= Suger) ? Hoogsteen : Suger;
  max = (max1 >= max2) ? max1 : max2;
  if (Watson == max)
    strcpy(type_wd, "W");
  else if (Hoogsteen == max)
    strcpy(type_wd, "H");
  else if (Suger == max)
    strcpy(type_wd, "S");
  if (max == 0)
    strcpy(type_wd, "?");
  if (max == 1)
    strcpy(type_wd, ".");
}
```