// File: /workspace/github_c_makefile_star2_O0/theovosse[P]llgen/llgen.c
// Function: PrintCode
static void PrintCode(char *str, NameType prev, NameType next, int indent) {
	int prefixLength = 0;
	char *sstr = str;
	int length;

    doIndent(indent);
    /* Skip until first printable character; count whitespace from line start */
	for (;;) {
		if (*sstr == '\n') { prefixLength = 0; str = sstr + 1; lastLineCopied++; }
		else if (*sstr == ' ') prefixLength++;
		else if (*sstr == '\t') prefixLength = (prefixLength / tabWidth + 1) * tabWidth;
		else break;
		sstr++;
	}
    /* Copy code block, but replace leading whitespace with given indent */
	while (*str != '\0') {
		length = 0; sstr = str;
		while (*sstr != '\0' && (*sstr == ' ' || *sstr == '\t')) {
			if (*sstr == ' ') length++;
			else if (*sstr == '\t') length = (length / tabWidth + 1) * tabWidth;
			sstr++;
		}
        if (*sstr == '\0' || (*sstr == '\n' && sstr[1] == '\0')) {
            // Ignore final newline
            if (*sstr == '\n') {
                lastLineCopied++;
            }
            break;
        }
		length -= prefixLength;
        doIndent(indent);
        while (length > 0) {
            fputc(' ', outputFile);
            length--;
        }
		str = sstr;
		while (*str != '\0' && *str != '\n') {
			fputc(*str++, outputFile);
		}
		if (*str == '\n') {
			str++;
			lastLineCopied++;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl $0x0, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movl -0x14(%rbp), %edi
callq 0x4000
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
jne 0xbc7c
movl $0x0, -0x18(%rbp)
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
movl 0x15113(%rip), %eax     # 0x20d84
addl $0x1, %eax
movl %eax, 0x1510a(%rip)     # 0x20d84
jmp 0xbcbe
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0xbc93
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0xbcbc
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
jne 0xbcb8
movl -0x18(%rbp), %eax
cltd
idivl 0x144d7(%rip)           # 0x20180
addl $0x1, %eax
imull 0x144cd(%rip), %eax     # 0x20180
movl %eax, -0x18(%rbp)
jmp 0xbcba
jmp 0xbccc
jmp 0xbcbc
jmp 0xbcbe
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0xbc4c
jmp 0xbcce
movq -0x8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0xbe73
movl $0x0, -0x24(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x25(%rbp)
je 0xbd25
movq -0x20(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x26(%rbp)
je 0xbd1f
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movb %al, -0x25(%rbp)
movb -0x25(%rbp), %al
testb $0x1, %al
jne 0xbd2e
jmp 0xbd7b
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0xbd45
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xbd6a
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
jne 0xbd68
movl -0x24(%rbp), %eax
cltd
idivl 0x14425(%rip)           # 0x20180
addl $0x1, %eax
imull 0x1441b(%rip), %eax     # 0x20180
movl %eax, -0x24(%rbp)
jmp 0xbd6a
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0xbced
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0xbda0
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
jne 0xbdc0
movq -0x20(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x0, %eax
jne 0xbdc0
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
jne 0xbdbb
movl 0x14fd2(%rip), %eax     # 0x20d84
addl $0x1, %eax
movl %eax, 0x14fc9(%rip)     # 0x20d84
jmp 0xbe73
movl -0x18(%rbp), %ecx
movl -0x24(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x24(%rbp)
movl -0x14(%rbp), %edi
callq 0x4000
cmpl $0x0, -0x24(%rbp)
jle 0xbdf5
movq 0x14f58(%rip), %rsi     # 0x20d38
movl $0x20, %edi
callq 0x3120
movl -0x24(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xbdd3
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x27(%rbp)
je 0xbe1e
movq -0x8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0x27(%rbp)
movb -0x27(%rbp), %al
testb $0x1, %al
jne 0xbe27
jmp 0xbe47
movq -0x8(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x8(%rbp)
movsbl (%rax), %edi
movq 0x14ef8(%rip), %rsi     # 0x20d38
callq 0x3120
jmp 0xbdfd
movq -0x8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
jne 0xbe6e
movq -0x8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
movl 0x14f1f(%rip), %eax     # 0x20d84
addl $0x1, %eax
movl %eax, 0x14f16(%rip)     # 0x20d84
jmp 0xbcce
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)