// File: /workspace/github_c_makefile_star2_O0/theovosse[P]llgen/llgen.c
// Function: CreateGuard
static void CreateGuard(Boolean guard, Boolean generateCode, Boolean empty, int indent, TREE firsts, Boolean firstOfRule, Boolean *usesLA) {
	if (guard) {
		if (generateCode) {
			doIndent(indent);
			fputs(targetLanguage->owner, outputFile);
			targetLanguage->startFunctionCall(outputFile, "waitForToken", NULL, NULL);
			targetLanguage->nextCallParameter(outputFile);
			if (firsts == NULL) {
				fputs("follow", outputFile);
			} else if (empty) {
				fputs("uniteTokenSets(", outputFile);
                if (targetLanguage->requiresLocalLTSetStorage) {
                    targetLanguage->pointerToArray(outputFile, "ltSet", -1);
                    fputs(", ", outputFile);
                }
                TokenSetName2(firsts);
				fputs(", follow)", outputFile);
			} else {
				TokenSetName2(firsts);
			}
			targetLanguage->nextCallParameter(outputFile);
			targetLanguage->nextCallParameterSymbol(outputFile, "follow");
			targetLanguage->endFunctionCall(outputFile);
            fputs(targetLanguage->terminateStatement, outputFile);
			if (HasProperty("showfirsts")) {
				fputs(" /* ", outputFile);
				PrintTree(outputFile, firsts);
				fputs(" */", outputFile);
			}
			if (firstOfRule) {
				ifCondition(true, indent);
				fprintf(outputFile, "!tokenInCommon(%scurrSymbol, ", targetLanguage->owner);
                TokenSetName2(firsts);
                fputs(")", outputFile);
                ifCondition(false, indent);
			}
		} else {
			if (firsts != NULL && empty) {
				*usesLA = true;
			}
			CreateTokenSet2(outputFile, firsts);
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %r9w, %ax
movq 0x10(%rbp), %r9
movw %di, -0x2(%rbp)
movw %si, -0x4(%rbp)
movw %dx, -0x6(%rbp)
movl %ecx, -0xc(%rbp)
movq %r8, -0x18(%rbp)
movw %ax, -0x1a(%rbp)
cmpw $0x0, -0x2(%rbp)
je 0xb8e3
cmpw $0x0, -0x4(%rbp)
je 0xb8b8
movl -0xc(%rbp), %edi
callq 0x4000
movq 0x14ab4(%rip), %rax     # 0x20170
movq 0x38(%rax), %rdi
movq 0x15671(%rip), %rsi     # 0x20d38
callq 0x3100
movq 0x14a9d(%rip), %rax     # 0x20170
movq 0x130(%rax), %rax
movq 0x15657(%rip), %rdi     # 0x20d38
leaq 0xe5a4(%rip), %rsi      # 0x19c8c
xorl %ecx, %ecx
movq %rcx, %rdx
callq *%rax
movq 0x14a7a(%rip), %rax     # 0x20170
movq 0x138(%rax), %rax
movq 0x15634(%rip), %rdi     # 0x20d38
callq *%rax
cmpq $0x0, -0x18(%rbp)
jne 0xb725
movq 0x15624(%rip), %rsi     # 0x20d38
leaq 0xe687(%rip), %rdi      # 0x19da2
callq 0x3100
jmp 0xb7ae
cmpw $0x0, -0x6(%rbp)
je 0xb7a3
movq 0x15605(%rip), %rsi     # 0x20d38
leaq 0xe335(%rip), %rdi      # 0x19a6f
callq 0x3100
movq 0x14a2a(%rip), %rax     # 0x20170
cmpw $0x0, 0x10(%rax)
je 0xb785
movq 0x14a1c(%rip), %rax     # 0x20170
movq 0x100(%rax), %rax
movq 0x155d6(%rip), %rdi     # 0x20d38
leaq 0xe316(%rip), %rsi      # 0x19a7f
movq $-0x1, %rdx
callq *%rax
movq 0x155bf(%rip), %rsi     # 0x20d38
leaq 0xddf3(%rip), %rdi      # 0x19573
callq 0x3100
movq -0x18(%rbp), %rdi
callq 0xb300
movq 0x155a3(%rip), %rsi     # 0x20d38
leaq 0xe4fd(%rip), %rdi      # 0x19c99
callq 0x3100
jmp 0xb7ac
movq -0x18(%rbp), %rdi
callq 0xb300
jmp 0xb7ae
movq 0x149bb(%rip), %rax     # 0x20170
movq 0x138(%rax), %rax
movq 0x15575(%rip), %rdi     # 0x20d38
callq *%rax
movq 0x149a4(%rip), %rax     # 0x20170
movq 0x140(%rax), %rax
movq 0x1555e(%rip), %rdi     # 0x20d38
leaq 0xe5c1(%rip), %rsi      # 0x19da2
callq *%rax
movq 0x14986(%rip), %rax     # 0x20170
movq 0x148(%rax), %rax
movq 0x15540(%rip), %rdi     # 0x20d38
callq *%rax
movq 0x1496f(%rip), %rax     # 0x20170
movq 0x80(%rax), %rdi
movq 0x15529(%rip), %rsi     # 0x20d38
callq 0x3100
leaq 0xe488(%rip), %rdi      # 0x19ca3
callq 0x4940
cmpw $0x0, %ax
je 0xb85c
movq 0x1550b(%rip), %rsi     # 0x20d38
leaq 0xe47a(%rip), %rdi      # 0x19cae
callq 0x3100
movq 0x154f8(%rip), %rdi     # 0x20d38
movq -0x18(%rbp), %rsi
callq 0xaff0
movq 0x154e8(%rip), %rsi     # 0x20d38
leaq 0x10025(%rip), %rdi     # 0x1b87c
callq 0x3100
cmpw $0x0, -0x1a(%rbp)
je 0xb8b6
movl -0xc(%rbp), %esi
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0xaf10
movq 0x154c1(%rip), %rdi     # 0x20d38
movq 0x148f2(%rip), %rax     # 0x20170
movq 0x38(%rax), %rdx
leaq 0xe42a(%rip), %rsi      # 0x19cb3
movb $0x0, %al
callq 0x3140
movq -0x18(%rbp), %rdi
callq 0xb300
movq 0x15498(%rip), %rsi     # 0x20d38
leaq 0xf757(%rip), %rdi      # 0x1affe
callq 0x3100
movl -0xc(%rbp), %esi
xorl %edi, %edi
callq 0xaf10
jmp 0xb8e1
cmpq $0x0, -0x18(%rbp)
je 0xb8d1
movswl -0x6(%rbp), %eax
cmpl $0x0, %eax
je 0xb8d1
movq 0x10(%rbp), %rax
movw $0xffff, (%rax)         # imm = 0xFFFF
movq 0x15460(%rip), %rdi     # 0x20d38
movq -0x18(%rbp), %rsi
callq 0xb3e0
jmp 0xb8e3
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)