// File: RuiDGPires[P]CrimLang/src/generator.cpp
// Function: gc_Tracker::assign(crl::Node*)
void _gc_Tracker::assign(crl::Node *node){
	std::string op;
	if (node->annotation == "plus")
		op = "ADD";
	else if	(node->annotation == "minus")
		op = "SUB";
	else if	(node->annotation == "times")
		op = "MUL";
	else if	(node->annotation == "slash")
		op = "DIV";
	
	if (op != "") {
		this->assign_op(node, op);
		return;
	}
	u32 reg1 = reg_tracker.alloc();
	std::string name1 = reg_tracker.reg_name(reg1);

	u32 reg2 = this->expression_reg(node->get_child(1), stream_funcs);
	std::string name2 = reg_tracker.reg_name(reg2);

	crl::Token t;	
	if (node->get_child(0)->type == crl::Node::Type::VECTOR){
		t = get_token(node->get_child(0)->get_child(0));
		u32 reg_aux = reg_tracker.alloc();
		std::string name_aux = reg_tracker.reg_name(reg_aux);

		u32 offset = atoi(get_token(node->get_child(0)->get_child(1)).str.c_str());

		if (symb_tracker.has_local(t.str)){
			std::pair<u32, bool> p = symb_tracker.get_local(t.str);

			if (p.second)
				stream_funcs <<
				"LOAD " << name1 << " m[RF][-" << p.first  << "]\n" <<
				"MVI " << name_aux << " " << offset << "\n" <<
				"ADD " << name1 << " " << name_aux << "\n" <<
				"STORE m[" << name1 << "] " << name2 << "\n";
			else
				stream_funcs <<
					"STORE m[RF][-" << p.first + offset << "] " << name2 << "\n";
		}else
			stream_funcs <<
				"MVI " << name1 << " " << t.str << "\n" <<
				"MVI " << name_aux << " " << offset << "\n" <<
				"ADD " << name1 << " " << name_aux << "\n" <<
				"STORE m[" << name1 << "] " << name2 << "\n";
		
		reg_tracker.free(reg1);
		reg_tracker.free(reg2);
		reg_tracker.free(reg_aux);
		return;
	}
	
	t = get_token(node->get_child(0));
	if (symb_tracker.has_local(t.str)){
		std::pair<u32, bool> p = symb_tracker.get_local(t.str);

		if (p.second)
			stream_funcs <<
				"LOAD " << name1 << " m[RF][-" << p.first  << "]\n" <<
				"STORE m[" << name1 << "] " << name2 << "\n";
		else
			stream_funcs <<
				"STORE m[RF][-" << p.first << "] " << name2 << "\n";
	}else{
		stream_funcs << "MVI " << name1 << " " << t.str << "\n" <<
			"STORE m[" << name1 << "] " << name2 << "\n";
	}
	
	reg_tracker.free(reg1);
	reg_tracker.free(reg2);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4f0, %rsp            # imm = 0x4F0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x240(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x4450
movq -0x10(%rbp), %rdi
addq $0x30, %rdi
leaq 0x1af72(%rip), %rsi     # 0x2b5a8
callq 0x66e0
movb %al, -0x231(%rbp)
jmp 0x10643
movb -0x231(%rbp), %al
testb $0x1, %al
jne 0x1064f
jmp 0x10677
leaq 0x1af57(%rip), %rsi     # 0x2b5ad
leaq -0x30(%rbp), %rdi
callq 0x4440
jmp 0x10661
jmp 0x10731
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x11592
movq -0x10(%rbp), %rdi
addq $0x30, %rdi
leaq 0x1af2b(%rip), %rsi     # 0x2b5b1
callq 0x66e0
movb %al, -0x241(%rbp)
jmp 0x10693
movb -0x241(%rbp), %al
testb $0x1, %al
jne 0x1069f
jmp 0x106b3
leaq 0x1af11(%rip), %rsi     # 0x2b5b7
leaq -0x30(%rbp), %rdi
callq 0x4440
jmp 0x106b1
jmp 0x1072f
movq -0x10(%rbp), %rdi
addq $0x30, %rdi
leaq 0x1aef9(%rip), %rsi     # 0x2b5bb
callq 0x66e0
movb %al, -0x242(%rbp)
jmp 0x106cf
movb -0x242(%rbp), %al
testb $0x1, %al
jne 0x106db
jmp 0x106ef
leaq 0x1aedf(%rip), %rsi     # 0x2b5c1
leaq -0x30(%rbp), %rdi
callq 0x4440
jmp 0x106ed
jmp 0x1072d
movq -0x10(%rbp), %rdi
addq $0x30, %rdi
leaq 0x1aec7(%rip), %rsi     # 0x2b5c5
callq 0x66e0
movb %al, -0x243(%rbp)
jmp 0x1070b
movb -0x243(%rbp), %al
testb $0x1, %al
jne 0x10717
jmp 0x1072b
leaq 0x1aead(%rip), %rsi     # 0x2b5cb
leaq -0x30(%rbp), %rdi
callq 0x4440
jmp 0x10729
jmp 0x1072b
jmp 0x1072d
jmp 0x1072f
jmp 0x10731
leaq 0x1adac(%rip), %rsi     # 0x2b4e4
leaq -0x30(%rbp), %rdi
callq 0x5390
movb %al, -0x244(%rbp)
jmp 0x10749
movb -0x244(%rbp), %al
testb $0x1, %al
jne 0x10755
jmp 0x107b7
movq -0x10(%rbp), %rax
movq %rax, -0x250(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x4150
jmp 0x1076f
movq -0x250(%rbp), %rsi
movq -0x240(%rbp), %rdi
leaq -0x60(%rbp), %rdx
callq 0x115b0
jmp 0x10788
leaq -0x60(%rbp), %rdi
callq 0x41e0
movl $0x1, -0x64(%rbp)
jmp 0x1155c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x41e0
jmp 0x11592
movq -0x240(%rbp), %rdi
addq $0x500, %rdi            # imm = 0x500
callq 0x12ee0
movl %eax, -0x254(%rbp)
jmp 0x107d2
movq -0x240(%rbp), %rsi
movl -0x254(%rbp), %eax
movl %eax, -0x68(%rbp)
addq $0x500, %rsi            # imm = 0x500
movl -0x68(%rbp), %edx
leaq -0x88(%rbp), %rdi
callq 0x13040
jmp 0x107fa
movq -0x10(%rbp), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
movl $0x1, %esi
callq *%rax
movq %rax, -0x260(%rbp)
jmp 0x10815
movq -0x260(%rbp), %rsi
movq -0x240(%rbp), %rdi
movq %rdi, %rdx
addq $0x318, %rdx            # imm = 0x318
callq 0xa310
movl %eax, -0x264(%rbp)
jmp 0x1083a
movq -0x240(%rbp), %rsi
movl -0x264(%rbp), %eax
movl %eax, -0x8c(%rbp)
addq $0x500, %rsi            # imm = 0x500
movl -0x8c(%rbp), %edx
leaq -0xb0(%rbp), %rdi
callq 0x13040
jmp 0x10868
leaq -0xe0(%rbp), %rdi
callq 0x28530
jmp 0x10876
movq -0x10(%rbp), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
xorl %esi, %esi
callq *%rax
movq %rax, -0x270(%rbp)
jmp 0x1088e
movq -0x270(%rbp), %rax
cmpl $0x19, 0x8(%rax)
jne 0x110bb
movq -0x10(%rbp), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
xorl %esi, %esi
callq *%rax
movq %rax, -0x278(%rbp)
jmp 0x108b7
movq -0x278(%rbp), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
xorl %esi, %esi
callq *%rax
movq %rax, -0x280(%rbp)
jmp 0x108d2
movq -0x280(%rbp), %rsi
leaq -0x110(%rbp), %rdi
callq 0xa2e0
jmp 0x108e7
leaq -0xe0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x5900
jmp 0x108fc
leaq -0x110(%rbp), %rdi
callq 0x285a0
movq -0x240(%rbp), %rdi
addq $0x500, %rdi            # imm = 0x500
callq 0x12ee0
movl %eax, -0x284(%rbp)
jmp 0x10923
movq -0x240(%rbp), %rsi
movl -0x284(%rbp), %eax
movl %eax, -0x114(%rbp)
addq $0x500, %rsi            # imm = 0x500
movl -0x114(%rbp), %edx
leaq -0x138(%rbp), %rdi
callq 0x13040
jmp 0x10951
movq -0x10(%rbp), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
xorl %esi, %esi
callq *%rax
movq %rax, -0x290(%rbp)
jmp 0x10969
movq -0x290(%rbp), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
movl $0x1, %esi
callq *%rax
movq %rax, -0x298(%rbp)
jmp 0x10987
movq -0x298(%rbp), %rsi
leaq -0x170(%rbp), %rdi
callq 0xa2e0
jmp 0x1099c
leaq -0x170(%rbp), %rdi
movq %rdi, -0x2b0(%rbp)
callq 0x4140
movq %rax, %rdi
callq 0x44b0
movq -0x2b0(%rbp), %rdi
movl %eax, -0x2a4(%rbp)
callq 0x285a0
movl -0x2a4(%rbp), %ecx
movq -0x240(%rbp), %rax
movl %ecx, -0x13c(%rbp)
addq $0x530, %rax            # imm = 0x530
movq %rax, -0x2a0(%rbp)
leaq -0x190(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x4150
jmp 0x109fe
movq -0x2a0(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x13160
movb %al, -0x2b1(%rbp)
jmp 0x10a19
leaq -0x190(%rbp), %rdi
callq 0x41e0
movb -0x2b1(%rbp), %al
testb $0x1, %al
jne 0x10a34
jmp 0x10e13
movq -0x240(%rbp), %rax
addq $0x530, %rax            # imm = 0x530
movq %rax, -0x2c0(%rbp)
leaq -0x1b8(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x4150
jmp 0x10a5d
movq -0x2c0(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x131d0
movq %rax, -0x2c8(%rbp)
jmp 0x10a79
movq -0x2c8(%rbp), %rax
movl %eax, %ecx
movl %ecx, -0x198(%rbp)
shrq $0x20, %rax
movb %al, -0x194(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x41e0
testb $0x1, -0x194(%rbp)
je 0x10d79
movq -0x240(%rbp), %rdi
addq $0x328, %rdi            # imm = 0x328
leaq 0x1a780(%rip), %rsi     # 0x2b240
callq 0x42e0
movq %rax, -0x2d0(%rbp)
jmp 0x10ace
movq -0x2d0(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x42c0
movq %rax, -0x2d8(%rbp)
jmp 0x10aea
movq -0x2d8(%rbp), %rdi
leaq 0x1aae8(%rip), %rsi     # 0x2b5e0
callq 0x42e0
movq %rax, -0x2e0(%rbp)
jmp 0x10b06
movq -0x2e0(%rbp), %rdi
movl -0x198(%rbp), %esi
callq 0x4420
movq %rax, -0x2e8(%rbp)
jmp 0x10b21
movq -0x2e8(%rbp), %rdi
leaq 0x1a717(%rip), %rsi     # 0x2b246
callq 0x42e0
movq %rax, -0x2f0(%rbp)
jmp 0x10b3d
movq -0x2f0(%rbp), %rdi
leaq 0x1a6fe(%rip), %rsi     # 0x2b249
callq 0x42e0
movq %rax, -0x2f8(%rbp)
jmp 0x10b59
movq -0x2f8(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x42c0
movq %rax, -0x300(%rbp)
jmp 0x10b75
movq -0x300(%rbp), %rdi
leaq 0x1a482(%rip), %rsi     # 0x2b005
callq 0x42e0
movq %rax, -0x308(%rbp)
jmp 0x10b91
movq -0x308(%rbp), %rdi
movl -0x13c(%rbp), %esi
callq 0x4420
movq %rax, -0x310(%rbp)
jmp 0x10bac
movq -0x310(%rbp), %rdi
leaq 0x1a929(%rip), %rsi     # 0x2b4e3
callq 0x42e0
movq %rax, -0x318(%rbp)
jmp 0x10bc8
movq -0x318(%rbp), %rdi
leaq 0x1a6f3(%rip), %rsi     # 0x2b2c9
callq 0x42e0
movq %rax, -0x320(%rbp)
jmp 0x10be4
movq -0x320(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x42c0
movq %rax, -0x328(%rbp)
jmp 0x10c00
movq -0x328(%rbp), %rdi
leaq 0x1a3f7(%rip), %rsi     # 0x2b005
callq 0x42e0
movq %rax, -0x330(%rbp)
jmp 0x10c1c
movq -0x330(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x42c0
movq %rax, -0x338(%rbp)
jmp 0x10c38
movq -0x338(%rbp), %rdi
leaq 0x1a89d(%rip), %rsi     # 0x2b4e3
callq 0x42e0
movq %rax, -0x340(%rbp)
jmp 0x10c54
movq -0x340(%rbp), %rdi
leaq 0x1a96d(%rip), %rsi     # 0x2b5cf
callq 0x42e0
movq %rax, -0x348(%rbp)
jmp 0x10c70
movq -0x348(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x42c0
movq %rax, -0x350(%rbp)
jmp 0x10c8c
movq -0x350(%rbp), %rdi
leaq 0x1a93e(%rip), %rsi     # 0x2b5d8
callq 0x42e0
movq %rax, -0x358(%rbp)
jmp 0x10ca8
movq -0x358(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x42c0
movq %rax, -0x360(%rbp)
jmp 0x10cc4
movq -0x360(%rbp), %rdi
leaq 0x1a811(%rip), %rsi     # 0x2b4e3
callq 0x42e0
jmp 0x10cd9
jmp 0x10e0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x11586
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1157a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1156e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x285a0
jmp 0x1156e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x110aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x41e0
jmp 0x110aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x41e0
jmp 0x110aa
movq -0x240(%rbp), %rdi
addq $0x328, %rdi            # imm = 0x328
leaq 0x1a84d(%rip), %rsi     # 0x2b5db
callq 0x42e0
movq %rax, -0x368(%rbp)
jmp 0x10d9c
movq -0x368(%rbp), %rdi
movl -0x198(%rbp), %esi
movl -0x13c(%rbp), %eax
addl %eax, %esi
callq 0x4420
movq %rax, -0x370(%rbp)
jmp 0x10dbf
movq -0x370(%rbp), %rdi
leaq 0x1a80b(%rip), %rsi     # 0x2b5d8
callq 0x42e0
movq %rax, -0x378(%rbp)
jmp 0x10ddb
movq -0x378(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x42c0
movq %rax, -0x380(%rbp)
jmp 0x10df7
movq -0x380(%rbp), %rdi
leaq 0x1a6de(%rip), %rsi     # 0x2b4e3
callq 0x42e0
jmp 0x10e0c
jmp 0x10e0e
jmp 0x11044
movq -0x240(%rbp), %rdi
addq $0x328, %rdi            # imm = 0x328
leaq 0x1a421(%rip), %rsi     # 0x2b249
callq 0x42e0
movq %rax, -0x388(%rbp)
jmp 0x10e36
movq -0x388(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x42c0
movq %rax, -0x390(%rbp)
jmp 0x10e52
movq -0x390(%rbp), %rdi
leaq 0x1a1a5(%rip), %rsi     # 0x2b005
callq 0x42e0
movq %rax, -0x398(%rbp)
jmp 0x10e6e
movq -0x398(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x42c0
movq %rax, -0x3a0(%rbp)
jmp 0x10e8a
movq -0x3a0(%rbp), %rdi
leaq 0x1a64b(%rip), %rsi     # 0x2b4e3
callq 0x42e0
movq %rax, -0x3a8(%rbp)
jmp 0x10ea6
movq -0x3a8(%rbp), %rdi
leaq 0x1a395(%rip), %rsi     # 0x2b249
callq 0x42e0
movq %rax, -0x3b0(%rbp)
jmp 0x10ec2
movq -0x3b0(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x42c0
movq %rax, -0x3b8(%rbp)
jmp 0x10ede
movq -0x3b8(%rbp), %rdi
leaq 0x1a119(%rip), %rsi     # 0x2b005
callq 0x42e0
movq %rax, -0x3c0(%rbp)
jmp 0x10efa
movq -0x3c0(%rbp), %rdi
movl -0x13c(%rbp), %esi
callq 0x4420
movq %rax, -0x3c8(%rbp)
jmp 0x10f15
movq -0x3c8(%rbp), %rdi
leaq 0x1a5c0(%rip), %rsi     # 0x2b4e3
callq 0x42e0
movq %rax, -0x3d0(%rbp)
jmp 0x10f31
movq -0x3d0(%rbp), %rdi
leaq 0x1a38a(%rip), %rsi     # 0x2b2c9
callq 0x42e0
movq %rax, -0x3d8(%rbp)
jmp 0x10f4d
movq -0x3d8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x42c0
movq %rax, -0x3e0(%rbp)
jmp 0x10f69
movq -0x3e0(%rbp), %rdi
leaq 0x1a08e(%rip), %rsi     # 0x2b005
callq 0x42e0
movq %rax, -0x3e8(%rbp)
jmp 0x10f85
movq -0x3e8(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x42c0
movq %rax, -0x3f0(%rbp)
jmp 0x10fa1
movq -0x3f0(%rbp), %rdi
leaq 0x1a534(%rip), %rsi     # 0x2b4e3
callq 0x42e0
movq %rax, -0x3f8(%rbp)
jmp 0x10fbd
movq -0x3f8(%rbp), %rdi
leaq 0x1a604(%rip), %rsi     # 0x2b5cf
callq 0x42e0
movq %rax, -0x400(%rbp)
jmp 0x10fd9
movq -0x400(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x42c0
movq %rax, -0x408(%rbp)
jmp 0x10ff5
movq -0x408(%rbp), %rdi
leaq 0x1a5d5(%rip), %rsi     # 0x2b5d8
callq 0x42e0
movq %rax, -0x410(%rbp)
jmp 0x11011
movq -0x410(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x42c0
movq %rax, -0x418(%rbp)
jmp 0x1102d
movq -0x418(%rbp), %rdi
leaq 0x1a4a8(%rip), %rsi     # 0x2b4e3
callq 0x42e0
jmp 0x11042
jmp 0x11044
movq -0x240(%rbp), %rdi
addq $0x500, %rdi            # imm = 0x500
movl -0x68(%rbp), %esi
callq 0x13240
jmp 0x1105c
movq -0x240(%rbp), %rdi
addq $0x500, %rdi            # imm = 0x500
movl -0x8c(%rbp), %esi
callq 0x13240
jmp 0x11077
movq -0x240(%rbp), %rdi
addq $0x500, %rdi            # imm = 0x500
movl -0x114(%rbp), %esi
callq 0x13240
jmp 0x11092
movl $0x1, -0x64(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x41e0
jmp 0x11538
leaq -0x138(%rbp), %rdi
callq 0x41e0
jmp 0x1156e
movq -0x10(%rbp), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
xorl %esi, %esi
callq *%rax
movq %rax, -0x420(%rbp)
jmp 0x110d3
movq -0x420(%rbp), %rsi
leaq -0x1e8(%rbp), %rdi
callq 0xa2e0
jmp 0x110e8
leaq -0xe0(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x5900
jmp 0x110fd
leaq -0x1e8(%rbp), %rdi
callq 0x285a0
movq -0x240(%rbp), %rax
addq $0x530, %rax            # imm = 0x530
movq %rax, -0x428(%rbp)
leaq -0x208(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x4150
jmp 0x11132
movq -0x428(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x13160
movb %al, -0x429(%rbp)
jmp 0x1114d
leaq -0x208(%rbp), %rdi
callq 0x41e0
movb -0x429(%rbp), %al
testb $0x1, %al
jne 0x11168
jmp 0x113e4
movq -0x240(%rbp), %rax
addq $0x530, %rax            # imm = 0x530
movq %rax, -0x438(%rbp)
leaq -0x230(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x4150
jmp 0x11191
movq -0x438(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x131d0
movq %rax, -0x440(%rbp)
jmp 0x111ad
movq -0x440(%rbp), %rax
movl %eax, %ecx
movl %ecx, -0x210(%rbp)
shrq $0x20, %rax
movb %al, -0x20c(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x41e0
testb $0x1, -0x20c(%rbp)
je 0x11352
movq -0x240(%rbp), %rdi
addq $0x328, %rdi            # imm = 0x328
leaq 0x1a04c(%rip), %rsi     # 0x2b240
callq 0x42e0
movq %rax, -0x448(%rbp)
jmp 0x11202
movq -0x448(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x42c0
movq %rax, -0x450(%rbp)
jmp 0x1121e
movq -0x450(%rbp), %rdi
leaq 0x1a3b4(%rip), %rsi     # 0x2b5e0
callq 0x42e0
movq %rax, -0x458(%rbp)
jmp 0x1123a
movq -0x458(%rbp), %rdi
movl -0x210(%rbp), %esi
callq 0x4420
movq %rax, -0x460(%rbp)
jmp 0x11255
movq -0x460(%rbp), %rdi
leaq 0x19fe3(%rip), %rsi     # 0x2b246
callq 0x42e0
movq %rax, -0x468(%rbp)
jmp 0x11271
movq -0x468(%rbp), %rdi
leaq 0x1a350(%rip), %rsi     # 0x2b5cf
callq 0x42e0
movq %rax, -0x470(%rbp)
jmp 0x1128d
movq -0x470(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x42c0
movq %rax, -0x478(%rbp)
jmp 0x112a9
movq -0x478(%rbp), %rdi
leaq 0x1a321(%rip), %rsi     # 0x2b5d8
callq 0x42e0
movq %rax, -0x480(%rbp)
jmp 0x112c5
movq -0x480(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x42c0
movq %rax, -0x488(%rbp)
jmp 0x112e1
movq -0x488(%rbp), %rdi
leaq 0x1a1f4(%rip), %rsi     # 0x2b4e3
callq 0x42e0
jmp 0x112f6
jmp 0x113df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x285a0
jmp 0x1156e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x41e0
jmp 0x1156e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x41e0
jmp 0x1156e
movq -0x240(%rbp), %rdi
addq $0x328, %rdi            # imm = 0x328
leaq 0x1a274(%rip), %rsi     # 0x2b5db
callq 0x42e0
movq %rax, -0x490(%rbp)
jmp 0x11375
movq -0x490(%rbp), %rdi
movl -0x210(%rbp), %esi
callq 0x4420
movq %rax, -0x498(%rbp)
jmp 0x11390
movq -0x498(%rbp), %rdi
leaq 0x1a23a(%rip), %rsi     # 0x2b5d8
callq 0x42e0
movq %rax, -0x4a0(%rbp)
jmp 0x113ac
movq -0x4a0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x42c0
movq %rax, -0x4a8(%rbp)
jmp 0x113c8
movq -0x4a8(%rbp), %rdi
leaq 0x1a10d(%rip), %rsi     # 0x2b4e3
callq 0x42e0
jmp 0x113dd
jmp 0x113df
jmp 0x114fe
movq -0x240(%rbp), %rdi
addq $0x328, %rdi            # imm = 0x328
leaq 0x19e50(%rip), %rsi     # 0x2b249
callq 0x42e0
movq %rax, -0x4b0(%rbp)
jmp 0x11407
movq -0x4b0(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x42c0
movq %rax, -0x4b8(%rbp)
jmp 0x11423
movq -0x4b8(%rbp), %rdi
leaq 0x19bd4(%rip), %rsi     # 0x2b005
callq 0x42e0
movq %rax, -0x4c0(%rbp)
jmp 0x1143f
movq -0x4c0(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x42c0
movq %rax, -0x4c8(%rbp)
jmp 0x1145b
movq -0x4c8(%rbp), %rdi
leaq 0x1a07a(%rip), %rsi     # 0x2b4e3
callq 0x42e0
movq %rax, -0x4d0(%rbp)
jmp 0x11477
movq -0x4d0(%rbp), %rdi
leaq 0x1a14a(%rip), %rsi     # 0x2b5cf
callq 0x42e0
movq %rax, -0x4d8(%rbp)
jmp 0x11493
movq -0x4d8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x42c0
movq %rax, -0x4e0(%rbp)
jmp 0x114af
movq -0x4e0(%rbp), %rdi
leaq 0x1a11b(%rip), %rsi     # 0x2b5d8
callq 0x42e0
movq %rax, -0x4e8(%rbp)
jmp 0x114cb
movq -0x4e8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x42c0
movq %rax, -0x4f0(%rbp)
jmp 0x114e7
movq -0x4f0(%rbp), %rdi
leaq 0x19fee(%rip), %rsi     # 0x2b4e3
callq 0x42e0
jmp 0x114fc
jmp 0x114fe
movq -0x240(%rbp), %rdi
addq $0x500, %rdi            # imm = 0x500
movl -0x68(%rbp), %esi
callq 0x13240
jmp 0x11516
movq -0x240(%rbp), %rdi
addq $0x500, %rdi            # imm = 0x500
movl -0x8c(%rbp), %esi
callq 0x13240
jmp 0x11531
movl $0x0, -0x64(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x285a0
leaq -0xb0(%rbp), %rdi
callq 0x41e0
leaq -0x88(%rbp), %rdi
callq 0x41e0
leaq -0x30(%rbp), %rdi
callq 0x41e0
addq $0x4f0, %rsp            # imm = 0x4F0
popq %rbp
retq
leaq -0xe0(%rbp), %rdi
callq 0x285a0
leaq -0xb0(%rbp), %rdi
callq 0x41e0
leaq -0x88(%rbp), %rdi
callq 0x41e0
leaq -0x30(%rbp), %rdi
callq 0x41e0
movq -0x38(%rbp), %rdi
callq 0x4580
nopw %cs:(%rax,%rax)