// File: /workspace/github_cpp_makefile_star2_O3/margual56[P]Markdown-CLI/src/Component.cpp
// Function: Component::render[abi:cxx11]()
std::string Component::render(){
    std::string tmp = ""; 
    
    if(!type.empty())                       // If the component has a tag assigned,
        tmp += "<" + this->type + ">\n";    // open the tag

    if(this->content.after == NULL && !this->content.text.empty())     // If the text's "after" is NULL, it means that the text should be rendered first
        tmp += this->content.text + "\n";

    for(Component *c: this->children){   // For each subcomponent,
        tmp += c->render() + "\n";              // render it

        if(this->content.after == c){  // and then check if the text goes after it
            tmp += this->content.text + "\n";  // (if it does, render the text)
        }
    }
    
    if(!type.empty())                       // If the component has a tag assigned,
        tmp += "</" + this->type + ">\n";    // close the tag

    return tmp;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rsi, %r14
leaq 0x10(%rdi), %r15
movq %r15, (%rdi)
leaq 0x118df(%rip), %rdx     # 0x163d9
movq %rdi, -0x50(%rbp)
movq %rdx, %rsi
callq 0x5000
cmpq $0x0, 0x8(%r14)
movq %r15, -0x78(%rbp)
je 0x4bb8
leaq 0x114e8(%rip), %rsi     # 0x16004
leaq -0x70(%rbp), %rdi
movq %r14, %rdx
callq 0x4ed0
leaq 0x114d7(%rip), %rsi     # 0x16006
leaq -0x70(%rbp), %rdi
callq 0x4510
leaq -0x38(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4b5c
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x4b62
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq -0x50(%rbp), %rdi
callq 0x40e0
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4b9f
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42b0
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4bb8
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x42b0
cmpq $0x0, 0x40(%r14)
je 0x4d4a
leaq 0x50(%r14), %rax
movq 0x50(%r14), %rcx
movq %rax, -0x80(%rbp)
cmpq %rax, %rcx
je 0x4cf8
leaq -0x38(%rbp), %r15
leaq -0x70(%rbp), %r12
movq %r14, %rbx
movq %rcx, -0x88(%rbp)
movq 0x10(%rcx), %r13
movq %r12, %r14
movq %r12, %rdi
movq %r13, %rsi
callq 0x4ad8
movq %r14, %r12
movq %r14, %rdi
leaq 0x117cf(%rip), %rsi     # 0x163d8
callq 0x4510
movq %r15, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4c2e
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x4c35
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq -0x50(%rbp), %rdi
callq 0x40e0
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x4c72
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42b0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x4c8b
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x42b0
cmpq %r13, 0x40(%rbx)
movq %rbx, %r14
leaq -0x48(%rbp), %rbx
jne 0x4ce4
movq %r15, -0x48(%rbp)
movq 0x20(%r14), %rsi
movq 0x28(%r14), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x4f62
movq %rbx, %rdi
leaq 0x1171f(%rip), %rsi     # 0x163d8
callq 0x4510
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq -0x50(%rbp), %rdi
callq 0x40e0
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x4ce4
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42b0
movq -0x88(%rbp), %rcx
movq (%rcx), %rcx
cmpq -0x80(%rbp), %rcx
jne 0x4be0
cmpq $0x0, 0x8(%r14)
je 0x4e05
leaq 0x112ff(%rip), %rsi     # 0x16009
leaq -0x70(%rbp), %rdi
movq %r14, %rdx
callq 0x4ed0
leaq 0x112e9(%rip), %rsi     # 0x16006
leaq -0x70(%rbp), %rdi
callq 0x4510
leaq -0x38(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x4dae
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x4db7
movq 0x28(%r14), %rdx
testq %rdx, %rdx
je 0x4bc3
leaq -0x38(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x20(%r14), %rsi
addq %rsi, %rdx
leaq -0x48(%rbp), %rdi
callq 0x4f62
leaq 0x11662(%rip), %rsi     # 0x163d8
leaq -0x48(%rbp), %rdi
callq 0x4510
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq -0x50(%rbp), %rdi
callq 0x40e0
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4bc3
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42b0
jmp 0x4bc3
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq %rbx, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x50(%rbp), %rdi
callq 0x40e0
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4dec
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42b0
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4e05
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x42b0
movq -0x50(%rbp), %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4e1a
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x4e6c
jmp 0x4ead
jmp 0x4e72
jmp 0x4e33
jmp 0x4e4d
jmp 0x4e72
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4e50
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42b0
jmp 0x4e50
movq %rax, %r14
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
jmp 0x4e9c
jmp 0x4e72
jmp 0x4e72
jmp 0x4e60
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x4ead
movq -0x38(%rbp), %rsi
jmp 0x4ea5
movq %rax, %r14
jmp 0x4ead
movq %rax, %r14
jmp 0x4e94
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x4e94
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42b0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x4ead
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x42b0
movq -0x50(%rbp), %rax
movq (%rax), %rdi
movq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x4ec8
movq (%rax), %rsi
incq %rsi
callq 0x42b0
movq %r14, %rdi
callq 0x44a0