// File: /workspace/github_c_makefile_star2_O0/craigbarnes[P]lua-gumbo/lib/parser.c
// Function: handle_in_cell
static bool handle_in_cell(GumboParser* parser, GumboToken* token) {
  if (tag_in(token, kEndTag, &td_th_tags)) {
    GumboTag token_tag = token->v.end_tag;
    if (!has_an_element_in_table_scope(parser, token_tag)) {
      parser_add_parse_error(parser, token);
      ignore_token(parser);
      return false;
    }
    return close_table_cell(parser, token, token_tag);
  } else if (
    tag_in(token, kStartTag, &(const TagSet) {
      TAG(CAPTION), TAG(COL), TAG(COLGROUP), TAG(TBODY), TAG(TD),
      TAG(TFOOT), TAG(TH), TAG(THEAD), TAG(TR)
    })
  ) {
    gumbo_debug("Handling <td> in cell.\n");
    if (
      !has_an_element_in_table_scope(parser, GUMBO_TAG_TH)
      && !has_an_element_in_table_scope(parser, GUMBO_TAG_TD)
    ) {
      gumbo_debug("Bailing out because there's no <td> or <th> in scope.\n");
      parser_add_parse_error(parser, token);
      ignore_token(parser);
      return false;
    }
    parser->_parser_state->_reprocess_current_token = true;
    return close_current_cell(parser, token);
  } else if (
    tag_in(token, kEndTag, &(const TagSet) {
      TAG(BODY), TAG(CAPTION), TAG(COL), TAG(COLGROUP), TAG(HTML)
    })
  ) {
    parser_add_parse_error(parser, token);
    ignore_token(parser);
    return false;
  } else if (
    tag_in(token, kEndTag, &(const TagSet) {
      TAG(TABLE), TAG(TBODY), TAG(TFOOT), TAG(THEAD), TAG(TR)
    })
  ) {
    if (!has_an_element_in_table_scope(parser, token->v.end_tag)) {
      parser_add_parse_error(parser, token);
      ignore_token(parser);
      return false;
    }
    parser->_parser_state->_reprocess_current_token = true;
    return close_current_cell(parser, token);
  } else {
    return handle_in_body(parser, token);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x200, %rsp            # imm = 0x200
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rdi
xorl %esi, %esi
leaq 0x250d0(%rip), %rdx     # 0x32560
callq 0x8d40
testb $0x1, %al
jne 0xd49b
jmp 0xd4ee
movq -0x18(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0x10bf0
testb $0x1, %al
jne 0xd4d4
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x78a0
movq -0x10(%rbp), %rdi
callq 0x8bd0
movb $0x0, -0x1(%rbp)
jmp 0xd6ea
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl -0x1c(%rbp), %edx
callq 0x11490
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0xd6ea
movq -0x18(%rbp), %rax
movq %rax, -0x1f0(%rbp)
leaq -0xb4(%rbp), %rdi
xorl %esi, %esi
movl $0x98, %edx
callq 0x4120
leaq -0xb4(%rbp), %rdi
leaq 0x2533e(%rip), %rsi     # 0x32858
movl $0x98, %edx
callq 0x41a0
movq -0x1f0(%rbp), %rdi
movl $0x1, %esi
leaq -0xb4(%rbp), %rdx
callq 0x8d40
testb $0x1, %al
jne 0xd545
jmp 0xd5c7
leaq 0x279d8(%rip), %rdi     # 0x34f24
movb $0x0, %al
callq 0x7540
movq -0x10(%rbp), %rdi
movl $0x68, %esi
callq 0x10bf0
testb $0x1, %al
jne 0xd5a4
movq -0x10(%rbp), %rdi
movl $0x67, %esi
callq 0x10bf0
testb $0x1, %al
jne 0xd5a4
leaq 0x279be(%rip), %rdi     # 0x34f3c
movb $0x0, %al
callq 0x7540
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x78a0
movq -0x10(%rbp), %rdi
callq 0x8bd0
movb $0x0, -0x1(%rbp)
jmp 0xd6ea
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movb $0x1, 0x50(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x11530
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0xd6ea
movq -0x18(%rbp), %rax
movq %rax, -0x1f8(%rbp)
leaq -0x14c(%rbp), %rdi
xorl %esi, %esi
movl $0x98, %edx
callq 0x4120
leaq -0x14c(%rbp), %rdi
leaq 0x252fd(%rip), %rsi     # 0x328f0
movl $0x98, %edx
callq 0x41a0
movq -0x1f8(%rbp), %rdi
xorl %esi, %esi
leaq -0x14c(%rbp), %rdx
callq 0x8d40
testb $0x1, %al
jne 0xd618
jmp 0xd637
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x78a0
movq -0x10(%rbp), %rdi
callq 0x8bd0
movb $0x0, -0x1(%rbp)
jmp 0xd6ea
movq -0x18(%rbp), %rax
movq %rax, -0x200(%rbp)
leaq -0x1e4(%rbp), %rdi
xorl %esi, %esi
movl $0x98, %edx
callq 0x4120
leaq -0x1e4(%rbp), %rdi
leaq 0x25325(%rip), %rsi     # 0x32988
movl $0x98, %edx
callq 0x41a0
movq -0x200(%rbp), %rdi
xorl %esi, %esi
leaq -0x1e4(%rbp), %rdx
callq 0x8d40
testb $0x1, %al
jne 0xd688
jmp 0xd6d8
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x30(%rax), %esi
callq 0x10bf0
testb $0x1, %al
jne 0xd6b8
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x78a0
movq -0x10(%rbp), %rdi
callq 0x8bd0
movb $0x0, -0x1(%rbp)
jmp 0xd6ea
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movb $0x1, 0x50(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x11530
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0xd6ea
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xa3f0
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x200, %rsp            # imm = 0x200
popq %rbp
retq
nopl (%rax,%rax)