// File: /workspace/github_c_makefile_star2_O0/theovosse[P]llgen/llgen.c
// Function: CreateProcs
static void CreateProcs(Name name, void *dummy) {
#pragma unused(dummy)
	char errormsg[256];
	Boolean dummyLA;

	if (name->nameType == identifier) {
		RuleResult res = name->ruleResult;
		Name returnVariable = res == NULL? NULL: res->returnVariable;
		Name returnType = res == NULL? NULL: res->returnType;
		Name initialValue = res == NULL? NULL: res->initialValue;
		currProc = name;
		sprintf(errormsg, "%s expected", name->name);
		if (HasProperty("showfollow")) {
			fputs(" /* firsts: ", outputFile);
			PrintTree(outputFile, name->first);
			fputs(", follow: ", outputFile);
			PrintTree(outputFile, name->follow);
			fputs(" */\n", outputFile);
		}
		if (HasProperty("line")) {
			fprintf(outputFile, "#line %d \"%s\"\n", name->lineNr, inputFileName);
		}
        doIndent(globalIndent);
        openFunctionDeclaration(outputFile, name->name, name->arglist, returnType);
        targetLanguage->parameterDeclarationName(outputFile, "follow", 0);
        targetLanguage->nextDeclarationParameterSymbol(outputFile, llTokenSetTypeString, 1);
        closeFunctionDeclaration(outputFile);
        startBlock(globalIndent);
		if (returnType != NULL && returnVariable != NULL) {
            doIndent(globalIndent + 1);
            PrintLocalDeclarationWithInitialization(outputFile, returnType, returnVariable, initialValue);
		}
		if (name->usesLA && targetLanguage->requiresLocalLTSetStorage) {
            doIndent(globalIndent + 1);
            PrintLocalDeclaration(outputFile, llTokenSetTypeString, "ltSet");
		}
		if (HasProperty("debug")) {
            doIndent(globalIndent + 1);
			targetLanguage->startFunctionCall(outputFile, "debugTraceStart", NULL, NULL);
			targetLanguage->nextCallParameter(outputFile);
			targetLanguage->nextCallParameterSymbol(outputFile, "\"");
			targetLanguage->nextCallParameterSymbol(outputFile, name->name);
			targetLanguage->nextCallParameterSymbol(outputFile, "\"");
			targetLanguage->endFunctionCall(outputFile);
		}
		PrintAlternatives(name, name->rules, true, name->follow, globalIndent + 1, name->name, "", true, NULL, &dummyLA, name->lineNr);
		if (returnType != NULL && returnVariable != NULL) {
            doIndent(globalIndent + 1);
            PrintReturnValue(outputFile, returnVariable->name);
		}
		if (HasProperty("debug")) {
            doIndent(globalIndent + 1);
			targetLanguage->startFunctionCall(outputFile, "debugTraceEnd", NULL, NULL);
			targetLanguage->nextCallParameter(outputFile);
			targetLanguage->nextCallParameterSymbol(outputFile, "\"");
			targetLanguage->nextCallParameterSymbol(outputFile, name->name);
			targetLanguage->nextCallParameterSymbol(outputFile, "\"");
			targetLanguage->endFunctionCall(outputFile);
		}
        doIndent(globalIndent);
		fputs("}\n\n", outputFile);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jne 0x8546
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movq %rax, -0x120(%rbp)
cmpq $0x0, -0x120(%rbp)
jne 0x8085
xorl %eax, %eax
movq %rax, -0x140(%rbp)
jmp 0x8096
movq -0x120(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x140(%rbp)
movq -0x140(%rbp), %rax
movq %rax, -0x128(%rbp)
cmpq $0x0, -0x120(%rbp)
jne 0x80b9
xorl %eax, %eax
movq %rax, -0x148(%rbp)
jmp 0x80cb
movq -0x120(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x148(%rbp)
movq -0x148(%rbp), %rax
movq %rax, -0x130(%rbp)
cmpq $0x0, -0x120(%rbp)
jne 0x80ee
xorl %eax, %eax
movq %rax, -0x150(%rbp)
jmp 0x8100
movq -0x120(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x8(%rbp), %rax
movq %rax, 0x18cb7(%rip)     # 0x20dd0
leaq -0x110(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rdx
leaq 0x11c64(%rip), %rsi     # 0x19d92
movb $0x0, %al
callq 0x31d0
leaq 0x11c62(%rip), %rdi     # 0x19d9e
callq 0x4940
cmpw $0x0, %ax
je 0x81a8
movq 0x18bea(%rip), %rsi     # 0x20d38
leaq 0x11c30(%rip), %rdi     # 0x19d85
callq 0x3100
movq 0x18bd7(%rip), %rdi     # 0x20d38
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0xaff0
movq 0x18bc3(%rip), %rsi     # 0x20d38
leaq 0x11c2d(%rip), %rdi     # 0x19da9
callq 0x3100
movq 0x18bb0(%rip), %rdi     # 0x20d38
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0xaff0
movq 0x18b9c(%rip), %rsi     # 0x20d38
leaq 0x1181f(%rip), %rdi     # 0x199c2
callq 0x3100
leaq 0x112e8(%rip), %rdi     # 0x19497
callq 0x4940
cmpw $0x0, %ax
je 0x81dd
movq 0x18b77(%rip), %rdi     # 0x20d38
movq -0x8(%rbp), %rax
movl 0x20(%rax), %edx
movq 0x17fa9(%rip), %rcx     # 0x20178
leaq 0x112c6(%rip), %rsi     # 0x1949c
movb $0x0, %al
callq 0x3140
movl 0x18b5d(%rip), %edi     # 0x20d40
callq 0x4000
movq 0x18b49(%rip), %rdi     # 0x20d38
movq -0x8(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rdx
movq -0x130(%rbp), %rcx
callq 0x87d0
movq 0x17f5f(%rip), %rax     # 0x20170
movq 0x118(%rax), %rax
movq 0x18b19(%rip), %rdi     # 0x20d38
leaq 0x11b7c(%rip), %rsi     # 0x19da2
xorl %edx, %edx
callq *%rax
movq 0x17f3f(%rip), %rax     # 0x20170
movq 0x120(%rax), %rax
movq 0x18af9(%rip), %rdi     # 0x20d38
leaq 0x17eda(%rip), %rsi     # 0x20120
movl $0x1, %edx
callq *%rax
movq 0x18ae4(%rip), %rdi     # 0x20d38
callq 0x8990
movl 0x18ae1(%rip), %edi     # 0x20d40
callq 0x4050
cmpq $0x0, -0x130(%rbp)
je 0x82a7
cmpq $0x0, -0x128(%rbp)
je 0x82a7
movl 0x18ac2(%rip), %edi     # 0x20d40
addl $0x1, %edi
callq 0x4000
movq 0x18aab(%rip), %rdi     # 0x20d38
movq -0x130(%rbp), %rsi
movq -0x128(%rbp), %rdx
movq -0x138(%rbp), %rcx
callq 0xc050
movq -0x8(%rbp), %rax
movswl 0x32(%rax), %eax
cmpl $0x0, %eax
je 0x82ec
movq 0x17eb5(%rip), %rax     # 0x20170
movswl 0x10(%rax), %eax
cmpl $0x0, %eax
je 0x82ec
movl 0x18a76(%rip), %edi     # 0x20d40
addl $0x1, %edi
callq 0x4000
movq 0x18a5f(%rip), %rdi     # 0x20d38
leaq 0x17e40(%rip), %rsi     # 0x20120
leaq 0x11798(%rip), %rdx     # 0x19a7f
callq 0xc0f0
leaq 0x11ac1(%rip), %rdi     # 0x19db4
callq 0x4940
cmpw $0x0, %ax
je 0x83bb
movl 0x18a38(%rip), %edi     # 0x20d40
addl $0x1, %edi
callq 0x4000
movq 0x17e59(%rip), %rax     # 0x20170
movq 0x130(%rax), %rax
movq 0x18a13(%rip), %rdi     # 0x20d38
leaq 0x11a8e(%rip), %rsi     # 0x19dba
xorl %ecx, %ecx
movq %rcx, %rdx
callq *%rax
movq 0x17e36(%rip), %rax     # 0x20170
movq 0x138(%rax), %rax
movq 0x189f0(%rip), %rdi     # 0x20d38
callq *%rax
movq 0x17e1f(%rip), %rax     # 0x20170
movq 0x140(%rax), %rax
movq 0x189d9(%rip), %rdi     # 0x20d38
leaq 0x11920(%rip), %rsi     # 0x19c86
callq *%rax
movq 0x17e01(%rip), %rax     # 0x20170
movq 0x140(%rax), %rax
movq 0x189bb(%rip), %rdi     # 0x20d38
movq -0x8(%rbp), %rcx
movq (%rcx), %rsi
callq *%rax
movq 0x17de3(%rip), %rax     # 0x20170
movq 0x140(%rax), %rax
movq 0x1899d(%rip), %rdi     # 0x20d38
leaq 0x118e4(%rip), %rsi     # 0x19c86
callq *%rax
movq 0x17dc5(%rip), %rax     # 0x20170
movq 0x148(%rax), %rax
movq 0x1897f(%rip), %rdi     # 0x20d38
callq *%rax
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
movl 0x1896a(%rip), %r8d     # 0x20d40
addl $0x1, %r8d
movq -0x8(%rbp), %rax
movq (%rax), %r9
movq -0x8(%rbp), %rax
movl 0x20(%rax), %eax
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
leaq 0x10e48(%rip), %r11     # 0x1923c
xorl %r10d, %r10d
leaq -0x112(%rbp), %r10
movq %r11, (%rsp)
movl $0xffffffff, 0x8(%rsp)  # imm = 0xFFFFFFFF
movq $0x0, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movl %eax, 0x20(%rsp)
callq 0x9370
cmpq $0x0, -0x130(%rbp)
je 0x8459
cmpq $0x0, -0x128(%rbp)
je 0x8459
movl 0x18905(%rip), %edi     # 0x20d40
addl $0x1, %edi
callq 0x4000
movq 0x188ee(%rip), %rdi     # 0x20d38
movq -0x128(%rbp), %rax
movq (%rax), %rsi
callq 0xc140
leaq 0x11954(%rip), %rdi     # 0x19db4
callq 0x4940
cmpw $0x0, %ax
je 0x8528
movl 0x188cb(%rip), %edi     # 0x20d40
addl $0x1, %edi
callq 0x4000
movq 0x17cec(%rip), %rax     # 0x20170
movq 0x130(%rax), %rax
movq 0x188a6(%rip), %rdi     # 0x20d38
leaq 0x11931(%rip), %rsi     # 0x19dca
xorl %ecx, %ecx
movq %rcx, %rdx
callq *%rax
movq 0x17cc9(%rip), %rax     # 0x20170
movq 0x138(%rax), %rax
movq 0x18883(%rip), %rdi     # 0x20d38
callq *%rax
movq 0x17cb2(%rip), %rax     # 0x20170
movq 0x140(%rax), %rax
movq 0x1886c(%rip), %rdi     # 0x20d38
leaq 0x117b3(%rip), %rsi     # 0x19c86
callq *%rax
movq 0x17c94(%rip), %rax     # 0x20170
movq 0x140(%rax), %rax
movq 0x1884e(%rip), %rdi     # 0x20d38
movq -0x8(%rbp), %rcx
movq (%rcx), %rsi
callq *%rax
movq 0x17c76(%rip), %rax     # 0x20170
movq 0x140(%rax), %rax
movq 0x18830(%rip), %rdi     # 0x20d38
leaq 0x11777(%rip), %rsi     # 0x19c86
callq *%rax
movq 0x17c58(%rip), %rax     # 0x20170
movq 0x148(%rax), %rax
movq 0x18812(%rip), %rdi     # 0x20d38
callq *%rax
movl 0x18812(%rip), %edi     # 0x20d40
callq 0x4000
movq 0x187fe(%rip), %rsi     # 0x20d38
leaq 0x11897(%rip), %rdi     # 0x19dd8
callq 0x3100
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
nop