// File: /workspace/github_c_makefile_star2_O3/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 0x71ae
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 0x71d8
movq (%rax), %r12
movq 0x8(%rax), %r14
movq 0x10(%rax), %r13
jmp 0x71e1
xorl %r14d, %r14d
xorl %r12d, %r12d
xorl %r13d, %r13d
movq %rbx, 0x12988(%rip)     # 0x19b70
movq (%rbx), %rdx
leaq 0xaaf6(%rip), %rsi      # 0x11ce8
leaq 0x10(%rsp), %rdi
xorl %eax, %eax
callq 0x31f0
leaq 0xaaef(%rip), %rdi      # 0x11cf4
callq 0x628f
testw %ax, %ax
je 0x7268
movq 0x128d2(%rip), %rsi     # 0x19ae8
leaq 0xaabe(%rip), %rdi      # 0x11cdb
callq 0x3110
movq 0x128bf(%rip), %rdi     # 0x19ae8
movq 0x8(%rbx), %rsi
callq 0x94e0
movq 0x128af(%rip), %rsi     # 0x19ae8
leaq 0xaabf(%rip), %rdi      # 0x11cff
callq 0x3110
movq 0x1289c(%rip), %rdi     # 0x19ae8
movq 0x10(%rbx), %rsi
callq 0x94e0
movq 0x1288c(%rip), %rsi     # 0x19ae8
leaq 0xa6d3(%rip), %rdi      # 0x11936
callq 0x3110
leaq 0xa19c(%rip), %rdi      # 0x1140b
callq 0x628f
testw %ax, %ax
je 0x7298
movq 0x12868(%rip), %rdi     # 0x19ae8
movl 0x20(%rbx), %edx
movq 0x11efe(%rip), %rcx     # 0x19188
leaq 0xa17f(%rip), %rsi      # 0x11410
xorl %eax, %eax
callq 0x3160
movl 0x12852(%rip), %edi     # 0x19af0
callq 0x420f
movq 0x1283e(%rip), %rdi     # 0x19ae8
movq (%rbx), %rsi
movq 0x40(%rbx), %rdx
movq %r14, %rcx
callq 0x781b
movq 0x11ec0(%rip), %rax     # 0x19180
movq 0x12821(%rip), %rdi     # 0x19ae8
leaq 0xaa2a(%rip), %rsi      # 0x11cf8
xorl %edx, %edx
callq *0x118(%rax)
movq 0x11ea3(%rip), %rax     # 0x19180
movq 0x12804(%rip), %rdi     # 0x19ae8
leaq 0x11e45(%rip), %rsi     # 0x19130
movl $0x1, %edx
callq *0x120(%rax)
movq 0x127eb(%rip), %rdi     # 0x19ae8
movq 0x11e7c(%rip), %rax     # 0x19180
callq *0x128(%rax)
movl 0x127e0(%rip), %edi     # 0x19af0
callq 0x424c
testq %r14, %r14
setne %al
testq %r12, %r12
setne %bpl
andb %al, %bpl
cmpb $0x1, %bpl
jne 0x7379
movl 0x127bf(%rip), %edi     # 0x19af0
incl %edi
callq 0x420f
movq 0x127a9(%rip), %r15     # 0x19ae8
movq (%r14), %rsi
movq (%r12), %rdx
movq 0x11e33(%rip), %rax     # 0x19180
movq 0xd0(%rax), %rax
testq %r13, %r13
je 0x735f
movq (%r13), %rcx
jmp 0x7361
xorl %ecx, %ecx
movq %r15, %rdi
callq *%rax
movq 0x11e13(%rip), %rax     # 0x19180
movq 0x78(%rax), %rdi
movq %r15, %rsi
callq 0x3110
cmpw $0x0, 0x32(%rbx)
je 0x73d3
movq 0x11df9(%rip), %rax     # 0x19180
cmpw $0x0, 0x10(%rax)
je 0x73d3
movl 0x1275c(%rip), %edi     # 0x19af0
incl %edi
callq 0x420f
movq 0x12746(%rip), %r14     # 0x19ae8
movq 0x11dd7(%rip), %rax     # 0x19180
leaq 0x11d80(%rip), %rsi     # 0x19130
leaq 0xa63c(%rip), %rdx      # 0x119f3
movq %r14, %rdi
callq *0xc8(%rax)
movq 0x11db9(%rip), %rax     # 0x19180
movq 0x78(%rax), %rdi
movq %r14, %rsi
callq 0x3110
leaq 0xa930(%rip), %rdi      # 0x11d0a
callq 0x628f
testw %ax, %ax
je 0x7488
movl 0x12702(%rip), %edi     # 0x19af0
incl %edi
callq 0x420f
movq 0x11d84(%rip), %rax     # 0x19180
movq 0x126e5(%rip), %rdi     # 0x19ae8
leaq 0xa906(%rip), %rsi      # 0x11d10
xorl %edx, %edx
xorl %ecx, %ecx
callq *0x130(%rax)
movq 0x11d65(%rip), %rax     # 0x19180
movq 0x126c6(%rip), %rdi     # 0x19ae8
callq *0x138(%rax)
movq 0x11d51(%rip), %rax     # 0x19180
movq 0x126b2(%rip), %rdi     # 0x19ae8
leaq 0xa7bd(%rip), %r14      # 0x11bfa
movq %r14, %rsi
callq *0x140(%rax)
movq 0x11d33(%rip), %rax     # 0x19180
movq 0x12694(%rip), %rdi     # 0x19ae8
movq (%rbx), %rsi
callq *0x140(%rax)
movq 0x11d1c(%rip), %rax     # 0x19180
movq 0x1267d(%rip), %rdi     # 0x19ae8
movq %r14, %rsi
callq *0x140(%rax)
movq 0x11d05(%rip), %rax     # 0x19180
movq 0x12666(%rip), %rdi     # 0x19ae8
callq *0x148(%rax)
movq 0x18(%rbx), %rsi
movq (%rbx), %r9
movq 0x10(%rbx), %rcx
movl 0x12656(%rip), %r8d     # 0x19af0
incl %r8d
movl 0x20(%rbx), %eax
subq $0x8, %rsp
leaq 0x16(%rsp), %r10
leaq 0x9d08(%rip), %r11      # 0x111b8
movq %rbx, %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
pushq %rax
pushq %r10
pushq $0x0
pushq $-0x1
pushq %r11
callq 0x7a91
addq $0x30, %rsp
testb %bpl, %bpl
je 0x750d
movl 0x1261b(%rip), %edi     # 0x19af0
incl %edi
callq 0x420f
movq 0x12605(%rip), %r14     # 0x19ae8
movq (%r12), %rsi
movq 0x11c92(%rip), %rax     # 0x19180
movq %r14, %rdi
callq *0xd8(%rax)
movq 0x11c82(%rip), %rax     # 0x19180
movq 0x80(%rax), %rdi
movq %r14, %rsi
callq 0x3110
leaq 0xa7f6(%rip), %rdi      # 0x11d0a
callq 0x628f
testw %ax, %ax
je 0x75c2
movl 0x125c8(%rip), %edi     # 0x19af0
incl %edi
callq 0x420f
movq 0x11c4a(%rip), %rax     # 0x19180
movq 0x125ab(%rip), %rdi     # 0x19ae8
leaq 0xa7dc(%rip), %rsi      # 0x11d20
xorl %edx, %edx
xorl %ecx, %ecx
callq *0x130(%rax)
movq 0x11c2b(%rip), %rax     # 0x19180
movq 0x1258c(%rip), %rdi     # 0x19ae8
callq *0x138(%rax)
movq 0x11c17(%rip), %rax     # 0x19180
movq 0x12578(%rip), %rdi     # 0x19ae8
leaq 0xa683(%rip), %r14      # 0x11bfa
movq %r14, %rsi
callq *0x140(%rax)
movq 0x11bf9(%rip), %rax     # 0x19180
movq 0x1255a(%rip), %rdi     # 0x19ae8
movq (%rbx), %rsi
callq *0x140(%rax)
movq 0x11be2(%rip), %rax     # 0x19180
movq 0x12543(%rip), %rdi     # 0x19ae8
movq %r14, %rsi
callq *0x140(%rax)
movq 0x11bcb(%rip), %rax     # 0x19180
movq 0x1252c(%rip), %rdi     # 0x19ae8
callq *0x148(%rax)
movl 0x12528(%rip), %edi     # 0x19af0
callq 0x420f
movq 0x12514(%rip), %rsi     # 0x19ae8
leaq 0xa753(%rip), %rdi      # 0x11d2e
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3110