// File: Silica[P]PSL/./PSL/environment.h
// Function: PSL::variable::Variable::Code::add(PSL::variable::Variable::Code*)
void add(Code *c)
	{
		size_t s = code.size();
		if (s > 0 && code[s-1]->get() == OpCode::MNEMONIC::RETURN)
		{
			delete code[--s];
			code.resize(s);
		}
		Code *cl = new Code(c);
		vObject o(cl);
		cl->finalize();
		push(cl);
		for (table::iterator it = cl->label.begin(); it != cl->label.end(); ++it)
			label[it->first] = variable(it->second.get()->toInt() + static_cast<int>(s));
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x1a3c0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jbe 0x1b595
movq -0xa8(%rbp), %rdi
movq -0x18(%rbp), %rsi
subq $0x1, %rsi
callq 0x1a3e0
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x16, %eax
jne 0x1b595
movq -0xa8(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $-0x1, %rsi
movq %rsi, -0x18(%rbp)
callq 0x1a3e0
movq (%rax), %rax
movq %rax, -0xb0(%rbp)
cmpq $0x0, %rax
je 0x1b585
movq -0xb0(%rbp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
movq -0xa8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x1bc20
movl $0x38, %edi
callq 0x1b7a0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xb8(%rbp)
movq -0x10(%rbp), %rsi
callq 0x1b7c0
jmp 0x1b5b7
movq -0xb8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x1bc60
movq -0x20(%rbp), %rdi
callq 0x1a490
movq -0xa8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x1bd00
jmp 0x1b5ea
movq -0x20(%rbp), %rdi
addq $0x18, %rdi
callq 0x11f70
movl %edx, -0xc4(%rbp)
movq %rax, -0xc0(%rbp)
jmp 0x1b606
movl -0xc4(%rbp), %eax
movq -0xc0(%rbp), %rcx
movq %rcx, -0x90(%rbp)
movl %eax, -0x88(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x80(%rbp)
movl -0x88(%rbp), %eax
movl %eax, -0x78(%rbp)
movq -0x20(%rbp), %rdi
addq $0x18, %rdi
callq 0x12030
movl %eax, %esi
leaq -0x80(%rbp), %rdi
callq 0x12010
testb $0x1, %al
jne 0x1b655
jmp 0x1b772
leaq -0x80(%rbp), %rdi
callq 0x12040
movq %rax, %rdi
addq $0x8, %rdi
callq 0x12060
movq %rax, %rdi
callq 0x12080
movl %eax, -0xc8(%rbp)
jmp 0x1b67a
movl -0xc8(%rbp), %esi
movl -0x18(%rbp), %eax
addl %eax, %esi
leaq -0xa0(%rbp), %rdi
callq 0xcce0
jmp 0x1b693
leaq -0x98(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x11b10
jmp 0x1b6a8
movq -0xa8(%rbp), %rax
addq $0x18, %rax
movq %rax, -0xd8(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x12040
movq -0xd8(%rbp), %rdi
movq %rax, %rsi
callq 0x1a9a0
movq %rax, -0xd0(%rbp)
jmp 0x1b6db
movq -0xd0(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x12310
jmp 0x1b6f0
leaq -0x98(%rbp), %rdi
callq 0xcd90
leaq -0xa0(%rbp), %rdi
callq 0xcdc0
leaq -0x80(%rbp), %rdi
callq 0x12120
jmp 0x1b634
movq -0xb8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x1a600
jmp 0x1b78d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x1b784
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x1b764
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0xcd90
leaq -0xa0(%rbp), %rdi
callq 0xcdc0
jmp 0x1b784
leaq -0x70(%rbp), %rdi
callq 0xf350
addq $0xe0, %rsp
popq %rbp
retq
leaq -0x70(%rbp), %rdi
callq 0xf350
movq -0x28(%rbp), %rdi
callq 0xc280
nopw %cs:(%rax,%rax)