// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/expat-2.0.1/lib/xmlrole.c
// Function: element7
static int PTRCALL
element7(PROLOG_STATE *state,
         int tok,
         __attribute__ ((unused)) const char *ptr,
         __attribute__ ((unused)) const char *end,
         __attribute__ ((unused)) const ENCODING *enc)
{
  switch (tok) {
  case XML_TOK_PROLOG_S:
    return XML_ROLE_ELEMENT_NONE;
  case XML_TOK_CLOSE_PAREN:
    state->level -= 1;
    if (state->level == 0) {
      state->handler = declClose;
      state->role_none = XML_ROLE_ELEMENT_NONE;
    }
    return XML_ROLE_GROUP_CLOSE;
  case XML_TOK_CLOSE_PAREN_ASTERISK:
    state->level -= 1;
    if (state->level == 0) {
      state->handler = declClose;
      state->role_none = XML_ROLE_ELEMENT_NONE;
    }
    return XML_ROLE_GROUP_CLOSE_REP;
  case XML_TOK_CLOSE_PAREN_QUESTION:
    state->level -= 1;
    if (state->level == 0) {
      state->handler = declClose;
      state->role_none = XML_ROLE_ELEMENT_NONE;
    }
    return XML_ROLE_GROUP_CLOSE_OPT;
  case XML_TOK_CLOSE_PAREN_PLUS:
    state->level -= 1;
    if (state->level == 0) {
      state->handler = declClose;
      state->role_none = XML_ROLE_ELEMENT_NONE;
    }
    return XML_ROLE_GROUP_CLOSE_PLUS;
  case XML_TOK_COMMA:
    state->handler = element6;
    return XML_ROLE_GROUP_SEQUENCE;
  case XML_TOK_OR:
    state->handler = element6;
    return XML_ROLE_GROUP_CHOICE;
  }
  return common(state, tok);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movl %esi, 0x24(%rsp)
movq %rdx, 0x18(%rsp)
movq %rcx, 0x10(%rsp)
movq %r8, 0x8(%rsp)
movl 0x24(%rsp), %eax
addl $-0xf, %eax
movl %eax, %ecx
movq %rcx, (%rsp)
subl $0x17, %eax
ja 0x3836a6
movq (%rsp), %rax
leaq 0x21ba4f(%rip), %rcx    # 0x59efac
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x27, 0x34(%rsp)
jmp 0x3836b8
movq 0x28(%rsp), %rax
movl 0x8(%rax), %ecx
subl $0x1, %ecx
movl %ecx, 0x8(%rax)
movq 0x28(%rsp), %rax
cmpl $0x0, 0x8(%rax)
jne 0x3835a7
movq 0x28(%rsp), %rax
leaq -0xe98(%rip), %rcx      # 0x382700
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movl $0x27, 0xc(%rax)
movl $0x2d, 0x34(%rsp)
jmp 0x3836b8
movq 0x28(%rsp), %rax
movl 0x8(%rax), %ecx
subl $0x1, %ecx
movl %ecx, 0x8(%rax)
movq 0x28(%rsp), %rax
cmpl $0x0, 0x8(%rax)
jne 0x3835e8
movq 0x28(%rsp), %rax
leaq -0xed9(%rip), %rcx      # 0x382700
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movl $0x27, 0xc(%rax)
movl $0x2e, 0x34(%rsp)
jmp 0x3836b8
movq 0x28(%rsp), %rax
movl 0x8(%rax), %ecx
subl $0x1, %ecx
movl %ecx, 0x8(%rax)
movq 0x28(%rsp), %rax
cmpl $0x0, 0x8(%rax)
jne 0x383629
movq 0x28(%rsp), %rax
leaq -0xf1a(%rip), %rcx      # 0x382700
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movl $0x27, 0xc(%rax)
movl $0x2f, 0x34(%rsp)
jmp 0x3836b8
movq 0x28(%rsp), %rax
movl 0x8(%rax), %ecx
subl $0x1, %ecx
movl %ecx, 0x8(%rax)
movq 0x28(%rsp), %rax
cmpl $0x0, 0x8(%rax)
jne 0x38366a
movq 0x28(%rsp), %rax
leaq -0xf5b(%rip), %rcx      # 0x382700
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movl $0x27, 0xc(%rax)
movl $0x30, 0x34(%rsp)
jmp 0x3836b8
movq 0x28(%rsp), %rax
leaq -0x250(%rip), %rcx      # 0x383430
movq %rcx, (%rax)
movl $0x32, 0x34(%rsp)
jmp 0x3836b8
movq 0x28(%rsp), %rax
leaq -0x269(%rip), %rcx      # 0x383430
movq %rcx, (%rax)
movl $0x31, 0x34(%rsp)
jmp 0x3836b8
movq 0x28(%rsp), %rdi
movl 0x24(%rsp), %esi
callq 0x381ba0
movl %eax, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)