// File: /workspace/github_c_makefile_star2_O0/pipde[P]deos-songlib/utils/processtab/tabparser.c
// Function: printASTTab
void 
printASTTab(ASTTab *tab, FILE *out)
	{
	int i, j, k;
	
    if (tab == 0) 
    	{
    	Fatal("'tab' parameter is null\n");
    	return;
    	}
    	
    indent(out); fprintf(out, "ASTTab\n");
    indentLevel++;
    indent(out); fprintf(out, "commandCount: %i\n", tab->commandCount);        
    for (i = 0; i < tab->commandCount; i++)
        {
        indent(out); fprintf(out, "ASTCommand\n");
        indentLevel++;
        indent(out); fprintf(out, "type: %i\n", tab->commands[i]->commandType); 
        if (tab->commands[i]->commandType == AttributeCommand)
            {
            indent(out); fprintf(out, "ASTAttribute (not supported)\n");
            indentLevel++;
            indent(out); fprintf(out, "name: %s\n", tab->commands[i]->un.attribute->name);  
            indent(out); fprintf(out, "value: %s\n", tab->commands[i]->un.attribute->value);  
            indentLevel--;
            }
        else if (tab->commands[i]->commandType == StaveCommand)
            {
            indent(out); fprintf(out, "ASTStave\n");
            indentLevel++;
            indent(out); fprintf(out, "courseCount: %i\n", tab->commands[i]->un.stave->courseCount);  
            for(j=0;j<tab->commands[i]->un.stave->courseCount;j++)
                {
                indent(out); fprintf(out, "ASTCourse\n");
                indentLevel++;
                indent(out); fprintf(out, "name: %s\n", tab->commands[i]->un.stave->courses[j]->name); 
                indent(out); fprintf(out, "measureCount: %i\n", tab->commands[i]->un.stave->courses[j]->measureCount);                
                for(k=0;k<tab->commands[i]->un.stave->courses[j]->measureCount;k++)
                    {
                    indent(out); fprintf(out, "ASTMeasure\n");
                    indentLevel++;
                    indent(out); fprintf(out, "events: %s\n", tab->commands[i]->un.stave->courses[j]->measures[k]->events);
                    indentLevel--;
                    }
                indentLevel--;
                }
              
            indent(out); fprintf(out, "timingCourse:\n");
            indentLevel++;
            indent(out); fprintf(out, "ASTCourse\n");
            indentLevel++;
            indent(out); fprintf(out, "measureCount: %i\n", tab->commands[i]->un.stave->timingCourse->measureCount);                
            for(k=0;k<tab->commands[i]->un.stave->timingCourse->measureCount;k++)
                {
                indent(out); fprintf(out, "ASTMeasure\n");
                indentLevel++;
                indent(out); fprintf(out, "events: %s\n", tab->commands[i]->un.stave->timingCourse->measures[k]->events);
                indentLevel--;
                }
            indentLevel--;
            indentLevel--;
            indentLevel--;
            }
        else if (tab->commands[i]->commandType == CommentCommand)
            {
            indent(out); fprintf(out, "Comment:\n");
            indentLevel++;
            indent(out); fprintf(out, "%s\n", tab->commands[i]->un.comment);    
            indentLevel--;
            }
        else
            {
            Fatal("*** command type %i not recognized! ***\n", tab->commands[i]->commandType);
            return;
            }

        indentLevel--;
        }
    indentLevel--;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x473a
leaq 0x3b54(%rip), %rdi      # 0x8282
movb $0x0, %al
callq 0x63e0
jmp 0x4cff
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
leaq 0x3b4d(%rip), %rsi      # 0x829b
movb $0x0, %al
callq 0x1100
movl 0x6a01(%rip), %eax      # 0xb15c
addl $0x1, %eax
movl %eax, 0x69f8(%rip)      # 0xb15c
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x8(%rax), %edx
leaq 0x3b24(%rip), %rsi      # 0x82a3
movb $0x0, %al
callq 0x1100
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x4cf0
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
leaq 0x3b04(%rip), %rsi      # 0x82b5
movb $0x0, %al
callq 0x1100
movl 0x699e(%rip), %eax      # 0xb15c
addl $0x1, %eax
movl %eax, 0x6995(%rip)      # 0xb15c
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl (%rax), %edx
leaq 0x3ad5(%rip), %rsi      # 0x82c1
movb $0x0, %al
callq 0x1100
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
cmpl $0x1, (%rax)
jne 0x48ac
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
leaq 0x3aac(%rip), %rsi      # 0x82cb
movb $0x0, %al
callq 0x1100
movl 0x6930(%rip), %eax      # 0xb15c
addl $0x1, %eax
movl %eax, 0x6927(%rip)      # 0xb15c
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdx
leaq 0x3a8a(%rip), %rsi      # 0x82e9
movb $0x0, %al
callq 0x1100
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdx
leaq 0x3a62(%rip), %rsi      # 0x82f3
movb $0x0, %al
callq 0x1100
movl 0x68be(%rip), %eax      # 0xb15c
addl $-0x1, %eax
movl %eax, 0x68b5(%rip)      # 0xb15c
jmp 0x4cd3
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
cmpl $0x2, (%rax)
jne 0x4c31
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
leaq 0x3a26(%rip), %rsi      # 0x82fe
movb $0x0, %al
callq 0x1100
movl 0x6877(%rip), %eax      # 0xb15c
addl $0x1, %eax
movl %eax, 0x686e(%rip)      # 0xb15c
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %edx
leaq 0x39f0(%rip), %rsi      # 0x8308
movb $0x0, %al
callq 0x1100
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
movq -0x8(%rbp), %rcx
movq (%rcx), %rcx
movslq -0x14(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq 0x8(%rcx), %rcx
cmpl 0x8(%rcx), %eax
jge 0x4ac4
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
leaq 0x39c0(%rip), %rsi      # 0x8319
movb $0x0, %al
callq 0x1100
movl 0x67f6(%rip), %eax      # 0xb15c
addl $0x1, %eax
movl %eax, 0x67ed(%rip)      # 0xb15c
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rdx
leaq 0x3945(%rip), %rsi      # 0x82e9
movb $0x0, %al
callq 0x1100
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl 0x10(%rax), %edx
leaq 0x3944(%rip), %rsi      # 0x8324
movb $0x0, %al
callq 0x1100
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x8(%rbp), %rcx
movq (%rcx), %rcx
movslq -0x14(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq 0x8(%rcx), %rcx
movq (%rcx), %rcx
movslq -0x18(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpl 0x10(%rcx), %eax
jge 0x4aa7
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
leaq 0x390a(%rip), %rsi      # 0x8336
movb $0x0, %al
callq 0x1100
movl 0x6723(%rip), %eax      # 0xb15c
addl $0x1, %eax
movl %eax, 0x671a(%rip)      # 0xb15c
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rdx
leaq 0x38bf(%rip), %rsi      # 0x8342
movb $0x0, %al
callq 0x1100
movl 0x66cc(%rip), %eax      # 0xb15c
addl $-0x1, %eax
movl %eax, 0x66c3(%rip)      # 0xb15c
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x49ee
movl 0x66af(%rip), %eax      # 0xb15c
addl $-0x1, %eax
movl %eax, 0x66a6(%rip)      # 0xb15c
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x4926
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
leaq 0x3876(%rip), %rsi      # 0x834e
movb $0x0, %al
callq 0x1100
movl 0x6677(%rip), %eax      # 0xb15c
addl $0x1, %eax
movl %eax, 0x666e(%rip)      # 0xb15c
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
leaq 0x3817(%rip), %rsi      # 0x8319
movb $0x0, %al
callq 0x1100
movl 0x664d(%rip), %eax      # 0xb15c
addl $0x1, %eax
movl %eax, 0x6644(%rip)      # 0xb15c
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movl 0x10(%rax), %edx
leaq 0x37de(%rip), %rsi      # 0x8324
movb $0x0, %al
callq 0x1100
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x8(%rbp), %rcx
movq (%rcx), %rcx
movslq -0x14(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq 0x8(%rcx), %rcx
movq 0x10(%rcx), %rcx
cmpl 0x10(%rcx), %eax
jge 0x4bff
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
leaq 0x37ab(%rip), %rsi      # 0x8336
movb $0x0, %al
callq 0x1100
movl 0x65c4(%rip), %eax      # 0xb15c
addl $0x1, %eax
movl %eax, 0x65bb(%rip)      # 0xb15c
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rdx
leaq 0x3767(%rip), %rsi      # 0x8342
movb $0x0, %al
callq 0x1100
movl 0x6574(%rip), %eax      # 0xb15c
addl $-0x1, %eax
movl %eax, 0x656b(%rip)      # 0xb15c
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x4b54
movl 0x6557(%rip), %eax      # 0xb15c
addl $-0x1, %eax
movl %eax, 0x654e(%rip)      # 0xb15c
movl 0x6548(%rip), %eax      # 0xb15c
addl $-0x1, %eax
movl %eax, 0x653f(%rip)      # 0xb15c
movl 0x6539(%rip), %eax      # 0xb15c
addl $-0x1, %eax
movl %eax, 0x6530(%rip)      # 0xb15c
jmp 0x4cd1
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
cmpl $0x3, (%rax)
jne 0x4cae
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
leaq 0x3704(%rip), %rsi      # 0x835d
movb $0x0, %al
callq 0x1100
movl 0x64f6(%rip), %eax      # 0xb15c
addl $0x1, %eax
movl %eax, 0x64ed(%rip)      # 0xb15c
movq -0x10(%rbp), %rdi
callq 0x4d10
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rdx
leaq 0x28d5(%rip), %rsi      # 0x756b
movb $0x0, %al
callq 0x1100
movl 0x64b9(%rip), %eax      # 0xb15c
addl $-0x1, %eax
movl %eax, 0x64b0(%rip)      # 0xb15c
jmp 0x4ccf
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl (%rax), %esi
leaq 0x36a1(%rip), %rdi      # 0x8367
movb $0x0, %al
callq 0x63e0
jmp 0x4cff
jmp 0x4cd1
jmp 0x4cd3
movl 0x6483(%rip), %eax      # 0xb15c
addl $-0x1, %eax
movl %eax, 0x647a(%rip)      # 0xb15c
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x478d
movl 0x6466(%rip), %eax      # 0xb15c
addl $-0x1, %eax
movl %eax, 0x645d(%rip)      # 0xb15c
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)