// File: /workspace/github_cpp_makefile_star2_O3/RuiDGPires[P]CrimLang/src/semantic_analiser.cpp
// Function: sc_Tracker::expression(crl::Node*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void _sc_Tracker::expression(crl::Node *node, std::string annotation){
	if (annotation == "")
		annotation = expression_get_type(node);

	node->annotation = annotation;
	size_t size = node->children.size();

	for (size_t i = 0; i < size; i++){
		switch (node->get_child(i)->type){
		case crl::Node::Type::CALL:
			node->get_child(i)->annotation = annotation;
			this->func_call(node->get_child(i), annotation);
			break;
			
		case crl::Node::Type::DEC:
		case crl::Node::Type::INC:
			if (((crl::Leaf *) node->get_child(i)->get_child(0))->token.type == crl::Token::Type::IDENT){
				Context::Item item = this->context->seek(((crl::Leaf *) node->get_child(i)->get_child(0))->token.str);
				ASSERT(item.type == Context::Item::Type::VAR && item.subtype == annotation, "Identifier has not been defined: " + item.name);
				ASSERT(item._mutable, "Variable must be mutable");
			}else ASSERT(false, "Unkown type");
			break;
		case crl::Node::Type::CAST:
			{
			ASSERT(get_token(node->get_child(i)->get_child(1)).str == annotation, "Cast type must correspond to expression type");
			std::string expr_type = expression_get_type(node->get_child(i)->get_child(0));
			ASSERT(is_castable(expr_type, annotation), expr_type + " isn't castable to " + annotation);
			if (node->get_child(i)->get_child(0)->type == crl::Node::Type::CALL){
				node->get_child(i)->get_child(0)->annotation = expr_type;
				this->func_call(node->get_child(i)->get_child(0), expr_type);
				
				break;
			}
			else
				this->expression(node->get_child(i)->get_child(0), expr_type);
			}
			break;
		case crl::Node::Type::VECTOR:
			{
				Context::Item item = this->context->seek(((crl::Leaf *) node->get_child(i)->get_child(0))->token.str);
				ASSERT(item.type == Context::Item::Type::VAR && item._is_vector && item.subtype == annotation, "Identifier has not been defined: " + item.name);
			}
			break;
		case crl::Node::Type::LEAF:
			if (((crl::Leaf *) node->get_child(i))->token.type == crl::Token::Type::IDENT){
				Context::Item item = this->context->seek(((crl::Leaf *) node->get_child(i))->token.str);
				ASSERT(item.type == Context::Item::Type::VAR && item.subtype == annotation, "Identifier has not been defined: " + item.name);
			}else if (((crl::Leaf *) node->get_child(i))->token.type == crl::Token::Type::INT){
				ASSERT(annotation == "i32" || annotation == "u32" || annotation == "char" || annotation == "i64" || annotation == "u64", "Must have integer or unsigned type");
			}else if (((crl::Leaf *) node->get_child(i))->token.type == crl::Token::Type::DEC){
				ASSERT(annotation == "f32" || annotation == "f64", "Must have float type");
			}else if (((crl::Leaf *) node->get_child(i))->token.type == crl::Token::Type::STRING){
				ASSERT(annotation == "string", "Must have string type");
			
			}else if (EXPR_OP(((crl::Leaf *) node->get_child(i))->token));
			else ASSERT(false, "Unkown type");
			break;
		case crl::Node::Type::COMPARISON:
			if (node->get_child(i)->children.size() > 1){
				this->expression(node->get_child(i), "");
				break;
			}
		default:
			this->expression(node->get_child(i), annotation);
			break;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x318, %rsp            # imm = 0x318
movq %rdx, %r15
movq %rsi, -0x30(%rbp)
movq %rdi, %r14
leaq 0x68fd(%rip), %rsi      # 0x1b4e4
movq %rdx, %rdi
callq 0x30a0
testl %eax, %eax
movq %r15, -0x38(%rbp)
jne 0x14c3b
leaq -0xd8(%rbp), %r12
movq %r12, %rdi
movq %r14, %rsi
movq -0x30(%rbp), %rdx
callq 0x17be2
movq %r15, %rdi
movq %r12, %rsi
callq 0x32b0
movq (%r12), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x14c37
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x3230
movq -0x38(%rbp), %r15
movq %r14, -0x48(%rbp)
movq -0x30(%rbp), %rbx
leaq 0x30(%rbx), %rdi
movq %r15, %rsi
callq 0x3150
movq 0x18(%rbx), %rax
subq 0x10(%rbx), %rax
je 0x15663
sarq $0x3, %rax
leaq -0xe8(%rbp), %r14
leaq -0x58(%rbp), %r15
cmpq $0x1, %rax
adcq $0x0, %rax
movq %rax, -0x160(%rbp)
xorl %r12d, %r12d
leaq -0xd8(%rbp), %rbx
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
movl 0x8(%rax), %eax
addl $-0xc, %eax
cmpl $0xd, %eax
ja 0x14e3d
leaq 0x6b98(%rip), %rcx      # 0x1b840
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rbx, %r15
movq %r14, %rbx
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
movq (%rax), %rcx
movq %rax, %rdi
xorl %esi, %esi
callq *0x18(%rcx)
cmpl $0x1, 0x78(%rax)
jne 0x157a3
movq -0x48(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movq %r12, %r13
movl %r12d, %esi
callq *0x18(%rax)
movq (%rax), %rcx
movq %rax, %rdi
xorl %esi, %esi
callq *0x18(%rcx)
leaq -0x58(%rbp), %r12
movq %r12, -0x68(%rbp)
movq 0x58(%rax), %rsi
movq 0x60(%rax), %rdx
addq %rsi, %rdx
leaq -0x68(%rbp), %r14
movq %r14, %rdi
callq 0x4d52
movq %r15, %rdi
movq -0x40(%rbp), %rsi
movq %r14, %rdx
callq 0x442e
movq -0x68(%rbp), %rdi
cmpq %r12, %rdi
je 0x14d43
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x3230
cmpl $0x3, -0xd8(%rbp)
jne 0x15675
movq -0xa8(%rbp), %rdx
movq -0x38(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0x15675
movq %rbx, %r14
movq %r13, %r12
testq %rdx, %rdx
je 0x14d8b
movq -0x38(%rbp), %rax
movq (%rax), %rsi
movq -0xb0(%rbp), %rdi
callq 0x3240
testl %eax, %eax
jne 0x15675
cmpb $0x0, -0x88(%rbp)
je 0x15737
movq %r15, %rbx
movq %r15, %rdi
callq 0x4824
leaq -0x58(%rbp), %r15
jmp 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
movq 0x18(%rax), %rcx
subq 0x10(%rax), %rcx
cmpq $0x9, %rcx
jb 0x14e3d
movq %rbx, %r15
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
movq %rax, %r13
leaq -0x1b0(%rbp), %r14
movq %r14, -0x1c0(%rbp)
leaq -0x1c0(%rbp), %rbx
movq %rbx, %rdi
leaq 0x66eb(%rip), %rdx      # 0x1b4e4
movq %rdx, %rsi
callq 0x4336
movq -0x48(%rbp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x14bc2
movq -0x1c0(%rbp), %rdi
cmpq %r14, %rdi
leaq -0xe8(%rbp), %r14
leaq -0x58(%rbp), %rcx
movq %r15, %rbx
movq %rcx, %r15
je 0x15462
movq -0x1b0(%rbp), %rsi
jmp 0x1545a
movq %r12, %rsi
movq %rbx, %r15
movq %r14, %rbx
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movq %rax, -0x40(%rbp)
leaq -0x190(%rbp), %r13
movq %r13, -0x1a0(%rbp)
movq -0x38(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x1a0(%rbp), %r14
movq %r14, %rdi
callq 0x4d52
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq %r14, %rdx
callq 0x14bc2
movq -0x1a0(%rbp), %rdi
cmpq %r13, %rdi
movq %rbx, %r14
movq %r15, %rbx
leaq -0x58(%rbp), %r15
je 0x15462
movq -0x190(%rbp), %rsi
jmp 0x1545a
movq -0x38(%rbp), %r13
movq -0x48(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
movq (%rax), %rcx
movq %rax, %rdi
xorl %esi, %esi
callq *0x18(%rcx)
leaq -0x170(%rbp), %r14
movq %r14, -0x180(%rbp)
movq 0x58(%rax), %rsi
movq 0x60(%rax), %rdx
addq %rsi, %rdx
leaq -0x180(%rbp), %rdi
callq 0x4d52
movq %rbx, %rdi
movq -0x40(%rbp), %rsi
leaq -0x180(%rbp), %rdx
callq 0x442e
movq -0x180(%rbp), %rdi
cmpq %r14, %rdi
je 0x14f30
movq -0x170(%rbp), %rsi
incq %rsi
callq 0x3230
cmpl $0x3, -0xd8(%rbp)
leaq -0x58(%rbp), %r15
jne 0x156d6
cmpb $0x1, -0x90(%rbp)
jne 0x156d6
movq -0xa8(%rbp), %rdx
cmpq 0x8(%r13), %rdx
jne 0x156d6
testq %rdx, %rdx
je 0x14f7c
movq (%r13), %rsi
movq -0xb0(%rbp), %rdi
callq 0x3240
testl %eax, %eax
jne 0x156d6
movq %rbx, %rdi
callq 0x4824
leaq -0xe8(%rbp), %r14
jmp 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x1, 0x78(%rax)
jne 0x151ae
movq -0x48(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
movq %r14, -0xf8(%rbp)
movq 0x58(%rax), %rsi
movq 0x60(%rax), %rdx
addq %rsi, %rdx
movq %rbx, %r13
leaq -0xf8(%rbp), %rbx
movq %rbx, %rdi
callq 0x4d52
movq %r13, %rdi
movq -0x40(%rbp), %rsi
movq %rbx, %rdx
callq 0x442e
movq -0xf8(%rbp), %rdi
cmpq %r14, %rdi
je 0x1500e
movq -0xe8(%rbp), %rsi
incq %rsi
callq 0x3230
cmpl $0x3, -0xd8(%rbp)
leaq -0xd8(%rbp), %rbx
jne 0x1580f
movq -0xa8(%rbp), %rdx
movq -0x38(%rbp), %rax
cmpq 0x8(%rax), %rdx
jne 0x1580f
testq %rdx, %rdx
je 0x15057
movq -0x38(%rbp), %rax
movq (%rax), %rsi
movq -0xb0(%rbp), %rdi
callq 0x3240
testl %eax, %eax
jne 0x1580f
movq %rbx, %rdi
callq 0x4824
jmp 0x15462
movq %r12, %r14
movq %r15, %r12
movq -0x30(%rbp), %rbx
movq (%rbx), %rax
movq %rbx, %rdi
movl %r14d, %esi
callq *0x18(%rax)
leaq 0x30(%rax), %rdi
movq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x3150
movq (%rbx), %rax
movq %rbx, %rdi
movq %r14, %r13
movl %r14d, %esi
callq *0x18(%rax)
movq %rax, -0x40(%rbp)
leaq -0x1d0(%rbp), %r14
movq %r14, -0x1e0(%rbp)
movq (%r15), %rsi
movq 0x8(%r15), %rdx
addq %rsi, %rdx
leaq -0x1e0(%rbp), %rbx
movq %rbx, %rdi
callq 0x4d52
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq %rbx, %rdx
callq 0x16e0c
movq -0x1e0(%rbp), %rdi
cmpq %r14, %rdi
leaq -0xd8(%rbp), %rbx
leaq -0xe8(%rbp), %r14
movq %r12, %r15
movq %r13, %r12
je 0x15462
movq -0x1d0(%rbp), %rsi
jmp 0x1545a
movq -0x38(%rbp), %rbx
movq -0x48(%rbp), %r14
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
movq (%rax), %rcx
movq %rax, %rdi
movl $0x1, %esi
callq *0x18(%rcx)
movq %rax, %r13
leaq -0xc8(%rbp), %r15
movq %r15, -0xd8(%rbp)
movq 0x58(%rax), %rsi
movq 0x60(%rax), %rdx
addq %rsi, %rdx
leaq -0xd8(%rbp), %rdi
callq 0x4d52
movl 0x80(%r13), %eax
movl %eax, 0x18(%r15)
movq 0x78(%r13), %rax
movq %rax, 0x10(%r15)
movq -0xd0(%rbp), %rdx
cmpq 0x8(%rbx), %rdx
jne 0x15870
movq %rbx, %r15
testq %rdx, %rdx
je 0x15242
movq (%r15), %rsi
movq -0xd8(%rbp), %rdi
callq 0x3240
movl %eax, %r13d
leaq -0xd8(%rbp), %rbx
movq %rbx, %rdi
callq 0x191f8
testl %r13d, %r13d
je 0x15251
jmp 0x1587c
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x13, 0x78(%rax)
jne 0x15477
movq -0x38(%rbp), %rdi
leaq 0x60fe(%rip), %rsi      # 0x1b2ce
callq 0x30a0
testl %eax, %eax
je 0x15462
movq -0x38(%rbp), %rdi
leaq 0x64ab(%rip), %rsi      # 0x1b693
callq 0x30a0
testl %eax, %eax
je 0x15462
movq -0x38(%rbp), %rdi
leaq 0x649b(%rip), %rsi      # 0x1b69b
callq 0x30a0
testl %eax, %eax
je 0x15462
movq -0x38(%rbp), %rdi
leaq 0x6488(%rip), %rsi      # 0x1b6a0
callq 0x30a0
testl %eax, %eax
je 0x15462
movq -0x38(%rbp), %rdi
leaq 0x6474(%rip), %rsi      # 0x1b6a4
callq 0x30a0
testl %eax, %eax
je 0x15462
jmp 0x159bd
leaq -0xd8(%rbp), %rbx
movq %rbx, %rdi
callq 0x191f8
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
movq (%rax), %rcx
movq %rax, %rdi
xorl %esi, %esi
callq *0x18(%rcx)
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x17be2
leaq -0x148(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x158(%rbp), %rdi
callq 0x4d52
movq %r15, %rax
leaq -0x58(%rbp), %r15
leaq -0x270(%rbp), %r13
movq %r13, -0x280(%rbp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x280(%rbp), %rdi
callq 0x4d52
movq -0x280(%rbp), %rdi
cmpq %r13, %rdi
je 0x152e8
movq -0x270(%rbp), %rsi
incq %rsi
callq 0x3230
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
cmpq %rax, %rdi
je 0x1530a
movq -0x148(%rbp), %rsi
incq %rsi
callq 0x3230
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
movq (%rax), %rcx
movq %rax, %rdi
xorl %esi, %esi
callq *0x18(%rcx)
cmpl $0xc, 0x8(%rax)
movq -0x30(%rbp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
jne 0x153c3
movq -0x30(%rbp), %rdi
movl %r12d, %esi
callq *%rax
movq (%rax), %rcx
movq %rax, %rdi
xorl %esi, %esi
callq *0x18(%rcx)
addq $0x30, %rax
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3150
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
movq (%rax), %rcx
movq %rax, %rdi
xorl %esi, %esi
callq *0x18(%rcx)
movq %rax, %r13
leaq -0x128(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x138(%rbp), %rdi
callq 0x4d52
movq -0x48(%rbp), %rdi
movq %r13, %rsi
leaq -0x138(%rbp), %rdx
callq 0x16e0c
movq -0x138(%rbp), %rdi
leaq -0x128(%rbp), %rcx
jmp 0x15426
movq -0x30(%rbp), %rdi
movl %r12d, %esi
callq *%rax
movq (%rax), %rcx
movq %rax, %rdi
xorl %esi, %esi
callq *0x18(%rcx)
movq %rax, %r13
leaq -0x108(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x118(%rbp), %rdi
callq 0x4d52
movq -0x48(%rbp), %rdi
movq %r13, %rsi
leaq -0x118(%rbp), %rdx
callq 0x14bc2
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rcx
movq %rcx, %rax
cmpq %rcx, %rdi
leaq -0xe8(%rbp), %r14
je 0x15440
movq (%rax), %rsi
incq %rsi
callq 0x3230
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x15462
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x3230
incq %r12
cmpq %r12, -0x160(%rbp)
jne 0x14c85
jmp 0x15663
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x14, 0x78(%rax)
jne 0x154b7
movq -0x38(%rbp), %rdi
leaq 0x6202(%rip), %rsi      # 0x1b697
callq 0x30a0
testl %eax, %eax
je 0x15462
movq -0x38(%rbp), %rdi
leaq 0x61ff(%rip), %rsi      # 0x1b6a8
callq 0x30a0
testl %eax, %eax
je 0x15462
jmp 0x158e8
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x1c, 0x78(%rax)
jne 0x154e3
movq -0x38(%rbp), %rdi
leaq 0x6796(%rip), %rsi      # 0x1bc6b
callq 0x30a0
testl %eax, %eax
je 0x15462
jmp 0x15954
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x16, 0x78(%rax)
je 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x17, 0x78(%rax)
je 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x15, 0x78(%rax)
je 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x1a, 0x78(%rax)
je 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x2f, 0x78(%rax)
je 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x34, 0x78(%rax)
je 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x31, 0x78(%rax)
je 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x30, 0x78(%rax)
je 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x32, 0x78(%rax)
je 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x33, 0x78(%rax)
je 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x36, 0x78(%rax)
je 0x15462
movq -0x30(%rbp), %rdi
movq (%rdi), %rax
movl %r12d, %esi
callq *0x18(%rax)
cmpl $0x35, 0x78(%rax)
je 0x15462
movl $0x50, %edi
callq 0x3120
movq %rax, %r14
leaq -0x1f0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x6649(%rip), %rsi      # 0x1bc5f
leaq 0x664d(%rip), %rdx      # 0x1bc6a
leaq -0x200(%rbp), %rdi
callq 0x4336
movb $0x1, %r12b
leaq -0x200(%rbp), %rcx
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x5470
xorl %r12d, %r12d
leaq 0xd729(%rip), %rsi      # 0x22d78
leaq -0x10070(%rip), %rdx    # 0x55e6
movq %r14, %rdi
callq 0x33d0
jmp 0x15a24
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x50, %edi
callq 0x3120
movq %rax, %r14
leaq -0xd0(%rbp), %rdx
leaq 0x65e2(%rip), %rsi      # 0x1bc72
leaq -0x340(%rbp), %rdi
callq 0x40f1
movb $0x1, %r15b
leaq -0x340(%rbp), %rcx
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x5470
xorl %r15d, %r15d
leaq 0xd6b6(%rip), %rsi      # 0x22d78
leaq -0x100e3(%rip), %rdx    # 0x55e6
movq %r14, %rdi
callq 0x33d0
jmp 0x15a24
movl $0x50, %edi
callq 0x3120
movq %rax, %r14
leaq -0xd0(%rbp), %rdx
leaq 0x6581(%rip), %rsi      # 0x1bc72
leaq -0x320(%rbp), %rdi
callq 0x40f1
movb $0x1, %r15b
leaq -0x320(%rbp), %rcx
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x5470
xorl %r15d, %r15d
leaq 0xd655(%rip), %rsi      # 0x22d78
leaq -0x10144(%rip), %rdx    # 0x55e6
movq %r14, %rdi
callq 0x33d0
jmp 0x15a24
movl $0x50, %edi
callq 0x3120
movq %rax, %r14
leaq -0x2d0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x653e(%rip), %rsi      # 0x1bc94
leaq 0x654f(%rip), %rdx      # 0x1bcac
leaq -0x2e0(%rbp), %rdi
callq 0x4336
movb $0x1, %r12b
leaq -0x2e0(%rbp), %rcx
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x5470
xorl %r12d, %r12d
leaq 0xd5e9(%rip), %rsi      # 0x22d78
leaq -0x101b0(%rip), %rdx    # 0x55e6
movq %r14, %rdi
callq 0x33d0
jmp 0x15a24
movl $0x50, %edi
callq 0x3120
movq %rax, %r14
leaq -0x2b0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x649d(%rip), %rsi      # 0x1bc5f
leaq 0x64a1(%rip), %rdx      # 0x1bc6a
leaq -0x2c0(%rbp), %rdi
callq 0x4336
movb $0x1, %r12b
leaq -0x2c0(%rbp), %rcx
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x5470
xorl %r12d, %r12d
leaq 0xd57d(%rip), %rsi      # 0x22d78
leaq -0x1021c(%rip), %rdx    # 0x55e6
movq %r14, %rdi
callq 0x33d0
jmp 0x15a24
movl $0x50, %edi
callq 0x3120
movq %rax, %r14
leaq -0xd0(%rbp), %rdx
leaq 0x6448(%rip), %rsi      # 0x1bc72
leaq -0x300(%rbp), %rdi
callq 0x40f1
movb $0x1, %r15b
leaq -0x300(%rbp), %rcx
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x5470
xorl %r15d, %r15d
leaq 0xd51c(%rip), %rsi      # 0x22d78
leaq -0x1027d(%rip), %rdx    # 0x55e6
movq %r14, %rdi
callq 0x33d0
jmp 0x15a24
leaq -0xd8(%rbp), %rdi
callq 0x191f8
movl $0x50, %edi
callq 0x3120
movq %rax, %r14
leaq -0x290(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x6412(%rip), %rsi      # 0x1bcad
leaq 0x6437(%rip), %rdx      # 0x1bcd9
leaq -0x2a0(%rbp), %rdi
callq 0x4336
movb $0x1, %r12b
leaq -0x2a0(%rbp), %rcx
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x5470
xorl %r12d, %r12d
leaq 0xd4a4(%rip), %rsi      # 0x22d78
leaq -0x102f5(%rip), %rdx    # 0x55e6
movq %r14, %rdi
callq 0x33d0
jmp 0x15a24
movl $0x50, %edi
callq 0x3120
movq %rax, %r14
leaq -0x230(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x63f6(%rip), %rsi      # 0x1bcfd
leaq 0x6403(%rip), %rdx      # 0x1bd11
leaq -0x240(%rbp), %rdi
callq 0x4336
movb $0x1, %r12b
leaq -0x240(%rbp), %rcx
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x5470
xorl %r12d, %r12d
leaq 0xd438(%rip), %rsi      # 0x22d78
leaq -0x10361(%rip), %rdx    # 0x55e6
movq %r14, %rdi
callq 0x33d0
jmp 0x15a24
movl $0x50, %edi
callq 0x3120
movq %rax, %r14
leaq -0x210(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x639f(%rip), %rsi      # 0x1bd12
leaq 0x63ad(%rip), %rdx      # 0x1bd27
leaq -0x220(%rbp), %rdi
callq 0x4336
movb $0x1, %r12b
leaq -0x220(%rbp), %rcx
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x5470
xorl %r12d, %r12d
leaq 0xd3cc(%rip), %rsi      # 0x22d78
leaq -0x103cd(%rip), %rdx    # 0x55e6
movq %r14, %rdi
callq 0x33d0
jmp 0x15a24
movl $0x50, %edi
callq 0x3120
movq %rax, %r14
leaq -0x250(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x62fe(%rip), %rsi      # 0x1bcda
leaq 0x6319(%rip), %rdx      # 0x1bcfc
leaq -0x260(%rbp), %rdi
callq 0x4336
movb $0x1, %r12b
leaq -0x260(%rbp), %rcx
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x5470
xorl %r12d, %r12d
leaq 0xd363(%rip), %rsi      # 0x22d78
leaq -0x10436(%rip), %rdx    # 0x55e6
movq %r14, %rdi
callq 0x33d0
movq %rax, %rbx
movq -0x200(%rbp), %rdi
cmpq %r15, %rdi
je 0x15bcc
movq -0x1f0(%rbp), %rsi
jmp 0x15bc4
jmp 0x15bd6
movq %rax, %rbx
movq -0x260(%rbp), %rdi
cmpq %r15, %rdi
je 0x15bcc
movq -0x250(%rbp), %rsi
jmp 0x15bc4
jmp 0x15bd6
movq %rax, %rbx
movq -0x220(%rbp), %rdi
cmpq %r15, %rdi
je 0x15bcc
movq -0x210(%rbp), %rsi
jmp 0x15bc4
jmp 0x15bd6
movq %rax, %rbx
movq -0x240(%rbp), %rdi
cmpq %r15, %rdi
je 0x15bcc
movq -0x230(%rbp), %rsi
jmp 0x15bc4
jmp 0x15bd6
movq %rax, %rbx
movq -0xf8(%rbp), %rdi
cmpq %r14, %rdi
je 0x15d08
movq -0xe8(%rbp), %rsi
jmp 0x15d00
movq %rax, %rbx
movq -0x138(%rbp), %rdi
leaq -0x128(%rbp), %rax
cmpq %rax, %rdi
je 0x15ce6
movq -0x128(%rbp), %rsi
jmp 0x15ba1
movq %rax, %rbx
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
cmpq %rax, %rdi
je 0x15ce6
movq -0x108(%rbp), %rsi
jmp 0x15ba1
movq %rax, %rbx
movq -0x1c0(%rbp), %rdi
cmpq %r14, %rdi
je 0x15d08
movq -0x1b0(%rbp), %rsi
jmp 0x15d00
movq %rax, %rbx
leaq -0x2f0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15cc3
movq -0x2f0(%rbp), %rsi
jmp 0x15cbb
jmp 0x15cca
movq %rax, %rbx
movq -0x2a0(%rbp), %rdi
cmpq %r15, %rdi
je 0x15bcc
movq -0x290(%rbp), %rsi
jmp 0x15bc4
jmp 0x15bd6
movq %rax, %rbx
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
cmpq %rax, %rdi
je 0x15ce6
movq -0x148(%rbp), %rsi
incq %rsi
callq 0x3230
jmp 0x15ce6
movq %rax, %rbx
movq -0x2c0(%rbp), %rdi
cmpq %r15, %rdi
je 0x15bcc
movq -0x2b0(%rbp), %rsi
incq %rsi
callq 0x3230
testb %r12b, %r12b
jne 0x15bd9
jmp 0x15d08
movq %rax, %rbx
movq %r14, %rdi
callq 0x31a0
jmp 0x15d08
movq %rax, %rbx
movq -0x180(%rbp), %rdi
cmpq %r14, %rdi
je 0x15d08
movq -0x170(%rbp), %rsi
jmp 0x15d00
movq %rax, %rbx
movq -0x1e0(%rbp), %rdi
cmpq %r14, %rdi
je 0x15d08
movq -0x1d0(%rbp), %rsi
jmp 0x15d00
movq %rax, %rbx
movq -0x2e0(%rbp), %rdi
cmpq %r15, %rdi
je 0x15c42
movq -0x2d0(%rbp), %rsi
incq %rsi
callq 0x3230
testb %r12b, %r12b
jne 0x15ccd
jmp 0x15cd5
jmp 0x15cca
movq %rax, %rbx
movq -0x1a0(%rbp), %rdi
cmpq %r13, %rdi
je 0x15d08
movq -0x190(%rbp), %rsi
jmp 0x15d00
movq %rax, %rbx
leaq -0x310(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15cc3
movq -0x310(%rbp), %rsi
jmp 0x15cbb
jmp 0x15cca
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r12, %rdi
je 0x15d08
movq -0x58(%rbp), %rsi
jmp 0x15d00
movq %rax, %rbx
leaq -0x330(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x15cc3
movq -0x330(%rbp), %rsi
incq %rsi
callq 0x3230
testb %r15b, %r15b
jne 0x15ccd
jmp 0x15cd5
movq %rax, %rbx
movq %r14, %rdi
callq 0x31a0
leaq -0xd8(%rbp), %rdi
callq 0x4824
jmp 0x15d08
movq %rax, %rbx
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x15d08
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x3230
movq %rbx, %rdi
callq 0x33f0