// File: /workspace/github_cpp_makefile_star2_O1/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 $0xcd8, %rsp            # imm = 0xCD8
movq %rcx, -0x250(%rbp)
movq %rdx, -0x258(%rbp)
movq %rsi, -0x40(%rbp)
movq %rdi, -0x38(%rbp)
leaq -0x1b8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x198(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x178(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x108(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xe8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xc8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xa8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x158(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x88(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x138(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x68(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x238(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x218(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x1d8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x1f8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xb70(%rbp), %rdi
callq 0x3360
leaq -0x970(%rbp), %rdi
callq 0x3360
leaq -0x770(%rbp), %rax
addq $0x80, %rax
movq %rax, -0x120(%rbp)
movq 0x34831(%rip), %r14     # 0x47fd0
movq 0x3483a(%rip), %r13     # 0x47fe0
movl $0x53, %edx
movq %r14, %rdi
leaq 0x27324(%rip), %rsi     # 0x3aad9
callq 0x3250
movq (%r14), %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 %r13, %rdi
leaq -0x2b(%rbp), %rsi
callq 0x3280
movzbl -0x2b(%rbp), %eax
cmpl $0x6e, %eax
je 0x137ff
cmpl $0x65, %eax
jne 0x14d2c
movl $0xc, %edx
movq %r14, %rdi
leaq 0x26f31(%rip), %rsi     # 0x3a73f
callq 0x3250
movq (%r14), %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 %r13, %rdi
leaq -0x248(%rbp), %rsi
callq 0x3270
movb -0x2b(%rbp), %bl
leaq -0x588(%rbp), %rax
movq %rax, -0x598(%rbp)
movq -0x248(%rbp), %rsi
movq -0x240(%rbp), %rdx
addq %rsi, %rdx
leaq -0x598(%rbp), %rdi
callq 0x4574
movsbl %bl, %edx
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
leaq -0x598(%rbp), %rcx
leaq -0x29(%rbp), %r8
callq 0x3759e
movl %eax, %r12d
movq -0x598(%rbp), %rdi
leaq -0x588(%rbp), %rax
cmpq %rax, %rdi
je 0x138ad
callq 0x31d0
testb %r12b, %r12b
je 0x138f6
leaq -0x770(%rbp), %rbx
movq %rbx, %rdi
leaq -0x248(%rbp), %rsi
movl $0x18, %edx
callq 0x3310
movq %rbx, %rdi
leaq -0x30(%rbp), %rsi
callq 0x3120
movq %rbx, %rdi
movq 0x346cd(%rip), %rsi     # 0x47fb0
callq 0x3160
movq -0x120(%rbp), %rdi
callq 0x30d0
jmp 0x1395b
movl $0x36, %edx
movq %r14, %rdi
leaq 0x26e47(%rip), %rsi     # 0x3a74c
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x137ff
movq -0x1c0(%rbp), %rdx
movl $0x8, %r8d
leaq -0x1c8(%rbp), %rdi
xorl %esi, %esi
leaq 0x271cb(%rip), %rcx     # 0x3ab4d
callq 0x3300
movl $0xe, %edx
movq %r14, %rdi
leaq 0x26ded(%rip), %rsi     # 0x3a783
callq 0x3250
movq (%r14), %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 %r13, %rdi
callq 0x33a0
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0x78(%rbp), %rsi
callq 0x33c0
leaq -0x78(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
je 0x13a2b
movq -0x70(%rbp), %rbx
testq %rbx, %rbx
je 0x13a90
movq -0x78(%rbp), %r15
xorl %r12d, %r12d
movsbl (%r15,%r12), %edi
callq 0x32c0
movb %al, (%r15,%r12)
incq %r12
cmpq %r12, %rbx
jne 0x13a13
jmp 0x13a90
movl $0x2d, %edx
movq %r14, %rdi
leaq 0x26d58(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x13987
movl $0x1a, %edx
movq %r14, %rdi
leaq 0x270ad(%rip), %rsi     # 0x3ab56
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x33c0
leaq -0x1a8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3844d
testb %al, %al
jne 0x13b75
movl $0x35, %edx
movq %r14, %rdi
leaq 0x27052(%rip), %rsi     # 0x3ab71
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x13a9a
movl $0x10, %edx
movq %r14, %rdi
leaq 0x27019(%rip), %rsi     # 0x3aba7
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0x188(%rbp), %rsi
callq 0x33c0
leaq -0x188(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38df8
testb %al, %al
jne 0x13c5a
movl $0x2d, %edx
movq %r14, %rdi
leaq 0x26b8e(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x13b7f
movl $0x1e, %edx
movq %r14, %rdi
leaq 0x26f45(%rip), %rsi     # 0x3abb8
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0x118(%rbp), %rsi
callq 0x33c0
leaq -0x118(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x13d3f
movl $0x2d, %edx
movq %r14, %rdi
leaq 0x26aa9(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq -0x568(%rbp), %rax
movq %rax, -0x578(%rbp)
movq -0x118(%rbp), %rsi
movq -0x110(%rbp), %rdx
addq %rsi, %rdx
leaq -0x578(%rbp), %rdi
callq 0x4574
movq -0x258(%rbp), %rdi
leaq -0x578(%rbp), %rsi
callq 0x36dd9
movl %eax, %r12d
movq -0x578(%rbp), %rdi
leaq -0x568(%rbp), %rax
cmpq %rax, %rdi
je 0x13d98
callq 0x31d0
testb %r12b, %r12b
jne 0x13e03
movq (%r14), %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 $0x22, %edx
movq %r14, %rdi
leaq 0x26e04(%rip), %rsi     # 0x3abd7
callq 0x3250
movq (%r14), %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)
cmpb $0x6e, -0x29(%rbp)
je 0x13c64
movl $0x1b, %edx
movq %r14, %rdi
leaq 0x26dde(%rip), %rsi     # 0x3abfa
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0xf8(%rbp), %rsi
callq 0x33c0
leaq -0xf8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x13ee8
movl $0x2d, %edx
movq %r14, %rdi
leaq 0x26900(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq -0x548(%rbp), %rax
movq %rax, -0x558(%rbp)
movq -0xf8(%rbp), %rsi
movq -0xf0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x558(%rbp), %rdi
callq 0x4574
xorl %edi, %edi
movq -0x250(%rbp), %rsi
leaq -0x558(%rbp), %rdx
movl $0x61, %ecx
callq 0x36e7a
movl %eax, %r12d
movq -0x558(%rbp), %rdi
leaq -0x548(%rbp), %rax
cmpq %rax, %rdi
je 0x13f48
callq 0x31d0
testb %r12b, %r12b
jne 0x13fe1
movq (%r14), %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 $0x31, %edx
movq %r14, %rdi
leaq 0x26c8f(%rip), %rsi     # 0x3ac16
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movb $0x6e, -0x29(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x13e0d
movl $0x1a, %edx
movq %r14, %rdi
leaq 0x26c4e(%rip), %rsi     # 0x3ac48
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0xd8(%rbp), %rsi
callq 0x33c0
leaq -0xd8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x140c6
movl $0x2d, %edx
movq %r14, %rdi
leaq 0x26722(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0xd0(%rbp), %rbx
testq %rbx, %rbx
je 0x140f2
movq -0xd8(%rbp), %r15
xorl %r12d, %r12d
movsbl (%r15,%r12), %edi
callq 0x32c0
movb %al, (%r15,%r12)
incq %r12
cmpq %r12, %rbx
jne 0x140dc
cmpb $0x6e, -0x29(%rbp)
je 0x13feb
movl $0x19, %edx
movq %r14, %rdi
leaq 0x26b58(%rip), %rsi     # 0x3ac63
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x33c0
movq -0x1e0(%rbp), %rbx
testq %rbx, %rbx
je 0x1418a
movq -0x1e8(%rbp), %r15
xorl %r12d, %r12d
movsbl (%r15,%r12), %edi
callq 0x33d0
movb %al, (%r15,%r12)
incq %r12
cmpq %r12, %rbx
jne 0x14174
leaq -0x1e8(%rbp), %rbx
movq %rbx, %rdi
leaq 0x26ae2(%rip), %rsi     # 0x3ac7d
callq 0x30c0
testl %eax, %eax
je 0x14222
movq %rbx, %rdi
leaq 0x26ad1(%rip), %rsi     # 0x3ac7f
callq 0x30c0
testl %eax, %eax
je 0x14222
movb $0x6e, -0x29(%rbp)
movl $0x21, %edx
movq %r14, %rdi
leaq 0x26ab7(%rip), %rsi     # 0x3ac81
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
jmp 0x14232
movq -0x1e8(%rbp), %rax
movb (%rax), %al
movb %al, -0x2c(%rbp)
movb $0x73, -0x29(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x140fc
movl $0x1c, %edx
movq %r14, %rdi
leaq 0x26a58(%rip), %rsi     # 0x3aca3
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0x228(%rbp), %rsi
callq 0x33c0
leaq -0x528(%rbp), %rax
movq %rax, -0x538(%rbp)
movq -0x228(%rbp), %rsi
movq -0x220(%rbp), %rdx
addq %rsi, %rdx
leaq -0x538(%rbp), %rdi
callq 0x4574
leaq -0x538(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38f49
movl %eax, %r12d
movq -0x538(%rbp), %rdi
leaq -0x528(%rbp), %rax
cmpq %rax, %rdi
je 0x142f4
callq 0x31d0
testb %r12b, %r12b
jne 0x1435e
movl $0x34, %edx
movq %r14, %rdi
leaq 0x269b8(%rip), %rsi     # 0x3acc0
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x228(%rbp), %r15
callq 0x3040
movq %rax, %r12
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r15, %rdi
leaq -0x770(%rbp), %rsi
callq 0x3170
movsd %xmm0, -0x128(%rbp)
cmpq %r15, -0x770(%rbp)
je 0x15660
movl (%r12), %eax
testl %eax, %eax
je 0x143ab
cmpl $0x22, %eax
jne 0x143af
jmp 0x1566c
movl %ebx, (%r12)
cmpb $0x6e, -0x29(%rbp)
je 0x1423c
movl $0x18, %edx
movq %r14, %rdi
leaq 0x2692d(%rip), %rsi     # 0x3acf5
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0x208(%rbp), %rsi
callq 0x33c0
leaq -0x508(%rbp), %rax
movq %rax, -0x518(%rbp)
movq -0x208(%rbp), %rsi
movq -0x200(%rbp), %rdx
addq %rsi, %rdx
leaq -0x518(%rbp), %rdi
callq 0x4574
leaq -0x518(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3871a
movl %eax, %r12d
movq -0x518(%rbp), %rdi
leaq -0x508(%rbp), %rax
cmpq %rax, %rdi
je 0x14471
callq 0x31d0
testb %r12b, %r12b
je 0x144ba
leaq -0x770(%rbp), %rbx
movq %rbx, %rdi
leaq -0x208(%rbp), %rsi
movl $0x18, %edx
callq 0x3310
movq %rbx, %rdi
leaq -0x44(%rbp), %rsi
callq 0x3120
movq %rbx, %rdi
movq 0x33b09(%rip), %rsi     # 0x47fb0
callq 0x3160
movq -0x120(%rbp), %rdi
callq 0x30d0
jmp 0x1451f
movl $0x3d, %edx
movq %r14, %rdi
leaq 0x26845(%rip), %rsi     # 0x3ad0e
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x143b9
movl $0x29, %edx
movq %r14, %rdi
leaq 0x26814(%rip), %rsi     # 0x3ad4c
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0x148(%rbp), %rsi
callq 0x33c0
leaq -0x4e8(%rbp), %rax
movq %rax, -0x4f8(%rbp)
movq -0x148(%rbp), %rsi
movq -0x140(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4f8(%rbp), %rdi
callq 0x4574
leaq -0x4f8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x39086
movl %eax, %r12d
movq -0x4f8(%rbp), %rdi
leaq -0x4e8(%rbp), %rax
cmpq %rax, %rdi
je 0x145e1
callq 0x31d0
testb %r12b, %r12b
jne 0x1464b
movl $0x3a, %edx
movq %r14, %rdi
leaq 0x26781(%rip), %rsi     # 0x3ad76
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x14529
movl $0x1f, %edx
movq %r14, %rdi
leaq 0x2674d(%rip), %rsi     # 0x3adb1
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0x168(%rbp), %rsi
callq 0x33c0
leaq -0x168(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x391c3
testb %al, %al
jne 0x14730
movl $0x35, %edx
movq %r14, %rdi
leaq 0x266f7(%rip), %rsi     # 0x3add1
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x14655
cmpb $0x6e, -0x2b(%rbp)
jne 0x14d6c
movq -0x38(%rbp), %rax
movl 0x28(%rax), %eax
movq %rax, -0x58(%rbp)
movl $0x17, %edx
movq %r14, %rdi
leaq 0x266a9(%rip), %rsi     # 0x3ae07
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0x98(%rbp), %rsi
callq 0x33c0
leaq -0x98(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x39389
testb %al, %al
jne 0x1482a
movl $0x24, %edx
movq %r14, %rdi
leaq 0x2664b(%rip), %rsi     # 0x3ae1f
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x1474f
movl $0x20, %edx
movq %r14, %rdi
leaq 0x26601(%rip), %rsi     # 0x3ae44
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0xb8(%rbp), %rsi
callq 0x33c0
leaq -0xb8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x391c3
testb %al, %al
jne 0x1490f
movl $0x35, %edx
movq %r14, %rdi
leaq 0x26518(%rip), %rsi     # 0x3add1
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x14834
movl -0x30(%rbp), %r12d
leaq -0x4c8(%rbp), %rax
movq %rax, -0x4d8(%rbp)
movq -0x1c8(%rbp), %rsi
movq -0x1c0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4d8(%rbp), %rdi
callq 0x4574
leaq -0x4a8(%rbp), %rax
movq %rax, -0x4b8(%rbp)
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4b8(%rbp), %rdi
callq 0x4574
leaq -0x488(%rbp), %rax
movq %rax, -0x498(%rbp)
movq -0x1a8(%rbp), %rsi
movq -0x1a0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x498(%rbp), %rdi
callq 0x4574
leaq -0x468(%rbp), %rax
movq %rax, -0x478(%rbp)
movq -0x188(%rbp), %rsi
movq -0x180(%rbp), %rdx
addq %rsi, %rdx
leaq -0x478(%rbp), %rdi
callq 0x4574
leaq -0x448(%rbp), %rax
movq %rax, -0x458(%rbp)
movq -0x118(%rbp), %rsi
movq -0x110(%rbp), %rdx
addq %rsi, %rdx
leaq -0x458(%rbp), %rdi
callq 0x4574
leaq -0x428(%rbp), %rax
movq %rax, -0x438(%rbp)
movq -0xf8(%rbp), %rsi
movq -0xf0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x438(%rbp), %rdi
callq 0x4574
leaq -0x408(%rbp), %rax
movq %rax, -0x418(%rbp)
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x418(%rbp), %rdi
callq 0x4574
movl -0x44(%rbp), %ebx
leaq -0x3e8(%rbp), %rax
movq %rax, -0x3f8(%rbp)
movq -0x148(%rbp), %rsi
movq -0x140(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3f8(%rbp), %rdi
callq 0x4574
leaq -0x3c8(%rbp), %rax
movq %rax, -0x3d8(%rbp)
movq -0x168(%rbp), %rsi
movq -0x160(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3d8(%rbp), %rdi
callq 0x4574
leaq -0x3a8(%rbp), %rax
movq %rax, -0x3b8(%rbp)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3b8(%rbp), %rdi
callq 0x4574
movq %rbx, -0x50(%rbp)
leaq -0x5c8(%rbp), %rax
movq %rax, -0x5d8(%rbp)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x5d8(%rbp), %rbx
movq %rbx, %rdi
callq 0x4574
subq $0x8, %rsp
movsbl -0x2c(%rbp), %r9d
leaq -0xd00(%rbp), %r15
movq %r15, %rdi
movl %r12d, %esi
leaq -0x4d8(%rbp), %rdx
leaq -0x4b8(%rbp), %rcx
leaq -0x498(%rbp), %r8
movsd -0x128(%rbp), %xmm0
pushq %rbx
leaq -0x3b8(%rbp), %rax
pushq %rax
leaq -0x3d8(%rbp), %rax
pushq %rax
leaq -0x3f8(%rbp), %rax
pushq %rax
pushq -0x50(%rbp)
leaq -0x418(%rbp), %rax
pushq %rax
leaq -0x438(%rbp), %rax
pushq %rax
leaq -0x458(%rbp), %rax
pushq %rax
leaq -0x478(%rbp), %rax
pushq %rax
callq 0x57e4
addq $0x50, %rsp
leaq -0x770(%rbp), %rbx
movq %rbx, %rdi
leaq -0x30(%rbp), %rsi
movq %r15, %rdx
callq 0x1cde6
movq -0x38(%rbp), %rdi
movq %rbx, %rsi
callq 0x1da88
leaq -0x768(%rbp), %rdi
callq 0x5cae
movq %r15, %rdi
callq 0x5cae
movq -0x5d8(%rbp), %rdi
leaq -0x5c8(%rbp), %rax
cmpq %rax, %rdi
je 0x14bc0
callq 0x31d0
movq -0x3b8(%rbp), %rdi
leaq -0x3a8(%rbp), %rax
cmpq %rax, %rdi
je 0x14bd8
callq 0x31d0
movq -0x3d8(%rbp), %rdi
leaq -0x3c8(%rbp), %rax
cmpq %rax, %rdi
je 0x14bf0
callq 0x31d0
movq -0x3f8(%rbp), %rdi
leaq -0x3e8(%rbp), %rax
cmpq %rax, %rdi
je 0x14c08
callq 0x31d0
movq -0x418(%rbp), %rdi
leaq -0x408(%rbp), %rax
cmpq %rax, %rdi
je 0x14c20
callq 0x31d0
movq -0x438(%rbp), %rdi
leaq -0x428(%rbp), %rax
cmpq %rax, %rdi
je 0x14c38
callq 0x31d0
movq -0x458(%rbp), %rdi
leaq -0x448(%rbp), %rax
cmpq %rax, %rdi
je 0x14c50
callq 0x31d0
movq -0x478(%rbp), %rdi
leaq -0x468(%rbp), %rax
cmpq %rax, %rdi
je 0x14c68
callq 0x31d0
movq -0x498(%rbp), %rdi
leaq -0x488(%rbp), %rax
cmpq %rax, %rdi
je 0x14c80
callq 0x31d0
movq -0x4b8(%rbp), %rdi
leaq -0x4a8(%rbp), %rax
cmpq %rax, %rdi
je 0x14c98
callq 0x31d0
movq -0x4d8(%rbp), %rdi
leaq -0x4c8(%rbp), %rax
cmpq %rax, %rdi
je 0x14cb0
callq 0x31d0
movq -0x38(%rbp), %rax
movq -0x58(%rbp), %rcx
cmpq %rcx, 0x28(%rax)
jne 0x15300
movl $0x2d, %edx
movq %r14, %rdi
leaq 0x26194(%rip), %rsi     # 0x3ae65
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
jmp 0x152f7
movl $0x1f, %edx
movq %r14, %rdi
leaq 0x25df2(%rip), %rsi     # 0x3ab2d
callq 0x3250
movq (%r14), %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 0x152f7
movq -0x40(%rbp), %rax
movl 0x28(%rax), %eax
movq %rax, -0x58(%rbp)
movl $0x1a, %edx
movq %r14, %rdi
leaq 0x2610d(%rip), %rsi     # 0x3ae93
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0x98(%rbp), %rsi
callq 0x33c0
leaq -0x98(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x39389
testb %al, %al
jne 0x14e52
movl $0x24, %edx
movq %r14, %rdi
leaq 0x26023(%rip), %rsi     # 0x3ae1f
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x14d77
movl $0x20, %edx
movq %r14, %rdi
leaq 0x25fd9(%rip), %rsi     # 0x3ae44
callq 0x3250
movq (%r14), %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 (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r13, %rdi
leaq -0xb8(%rbp), %rsi
callq 0x33c0
leaq -0xb8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x391c3
testb %al, %al
jne 0x14f0d
movl $0x35, %edx
movq %r14, %rdi
leaq 0x25ef0(%rip), %rsi     # 0x3add1
callq 0x3250
movq (%r14), %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 0x14e5c
movl -0x30(%rbp), %ebx
leaq -0x388(%rbp), %rax
movq %rax, -0x398(%rbp)
movq -0x1c8(%rbp), %rsi
movq -0x1c0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x398(%rbp), %rdi
callq 0x4574
leaq -0x368(%rbp), %rax
movq %rax, -0x378(%rbp)
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
addq %rsi, %rdx
leaq -0x378(%rbp), %rdi
callq 0x4574
leaq -0x348(%rbp), %rax
movq %rax, -0x358(%rbp)
movq -0x1a8(%rbp), %rsi
movq -0x1a0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x358(%rbp), %rdi
callq 0x4574
leaq -0x328(%rbp), %rax
movq %rax, -0x338(%rbp)
movq -0x188(%rbp), %rsi
movq -0x180(%rbp), %rdx
addq %rsi, %rdx
leaq -0x338(%rbp), %rdi
callq 0x4574
leaq -0x308(%rbp), %rax
movq %rax, -0x318(%rbp)
movq -0x118(%rbp), %rsi
movq -0x110(%rbp), %rdx
addq %rsi, %rdx
leaq -0x318(%rbp), %rdi
callq 0x4574
leaq -0x2e8(%rbp), %rax
movq %rax, -0x2f8(%rbp)
movq -0xf8(%rbp), %rsi
movq -0xf0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2f8(%rbp), %rdi
callq 0x4574
leaq -0x2c8(%rbp), %rax
movq %rax, -0x2d8(%rbp)
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2d8(%rbp), %rdi
callq 0x4574
movl -0x44(%rbp), %r15d
leaq -0x2a8(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq -0x148(%rbp), %rsi
movq -0x140(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2b8(%rbp), %rdi
callq 0x4574
leaq -0x288(%rbp), %rax
movq %rax, -0x298(%rbp)
movq -0x168(%rbp), %rsi
movq -0x160(%rbp), %rdx
addq %rsi, %rdx
leaq -0x298(%rbp), %rdi
callq 0x4574
leaq -0x268(%rbp), %rax
movq %rax, -0x278(%rbp)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x278(%rbp), %rdi
callq 0x4574
movq %r15, -0x50(%rbp)
leaq -0x5a8(%rbp), %rax
movq %rax, -0x5b8(%rbp)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x5b8(%rbp), %r12
movq %r12, %rdi
callq 0x4574
subq $0x8, %rsp
movsbl -0x2c(%rbp), %r9d
leaq -0xd00(%rbp), %r15
movq %r15, %rdi
movl %ebx, %esi
leaq -0x398(%rbp), %rdx
leaq -0x378(%rbp), %rcx
leaq -0x358(%rbp), %r8
movsd -0x128(%rbp), %xmm0
pushq %r12
leaq -0x278(%rbp), %rax
pushq %rax
leaq -0x298(%rbp), %rax
pushq %rax
leaq -0x2b8(%rbp), %rax
pushq %rax
pushq -0x50(%rbp)
leaq -0x2d8(%rbp), %rax
pushq %rax
leaq -0x2f8(%rbp), %rax
pushq %rax
leaq -0x318(%rbp), %rax
pushq %rax
leaq -0x338(%rbp), %rax
pushq %rax
callq 0x5d04
addq $0x50, %rsp
leaq -0x770(%rbp), %rbx
movq %rbx, %rdi
leaq -0x30(%rbp), %rsi
movq %r15, %rdx
callq 0x1ce7a
movq -0x40(%rbp), %rdi
movq %rbx, %rsi
callq 0x1dcd0
leaq -0x768(%rbp), %rdi
callq 0x65fe
movq %r15, %rdi
callq 0x65fe
movq -0x5b8(%rbp), %rdi
leaq -0x5a8(%rbp), %rax
cmpq %rax, %rdi
je 0x151be
callq 0x31d0
movq -0x278(%rbp), %rdi
leaq -0x268(%rbp), %rax
cmpq %rax, %rdi
je 0x151d6
callq 0x31d0
movq -0x298(%rbp), %rdi
leaq -0x288(%rbp), %rax
cmpq %rax, %rdi
je 0x151ee
callq 0x31d0
movq -0x2b8(%rbp), %rdi
leaq -0x2a8(%rbp), %rax
cmpq %rax, %rdi
je 0x15206
callq 0x31d0
movq -0x2d8(%rbp), %rdi
leaq -0x2c8(%rbp), %rax
cmpq %rax, %rdi
je 0x1521e
callq 0x31d0
movq -0x2f8(%rbp), %rdi
leaq -0x2e8(%rbp), %rax
cmpq %rax, %rdi
je 0x15236
callq 0x31d0
movq -0x318(%rbp), %rdi
leaq -0x308(%rbp), %rax
cmpq %rax, %rdi
je 0x1524e
callq 0x31d0
movq -0x338(%rbp), %rdi
leaq -0x328(%rbp), %rax
cmpq %rax, %rdi
je 0x15266
callq 0x31d0
movq -0x358(%rbp), %rdi
leaq -0x348(%rbp), %rax
cmpq %rax, %rdi
je 0x1527e
callq 0x31d0
movq -0x378(%rbp), %rdi
leaq -0x368(%rbp), %rax
cmpq %rax, %rdi
je 0x15296
callq 0x31d0
movq -0x398(%rbp), %rdi
leaq -0x388(%rbp), %rax
cmpq %rax, %rdi
je 0x152ae
callq 0x31d0
movq -0x40(%rbp), %rax
movq -0x58(%rbp), %rcx
cmpq %rcx, 0x28(%rax)
jne 0x15300
movl $0x2d, %edx
movq %r14, %rdi
leaq 0x25b9a(%rip), %rsi     # 0x3ae65
callq 0x3250
movq (%r14), %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 $0x73, -0x2a(%rbp)
jmp 0x153ac
movl $0x1f, %edx
movq %r14, %rdi
leaq 0x25b9f(%rip), %rsi     # 0x3aeae
callq 0x3250
movq (%r14), %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 %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movl $0x24, %edx
movq %r14, %rdi
leaq 0x25b5a(%rip), %rsi     # 0x3aece
callq 0x3250
movq (%r14), %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 %r13, %rdi
leaq -0x2a(%rbp), %rsi
callq 0x3280
cmpb $0x73, -0x2a(%rbp)
je 0x137a6
movq -0x38(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x1541c
leaq 0x25b2b(%rip), %rsi     # 0x3aef3
leaq -0xb70(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0x15410
movq %rax, %r15
leaq -0xb70(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x91c7
movq %rbx, %rdi
callq 0x3140
movq %rax, %rbx
cmpq %r15, %rax
jne 0x153f4
leaq -0xb70(%rbp), %rdi
callq 0x32a0
movq -0x40(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x15482
leaq 0x25ad6(%rip), %rsi     # 0x3af04
leaq -0x970(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0x15476
movq %rax, %r15
leaq -0x970(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x9843
movq %rbx, %rdi
callq 0x3140
movq %rax, %rbx
cmpq %r15, %rax
jne 0x1545a
leaq -0x970(%rbp), %rdi
callq 0x32a0
movq 0x32b3f(%rip), %rax     # 0x47fc8
movq (%rax), %rbx
movq 0x18(%rax), %r14
leaq -0x968(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0x970(%rbp,%rax)
callq 0x3190
movl $0xf8, %r15d
leaq -0x970(%rbp), %rdi
addq %r15, %rdi
callq 0x30d0
leaq -0xb68(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0xb70(%rbp,%rax)
callq 0x3190
leaq -0xb70(%rbp), %rdi
addq %r15, %rdi
callq 0x30d0
movq -0x208(%rbp), %rdi
leaq -0x1f8(%rbp), %rax
cmpq %rax, %rdi
je 0x15504
callq 0x31d0
movq -0x1e8(%rbp), %rdi
leaq -0x1d8(%rbp), %rax
cmpq %rax, %rdi
je 0x1551c
callq 0x31d0
movq -0x228(%rbp), %rdi
leaq -0x218(%rbp), %rax
cmpq %rax, %rdi
je 0x15534
callq 0x31d0
movq -0x248(%rbp), %rdi
leaq -0x238(%rbp), %rax
cmpq %rax, %rdi
je 0x1554c
callq 0x31d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x1555e
callq 0x31d0
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x15576
callq 0x31d0
movq -0x98(%rbp), %rdi
leaq -0x88(%rbp), %rax
cmpq %rax, %rdi
je 0x1558e
callq 0x31d0
movq -0x168(%rbp), %rdi
leaq -0x158(%rbp), %rax
cmpq %rax, %rdi
je 0x155a6
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x155be
callq 0x31d0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x155d6
callq 0x31d0
movq -0xf8(%rbp), %rdi
leaq -0xe8(%rbp), %rax
cmpq %rax, %rdi
je 0x155ee
callq 0x31d0
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
cmpq %rax, %rdi
je 0x15606
callq 0x31d0
movq -0x188(%rbp), %rdi
leaq -0x178(%rbp), %rax
cmpq %rax, %rdi
je 0x1561e
callq 0x31d0
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
cmpq %rax, %rdi
je 0x15636
callq 0x31d0
movq -0x1c8(%rbp), %rdi
leaq -0x1b8(%rbp), %rax
cmpq %rax, %rdi
je 0x1564e
callq 0x31d0
addq $0xcd8, %rsp            # imm = 0xCD8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x25b4b(%rip), %rdi     # 0x3b1b2
callq 0x3110
leaq 0x25b3f(%rip), %rdi     # 0x3b1b2
callq 0x32b0
movq %rax, %r14
jmp 0x15af2
movq %rax, %r14
jmp 0x15b28
jmp 0x15ab9
movq %rax, %r14
jmp 0x15771
jmp 0x15ab9
movq %rax, %r14
jmp 0x157f1
movq %rax, %r14
jmp 0x15875
movq %rax, %r14
jmp 0x158ed
movq %rax, %r14
jmp 0x1593c
movq %rax, %r14
leaq -0x768(%rbp), %rdi
callq 0x5cae
jmp 0x156f6
movq %rax, %r14
jmp 0x1577d
movq %rax, %r14
jmp 0x15809
movq %rax, %r14
jmp 0x1588d
movq %rax, %r14
jmp 0x15905
movq %rax, %r14
jmp 0x15954
movq %rax, %r14
leaq -0xd00(%rbp), %rdi
callq 0x5cae
jmp 0x1572c
movq %rax, %r14
jmp 0x15795
movq %rax, %r14
jmp 0x15821
movq %rax, %r14
jmp 0x158a5
jmp 0x15ab9
movq %rax, %r14
jmp 0x1596c
movq %rax, %r14
movq -0x5d8(%rbp), %rdi
leaq -0x5c8(%rbp), %rax
cmpq %rax, %rdi
je 0x157d9
callq 0x31d0
jmp 0x157d9
movq %rax, %r14
jmp 0x157ad
movq %rax, %r14
jmp 0x15839
movq %rax, %r14
jmp 0x158bd
movq %rax, %r14
leaq -0x768(%rbp), %rdi
callq 0x65fe
leaq -0xd00(%rbp), %rdi
callq 0x65fe
movq -0x5b8(%rbp), %rdi
leaq -0x5a8(%rbp), %rax
cmpq %rax, %rdi
je 0x15795
callq 0x31d0
movq -0x278(%rbp), %rdi
leaq -0x268(%rbp), %rax
cmpq %rax, %rdi
je 0x157ad
callq 0x31d0
movq -0x298(%rbp), %rdi
leaq -0x288(%rbp), %rax
cmpq %rax, %rdi
je 0x1585d
callq 0x31d0
jmp 0x1585d
movq %rax, %r14
jmp 0x15984
movq %rax, %r14
movq -0x3b8(%rbp), %rdi
leaq -0x3a8(%rbp), %rax
cmpq %rax, %rdi
je 0x157f1
callq 0x31d0
movq -0x3d8(%rbp), %rdi
leaq -0x3c8(%rbp), %rax
cmpq %rax, %rdi
je 0x15809
callq 0x31d0
movq -0x3f8(%rbp), %rdi
leaq -0x3e8(%rbp), %rax
cmpq %rax, %rdi
je 0x15821
callq 0x31d0
movq -0x418(%rbp), %rdi
leaq -0x408(%rbp), %rax
cmpq %rax, %rdi
je 0x15839
callq 0x31d0
movq -0x438(%rbp), %rdi
leaq -0x428(%rbp), %rax
cmpq %rax, %rdi
je 0x15924
callq 0x31d0
jmp 0x15924
movq %rax, %r14
movq -0x2b8(%rbp), %rdi
leaq -0x2a8(%rbp), %rax
cmpq %rax, %rdi
je 0x15875
callq 0x31d0
movq -0x2d8(%rbp), %rdi
leaq -0x2c8(%rbp), %rax
cmpq %rax, %rdi
je 0x1588d
callq 0x31d0
movq -0x2f8(%rbp), %rdi
leaq -0x2e8(%rbp), %rax
cmpq %rax, %rdi
je 0x158a5
callq 0x31d0
movq -0x318(%rbp), %rdi
leaq -0x308(%rbp), %rax
cmpq %rax, %rdi
je 0x158bd
callq 0x31d0
movq -0x338(%rbp), %rdi
leaq -0x328(%rbp), %rax
cmpq %rax, %rdi
je 0x158d5
callq 0x31d0
movq -0x358(%rbp), %rdi
leaq -0x348(%rbp), %rax
cmpq %rax, %rdi
je 0x158ed
callq 0x31d0
movq -0x378(%rbp), %rdi
leaq -0x368(%rbp), %rax
cmpq %rax, %rdi
je 0x15905
callq 0x31d0
movq -0x398(%rbp), %rdi
leaq -0x388(%rbp), %rax
cmpq %rax, %rdi
je 0x15abc
jmp 0x15a84
movq %rax, %r14
movq -0x458(%rbp), %rdi
leaq -0x448(%rbp), %rax
cmpq %rax, %rdi
je 0x1593c
callq 0x31d0
movq -0x478(%rbp), %rdi
leaq -0x468(%rbp), %rax
cmpq %rax, %rdi
je 0x15954
callq 0x31d0
movq -0x498(%rbp), %rdi
leaq -0x488(%rbp), %rax
cmpq %rax, %rdi
je 0x1596c
callq 0x31d0
movq -0x4b8(%rbp), %rdi
leaq -0x4a8(%rbp), %rax
cmpq %rax, %rdi
je 0x15984
callq 0x31d0
movq -0x4d8(%rbp), %rdi
leaq -0x4c8(%rbp), %rax
cmpq %rax, %rdi
je 0x15abc
jmp 0x15a84
movq %rax, %r14
jmp 0x158d5
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x159be
jmp 0x15ab9
movq %rax, %r14
movq 0x325e8(%rip), %rsi     # 0x47fb0
leaq -0x770(%rbp), %rdi
callq 0x3160
leaq -0x6f0(%rbp), %rdi
callq 0x30d0
jmp 0x15abc
jmp 0x15ab9
movq %rax, %r14
movq -0x4f8(%rbp), %rdi
leaq -0x4e8(%rbp), %rax
cmpq %rax, %rdi
je 0x15abc
jmp 0x15a84
movq %rax, %r14
movq -0x518(%rbp), %rdi
leaq -0x508(%rbp), %rax
cmpq %rax, %rdi
je 0x15abc
jmp 0x15a84
movq %rax, %r14
movq -0x538(%rbp), %rdi
leaq -0x528(%rbp), %rax
cmpq %rax, %rdi
je 0x15abc
jmp 0x15a84
movq %rax, %r14
movq -0x558(%rbp), %rdi
leaq -0x548(%rbp), %rax
cmpq %rax, %rdi
je 0x15abc
jmp 0x15a84
movq %rax, %r14
movq -0x578(%rbp), %rdi
leaq -0x568(%rbp), %rax
cmpq %rax, %rdi
je 0x15abc
jmp 0x15a84
movq %rax, %r14
movq -0x598(%rbp), %rdi
leaq -0x588(%rbp), %rax
cmpq %rax, %rdi
je 0x15abc
callq 0x31d0
jmp 0x15abc
movq %rax, %r14
cmpl $0x0, (%r12)
jne 0x15abc
movl %ebx, (%r12)
jmp 0x15abc
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
jmp 0x15ab9
movq %rax, %r14
movq 0x32505(%rip), %rax     # 0x47fc8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x968(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x970(%rbp,%rcx)
callq 0x3190
leaq -0x878(%rbp), %rdi
callq 0x30d0
movq 0x324cf(%rip), %rax     # 0x47fc8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0xb68(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0xb70(%rbp,%rcx)
callq 0x3190
leaq -0xa78(%rbp), %rdi
callq 0x30d0
movq -0x208(%rbp), %rdi
leaq -0x1f8(%rbp), %rax
cmpq %rax, %rdi
je 0x15b40
callq 0x31d0
movq -0x1e8(%rbp), %rdi
leaq -0x1d8(%rbp), %rax
cmpq %rax, %rdi
je 0x15b58
callq 0x31d0
movq -0x228(%rbp), %rdi
leaq -0x218(%rbp), %rax
cmpq %rax, %rdi
je 0x15b70
callq 0x31d0
movq -0x248(%rbp), %rdi
leaq -0x238(%rbp), %rax
cmpq %rax, %rdi
je 0x15b88
callq 0x31d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x15b9a
callq 0x31d0
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x15bb2
callq 0x31d0
movq -0x98(%rbp), %rdi
leaq -0x88(%rbp), %rax
cmpq %rax, %rdi
je 0x15bca
callq 0x31d0
movq -0x168(%rbp), %rdi
leaq -0x158(%rbp), %rax
cmpq %rax, %rdi
je 0x15be2
callq 0x31d0
movq -0xb8(%rbp), %rdi
leaq -0xa8(%rbp), %rax
cmpq %rax, %rdi
je 0x15bfa
callq 0x31d0
movq -0xd8(%rbp), %rdi
leaq -0xc8(%rbp), %rax
cmpq %rax, %rdi
je 0x15c12
callq 0x31d0
movq -0xf8(%rbp), %rdi
leaq -0xe8(%rbp), %rax
cmpq %rax, %rdi
je 0x15c2a
callq 0x31d0
movq -0x118(%rbp), %rdi
leaq -0x108(%rbp), %rax
cmpq %rax, %rdi
je 0x15c42
callq 0x31d0
movq -0x188(%rbp), %rdi
leaq -0x178(%rbp), %rax
cmpq %rax, %rdi
je 0x15c5a
callq 0x31d0
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
cmpq %rax, %rdi
je 0x15c72
callq 0x31d0
movq -0x1c8(%rbp), %rdi
leaq -0x1b8(%rbp), %rax
cmpq %rax, %rdi
je 0x15c8a
callq 0x31d0
movq %r14, %rdi
callq 0x3380