// File: Diggie-Bro[P]StreamCode/test/../misc/../src/runtime/memory.h
// Function: VariableManager::declareVariable(Variables&, Variables&)
struct VariableMem declareVariable(struct Variables& varname, struct Variables& variable) {
            // if (varname.type != VARIABLE) break
            struct VariableMem mem {variable.type, varname.value, 0, 0.0, "", true};

            if (variable.type == INT) {
                mem.integerMem = stoi(variable.value);
            } else if (variable.type == DOUBLE) {
                mem.doubleMem = stof(variable.value);
            } else if (variable.type == STRING) {
                mem.stringMem = variable.value;
            } else if (variable.type == BOOL) {
                mem.booleanMem = variable.value == "false" ? false : true;
            } else {
                // :TODO hmmmm..... 
            }

            return mem;
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x50(%rbp)
movq %rdi, %rax
movq %rax, -0x60(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movb $0x0, -0x21(%rbp)
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, (%rdi)
addq $0x8, %rdi
movq %rdi, -0x58(%rbp)
movq -0x18(%rbp), %rsi
addq $0x8, %rsi
callq 0x20c0
movq -0x50(%rbp), %rdi
movb $0x1, -0x35(%rbp)
movl $0x0, 0x28(%rdi)
movq $0x0, 0x30(%rdi)
addq $0x38, %rdi
movq %rdi, -0x48(%rbp)
leaq -0x22(%rbp), %rdi
movq %rdi, -0x40(%rbp)
callq 0x2300
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rdx
leaq 0x4cd5(%rip), %rsi      # 0x9124
callq 0x2260
jmp 0x4456
movq -0x50(%rbp), %rax
movb $0x1, 0x58(%rax)
movb $0x0, -0x35(%rbp)
leaq -0x22(%rbp), %rdi
callq 0x21f0
movq -0x20(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x44e3
movq -0x20(%rbp), %rdi
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x51f0
movl %eax, -0x64(%rbp)
jmp 0x448f
movq -0x50(%rbp), %rax
movl -0x64(%rbp), %ecx
movl %ecx, 0x28(%rax)
jmp 0x4578
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x22(%rbp), %rdi
callq 0x21f0
testb $0x1, -0x35(%rbp)
jne 0x44bb
jmp 0x44c4
movq -0x58(%rbp), %rdi
callq 0x2120
jmp 0x4595
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x45d0
jmp 0x4595
movq -0x20(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x4518
movq -0x20(%rbp), %rdi
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x5230
movss %xmm0, -0x68(%rbp)
jmp 0x4504
movq -0x50(%rbp), %rax
movss -0x68(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x30(%rax)
jmp 0x4576
movq -0x20(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x453a
movq -0x50(%rbp), %rdi
movq -0x20(%rbp), %rsi
addq $0x8, %rsi
addq $0x38, %rdi
callq 0x2030
jmp 0x4538
jmp 0x4574
movq -0x20(%rbp), %rax
cmpl $0x3, (%rax)
jne 0x4570
movq -0x20(%rbp), %rdi
addq $0x8, %rdi
leaq 0x4afc(%rip), %rsi      # 0x904e
callq 0x3230
movb %al, -0x69(%rbp)
jmp 0x455c
movq -0x50(%rbp), %rax
movb -0x69(%rbp), %cl
andb $0x1, %cl
decb %cl
andb $0x1, %cl
movb %cl, 0x58(%rax)
jmp 0x4572
jmp 0x4572
jmp 0x4574
jmp 0x4576
jmp 0x4578
movb $0x1, -0x21(%rbp)
testb $0x1, -0x21(%rbp)
jne 0x458b
movq -0x50(%rbp), %rdi
callq 0x45d0
movq -0x60(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x22f0
nop