// File: /workspace/github_c_makefile_star2_O0/ShinyaKato[P]skcc/preprocess.c
// Function: group
void group(struct preprocessor *pp) {
  while(!check_pp_token(pp, PP_NONE)) {
    if(check_pp_token(pp, PP_SHARP)) {
      skip_pp_token_with_space(pp);

      if(check_if_section(pp)) {
        if_section(pp);
      } else if(check_group_end(pp)) {
        break;
      } else if(check_keyword(pp, "include")) {
        skip_pp_token_with_space(pp);
        include_directive(pp);
      } else if(check_keyword(pp, "define")) {
        skip_pp_token_with_space(pp);
        define_directive(pp);
      } else if(check_keyword(pp, "undef")) {
        skip_pp_token_with_space(pp);
        undef_directive(pp);
      } else if(check_keyword(pp, "line")) {
        warning("#line directive is not implemented yet.\n");
        skip_line(pp);
      } else if(check_keyword(pp, "error")) {
        warning("#error directive is not implemented yet.\n");
        skip_line(pp);
      } else if(check_keyword(pp, "pragma")) {
        warning("#pragma directive is not implemented yet.\n");
        skip_line(pp);
      } else if(check_pp_token(pp, PP_SPACE)) {
        skip_line(pp);
      } else {
        struct pp_token *directive = read_pp_token(pp);
        error("unknown directive: \"#%s\".\n", directive->text->head);
      }
    } else {
      parse_text_line(pp);
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x3e, %esi
callq 0x6df0
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x802b
jmp 0x8222
movq -0x8(%rbp), %rdi
movl $0x39, %esi
callq 0x6df0
cmpl $0x0, %eax
je 0x8214
movq -0x8(%rbp), %rdi
callq 0x6fa0
movq -0x8(%rbp), %rdi
callq 0x9130
cmpl $0x0, %eax
je 0x8067
movq -0x8(%rbp), %rdi
callq 0x8540
jmp 0x8212
movq -0x8(%rbp), %rdi
callq 0x91b0
cmpl $0x0, %eax
je 0x807a
jmp 0x8222
movq -0x8(%rbp), %rdi
leaq 0x2932(%rip), %rsi      # 0xa9b7
callq 0x6e20
cmpl $0x0, %eax
je 0x80a6
movq -0x8(%rbp), %rdi
callq 0x6fa0
movq -0x8(%rbp), %rdi
callq 0x88d0
jmp 0x820e
movq -0x8(%rbp), %rdi
leaq 0x2b13(%rip), %rsi      # 0xabc4
callq 0x6e20
cmpl $0x0, %eax
je 0x80d2
movq -0x8(%rbp), %rdi
callq 0x6fa0
movq -0x8(%rbp), %rdi
callq 0x8ca0
jmp 0x820c
movq -0x8(%rbp), %rdi
leaq 0x2aee(%rip), %rsi      # 0xabcb
callq 0x6e20
cmpl $0x0, %eax
je 0x80fe
movq -0x8(%rbp), %rdi
callq 0x6fa0
movq -0x8(%rbp), %rdi
callq 0x9060
jmp 0x820a
movq -0x8(%rbp), %rdi
leaq 0x2ac8(%rip), %rsi      # 0xabd1
callq 0x6e20
cmpl $0x0, %eax
je 0x813b
leaq 0x28a5(%rip), %rdi      # 0xa9bf
movl $0x4c1, %esi            # imm = 0x4C1
leaq 0x2ab0(%rip), %rdx      # 0xabd6
movb $0x0, %al
callq 0x1330
movq -0x8(%rbp), %rdi
callq 0x9230
jmp 0x8208
movq -0x8(%rbp), %rdi
leaq 0x1eca(%rip), %rsi      # 0xa010
callq 0x6e20
cmpl $0x0, %eax
je 0x8178
leaq 0x2868(%rip), %rdi      # 0xa9bf
movl $0x4c4, %esi            # imm = 0x4C4
leaq 0x2a9c(%rip), %rdx      # 0xabff
movb $0x0, %al
callq 0x1330
movq -0x8(%rbp), %rdi
callq 0x9230
jmp 0x8206
movq -0x8(%rbp), %rdi
leaq 0x2aa6(%rip), %rsi      # 0xac29
callq 0x6e20
cmpl $0x0, %eax
je 0x81b2
leaq 0x282b(%rip), %rdi      # 0xa9bf
movl $0x4c7, %esi            # imm = 0x4C7
leaq 0x2a90(%rip), %rdx      # 0xac30
movb $0x0, %al
callq 0x1330
movq -0x8(%rbp), %rdi
callq 0x9230
jmp 0x8204
movq -0x8(%rbp), %rdi
movl $0x3c, %esi
callq 0x6df0
cmpl $0x0, %eax
je 0x81d0
movq -0x8(%rbp), %rdi
callq 0x9230
jmp 0x8202
movq -0x8(%rbp), %rdi
callq 0x6d90
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rcx
leaq 0x27d0(%rip), %rdi      # 0xa9bf
movl $0x4cd, %esi            # imm = 0x4CD
leaq 0x2a60(%rip), %rdx      # 0xac5b
movb $0x0, %al
callq 0x1280
jmp 0x8204
jmp 0x8206
jmp 0x8208
jmp 0x820a
jmp 0x820c
jmp 0x820e
jmp 0x8210
jmp 0x8212
jmp 0x821d
movq -0x8(%rbp), %rdi
callq 0x90a0
jmp 0x800c
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)