// File: /workspace/github_cpp_makefile_star2_O3/nataly-enne[P]pet-fera/pet_fera_cadastrar.cpp
// Function: cadastrar(std::map<int, ANFIBIO_NATIVO, std::less<int>, std::allocator<std::pair<int const, ANFIBIO_NATIVO>>>&, std::map<int, ANFIBIO_EXOTICO, std::less<int>, std::allocator<std::pair<int const, ANFIBIO_EXOTICO>>>&, std::map<int, VETERINARIO, std::less<int>, std::allocator<std::pair<int const, VETERINARIO>>>, std::map<int, TRATADOR, std::less<int>, std::allocator<std::pair<int const, TRATADOR>>>)
void cadastrar(map <int, ANFIBIO_NATIVO> &anfibios_nat, map <int, ANFIBIO_EXOTICO> &anfibios_ex, map <int, VETERINARIO> vets, map <int, TRATADOR> tratadores){
	int id, total_mudas;
	string classe, nome_cientifico, dieta, veterinario, tratador, nome_batismo, autorizacao, autorizacao_IBAMA, origem, ultima_muda, nome, id_string, tamanho_string, sexo_string, total_mudas_string;
	bool check;
	char sexo, tipo_animal, continuar, sucesso, tipo = 'a';
	double tamanho;
	unsigned int old_size;
	ofstream nativos;
	ofstream exoticos;

	do{
		cout << "Deseja cadastrar um ANFIBIO NATIVO ou ANNFIBIO EXÓTICO? \n n - NATIVO\n e - EXÓTICO" << endl;
		cin >> tipo_animal;
		if(tipo_animal != 'n' && tipo_animal != 'e'){
			cout << "Tipo invalido, tente novamente!" << endl;
			continuar = 's';
			continue;
		}
		else{
			// Recebe o ID e verifica se é valido.
			do{
				cout << "Digite o id:" << endl;
				cin >> id_string;
				if(!verifica_ID(anfibios_nat, anfibios_ex, tipo_animal, id_string, sucesso)){
					cout << "O ID deve conter apenas inteiros ou ID já cadastrado!" << endl << endl;
				}
				else{
					stringstream ss(id_string); // Converte string para int.
					ss >> id;
				}

			}while(sucesso == 'n');
			
			// Classe dos anfibios.
			classe = "Amphibia";

			// Recebe o nome e verifica se é valido.
			do{
				cout << "Digite o nome:" << endl;
				cin.ignore();
				getline(cin, nome);
				if(!verifica_nome(nome, sucesso)){
					cout << "ERRO: só pode ser inserido letra ou espaço!" << endl << endl;
				}
				else{
					transform(nome.begin(), nome.end(), nome.begin(), ::tolower); // Converte a string nome para caracteres maiúsculos.
				}
			}while(sucesso == 'n');

	
			// Recebe o nome cientifico e verifica se é valido.
			do{
				cout << "Digite o nome científico:" << endl;
				getline(cin, nome_cientifico);
				if(!verifica_nome_cient(nome_cientifico, sucesso)){
					cout << "ERRO: só pode ser inserido letra, espaço ou traço!" << endl << endl;
				}
			}while(sucesso == 'n');

			// Recebe a dieta e verifica se não possui caracteres proibidos.
			do{
				cout << "Digite a dieta: " << endl;
				getline(cin, dieta);
				if(!verifica_dieta(dieta, sucesso)){
					cout << "ERRO: só pode ser inserido letra ou espaço!" << endl << endl;
				}
			}while(sucesso == 'n');
			
			// Recebe o nome do veterinario e verifica se não possui caracteres proibidos.
			do{
				cout << "Digite o nome do veterinario: " << endl;
				getline(cin, veterinario);
				
				if(!verifica_nome(veterinario, sucesso)){
					cout << "ERRO: só pode ser inserido letra ou espaço!" << endl << endl;
				}
				check = check_vet(vets, veterinario);
				if(!check){
					cout << endl;
					cout << "ERRO: Veterinario não cadastrado!" << endl;
					sucesso = 'n';
				}
			}while(sucesso == 'n');
			
			// Recebe o nome do tratador e verifica se não possui caracteres proibido, se já foi cadastrado ou se possui nivel de segurança adequado.
			do{
				cout << "Digite o nome do tratador: " << endl;
				getline(cin, tratador);
				if(!verifica_nome(tratador, sucesso)){
					cout << "ERRO: só pode ser inserido letra ou espaço!" << endl << endl;
				}
				check = check_tratador(0, tratadores, tratador, tipo);
				if(!check){
					cout << endl;
					cout << "ERRO: Tratador não cadastrado ou não se adequa!" << endl << endl;
					sucesso = 'n';
				}
			}while(sucesso == 'n');

			
			// Recebe o nome e verifica se é valido.
			do{
				cout << "Digite o nome de batismo: " << endl;
				getline(cin, nome_batismo);
				if(!verifica_nome(nome_batismo, sucesso)){
					cout << "ERRO: só pode ser inserido letra ou espaço!" << endl << endl;
				}
				transform(nome_batismo.begin(), nome_batismo.end(), nome_batismo.begin(), ::tolower); // Converte a string nome para caracteres minusculos.
			}while(sucesso == 'n');

			// Recebe o sexo do animal e verifica se é F ou M.
			do{
				cout << "Digite o sexo do animal: " << endl;
				getline(cin, sexo_string);
				transform(sexo_string.begin(), sexo_string.end(), sexo_string.begin(), ::toupper); // Converte a string nome para caracteres maiúsculos.
				if(sexo_string != "F" && sexo_string != "M" ){
					sucesso = 'n';
					cout << "ERRO: só são permitidos F ou M!" << endl << endl;
				}
				else{
					sexo = (char)sexo_string[0];
					sucesso = 's';
				}

			}while(sucesso == 'n');
			
			// Recebe o tamanho do animal e verifica se não há caracteres proibidos.
			do{
				cout << "Digite o tamanho do animal: " << endl;
				getline(cin, tamanho_string);
				if(!verifica_tamanho(tamanho_string, sucesso)){
					cout << "ERRO: o tamanho do animal tem que ter apenas um '.' " << endl << endl;
				}
				tamanho = stod(tamanho_string);
			}while(sucesso == 'n');
			
			// Recebe o total de mudas e verifica se é um inteiro positivo.
			do{
				cout << "Insira o total de mudas:" << endl;
				getline(cin, total_mudas_string);
				if(!verifica_inteiro(total_mudas_string, sucesso)){
					cout << "ERRO: O total de mudas deve conter apenas inteiros positivos!" << endl << endl;
				}
				else{
					stringstream ss(total_mudas_string);
					ss >> total_mudas;
				}
			}while(sucesso == 'n');
			
			// Recebe a ultima muda e verifica se está no formato correto.
			do{
				cout << "Insira a data da última muda(dd-mm-aaaa)" << endl;
				getline(cin, ultima_muda);
				if(!verifica_data(ultima_muda, sucesso)){
					cout << "ERRO: A ultima muda deve ser nesse formato ex.: 12-03-2019" << endl << endl;
				}
			}while(sucesso == 'n');

			// Verifica se a autorizacao está no formato correto.
			do{
				cout << "Insira a autorizacao do IBAMA: " << endl;
				getline(cin, autorizacao_IBAMA);
				if(!verifica_autorizacao(autorizacao_IBAMA, sucesso)){
					cout << "ERRO: A autorizacao deve conter letras, numeros e '-'" << endl << endl;
				}
			}while(sucesso == 'n');
			
			
			if(tipo_animal == 'n'){
				old_size = anfibios_nat.size();
				// Verifica se foi passado uma string.
				do{
					cout << "Digite a UF de origem: " << endl;
					getline(cin, origem);
					if(!verifica_origem(origem, sucesso)){
						cout << "ERRO: Deve-se colocar apenas letras!" << endl << endl;
					}
				}while(sucesso == 'n');
				
				// Verifica se a autorizacao está no formato correto.
				do{
					cout << "Insira a autorizacao do animal: " << endl;
					getline(cin, autorizacao);
					if(!verifica_autorizacao(autorizacao, sucesso)){
						cout << "ERRO: A autorizacao deve conter letras, numeros e '-'" << endl << endl;
					}
				}while(sucesso == 'n');
				

				// Armazenando valores no map para tipo anfíbio nativo passados pelo usuário.
				anfibios_nat.insert(pair <int, ANFIBIO_NATIVO> (id, ANFIBIO_NATIVO(id, classe, nome, nome_cientifico, sexo, tamanho, dieta, veterinario, tratador, nome_batismo, total_mudas, ultima_muda, autorizacao_IBAMA, origem, autorizacao)));

				if (anfibios_nat.size() == old_size){
					cout << "Falha no cadastro do animal! Tente novamente!" << endl << endl;
					continuar = 's';
					continue;
				}
		
			}
			else{
				old_size = anfibios_ex.size();
				// Verifica se foi passado uma string.
				do{
					cout << "Digite o País de origem: " << endl;
					getline(cin, origem);
					if(!verifica_origem(origem, sucesso)){
						cout << "ERRO: Deve-se colocar apenas letras!" << endl << endl;
					}
				}while(sucesso == 'n');

				// Verifica se a autorizacao está no formato correto.
				do{
					cout << "Insira a autorizacao do animal: " << endl;
					getline(cin, autorizacao);
					if(!verifica_autorizacao(autorizacao, sucesso)){
						cout << "ERRO: A autorizacao deve conter letras, numeros e '-'" << endl;
					}
				}while(sucesso == 'n');

				// Armazenando valores no map para tipo anfíbio exótico passados pelo usuário.
				anfibios_ex.insert(pair <int, ANFIBIO_EXOTICO> (id, ANFIBIO_EXOTICO(id, classe, nome, nome_cientifico,sexo, tamanho, dieta,veterinario, tratador, nome_batismo, total_mudas, ultima_muda, autorizacao_IBAMA, origem, autorizacao)));
							
				if (anfibios_ex.size() == old_size){
					cout << "Falha no cadastro do animal! Tente novamente!" << endl;
					continuar = 's';
					continue;
				}		
			}
		}
		cout << "\nAnimal cadastrado com sucesso!" << endl << endl;
		cout << "Deseja cadastrar um novo animal? s/n" << endl;
		cin >> continuar;
	}while(continuar == 's');
					
	if(!anfibios_nat.empty()){
		nativos.open("anfibios_nat.txt");
		for(auto it = anfibios_nat.begin(); it != anfibios_nat.end(); it++){
			nativos << (*it).second;
		}
		nativos.close();
	}
	if(!anfibios_ex.empty()){
		exoticos.open("anfibios_ex.txt");
		for(auto it = anfibios_ex.begin(); it != anfibios_ex.end(); it++){
			exoticos << (*it).second;
		}
		exoticos.close();
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xce8, %rsp            # imm = 0xCE8
movq %rcx, -0x258(%rbp)
movq %rdx, -0x260(%rbp)
movq %rsi, -0x40(%rbp)
movq %rdi, -0x38(%rbp)
leaq -0x1c0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x1a0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x180(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x118(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xf8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xd8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xb8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x160(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x98(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x140(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x78(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x240(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x220(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x1e0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x200(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xb78(%rbp), %rdi
callq 0x3360
leaq -0x978(%rbp), %rdi
callq 0x3360
leaq -0x778(%rbp), %r13
leaq 0x80(%r13), %rax
movq %rax, -0x50(%rbp)
movq 0x34824(%rip), %rbx     # 0x47fd0
movq 0x3482d(%rip), %r12     # 0x47fe0
leaq -0x29(%rbp), %r15
movl $0x53, %edx
movq %rbx, %rdi
leaq 0x27313(%rip), %rsi     # 0x3aad9
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r12, %rdi
leaq -0x2b(%rbp), %rsi
callq 0x3280
movzbl -0x2b(%rbp), %eax
cmpl $0x6e, %eax
je 0x13850
cmpl $0x65, %eax
je 0x13850
movl $0x1f, %edx
movq %rbx, %rdi
leaq 0x27312(%rip), %rsi     # 0x3ab2d
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movb $0x73, -0x2a(%rbp)
jmp 0x137b7
movl $0xc, %edx
movq %rbx, %rdi
leaq 0x26ee0(%rip), %rsi     # 0x3a73f
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r12, %rdi
leaq -0x250(%rbp), %rsi
callq 0x3270
movb -0x2b(%rbp), %r14b
leaq -0x590(%rbp), %rax
movq %rax, -0x5a0(%rbp)
movq -0x250(%rbp), %rsi
movq -0x248(%rbp), %rdx
addq %rsi, %rdx
leaq -0x5a0(%rbp), %rdi
callq 0x4574
movsbl %r14b, %edx
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
leaq -0x5a0(%rbp), %rcx
movq %r15, %r8
callq 0x374be
movl %eax, %r14d
movq -0x5a0(%rbp), %rdi
leaq -0x590(%rbp), %rax
cmpq %rax, %rdi
je 0x138ff
callq 0x31d0
testb %r14b, %r14b
je 0x1393e
movq %r13, %rdi
leaq -0x250(%rbp), %rsi
movl $0x18, %edx
callq 0x3310
movq %r13, %rdi
leaq -0x30(%rbp), %rsi
callq 0x3120
movq %r13, %rdi
movq 0x34682(%rip), %rsi     # 0x47fb0
callq 0x3160
movq -0x50(%rbp), %rdi
callq 0x30d0
jmp 0x139a3
movl $0x36, %edx
movq %rbx, %rdi
leaq 0x26dff(%rip), %rsi     # 0x3a74c
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x13850
movq -0x1c8(%rbp), %rdx
movl $0x8, %r8d
leaq -0x1d0(%rbp), %rdi
xorl %esi, %esi
leaq 0x27183(%rip), %rcx     # 0x3ab4d
callq 0x3300
movl $0xe, %edx
movq %rbx, %rdi
leaq 0x26da5(%rip), %rsi     # 0x3a783
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r12, %rdi
callq 0x33a0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x88(%rbp), %rsi
callq 0x33c0
leaq -0x88(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3821c
testb %al, %al
je 0x13a7c
movq -0x80(%rbp), %r14
testq %r14, %r14
je 0x13ae1
movq -0x88(%rbp), %r15
xorl %r13d, %r13d
movsbl (%r15,%r13), %edi
callq 0x32c0
movb %al, (%r15,%r13)
incq %r13
cmpq %r13, %r14
jne 0x13a64
jmp 0x13ae1
movl $0x2d, %edx
movq %rbx, %rdi
leaq 0x26d07(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x139cf
leaq -0x29(%rbp), %r15
movl $0x1a, %edx
movq %rbx, %rdi
leaq 0x27058(%rip), %rsi     # 0x3ab56
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x33c0
leaq -0x1b0(%rbp), %rdi
movq %r15, %rsi
callq 0x38318
testb %al, %al
jne 0x13bc9
movl $0x35, %edx
movq %rbx, %rdi
leaq 0x26ffe(%rip), %rsi     # 0x3ab71
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x13aef
leaq 0x26bb8(%rip), %r13     # 0x3a792
movl $0x10, %edx
movq %rbx, %rdi
leaq 0x26fbe(%rip), %rsi     # 0x3aba7
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x190(%rbp), %rsi
callq 0x33c0
leaq -0x190(%rbp), %rdi
movq %r15, %rsi
callq 0x38bdf
testb %al, %al
jne 0x13cb0
movl $0x2d, %edx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x13bda
jmp 0x13d22
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movl $0x22, %edx
movq %rbx, %rdi
leaq 0x26ee5(%rip), %rsi     # 0x3abd7
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movb $0x6e, -0x29(%rbp)
movl $0x1e, %edx
movq %rbx, %rdi
leaq 0x26e87(%rip), %rsi     # 0x3abb8
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x128(%rbp), %rsi
callq 0x33c0
leaq -0x128(%rbp), %rdi
movq %r15, %rsi
callq 0x3821c
testb %al, %al
jne 0x13df8
movl $0x2d, %edx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq -0x570(%rbp), %rax
movq %rax, -0x580(%rbp)
movq -0x128(%rbp), %rsi
movq -0x120(%rbp), %rdx
addq %rsi, %rdx
leaq -0x580(%rbp), %rdi
callq 0x4574
movq -0x260(%rbp), %rdi
leaq -0x580(%rbp), %rsi
callq 0x36d35
movl %eax, %r14d
movq -0x580(%rbp), %rdi
leaq -0x570(%rbp), %rax
cmpq %rax, %rdi
je 0x13e51
callq 0x31d0
testb %r14b, %r14b
je 0x13cbc
cmpb $0x6e, -0x29(%rbp)
je 0x13d22
movl $0x1b, %edx
movq %rbx, %rdi
leaq 0x26d87(%rip), %rsi     # 0x3abfa
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x108(%rbp), %rsi
callq 0x33c0
leaq -0x108(%rbp), %rdi
movq %r15, %rsi
callq 0x3821c
testb %al, %al
jne 0x13f3a
movl $0x2d, %edx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq -0x550(%rbp), %rax
movq %rax, -0x560(%rbp)
movq -0x108(%rbp), %rsi
movq -0x100(%rbp), %rdx
addq %rsi, %rdx
leaq -0x560(%rbp), %rdi
callq 0x4574
xorl %edi, %edi
movq -0x258(%rbp), %rsi
leaq -0x560(%rbp), %rdx
movl $0x61, %ecx
callq 0x36dd5
movl %eax, %r14d
movq -0x560(%rbp), %rdi
leaq -0x550(%rbp), %rax
cmpq %rax, %rdi
je 0x13f9a
callq 0x31d0
testb %r14b, %r14b
je 0x13fae
cmpb $0x6e, -0x29(%rbp)
je 0x13e64
jmp 0x14043
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movl $0x31, %edx
movq %rbx, %rdi
leaq 0x26c32(%rip), %rsi     # 0x3ac16
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movb $0x6e, -0x29(%rbp)
jmp 0x13e64
movl $0x1a, %edx
movq %rbx, %rdi
leaq 0x26bf6(%rip), %rsi     # 0x3ac48
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0xe8(%rbp), %rsi
callq 0x33c0
leaq -0xe8(%rbp), %rdi
movq %r15, %rsi
callq 0x3821c
testb %al, %al
jne 0x14119
movl $0x2d, %edx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0xe0(%rbp), %r14
testq %r14, %r14
je 0x14145
movq -0xe8(%rbp), %r15
xorl %r13d, %r13d
movsbl (%r15,%r13), %edi
callq 0x32c0
movb %al, (%r15,%r13)
incq %r13
cmpq %r13, %r14
jne 0x1412f
cmpb $0x6e, -0x29(%rbp)
leaq -0x29(%rbp), %r15
leaq 0x2663e(%rip), %r13     # 0x3a792
je 0x14043
movl $0x19, %edx
movq %rbx, %rdi
leaq 0x26afa(%rip), %rsi     # 0x3ac63
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x33c0
movq -0x1e8(%rbp), %r14
testq %r14, %r14
je 0x141e8
movq -0x1f0(%rbp), %r15
xorl %r13d, %r13d
movsbl (%r15,%r13), %edi
callq 0x33d0
movb %al, (%r15,%r13)
incq %r13
cmpq %r13, %r14
jne 0x141d2
leaq -0x1f0(%rbp), %r14
movq %r14, %rdi
leaq 0x26a84(%rip), %rsi     # 0x3ac7d
callq 0x30c0
testl %eax, %eax
je 0x1429d
movq %r14, %rdi
leaq 0x26a6f(%rip), %rsi     # 0x3ac7f
callq 0x30c0
testl %eax, %eax
je 0x1429d
movb $0x6e, -0x29(%rbp)
movl $0x21, %edx
movq %rbx, %rdi
leaq 0x26a51(%rip), %rsi     # 0x3ac81
callq 0x3250
leaq -0x778(%rbp), %r13
leaq -0x29(%rbp), %r15
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x1415a
jmp 0x142b8
movq -0x1f0(%rbp), %rax
movb (%rax), %al
movb %al, -0x2c(%rbp)
movb $0x73, -0x29(%rbp)
leaq -0x778(%rbp), %r13
leaq -0x29(%rbp), %r15
movl $0x1c, %edx
movq %rbx, %rdi
leaq 0x269dc(%rip), %rsi     # 0x3aca3
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x230(%rbp), %rsi
callq 0x33c0
leaq -0x530(%rbp), %rax
movq %rax, -0x540(%rbp)
movq -0x230(%rbp), %rsi
movq -0x228(%rbp), %rdx
addq %rsi, %rdx
leaq -0x540(%rbp), %rdi
callq 0x4574
leaq -0x540(%rbp), %rdi
movq %r15, %rsi
callq 0x38d29
movl %eax, %r14d
movq -0x540(%rbp), %rdi
leaq -0x530(%rbp), %rax
cmpq %rax, %rdi
je 0x1436f
callq 0x31d0
testb %r14b, %r14b
jne 0x143d9
movl $0x34, %edx
movq %rbx, %rdi
leaq 0x2693d(%rip), %rsi     # 0x3acc0
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x230(%rbp), %r15
callq 0x3040
movq %rax, %r14
movq %r13, %rsi
movl (%rax), %r13d
movl $0x0, (%rax)
movq %r15, %rdi
callq 0x3170
movsd %xmm0, -0x130(%rbp)
cmpq %r15, -0x778(%rbp)
je 0x156af
movl (%r14), %eax
testl %eax, %eax
je 0x14426
cmpl $0x22, %eax
leaq -0x29(%rbp), %r15
jne 0x1442d
jmp 0x156bb
movl %r13d, (%r14)
leaq -0x29(%rbp), %r15
cmpb $0x6e, -0x29(%rbp)
leaq -0x778(%rbp), %r13
je 0x142b8
movl $0x18, %edx
movq %rbx, %rdi
leaq 0x268a8(%rip), %rsi     # 0x3acf5
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x210(%rbp), %rsi
callq 0x33c0
leaq -0x510(%rbp), %rax
movq %rax, -0x520(%rbp)
movq -0x210(%rbp), %rsi
movq -0x208(%rbp), %rdx
addq %rsi, %rdx
leaq -0x520(%rbp), %rdi
callq 0x4574
leaq -0x520(%rbp), %rdi
movq %r15, %rsi
callq 0x385c0
movl %eax, %r14d
movq -0x520(%rbp), %rdi
leaq -0x510(%rbp), %rax
cmpq %rax, %rdi
je 0x144f5
callq 0x31d0
testb %r14b, %r14b
je 0x14534
movq %r13, %rdi
leaq -0x210(%rbp), %rsi
movl $0x18, %edx
callq 0x3310
movq %r13, %rdi
leaq -0x44(%rbp), %rsi
callq 0x3120
movq %r13, %rdi
movq 0x33a8c(%rip), %rsi     # 0x47fb0
callq 0x3160
movq -0x50(%rbp), %rdi
callq 0x30d0
jmp 0x14599
movl $0x3d, %edx
movq %rbx, %rdi
leaq 0x267cb(%rip), %rsi     # 0x3ad0e
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x1443e
movl $0x29, %edx
movq %rbx, %rdi
leaq 0x2679a(%rip), %rsi     # 0x3ad4c
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x150(%rbp), %rsi
callq 0x33c0
leaq -0x4f0(%rbp), %rax
movq %rax, -0x500(%rbp)
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
addq %rsi, %rdx
leaq -0x500(%rbp), %rdi
callq 0x4574
leaq -0x500(%rbp), %rdi
movq %r15, %rsi
callq 0x38e00
movl %eax, %r14d
movq -0x500(%rbp), %rdi
leaq -0x4f0(%rbp), %rax
cmpq %rax, %rdi
je 0x1465a
callq 0x31d0
testb %r14b, %r14b
jne 0x146c4
movl $0x3a, %edx
movq %rbx, %rdi
leaq 0x26708(%rip), %rsi     # 0x3ad76
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x145a3
movl $0x1f, %edx
movq %rbx, %rdi
leaq 0x266d4(%rip), %rsi     # 0x3adb1
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x170(%rbp), %rsi
callq 0x33c0
leaq -0x170(%rbp), %rdi
movq %r15, %rsi
callq 0x38ed7
testb %al, %al
jne 0x147a8
movl $0x35, %edx
movq %rbx, %rdi
leaq 0x2667f(%rip), %rsi     # 0x3add1
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x146ce
cmpb $0x6e, -0x2b(%rbp)
jne 0x14dae
movq -0x38(%rbp), %rax
movl 0x28(%rax), %eax
movq %rax, -0x68(%rbp)
movl $0x17, %edx
movq %rbx, %rdi
leaq 0x26631(%rip), %rsi     # 0x3ae07
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0xa8(%rbp), %rsi
callq 0x33c0
leaq -0xa8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x39038
testb %al, %al
jne 0x148a2
movl $0x24, %edx
movq %rbx, %rdi
leaq 0x265d3(%rip), %rsi     # 0x3ae1f
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x147c7
movl $0x20, %edx
movq %rbx, %rdi
leaq 0x26589(%rip), %rsi     # 0x3ae44
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0xc8(%rbp), %rsi
callq 0x33c0
leaq -0xc8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38ed7
testb %al, %al
jne 0x14987
movl $0x35, %edx
movq %rbx, %rdi
leaq 0x264a0(%rip), %rsi     # 0x3add1
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x148ac
movl -0x30(%rbp), %r14d
leaq -0x4d0(%rbp), %rax
movq %rax, -0x4e0(%rbp)
movq -0x1d0(%rbp), %rsi
movq -0x1c8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4e0(%rbp), %rdi
callq 0x4574
leaq -0x4b0(%rbp), %rax
movq %rax, -0x4c0(%rbp)
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4c0(%rbp), %rdi
callq 0x4574
leaq -0x490(%rbp), %rax
movq %rax, -0x4a0(%rbp)
movq -0x1b0(%rbp), %rsi
movq -0x1a8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4a0(%rbp), %rdi
callq 0x4574
leaq -0x470(%rbp), %rax
movq %rax, -0x480(%rbp)
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
addq %rsi, %rdx
leaq -0x480(%rbp), %rdi
callq 0x4574
leaq -0x450(%rbp), %rax
movq %rax, -0x460(%rbp)
movq -0x128(%rbp), %rsi
movq -0x120(%rbp), %rdx
addq %rsi, %rdx
leaq -0x460(%rbp), %rdi
callq 0x4574
leaq -0x430(%rbp), %rax
movq %rax, -0x440(%rbp)
movq -0x108(%rbp), %rsi
movq -0x100(%rbp), %rdx
addq %rsi, %rdx
leaq -0x440(%rbp), %rdi
callq 0x4574
leaq -0x410(%rbp), %rax
movq %rax, -0x420(%rbp)
movq -0xe8(%rbp), %rsi
movq -0xe0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x420(%rbp), %rdi
callq 0x4574
movl -0x44(%rbp), %r15d
leaq -0x3f0(%rbp), %rax
movq %rax, -0x400(%rbp)
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
addq %rsi, %rdx
leaq -0x400(%rbp), %rdi
callq 0x4574
leaq -0x3d0(%rbp), %rax
movq %rax, -0x3e0(%rbp)
movq -0x170(%rbp), %rsi
movq -0x168(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3e0(%rbp), %rdi
callq 0x4574
movq %r15, -0x60(%rbp)
leaq -0x3b0(%rbp), %rax
movq %rax, -0x3c0(%rbp)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3c0(%rbp), %rdi
callq 0x4574
movl %r14d, -0x58(%rbp)
leaq -0x5d0(%rbp), %rax
movq %rax, -0x5e0(%rbp)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x5e0(%rbp), %r15
movq %r15, %rdi
callq 0x4574
subq $0x8, %rsp
movsbl -0x2c(%rbp), %r9d
leaq -0xd08(%rbp), %r14
movq %r14, %rdi
movl -0x58(%rbp), %esi
leaq -0x4e0(%rbp), %rdx
leaq -0x4c0(%rbp), %rcx
leaq -0x4a0(%rbp), %r8
movsd -0x130(%rbp), %xmm0
pushq %r15
leaq -0x3c0(%rbp), %rax
pushq %rax
leaq -0x3e0(%rbp), %rax
pushq %rax
leaq -0x400(%rbp), %rax
pushq %rax
pushq -0x60(%rbp)
leaq -0x420(%rbp), %rax
pushq %rax
leaq -0x440(%rbp), %rax
pushq %rax
leaq -0x460(%rbp), %rax
pushq %rax
leaq -0x480(%rbp), %rax
pushq %rax
callq 0x57e8
addq $0x50, %rsp
movq %r13, %rdi
leaq -0x30(%rbp), %rsi
movq %r14, %rdx
callq 0x1cdd8
movq -0x38(%rbp), %rdi
movq %r13, %rsi
callq 0x1da62
leaq -0x770(%rbp), %rdi
callq 0x5cb2
leaq -0xd08(%rbp), %rdi
callq 0x5cb2
movq -0x5e0(%rbp), %rdi
leaq -0x5d0(%rbp), %rax
cmpq %rax, %rdi
je 0x14c3e
callq 0x31d0
movq -0x3c0(%rbp), %rdi
leaq -0x3b0(%rbp), %rax
cmpq %rax, %rdi
je 0x14c56
callq 0x31d0
movq -0x3e0(%rbp), %rdi
leaq -0x3d0(%rbp), %rax
cmpq %rax, %rdi
je 0x14c6e
callq 0x31d0
movq -0x400(%rbp), %rdi
leaq -0x3f0(%rbp), %rax
cmpq %rax, %rdi
je 0x14c86
callq 0x31d0
movq -0x420(%rbp), %rdi
leaq -0x410(%rbp), %rax
cmpq %rax, %rdi
je 0x14c9e
callq 0x31d0
movq -0x440(%rbp), %rdi
leaq -0x430(%rbp), %rax
cmpq %rax, %rdi
je 0x14cb6
callq 0x31d0
movq -0x460(%rbp), %rdi
leaq -0x450(%rbp), %rax
cmpq %rax, %rdi
je 0x14cce
callq 0x31d0
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
je 0x14ce6
callq 0x31d0
movq -0x4a0(%rbp), %rdi
leaq -0x490(%rbp), %rax
cmpq %rax, %rdi
je 0x14cfe
callq 0x31d0
movq -0x4c0(%rbp), %rdi
leaq -0x4b0(%rbp), %rax
cmpq %rax, %rdi
je 0x14d16
callq 0x31d0
movq -0x4e0(%rbp), %rdi
leaq -0x4d0(%rbp), %rax
cmpq %rax, %rdi
je 0x14d2e
callq 0x31d0
movq -0x38(%rbp), %rax
movq -0x68(%rbp), %rcx
cmpq %rcx, 0x28(%rax)
jne 0x15348
movl $0x2d, %edx
movq %rbx, %rdi
leaq 0x26116(%rip), %rsi     # 0x3ae65
callq 0x3250
leaq -0x29(%rbp), %r15
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
jmp 0x13847
movq -0x40(%rbp), %rax
movl 0x28(%rax), %eax
movq %rax, -0x68(%rbp)
movl $0x1a, %edx
movq %rbx, %rdi
leaq 0x260cb(%rip), %rsi     # 0x3ae93
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0xa8(%rbp), %rsi
callq 0x33c0
leaq -0xa8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x39038
testb %al, %al
jne 0x14e94
movl $0x24, %edx
movq %rbx, %rdi
leaq 0x25fe1(%rip), %rsi     # 0x3ae1f
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x14db9
movl $0x20, %edx
movq %rbx, %rdi
leaq 0x25f97(%rip), %rsi     # 0x3ae44
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0xc8(%rbp), %rsi
callq 0x33c0
leaq -0xc8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38ed7
testb %al, %al
jne 0x14f4f
movl $0x35, %edx
movq %rbx, %rdi
leaq 0x25eae(%rip), %rsi     # 0x3add1
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x14e9e
movl -0x30(%rbp), %r14d
leaq -0x390(%rbp), %rax
movq %rax, -0x3a0(%rbp)
movq -0x1d0(%rbp), %rsi
movq -0x1c8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3a0(%rbp), %rdi
callq 0x4574
leaq -0x370(%rbp), %rax
movq %rax, -0x380(%rbp)
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
addq %rsi, %rdx
leaq -0x380(%rbp), %rdi
callq 0x4574
leaq -0x350(%rbp), %rax
movq %rax, -0x360(%rbp)
movq -0x1b0(%rbp), %rsi
movq -0x1a8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x360(%rbp), %rdi
callq 0x4574
leaq -0x330(%rbp), %rax
movq %rax, -0x340(%rbp)
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
addq %rsi, %rdx
leaq -0x340(%rbp), %rdi
callq 0x4574
leaq -0x310(%rbp), %rax
movq %rax, -0x320(%rbp)
movq -0x128(%rbp), %rsi
movq -0x120(%rbp), %rdx
addq %rsi, %rdx
leaq -0x320(%rbp), %rdi
callq 0x4574
leaq -0x2f0(%rbp), %rax
movq %rax, -0x300(%rbp)
movq -0x108(%rbp), %rsi
movq -0x100(%rbp), %rdx
addq %rsi, %rdx
leaq -0x300(%rbp), %rdi
callq 0x4574
leaq -0x2d0(%rbp), %rax
movq %rax, -0x2e0(%rbp)
movq -0xe8(%rbp), %rsi
movq -0xe0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2e0(%rbp), %rdi
callq 0x4574
movl -0x44(%rbp), %r15d
leaq -0x2b0(%rbp), %rax
movq %rax, -0x2c0(%rbp)
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2c0(%rbp), %rdi
callq 0x4574
leaq -0x290(%rbp), %rax
movq %rax, -0x2a0(%rbp)
movq -0x170(%rbp), %rsi
movq -0x168(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2a0(%rbp), %rdi
callq 0x4574
leaq -0x270(%rbp), %rax
movq %rax, -0x280(%rbp)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x280(%rbp), %rdi
callq 0x4574
movq %r15, -0x58(%rbp)
movl %r14d, -0x60(%rbp)
leaq -0x5b0(%rbp), %rax
movq %rax, -0x5c0(%rbp)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x5c0(%rbp), %r14
movq %r14, %rdi
callq 0x4574
subq $0x8, %rsp
movsbl -0x2c(%rbp), %r9d
leaq -0xd08(%rbp), %r15
movq %r15, %rdi
movl -0x60(%rbp), %esi
leaq -0x3a0(%rbp), %rdx
leaq -0x380(%rbp), %rcx
leaq -0x360(%rbp), %r8
movsd -0x130(%rbp), %xmm0
pushq %r14
leaq -0x280(%rbp), %rax
pushq %rax
leaq -0x2a0(%rbp), %rax
pushq %rax
leaq -0x2c0(%rbp), %rax
pushq %rax
pushq -0x58(%rbp)
leaq -0x2e0(%rbp), %rax
pushq %rax
leaq -0x300(%rbp), %rax
pushq %rax
leaq -0x320(%rbp), %rax
pushq %rax
leaq -0x340(%rbp), %rax
pushq %rax
callq 0x5d08
addq $0x50, %rsp
movq %r13, %rdi
leaq -0x30(%rbp), %rsi
movq %r15, %rdx
callq 0x1ce6c
movq -0x40(%rbp), %rdi
movq %r13, %rsi
callq 0x1dc9e
leaq -0x770(%rbp), %rdi
callq 0x6602
leaq -0xd08(%rbp), %rdi
callq 0x6602
movq -0x5c0(%rbp), %rdi
leaq -0x5b0(%rbp), %rax
cmpq %rax, %rdi
je 0x15206
callq 0x31d0
movq -0x280(%rbp), %rdi
leaq -0x270(%rbp), %rax
cmpq %rax, %rdi
je 0x1521e
callq 0x31d0
movq -0x2a0(%rbp), %rdi
leaq -0x290(%rbp), %rax
cmpq %rax, %rdi
je 0x15236
callq 0x31d0
movq -0x2c0(%rbp), %rdi
leaq -0x2b0(%rbp), %rax
cmpq %rax, %rdi
je 0x1524e
callq 0x31d0
movq -0x2e0(%rbp), %rdi
leaq -0x2d0(%rbp), %rax
cmpq %rax, %rdi
je 0x15266
callq 0x31d0
movq -0x300(%rbp), %rdi
leaq -0x2f0(%rbp), %rax
cmpq %rax, %rdi
je 0x1527e
callq 0x31d0
movq -0x320(%rbp), %rdi
leaq -0x310(%rbp), %rax
cmpq %rax, %rdi
je 0x15296
callq 0x31d0
movq -0x340(%rbp), %rdi
leaq -0x330(%rbp), %rax
cmpq %rax, %rdi
je 0x152ae
callq 0x31d0
movq -0x360(%rbp), %rdi
leaq -0x350(%rbp), %rax
cmpq %rax, %rdi
je 0x152c6
callq 0x31d0
movq -0x380(%rbp), %rdi
leaq -0x370(%rbp), %rax
cmpq %rax, %rdi
je 0x152de
callq 0x31d0
movq -0x3a0(%rbp), %rdi
leaq -0x390(%rbp), %rax
cmpq %rax, %rdi
je 0x152f6
callq 0x31d0
movq -0x40(%rbp), %rax
movq -0x68(%rbp), %rcx
cmpq %rcx, 0x28(%rax)
jne 0x15348
movl $0x2d, %edx
movq %rbx, %rdi
leaq 0x25b52(%rip), %rsi     # 0x3ae65
callq 0x3250
leaq -0x29(%rbp), %r15
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
jmp 0x13847
movl $0x1f, %edx
movq %rbx, %rdi
leaq 0x25b57(%rip), %rsi     # 0x3aeae
callq 0x3250
leaq -0x29(%rbp), %r15
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movl $0x24, %edx
movq %rbx, %rdi
leaq 0x25b0e(%rip), %rsi     # 0x3aece
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r12, %rdi
leaq -0x2a(%rbp), %rsi
callq 0x3280
cmpb $0x73, -0x2a(%rbp)
je 0x137b7
movq -0x38(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x15468
leaq 0x25adf(%rip), %rsi     # 0x3aef3
leaq -0xb78(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0x1545c
movq %rax, %r15
leaq -0xb78(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x91cb
movq %rbx, %rdi
callq 0x3140
movq %rax, %rbx
cmpq %r15, %rax
jne 0x15440
leaq -0xb78(%rbp), %rdi
callq 0x32a0
movq -0x40(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x154ce
leaq 0x25a8a(%rip), %rsi     # 0x3af04
leaq -0x978(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0x154c2
movq %rax, %r15
leaq -0x978(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x9847
movq %rbx, %rdi
callq 0x3140
movq %rax, %rbx
cmpq %r15, %rax
jne 0x154a6
leaq -0x978(%rbp), %rdi
callq 0x32a0
movq 0x32af3(%rip), %rax     # 0x47fc8
movq (%rax), %rbx
movq 0x18(%rax), %r14
leaq -0x970(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0x978(%rbp,%rax)
callq 0x3190
movl $0xf8, %r15d
leaq -0x978(%rbp), %rdi
addq %r15, %rdi
callq 0x30d0
leaq -0xb70(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0xb78(%rbp,%rax)
callq 0x3190
leaq -0xb78(%rbp), %rdi
addq %r15, %rdi
callq 0x30d0
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x15550
callq 0x31d0
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x15568
callq 0x31d0
movq -0x230(%rbp), %rdi
leaq -0x220(%rbp), %rax
cmpq %rax, %rdi
je 0x15580
callq 0x31d0
movq -0x250(%rbp), %rdi
leaq -0x240(%rbp), %rax
cmpq %rax, %rdi
je 0x15598
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x155ad
callq 0x31d0
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x155c5
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x155dd
callq 0x31d0
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x155f5
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x1560d
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x15625
callq 0x31d0
movq -0x108(%rbp), %rdi
leaq -0xf8(%rbp), %rax
cmpq %rax, %rdi
je 0x1563d
callq 0x31d0
movq -0x128(%rbp), %rdi
leaq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0x15655
callq 0x31d0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x1566d
callq 0x31d0
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x15685
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x1569d
callq 0x31d0
addq $0xce8, %rsp            # imm = 0xCE8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x25afc(%rip), %rdi     # 0x3b1b2
callq 0x3110
leaq 0x25af0(%rip), %rdi     # 0x3b1b2
callq 0x32b0
movq %rax, %rbx
movq 0x328f7(%rip), %rax     # 0x47fc8
movq (%rax), %r14
movq 0x18(%rax), %r15
jmp 0x15b22
movq %rax, %rbx
jmp 0x15b4a
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
movq %rax, %rbx
jmp 0x15855
movq %rax, %rbx
jmp 0x1583d
movq %rax, %rbx
jmp 0x15825
movq %rax, %rbx
jmp 0x1580d
movq %rax, %rbx
jmp 0x157f5
movq %rax, %rbx
jmp 0x157dd
movq %rax, %rbx
jmp 0x157c5
movq %rax, %rbx
jmp 0x157ad
movq %rax, %rbx
jmp 0x15795
movq %rax, %rbx
jmp 0x1577d
movq %rax, %rbx
jmp 0x15765
movq %rax, %rbx
jmp 0x15759
movq %rax, %rbx
leaq -0x770(%rbp), %rdi
callq 0x5cb2
leaq -0xd08(%rbp), %rdi
callq 0x5cb2
movq -0x5e0(%rbp), %rdi
leaq -0x5d0(%rbp), %rax
cmpq %rax, %rdi
je 0x1577d
callq 0x31d0
movq -0x3c0(%rbp), %rdi
leaq -0x3b0(%rbp), %rax
cmpq %rax, %rdi
je 0x15795
callq 0x31d0
movq -0x3e0(%rbp), %rdi
leaq -0x3d0(%rbp), %rax
cmpq %rax, %rdi
je 0x157ad
callq 0x31d0
movq -0x400(%rbp), %rdi
leaq -0x3f0(%rbp), %rax
cmpq %rax, %rdi
je 0x157c5
callq 0x31d0
movq -0x420(%rbp), %rdi
leaq -0x410(%rbp), %rax
cmpq %rax, %rdi
je 0x157dd
callq 0x31d0
movq -0x440(%rbp), %rdi
leaq -0x430(%rbp), %rax
cmpq %rax, %rdi
je 0x157f5
callq 0x31d0
movq -0x460(%rbp), %rdi
leaq -0x450(%rbp), %rax
cmpq %rax, %rdi
je 0x1580d
callq 0x31d0
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
je 0x15825
callq 0x31d0
movq -0x4a0(%rbp), %rdi
leaq -0x490(%rbp), %rax
cmpq %rax, %rdi
je 0x1583d
callq 0x31d0
movq -0x4c0(%rbp), %rdi
leaq -0x4b0(%rbp), %rax
cmpq %rax, %rdi
je 0x15855
callq 0x31d0
movq -0x4e0(%rbp), %rdi
leaq -0x4d0(%rbp), %rax
cmpq %rax, %rdi
je 0x15aec
jmp 0x15ac2
movq %rax, %rbx
jmp 0x158e5
movq %rax, %rbx
jmp 0x158cd
jmp 0x15ae9
movq %rax, %rbx
jmp 0x158b5
movq %rax, %rbx
jmp 0x159c6
movq %rax, %rbx
jmp 0x158a9
movq %rax, %rbx
jmp 0x159ae
movq %rax, %rbx
leaq -0x770(%rbp), %rdi
callq 0x6602
leaq -0xd08(%rbp), %rdi
callq 0x6602
movq -0x5c0(%rbp), %rdi
leaq -0x5b0(%rbp), %rax
cmpq %rax, %rdi
je 0x158cd
callq 0x31d0
movq -0x280(%rbp), %rdi
leaq -0x270(%rbp), %rax
cmpq %rax, %rdi
je 0x158e5
callq 0x31d0
movq -0x2a0(%rbp), %rdi
leaq -0x290(%rbp), %rax
cmpq %rax, %rdi
je 0x1591e
callq 0x31d0
jmp 0x1591e
movq %rax, %rbx
jmp 0x15996
movq %rax, %rbx
jmp 0x1597e
movq %rax, %rbx
jmp 0x15966
movq %rax, %rbx
jmp 0x1594e
movq %rax, %rbx
jmp 0x15936
movq %rax, %rbx
movq -0x2c0(%rbp), %rdi
leaq -0x2b0(%rbp), %rax
cmpq %rax, %rdi
je 0x15936
callq 0x31d0
movq -0x2e0(%rbp), %rdi
leaq -0x2d0(%rbp), %rax
cmpq %rax, %rdi
je 0x1594e
callq 0x31d0
movq -0x300(%rbp), %rdi
leaq -0x2f0(%rbp), %rax
cmpq %rax, %rdi
je 0x15966
callq 0x31d0
movq -0x320(%rbp), %rdi
leaq -0x310(%rbp), %rax
cmpq %rax, %rdi
je 0x1597e
callq 0x31d0
movq -0x340(%rbp), %rdi
leaq -0x330(%rbp), %rax
cmpq %rax, %rdi
je 0x15996
callq 0x31d0
movq -0x360(%rbp), %rdi
leaq -0x350(%rbp), %rax
cmpq %rax, %rdi
je 0x159ae
callq 0x31d0
movq -0x380(%rbp), %rdi
leaq -0x370(%rbp), %rax
cmpq %rax, %rdi
je 0x159c6
callq 0x31d0
movq -0x3a0(%rbp), %rdi
leaq -0x390(%rbp), %rax
cmpq %rax, %rdi
je 0x15aec
jmp 0x15ac2
jmp 0x15ae9
jmp 0x15ae9
jmp 0x159f3
jmp 0x15ae9
movq %rax, %rbx
movq 0x325b3(%rip), %rsi     # 0x47fb0
leaq -0x778(%rbp), %rdi
callq 0x3160
movq -0x50(%rbp), %rdi
callq 0x30d0
jmp 0x15aec
movq %rax, %rbx
movq -0x500(%rbp), %rdi
leaq -0x4f0(%rbp), %rax
cmpq %rax, %rdi
je 0x15aec
jmp 0x15ac2
movq %rax, %rbx
movq -0x520(%rbp), %rdi
leaq -0x510(%rbp), %rax
cmpq %rax, %rdi
je 0x15aec
jmp 0x15ac2
movq %rax, %rbx
movq -0x540(%rbp), %rdi
leaq -0x530(%rbp), %rax
cmpq %rax, %rdi
je 0x15aec
jmp 0x15ac2
movq %rax, %rbx
movq -0x5a0(%rbp), %rdi
leaq -0x590(%rbp), %rax
cmpq %rax, %rdi
je 0x15aec
jmp 0x15ac2
movq %rax, %rbx
cmpl $0x0, (%r14)
jne 0x15aec
movl %r13d, (%r14)
jmp 0x15aec
movq %rax, %rbx
movq -0x560(%rbp), %rdi
leaq -0x550(%rbp), %rax
cmpq %rax, %rdi
je 0x15aec
jmp 0x15ac2
movq %rax, %rbx
movq -0x580(%rbp), %rdi
leaq -0x570(%rbp), %rax
cmpq %rax, %rdi
je 0x15aec
callq 0x31d0
jmp 0x15aec
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
jmp 0x15ae9
movq %rax, %rbx
movq 0x324d5(%rip), %rax     # 0x47fc8
movq (%rax), %r14
movq 0x18(%rax), %r15
leaq -0x970(%rbp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, -0x978(%rbp,%rax)
callq 0x3190
leaq -0x880(%rbp), %rdi
callq 0x30d0
leaq -0xb70(%rbp), %rdi
movq %r14, -0x8(%rdi)
movq -0x18(%r14), %rax
movq %r15, -0xb78(%rbp,%rax)
callq 0x3190
leaq -0xa80(%rbp), %rdi
callq 0x30d0
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x15b62
callq 0x31d0
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x15b7a
callq 0x31d0
movq -0x230(%rbp), %rdi
leaq -0x220(%rbp), %rax
cmpq %rax, %rdi
je 0x15b92
callq 0x31d0
movq -0x250(%rbp), %rdi
leaq -0x240(%rbp), %rax
cmpq %rax, %rdi
je 0x15baa
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x15bbf
callq 0x31d0
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x15bd7
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x15bef
callq 0x31d0
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x15c07
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x15c1f
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x15c37
callq 0x31d0
movq -0x108(%rbp), %rdi
leaq -0xf8(%rbp), %rax
cmpq %rax, %rdi
je 0x15c4f
callq 0x31d0
movq -0x128(%rbp), %rdi
leaq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0x15c67
callq 0x31d0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x15c7f
callq 0x31d0
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x15c97
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x15caf
callq 0x31d0
movq %rbx, %rdi
callq 0x3380