user: 下面的汇编指令对应的C源代码是什么：

```asm
<nc_match>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    %rsi,-0x30(%rbp)
  movl   $0x0,-0x10(%rbp)
  movl   $0x0,-0x14(%rbp)
  jmp    L149
L93:
  mov    -0x30(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    -0x14(%rbp),%edx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <sk_GENERAL_SUBTREE_value@plt>
  mov    %rax,-0x8(%rbp)
  mov    -0x28(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x8(%rbp),%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  cmp    %rax,%rdx
  jne    L161
  mov    -0x8(%rbp),%rax
  mov    0x10(%rax),%rax
  test   %rax,%rax
  jne    L141
  mov    -0x8(%rbp),%rax
  mov    0x8(%rax),%rax
  test   %rax,%rax
  je     L16
L141:
  mov    D32(%rip),%rax
  mov    (%rax),%eax
  jmp    L158
L16:
  cmpl   $0x2,-0x10(%rbp)
  je     L208
  cmpl   $0x0,-0x10(%rbp)
  jne    L7
  movl   $0x1,-0x10(%rbp)
L7:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x28(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <nc_match_single@plt>
  mov    %eax,-0xc(%rbp)
  mov    D14(%rip),%rax
  mov    (%rax),%eax
  cmp    %eax,-0xc(%rbp)
  jne    L26
  movl   $0x2,-0x10(%rbp)
  jmp    L206
L26:
  mov    D58(%rip),%rax
  mov    (%rax),%eax
  cmp    %eax,-0xc(%rbp)
  je     L206
  mov    -0xc(%rbp),%eax
  jmp    L158
L161:
  nop
  jmp    L206
L208:
  nop
L206:
  addl   $0x1,-0x14(%rbp)
L149:
  mov    -0x30(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,%edi
  call   <sk_GENERAL_SUBTREE_num@plt>
  cmp    %eax,-0x14(%rbp)
  jl     L93
  cmpl   $0x1,-0x10(%rbp)
  jne    L248
  mov    D58(%rip),%rax
  mov    (%rax),%eax
  jmp    L158
L248:
  movl   $0x0,-0x14(%rbp)
  jmp    L152
L154:
  mov    -0x30(%rbp),%rax
  mov    (%rax),%eax
  mov    -0x14(%rbp),%edx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <sk_GENERAL_SUBTREE_value@plt>
  mov    %rax,-0x8(%rbp)
  mov    -0x28(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x8(%rbp),%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  cmp    %rax,%rdx
  jne    L131
  mov    -0x8(%rbp),%rax
  mov    0x10(%rax),%rax
  test   %rax,%rax
  jne    L143
  mov    -0x8(%rbp),%rax
  mov    0x8(%rax),%rax
  test   %rax,%rax
  je     L71
L143:
  mov    D32(%rip),%rax
  mov    (%rax),%eax
  jmp    L158
L71:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x28(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <nc_match_single@plt>
  mov    %eax,-0xc(%rbp)
  mov    D14(%rip),%rax
  mov    (%rax),%eax
  cmp    %eax,-0xc(%rbp)
  jne    L164
  mov    D43(%rip),%rax
  mov    (%rax),%eax
  jmp    L158
L164:
  mov    D58(%rip),%rax
  mov    (%rax),%eax
  cmp    %eax,-0xc(%rbp)
  je     L230
  mov    -0xc(%rbp),%eax
  jmp    L158
L131:
  nop
L230:
  addl   $0x1,-0x14(%rbp)
L152:
  mov    -0x30(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,%edi
  call   <sk_GENERAL_SUBTREE_num@plt>
  cmp    %eax,-0x14(%rbp)
  jl     L154
  mov    D14(%rip),%rax
  mov    (%rax),%eax
L158:
  leave
  ret
```

assistant: ```c
int nc_match(GENERAL_NAME *gen, NAME_CONSTRAINTS *nc) {
  GENERAL_SUBTREE *sub;
  int i, r, match = 0;
  for (i = 0; i < sk_GENERAL_SUBTREE_num(nc->permittedSubtrees); i++) {
    sub = sk_GENERAL_SUBTREE_value(nc->permittedSubtrees, i);
    if (gen->type != sub->base->type)
      continue;
    if (sub->minimum || sub->maximum)
      return X509_V_ERR_SUBTREE_MINMAX;
    if (match == 2)
      continue;
    if (match == 0)
      match = 1;
    r = nc_match_single(gen, sub->base);
    if (r == X509_V_OK)
      match = 2;
    else if (r != X509_V_ERR_PERMITTED_VIOLATION)
      return r;
  }
  if (match == 1)
    return X509_V_ERR_PERMITTED_VIOLATION;
  for (i = 0; i < sk_GENERAL_SUBTREE_num(nc->excludedSubtrees); i++) {
    sub = sk_GENERAL_SUBTREE_value(nc->excludedSubtrees, i);
    if (gen->type != sub->base->type)
      continue;
    if (sub->minimum || sub->maximum)
      return X509_V_ERR_SUBTREE_MINMAX;
    r = nc_match_single(gen, sub->base);
    if (r == X509_V_OK)
      return X509_V_ERR_EXCLUDED_VIOLATION;
    else if (r != X509_V_ERR_PERMITTED_VIOLATION)
      return r;
  }
  return X509_V_OK;
}
```