// File: 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
subq $0x200, %rsp            # imm = 0x200
movq %rdi, -0x1e0(%rbp)
movq %rdi, %rax
movq %rax, -0x1f0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1e8(%rbp)
movb $0x0, -0x19(%rbp)
leaq -0x1a(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x34a0
movq -0x1e0(%rbp), %rdi
movq -0x1d8(%rbp), %rdx
leaq 0x4b7a(%rip), %rsi      # 0x12566
callq 0x7b80
jmp 0xd9f3
leaq -0x1a(%rbp), %rdi
callq 0x32e0
cmpq $0x0, -0x18(%rbp)
je 0xdedb
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x30(%rbp)
movq -0x18(%rbp), %rsi
addq $0x28, %rsi
leaq -0x50(%rbp), %rdi
callq 0x3120
jmp 0xda23
movq -0x18(%rbp), %rsi
addq $0x8, %rsi
leaq -0x70(%rbp), %rdi
callq 0x3120
jmp 0xda36
movl -0x30(%rbp), %eax
movq %rax, -0x1f8(%rbp)
subq $0x17, %rax
ja 0xde5e
movq -0x1f8(%rbp), %rax
leaq 0x4f64(%rip), %rcx      # 0x129bc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1a(%rbp), %rdi
callq 0x32e0
jmp 0xdf0d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xdf01
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xded0
movq -0x1e8(%rbp), %rsi
movq -0x18(%rbp), %rdx
movl -0x30(%rbp), %ecx
leaq -0x90(%rbp), %rdi
callq 0xbe60
jmp 0xdab9
movq -0x1e0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x3360
jmp 0xdace
leaq -0x90(%rbp), %rdi
callq 0x3528
jmp 0xde9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xdec7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x3528
jmp 0xdec7
movq -0x1e8(%rbp), %rsi
movq -0x18(%rbp), %rdx
movl -0x30(%rbp), %ecx
leaq -0xb0(%rbp), %rdi
callq 0xc3b0
jmp 0xdb29
movq -0x1e0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x3360
jmp 0xdb3e
leaq -0xb0(%rbp), %rdi
callq 0x3528
jmp 0xde9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x3528
jmp 0xdec7
movq -0x1e8(%rbp), %rsi
movq -0x18(%rbp), %rdx
movl -0x30(%rbp), %ecx
leaq -0xd0(%rbp), %rdi
callq 0xc830
jmp 0xdb88
movq -0x1e0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3360
jmp 0xdb9d
leaq -0xd0(%rbp), %rdi
callq 0x3528
jmp 0xde9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x3528
jmp 0xdec7
movq -0x1e8(%rbp), %rsi
movq -0x18(%rbp), %rdx
movl -0x30(%rbp), %ecx
leaq -0xf0(%rbp), %rdi
callq 0xcb40
jmp 0xdbe7
movq -0x1e0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3360
jmp 0xdbfc
leaq -0xf0(%rbp), %rdi
callq 0x3528
jmp 0xde9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x3528
jmp 0xdec7
movq -0x1e8(%rbp), %rsi
movq -0x18(%rbp), %rdx
movl -0x30(%rbp), %ecx
leaq -0x110(%rbp), %rdi
callq 0xcb80
jmp 0xdc46
movq -0x1e0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x3360
jmp 0xdc5b
leaq -0x110(%rbp), %rdi
callq 0x3528
jmp 0xde9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x3528
jmp 0xdec7
movq -0x1e8(%rbp), %rsi
movq -0x18(%rbp), %rdx
movl -0x30(%rbp), %ecx
leaq -0x130(%rbp), %rdi
callq 0xcd90
jmp 0xdca5
movq -0x1e0(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x3360
jmp 0xdcba
leaq -0x130(%rbp), %rdi
callq 0x3528
jmp 0xde9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x3528
jmp 0xdec7
movq -0x1e8(%rbp), %rsi
movq -0x18(%rbp), %rdx
movl -0x30(%rbp), %ecx
leaq -0x150(%rbp), %rdi
callq 0xd070
jmp 0xdd04
movq -0x1e0(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x3360
jmp 0xdd19
leaq -0x150(%rbp), %rdi
callq 0x3528
jmp 0xde9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x3528
jmp 0xdec7
movq -0x1e8(%rbp), %rsi
movq -0x18(%rbp), %rdx
movl -0x30(%rbp), %ecx
leaq -0x170(%rbp), %rdi
callq 0xd0b0
jmp 0xdd63
movq -0x1e0(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x3360
jmp 0xdd78
leaq -0x170(%rbp), %rdi
callq 0x3528
jmp 0xde9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x3528
jmp 0xdec7
movq -0x1e8(%rbp), %rsi
movq -0x18(%rbp), %rdx
movl -0x30(%rbp), %ecx
leaq -0x190(%rbp), %rdi
callq 0xd460
jmp 0xddc2
movq -0x1e0(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x3360
jmp 0xddd7
leaq -0x190(%rbp), %rdi
callq 0x3528
jmp 0xde9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x3528
jmp 0xdec7
movq -0x1e8(%rbp), %rsi
movq -0x18(%rbp), %rdx
movl -0x30(%rbp), %ecx
leaq -0x1b0(%rbp), %rdi
callq 0xd4a0
jmp 0xde21
movq -0x1e0(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x3360
jmp 0xde36
leaq -0x1b0(%rbp), %rdi
callq 0x3528
jmp 0xde9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1b0(%rbp), %rdi
callq 0x3528
jmp 0xdec7
movq -0x1e8(%rbp), %rsi
movq -0x18(%rbp), %rdx
movl -0x30(%rbp), %ecx
leaq -0x1d0(%rbp), %rdi
callq 0xc870
jmp 0xde7a
movq -0x1e0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x3360
jmp 0xde8f
leaq -0x1d0(%rbp), %rdi
callq 0x3528
leaq -0x70(%rbp), %rdi
callq 0x3528
leaq -0x50(%rbp), %rdi
callq 0x3528
jmp 0xdedb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x3528
leaq -0x70(%rbp), %rdi
callq 0x3528
leaq -0x50(%rbp), %rdi
callq 0x3528
jmp 0xdf01
movb $0x1, -0x19(%rbp)
testb $0x1, -0x19(%rbp)
jne 0xdef1
movq -0x1e0(%rbp), %rdi
callq 0x3528
movq -0x1f0(%rbp), %rax
addq $0x200, %rsp            # imm = 0x200
popq %rbp
retq
movq -0x1e0(%rbp), %rdi
callq 0x3528
movq -0x28(%rbp), %rdi
callq 0x3490
nopw %cs:(%rax,%rax)