// File: /workspace/github_cpp_makefile_star2_O2/nataly-enne[P]pet-fera/pet_fera_editar.cpp
// Function: editar(std::map<int, MAMIFERO_NATIVO, std::less<int>, std::allocator<std::pair<int const, MAMIFERO_NATIVO>>>&, std::map<int, MAMIFERO_EXOTICO, std::less<int>, std::allocator<std::pair<int const, MAMIFERO_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, MAMIFERO_NATIVO> &mamiferos_nat, map <int, MAMIFERO_EXOTICO> &mamiferos_ex, map <int, VETERINARIO> vets, map <int, TRATADOR> tratadores){
	char resp, op, sucesso, sexo, tipo_animal, tipo = 'm';;
	int id_buscado;
	string classe, nome_cientifico, dieta, veterinario, tratador, nome_batismo, autorizacao, autorizacao_IBAMA, origem, cor, nome, id_string, sexo_string, tamanho_string;
	double tamanho;
	bool check;
	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 = mamiferos_nat.find(id_buscado);
			
				if(result != mamiferos_nat.end()){
					cout << "ID existe!" << endl;

					classe = "Mammalia";

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

					do{
						cout << "Digite a cor do pelo: " << endl;
						getline(cin, cor);
						if(!verifica_cor(cor, sucesso)){
							cout << "ERRO: a cor do animal deve conter letras, espaço ou '-'" << 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 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 = MAMIFERO_NATIVO(id_buscado, classe, nome, nome_cientifico, sexo, tamanho, dieta, veterinario, tratador, nome_batismo, cor, autorizacao_IBAMA, origem, autorizacao);
					sucesso = 's';
				}
				else{
					cout << "Animal não cadastrado!!" << endl;
					sucesso = 'n';
				}
				if(sucesso == 's'){
					nativos.open("mamiferos_nat.txt");
					for(auto it = mamiferos_nat.begin(); it != mamiferos_nat.end(); it++){
						nativos << (*it).second;
					}
					nativos.close();
				}

				cout << "Deseja editar outro? s/n" << endl;
				cin >> op;
			}
			else{
				cout << "Insira o ID buscado: " << endl;
				cin >> id_buscado;

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

					classe = "Mammallia";

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

					do{
						cout << "Digite a cor do pelo: " << endl;
						getline(cin, cor);
						if(!verifica_cor(cor, sucesso)){
							cout << "ERRO: a cor do animal deve conter letras, espaço ou '-'" << 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 ou '-'" << endl << endl;
						}
					}while(sucesso == 'n');

					//Verifica se foi passado uma string.
					do{
						cout << "Digiteo 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 = MAMIFERO_EXOTICO(id_buscado, classe, nome, nome_cientifico, sexo, tamanho, dieta, veterinario, tratador, nome_batismo, cor, autorizacao_IBAMA, origem, autorizacao);
					sucesso = 's';
				}
				else{
					cout << "Animal não cadastrado!!" << endl;
					sucesso = 'n';
				}
				if(sucesso == 's'){
					exoticos.open("mamiferos_ex.txt");
					for(auto it = mamiferos_ex.begin(); it != mamiferos_ex.end(); it++){
						exoticos << (*it).second;
					}
					exoticos.close();
				}
				cout << "Deseja editar outro? s/n" << endl;
				cin >> op;
			}
		} // Primeiro else.
	}while(op == 's');
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb18, %rsp            # imm = 0xB18
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, -0x50(%rbp)
movq %rdi, -0x48(%rbp)
leaq -0x208(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
xorl %eax, %eax
movb %al, (%rcx)
leaq -0x1e8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq -0x1c8(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0x108(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq -0xe8(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0xa8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq -0x1a8(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0x188(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq -0x168(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0x148(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq -0x88(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0x5a8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq -0x68(%rbp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq -0x128(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x9b8(%rbp), %rdi
callq 0x3350
leaq -0x7b8(%rbp), %rdi
callq 0x3350
movq -0x50(%rbp), %rax
addq $0x8, %rax
movq %rax, -0xd0(%rbp)
movq -0x48(%rbp), %rax
addq $0x8, %rax
movq %rax, -0xc8(%rbp)
movq 0x183c2(%rip), %r13     # 0x30fc8
movq 0x183d3(%rip), %r12     # 0x30fe0
movq %rbx, -0xd8(%rbp)
movq %r14, -0xc0(%rbp)
movq %r13, %rdi
leaq 0xb5d2(%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 0x19137
cmpl $0x6e, %eax
je 0x18cab
movq %r13, %rdi
leaq 0xb577(%rip), %rsi      # 0x241d1
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r13, %rdi
callq 0x3110
movq %r13, %rdi
leaq 0xa95f(%rip), %rsi      # 0x235d8
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x2d(%rbp), %rsi
callq 0x3280
cmpb $0x73, -0x2d(%rbp)
je 0x19efb
cmpb $0x73, -0x2b(%rbp)
je 0x18c1b
jmp 0x19efb
movq %r13, %rdi
leaq 0xb572(%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 0x1e440
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0xc8(%rbp), %rax
je 0x19e75
movq %r13, %rdi
leaq 0xb543(%rip), %rsi      # 0x2423d
callq 0x31f0
movq %rax, %rdi
callq 0x3110
leaq -0x218(%rbp), %rdi
leaq 0xb214(%rip), %rsi      # 0x23f29
callq 0x33b0
movq %r13, %rdi
leaq 0xaa1f(%rip), %rsi      # 0x23743
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
callq 0x3380
movq %r12, %rdi
leaq -0x98(%rbp), %rsi
callq 0x3060
leaq -0x98(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x18d7b
movq %r13, %rdi
leaq 0xa9ec(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
movq -0x98(%rbp), %rbx
movq -0x90(%rbp), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x18da4
movsbl (%rbx,%r15), %edi
callq 0x32c0
movb %al, (%rbx,%r15)
incq %r15
jmp 0x18d8c
cmpb $0x6e, -0x29(%rbp)
je 0x18d1a
movq -0xc0(%rbp), %r15
movq %r13, %rdi
leaq 0xad57(%rip), %rsi      # 0x23b16
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x3060
leaq -0x1f8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21bd2
testb %al, %al
jne 0x18e0e
movq %r13, %rdi
leaq 0xad38(%rip), %rsi      # 0x23b31
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x18db5
movq %r13, %rdi
leaq 0xad49(%rip), %rsi      # 0x23b67
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x3060
leaq -0x1d8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x22195
testb %al, %al
jne 0x18e6d
movq %r13, %rdi
leaq 0xa8fa(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x18e14
jmp 0x18e98
movq %r13, %rdi
callq 0x3110
movq %r13, %rdi
leaq 0xad10(%rip), %rsi      # 0x23b97
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movb $0x6e, -0x29(%rbp)
movq %r13, %rdi
leaq 0xacd6(%rip), %rsi      # 0x23b78
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x118(%rbp), %rsi
callq 0x3060
leaq -0x118(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x18ef1
movq %r13, %rdi
leaq 0xa876(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x598(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x3290
movq %r15, %rdi
leaq -0x598(%rbp), %r14
movq %r14, %rsi
callq 0x20e46
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
je 0x18e75
cmpb $0x6e, -0x29(%rbp)
je 0x18e98
movq %r13, %rdi
leaq 0xac7e(%rip), %rsi      # 0x23bba
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0xf8(%rbp), %rsi
callq 0x3060
leaq -0xf8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x18f8b
movq %r13, %rdi
leaq 0xa7dc(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x578(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x3290
xorl %edi, %edi
movq -0xd8(%rbp), %rsi
leaq -0x578(%rbp), %r14
movq %r14, %rdx
pushq $0x6d
popq %rcx
callq 0x20eb7
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
je 0x18fd3
cmpb $0x6e, -0x29(%rbp)
je 0x18f32
jmp 0x19003
movq %r13, %rdi
callq 0x3110
movq %r13, %rdi
leaq 0xabf1(%rip), %rsi      # 0x23bd6
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
movb $0x6e, -0x29(%rbp)
jmp 0x18f32
movq %r13, %rdi
leaq 0xabfb(%rip), %rsi      # 0x23c08
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3060
leaq -0xb8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x1905c
movq %r13, %rdi
leaq 0xa70b(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
movq -0xb8(%rbp), %rbx
movq -0xb0(%rbp), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x19085
movsbl (%rbx,%r15), %edi
callq 0x32c0
movb %al, (%rbx,%r15)
incq %r15
jmp 0x1906d
cmpb $0x6e, -0x29(%rbp)
je 0x19003
movq %r13, %rdi
leaq 0xab8a(%rip), %rsi      # 0x23c23
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x78(%rbp), %rsi
callq 0x3060
movq -0x78(%rbp), %rbx
movq -0x70(%rbp), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x190d5
movsbl (%rbx,%r15), %edi
callq 0x33a0
movb %al, (%rbx,%r15)
incq %r15
jmp 0x190bd
leaq -0x78(%rbp), %rdi
leaq 0xab5d(%rip), %rsi      # 0x23c3d
callq 0xb86b
testb %al, %al
je 0x195c3
leaq -0x78(%rbp), %rdi
leaq 0xab47(%rip), %rsi      # 0x23c3f
callq 0xb86b
testb %al, %al
je 0x195c3
movb $0x6e, -0x29(%rbp)
movq %r13, %rdi
leaq 0xab2e(%rip), %rsi      # 0x23c41
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1908f
jmp 0x195d0
movq %r13, %rdi
leaq 0xb0e6(%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 0x1e498
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0xd0(%rbp), %rax
je 0x19eb8
movq %r13, %rdi
leaq 0xb0b7(%rip), %rsi      # 0x2423d
callq 0x31f0
movq %rax, %rdi
callq 0x3110
leaq -0x218(%rbp), %rdi
leaq 0xb0da(%rip), %rsi      # 0x2427b
callq 0x33b0
movq %r13, %rdi
leaq 0xa593(%rip), %rsi      # 0x23743
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
callq 0x3380
movq %r12, %rdi
leaq -0x98(%rbp), %rsi
callq 0x3060
leaq -0x98(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x19207
movq %r13, %rdi
leaq 0xa560(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
movq -0x98(%rbp), %rbx
movq -0x90(%rbp), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x19230
movsbl (%rbx,%r15), %edi
callq 0x32c0
movb %al, (%rbx,%r15)
incq %r15
jmp 0x19218
cmpb $0x6e, -0x29(%rbp)
je 0x191a6
movq -0xc0(%rbp), %r15
movq %r13, %rdi
leaq 0xa8cb(%rip), %rsi      # 0x23b16
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x3060
leaq -0x1f8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21bd2
testb %al, %al
jne 0x1929a
movq %r13, %rdi
leaq 0xa8ac(%rip), %rsi      # 0x23b31
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x19241
movq %r13, %rdi
leaq 0xa8bd(%rip), %rsi      # 0x23b67
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x3060
leaq -0x1d8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x22195
testb %al, %al
jne 0x192f9
movq %r13, %rdi
leaq 0xa46e(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x192a0
jmp 0x19324
movq %r13, %rdi
callq 0x3110
movq %r13, %rdi
leaq 0xa884(%rip), %rsi      # 0x23b97
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movb $0x6e, -0x29(%rbp)
movq %r13, %rdi
leaq 0xa84a(%rip), %rsi      # 0x23b78
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x118(%rbp), %rsi
callq 0x3060
leaq -0x118(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x1937d
movq %r13, %rdi
leaq 0xa3ea(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x518(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x3290
movq %r15, %rdi
leaq -0x518(%rbp), %r14
movq %r14, %rsi
callq 0x20e46
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
je 0x19301
cmpb $0x6e, -0x29(%rbp)
je 0x19324
movq %r13, %rdi
leaq 0xa7f2(%rip), %rsi      # 0x23bba
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0xf8(%rbp), %rsi
callq 0x3060
leaq -0xf8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x19417
movq %r13, %rdi
leaq 0xa350(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x4f8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x3290
xorl %edi, %edi
movq -0xd8(%rbp), %rsi
leaq -0x4f8(%rbp), %r14
movq %r14, %rdx
pushq $0x6d
popq %rcx
callq 0x20eb7
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
je 0x1945f
cmpb $0x6e, -0x29(%rbp)
je 0x193be
jmp 0x1948f
movq %r13, %rdi
callq 0x3110
movq %r13, %rdi
leaq 0xa765(%rip), %rsi      # 0x23bd6
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
movb $0x6e, -0x29(%rbp)
jmp 0x193be
movq %r13, %rdi
leaq 0xa76f(%rip), %rsi      # 0x23c08
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3060
leaq -0xb8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x21b16
testb %al, %al
jne 0x194e8
movq %r13, %rdi
leaq 0xa27f(%rip), %rsi      # 0x23752
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
movq -0xb8(%rbp), %rbx
movq -0xb0(%rbp), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x19511
movsbl (%rbx,%r15), %edi
callq 0x32c0
movb %al, (%rbx,%r15)
incq %r15
jmp 0x194f9
cmpb $0x6e, -0x29(%rbp)
je 0x1948f
movq %r13, %rdi
leaq 0xa6fe(%rip), %rsi      # 0x23c23
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x78(%rbp), %rsi
callq 0x3060
movq -0x78(%rbp), %rbx
movq -0x70(%rbp), %r14
xorl %r15d, %r15d
cmpq %r15, %r14
je 0x19561
movsbl (%rbx,%r15), %edi
callq 0x33a0
movb %al, (%rbx,%r15)
incq %r15
jmp 0x19549
leaq -0x78(%rbp), %rdi
leaq 0xa6d1(%rip), %rsi      # 0x23c3d
callq 0xb86b
testb %al, %al
je 0x19a1e
leaq -0x78(%rbp), %rdi
leaq 0xa6bb(%rip), %rsi      # 0x23c3f
callq 0xb86b
testb %al, %al
je 0x19a1e
movb $0x6e, -0x29(%rbp)
movq %r13, %rdi
leaq 0xa6a2(%rip), %rsi      # 0x23c41
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x1951b
jmp 0x19a2b
movq -0x78(%rbp), %rax
movb (%rax), %al
movb %al, -0x2a(%rbp)
movb $0x73, -0x29(%rbp)
movq %r13, %rdi
leaq 0xa689(%rip), %rsi      # 0x23c63
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x138(%rbp), %rsi
callq 0x3060
leaq -0x558(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x3290
leaq -0x558(%rbp), %r14
movq %r14, %rdi
leaq -0x29(%rbp), %rsi
callq 0x22273
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
jne 0x19649
movq %r13, %rdi
leaq 0xa64c(%rip), %rsi      # 0x23c80
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x138(%rbp), %rdi
xorl %esi, %esi
callq 0x11e17
movsd %xmm0, -0x58(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x195d0
movq %r13, %rdi
leaq 0xa8c2(%rip), %rsi      # 0x23f32
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x158(%rbp), %rsi
callq 0x3060
leaq -0x158(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x22556
testb %al, %al
jne 0x196bf
movq %r13, %rdi
leaq 0xa89f(%rip), %rsi      # 0x23f49
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x19666
movq %r13, %rdi
leaq 0xa6a2(%rip), %rsi      # 0x23d71
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x198(%rbp), %rsi
callq 0x3060
leaq -0x198(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x2238b
testb %al, %al
jne 0x1971e
movq %r13, %rdi
leaq 0xa879(%rip), %rsi      # 0x23f82
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x196c5
movq %r13, %rdi
leaq 0xa699(%rip), %rsi      # 0x23dc7
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x178(%rbp), %rsi
callq 0x3060
leaq -0x178(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x22480
testb %al, %al
jne 0x1977d
movq %r13, %rdi
leaq 0xa677(%rip), %rsi      # 0x23ddf
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x19724
movq %r13, %rdi
leaq 0xa677(%rip), %rsi      # 0x23e04
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x3060
leaq -0x1b8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x2238b
testb %al, %al
jne 0x197dc
movq %r13, %rdi
leaq 0xa5ca(%rip), %rsi      # 0x23d91
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x19783
movl -0x34(%rbp), %r15d
leaq -0x498(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x3290
leaq -0x478(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x3290
leaq -0x458(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x3290
leaq -0x438(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x3290
leaq -0x418(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x3290
leaq -0x3f8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x3290
leaq -0x3d8(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3290
leaq -0x3b8(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3290
leaq -0x398(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x3290
leaq -0x378(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x3290
leaq -0x538(%rbp), %r14
movq %r14, %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x3290
movsbl -0x2a(%rbp), %r9d
leaq -0xb40(%rbp), %rbx
movq %rbx, %rdi
movl %r15d, %esi
leaq -0x498(%rbp), %rdx
leaq -0x478(%rbp), %rcx
leaq -0x458(%rbp), %r8
movsd -0x58(%rbp), %xmm0
pushq %r14
leaq -0x378(%rbp), %rax
pushq %rax
leaq -0x398(%rbp), %rax
pushq %rax
leaq -0x3b8(%rbp), %rax
pushq %rax
leaq -0x3d8(%rbp), %rax
pushq %rax
leaq -0x3f8(%rbp), %rax
pushq %rax
leaq -0x418(%rbp), %rax
pushq %rax
leaq -0x438(%rbp), %rax
pushq %rax
callq 0x5a46
addq $0x40, %rsp
movq -0x40(%rbp), %rdi
addq $0x28, %rdi
movq %rbx, %rsi
callq 0x1e058
movq %rbx, %rdi
callq 0x5d30
leaq -0x538(%rbp), %rdi
callq 0x3100
leaq -0x378(%rbp), %rdi
callq 0x3100
leaq -0x398(%rbp), %rdi
callq 0x3100
leaq -0x3b8(%rbp), %rdi
callq 0x3100
leaq -0x3d8(%rbp), %rdi
callq 0x3100
leaq -0x3f8(%rbp), %rdi
callq 0x3100
leaq -0x418(%rbp), %rdi
callq 0x3100
leaq -0x438(%rbp), %rdi
callq 0x3100
leaq -0x458(%rbp), %rdi
callq 0x3100
leaq -0x478(%rbp), %rdi
callq 0x3100
leaq -0x498(%rbp), %rdi
callq 0x3100
movb $0x73, -0x29(%rbp)
leaq -0x9b8(%rbp), %rdi
leaq 0xa5e2(%rip), %rsi      # 0x23fb9
pushq $0x10
popq %rdx
callq 0x3040
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rbx
cmpq -0xc8(%rbp), %rbx
je 0x19a0d
leaq 0x28(%rbx), %rsi
leaq -0x9b8(%rbp), %rdi
callq 0x82d3
movq %rbx, %rdi
callq 0x3160
movq %rax, %rbx
jmp 0x199e7
leaq -0x9b8(%rbp), %rdi
callq 0x32a0
jmp 0x19e90
movq -0x78(%rbp), %rax
movb (%rax), %al
movb %al, -0x2a(%rbp)
movb $0x73, -0x29(%rbp)
movq %r13, %rdi
leaq 0xa22e(%rip), %rsi      # 0x23c63
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x138(%rbp), %rsi
callq 0x3060
leaq -0x4d8(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x3290
leaq -0x4d8(%rbp), %r14
movq %r14, %rdi
leaq -0x29(%rbp), %rsi
callq 0x22273
movl %eax, %ebx
movq %r14, %rdi
callq 0x3100
testb %bl, %bl
jne 0x19aa4
movq %r13, %rdi
leaq 0xa1f1(%rip), %rsi      # 0x23c80
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
leaq -0x138(%rbp), %rdi
xorl %esi, %esi
callq 0x11e17
movsd %xmm0, -0x58(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x19a2b
movq %r13, %rdi
leaq 0xa467(%rip), %rsi      # 0x23f32
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x158(%rbp), %rsi
callq 0x3060
leaq -0x158(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x22556
testb %al, %al
jne 0x19b1a
movq %r13, %rdi
leaq 0xa444(%rip), %rsi      # 0x23f49
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x19ac1
movq %r13, %rdi
leaq 0xa247(%rip), %rsi      # 0x23d71
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x198(%rbp), %rsi
callq 0x3060
leaq -0x198(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x2238b
testb %al, %al
jne 0x19b79
movq %r13, %rdi
leaq 0xa41e(%rip), %rsi      # 0x23f82
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x19b20
movq %r13, %rdi
leaq 0xa6fc(%rip), %rsi      # 0x24285
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x178(%rbp), %rsi
callq 0x3060
leaq -0x178(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x22480
testb %al, %al
jne 0x19bd8
movq %r13, %rdi
leaq 0xa21c(%rip), %rsi      # 0x23ddf
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x19b7f
movq %r13, %rdi
leaq 0xa21c(%rip), %rsi      # 0x23e04
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x3060
leaq -0x1b8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x2238b
testb %al, %al
jne 0x19c37
movq %r13, %rdi
leaq 0xa16f(%rip), %rsi      # 0x23d91
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %rax, %rdi
callq 0x3110
cmpb $0x6e, -0x29(%rbp)
je 0x19bde
movl -0x34(%rbp), %r15d
leaq -0x358(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x3290
leaq -0x338(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x3290
leaq -0x318(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x3290
leaq -0x2f8(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x3290
leaq -0x2d8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x3290
leaq -0x2b8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x3290
leaq -0x298(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3290
leaq -0x278(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3290
leaq -0x258(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x3290
leaq -0x238(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x3290
leaq -0x4b8(%rbp), %rbx
movq %rbx, %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x3290
movsbl -0x2a(%rbp), %r9d
leaq -0xb40(%rbp), %r14
movq %r14, %rdi
movl %r15d, %esi
leaq -0x358(%rbp), %rdx
leaq -0x338(%rbp), %rcx
leaq -0x318(%rbp), %r8
movsd -0x58(%rbp), %xmm0
pushq %rbx
leaq -0x238(%rbp), %rax
pushq %rax
leaq -0x258(%rbp), %rax
pushq %rax
leaq -0x278(%rbp), %rax
pushq %rax
leaq -0x298(%rbp), %rax
pushq %rax
leaq -0x2b8(%rbp), %rax
pushq %rax
leaq -0x2d8(%rbp), %rax
pushq %rax
leaq -0x2f8(%rbp), %rax
pushq %rax
callq 0x5d68
addq $0x40, %rsp
movq -0x40(%rbp), %rdi
addq $0x28, %rdi
movq %r14, %rsi
callq 0x1e086
movq %r14, %rdi
callq 0x601a
leaq -0x4b8(%rbp), %rdi
callq 0x3100
leaq -0x238(%rbp), %rdi
callq 0x3100
leaq -0x258(%rbp), %rdi
callq 0x3100
leaq -0x278(%rbp), %rdi
callq 0x3100
leaq -0x298(%rbp), %rdi
callq 0x3100
leaq -0x2b8(%rbp), %rdi
callq 0x3100
leaq -0x2d8(%rbp), %rdi
callq 0x3100
leaq -0x2f8(%rbp), %rdi
callq 0x3100
leaq -0x318(%rbp), %rdi
callq 0x3100
leaq -0x338(%rbp), %rdi
callq 0x3100
leaq -0x358(%rbp), %rdi
callq 0x3100
movb $0x73, -0x29(%rbp)
leaq -0x7b8(%rbp), %rdi
leaq 0xa19a(%rip), %rsi      # 0x23fcb
pushq $0x10
popq %rdx
callq 0x3040
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rbx
cmpq -0xd0(%rbp), %rbx
je 0x19e67
leaq 0x28(%rbx), %rsi
leaq -0x7b8(%rbp), %rdi
callq 0x86cd
movq %rbx, %rdi
callq 0x3160
movq %rax, %rbx
jmp 0x19e41
leaq -0x7b8(%rbp), %rdi
callq 0x32a0
jmp 0x19ed3
movq %r13, %rdi
leaq 0xa3c9(%rip), %rsi      # 0x24248
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movb $0x6e, -0x29(%rbp)
movq %r13, %rdi
leaq 0xa3c8(%rip), %rsi      # 0x24262
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x2b(%rbp), %rsi
callq 0x3280
jmp 0x18c9c
movq %r13, %rdi
leaq 0xa386(%rip), %rsi      # 0x24248
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movb $0x6e, -0x29(%rbp)
movq %r13, %rdi
leaq 0xa385(%rip), %rsi      # 0x24262
callq 0x31f0
movq %rax, %rdi
callq 0x3110
movq %r12, %rdi
leaq -0x2b(%rbp), %rsi
callq 0x3280
jmp 0x18c9c
leaq -0x7b8(%rbp), %rdi
callq 0x32e0
leaq -0x9b8(%rbp), %rdi
callq 0x32e0
leaq -0x138(%rbp), %rdi
callq 0x3100
leaq -0x78(%rbp), %rdi
callq 0x3100
leaq -0x5b8(%rbp), %rdi
callq 0x3100
leaq -0x98(%rbp), %rdi
callq 0x3100
leaq -0x158(%rbp), %rdi
callq 0x3100
leaq -0x178(%rbp), %rdi
callq 0x3100
leaq -0x198(%rbp), %rdi
callq 0x3100
leaq -0x1b8(%rbp), %rdi
callq 0x3100
leaq -0xb8(%rbp), %rdi
callq 0x3100
leaq -0xf8(%rbp), %rdi
callq 0x3100
leaq -0x118(%rbp), %rdi
callq 0x3100
leaq -0x1d8(%rbp), %rdi
callq 0x3100
leaq -0x1f8(%rbp), %rdi
callq 0x3100
leaq -0x218(%rbp), %rdi
callq 0x3100
addq $0xb18, %rsp            # imm = 0xB18
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0xb40(%rbp), %rdi
callq 0x601a
jmp 0x19fde
movq %rax, %rbx
leaq -0x4b8(%rbp), %rdi
callq 0x3100
jmp 0x19fef
movq %rax, %rbx
leaq -0x238(%rbp), %rdi
callq 0x3100
jmp 0x1a000
movq %rax, %rbx
leaq -0x258(%rbp), %rdi
callq 0x3100
jmp 0x1a011
movq %rax, %rbx
leaq -0x278(%rbp), %rdi
callq 0x3100
leaq -0x298(%rbp), %rdi
callq 0x3100
leaq -0x2b8(%rbp), %rdi
callq 0x3100
leaq -0x2d8(%rbp), %rdi
callq 0x3100
leaq -0x2f8(%rbp), %rdi
callq 0x3100
leaq -0x318(%rbp), %rdi
callq 0x3100
leaq -0x338(%rbp), %rdi
callq 0x3100
leaq -0x358(%rbp), %rdi
jmp 0x1a1d1
movq %rax, %rbx
jmp 0x1a01d
movq %rax, %rbx
jmp 0x1a029
movq %rax, %rbx
jmp 0x1a035
movq %rax, %rbx
jmp 0x1a041
movq %rax, %rbx
jmp 0x1a04d
movq %rax, %rbx
jmp 0x1a059
movq %rax, %rbx
jmp 0x1a065
jmp 0x1a208
movq %rax, %rbx
leaq -0xb40(%rbp), %rdi
callq 0x5d30
jmp 0x1a0ad
movq %rax, %rbx
leaq -0x538(%rbp), %rdi
callq 0x3100
jmp 0x1a0be
movq %rax, %rbx
leaq -0x378(%rbp), %rdi
callq 0x3100
jmp 0x1a0cf
movq %rax, %rbx
leaq -0x398(%rbp), %rdi
callq 0x3100
jmp 0x1a0e0
movq %rax, %rbx
leaq -0x3b8(%rbp), %rdi
callq 0x3100
leaq -0x3d8(%rbp), %rdi
callq 0x3100
leaq -0x3f8(%rbp), %rdi
callq 0x3100
leaq -0x418(%rbp), %rdi
callq 0x3100
leaq -0x438(%rbp), %rdi
callq 0x3100
leaq -0x458(%rbp), %rdi
callq 0x3100
leaq -0x478(%rbp), %rdi
callq 0x3100
leaq -0x498(%rbp), %rdi
jmp 0x1a1d1
movq %rax, %rbx
jmp 0x1a0ec
movq %rax, %rbx
jmp 0x1a0f8
movq %rax, %rbx
jmp 0x1a104
movq %rax, %rbx
jmp 0x1a110
movq %rax, %rbx
jmp 0x1a11c
movq %rax, %rbx
jmp 0x1a128
movq %rax, %rbx
jmp 0x1a134
jmp 0x1a208
movq %rax, %rbx
jmp 0x1a217
movq %rax, %rbx
jmp 0x1a223
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
movq %rax, %rbx
leaq -0x558(%rbp), %rdi
jmp 0x1a1d1
movq %rax, %rbx
leaq -0x4d8(%rbp), %rdi
jmp 0x1a1d1
movq %rax, %rbx
leaq -0x578(%rbp), %rdi
jmp 0x1a1d1
movq %rax, %rbx
leaq -0x4f8(%rbp), %rdi
jmp 0x1a1d1
movq %rax, %rbx
leaq -0x518(%rbp), %rdi
jmp 0x1a1d1
movq %rax, %rbx
leaq -0x598(%rbp), %rdi
callq 0x3100
jmp 0x1a20b
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
jmp 0x1a208
movq %rax, %rbx
leaq -0x7b8(%rbp), %rdi
callq 0x32e0
leaq -0x9b8(%rbp), %rdi
callq 0x32e0
leaq -0x138(%rbp), %rdi
callq 0x3100
leaq -0x78(%rbp), %rdi
callq 0x3100
leaq -0x5b8(%rbp), %rdi
callq 0x3100
leaq -0x98(%rbp), %rdi
callq 0x3100
leaq -0x158(%rbp), %rdi
callq 0x3100
leaq -0x178(%rbp), %rdi
callq 0x3100
leaq -0x198(%rbp), %rdi
callq 0x3100
leaq -0x1b8(%rbp), %rdi
callq 0x3100
leaq -0xb8(%rbp), %rdi
callq 0x3100
leaq -0xf8(%rbp), %rdi
callq 0x3100
leaq -0x118(%rbp), %rdi
callq 0x3100
leaq -0x1d8(%rbp), %rdi
callq 0x3100
leaq -0x1f8(%rbp), %rdi
callq 0x3100
leaq -0x218(%rbp), %rdi
callq 0x3100
movq %rbx, %rdi
callq 0x3370