// File: Merulo[P]CompilerJFTT/src/External/Utilities.hpp
// Function: validateAndConvertData[abi:cxx11](Driver&, Data const&)
std::string validateAndConvertData(Driver& d, const Data& data)
{
    if (!data.name.empty())
    {
        checkForErrors(d.ST->checkVariableExistsAndIsInitialized(data.name));
        return data.name;
    }
    else
    {
        std::string reg = d.FIR->getVariable(std::to_string(data.value));
        d.FIR->addNewCode("CONST", reg , std::to_string(data.value));
        return reg;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0xe0(%rbp)
movq %rdi, %rax
movq %rax, -0xd8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rdi
addq $0x8, %rdi
callq 0x45b0
testb $0x1, %al
jne 0x42bc5
movq -0x10(%rbp), %rdi
callq 0xdde0
movq %rax, -0xf0(%rbp)
movq -0x18(%rbp), %rsi
addq $0x8, %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x4180
movq -0xf0(%rbp), %rsi
movq -0xe8(%rbp), %rdx
leaq -0x38(%rbp), %rdi
callq 0x20d70
jmp 0x42b5e
leaq -0x38(%rbp), %rdi
callq 0x42a60
jmp 0x42b69
leaq -0x38(%rbp), %rdi
callq 0x46e8
leaq -0x58(%rbp), %rdi
callq 0x46e8
movq -0xe0(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x8, %rsi
callq 0x4180
jmp 0x42d50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x42bb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x46e8
leaq -0x58(%rbp), %rdi
callq 0x46e8
jmp 0x42d60
movb $0x0, -0x65(%rbp)
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
callq 0x48ee0
movq %rax, -0x100(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rsi
leaq -0x88(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
callq 0x1f260
movq -0xe0(%rbp), %rdi
movq -0x100(%rbp), %rsi
movq -0xf8(%rbp), %rdx
callq 0x3d2e0
jmp 0x42c13
leaq -0x88(%rbp), %rdi
callq 0x46e8
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
callq 0x48ee0
movq %rax, -0x110(%rbp)
leaq -0xa9(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x4600
movq -0x108(%rbp), %rdx
leaq 0xe90e(%rip), %rsi      # 0x51562
leaq -0xa8(%rbp), %rdi
callq 0x4f10
jmp 0x42c62
movq -0x18(%rbp), %rax
movq (%rax), %rsi
leaq -0xd0(%rbp), %rdi
callq 0x1f260
jmp 0x42c77
movq -0xe0(%rbp), %rdx
movq -0x110(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
leaq -0xd0(%rbp), %rcx
callq 0x26fc0
jmp 0x42c9a
leaq -0xd0(%rbp), %rdi
callq 0x46e8
leaq -0xa8(%rbp), %rdi
callq 0x46e8
leaq -0xa9(%rbp), %rdi
callq 0x43b0
movb $0x1, -0x65(%rbp)
testb $0x1, -0x65(%rbp)
jne 0x42d4e
jmp 0x42d42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x46e8
jmp 0x42d60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x42d28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x42d1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x46e8
leaq -0xa8(%rbp), %rdi
callq 0x46e8
leaq -0xa9(%rbp), %rdi
callq 0x43b0
movq -0xe0(%rbp), %rdi
callq 0x46e8
jmp 0x42d60
movq -0xe0(%rbp), %rdi
callq 0x46e8
jmp 0x42d50
movq -0xd8(%rbp), %rax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x45f0
nopl (%rax)