// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x3e, %esi
callq 0x4d19
testl %eax, %eax
jne 0x598b
leaq 0x256c(%rip), %r14      # 0x7cee
leaq 0x28ac(%rip), %r15      # 0x8035
leaq 0x28ac(%rip), %r12      # 0x803c
leaq 0x28ab(%rip), %r13      # 0x8042
leaq 0x2692(%rip), %rbp      # 0x7e30
movq %rbx, %rdi
movl $0x39, %esi
callq 0x4d19
movq %rbx, %rdi
testl %eax, %eax
je 0x57e0
callq 0x4ce7
movq %rax, %rdi
callq 0x1e5a
movq %rbx, %rdi
callq 0x4db5
movq %rbx, %rdi
callq 0x6689
movq %rbx, %rdi
testl %eax, %eax
je 0x57ea
callq 0x5cd6
jmp 0x5976
callq 0x65cf
jmp 0x5976
callq 0x66c7
testl %eax, %eax
jne 0x598b
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4d53
movq %rbx, %rdi
testl %eax, %eax
je 0x582b
callq 0x4ce7
movq %rax, %rdi
callq 0x1e5a
movq %rbx, %rdi
callq 0x4db5
movq %rbx, %rdi
callq 0x5f7f
jmp 0x5976
movq %r15, %rsi
callq 0x4d53
movq %rbx, %rdi
testl %eax, %eax
je 0x585c
callq 0x4ce7
movq %rax, %rdi
callq 0x1e5a
movq %rbx, %rdi
callq 0x4db5
movq %rbx, %rdi
callq 0x623a
jmp 0x5976
movq %r12, %rsi
callq 0x4d53
movq %rbx, %rdi
testl %eax, %eax
je 0x588d
callq 0x4ce7
movq %rax, %rdi
callq 0x1e5a
movq %rbx, %rdi
callq 0x4db5
movq %rbx, %rdi
callq 0x6593
jmp 0x5976
movq %r13, %rsi
callq 0x4d53
testl %eax, %eax
je 0x58c1
movq %rbp, %rdi
movl $0x4c1, %esi            # imm = 0x4C1
leaq 0x279f(%rip), %rdx      # 0x8047
xorl %eax, %eax
callq 0x1176
movq %rbx, %rdi
callq 0x4ce7
cmpl $0x3b, (%rax)
jne 0x58af
jmp 0x5976
movq %rbx, %rdi
leaq 0x1745(%rip), %rsi      # 0x7010
callq 0x4d53
testl %eax, %eax
je 0x58f9
movq %rbp, %rdi
movl $0x4c4, %esi            # imm = 0x4C4
leaq 0x278d(%rip), %rdx      # 0x8070
xorl %eax, %eax
callq 0x1176
movq %rbx, %rdi
callq 0x4ce7
cmpl $0x3b, (%rax)
jne 0x58ea
jmp 0x5976
movq %rbx, %rdi
leaq 0x2797(%rip), %rsi      # 0x809a
callq 0x4d53
testl %eax, %eax
je 0x5931
movq %rbp, %rdi
movl $0x4c7, %esi            # imm = 0x4C7
leaq 0x2786(%rip), %rdx      # 0x80a1
xorl %eax, %eax
callq 0x1176
movq %rbx, %rdi
callq 0x4ce7
cmpl $0x3b, (%rax)
jne 0x5922
jmp 0x5976
movq %rbx, %rdi
movl $0x3c, %esi
callq 0x4d19
testl %eax, %eax
je 0x5951
movq %rbx, %rdi
callq 0x4ce7
cmpl $0x3b, (%rax)
jne 0x5942
jmp 0x5976
movq %rbx, %rdi
callq 0x4ce7
movq 0x10(%rax), %rax
movq (%rax), %rcx
movq %rbp, %rdi
movl $0x4cd, %esi            # imm = 0x4CD
leaq 0x275d(%rip), %rdx      # 0x80cc
xorl %eax, %eax
callq 0x140c
movq %rbx, %rdi
movl $0x3e, %esi
callq 0x4d19
testl %eax, %eax
je 0x579e
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq