// File: /workspace/github_c_makefile_star2_O2/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:
cmpl $0x0, 0x38(%rdi)
je 0x67f5
retq
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %rdi, %rbx
movq 0x50(%rdi), %rax
testq %rax, %rax
je 0x681f
movq (%rax), %r12
movq 0x8(%rax), %r14
movq 0x10(%rax), %r13
jmp 0x6828
xorl %r14d, %r14d
xorl %r12d, %r12d
xorl %r13d, %r13d
movq %rbx, 0x12341(%rip)     # 0x18b70
movq (%rbx), %rdx
leaq 0xa48f(%rip), %rsi      # 0x10cc8
leaq 0x10(%rsp), %rdi
xorl %eax, %eax
callq 0x31f0
leaq 0xa488(%rip), %rdi      # 0x10cd4
callq 0x6126
testw %ax, %ax
je 0x68af
movq 0x1228b(%rip), %rsi     # 0x18ae8
leaq 0xa457(%rip), %rdi      # 0x10cbb
callq 0x3110
movq 0x12278(%rip), %rdi     # 0x18ae8
movq 0x8(%rbx), %rsi
callq 0x8cca
movq 0x12268(%rip), %rsi     # 0x18ae8
leaq 0xa458(%rip), %rdi      # 0x10cdf
callq 0x3110
movq 0x12255(%rip), %rdi     # 0x18ae8
movq 0x10(%rbx), %rsi
callq 0x8cca
movq 0x12245(%rip), %rsi     # 0x18ae8
leaq 0xa06c(%rip), %rdi      # 0x10916
callq 0x3110
leaq 0x9b35(%rip), %rdi      # 0x103eb
callq 0x6126
testw %ax, %ax
je 0x68df
movq 0x12221(%rip), %rdi     # 0x18ae8
movl 0x20(%rbx), %edx
movq 0x118b7(%rip), %rcx     # 0x18188
leaq 0x9b18(%rip), %rsi      # 0x103f0
xorl %eax, %eax
callq 0x3150
movl 0x1220b(%rip), %edi     # 0x18af0
callq 0x39c6
movq 0x121f7(%rip), %rdi     # 0x18ae8
movq (%rbx), %rsi
movq 0x40(%rbx), %rdx
movq %r14, %rcx
callq 0x6e3a
movq 0x11879(%rip), %rax     # 0x18180
movq 0x121da(%rip), %rdi     # 0x18ae8
leaq 0xa3c3(%rip), %rsi      # 0x10cd8
xorl %edx, %edx
callq *0x118(%rax)
movq 0x1185c(%rip), %rax     # 0x18180
movq 0x121bd(%rip), %rdi     # 0x18ae8
leaq 0x117fe(%rip), %rsi     # 0x18130
pushq $0x1
popq %rdx
callq *0x120(%rax)
movq 0x121a6(%rip), %rdi     # 0x18ae8
movq 0x11837(%rip), %rax     # 0x18180
callq *0x128(%rax)
movl 0x1219b(%rip), %edi     # 0x18af0
callq 0x3a00
testq %r14, %r14
setne %al
testq %r12, %r12
setne %bpl
andb %al, %bpl
cmpb $0x1, %bpl
jne 0x69be
movl 0x1217a(%rip), %edi     # 0x18af0
incl %edi
callq 0x39c6
movq 0x12164(%rip), %r15     # 0x18ae8
movq 0x117f5(%rip), %rax     # 0x18180
movq 0xd0(%rax), %rax
movq (%r14), %rsi
movq (%r12), %rdx
testq %r13, %r13
je 0x69a4
movq (%r13), %rcx
jmp 0x69a6
xorl %ecx, %ecx
movq %r15, %rdi
callq *%rax
movq 0x117ce(%rip), %rax     # 0x18180
movq 0x78(%rax), %rdi
movq %r15, %rsi
callq 0x3110
cmpw $0x0, 0x32(%rbx)
je 0x6a18
movq 0x117b4(%rip), %rax     # 0x18180
cmpw $0x0, 0x10(%rax)
je 0x6a18
movl 0x12117(%rip), %edi     # 0x18af0
incl %edi
callq 0x39c6
movq 0x12101(%rip), %r14     # 0x18ae8
movq 0x11792(%rip), %rax     # 0x18180
leaq 0x1173b(%rip), %rsi     # 0x18130
leaq 0x9fd7(%rip), %rdx      # 0x109d3
movq %r14, %rdi
callq *0xc8(%rax)
movq 0x11774(%rip), %rax     # 0x18180
movq 0x78(%rax), %rdi
movq %r14, %rsi
callq 0x3110
leaq 0xa2cb(%rip), %rdi      # 0x10cea
callq 0x6126
testw %ax, %ax
je 0x6acd
movl 0x120bd(%rip), %edi     # 0x18af0
incl %edi
callq 0x39c6
movq 0x1173f(%rip), %rax     # 0x18180
movq 0x120a0(%rip), %rdi     # 0x18ae8
leaq 0xa2a1(%rip), %rsi      # 0x10cf0
xorl %edx, %edx
xorl %ecx, %ecx
callq *0x130(%rax)
movq 0x11720(%rip), %rax     # 0x18180
movq 0x12081(%rip), %rdi     # 0x18ae8
callq *0x138(%rax)
movq 0x1170c(%rip), %rax     # 0x18180
movq 0x1206d(%rip), %rdi     # 0x18ae8
leaq 0xa158(%rip), %r14      # 0x10bda
movq %r14, %rsi
callq *0x140(%rax)
movq 0x116ee(%rip), %rax     # 0x18180
movq 0x1204f(%rip), %rdi     # 0x18ae8
movq (%rbx), %rsi
callq *0x140(%rax)
movq 0x116d7(%rip), %rax     # 0x18180
movq 0x12038(%rip), %rdi     # 0x18ae8
movq %r14, %rsi
callq *0x140(%rax)
movq 0x116c0(%rip), %rax     # 0x18180
movq 0x12021(%rip), %rdi     # 0x18ae8
callq *0x148(%rax)
movq 0x18(%rbx), %rsi
movq (%rbx), %r9
movq 0x10(%rbx), %rcx
movl 0x12011(%rip), %r8d     # 0x18af0
incl %r8d
movl 0x20(%rbx), %eax
subq $0x8, %rsp
leaq 0x16(%rsp), %r10
leaq 0x96a3(%rip), %r11      # 0x10198
pushq $-0x1
popq %rdx
movq %rbx, %rdi
pushq %rax
pushq %r10
pushq $0x0
pushq $-0x1
pushq %r11
callq 0x715c
addq $0x30, %rsp
testb %bpl, %bpl
je 0x6b50
movl 0x11fd8(%rip), %edi     # 0x18af0
incl %edi
callq 0x39c6
movq 0x11fc2(%rip), %r14     # 0x18ae8
movq (%r12), %rsi
movq 0x1164f(%rip), %rax     # 0x18180
movq %r14, %rdi
callq *0xd8(%rax)
movq 0x1163f(%rip), %rax     # 0x18180
movq 0x80(%rax), %rdi
movq %r14, %rsi
callq 0x3110
leaq 0xa193(%rip), %rdi      # 0x10cea
callq 0x6126
testw %ax, %ax
je 0x6c05
movl 0x11f85(%rip), %edi     # 0x18af0
incl %edi
callq 0x39c6
movq 0x11607(%rip), %rax     # 0x18180
movq 0x11f68(%rip), %rdi     # 0x18ae8
leaq 0xa179(%rip), %rsi      # 0x10d00
xorl %edx, %edx
xorl %ecx, %ecx
callq *0x130(%rax)
movq 0x115e8(%rip), %rax     # 0x18180
movq 0x11f49(%rip), %rdi     # 0x18ae8
callq *0x138(%rax)
movq 0x115d4(%rip), %rax     # 0x18180
movq 0x11f35(%rip), %rdi     # 0x18ae8
leaq 0xa020(%rip), %r14      # 0x10bda
movq %r14, %rsi
callq *0x140(%rax)
movq 0x115b6(%rip), %rax     # 0x18180
movq 0x11f17(%rip), %rdi     # 0x18ae8
movq (%rbx), %rsi
callq *0x140(%rax)
movq 0x1159f(%rip), %rax     # 0x18180
movq 0x11f00(%rip), %rdi     # 0x18ae8
movq %r14, %rsi
callq *0x140(%rax)
movq 0x11588(%rip), %rax     # 0x18180
movq 0x11ee9(%rip), %rdi     # 0x18ae8
callq *0x148(%rax)
movl 0x11ee5(%rip), %edi     # 0x18af0
callq 0x39c6
movq 0x11ed1(%rip), %rsi     # 0x18ae8
leaq 0xa0f0(%rip), %rdi      # 0x10d0e
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3110