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

					classe = "Reptilia";

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


					do{
						cout << "Digite 0 - não venenoso / 1 - venenoso: " << endl;
						cin >> venenoso_string;
						if(!verifica_venenoso(venenoso_string,sucesso)){
							cout << "ERRO: Digite apenas 0 para não venenoso OU 1 para venenoso!" << endl << endl;
						}
						else{
							stringstream ss(venenoso_string);
							ss >> venenoso;
							sucesso = 's';
							if(venenoso){
								cout << "Digite o tipo do veneno: " << endl;
								cin.ignore();
								getline(cin, tipo_veneno); 
							}
						}
					}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(venenoso, 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');

					
					
					// 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 = REPTIL_NATIVO(id_buscado, classe, nome, nome_cientifico, sexo, tamanho, dieta, veterinario, tratador, nome_batismo, venenoso, tipo_veneno, autorizacao_IBAMA, origem, autorizacao);
					sucesso = 's';
				}
				else{
					cout << "Animal não cadastrado!!" << endl;
					sucesso = 'n';
				}
				if(sucesso == 's'){
					nativos.open("repteis_nat.txt");
					for(auto it = repteis_nat.begin(); it != repteis_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 = repteis_ex.find(id_buscado);
			
				if(result != repteis_ex.end()){
					cout << "ID existe!" << endl;

					classe = "Reptillia";

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


					do{
						cout << "Digite 0 - não venenoso / 1 - venenoso: " << endl;
						cin >> venenoso_string;
						if(!verifica_venenoso(venenoso_string,sucesso)){
							cout << "ERRO: Digite apenas 0 para não venenoso OU 1 para venenoso!" << endl << endl;
						}
						else{
							stringstream ss(venenoso_string);
							ss >> venenoso;
							sucesso = 's';
							if(venenoso){
								cout << "Digite o tipo do veneno: " << endl;
								cin.ignore();
								getline(cin, tipo_veneno); 
							}
						}
					}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(venenoso, 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');

					
					
					// 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 = REPTIL_EXOTICO(id_buscado, classe, nome, nome_cientifico, sexo, tamanho, dieta, veterinario, tratador, nome_batismo, venenoso, tipo_veneno, autorizacao_IBAMA, origem, autorizacao);
					sucesso = 's';
				}
				else{
					cout << "Animal não cadastrado!!" << endl;
					sucesso = 'n';
				}
				if(sucesso == 's'){
					exoticos.open("repteis_ex.txt");
					for(auto it = repteis_ex.begin(); it != repteis_ex.end(); it++){
						exoticos << (*it).second;
					}
					exoticos.close();
				}
				cout << "\nDeseja editar outro? s/n" << endl;
				cin >> op;
			}
		} // Primeiro else.
	}while(op == 's');
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1620, %rsp           # imm = 0x1620
movq %rdx, -0x1140(%rbp)
movq %rcx, -0x1138(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movb $0x72, -0x26(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3300
leaq -0x80(%rbp), %rdi
callq 0x3300
leaq -0xa0(%rbp), %rdi
callq 0x3300
leaq -0xc0(%rbp), %rdi
callq 0x3300
leaq -0xe0(%rbp), %rdi
callq 0x3300
leaq -0x100(%rbp), %rdi
callq 0x3300
leaq -0x120(%rbp), %rdi
callq 0x3300
leaq -0x140(%rbp), %rdi
callq 0x3300
leaq -0x160(%rbp), %rdi
callq 0x3300
leaq -0x180(%rbp), %rdi
callq 0x3300
leaq -0x1a0(%rbp), %rdi
callq 0x3300
leaq -0x1c0(%rbp), %rdi
callq 0x3300
leaq -0x1e0(%rbp), %rdi
callq 0x3300
leaq -0x200(%rbp), %rdi
callq 0x3300
leaq -0x220(%rbp), %rdi
callq 0x3300
leaq -0x420(%rbp), %rdi
callq 0x33b0
jmp 0x30db9
leaq -0x630(%rbp), %rdi
callq 0x33b0
jmp 0x30dc7
jmp 0x30dc9
movq 0x201e8(%rip), %rdi     # 0x50fb8
leaq 0x11420(%rip), %rsi     # 0x421f7
callq 0x3240
movq %rax, -0x1148(%rbp)
jmp 0x30de5
movq -0x1148(%rbp), %rdi
movq 0x201ad(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x30dfa
movq 0x201d7(%rip), %rdi     # 0x50fd8
leaq -0x25(%rbp), %rsi
callq 0x32e0
jmp 0x30e0c
movsbl -0x25(%rbp), %eax
cmpl $0x6e, %eax
je 0x30f07
movsbl -0x25(%rbp), %eax
cmpl $0x65, %eax
je 0x30f07
movq 0x2018b(%rip), %rdi     # 0x50fb8
leaq 0x1139d(%rip), %rsi     # 0x421d1
callq 0x3240
movq %rax, -0x1150(%rbp)
jmp 0x30e42
movq -0x1150(%rbp), %rdi
movq 0x20150(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x30e57
movq 0x2015a(%rip), %rdi     # 0x50fb8
movq 0x2013b(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x30e6c
movq 0x20145(%rip), %rdi     # 0x50fb8
leaq 0x1075e(%rip), %rsi     # 0x415d8
callq 0x3240
movq %rax, -0x1158(%rbp)
jmp 0x30e88
movq -0x1158(%rbp), %rdi
movq 0x2010a(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x30e9d
movq 0x20134(%rip), %rdi     # 0x50fd8
leaq -0x21(%rbp), %rsi
callq 0x32e0
jmp 0x30eaf
movsbl -0x21(%rbp), %eax
cmpl $0x73, %eax
jne 0x30f02
jmp 0x3383e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x33925
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x33919
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x3390d
jmp 0x3382f
movsbl -0x25(%rbp), %eax
cmpl $0x6e, %eax
jne 0x323a2
movq 0x2009d(%rip), %rdi     # 0x50fb8
leaq 0x11305(%rip), %rsi     # 0x42227
callq 0x3240
movq %rax, -0x1160(%rbp)
jmp 0x30f30
movq -0x1160(%rbp), %rdi
movq 0x20062(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x30f45
movq 0x2008c(%rip), %rdi     # 0x50fd8
leaq -0x2c(%rbp), %rsi
callq 0x3170
jmp 0x30f57
movq -0x8(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
callq 0x37790
movq %rax, -0x1168(%rbp)
jmp 0x30f6d
movq -0x1168(%rbp), %rax
movq %rax, -0x638(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14110
movq %rax, -0x640(%rbp)
leaq -0x638(%rbp), %rdi
leaq -0x640(%rbp), %rsi
callq 0x140e0
testb $0x1, %al
jne 0x30fa7
jmp 0x3227b
movq 0x2000a(%rip), %rdi     # 0x50fb8
leaq 0x11288(%rip), %rsi     # 0x4223d
callq 0x3240
movq %rax, -0x1170(%rbp)
jmp 0x30fc3
movq -0x1170(%rbp), %rdi
movq 0x1ffcf(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x30fd8
leaq 0x1104e(%rip), %rsi     # 0x4202d
leaq -0x60(%rbp), %rdi
callq 0x32f0
jmp 0x30fea
jmp 0x30fec
movq 0x1ffc5(%rip), %rdi     # 0x50fb8
leaq 0x10749(%rip), %rsi     # 0x41743
callq 0x3240
movq %rax, -0x1178(%rbp)
jmp 0x31008
movq -0x1178(%rbp), %rdi
movq 0x1ff8a(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3101d
movq 0x1ffb4(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x3102b
movq 0x1ffa6(%rip), %rdi     # 0x50fd8
leaq -0x1a0(%rbp), %rsi
callq 0x3070
jmp 0x31040
leaq -0x1a0(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x3f480
movb %al, -0x1179(%rbp)
jmp 0x31058
movb -0x1179(%rbp), %al
testb $0x1, %al
jne 0x310b3
jmp 0x31064
movq 0x1ff4d(%rip), %rdi     # 0x50fb8
leaq 0x106e0(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x1188(%rbp)
jmp 0x31080
movq -0x1188(%rbp), %rdi
movq 0x1ff12(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1190(%rbp)
jmp 0x3109c
movq -0x1190(%rbp), %rdi
movq 0x1fef6(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x310b1
jmp 0x310b3
leaq -0x1a0(%rbp), %rdi
movq %rdi, -0x11a0(%rbp)
callq 0x31e0
movq -0x11a0(%rbp), %rdi
movq %rax, -0x648(%rbp)
callq 0x3120
movq -0x11a0(%rbp), %rdi
movq %rax, -0x650(%rbp)
callq 0x31e0
movq %rax, -0x658(%rbp)
movq -0x648(%rbp), %rdi
movq -0x650(%rbp), %rsi
movq -0x658(%rbp), %rdx
movq 0x1feb9(%rip), %rcx     # 0x50fc8
callq 0x1f5a0
movq %rax, -0x1198(%rbp)
jmp 0x3111d
movq -0x1198(%rbp), %rax
movq %rax, -0x660(%rbp)
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x30fec
jmp 0x3113a
movq 0x1fe77(%rip), %rdi     # 0x50fb8
leaq 0x109ce(%rip), %rsi     # 0x41b16
callq 0x3240
movq %rax, -0x11a8(%rbp)
jmp 0x31156
movq -0x11a8(%rbp), %rdi
movq 0x1fe3c(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3116b
movq 0x1fe66(%rip), %rdi     # 0x50fd8
leaq -0x80(%rbp), %rsi
callq 0x3070
jmp 0x3117d
leaq -0x80(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x3f5c0
movb %al, -0x11a9(%rbp)
jmp 0x31192
movb -0x11a9(%rbp), %al
testb $0x1, %al
jne 0x311ed
jmp 0x3119e
movq 0x1fe13(%rip), %rdi     # 0x50fb8
leaq 0x10985(%rip), %rsi     # 0x41b31
callq 0x3240
movq %rax, -0x11b8(%rbp)
jmp 0x311ba
movq -0x11b8(%rbp), %rdi
movq 0x1fdd8(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x11c0(%rbp)
jmp 0x311d6
movq -0x11c0(%rbp), %rdi
movq 0x1fdbc(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x311eb
jmp 0x311ed
jmp 0x311ef
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x3113a
jmp 0x311fe
movq 0x1fdb3(%rip), %rdi     # 0x50fb8
leaq 0x1095b(%rip), %rsi     # 0x41b67
callq 0x3240
movq %rax, -0x11c8(%rbp)
jmp 0x3121a
movq -0x11c8(%rbp), %rdi
movq 0x1fd78(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3122f
movq 0x1fda2(%rip), %rdi     # 0x50fd8
leaq -0xa0(%rbp), %rsi
callq 0x3070
jmp 0x31244
leaq -0xa0(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x40170
movb %al, -0x11c9(%rbp)
jmp 0x3125c
movb -0x11c9(%rbp), %al
testb $0x1, %al
jne 0x312b7
jmp 0x31268
movq 0x1fd49(%rip), %rdi     # 0x50fb8
leaq 0x104dc(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x11d8(%rbp)
jmp 0x31284
movq -0x11d8(%rbp), %rdi
movq 0x1fd0e(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x11e0(%rbp)
jmp 0x312a0
movq -0x11e0(%rbp), %rdi
movq 0x1fcf2(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x312b5
jmp 0x312b7
jmp 0x312b9
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x311fe
jmp 0x312c8
movq 0x1fce9(%rip), %rdi     # 0x50fb8
leaq 0x10d60(%rip), %rsi     # 0x42036
callq 0x3240
movq %rax, -0x11e8(%rbp)
jmp 0x312e4
movq -0x11e8(%rbp), %rdi
movq 0x1fcae(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x312f9
movq 0x1fcd8(%rip), %rdi     # 0x50fd8
leaq -0x220(%rbp), %rsi
callq 0x32c0
jmp 0x3130e
leaq -0x680(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x3100
jmp 0x31323
leaq -0x680(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x40a30
movb %al, -0x11e9(%rbp)
jmp 0x3133b
movb -0x11e9(%rbp), %al
xorb $-0x1, %al
movb %al, -0x11ea(%rbp)
leaq -0x680(%rbp), %rdi
callq 0x3180
movb -0x11ea(%rbp), %al
testb $0x1, %al
jne 0x31361
jmp 0x313d6
movq 0x1fc50(%rip), %rdi     # 0x50fb8
leaq 0x10cf1(%rip), %rsi     # 0x42060
callq 0x3240
movq %rax, -0x11f8(%rbp)
jmp 0x3137d
movq -0x11f8(%rbp), %rdi
movq 0x1fc15(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1200(%rbp)
jmp 0x31399
movq -0x1200(%rbp), %rdi
movq 0x1fbf9(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x313ae
jmp 0x314a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0x680(%rbp), %rdi
callq 0x3180
jmp 0x3390d
movl $0x10, %edi
movl $0x8, %esi
callq 0x13c90
movl %eax, -0x1204(%rbp)
jmp 0x313ed
movl -0x1204(%rbp), %edx
leaq -0x808(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x3370
jmp 0x31408
leaq -0x808(%rbp), %rdi
leaq -0x39(%rbp), %rsi
callq 0x31f0
jmp 0x3141a
movb $0x73, -0x23(%rbp)
testb $0x1, -0x39(%rbp)
je 0x3149d
movq 0x1fb8d(%rip), %rdi     # 0x50fb8
leaq 0x10c6b(%rip), %rsi     # 0x4209d
callq 0x3240
movq %rax, -0x1210(%rbp)
jmp 0x31440
movq -0x1210(%rbp), %rdi
movq 0x1fb52(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31455
movq 0x1fb7c(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x31463
movq 0x1fb6e(%rip), %rdi     # 0x50fd8
leaq -0x180(%rbp), %rsi
callq 0x3070
jmp 0x31478
jmp 0x3149d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0x808(%rbp), %rdi
callq 0x31b0
jmp 0x3390d
leaq -0x808(%rbp), %rdi
callq 0x31b0
jmp 0x314ab
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x312c8
jmp 0x314ba
movq 0x1faf7(%rip), %rdi     # 0x50fb8
leaq 0x106b0(%rip), %rsi     # 0x41b78
callq 0x3240
movq %rax, -0x1218(%rbp)
jmp 0x314d6
movq -0x1218(%rbp), %rdi
movq 0x1fabc(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x314eb
movq 0x1fae6(%rip), %rdi     # 0x50fd8
leaq -0xc0(%rbp), %rsi
callq 0x3070
jmp 0x31500
leaq -0xc0(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x3f480
movb %al, -0x1219(%rbp)
jmp 0x31518
movb -0x1219(%rbp), %al
testb $0x1, %al
jne 0x31573
jmp 0x31524
movq 0x1fa8d(%rip), %rdi     # 0x50fb8
leaq 0x10220(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x1228(%rbp)
jmp 0x31540
movq -0x1228(%rbp), %rdi
movq 0x1fa52(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1230(%rbp)
jmp 0x3155c
movq -0x1230(%rbp), %rdi
movq 0x1fa36(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31571
jmp 0x31573
leaq -0x828(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x3100
jmp 0x31588
movq -0x1140(%rbp), %rdi
leaq -0x828(%rbp), %rsi
callq 0x3d7a0
movb %al, -0x1231(%rbp)
jmp 0x315a3
movb -0x1231(%rbp), %al
andb $0x1, %al
movb %al, -0x3a(%rbp)
leaq -0x828(%rbp), %rdi
callq 0x3180
testb $0x1, -0x3a(%rbp)
jne 0x3162f
movq 0x1f9f1(%rip), %rdi     # 0x50fb8
movq 0x1f9d2(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x315d5
movq 0x1f9dc(%rip), %rdi     # 0x50fb8
leaq 0x105b4(%rip), %rsi     # 0x41b97
callq 0x3240
movq %rax, -0x1240(%rbp)
jmp 0x315f1
movq -0x1240(%rbp), %rdi
movq 0x1f9a1(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31606
movb $0x6e, -0x23(%rbp)
jmp 0x3162f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0x828(%rbp), %rdi
callq 0x3180
jmp 0x3390d
jmp 0x31631
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x314ba
jmp 0x31640
movq 0x1f971(%rip), %rdi     # 0x50fb8
leaq 0x1056c(%rip), %rsi     # 0x41bba
callq 0x3240
movq %rax, -0x1248(%rbp)
jmp 0x3165c
movq -0x1248(%rbp), %rdi
movq 0x1f936(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31671
movq 0x1f960(%rip), %rdi     # 0x50fd8
leaq -0xe0(%rbp), %rsi
callq 0x3070
jmp 0x31686
leaq -0xe0(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x3f480
movb %al, -0x1249(%rbp)
jmp 0x3169e
movb -0x1249(%rbp), %al
testb $0x1, %al
jne 0x316f9
jmp 0x316aa
movq 0x1f907(%rip), %rdi     # 0x50fb8
leaq 0x1009a(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x1258(%rbp)
jmp 0x316c6
movq -0x1258(%rbp), %rdi
movq 0x1f8cc(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1260(%rbp)
jmp 0x316e2
movq -0x1260(%rbp), %rdi
movq 0x1f8b0(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x316f7
jmp 0x316f9
movb -0x39(%rbp), %al
movb %al, -0x1261(%rbp)
leaq -0x848(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x3100
jmp 0x31717
movq -0x1138(%rbp), %rsi
movb -0x1261(%rbp), %al
movsbl -0x26(%rbp), %ecx
movzbl %al, %edi
andl $0x1, %edi
leaq -0x848(%rbp), %rdx
callq 0x3d850
movb %al, -0x1262(%rbp)
jmp 0x31742
movb -0x1262(%rbp), %al
andb $0x1, %al
movb %al, -0x3a(%rbp)
leaq -0x848(%rbp), %rdi
callq 0x3180
testb $0x1, -0x3a(%rbp)
jne 0x317ee
movq 0x1f84e(%rip), %rdi     # 0x50fb8
movq 0x1f82f(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31778
movq 0x1f839(%rip), %rdi     # 0x50fb8
leaq 0x10450(%rip), %rsi     # 0x41bd6
callq 0x3240
movq %rax, -0x1270(%rbp)
jmp 0x31794
movq -0x1270(%rbp), %rdi
movq 0x1f7fe(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1278(%rbp)
jmp 0x317b0
movq -0x1278(%rbp), %rdi
movq 0x1f7e2(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x317c5
movb $0x6e, -0x23(%rbp)
jmp 0x317ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0x848(%rbp), %rdi
callq 0x3180
jmp 0x3390d
jmp 0x317f0
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x31640
jmp 0x317ff
movq 0x1f7b2(%rip), %rdi     # 0x50fb8
leaq 0x103fb(%rip), %rsi     # 0x41c08
callq 0x3240
movq %rax, -0x1280(%rbp)
jmp 0x3181b
movq -0x1280(%rbp), %rdi
movq 0x1f777(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31830
movq 0x1f7a1(%rip), %rdi     # 0x50fd8
leaq -0x100(%rbp), %rsi
callq 0x3070
jmp 0x31845
leaq -0x100(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x3f480
movb %al, -0x1281(%rbp)
jmp 0x3185d
movb -0x1281(%rbp), %al
testb $0x1, %al
jne 0x318b8
jmp 0x31869
movq 0x1f748(%rip), %rdi     # 0x50fb8
leaq 0xfedb(%rip), %rsi      # 0x41752
callq 0x3240
movq %rax, -0x1290(%rbp)
jmp 0x31885
movq -0x1290(%rbp), %rdi
movq 0x1f70d(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1298(%rbp)
jmp 0x318a1
movq -0x1298(%rbp), %rdi
movq 0x1f6f1(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x318b6
jmp 0x318b8
leaq -0x100(%rbp), %rdi
movq %rdi, -0x12a8(%rbp)
callq 0x31e0
movq -0x12a8(%rbp), %rdi
movq %rax, -0x850(%rbp)
callq 0x3120
movq -0x12a8(%rbp), %rdi
movq %rax, -0x858(%rbp)
callq 0x31e0
movq %rax, -0x860(%rbp)
movq -0x850(%rbp), %rdi
movq -0x858(%rbp), %rsi
movq -0x860(%rbp), %rdx
movq 0x1f6b4(%rip), %rcx     # 0x50fc8
callq 0x1f5a0
movq %rax, -0x12a0(%rbp)
jmp 0x31922
movq -0x12a0(%rbp), %rax
movq %rax, -0x868(%rbp)
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x317ff
jmp 0x3193f
movq 0x1f672(%rip), %rdi     # 0x50fb8
leaq 0x102d6(%rip), %rsi     # 0x41c23
callq 0x3240
movq %rax, -0x12b0(%rbp)
jmp 0x3195b
movq -0x12b0(%rbp), %rdi
movq 0x1f637(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31970
movq 0x1f661(%rip), %rdi     # 0x50fd8
leaq -0x1e0(%rbp), %rsi
callq 0x3070
jmp 0x31985
leaq -0x1e0(%rbp), %rdi
movq %rdi, -0x12c0(%rbp)
callq 0x31e0
movq -0x12c0(%rbp), %rdi
movq %rax, -0x870(%rbp)
callq 0x3120
movq -0x12c0(%rbp), %rdi
movq %rax, -0x878(%rbp)
callq 0x31e0
movq %rax, -0x880(%rbp)
movq -0x870(%rbp), %rdi
movq -0x878(%rbp), %rsi
movq -0x880(%rbp), %rdx
movq 0x1f5ff(%rip), %rcx     # 0x50fe0
callq 0x1f5a0
movq %rax, -0x12b8(%rbp)
jmp 0x319ef
movq -0x12b8(%rbp), %rax
movq %rax, -0x888(%rbp)
leaq 0x10239(%rip), %rsi     # 0x41c3d
leaq -0x1e0(%rbp), %rdi
callq 0x13c60
movb %al, -0x12c1(%rbp)
jmp 0x31a18
movb -0x12c1(%rbp), %al
testb $0x1, %al
jne 0x31a24
jmp 0x31a9e
leaq 0x10214(%rip), %rsi     # 0x41c3f
leaq -0x1e0(%rbp), %rdi
callq 0x13c60
movb %al, -0x12c2(%rbp)
jmp 0x31a3f
movb -0x12c2(%rbp), %al
testb $0x1, %al
jne 0x31a4b
jmp 0x31a9e
movb $0x6e, -0x23(%rbp)
movq 0x1f562(%rip), %rdi     # 0x50fb8
leaq 0x101e4(%rip), %rsi     # 0x41c41
callq 0x3240
movq %rax, -0x12d0(%rbp)
jmp 0x31a6b
movq -0x12d0(%rbp), %rdi
movq 0x1f527(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x12d8(%rbp)
jmp 0x31a87
movq -0x12d8(%rbp), %rdi
movq 0x1f50b(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31a9c
jmp 0x31ac7
xorl %eax, %eax
movl %eax, %esi
leaq -0x1e0(%rbp), %rdi
callq 0x3430
movq %rax, -0x12e0(%rbp)
jmp 0x31ab7
movq -0x12e0(%rbp), %rax
movb (%rax), %al
movb %al, -0x24(%rbp)
movb $0x73, -0x23(%rbp)
jmp 0x31ac9
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x3193f
jmp 0x31ad8
movq 0x1f4d9(%rip), %rdi     # 0x50fb8
leaq 0x1017d(%rip), %rsi     # 0x41c63
callq 0x3240
movq %rax, -0x12e8(%rbp)
jmp 0x31af4
movq -0x12e8(%rbp), %rdi
movq 0x1f49e(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31b09
movq 0x1f4c8(%rip), %rdi     # 0x50fd8
leaq -0x200(%rbp), %rsi
callq 0x3070
jmp 0x31b1e
leaq -0x8a8(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x3100
jmp 0x31b33
leaq -0x8a8(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x40310
movb %al, -0x12e9(%rbp)
jmp 0x31b4b
movb -0x12e9(%rbp), %al
xorb $-0x1, %al
movb %al, -0x12ea(%rbp)
leaq -0x8a8(%rbp), %rdi
callq 0x3180
movb -0x12ea(%rbp), %al
testb $0x1, %al
jne 0x31b71
jmp 0x31be3
movq 0x1f440(%rip), %rdi     # 0x50fb8
leaq 0x10101(%rip), %rsi     # 0x41c80
callq 0x3240
movq %rax, -0x12f8(%rbp)
jmp 0x31b8d
movq -0x12f8(%rbp), %rdi
movq 0x1f405(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1300(%rbp)
jmp 0x31ba9
movq -0x1300(%rbp), %rdi
movq 0x1f3e9(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31bbe
jmp 0x31be3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0x8a8(%rbp), %rdi
callq 0x3180
jmp 0x3390d
xorl %eax, %eax
movl %eax, %esi
leaq -0x200(%rbp), %rdi
callq 0x1f9a0
movsd %xmm0, -0x1308(%rbp)
jmp 0x31bfd
movsd -0x1308(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x31ad8
jmp 0x31c19
movq 0x1f398(%rip), %rdi     # 0x50fb8
leaq 0x1014a(%rip), %rsi     # 0x41d71
callq 0x3240
movq %rax, -0x1310(%rbp)
jmp 0x31c35
movq -0x1310(%rbp), %rdi
movq 0x1f35d(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31c4a
movq 0x1f387(%rip), %rdi     # 0x50fd8
leaq -0x140(%rbp), %rsi
callq 0x3070
jmp 0x31c5f
leaq -0x140(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x40550
movb %al, -0x1311(%rbp)
jmp 0x31c77
movb -0x1311(%rbp), %al
testb $0x1, %al
jne 0x31cd2
jmp 0x31c83
movq 0x1f32e(%rip), %rdi     # 0x50fb8
leaq 0x102f1(%rip), %rsi     # 0x41f82
callq 0x3240
movq %rax, -0x1320(%rbp)
jmp 0x31c9f
movq -0x1320(%rbp), %rdi
movq 0x1f2f3(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1328(%rbp)
jmp 0x31cbb
movq -0x1328(%rbp), %rdi
movq 0x1f2d7(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31cd0
jmp 0x31cd2
jmp 0x31cd4
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x31c19
jmp 0x31ce3
movq 0x1f2ce(%rip), %rdi     # 0x50fb8
leaq 0x100d6(%rip), %rsi     # 0x41dc7
callq 0x3240
movq %rax, -0x1330(%rbp)
jmp 0x31cff
movq -0x1330(%rbp), %rdi
movq 0x1f293(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31d14
movq 0x1f2bd(%rip), %rdi     # 0x50fd8
leaq -0x160(%rbp), %rsi
callq 0x3070
jmp 0x31d29
leaq -0x160(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x40700
movb %al, -0x1331(%rbp)
jmp 0x31d41
movb -0x1331(%rbp), %al
testb $0x1, %al
jne 0x31d9c
jmp 0x31d4d
movq 0x1f264(%rip), %rdi     # 0x50fb8
leaq 0x10084(%rip), %rsi     # 0x41ddf
callq 0x3240
movq %rax, -0x1340(%rbp)
jmp 0x31d69
movq -0x1340(%rbp), %rdi
movq 0x1f229(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1348(%rbp)
jmp 0x31d85
movq -0x1348(%rbp), %rdi
movq 0x1f20d(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31d9a
jmp 0x31d9c
jmp 0x31d9e
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x31ce3
jmp 0x31dad
movq 0x1f204(%rip), %rdi     # 0x50fb8
leaq 0x10049(%rip), %rsi     # 0x41e04
callq 0x3240
movq %rax, -0x1350(%rbp)
jmp 0x31dc9
movq -0x1350(%rbp), %rdi
movq 0x1f1c9(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31dde
movq 0x1f1f3(%rip), %rdi     # 0x50fd8
leaq -0x120(%rbp), %rsi
callq 0x3070
jmp 0x31df3
leaq -0x120(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x40550
movb %al, -0x1351(%rbp)
jmp 0x31e0b
movb -0x1351(%rbp), %al
testb $0x1, %al
jne 0x31e66
jmp 0x31e17
movq 0x1f19a(%rip), %rdi     # 0x50fb8
leaq 0xff6c(%rip), %rsi      # 0x41d91
callq 0x3240
movq %rax, -0x1360(%rbp)
jmp 0x31e33
movq -0x1360(%rbp), %rdi
movq 0x1f15f(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1368(%rbp)
jmp 0x31e4f
movq -0x1368(%rbp), %rdi
movq 0x1f143(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x31e64
jmp 0x31e66
jmp 0x31e68
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x31dad
movl -0x2c(%rbp), %eax
movl %eax, -0x136c(%rbp)
leaq -0xa58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3100
jmp 0x31e90
leaq -0xa78(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x3100
jmp 0x31ea5
leaq -0xa98(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x3100
jmp 0x31eb7
movb -0x24(%rbp), %al
movb %al, -0x1379(%rbp)
movsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x1378(%rbp)
leaq -0xab8(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x3100
jmp 0x31ee2
leaq -0xad8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x3100
jmp 0x31ef7
leaq -0xaf8(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x3100
jmp 0x31f0c
leaq -0xb18(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3100
jmp 0x31f21
movb -0x39(%rbp), %al
movb %al, -0x137a(%rbp)
leaq -0xb38(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x3100
jmp 0x31f3f
leaq -0xb58(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x3100
jmp 0x31f54
leaq -0xb78(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x3100
jmp 0x31f69
leaq -0xb98(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x3100
jmp 0x31f7e
movsd -0x1378(%rbp), %xmm0
movl -0x136c(%rbp), %esi
movb -0x1379(%rbp), %al
movb -0x137a(%rbp), %dl
movq %rsp, %rcx
movq %rcx, -0x1388(%rbp)
leaq -0xb98(%rbp), %rdi
movq %rdi, 0x40(%rcx)
leaq -0xb78(%rbp), %rdi
movq %rdi, 0x38(%rcx)
leaq -0xb58(%rbp), %rdi
movq %rdi, 0x30(%rcx)
leaq -0xb38(%rbp), %rdi
movq %rdi, 0x28(%rcx)
movzbl %dl, %edx
andl $0x1, %edx
movl %edx, 0x20(%rcx)
leaq -0xb18(%rbp), %rdx
movq %rdx, 0x18(%rcx)
leaq -0xaf8(%rbp), %rdx
movq %rdx, 0x10(%rcx)
leaq -0xad8(%rbp), %rdx
movq %rdx, 0x8(%rcx)
leaq -0xab8(%rbp), %rdx
movq %rdx, (%rcx)
movsbl %al, %r9d
leaq -0xa38(%rbp), %rdi
leaq -0xa58(%rbp), %rdx
leaq -0xa78(%rbp), %rcx
leaq -0xa98(%rbp), %r8
callq 0xa520
jmp 0x32029
leaq -0x638(%rbp), %rdi
callq 0x1ff80
movq %rax, %rdi
addq $0x8, %rdi
leaq -0xa38(%rbp), %rsi
callq 0x377c0
jmp 0x3204a
leaq -0xa38(%rbp), %rdi
callq 0xaa60
leaq -0xb98(%rbp), %rdi
callq 0x3180
leaq -0xb78(%rbp), %rdi
callq 0x3180
leaq -0xb58(%rbp), %rdi
callq 0x3180
leaq -0xb38(%rbp), %rdi
callq 0x3180
leaq -0xb18(%rbp), %rdi
callq 0x3180
leaq -0xaf8(%rbp), %rdi
callq 0x3180
leaq -0xad8(%rbp), %rdi
callq 0x3180
leaq -0xab8(%rbp), %rdi
callq 0x3180
leaq -0xa98(%rbp), %rdi
callq 0x3180
leaq -0xa78(%rbp), %rdi
callq 0x3180
leaq -0xa58(%rbp), %rdi
callq 0x3180
movb $0x73, -0x23(%rbp)
jmp 0x322b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x3226a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x3225e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x32252
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x32246
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x3223a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x3222e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x32222
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x32216
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x3220a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x321fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x321f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0xa38(%rbp), %rdi
callq 0xaa60
leaq -0xb98(%rbp), %rdi
callq 0x3180
leaq -0xb78(%rbp), %rdi
callq 0x3180
leaq -0xb58(%rbp), %rdi
callq 0x3180
leaq -0xb38(%rbp), %rdi
callq 0x3180
leaq -0xb18(%rbp), %rdi
callq 0x3180
leaq -0xaf8(%rbp), %rdi
callq 0x3180
leaq -0xad8(%rbp), %rdi
callq 0x3180
leaq -0xab8(%rbp), %rdi
callq 0x3180
leaq -0xa98(%rbp), %rdi
callq 0x3180
leaq -0xa78(%rbp), %rdi
callq 0x3180
leaq -0xa58(%rbp), %rdi
callq 0x3180
jmp 0x3390d
movq 0x1ed36(%rip), %rdi     # 0x50fb8
leaq 0xffbf(%rip), %rsi      # 0x42248
callq 0x3240
movq %rax, -0x1390(%rbp)
jmp 0x32297
movq -0x1390(%rbp), %rdi
movq 0x1ecfb(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x322ac
movb $0x6e, -0x23(%rbp)
movsbl -0x23(%rbp), %eax
cmpl $0x73, %eax
jne 0x3235a
leaq 0xfdf3(%rip), %rsi      # 0x420b7
leaq -0x420(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
jmp 0x322d7
movq -0x8(%rbp), %rdi
callq 0x140b0
movq %rax, -0xba0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14110
movq %rax, -0xba8(%rbp)
leaq -0xba0(%rbp), %rdi
leaq -0xba8(%rbp), %rsi
callq 0x140e0
testb $0x1, %al
jne 0x32310
jmp 0x3234a
leaq -0xba0(%rbp), %rdi
callq 0x1ff80
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x420(%rbp), %rdi
callq 0xfd10
jmp 0x32331
jmp 0x32333
leaq -0xba0(%rbp), %rdi
xorl %esi, %esi
callq 0x14170
movq %rax, -0xbb0(%rbp)
jmp 0x322e7
leaq -0x420(%rbp), %rdi
callq 0x3310
jmp 0x32358
jmp 0x3235a
movq 0x1ec57(%rip), %rdi     # 0x50fb8
leaq 0xfefa(%rip), %rsi      # 0x42262
callq 0x3240
movq %rax, -0x1398(%rbp)
jmp 0x32376
movq -0x1398(%rbp), %rdi
movq 0x1ec1c(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3238b
movq 0x1ec46(%rip), %rdi     # 0x50fd8
leaq -0x22(%rbp), %rsi
callq 0x32e0
jmp 0x3239d
jmp 0x3382d
movq 0x1ec0f(%rip), %rdi     # 0x50fb8
leaq 0xfe77(%rip), %rsi      # 0x42227
callq 0x3240
movq %rax, -0x13a0(%rbp)
jmp 0x323be
movq -0x13a0(%rbp), %rdi
movq 0x1ebd4(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x323d3
movq 0x1ebfe(%rip), %rdi     # 0x50fd8
leaq -0x2c(%rbp), %rsi
callq 0x3170
jmp 0x323e5
movq -0x10(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
callq 0x37810
movq %rax, -0x13a8(%rbp)
jmp 0x323fb
movq -0x13a8(%rbp), %rax
movq %rax, -0xbb8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x14210
movq %rax, -0xbc0(%rbp)
leaq -0xbb8(%rbp), %rdi
leaq -0xbc0(%rbp), %rsi
callq 0x141e0
testb $0x1, %al
jne 0x32435
jmp 0x33709
movq 0x1eb7c(%rip), %rdi     # 0x50fb8
leaq 0xfdfa(%rip), %rsi      # 0x4223d
callq 0x3240
movq %rax, -0x13b0(%rbp)
jmp 0x32451
movq -0x13b0(%rbp), %rdi
movq 0x1eb41(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32466
leaq 0xfe32(%rip), %rsi      # 0x4229f
leaq -0x60(%rbp), %rdi
callq 0x32f0
jmp 0x32478
jmp 0x3247a
movq 0x1eb37(%rip), %rdi     # 0x50fb8
leaq 0xf2bb(%rip), %rsi      # 0x41743
callq 0x3240
movq %rax, -0x13b8(%rbp)
jmp 0x32496
movq -0x13b8(%rbp), %rdi
movq 0x1eafc(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x324ab
movq 0x1eb26(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x324b9
movq 0x1eb18(%rip), %rdi     # 0x50fd8
leaq -0x1a0(%rbp), %rsi
callq 0x3070
jmp 0x324ce
leaq -0x1a0(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x3f480
movb %al, -0x13b9(%rbp)
jmp 0x324e6
movb -0x13b9(%rbp), %al
testb $0x1, %al
jne 0x32541
jmp 0x324f2
movq 0x1eabf(%rip), %rdi     # 0x50fb8
leaq 0xf252(%rip), %rsi      # 0x41752
callq 0x3240
movq %rax, -0x13c8(%rbp)
jmp 0x3250e
movq -0x13c8(%rbp), %rdi
movq 0x1ea84(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x13d0(%rbp)
jmp 0x3252a
movq -0x13d0(%rbp), %rdi
movq 0x1ea68(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3253f
jmp 0x32541
leaq -0x1a0(%rbp), %rdi
movq %rdi, -0x13e0(%rbp)
callq 0x31e0
movq -0x13e0(%rbp), %rdi
movq %rax, -0xbc8(%rbp)
callq 0x3120
movq -0x13e0(%rbp), %rdi
movq %rax, -0xbd0(%rbp)
callq 0x31e0
movq %rax, -0xbd8(%rbp)
movq -0xbc8(%rbp), %rdi
movq -0xbd0(%rbp), %rsi
movq -0xbd8(%rbp), %rdx
movq 0x1ea2b(%rip), %rcx     # 0x50fc8
callq 0x1f5a0
movq %rax, -0x13d8(%rbp)
jmp 0x325ab
movq -0x13d8(%rbp), %rax
movq %rax, -0xbe0(%rbp)
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x3247a
jmp 0x325c8
movq 0x1e9e9(%rip), %rdi     # 0x50fb8
leaq 0xf540(%rip), %rsi      # 0x41b16
callq 0x3240
movq %rax, -0x13e8(%rbp)
jmp 0x325e4
movq -0x13e8(%rbp), %rdi
movq 0x1e9ae(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x325f9
movq 0x1e9d8(%rip), %rdi     # 0x50fd8
leaq -0x80(%rbp), %rsi
callq 0x3070
jmp 0x3260b
leaq -0x80(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x3f5c0
movb %al, -0x13e9(%rbp)
jmp 0x32620
movb -0x13e9(%rbp), %al
testb $0x1, %al
jne 0x3267b
jmp 0x3262c
movq 0x1e985(%rip), %rdi     # 0x50fb8
leaq 0xf4f7(%rip), %rsi      # 0x41b31
callq 0x3240
movq %rax, -0x13f8(%rbp)
jmp 0x32648
movq -0x13f8(%rbp), %rdi
movq 0x1e94a(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1400(%rbp)
jmp 0x32664
movq -0x1400(%rbp), %rdi
movq 0x1e92e(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32679
jmp 0x3267b
jmp 0x3267d
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x325c8
jmp 0x3268c
movq 0x1e925(%rip), %rdi     # 0x50fb8
leaq 0xf4cd(%rip), %rsi      # 0x41b67
callq 0x3240
movq %rax, -0x1408(%rbp)
jmp 0x326a8
movq -0x1408(%rbp), %rdi
movq 0x1e8ea(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x326bd
movq 0x1e914(%rip), %rdi     # 0x50fd8
leaq -0xa0(%rbp), %rsi
callq 0x3070
jmp 0x326d2
leaq -0xa0(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x40170
movb %al, -0x1409(%rbp)
jmp 0x326ea
movb -0x1409(%rbp), %al
testb $0x1, %al
jne 0x32745
jmp 0x326f6
movq 0x1e8bb(%rip), %rdi     # 0x50fb8
leaq 0xf04e(%rip), %rsi      # 0x41752
callq 0x3240
movq %rax, -0x1418(%rbp)
jmp 0x32712
movq -0x1418(%rbp), %rdi
movq 0x1e880(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1420(%rbp)
jmp 0x3272e
movq -0x1420(%rbp), %rdi
movq 0x1e864(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32743
jmp 0x32745
jmp 0x32747
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x3268c
jmp 0x32756
movq 0x1e85b(%rip), %rdi     # 0x50fb8
leaq 0xf8d2(%rip), %rsi      # 0x42036
callq 0x3240
movq %rax, -0x1428(%rbp)
jmp 0x32772
movq -0x1428(%rbp), %rdi
movq 0x1e820(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32787
movq 0x1e84a(%rip), %rdi     # 0x50fd8
leaq -0x220(%rbp), %rsi
callq 0x32c0
jmp 0x3279c
leaq -0xc00(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x3100
jmp 0x327b1
leaq -0xc00(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x40a30
movb %al, -0x1429(%rbp)
jmp 0x327c9
movb -0x1429(%rbp), %al
xorb $-0x1, %al
movb %al, -0x142a(%rbp)
leaq -0xc00(%rbp), %rdi
callq 0x3180
movb -0x142a(%rbp), %al
testb $0x1, %al
jne 0x327ef
jmp 0x32864
movq 0x1e7c2(%rip), %rdi     # 0x50fb8
leaq 0xf863(%rip), %rsi      # 0x42060
callq 0x3240
movq %rax, -0x1438(%rbp)
jmp 0x3280b
movq -0x1438(%rbp), %rdi
movq 0x1e787(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1440(%rbp)
jmp 0x32827
movq -0x1440(%rbp), %rdi
movq 0x1e76b(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3283c
jmp 0x32937
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0xc00(%rbp), %rdi
callq 0x3180
jmp 0x3390d
movl $0x10, %edi
movl $0x8, %esi
callq 0x13c90
movl %eax, -0x1444(%rbp)
jmp 0x3287b
movl -0x1444(%rbp), %edx
leaq -0xd88(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x3370
jmp 0x32896
leaq -0xd88(%rbp), %rdi
leaq -0x39(%rbp), %rsi
callq 0x31f0
jmp 0x328a8
movb $0x73, -0x23(%rbp)
testb $0x1, -0x39(%rbp)
je 0x3292b
movq 0x1e6ff(%rip), %rdi     # 0x50fb8
leaq 0xf7dd(%rip), %rsi      # 0x4209d
callq 0x3240
movq %rax, -0x1450(%rbp)
jmp 0x328ce
movq -0x1450(%rbp), %rdi
movq 0x1e6c4(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x328e3
movq 0x1e6ee(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x328f1
movq 0x1e6e0(%rip), %rdi     # 0x50fd8
leaq -0x180(%rbp), %rsi
callq 0x3070
jmp 0x32906
jmp 0x3292b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0xd88(%rbp), %rdi
callq 0x31b0
jmp 0x3390d
leaq -0xd88(%rbp), %rdi
callq 0x31b0
jmp 0x32939
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x32756
jmp 0x32948
movq 0x1e669(%rip), %rdi     # 0x50fb8
leaq 0xf222(%rip), %rsi      # 0x41b78
callq 0x3240
movq %rax, -0x1458(%rbp)
jmp 0x32964
movq -0x1458(%rbp), %rdi
movq 0x1e62e(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32979
movq 0x1e658(%rip), %rdi     # 0x50fd8
leaq -0xc0(%rbp), %rsi
callq 0x3070
jmp 0x3298e
leaq -0xc0(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x3f480
movb %al, -0x1459(%rbp)
jmp 0x329a6
movb -0x1459(%rbp), %al
testb $0x1, %al
jne 0x32a01
jmp 0x329b2
movq 0x1e5ff(%rip), %rdi     # 0x50fb8
leaq 0xed92(%rip), %rsi      # 0x41752
callq 0x3240
movq %rax, -0x1468(%rbp)
jmp 0x329ce
movq -0x1468(%rbp), %rdi
movq 0x1e5c4(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1470(%rbp)
jmp 0x329ea
movq -0x1470(%rbp), %rdi
movq 0x1e5a8(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x329ff
jmp 0x32a01
leaq -0xda8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x3100
jmp 0x32a16
movq -0x1140(%rbp), %rdi
leaq -0xda8(%rbp), %rsi
callq 0x3d7a0
movb %al, -0x1471(%rbp)
jmp 0x32a31
movb -0x1471(%rbp), %al
andb $0x1, %al
movb %al, -0x3a(%rbp)
leaq -0xda8(%rbp), %rdi
callq 0x3180
testb $0x1, -0x3a(%rbp)
jne 0x32abd
movq 0x1e563(%rip), %rdi     # 0x50fb8
movq 0x1e544(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32a63
movq 0x1e54e(%rip), %rdi     # 0x50fb8
leaq 0xf126(%rip), %rsi      # 0x41b97
callq 0x3240
movq %rax, -0x1480(%rbp)
jmp 0x32a7f
movq -0x1480(%rbp), %rdi
movq 0x1e513(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32a94
movb $0x6e, -0x23(%rbp)
jmp 0x32abd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0xda8(%rbp), %rdi
callq 0x3180
jmp 0x3390d
jmp 0x32abf
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x32948
jmp 0x32ace
movq 0x1e4e3(%rip), %rdi     # 0x50fb8
leaq 0xf0de(%rip), %rsi      # 0x41bba
callq 0x3240
movq %rax, -0x1488(%rbp)
jmp 0x32aea
movq -0x1488(%rbp), %rdi
movq 0x1e4a8(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32aff
movq 0x1e4d2(%rip), %rdi     # 0x50fd8
leaq -0xe0(%rbp), %rsi
callq 0x3070
jmp 0x32b14
leaq -0xe0(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x3f480
movb %al, -0x1489(%rbp)
jmp 0x32b2c
movb -0x1489(%rbp), %al
testb $0x1, %al
jne 0x32b87
jmp 0x32b38
movq 0x1e479(%rip), %rdi     # 0x50fb8
leaq 0xec0c(%rip), %rsi      # 0x41752
callq 0x3240
movq %rax, -0x1498(%rbp)
jmp 0x32b54
movq -0x1498(%rbp), %rdi
movq 0x1e43e(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x14a0(%rbp)
jmp 0x32b70
movq -0x14a0(%rbp), %rdi
movq 0x1e422(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32b85
jmp 0x32b87
movb -0x39(%rbp), %al
movb %al, -0x14a1(%rbp)
leaq -0xdc8(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x3100
jmp 0x32ba5
movq -0x1138(%rbp), %rsi
movb -0x14a1(%rbp), %al
movsbl -0x26(%rbp), %ecx
movzbl %al, %edi
andl $0x1, %edi
leaq -0xdc8(%rbp), %rdx
callq 0x3d850
movb %al, -0x14a2(%rbp)
jmp 0x32bd0
movb -0x14a2(%rbp), %al
andb $0x1, %al
movb %al, -0x3a(%rbp)
leaq -0xdc8(%rbp), %rdi
callq 0x3180
testb $0x1, -0x3a(%rbp)
jne 0x32c7c
movq 0x1e3c0(%rip), %rdi     # 0x50fb8
movq 0x1e3a1(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32c06
movq 0x1e3ab(%rip), %rdi     # 0x50fb8
leaq 0xefc2(%rip), %rsi      # 0x41bd6
callq 0x3240
movq %rax, -0x14b0(%rbp)
jmp 0x32c22
movq -0x14b0(%rbp), %rdi
movq 0x1e370(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x14b8(%rbp)
jmp 0x32c3e
movq -0x14b8(%rbp), %rdi
movq 0x1e354(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32c53
movb $0x6e, -0x23(%rbp)
jmp 0x32c7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0xdc8(%rbp), %rdi
callq 0x3180
jmp 0x3390d
jmp 0x32c7e
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x32ace
jmp 0x32c8d
movq 0x1e324(%rip), %rdi     # 0x50fb8
leaq 0xef6d(%rip), %rsi      # 0x41c08
callq 0x3240
movq %rax, -0x14c0(%rbp)
jmp 0x32ca9
movq -0x14c0(%rbp), %rdi
movq 0x1e2e9(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32cbe
movq 0x1e313(%rip), %rdi     # 0x50fd8
leaq -0x100(%rbp), %rsi
callq 0x3070
jmp 0x32cd3
leaq -0x100(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x3f480
movb %al, -0x14c1(%rbp)
jmp 0x32ceb
movb -0x14c1(%rbp), %al
testb $0x1, %al
jne 0x32d46
jmp 0x32cf7
movq 0x1e2ba(%rip), %rdi     # 0x50fb8
leaq 0xea4d(%rip), %rsi      # 0x41752
callq 0x3240
movq %rax, -0x14d0(%rbp)
jmp 0x32d13
movq -0x14d0(%rbp), %rdi
movq 0x1e27f(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x14d8(%rbp)
jmp 0x32d2f
movq -0x14d8(%rbp), %rdi
movq 0x1e263(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32d44
jmp 0x32d46
leaq -0x100(%rbp), %rdi
movq %rdi, -0x14e8(%rbp)
callq 0x31e0
movq -0x14e8(%rbp), %rdi
movq %rax, -0xdd0(%rbp)
callq 0x3120
movq -0x14e8(%rbp), %rdi
movq %rax, -0xdd8(%rbp)
callq 0x31e0
movq %rax, -0xde0(%rbp)
movq -0xdd0(%rbp), %rdi
movq -0xdd8(%rbp), %rsi
movq -0xde0(%rbp), %rdx
movq 0x1e226(%rip), %rcx     # 0x50fc8
callq 0x1f5a0
movq %rax, -0x14e0(%rbp)
jmp 0x32db0
movq -0x14e0(%rbp), %rax
movq %rax, -0xde8(%rbp)
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x32c8d
jmp 0x32dcd
movq 0x1e1e4(%rip), %rdi     # 0x50fb8
leaq 0xee48(%rip), %rsi      # 0x41c23
callq 0x3240
movq %rax, -0x14f0(%rbp)
jmp 0x32de9
movq -0x14f0(%rbp), %rdi
movq 0x1e1a9(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32dfe
movq 0x1e1d3(%rip), %rdi     # 0x50fd8
leaq -0x1e0(%rbp), %rsi
callq 0x3070
jmp 0x32e13
leaq -0x1e0(%rbp), %rdi
movq %rdi, -0x1500(%rbp)
callq 0x31e0
movq -0x1500(%rbp), %rdi
movq %rax, -0xdf0(%rbp)
callq 0x3120
movq -0x1500(%rbp), %rdi
movq %rax, -0xdf8(%rbp)
callq 0x31e0
movq %rax, -0xe00(%rbp)
movq -0xdf0(%rbp), %rdi
movq -0xdf8(%rbp), %rsi
movq -0xe00(%rbp), %rdx
movq 0x1e171(%rip), %rcx     # 0x50fe0
callq 0x1f5a0
movq %rax, -0x14f8(%rbp)
jmp 0x32e7d
movq -0x14f8(%rbp), %rax
movq %rax, -0xe08(%rbp)
leaq 0xedab(%rip), %rsi      # 0x41c3d
leaq -0x1e0(%rbp), %rdi
callq 0x13c60
movb %al, -0x1501(%rbp)
jmp 0x32ea6
movb -0x1501(%rbp), %al
testb $0x1, %al
jne 0x32eb2
jmp 0x32f2c
leaq 0xed86(%rip), %rsi      # 0x41c3f
leaq -0x1e0(%rbp), %rdi
callq 0x13c60
movb %al, -0x1502(%rbp)
jmp 0x32ecd
movb -0x1502(%rbp), %al
testb $0x1, %al
jne 0x32ed9
jmp 0x32f2c
movb $0x6e, -0x23(%rbp)
movq 0x1e0d4(%rip), %rdi     # 0x50fb8
leaq 0xed56(%rip), %rsi      # 0x41c41
callq 0x3240
movq %rax, -0x1510(%rbp)
jmp 0x32ef9
movq -0x1510(%rbp), %rdi
movq 0x1e099(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1518(%rbp)
jmp 0x32f15
movq -0x1518(%rbp), %rdi
movq 0x1e07d(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32f2a
jmp 0x32f55
xorl %eax, %eax
movl %eax, %esi
leaq -0x1e0(%rbp), %rdi
callq 0x3430
movq %rax, -0x1520(%rbp)
jmp 0x32f45
movq -0x1520(%rbp), %rax
movb (%rax), %al
movb %al, -0x24(%rbp)
movb $0x73, -0x23(%rbp)
jmp 0x32f57
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x32dcd
jmp 0x32f66
movq 0x1e04b(%rip), %rdi     # 0x50fb8
leaq 0xecef(%rip), %rsi      # 0x41c63
callq 0x3240
movq %rax, -0x1528(%rbp)
jmp 0x32f82
movq -0x1528(%rbp), %rdi
movq 0x1e010(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x32f97
movq 0x1e03a(%rip), %rdi     # 0x50fd8
leaq -0x200(%rbp), %rsi
callq 0x3070
jmp 0x32fac
leaq -0xe28(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x3100
jmp 0x32fc1
leaq -0xe28(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x40310
movb %al, -0x1529(%rbp)
jmp 0x32fd9
movb -0x1529(%rbp), %al
xorb $-0x1, %al
movb %al, -0x152a(%rbp)
leaq -0xe28(%rbp), %rdi
callq 0x3180
movb -0x152a(%rbp), %al
testb $0x1, %al
jne 0x32fff
jmp 0x33071
movq 0x1dfb2(%rip), %rdi     # 0x50fb8
leaq 0xec73(%rip), %rsi      # 0x41c80
callq 0x3240
movq %rax, -0x1538(%rbp)
jmp 0x3301b
movq -0x1538(%rbp), %rdi
movq 0x1df77(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1540(%rbp)
jmp 0x33037
movq -0x1540(%rbp), %rdi
movq 0x1df5b(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3304c
jmp 0x33071
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0xe28(%rbp), %rdi
callq 0x3180
jmp 0x3390d
xorl %eax, %eax
movl %eax, %esi
leaq -0x200(%rbp), %rdi
callq 0x1f9a0
movsd %xmm0, -0x1548(%rbp)
jmp 0x3308b
movsd -0x1548(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x32f66
jmp 0x330a7
movq 0x1df0a(%rip), %rdi     # 0x50fb8
leaq 0xecbc(%rip), %rsi      # 0x41d71
callq 0x3240
movq %rax, -0x1550(%rbp)
jmp 0x330c3
movq -0x1550(%rbp), %rdi
movq 0x1decf(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x330d8
movq 0x1def9(%rip), %rdi     # 0x50fd8
leaq -0x140(%rbp), %rsi
callq 0x3070
jmp 0x330ed
leaq -0x140(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x40550
movb %al, -0x1551(%rbp)
jmp 0x33105
movb -0x1551(%rbp), %al
testb $0x1, %al
jne 0x33160
jmp 0x33111
movq 0x1dea0(%rip), %rdi     # 0x50fb8
leaq 0xee63(%rip), %rsi      # 0x41f82
callq 0x3240
movq %rax, -0x1560(%rbp)
jmp 0x3312d
movq -0x1560(%rbp), %rdi
movq 0x1de65(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1568(%rbp)
jmp 0x33149
movq -0x1568(%rbp), %rdi
movq 0x1de49(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3315e
jmp 0x33160
jmp 0x33162
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x330a7
jmp 0x33171
movq 0x1de40(%rip), %rdi     # 0x50fb8
leaq 0xecd4(%rip), %rsi      # 0x41e53
callq 0x3240
movq %rax, -0x1570(%rbp)
jmp 0x3318d
movq -0x1570(%rbp), %rdi
movq 0x1de05(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x331a2
movq 0x1de2f(%rip), %rdi     # 0x50fd8
leaq -0x160(%rbp), %rsi
callq 0x3070
jmp 0x331b7
leaq -0x160(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x40700
movb %al, -0x1571(%rbp)
jmp 0x331cf
movb -0x1571(%rbp), %al
testb $0x1, %al
jne 0x3322a
jmp 0x331db
movq 0x1ddd6(%rip), %rdi     # 0x50fb8
leaq 0xebf6(%rip), %rsi      # 0x41ddf
callq 0x3240
movq %rax, -0x1580(%rbp)
jmp 0x331f7
movq -0x1580(%rbp), %rdi
movq 0x1dd9b(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1588(%rbp)
jmp 0x33213
movq -0x1588(%rbp), %rdi
movq 0x1dd7f(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x33228
jmp 0x3322a
jmp 0x3322c
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x33171
jmp 0x3323b
movq 0x1dd76(%rip), %rdi     # 0x50fb8
leaq 0xebbb(%rip), %rsi      # 0x41e04
callq 0x3240
movq %rax, -0x1590(%rbp)
jmp 0x33257
movq -0x1590(%rbp), %rdi
movq 0x1dd3b(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3326c
movq 0x1dd65(%rip), %rdi     # 0x50fd8
leaq -0x120(%rbp), %rsi
callq 0x3070
jmp 0x33281
leaq -0x120(%rbp), %rdi
leaq -0x23(%rbp), %rsi
callq 0x40550
movb %al, -0x1591(%rbp)
jmp 0x33299
movb -0x1591(%rbp), %al
testb $0x1, %al
jne 0x332f4
jmp 0x332a5
movq 0x1dd0c(%rip), %rdi     # 0x50fb8
leaq 0xeade(%rip), %rsi      # 0x41d91
callq 0x3240
movq %rax, -0x15a0(%rbp)
jmp 0x332c1
movq -0x15a0(%rbp), %rdi
movq 0x1dcd1(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x15a8(%rbp)
jmp 0x332dd
movq -0x15a8(%rbp), %rdi
movq 0x1dcb5(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x332f2
jmp 0x332f4
jmp 0x332f6
movsbl -0x23(%rbp), %eax
cmpl $0x6e, %eax
je 0x3323b
movl -0x2c(%rbp), %eax
movl %eax, -0x15ac(%rbp)
leaq -0xfd8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3100
jmp 0x3331e
leaq -0xff8(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x3100
jmp 0x33333
leaq -0x1018(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x3100
jmp 0x33345
movb -0x24(%rbp), %al
movb %al, -0x15b9(%rbp)
movsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x15b8(%rbp)
leaq -0x1038(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x3100
jmp 0x33370
leaq -0x1058(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x3100
jmp 0x33385
leaq -0x1078(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x3100
jmp 0x3339a
leaq -0x1098(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3100
jmp 0x333af
movb -0x39(%rbp), %al
movb %al, -0x15ba(%rbp)
leaq -0x10b8(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x3100
jmp 0x333cd
leaq -0x10d8(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x3100
jmp 0x333e2
leaq -0x10f8(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x3100
jmp 0x333f7
leaq -0x1118(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x3100
jmp 0x3340c
movsd -0x15b8(%rbp), %xmm0
movl -0x15ac(%rbp), %esi
movb -0x15b9(%rbp), %al
movb -0x15ba(%rbp), %dl
movq %rsp, %rcx
movq %rcx, -0x15c8(%rbp)
leaq -0x1118(%rbp), %rdi
movq %rdi, 0x40(%rcx)
leaq -0x10f8(%rbp), %rdi
movq %rdi, 0x38(%rcx)
leaq -0x10d8(%rbp), %rdi
movq %rdi, 0x30(%rcx)
leaq -0x10b8(%rbp), %rdi
movq %rdi, 0x28(%rcx)
movzbl %dl, %edx
andl $0x1, %edx
movl %edx, 0x20(%rcx)
leaq -0x1098(%rbp), %rdx
movq %rdx, 0x18(%rcx)
leaq -0x1078(%rbp), %rdx
movq %rdx, 0x10(%rcx)
leaq -0x1058(%rbp), %rdx
movq %rdx, 0x8(%rcx)
leaq -0x1038(%rbp), %rdx
movq %rdx, (%rcx)
movsbl %al, %r9d
leaq -0xfb8(%rbp), %rdi
leaq -0xfd8(%rbp), %rdx
leaq -0xff8(%rbp), %rcx
leaq -0x1018(%rbp), %r8
callq 0xaad0
jmp 0x334b7
leaq -0xbb8(%rbp), %rdi
callq 0x1ffc0
movq %rax, %rdi
addq $0x8, %rdi
leaq -0xfb8(%rbp), %rsi
callq 0x37840
jmp 0x334d8
leaq -0xfb8(%rbp), %rdi
callq 0xafa0
leaq -0x1118(%rbp), %rdi
callq 0x3180
leaq -0x10f8(%rbp), %rdi
callq 0x3180
leaq -0x10d8(%rbp), %rdi
callq 0x3180
leaq -0x10b8(%rbp), %rdi
callq 0x3180
leaq -0x1098(%rbp), %rdi
callq 0x3180
leaq -0x1078(%rbp), %rdi
callq 0x3180
leaq -0x1058(%rbp), %rdi
callq 0x3180
leaq -0x1038(%rbp), %rdi
callq 0x3180
leaq -0x1018(%rbp), %rdi
callq 0x3180
leaq -0xff8(%rbp), %rdi
callq 0x3180
leaq -0xfd8(%rbp), %rdi
callq 0x3180
movb $0x73, -0x23(%rbp)
jmp 0x3373e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x336f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x336ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x336e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x336d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x336c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x336bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x336b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x336a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x33698
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x3368c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x33680
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0xfb8(%rbp), %rdi
callq 0xafa0
leaq -0x1118(%rbp), %rdi
callq 0x3180
leaq -0x10f8(%rbp), %rdi
callq 0x3180
leaq -0x10d8(%rbp), %rdi
callq 0x3180
leaq -0x10b8(%rbp), %rdi
callq 0x3180
leaq -0x1098(%rbp), %rdi
callq 0x3180
leaq -0x1078(%rbp), %rdi
callq 0x3180
leaq -0x1058(%rbp), %rdi
callq 0x3180
leaq -0x1038(%rbp), %rdi
callq 0x3180
leaq -0x1018(%rbp), %rdi
callq 0x3180
leaq -0xff8(%rbp), %rdi
callq 0x3180
leaq -0xfd8(%rbp), %rdi
callq 0x3180
jmp 0x3390d
movq 0x1d8a8(%rip), %rdi     # 0x50fb8
leaq 0xeb31(%rip), %rsi      # 0x42248
callq 0x3240
movq %rax, -0x15d0(%rbp)
jmp 0x33725
movq -0x15d0(%rbp), %rdi
movq 0x1d86d(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x3373a
movb $0x6e, -0x23(%rbp)
movsbl -0x23(%rbp), %eax
cmpl $0x73, %eax
jne 0x337e8
leaq 0xe975(%rip), %rsi      # 0x420c7
leaq -0x630(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
jmp 0x33765
movq -0x10(%rbp), %rdi
callq 0x141b0
movq %rax, -0x1120(%rbp)
movq -0x10(%rbp), %rdi
callq 0x14210
movq %rax, -0x1128(%rbp)
leaq -0x1120(%rbp), %rdi
leaq -0x1128(%rbp), %rsi
callq 0x141e0
testb $0x1, %al
jne 0x3379e
jmp 0x337d8
leaq -0x1120(%rbp), %rdi
callq 0x1ffc0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x630(%rbp), %rdi
callq 0x10320
jmp 0x337bf
jmp 0x337c1
leaq -0x1120(%rbp), %rdi
xorl %esi, %esi
callq 0x14270
movq %rax, -0x1130(%rbp)
jmp 0x33775
leaq -0x630(%rbp), %rdi
callq 0x3310
jmp 0x337e6
jmp 0x337e8
movq 0x1d7c9(%rip), %rdi     # 0x50fb8
leaq 0xea6b(%rip), %rsi      # 0x42261
callq 0x3240
movq %rax, -0x15d8(%rbp)
jmp 0x33804
movq -0x15d8(%rbp), %rdi
movq 0x1d78e(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x33819
movq 0x1d7b8(%rip), %rdi     # 0x50fd8
leaq -0x22(%rbp), %rsi
callq 0x32e0
jmp 0x3382b
jmp 0x3382d
jmp 0x3382f
jmp 0x33831
movsbl -0x22(%rbp), %eax
cmpl $0x73, %eax
je 0x30dc9
leaq -0x630(%rbp), %rdi
callq 0x3340
leaq -0x420(%rbp), %rdi
callq 0x3340
leaq -0x220(%rbp), %rdi
callq 0x3180
leaq -0x200(%rbp), %rdi
callq 0x3180
leaq -0x1e0(%rbp), %rdi
callq 0x3180
leaq -0x1c0(%rbp), %rdi
callq 0x3180
leaq -0x1a0(%rbp), %rdi
callq 0x3180
leaq -0x180(%rbp), %rdi
callq 0x3180
leaq -0x160(%rbp), %rdi
callq 0x3180
leaq -0x140(%rbp), %rdi
callq 0x3180
leaq -0x120(%rbp), %rdi
callq 0x3180
leaq -0x100(%rbp), %rdi
callq 0x3180
leaq -0xe0(%rbp), %rdi
callq 0x3180
leaq -0xc0(%rbp), %rdi
callq 0x3180
leaq -0xa0(%rbp), %rdi
callq 0x3180
leaq -0x80(%rbp), %rdi
callq 0x3180
leaq -0x60(%rbp), %rdi
callq 0x3180
addq $0x1620, %rsp           # imm = 0x1620
popq %rbp
retq
leaq -0x630(%rbp), %rdi
callq 0x3340
leaq -0x420(%rbp), %rdi
callq 0x3340
leaq -0x220(%rbp), %rdi
callq 0x3180
leaq -0x200(%rbp), %rdi
callq 0x3180
leaq -0x1e0(%rbp), %rdi
callq 0x3180
leaq -0x1c0(%rbp), %rdi
callq 0x3180
leaq -0x1a0(%rbp), %rdi
callq 0x3180
leaq -0x180(%rbp), %rdi
callq 0x3180
leaq -0x160(%rbp), %rdi
callq 0x3180
leaq -0x140(%rbp), %rdi
callq 0x3180
leaq -0x120(%rbp), %rdi
callq 0x3180
leaq -0x100(%rbp), %rdi
callq 0x3180
leaq -0xe0(%rbp), %rdi
callq 0x3180
leaq -0xc0(%rbp), %rdi
callq 0x3180
leaq -0xa0(%rbp), %rdi
callq 0x3180
leaq -0x80(%rbp), %rdi
callq 0x3180
leaq -0x60(%rbp), %rdi
callq 0x3180
movq -0x428(%rbp), %rdi
callq 0x33d0
nop