// File: gprateek93[P]LaTeX_to_HTML/converter.cpp
// Function: converter::traverseMath[abi:cxx11](ast_node*, int)
string converter :: traverseMath(ast_node *root, int type){
    string s = "";
    if(type == 22 || type == 23){
        s+="<sub>" + root->data + "</sub>" + getMapping(type) + "<sup>" + root->attributes + "</sup>";
    }
    else if(type == 20){
        s+=getMapping(type)+root->data;
    }
    else if(type == 21){
        s+="("+root->data+")/("+root->attributes+")";
    }
    s+=traverseChildren(root);
    return s;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x210, %rsp            # imm = 0x210
movq %rdi, -0x200(%rbp)
movq %rdi, %rax
movq %rax, -0x210(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x208(%rbp)
movb $0x0, -0x1d(%rbp)
leaq -0x1e(%rbp), %rdi
movq %rdi, -0x1f8(%rbp)
callq 0x34a0
movq -0x200(%rbp), %rdi
movq -0x1f8(%rbp), %rdx
leaq 0x5067(%rip), %rsi      # 0x12566
callq 0x7b80
jmp 0xd506
leaq -0x1e(%rbp), %rdi
callq 0x32e0
cmpl $0x16, -0x1c(%rbp)
je 0xd51f
cmpl $0x17, -0x1c(%rbp)
jne 0xd71e
movq -0x18(%rbp), %rdx
addq $0x8, %rdx
leaq 0x5637(%rip), %rsi      # 0x12b65
leaq -0xf0(%rbp), %rdi
callq 0xe2d0
jmp 0xd53c
leaq 0x5628(%rip), %rdx      # 0x12b6b
leaq -0xd0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xe110
jmp 0xd558
movq -0x208(%rbp), %rsi
movl -0x1c(%rbp), %edx
leaq -0x110(%rbp), %rdi
callq 0xc220
jmp 0xd570
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0x110(%rbp), %rdx
callq 0xe200
jmp 0xd58c
leaq 0x55df(%rip), %rdx      # 0x12b72
leaq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xe110
jmp 0xd5a8
movq -0x18(%rbp), %rdx
addq $0x28, %rdx
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xe1b0
jmp 0xd5c2
leaq 0x55af(%rip), %rdx      # 0x12b78
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0xe110
jmp 0xd5d8
movq -0x200(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x3360
jmp 0xd5ea
leaq -0x50(%rbp), %rdi
callq 0x3528
leaq -0x70(%rbp), %rdi
callq 0x3528
leaq -0x90(%rbp), %rdi
callq 0x3528
leaq -0xb0(%rbp), %rdi
callq 0x3528
leaq -0x110(%rbp), %rdi
callq 0x3528
leaq -0xd0(%rbp), %rdi
callq 0x3528
leaq -0xf0(%rbp), %rdi
callq 0x3528
jmp 0xd8f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1e(%rbp), %rdi
callq 0x32e0
jmp 0xd980
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd974
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd70d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd701
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd6f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd6e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd6dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd6d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3528
leaq -0x70(%rbp), %rdi
callq 0x3528
leaq -0x90(%rbp), %rdi
callq 0x3528
leaq -0xb0(%rbp), %rdi
callq 0x3528
leaq -0x110(%rbp), %rdi
callq 0x3528
leaq -0xd0(%rbp), %rdi
callq 0x3528
leaq -0xf0(%rbp), %rdi
callq 0x3528
jmp 0xd974
cmpl $0x14, -0x1c(%rbp)
jne 0xd7c6
movq -0x208(%rbp), %rsi
movl -0x1c(%rbp), %edx
leaq -0x150(%rbp), %rdi
callq 0xc220
jmp 0xd740
movq -0x18(%rbp), %rdx
addq $0x8, %rdx
leaq -0x130(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0xe1b0
jmp 0xd75d
movq -0x200(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x3360
jmp 0xd772
leaq -0x130(%rbp), %rdi
callq 0x3528
leaq -0x150(%rbp), %rdi
callq 0x3528
jmp 0xd8f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd7b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x3528
leaq -0x150(%rbp), %rdi
callq 0x3528
jmp 0xd974
cmpl $0x15, -0x1c(%rbp)
jne 0xd8f4
movq -0x18(%rbp), %rdx
addq $0x8, %rdx
leaq 0x4e2d(%rip), %rsi      # 0x1260c
leaq -0x1d0(%rbp), %rdi
callq 0xe2d0
jmp 0xd7ed
leaq 0x538b(%rip), %rdx      # 0x12b7f
leaq -0x1b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0xe110
jmp 0xd809
movq -0x18(%rbp), %rdx
addq $0x28, %rdx
leaq -0x190(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0xe1b0
jmp 0xd826
leaq 0x518a(%rip), %rdx      # 0x129b7
leaq -0x170(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0xe110
jmp 0xd842
movq -0x200(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x3360
jmp 0xd857
leaq -0x170(%rbp), %rdi
callq 0x3528
leaq -0x190(%rbp), %rdi
callq 0x3528
leaq -0x1b0(%rbp), %rdi
callq 0x3528
leaq -0x1d0(%rbp), %rdi
callq 0x3528
jmp 0xd8f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd8e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd8d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd8cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x3528
leaq -0x190(%rbp), %rdi
callq 0x3528
leaq -0x1b0(%rbp), %rdi
callq 0x3528
leaq -0x1d0(%rbp), %rdi
callq 0x3528
jmp 0xd974
jmp 0xd8f6
jmp 0xd8f8
movq -0x208(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x1f0(%rbp), %rdi
callq 0xc270
jmp 0xd911
movq -0x200(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x3360
jmp 0xd926
leaq -0x1f0(%rbp), %rdi
callq 0x3528
movb $0x1, -0x1d(%rbp)
testb $0x1, -0x1d(%rbp)
jne 0xd964
jmp 0xd958
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x3528
jmp 0xd974
movq -0x200(%rbp), %rdi
callq 0x3528
movq -0x210(%rbp), %rax
addq $0x210, %rsp            # imm = 0x210
popq %rbp
retq
movq -0x200(%rbp), %rdi
callq 0x3528
movq -0x28(%rbp), %rdi
callq 0x3490
nopl (%rax)