// File: /workspace/github_c_makefile_star2_O1/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 0x72d7
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 0x72f9
movq (%rax), %r12
jmp 0x72fc
xorl %r12d, %r12d
testq %rax, %rax
je 0x7307
movq 0x8(%rax), %r14
jmp 0x730a
xorl %r14d, %r14d
testq %rax, %rax
je 0x7315
movq 0x10(%rax), %r13
jmp 0x7318
xorl %r13d, %r13d
movq %rbx, 0x12851(%rip)     # 0x19b70
movq (%rbx), %rdx
leaq 0xa9c7(%rip), %rsi      # 0x11cf0
leaq 0x10(%rsp), %rdi
xorl %eax, %eax
callq 0x31f0
leaq 0xa9c0(%rip), %rdi      # 0x11cfc
callq 0x63b8
testw %ax, %ax
je 0x739f
movq 0x1279b(%rip), %rsi     # 0x19ae8
leaq 0xa98f(%rip), %rdi      # 0x11ce3
callq 0x3110
movq 0x12788(%rip), %rdi     # 0x19ae8
movq 0x8(%rbx), %rsi
callq 0x96b2
movq 0x12778(%rip), %rsi     # 0x19ae8
leaq 0xa990(%rip), %rdi      # 0x11d07
callq 0x3110
movq 0x12765(%rip), %rdi     # 0x19ae8
movq 0x10(%rbx), %rsi
callq 0x96b2
movq 0x12755(%rip), %rsi     # 0x19ae8
leaq 0xa5a4(%rip), %rdi      # 0x1193e
callq 0x3110
leaq 0xa06d(%rip), %rdi      # 0x11413
callq 0x63b8
testw %ax, %ax
je 0x73cf
movq 0x12731(%rip), %rdi     # 0x19ae8
movl 0x20(%rbx), %edx
movq 0x11dc7(%rip), %rcx     # 0x19188
leaq 0xa050(%rip), %rsi      # 0x11418
xorl %eax, %eax
callq 0x3160
movl 0x1271b(%rip), %edi     # 0x19af0
callq 0x4284
movq 0x12707(%rip), %rdi     # 0x19ae8
movq (%rbx), %rsi
movq 0x40(%rbx), %rdx
movq %r14, %rcx
callq 0x794c
movq 0x11d89(%rip), %rax     # 0x19180
movq 0x126ea(%rip), %rdi     # 0x19ae8
leaq 0xa8fb(%rip), %rsi      # 0x11d00
xorl %edx, %edx
callq *0x118(%rax)
movq 0x11d6c(%rip), %rax     # 0x19180
movq 0x126cd(%rip), %rdi     # 0x19ae8
leaq 0x11d0e(%rip), %rsi     # 0x19130
movl $0x1, %edx
callq *0x120(%rax)
movq 0x126b4(%rip), %rdi     # 0x19ae8
movq 0x11d45(%rip), %rax     # 0x19180
callq *0x128(%rax)
movl 0x126a9(%rip), %edi     # 0x19af0
callq 0x42c1
testq %r14, %r14
setne %al
testq %r12, %r12
setne %bpl
andb %al, %bpl
cmpb $0x1, %bpl
jne 0x74b0
movl 0x12688(%rip), %edi     # 0x19af0
incl %edi
callq 0x4284
movq 0x12672(%rip), %r15     # 0x19ae8
movq 0x11d03(%rip), %rax     # 0x19180
movq 0xd0(%rax), %rax
movq (%r14), %rsi
movq (%r12), %rdx
testq %r13, %r13
je 0x7496
movq (%r13), %rcx
jmp 0x7498
xorl %ecx, %ecx
movq %r15, %rdi
callq *%rax
movq 0x11cdc(%rip), %rax     # 0x19180
movq 0x78(%rax), %rdi
movq %r15, %rsi
callq 0x3110
cmpw $0x0, 0x32(%rbx)
je 0x750a
movq 0x11cc2(%rip), %rax     # 0x19180
cmpw $0x0, 0x10(%rax)
je 0x750a
movl 0x12625(%rip), %edi     # 0x19af0
incl %edi
callq 0x4284
movq 0x1260f(%rip), %r14     # 0x19ae8
movq 0x11ca0(%rip), %rax     # 0x19180
leaq 0x11c49(%rip), %rsi     # 0x19130
leaq 0xa50d(%rip), %rdx      # 0x119fb
movq %r14, %rdi
callq *0xc8(%rax)
movq 0x11c82(%rip), %rax     # 0x19180
movq 0x78(%rax), %rdi
movq %r14, %rsi
callq 0x3110
leaq 0xa801(%rip), %rdi      # 0x11d12
callq 0x63b8
testw %ax, %ax
je 0x75bf
movl 0x125cb(%rip), %edi     # 0x19af0
incl %edi
callq 0x4284
movq 0x11c4d(%rip), %rax     # 0x19180
movq 0x125ae(%rip), %rdi     # 0x19ae8
leaq 0xa7d7(%rip), %rsi      # 0x11d18
xorl %edx, %edx
xorl %ecx, %ecx
callq *0x130(%rax)
movq 0x11c2e(%rip), %rax     # 0x19180
movq 0x1258f(%rip), %rdi     # 0x19ae8
callq *0x138(%rax)
movq 0x11c1a(%rip), %rax     # 0x19180
movq 0x1257b(%rip), %rdi     # 0x19ae8
leaq 0xa68e(%rip), %r14      # 0x11c02
movq %r14, %rsi
callq *0x140(%rax)
movq 0x11bfc(%rip), %rax     # 0x19180
movq 0x1255d(%rip), %rdi     # 0x19ae8
movq (%rbx), %rsi
callq *0x140(%rax)
movq 0x11be5(%rip), %rax     # 0x19180
movq 0x12546(%rip), %rdi     # 0x19ae8
movq %r14, %rsi
callq *0x140(%rax)
movq 0x11bce(%rip), %rax     # 0x19180
movq 0x1252f(%rip), %rdi     # 0x19ae8
callq *0x148(%rax)
movq 0x18(%rbx), %rsi
movq (%rbx), %r9
movq 0x10(%rbx), %rcx
movl 0x1251f(%rip), %r8d     # 0x19af0
incl %r8d
movl 0x20(%rbx), %eax
subq $0x8, %rsp
leaq 0x16(%rsp), %r10
leaq 0x9bd1(%rip), %r11      # 0x111b8
movq %rbx, %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
pushq %rax
pushq %r10
pushq $0x0
pushq $-0x1
pushq %r11
callq 0x7bfb
addq $0x30, %rsp
testb %bpl, %bpl
je 0x7644
movl 0x124e4(%rip), %edi     # 0x19af0
incl %edi
callq 0x4284
movq 0x124ce(%rip), %r14     # 0x19ae8
movq (%r12), %rsi
movq 0x11b5b(%rip), %rax     # 0x19180
movq %r14, %rdi
callq *0xd8(%rax)
movq 0x11b4b(%rip), %rax     # 0x19180
movq 0x80(%rax), %rdi
movq %r14, %rsi
callq 0x3110
leaq 0xa6c7(%rip), %rdi      # 0x11d12
callq 0x63b8
testw %ax, %ax
je 0x76f9
movl 0x12491(%rip), %edi     # 0x19af0
incl %edi
callq 0x4284
movq 0x11b13(%rip), %rax     # 0x19180
movq 0x12474(%rip), %rdi     # 0x19ae8
leaq 0xa6ad(%rip), %rsi      # 0x11d28
xorl %edx, %edx
xorl %ecx, %ecx
callq *0x130(%rax)
movq 0x11af4(%rip), %rax     # 0x19180
movq 0x12455(%rip), %rdi     # 0x19ae8
callq *0x138(%rax)
movq 0x11ae0(%rip), %rax     # 0x19180
movq 0x12441(%rip), %rdi     # 0x19ae8
leaq 0xa554(%rip), %r14      # 0x11c02
movq %r14, %rsi
callq *0x140(%rax)
movq 0x11ac2(%rip), %rax     # 0x19180
movq 0x12423(%rip), %rdi     # 0x19ae8
movq (%rbx), %rsi
callq *0x140(%rax)
movq 0x11aab(%rip), %rax     # 0x19180
movq 0x1240c(%rip), %rdi     # 0x19ae8
movq %r14, %rsi
callq *0x140(%rax)
movq 0x11a94(%rip), %rax     # 0x19180
movq 0x123f5(%rip), %rdi     # 0x19ae8
callq *0x148(%rax)
movl 0x123f1(%rip), %edi     # 0x19af0
callq 0x4284
movq 0x123dd(%rip), %rsi     # 0x19ae8
leaq 0xa624(%rip), %rdi      # 0x11d36
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3110