// File: /workspace/github_cpp_makefile_star2_O3/gprateek93[P]LaTeX_to_HTML/converter.cpp
// Function: converter::traversal[abi:cxx11](ast_node*)
string converter :: traversal(ast_node *root){
    string s = "";
    if(root){
        int type = root->node_type;
        string attributes = root->attributes;
        string data = root->data;
        switch (type) {
            case 0:
                s+= traverseSection(root,type);
                break;
            case 1:
                s+=traverseSubSection(root,type);
                break;
            case 2:
            case 3:
            case 4:
                s+=traverseList(root,type);
                break;
            case 5:
            case 6:
            case 7:
                s+=traverseFont(root,type);
                break;
            case 8:
                s+=traversePara(root,type);
                break;
            case 9:
            case 10:
                s+=traverseAnchor(root,type);
                break;
            case 11:
            case 17:
            case 18:
                s+=traverseTable(root,type);
                break;
            case 12:
            case 13:
            case 14:
                s+=traverseImage(root,type);
                break;
            case 15:
                s+=traverseContent(root,type);
                break;
            case 19:
            case 20:
            case 21:
            case 22:
            case 23:
                s+=traverseMath(root,type);
                break;
            default:
                s+=traverseDefault(root,type);
        }
    }
    return s;
 }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdi, %rbx
leaq 0x10(%rdi), %r13
movq %r13, (%rdi)
movq $0x0, 0x8(%rdi)
movb $0x0, 0x10(%rdi)
testq %rdx, %rdx
je 0x9c0a
movq %rdx, %r14
movq %rsi, %r15
movl (%rdx), %r12d
leaq -0x78(%rbp), %rax
movq %rax, -0x10(%rax)
movq 0x28(%rdx), %rsi
movq 0x30(%rdx), %rdx
addq %rsi, %rdx
leaq -0x88(%rbp), %rdi
callq 0x3c9c
leaq -0x58(%rbp), %rax
movq %rax, -0x10(%rax)
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
addq %rsi, %rdx
leaq -0x68(%rbp), %rdi
callq 0x3c9c
cmpl $0x17, %r12d
ja 0x9b74
movl %r12d, %eax
leaq 0x3f2c(%rip), %rcx      # 0xd964
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
movq %r14, %rdx
movl %r12d, %ecx
callq 0x9182
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30b0
jmp 0x9bbc
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
movq %r14, %rdx
movl %r12d, %ecx
callq 0x81b4
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30b0
jmp 0x9bbc
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
movq %r14, %rdx
movl %r12d, %ecx
callq 0x81b4
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30b0
jmp 0x9bbc
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
movq %r14, %rdx
movl %r12d, %ecx
callq 0x8b7a
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30b0
jmp 0x9bbc
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
movq %r14, %rdx
movl %r12d, %ecx
callq 0x81b4
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30b0
jmp 0x9bbc
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
movq %r14, %rdx
movl %r12d, %ecx
callq 0x87ca
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30b0
jmp 0x9bbc
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x74b8
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30b0
jmp 0x9bbc
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
movq %r14, %rdx
movl $0x1, %ecx
callq 0x7a90
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30b0
jmp 0x9bbc
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
movq %r14, %rdx
movl %r12d, %ecx
callq 0x81b4
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30b0
jmp 0x9bbc
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
movq %r14, %rdx
movl $0x8, %ecx
callq 0x8574
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30b0
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9bd5
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3200
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x9bee
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x3200
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x9c0a
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3200
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %rdi
callq 0x3c9c
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x30b0
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
jne 0x9bc9
jmp 0x9bd5
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
jne 0x9c9e
jmp 0x9caf
jmp 0x9c8e
jmp 0x9c8e
jmp 0x9c8e
jmp 0x9c8e
jmp 0x9cac
jmp 0x9cac
jmp 0x9cac
jmp 0x9cac
jmp 0x9cac
jmp 0x9c8e
jmp 0x9cac
jmp 0x9c8e
jmp 0x9c8e
jmp 0x9c8e
jmp 0x9c8e
jmp 0x9cac
jmp 0x9cac
jmp 0x9cac
jmp 0x9cac
movq %rax, %r14
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9caf
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3200
jmp 0x9caf
movq %rax, %r14
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x9ccd
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x3200
jmp 0x9ccd
movq %rax, %r14
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x9cee
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3200
jmp 0x9cee
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r13, %rdi
je 0x9d02
movq (%r13), %rsi
incq %rsi
callq 0x3200
movq %r14, %rdi
callq 0x3390