// File: /workspace/github_cpp_makefile_star2_O2/nataly-enne[P]pet-fera/pet_fera_editar.cpp
// Function: editar(std::map<int, AVE_NATIVO, std::less<int>, std::allocator<std::pair<int const, AVE_NATIVO>>>&, std::map<int, AVE_EXOTICO, std::less<int>, std::allocator<std::pair<int const, AVE_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 editar(map <int, AVE_NATIVO> &aves_nat, map <int, AVE_EXOTICO> &aves_ex, map <int, VETERINARIO> vets, map <int, TRATADOR> tratadores){
	char resp, op, sexo, tipo_animal, sucesso, tipo = 'v';
	int id_buscado;;
	double tamanho, envergadura, tam_bico;
	bool check;
	string classe, nome_cientifico, dieta, veterinario, tratador, nome_batismo, autorizacao, autorizacao_IBAMA, origem, nome, id_string, sexo_string, tamanho_string, tam_bico_string, envergadura_string;
	ofstream nativos;
	ofstream exoticos;
			

	do{
		cout << "É nativo ou exotico? \n n - NATIVO\n e - EXOTICO" << endl;
		cin >> tipo_animal;
		if(tipo_animal != 'n' && tipo_animal != 'e'){
			cout << "Opção inválida!! Tente novamente!\n" << endl;
			cout << endl;
			cout << "Deseja sair? s/n" << endl;
			cin >> resp;
			if(resp == 's'){
				break;
			}	
		}
		else{ 
			if(tipo_animal == 'n'){
				cout << "Insira o ID buscado: " << endl;
				cin >> id_buscado;

				auto result = aves_nat.find(id_buscado);
			
				if(result != aves_nat.end()){
					cout << "ID existe!" << endl;

					classe = "Aves";

					// 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;
						}
						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_batismo 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 sexo 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 caracteres pproibidos.
					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;
							continue;
						}
						else{
							tamanho = stod(tamanho_string);
						}
					}while(sucesso == 'n');
						
					// Recebe o tamanho do bico do animal e verifica se não caracteres pproibidos.
					do{
						cout << "Digite o tamanho do bico: " << endl;
						getline(cin, tam_bico_string);
						if(!verifica_tamanho(tam_bico_string, sucesso)){
							cout << "ERRO: o tamanho do animal tem que ter apenas um '.' " << endl << endl;
						}
						tam_bico = stod(tam_bico_string);
					}while(sucesso == 'n');
					
					// Recebe a envergadura do animal e verifica se não caracteres pproibidos.
					do{
						cout << "Digite a envergadura: " << endl;
						getline(cin, envergadura_string);
						if(!verifica_tamanho(envergadura_string, sucesso)){
							cout << "ERRO: o tamanho do animal tem que ter apenas um '.' " << endl << endl;
						}
						envergadura = stod(envergadura_string);
					}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 ou '-'" << endl << endl;
						}
					}while(sucesso == 'n');

					// 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');

					(*result).second = AVE_NATIVO(id_buscado, classe, nome, nome_cientifico, sexo, tamanho, dieta, veterinario, tratador, nome_batismo, tam_bico, envergadura, autorizacao_IBAMA, origem, autorizacao);
					sucesso = 's';
				}
				else{
					cout << "Animal não cadastrado!!" << endl;
					sucesso = 'n';
				}
				if(sucesso == 's'){
					nativos.open("aves_nat.txt");
					for(auto it = aves_nat.begin(); it != aves_nat.end(); it++){
						nativos << (*it).second;
					}
					nativos.close();
				}
				cout << "Deseja editar outro? s/n" << endl;
				cin >> op;

			} // IF nativo.
			else{
				cout << "Insira o ID buscado: " << endl;
				cin >> id_buscado;

				auto result = aves_ex.find(id_buscado);
			
				if(result != aves_ex.end()){
					cout << "ID existe!" << endl;

					classe = "Aves";

					// 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;
						}
						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_batismo 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 sexo 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 caracteres pproibidos.
					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 tamanho do bico do animal e verifica se não caracteres pproibidos.
					do{
						cout << "Digite o tamanho do bico: " << endl;
						getline(cin, tam_bico_string);
						if(!verifica_tamanho(tam_bico_string, sucesso)){
							cout << "ERRO: o tamanho do animal tem que ter apenas um '.' " << endl << endl;
						}
						tam_bico = stod(tam_bico_string);
					}while(sucesso == 'n');
					
					// Recebe a envergadura do animal e verifica se não caracteres pproibidos.
					do{
						cout << "Digite a envergadura: " << endl;
						getline(cin, envergadura_string);
						if(!verifica_tamanho(envergadura_string, sucesso)){
							cout << "ERRO: o tamanho do animal tem que ter apenas um '.' " << endl << endl;
						}
						envergadura = stod(envergadura_string);
					}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 ou '-'" << endl << endl;
						}
					}while(sucesso == 'n');

					// 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 << endl;
						}
					}while(sucesso == 'n');


					(*result).second = AVE_EXOTICO(id_buscado, classe, nome, nome_cientifico, sexo, tamanho, dieta, veterinario, tratador, nome_batismo, tam_bico, envergadura, autorizacao_IBAMA, origem, autorizacao);
					sucesso = 's';
				}
				else{
					cout << "Animal não cadastrado!!" << endl;
					sucesso = 'n';
				}
				if(sucesso == 's'){
					exoticos.open("aves_ex.txt");
					for(auto it = aves_ex.begin(); it != aves_ex.end(); it++){
						exoticos << (*it).second;
					}
					exoticos.close();
				}
				cout << "\nDeseja editar outro? s/n" << endl;
				cin >> op;
			} // Else exótico.
		} // Primeiro else.
	}while(op == 's');
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb78, %rsp            # imm = 0xB78
movq %rcx, %rbx
movq %rdx, %r14
leaq -0x238(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movq %rsi, -0x48(%rbp)
movq %rdi, -0x50(%rbp)
xorl %eax, %eax
leaq -0x218(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0x1f8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq -0x118(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0xf8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq -0xb8(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0x1d8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq -0x1b8(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0x198(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq -0x98(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0x618(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq -0x78(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0x178(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq -0x158(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0x138(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xa28(%rbp), %rdi
callq 0x3350
leaq -0x828(%rbp), %rdi
callq 0x3350
movq -0x48(%rbp), %rax
addq $0x8, %rax
movq %rax, -0xd8(%rbp)
movq -0x50(%rbp), %rax
addq $0x8, %rax
movq %rax, -0xe0(%rbp)
movq 0x151c0(%rip), %r13     # 0x30fc8
movq 0x151d1(%rip), %r12     # 0x30fe0
movq %rbx, -0xe8(%rbp)
movq %r14, -0xd0(%rbp)
movq %r13, %rdi
leaq 0x83d0(%rip), %rsi      # 0x241f7
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x3280
movzbl -0x2c(%rbp), %eax
cmpl $0x65, %eax
je 0x1c345
cmpl $0x6e, %eax
je 0x1bead
movq %r13, %rdi
leaq 0x8375(%rip), %rsi      # 0x241d1
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r13, %rdi
callq 0x3110
movq %r13, %rdi
leaq 0x775d(%rip), %rsi      # 0x235d8
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x2d(%rbp), %rsi
callq 0x3280
cmpb $0x73, -0x2d(%rbp)
je 0x1d285
cmpb $0x73, -0x2b(%rbp)
je 0x1be1d
jmp 0x1d285
movq %r13, %rdi
leaq 0x8370(%rip), %rsi      # 0x24227
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x34(%rbp), %rsi
callq 0x3150
movq -0x50(%rbp), %rdi
leaq -0x34(%rbp), %rsi
callq 0x1e5a0
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0xe0(%rbp), %rax
je 0x1d1ff
movq %r13, %rdi
leaq 0x8341(%rip), %rsi      # 0x2423d
callq 0x31f0
movq %rax, %rdi
callq 0x3110
leaq -0x248(%rbp), %rdi
leaq 0x7697(%rip), %rsi      # 0x235ae
callq 0x33b0
movq %r13, %rdi
leaq 0x781d(%rip), %rsi      # 0x23743
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
callq 0x3380
movq %r12, %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3060
leaq -0xa8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x1bf7d
movq %r13, %rdi
leaq 0x77ea(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
movq -0xa8(%rbp), %rbx
movq -0xa0(%rbp), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x1bfa6
movsbl (%rbx,%r15), %edi
callq 0x32c0
movb %al, (%rbx,%r15)
incq %r15
jmp 0x1bf8e
cmpb $0x6e, -0x29(%rbp)
je 0x1bf1c
movq -0xd0(%rbp), %r15
movq %r13, %rdi
leaq 0x7b55(%rip), %rsi      # 0x23b16
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x228(%rbp), %rsi
callq 0x3060
leaq -0x228(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21bd2
testb %al, %al
jne 0x1c010
movq %r13, %rdi
leaq 0x7b36(%rip), %rsi      # 0x23b31
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1bfb7
movq %r13, %rdi
leaq 0x7b47(%rip), %rsi      # 0x23b67
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x208(%rbp), %rsi
callq 0x3060
leaq -0x208(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x22195
testb %al, %al
jne 0x1c06f
movq %r13, %rdi
leaq 0x76f8(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1c016
jmp 0x1c09a
movq %r13, %rdi
callq 0x3110
movq %r13, %rdi
leaq 0x7b0e(%rip), %rsi      # 0x23b97
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movb $0x6e, -0x29(%rbp)
movq %r13, %rdi
leaq 0x7ad4(%rip), %rsi      # 0x23b78
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x128(%rbp), %rsi
callq 0x3060
leaq -0x128(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x1c0f3
movq %r13, %rdi
leaq 0x7674(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x608(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x3290
movq %r15, %rdi
leaq -0x608(%rbp), %r14
movq %r14, %rsi
callq 0x20e46
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
je 0x1c077
cmpb $0x6e, -0x29(%rbp)
je 0x1c09a
movq %r13, %rdi
leaq 0x7a7c(%rip), %rsi      # 0x23bba
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x108(%rbp), %rsi
callq 0x3060
leaq -0x108(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x1c18d
movq %r13, %rdi
leaq 0x75da(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x5e8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x3290
xorl %edi, %edi
movq -0xe8(%rbp), %rsi
leaq -0x5e8(%rbp), %r14
movq %r14, %rdx
pushq $0x76
popq %rcx
callq 0x20eb7
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
je 0x1c1d5
cmpb $0x6e, -0x29(%rbp)
je 0x1c134
jmp 0x1c205
movq %r13, %rdi
callq 0x3110
movq %r13, %rdi
leaq 0x79ef(%rip), %rsi      # 0x23bd6
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
movb $0x6e, -0x29(%rbp)
jmp 0x1c134
movq %r13, %rdi
leaq 0x79f9(%rip), %rsi      # 0x23c08
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0xc8(%rbp), %rsi
callq 0x3060
leaq -0xc8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x1c25e
movq %r13, %rdi
leaq 0x7509(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
movq -0xc8(%rbp), %rbx
movq -0xc0(%rbp), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x1c287
movsbl (%rbx,%r15), %edi
callq 0x32c0
movb %al, (%rbx,%r15)
incq %r15
jmp 0x1c26f
cmpb $0x6e, -0x29(%rbp)
je 0x1c205
movq %r13, %rdi
leaq 0x7988(%rip), %rsi      # 0x23c23
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x88(%rbp), %rsi
callq 0x3060
movq -0x88(%rbp), %rbx
movq -0x80(%rbp), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x1c2dd
movsbl (%rbx,%r15), %edi
callq 0x33a0
movb %al, (%rbx,%r15)
incq %r15
jmp 0x1c2c5
leaq -0x88(%rbp), %rdi
leaq 0x7952(%rip), %rsi      # 0x23c3d
callq 0xb86b
testb %al, %al
je 0x1c7dd
leaq -0x88(%rbp), %rdi
leaq 0x7939(%rip), %rsi      # 0x23c3f
callq 0xb86b
testb %al, %al
je 0x1c7dd
movb $0x6e, -0x29(%rbp)
movq %r13, %rdi
leaq 0x7920(%rip), %rsi      # 0x23c41
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1c291
jmp 0x1c7ed
movq %r13, %rdi
leaq 0x7ed8(%rip), %rsi      # 0x24227
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x34(%rbp), %rsi
callq 0x3150
movq -0x48(%rbp), %rdi
leaq -0x34(%rbp), %rsi
callq 0x1e5f8
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0xd8(%rbp), %rax
je 0x1d242
movq %r13, %rdi
leaq 0x7ea9(%rip), %rsi      # 0x2423d
callq 0x31f0
movq %rax, %rdi
callq 0x3110
leaq -0x248(%rbp), %rdi
leaq 0x71ff(%rip), %rsi      # 0x235ae
callq 0x33b0
movq %r13, %rdi
leaq 0x7385(%rip), %rsi      # 0x23743
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
callq 0x3380
movq %r12, %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3060
leaq -0xa8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x1c415
movq %r13, %rdi
leaq 0x7352(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
movq -0xa8(%rbp), %rbx
movq -0xa0(%rbp), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x1c43e
movsbl (%rbx,%r15), %edi
callq 0x32c0
movb %al, (%rbx,%r15)
incq %r15
jmp 0x1c426
cmpb $0x6e, -0x29(%rbp)
je 0x1c3b4
movq -0xd0(%rbp), %r15
movq %r13, %rdi
leaq 0x76bd(%rip), %rsi      # 0x23b16
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x228(%rbp), %rsi
callq 0x3060
leaq -0x228(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21bd2
testb %al, %al
jne 0x1c4a8
movq %r13, %rdi
leaq 0x769e(%rip), %rsi      # 0x23b31
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1c44f
movq %r13, %rdi
leaq 0x76af(%rip), %rsi      # 0x23b67
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x208(%rbp), %rsi
callq 0x3060
leaq -0x208(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x22195
testb %al, %al
jne 0x1c507
movq %r13, %rdi
leaq 0x7260(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1c4ae
jmp 0x1c532
movq %r13, %rdi
callq 0x3110
movq %r13, %rdi
leaq 0x7676(%rip), %rsi      # 0x23b97
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movb $0x6e, -0x29(%rbp)
movq %r13, %rdi
leaq 0x763c(%rip), %rsi      # 0x23b78
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x128(%rbp), %rsi
callq 0x3060
leaq -0x128(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x1c58b
movq %r13, %rdi
leaq 0x71dc(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x548(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x3290
movq %r15, %rdi
leaq -0x548(%rbp), %r14
movq %r14, %rsi
callq 0x20e46
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
je 0x1c50f
cmpb $0x6e, -0x29(%rbp)
je 0x1c532
movq %r13, %rdi
leaq 0x75e4(%rip), %rsi      # 0x23bba
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x108(%rbp), %rsi
callq 0x3060
leaq -0x108(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x1c625
movq %r13, %rdi
leaq 0x7142(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x528(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x3290
xorl %edi, %edi
movq -0xe8(%rbp), %rsi
leaq -0x528(%rbp), %r14
movq %r14, %rdx
pushq $0x76
popq %rcx
callq 0x20eb7
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
je 0x1c66d
cmpb $0x6e, -0x29(%rbp)
je 0x1c5cc
jmp 0x1c69d
movq %r13, %rdi
callq 0x3110
movq %r13, %rdi
leaq 0x7557(%rip), %rsi      # 0x23bd6
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
movb $0x6e, -0x29(%rbp)
jmp 0x1c5cc
movq %r13, %rdi
leaq 0x7561(%rip), %rsi      # 0x23c08
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0xc8(%rbp), %rsi
callq 0x3060
leaq -0xc8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x1c6f6
movq %r13, %rdi
leaq 0x7071(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
movq -0xc8(%rbp), %rbx
movq -0xc0(%rbp), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x1c71f
movsbl (%rbx,%r15), %edi
callq 0x32c0
movb %al, (%rbx,%r15)
incq %r15
jmp 0x1c707
cmpb $0x6e, -0x29(%rbp)
je 0x1c69d
movq %r13, %rdi
leaq 0x74f0(%rip), %rsi      # 0x23c23
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x88(%rbp), %rsi
callq 0x3060
movq -0x88(%rbp), %rbx
movq -0x80(%rbp), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x1c775
movsbl (%rbx,%r15), %edi
callq 0x33a0
movb %al, (%rbx,%r15)
incq %r15
jmp 0x1c75d
leaq -0x88(%rbp), %rdi
leaq 0x74ba(%rip), %rsi      # 0x23c3d
callq 0xb86b
testb %al, %al
je 0x1ccf1
leaq -0x88(%rbp), %rdi
leaq 0x74a1(%rip), %rsi      # 0x23c3f
callq 0xb86b
testb %al, %al
je 0x1ccf1
movb $0x6e, -0x29(%rbp)
movq %r13, %rdi
leaq 0x7488(%rip), %rsi      # 0x23c41
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1c729
jmp 0x1cd01
movq -0x88(%rbp), %rax
movb (%rax), %al
movb %al, -0x2a(%rbp)
movb $0x73, -0x29(%rbp)
movq %r13, %rdi
leaq 0x746c(%rip), %rsi      # 0x23c63
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x188(%rbp), %rsi
callq 0x3060
leaq -0x5c8(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x3290
leaq -0x5c8(%rbp), %r14
movq %r14, %rdi
leaq -0x29(%rbp), %rsi
callq 0x22273
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
je 0x1c85c
leaq -0x188(%rbp), %rdi
xorl %esi, %esi
callq 0x11e17
movsd %xmm0, -0x68(%rbp)
jmp 0x1c87b
movq %r13, %rdi
leaq 0x741a(%rip), %rsi      # 0x23c80
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1c7ed
movq %r13, %rdi
leaq 0x7892(%rip), %rsi      # 0x24121
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x168(%rbp), %rsi
callq 0x3060
leaq -0x5a8(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x3290
leaq -0x5a8(%rbp), %r14
movq %r14, %rdi
leaq -0x29(%rbp), %rsi
callq 0x22273
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
jne 0x1c8fe
movq %r13, %rdi
leaq 0x7397(%rip), %rsi      # 0x23c80
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x168(%rbp), %rdi
xorl %esi, %esi
callq 0x11e17
movsd %xmm0, -0x60(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x1c885
movq %r13, %rdi
leaq 0x7817(%rip), %rsi      # 0x2413c
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x148(%rbp), %rsi
callq 0x3060
leaq -0x588(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x3290
leaq -0x588(%rbp), %r14
movq %r14, %rdi
leaq -0x29(%rbp), %rsi
callq 0x22273
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
jne 0x1c994
movq %r13, %rdi
leaq 0x7301(%rip), %rsi      # 0x23c80
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x148(%rbp), %rdi
xorl %esi, %esi
callq 0x11e17
movsd %xmm0, -0x58(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x1c91b
movq %r13, %rdi
leaq 0x73b6(%rip), %rsi      # 0x23d71
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x3060
leaq -0x1c8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x2238b
testb %al, %al
jne 0x1ca0a
movq %r13, %rdi
leaq 0x758d(%rip), %rsi      # 0x23f82
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1c9b1
movq %r13, %rdi
leaq 0x73ad(%rip), %rsi      # 0x23dc7
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x3060
leaq -0x1a8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x22480
testb %al, %al
jne 0x1ca69
movq %r13, %rdi
leaq 0x738b(%rip), %rsi      # 0x23ddf
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1ca10
movq %r13, %rdi
leaq 0x738b(%rip), %rsi      # 0x23e04
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x3060
leaq -0x1e8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x2238b
testb %al, %al
jne 0x1cac8
movq %r13, %rdi
leaq 0x72de(%rip), %rsi      # 0x23d91
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1ca6f
movl -0x34(%rbp), %r15d
leaq -0x488(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x3290
leaq -0x468(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3290
leaq -0x448(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x3290
leaq -0x428(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x3290
leaq -0x408(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x3290
leaq -0x3e8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x3290
leaq -0x3c8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x3290
leaq -0x3a8(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x3290
leaq -0x388(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x3290
leaq -0x568(%rbp), %r14
movq %r14, %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x3290
subq $0x8, %rsp
movsbl -0x2a(%rbp), %r9d
leaq -0xba0(%rbp), %rbx
movq %rbx, %rdi
movl %r15d, %esi
leaq -0x488(%rbp), %rdx
leaq -0x468(%rbp), %rcx
leaq -0x448(%rbp), %r8
movsd -0x68(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd -0x58(%rbp), %xmm2
pushq %r14
leaq -0x388(%rbp), %rax
pushq %rax
leaq -0x3a8(%rbp), %rax
pushq %rax
leaq -0x3c8(%rbp), %rax
pushq %rax
leaq -0x3e8(%rbp), %rax
pushq %rax
leaq -0x408(%rbp), %rax
pushq %rax
leaq -0x428(%rbp), %rax
pushq %rax
callq 0x6660
addq $0x40, %rsp
movq -0x40(%rbp), %rdi
addq $0x28, %rdi
movq %rbx, %rsi
callq 0x1e110
movq %rbx, %rdi
callq 0x68fe
leaq -0x568(%rbp), %rdi
callq 0x3100
leaq -0x388(%rbp), %rdi
callq 0x3100
leaq -0x3a8(%rbp), %rdi
callq 0x3100
leaq -0x3c8(%rbp), %rdi
callq 0x3100
leaq -0x3e8(%rbp), %rdi
callq 0x3100
leaq -0x408(%rbp), %rdi
callq 0x3100
leaq -0x428(%rbp), %rdi
callq 0x3100
leaq -0x448(%rbp), %rdi
callq 0x3100
leaq -0x468(%rbp), %rdi
callq 0x3100
leaq -0x488(%rbp), %rdi
callq 0x3100
movb $0x73, -0x29(%rbp)
leaq -0xa28(%rbp), %rdi
leaq 0x74a9(%rip), %rsi      # 0x24153
pushq $0x10
popq %rdx
callq 0x3040
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rbx
cmpq -0xe0(%rbp), %rbx
je 0x1cce0
leaq 0x28(%rbx), %rsi
leaq -0xa28(%rbp), %rdi
callq 0xa1fb
movq %rbx, %rdi
callq 0x3160
movq %rax, %rbx
jmp 0x1ccba
leaq -0xa28(%rbp), %rdi
callq 0x32a0
jmp 0x1d21a
movq -0x88(%rbp), %rax
movb (%rax), %al
movb %al, -0x2a(%rbp)
movb $0x73, -0x29(%rbp)
movq %r13, %rdi
leaq 0x6f58(%rip), %rsi      # 0x23c63
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x188(%rbp), %rsi
callq 0x3060
leaq -0x508(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x3290
leaq -0x508(%rbp), %r14
movq %r14, %rdi
leaq -0x29(%rbp), %rsi
callq 0x22273
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
jne 0x1cd7a
movq %r13, %rdi
leaq 0x6f1b(%rip), %rsi      # 0x23c80
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x188(%rbp), %rdi
xorl %esi, %esi
callq 0x11e17
movsd %xmm0, -0x68(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x1cd01
movq %r13, %rdi
leaq 0x7380(%rip), %rsi      # 0x24121
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x168(%rbp), %rsi
callq 0x3060
leaq -0x4e8(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x3290
leaq -0x4e8(%rbp), %r14
movq %r14, %rdi
leaq -0x29(%rbp), %rsi
callq 0x22273
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
jne 0x1ce10
movq %r13, %rdi
leaq 0x6e85(%rip), %rsi      # 0x23c80
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x168(%rbp), %rdi
xorl %esi, %esi
callq 0x11e17
movsd %xmm0, -0x60(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x1cd97
movq %r13, %rdi
leaq 0x7305(%rip), %rsi      # 0x2413c
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x148(%rbp), %rsi
callq 0x3060
leaq -0x4c8(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x3290
leaq -0x4c8(%rbp), %r14
movq %r14, %rdi
leaq -0x29(%rbp), %rsi
callq 0x22273
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
jne 0x1cea6
movq %r13, %rdi
leaq 0x6def(%rip), %rsi      # 0x23c80
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x148(%rbp), %rdi
xorl %esi, %esi
callq 0x11e17
movsd %xmm0, -0x58(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x1ce2d
movq %r13, %rdi
leaq 0x6ea4(%rip), %rsi      # 0x23d71
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x3060
leaq -0x1c8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x2238b
testb %al, %al
jne 0x1cf1c
movq %r13, %rdi
leaq 0x707b(%rip), %rsi      # 0x23f82
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1cec3
movq %r13, %rdi
leaq 0x6f27(%rip), %rsi      # 0x23e53
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x3060
leaq -0x1a8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x22480
testb %al, %al
jne 0x1cf7b
movq %r13, %rdi
leaq 0x6e79(%rip), %rsi      # 0x23ddf
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1cf22
movq %r13, %rdi
leaq 0x6e79(%rip), %rsi      # 0x23e04
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x3060
leaq -0x1e8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x2238b
testb %al, %al
jne 0x1cfda
movq %r13, %rdi
leaq 0x6dcc(%rip), %rsi      # 0x23d91
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1cf81
movl -0x34(%rbp), %r15d
leaq -0x368(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x3290
leaq -0x348(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3290
leaq -0x328(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x3290
leaq -0x308(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x3290
leaq -0x2e8(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x3290
leaq -0x2c8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x3290
leaq -0x2a8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x3290
leaq -0x288(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x3290
leaq -0x268(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x3290
leaq -0x4a8(%rbp), %rbx
movq %rbx, %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x3290
subq $0x8, %rsp
movsbl -0x2a(%rbp), %r9d
leaq -0xba0(%rbp), %r14
movq %r14, %rdi
movl %r15d, %esi
leaq -0x368(%rbp), %rdx
leaq -0x348(%rbp), %rcx
leaq -0x328(%rbp), %r8
movsd -0x68(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd -0x58(%rbp), %xmm2
pushq %rbx
leaq -0x268(%rbp), %rax
pushq %rax
leaq -0x288(%rbp), %rax
pushq %rax
leaq -0x2a8(%rbp), %rax
pushq %rax
leaq -0x2c8(%rbp), %rax
pushq %rax
leaq -0x2e8(%rbp), %rax
pushq %rax
leaq -0x308(%rbp), %rax
pushq %rax
callq 0x6918
addq $0x40, %rsp
movq -0x40(%rbp), %rdi
addq $0x28, %rdi
movq %r14, %rsi
callq 0x1e13a
movq %r14, %rdi
callq 0x6ba6
leaq -0x4a8(%rbp), %rdi
callq 0x3100
leaq -0x268(%rbp), %rdi
callq 0x3100
leaq -0x288(%rbp), %rdi
callq 0x3100
leaq -0x2a8(%rbp), %rdi
callq 0x3100
leaq -0x2c8(%rbp), %rdi
callq 0x3100
leaq -0x2e8(%rbp), %rdi
callq 0x3100
leaq -0x308(%rbp), %rdi
callq 0x3100
leaq -0x328(%rbp), %rdi
callq 0x3100
leaq -0x348(%rbp), %rdi
callq 0x3100
leaq -0x368(%rbp), %rdi
callq 0x3100
movb $0x73, -0x29(%rbp)
leaq -0x828(%rbp), %rdi
leaq 0x6fa5(%rip), %rsi      # 0x24160
pushq $0x10
popq %rdx
callq 0x3040
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rbx
cmpq -0xd8(%rbp), %rbx
je 0x1d1f1
leaq 0x28(%rbx), %rsi
leaq -0x828(%rbp), %rdi
callq 0xa5df
movq %rbx, %rdi
callq 0x3160
movq %rax, %rbx
jmp 0x1d1cb
leaq -0x828(%rbp), %rdi
callq 0x32a0
jmp 0x1d25d
movq %r13, %rdi
leaq 0x703f(%rip), %rsi      # 0x24248
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movb $0x6e, -0x29(%rbp)
movq %r13, %rdi
leaq 0x703e(%rip), %rsi      # 0x24262
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x2b(%rbp), %rsi
callq 0x3280
jmp 0x1be9e
movq %r13, %rdi
leaq 0x6ffc(%rip), %rsi      # 0x24248
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movb $0x6e, -0x29(%rbp)
movq %r13, %rdi
leaq 0x6ffa(%rip), %rsi      # 0x24261
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x2b(%rbp), %rsi
callq 0x3280
jmp 0x1be9e
leaq -0x828(%rbp), %rdi
callq 0x32e0
leaq -0xa28(%rbp), %rdi
callq 0x32e0
leaq -0x148(%rbp), %rdi
callq 0x3100
leaq -0x168(%rbp), %rdi
callq 0x3100
leaq -0x188(%rbp), %rdi
callq 0x3100
leaq -0x88(%rbp), %rdi
callq 0x3100
leaq -0x628(%rbp), %rdi
callq 0x3100
leaq -0xa8(%rbp), %rdi
callq 0x3100
leaq -0x1a8(%rbp), %rdi
callq 0x3100
leaq -0x1c8(%rbp), %rdi
callq 0x3100
leaq -0x1e8(%rbp), %rdi
callq 0x3100
leaq -0xc8(%rbp), %rdi
callq 0x3100
leaq -0x108(%rbp), %rdi
callq 0x3100
leaq -0x128(%rbp), %rdi
callq 0x3100
leaq -0x208(%rbp), %rdi
callq 0x3100
leaq -0x228(%rbp), %rdi
callq 0x3100
leaq -0x248(%rbp), %rdi
callq 0x3100
addq $0xb78, %rsp            # imm = 0xB78
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0xba0(%rbp), %rdi
callq 0x6ba6
jmp 0x1d377
movq %rax, %rbx
leaq -0x4a8(%rbp), %rdi
callq 0x3100
jmp 0x1d388
movq %rax, %rbx
leaq -0x268(%rbp), %rdi
callq 0x3100
jmp 0x1d399
movq %rax, %rbx
leaq -0x288(%rbp), %rdi
callq 0x3100
jmp 0x1d3aa
movq %rax, %rbx
leaq -0x2a8(%rbp), %rdi
callq 0x3100
leaq -0x2c8(%rbp), %rdi
callq 0x3100
leaq -0x2e8(%rbp), %rdi
callq 0x3100
leaq -0x308(%rbp), %rdi
callq 0x3100
leaq -0x328(%rbp), %rdi
callq 0x3100
leaq -0x348(%rbp), %rdi
callq 0x3100
leaq -0x368(%rbp), %rdi
jmp 0x1d57e
movq %rax, %rbx
jmp 0x1d3b6
movq %rax, %rbx
jmp 0x1d3c2
movq %rax, %rbx
jmp 0x1d3ce
movq %rax, %rbx
jmp 0x1d3da
movq %rax, %rbx
jmp 0x1d3e6
movq %rax, %rbx
jmp 0x1d3f2
jmp 0x1d5b9
movq %rax, %rbx
leaq -0xba0(%rbp), %rdi
callq 0x68fe
jmp 0x1d435
movq %rax, %rbx
leaq -0x568(%rbp), %rdi
callq 0x3100
jmp 0x1d446
movq %rax, %rbx
leaq -0x388(%rbp), %rdi
callq 0x3100
jmp 0x1d457
movq %rax, %rbx
leaq -0x3a8(%rbp), %rdi
callq 0x3100
jmp 0x1d468
movq %rax, %rbx
leaq -0x3c8(%rbp), %rdi
callq 0x3100
leaq -0x3e8(%rbp), %rdi
callq 0x3100
leaq -0x408(%rbp), %rdi
callq 0x3100
leaq -0x428(%rbp), %rdi
callq 0x3100
leaq -0x448(%rbp), %rdi
callq 0x3100
leaq -0x468(%rbp), %rdi
callq 0x3100
leaq -0x488(%rbp), %rdi
jmp 0x1d57e
movq %rax, %rbx
jmp 0x1d474
movq %rax, %rbx
jmp 0x1d480
movq %rax, %rbx
jmp 0x1d48c
movq %rax, %rbx
jmp 0x1d498
movq %rax, %rbx
jmp 0x1d4a4
movq %rax, %rbx
jmp 0x1d4b0
jmp 0x1d5b9
movq %rax, %rbx
jmp 0x1d5c8
movq %rax, %rbx
jmp 0x1d5d4
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
movq %rax, %rbx
leaq -0x4c8(%rbp), %rdi
jmp 0x1d57e
movq %rax, %rbx
leaq -0x588(%rbp), %rdi
jmp 0x1d57e
movq %rax, %rbx
leaq -0x5a8(%rbp), %rdi
jmp 0x1d57e
movq %rax, %rbx
leaq -0x4e8(%rbp), %rdi
jmp 0x1d57e
movq %rax, %rbx
leaq -0x508(%rbp), %rdi
jmp 0x1d57e
movq %rax, %rbx
leaq -0x5c8(%rbp), %rdi
jmp 0x1d57e
movq %rax, %rbx
leaq -0x5e8(%rbp), %rdi
jmp 0x1d57e
movq %rax, %rbx
leaq -0x528(%rbp), %rdi
jmp 0x1d57e
movq %rax, %rbx
leaq -0x548(%rbp), %rdi
jmp 0x1d57e
movq %rax, %rbx
leaq -0x608(%rbp), %rdi
callq 0x3100
jmp 0x1d5bc
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
jmp 0x1d5b9
movq %rax, %rbx
leaq -0x828(%rbp), %rdi
callq 0x32e0
leaq -0xa28(%rbp), %rdi
callq 0x32e0
leaq -0x148(%rbp), %rdi
callq 0x3100
leaq -0x168(%rbp), %rdi
callq 0x3100
leaq -0x188(%rbp), %rdi
callq 0x3100
leaq -0x88(%rbp), %rdi
callq 0x3100
leaq -0x628(%rbp), %rdi
callq 0x3100
leaq -0xa8(%rbp), %rdi
callq 0x3100
leaq -0x1a8(%rbp), %rdi
callq 0x3100
leaq -0x1c8(%rbp), %rdi
callq 0x3100
leaq -0x1e8(%rbp), %rdi
callq 0x3100
leaq -0xc8(%rbp), %rdi
callq 0x3100
leaq -0x108(%rbp), %rdi
callq 0x3100
leaq -0x128(%rbp), %rdi
callq 0x3100
leaq -0x208(%rbp), %rdi
callq 0x3100
leaq -0x228(%rbp), %rdi
callq 0x3100
leaq -0x248(%rbp), %rdi
callq 0x3100
movq %rbx, %rdi
callq 0x3370