// File: /workspace/github_cpp_makefile_star2_O3/araujoigor[P]ipp-compiler/./src/include/IDefinition.hpp
// Function: IDefinition::generateCode(std::basic_fstream<char, std::char_traits<char>>&)
void generateCode(std::fstream& fileStream) {
		int i;

		/* Primeiramente escreve-se o tipo da definição em questão */
		fileStream << getCppType() + " ";

		/*
		 * Primeiramente, processa-se as definições que recebem como valor um numero ou uma string.
		 */
		for(i = 0; i < (int)vars.size() - 1; i++){
			IData* actual = vars[i];

			/* Escreve-se o nome da variável */
			fileStream << actual->getId();

			/* E se ela possuir um valor, escreve-se esse valor. */
			if(actual->getHasValue()){
				fileStream << " = ";
				actual->printValue(fileStream);
			}

			/* Adiciona-se uma virgula, já que se trata de uma multipla definição */
			fileStream << ", ";
		}

		if(vars.size() > 0){
			IData* actual = vars[i];
			fileStream << vars[i]->getId();
			if(actual->getHasValue()){
				fileStream << " = ";
				actual->printValue(fileStream);
			}
			i++;
		}

		/*
		 * Checa-se então as variáveis que tem como valor outras variáveis.
		 */

		for(auto it = varEqualsVarMapping.begin(); it != varEqualsVarMapping.end(); ++it){
			/* Obtemos as variáveis a esquerda e a direita (que recebe e cede o valor, respectivamente) */
			IData *rightVar = ownerBlock->getLocalVariable(it->second);
			IData *leftVar = ownerBlock->getLocalVariable(it->first);

			/* Caso a variavél da direita não exista, gera-se um erro. */
			if(rightVar == NULL){
				std::string errorMsg = "Variavel " + it->second + " nao declarada.";
				throw ISourceErrorException(errorMsg, myLine);
			}

			/* Caso não haja compatibilidade de tipos, gera-se um erro */
			if(rightVar->getType() != type && !(type == "real" && rightVar->getType() == "inteiro") ){
				std::string errorMsg = "Impossivel atribuir '" + it->second + "' (" + rightVar->getType() + ") a '" + it->first + "' (" + type + "). Tipos incompativeis.";
				throw ISourceErrorException(errorMsg, myLine);
			}

			if(type == "inteiro" && rightVar->getType() == "inteiro"){
				((IInteger *)leftVar)->setValue(((IInteger *)rightVar)->getValue());
			}else if(type == "real" && rightVar->getType() == "inteiro"){
				((IReal *)leftVar)->setValue(((IInteger *)rightVar)->getValue());
			}else if(type == "real" && rightVar->getType() == "real"){
				((IReal *)leftVar)->setValue(((IReal *)rightVar)->getValue());
			}else{
				std::string errorMsg = "Impossivel atribuir '"+ it->second + "' (" + rightVar->getType() + ") a '" + it->first + "' (" + type + "). Tipos incompativeis.";
				throw ISourceErrorException(errorMsg, myLine);
			}

			/* Se houver mais de uma definição, adiciona-se uma virgula. */
			if(i > 0)
				fileStream << ", ";

			/* E escreve-se o nome das variaveis a esquerda e a direita */
			fileStream << it->first << " = " << it->second;
			i++;

		}

		/*
		 * Finalmente, checa-se então as variáveis que tem como valor uma expressãom matemática
		 */
		for(auto it = varEqualsMathMapping.begin(); it != varEqualsMathMapping.end(); ++it){
			int mathType;

			/* Se houver mais de uma definição, adicionamos uma virgula. */
			if(i > 0)
				fileStream << ", ";

			/* E escreve-se o nome da variável a direita e a expressão a esquerda. */
			fileStream << it->first << " = " << it->second->checkAndGetExpression(ownerBlock, myLine);

			/* Realiza-se a analise de compatibilidade de tipos */
			mathType = it->second->getMathType();

			if(mathType == IMath::TYPE_REAL && type == IInteger::myType){
				std::cout << "Atencao: usar uma variavel real em uma operacao para uma variavel inteira causa perda de dados. " << std::endl;
			}else if(type == "string"){
				std::string errorMsg = "Impossivel atribuir uma expressao matematica a variavel string " + it->first;
				throw ISourceErrorException(errorMsg, myLine);
			}
		}

		/* No final da atribuição, adicionamos um ; */
		fileStream << ";" << std::endl;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x228, %rsp            # imm = 0x228
movq %rsi, %r13
movq %rdi, %rsi
leaq -0x90(%rbp), %r14
movq %r14, %rdi
movq %rsi, -0x50(%rbp)
callq 0xc7c2
leaq 0x1fe4b(%rip), %rsi     # 0x2b347
movq %r14, %rdi
callq 0x7850
leaq 0x10(%r13), %r15
leaq -0x38(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0xb52c
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0xb537
movupd (%rcx), %xmm0
movupd %xmm0, (%rbx)
movq %rbx, %rsi
movq -0x50(%rbp), %r14
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
callq 0x7460
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0xb568
callq 0x7350
leaq -0x80(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb57a
callq 0x7350
movq 0x38(%r14), %rax
movq 0x40(%r14), %rcx
movq %rcx, %rdx
subq %rax, %rdx
shrq $0x3, %rdx
xorl %esi, %esi
cmpl $0x2, %edx
movq %r15, -0x70(%rbp)
jl 0xb65e
movq %r13, -0x60(%rbp)
xorl %esi, %esi
movabsq $-0x100000000, %r14     # imm = 0xFFFFFFFF00000000
movq %rsi, %r12
movq (%rax,%rsi,8), %r13
movq %rbx, -0x48(%rbp)
movq 0x8(%r13), %rsi
movq 0x10(%r13), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %rdi
callq 0xfbae
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %r15, %rdi
callq 0x7460
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0xb5e8
callq 0x7350
cmpb $0x1, 0x28(%r13)
jne 0xb612
movl $0x3, %edx
movq -0x70(%rbp), %rdi
leaq 0x1fbd1(%rip), %rsi     # 0x2b1d0
callq 0x7460
movq (%r13), %rax
movq %r13, %rdi
movq -0x60(%rbp), %rsi
callq *0x18(%rax)
movl $0x2, %edx
movq -0x70(%rbp), %r15
movq %r15, %rdi
leaq 0x1fbc9(%rip), %rsi     # 0x2b1ee
callq 0x7460
movq %r12, %rsi
incq %rsi
movq -0x50(%rbp), %rcx
movq 0x38(%rcx), %rax
movq 0x40(%rcx), %rcx
movq %rcx, %rdx
subq %rax, %rdx
shlq $0x1d, %rdx
addq %r14, %rdx
sarq $0x20, %rdx
cmpq %rdx, %rsi
jl 0xb5ab
movq -0x50(%rbp), %r14
movq -0x60(%rbp), %r13
cmpq %rax, %rcx
je 0xb6dc
movq %rsi, %r12
movl %esi, %ecx
movq (%rax,%rcx,8), %r14
leaq -0x38(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r15
movq %r15, %rdi
callq 0xfbae
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq -0x70(%rbp), %r15
movq %r15, %rdi
callq 0x7460
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0xb6ac
callq 0x7350
cmpb $0x1, 0x28(%r14)
jne 0xb6d3
leaq 0x1fb16(%rip), %rsi     # 0x2b1d0
movl $0x3, %edx
movq %r15, %rdi
callq 0x7460
movq (%r14), %rax
movq %r14, %rdi
movq %r13, %rsi
callq *0x18(%rax)
movq %r12, %rsi
incl %esi
movq -0x50(%rbp), %r14
movq %rsi, -0x60(%rbp)
movq 0x68(%r14), %rax
leaq 0x58(%r14), %rcx
movq %rcx, -0x108(%rbp)
cmpq %rcx, %rax
je 0xba23
leaq 0x18(%r14), %r13
movq %r13, -0x58(%rbp)
movq %r14, %rbx
movq 0x10(%r14), %rcx
movq %rcx, -0x68(%rbp)
leaq -0x1b8(%rbp), %r15
movq %r15, -0x1c8(%rbp)
movq 0x40(%rax), %rsi
movq %rax, %r12
movq 0x48(%rax), %rdx
addq %rsi, %rdx
leaq -0x1c8(%rbp), %r14
movq %r14, %rdi
callq 0xfbae
movq -0x68(%rbp), %rdi
movq %r14, %rsi
callq 0xc924
movq %rax, -0x68(%rbp)
movq -0x1c8(%rbp), %rdi
cmpq %r15, %rdi
je 0xb757
callq 0x7350
movq 0x10(%rbx), %r14
leaq -0x198(%rbp), %r15
movq %r15, -0x1a8(%rbp)
movq 0x20(%r12), %rsi
movq 0x28(%r12), %rdx
addq %rsi, %rdx
leaq -0x1a8(%rbp), %r13
movq %r13, %rdi
callq 0xfbae
movq %r14, %rdi
movq %r13, %rsi
callq 0xc924
movq %rax, %r14
movq -0x1a8(%rbp), %rdi
cmpq %r15, %rdi
movq -0x58(%rbp), %r13
je 0xb7a8
callq 0x7350
leaq 0x40(%r12), %r15
movq -0x68(%rbp), %rbx
testq %rbx, %rbx
je 0xbc22
movq (%rbx), %rax
leaq -0x48(%rbp), %rdi
movq %rbx, %rsi
callq *0x10(%rax)
movq -0x40(%rbp), %rdx
movq -0x50(%rbp), %rax
cmpq 0x20(%rax), %rdx
jne 0xb7eb
testq %rdx, %rdx
je 0xb840
movq (%r13), %rsi
movq -0x48(%rbp), %rdi
callq 0x73e0
testl %eax, %eax
je 0xb840
movq %r13, %rdi
leaq 0x1f431(%rip), %rsi     # 0x2ac26
callq 0x7100
movb $0x1, %r13b
testl %eax, %eax
jne 0xb843
movq (%rbx), %rax
leaq -0x90(%rbp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq *0x10(%rax)
movq %r13, %rdi
leaq 0x1f40d(%rip), %rsi     # 0x2ac2b
callq 0x7100
testl %eax, %eax
setne %r13b
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xb843
callq 0x7350
jmp 0xb843
xorl %r13d, %r13d
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb855
callq 0x7350
leaq 0x20(%r12), %rax
movq %rax, -0xb8(%rbp)
testb %r13b, %r13b
jne 0xbc76
movq -0x58(%rbp), %r13
movq %r13, %rdi
leaq 0x1f3b3(%rip), %rsi     # 0x2ac2b
callq 0x7100
testl %eax, %eax
jne 0xb8c2
movq (%rbx), %rax
leaq -0x48(%rbp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq *0x10(%rax)
movq %r13, %rdi
leaq 0x1f390(%rip), %rsi     # 0x2ac2b
callq 0x7100
movl %eax, %r13d
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb8b5
callq 0x7350
testl %r13d, %r13d
movq -0x58(%rbp), %r13
je 0xba08
movq %r15, -0x100(%rbp)
movq %r13, %rdi
movq %r13, %r15
leaq 0x1f350(%rip), %r13     # 0x2ac26
movq %r13, %rsi
callq 0x7100
testl %eax, %eax
jne 0xb92a
movq (%rbx), %rax
leaq -0x48(%rbp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq *0x10(%rax)
movq %r13, %rdi
leaq 0x1f32f(%rip), %rsi     # 0x2ac2b
callq 0x7100
movl %eax, %r13d
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb916
callq 0x7350
testl %r13d, %r13d
movq -0x58(%rbp), %r15
leaq 0x1f302(%rip), %r13     # 0x2ac26
je 0xba19
movq %r15, %rdi
movq %r13, %rsi
callq 0x7100
testl %eax, %eax
jne 0xbbca
movq (%rbx), %rax
leaq -0x48(%rbp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq *0x10(%rax)
movq %r13, %rdi
leaq 0x1f2cf(%rip), %rsi     # 0x2ac26
callq 0x7100
movl %eax, %r13d
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xb971
callq 0x7350
testl %r13d, %r13d
jne 0xbbca
movsd 0x30(%rbx), %xmm0
movb $0x1, 0x28(%r14)
movsd %xmm0, 0x30(%r14)
cmpl $0x0, -0x60(%rbp)
movq -0x50(%rbp), %r14
movq -0x70(%rbp), %r15
je 0xb9ac
movl $0x2, %edx
movq %r15, %rdi
leaq 0x1f847(%rip), %rsi     # 0x2b1ee
callq 0x7460
movq 0x20(%r12), %rsi
movq 0x28(%r12), %rdx
movq %r15, %rdi
callq 0x7460
movq %rax, %rbx
movl $0x3, %edx
movq %rax, %rdi
leaq 0x1f800(%rip), %rsi     # 0x2b1d0
callq 0x7460
movq 0x40(%r12), %rsi
movq 0x48(%r12), %rdx
movq %rbx, %rdi
callq 0x7460
movq -0x60(%rbp), %rax
incl %eax
movq %rax, -0x60(%rbp)
movq %r12, %rdi
callq 0x72c0
cmpq -0x108(%rbp), %rax
jne 0xb700
jmp 0xba23
movl 0x2c(%rbx), %eax
movb $0x1, 0x28(%r14)
movl %eax, 0x2c(%r14)
jmp 0xb98a
cvtsi2sdl 0x2c(%rbx), %xmm0
jmp 0xb97f
movq 0x98(%r14), %rbx
leaq 0x88(%r14), %r12
cmpq %r12, %rbx
je 0xbb7d
movq -0x50(%rbp), %rax
leaq 0x18(%rax), %r14
leaq -0x48(%rbp), %r13
movq %r12, -0x58(%rbp)
cmpl $0x0, -0x60(%rbp)
jle 0xba64
movl $0x2, %edx
movq %r15, %rdi
leaq 0x1f78f(%rip), %rsi     # 0x2b1ee
callq 0x7460
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
movq %r15, %rdi
callq 0x7460
movq %rax, %r15
movl $0x3, %edx
movq %rax, %rdi
leaq 0x1f74a(%rip), %rsi     # 0x2b1d0
callq 0x7460
movq 0x40(%rbx), %rsi
movq -0x50(%rbp), %rax
movq 0x10(%rax), %rdx
movl 0x8(%rax), %ecx
movq %r13, %rdi
callq 0xcc58
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %r15, %rdi
callq 0x7460
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xbac4
callq 0x7350
movq 0x40(%rbx), %rax
cmpl $0x1, 0x38(%rax)
movq -0x70(%rbp), %r15
jne 0xbafb
movq -0x50(%rbp), %rax
movq 0x20(%rax), %rdx
cmpq 0x309f7(%rip), %rdx     # 0x3c4d8
jne 0xbafb
testq %rdx, %rdx
je 0xbb28
movq 0x309e1(%rip), %rsi     # 0x3c4d0
movq (%r14), %rdi
callq 0x73e0
testl %eax, %eax
je 0xbb28
movq %r14, %rdi
leaq 0x1f7df(%rip), %rsi     # 0x2b2e4
callq 0x7100
testl %eax, %eax
je 0xbcca
movq %rbx, %rdi
callq 0x72c0
movq %rax, %rbx
cmpq %r12, %rax
jne 0xba4a
jmp 0xbb7d
movl $0x60, %edx
movq %r14, %r12
movq %r13, %r14
movq 0x3048e(%rip), %r13     # 0x3bfc8
movq %r13, %rdi
leaq 0x1f6ef(%rip), %rsi     # 0x2b233
callq 0x7460
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x7360
movsbl %al, %esi
movq %r13, %rdi
movq %r14, %r13
movq %r12, %r14
movq -0x58(%rbp), %r12
callq 0x7030
movq %rax, %rdi
callq 0x72b0
jmp 0xbb12
leaq 0x23c04(%rip), %rsi     # 0x2f788
movl $0x1, %edx
movq %r15, %rdi
callq 0x7460
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7360
movsbl %al, %esi
movq %r15, %rdi
callq 0x7030
movq %rax, %rdi
callq 0x72b0
addq $0x228, %rsp            # imm = 0x228
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1f62a(%rip), %rsi     # 0x2b1fb
leaq -0x188(%rbp), %r14
movq %r14, %rdi
movq -0x100(%rbp), %rdx
callq 0xca4b
leaq 0x1f623(%rip), %rsi     # 0x2b211
movq %r14, %rdi
callq 0x7850
leaq -0xa0(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xbd49
movupd (%rcx), %xmm0
movupd %xmm0, (%r14)
jmp 0xbd5a
leaq 0x1f5c8(%rip), %rsi     # 0x2b1f1
leaq -0x90(%rbp), %rbx
movq %rbx, %rdi
movq %r15, %rdx
callq 0xca4b
leaq 0x23b2e(%rip), %rsi     # 0x2f770
movq %rbx, %rdi
callq 0x7850
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xbdde
movupd (%rcx), %xmm0
leaq -0x38(%rbp), %rdx
movupd %xmm0, (%rdx)
jmp 0xbde9
leaq 0x1f57e(%rip), %rsi     # 0x2b1fb
leaq -0x188(%rbp), %r14
movq %r14, %rdi
movq %r15, %rdx
callq 0xca4b
leaq 0x1f57b(%rip), %rsi     # 0x2b211
movq %r14, %rdi
callq 0x7850
leaq -0xa0(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xbe7b
movupd (%rcx), %xmm0
movupd %xmm0, (%r14)
jmp 0xbe8c
addq $0x20, %rbx
leaq 0x1f5bf(%rip), %rsi     # 0x2b294
leaq -0x48(%rbp), %r15
movq %r15, %rdi
movq %rbx, %rdx
callq 0xca4b
movl $0x28, %edi
callq 0x71f0
movq %rax, %r14
leaq -0x1d8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r15), %rsi
movq 0x8(%r15), %rdx
addq %rsi, %rdx
leaq -0x1e8(%rbp), %rdi
callq 0xfbae
movq -0x50(%rbp), %rax
movl 0x8(%rax), %edx
movb $0x1, %r15b
leaq -0x1e8(%rbp), %rsi
movq %r14, %rdi
callq 0xcad6
xorl %r15d, %r15d
leaq 0x2f37b(%rip), %rsi     # 0x3b0b0
leaq 0xdea(%rip), %rdx       # 0xcb26
movq %r14, %rdi
callq 0x7770
jmp 0xc355
movq %rdx, -0xb0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa0(%rbp)
movq 0x8(%rax), %rdx
movq %rdx, -0xa8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x68(%rbp), %rsi
movq (%rsi), %rax
leaq -0x128(%rbp), %rdi
callq *0x10(%rax)
leaq -0x148(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
leaq -0x128(%rbp), %rdx
callq 0xcba5
leaq 0x1f46f(%rip), %rsi     # 0x2b215
leaq -0x148(%rbp), %rdi
callq 0x7850
leaq -0xc8(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xbf10
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
jmp 0xbf21
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xbe15
callq 0x7350
movl $0x28, %edi
callq 0x71f0
movq %rax, %r14
leaq -0x238(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x248(%rbp), %rdi
callq 0xfbae
movq -0x50(%rbp), %rax
movl 0x8(%rax), %edx
movb $0x1, %r15b
leaq -0x248(%rbp), %rsi
movq %r14, %rdi
callq 0xcad6
xorl %r15d, %r15d
leaq 0x2f249(%rip), %rsi     # 0x3b0b0
leaq 0xcb8(%rip), %rdx       # 0xcb26
movq %r14, %rdi
callq 0x7770
jmp 0xc355
movq %rdx, -0xb0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa0(%rbp)
movq 0x8(%rax), %rdx
movq %rdx, -0xa8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x68(%rbp), %rsi
movq (%rsi), %rax
leaq -0x128(%rbp), %rdi
callq *0x10(%rax)
leaq -0x148(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
leaq -0x128(%rbp), %rdx
callq 0xcba5
leaq 0x1f33d(%rip), %rsi     # 0x2b215
leaq -0x148(%rbp), %rdi
callq 0x7850
leaq -0xc8(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xbf93
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
jmp 0xbfa4
movq %rdx, -0xd8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xc8(%rbp)
movq 0x8(%rax), %rdx
leaq -0xd8(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x168(%rbp), %rdi
movq -0xb8(%rbp), %rdx
callq 0xcb41
leaq 0x1f2b8(%rip), %rsi     # 0x2b211
leaq -0x168(%rbp), %rdi
callq 0x7850
leaq -0xe8(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xc016
movupd (%rcx), %xmm0
movupd %xmm0, (%r12)
jmp 0xc027
movq %rdx, -0xd8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xc8(%rbp)
movq 0x8(%rax), %rdx
leaq -0xd8(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x168(%rbp), %rdi
movq -0xb8(%rbp), %rdx
callq 0xcb41
leaq 0x1f235(%rip), %rsi     # 0x2b211
leaq -0x168(%rbp), %rdi
callq 0x7850
leaq -0xe8(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xc094
movupd (%rcx), %xmm0
movupd %xmm0, (%r12)
jmp 0xc0a5
movq %rdx, -0xf8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xe8(%rbp)
movq 0x8(%rax), %rdx
leaq -0xf8(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x90(%rbp), %rdi
movq -0x58(%rbp), %rdx
callq 0xcb41
leaq 0x1f1bf(%rip), %rsi     # 0x2b21b
leaq -0x90(%rbp), %rdi
callq 0x7850
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xc112
movupd (%rcx), %xmm0
leaq -0x38(%rbp), %rdx
movupd %xmm0, (%rdx)
jmp 0xc11d
movq %rdx, -0xf8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xe8(%rbp)
movq 0x8(%rax), %rdx
leaq -0xf8(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x90(%rbp), %rdi
movq -0x58(%rbp), %rdx
callq 0xcb41
leaq 0x1f141(%rip), %rsi     # 0x2b21b
leaq -0x90(%rbp), %rdi
callq 0x7850
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xc236
movupd (%rcx), %xmm0
leaq -0x38(%rbp), %rdx
movupd %xmm0, (%rdx)
jmp 0xc241
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xc149
callq 0x7350
movq -0xf8(%rbp), %rdi
cmpq %r12, %rdi
je 0xc15a
callq 0x7350
leaq -0x158(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc16f
callq 0x7350
movq -0xd8(%rbp), %rdi
cmpq %r15, %rdi
je 0xc180
callq 0x7350
leaq -0x138(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc195
callq 0x7350
leaq -0x118(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc1aa
callq 0x7350
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
je 0xc1bb
callq 0x7350
leaq -0x178(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc1d0
callq 0x7350
movl $0x28, %edi
callq 0x71f0
movq %rax, %r14
leaq -0x1f8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x208(%rbp), %rdi
callq 0xfbae
movq -0x50(%rbp), %rax
movl 0x8(%rax), %edx
movb $0x1, %r15b
leaq -0x208(%rbp), %rsi
movq %r14, %rdi
callq 0xcad6
xorl %r15d, %r15d
leaq 0x2ee8e(%rip), %rsi     # 0x3b0b0
leaq 0x8fd(%rip), %rdx       # 0xcb26
movq %r14, %rdi
callq 0x7770
jmp 0xc355
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xc26d
callq 0x7350
movq -0xf8(%rbp), %rdi
cmpq %r12, %rdi
je 0xc27e
callq 0x7350
leaq -0x158(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc293
callq 0x7350
movq -0xd8(%rbp), %rdi
cmpq %r15, %rdi
je 0xc2a4
callq 0x7350
leaq -0x138(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc2b9
callq 0x7350
leaq -0x118(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc2ce
callq 0x7350
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
je 0xc2df
callq 0x7350
leaq -0x178(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc2f4
callq 0x7350
movl $0x28, %edi
callq 0x71f0
movq %rax, %r14
leaq -0x218(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x228(%rbp), %rdi
callq 0xfbae
movq -0x50(%rbp), %rax
movl 0x8(%rax), %edx
movb $0x1, %r15b
leaq -0x228(%rbp), %rsi
movq %r14, %rdi
callq 0xcad6
xorl %r15d, %r15d
leaq 0x2ed6a(%rip), %rsi     # 0x3b0b0
leaq 0x7d9(%rip), %rdx       # 0xcb26
movq %r14, %rdi
callq 0x7770
movq %rax, %r13
movq -0x228(%rbp), %rdi
jmp 0xc473
jmp 0xc484
movq %rax, %r13
movq -0x208(%rbp), %rdi
jmp 0xc473
jmp 0xc484
jmp 0xc37f
movq %rax, %r13
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0xc39e
callq 0x7350
jmp 0xc39e
jmp 0xc39b
movq %rax, %r13
movq -0xf8(%rbp), %rdi
cmpq %r12, %rdi
je 0xc3b6
callq 0x7350
jmp 0xc3b6
jmp 0xc3b3
movq %rax, %r13
leaq -0x158(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc3d7
callq 0x7350
jmp 0xc3d7
jmp 0xc3d4
jmp 0xc4b3
movq %rax, %r13
movq -0xd8(%rbp), %rdi
cmpq %r15, %rdi
je 0xc40e
callq 0x7350
jmp 0xc40e
movq %rax, %r13
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
je 0xc400
callq 0x7350
jmp 0xc400
movq %rax, %r13
leaq -0x80(%rbp), %rax
jmp 0xc4ad
jmp 0xc40b
movq %rax, %r13
leaq -0x138(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc42a
callq 0x7350
jmp 0xc42a
jmp 0xc427
movq %rax, %r13
leaq -0x118(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc456
callq 0x7350
jmp 0xc456
jmp 0xc453
movq %rax, %r13
movq -0x248(%rbp), %rdi
jmp 0xc473
jmp 0xc484
jmp 0xc4c1
movq %rax, %r13
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
je 0xc4a6
callq 0x7350
jmp 0xc4a6
movq %rax, %r13
movq -0x1e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0xc47d
callq 0x7350
testb %r15b, %r15b
jne 0xc487
jmp 0xc4c4
movq %rax, %r13
movq %r14, %rdi
callq 0x72e0
jmp 0xc4c4
jmp 0xc4a3
movq %rax, %r13
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
jmp 0xc4cc
movq %rax, %r13
leaq -0x178(%rbp), %rax
movq -0x10(%rax), %rdi
jmp 0xc4cc
movq %rax, %r13
movq -0x48(%rbp), %rdi
cmpq %rbx, %rdi
jne 0xc4d1
jmp 0xc4d6
movq %rax, %r13
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xc4d6
callq 0x7350
movq %r13, %rdi
callq 0x77b0
movq %rax, %r13
movq -0x1c8(%rbp), %rdi
jmp 0xc4f4
movq %rax, %r13
movq -0x1a8(%rbp), %rdi
cmpq %r15, %rdi
jne 0xc4d1
jmp 0xc4d6
nop