// File: nataly-enne[P]pet-fera/pet_fera_cadastrar.cpp
// Function: cadastrar(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 cadastrar(map <int, REPTIL_NATIVO> &repteis_nat, map <int, REPTIL_EXOTICO> &repteis_ex, map <int, VETERINARIO> vets, map <int, TRATADOR> tratadores){
	int id;
	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;
	char sexo, tipo_animal, continuar = 's', sucesso, tipo = 'r';
	double tamanho;
	unsigned int old_size;
	ofstream nativos;
	ofstream exoticos;

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

			}while(sucesso == 'n');

			classe = "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;
				cin.ignore();
				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 há caracteres proibidos.
			do{
				cout << "Digite o tamanho do animal: " << endl;
				getline(cin, tamanho_string);
				if(!verifica_tamanho(tamanho_string, sucesso)){
					cout << "ERRO: o tamanho do animal tem que ter apenas um '.' " << endl << endl;
				}
				tamanho = stod(tamanho_string);
			}while(sucesso == 'n');

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

			
			if(tipo_animal == 'n'){
				old_size = repteis_nat.size();

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

				// Armazenando no map dados do tipo réptil nativo passados pelo usuário.
				repteis_nat.insert(pair <int, REPTIL_NATIVO> (id, REPTIL_NATIVO(id, classe, nome, nome_cientifico, sexo, tamanho, dieta, veterinario, tratador, nome_batismo, venenoso, tipo_veneno, autorizacao_IBAMA, origem, autorizacao)));
				
				if (repteis_nat.size() == old_size){
					cout << "Falha no cadastro do animal! Tente novamente!" << endl;
					continuar = 's';
					continue;
				}
			}
			else{
				old_size = repteis_ex.size();

				// Verifica se foi passado uma string.
				do{
					cout << "Digite o País de origem: " << endl;
					getline(cin, origem);
					if(!verifica_origem(origem, sucesso)){
						cout << "ERRO: Deve-se colocar apenas letras!" << endl << endl;
					}
				}while(sucesso == 'n');

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

				// Armazenando no map dados do tipo réptil exótico passados pelo usuário.
				repteis_ex.insert(pair <int, REPTIL_EXOTICO> (id, REPTIL_EXOTICO(id, classe, nome, nome_cientifico, sexo, tamanho, dieta, veterinario, tratador, nome_batismo, venenoso, tipo_veneno, autorizacao_IBAMA, origem, autorizacao)));
				
				if (repteis_ex.size() == old_size){
					cout << "Falha no cadastro do animal! Tente novamente!" << endl;
					continuar = 's';
					continue;
				}
			}
		}
		cout << "\nAnimal cadastrado com sucesso!" << endl << endl;
		cout << "Deseja cadastrar um novo animal? s/n" << endl;
		cin >> continuar;
	}while(continuar == 's');

	if(!repteis_nat.empty()){
		nativos.open("repteis_nat.txt");
		for(auto it = repteis_nat.begin(); it != repteis_nat.end(); it++){
			nativos << (*it).second;
		}
		nativos.close();
	}
	if(!repteis_ex.empty()){
		exoticos.open("repteis_ex.txt");
		for(auto it = repteis_ex.begin(); it != repteis_ex.end(); it++){
			exoticos << (*it).second;
		}
		exoticos.close();
	}	
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1720, %rsp           # imm = 0x1720
movq %rdx, -0x13b0(%rbp)
movq %rcx, -0x13a8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x3300
leaq -0x68(%rbp), %rdi
callq 0x3300
leaq -0x88(%rbp), %rdi
callq 0x3300
leaq -0xa8(%rbp), %rdi
callq 0x3300
leaq -0xc8(%rbp), %rdi
callq 0x3300
leaq -0xe8(%rbp), %rdi
callq 0x3300
leaq -0x108(%rbp), %rdi
callq 0x3300
leaq -0x128(%rbp), %rdi
callq 0x3300
leaq -0x148(%rbp), %rdi
callq 0x3300
leaq -0x168(%rbp), %rdi
callq 0x3300
leaq -0x188(%rbp), %rdi
callq 0x3300
leaq -0x1a8(%rbp), %rdi
callq 0x3300
leaq -0x1c8(%rbp), %rdi
callq 0x3300
leaq -0x1e8(%rbp), %rdi
callq 0x3300
leaq -0x208(%rbp), %rdi
callq 0x3300
movb $0x73, -0x20b(%rbp)
movb $0x72, -0x20d(%rbp)
leaq -0x420(%rbp), %rdi
callq 0x33b0
jmp 0x1b2f3
leaq -0x630(%rbp), %rdi
callq 0x33b0
jmp 0x1b301
jmp 0x1b303
movq 0x35cae(%rip), %rdi     # 0x50fb8
leaq 0x26ccb(%rip), %rsi     # 0x41fdc
callq 0x3240
movq %rax, -0x13b8(%rbp)
jmp 0x1b31f
movq -0x13b8(%rbp), %rdi
movq 0x35c73(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1b334
movq 0x35c9d(%rip), %rdi     # 0x50fd8
leaq -0x20a(%rbp), %rsi
callq 0x32e0
jmp 0x1b349
movsbl -0x20a(%rbp), %eax
cmpl $0x6e, %eax
je 0x1b3eb
movsbl -0x20a(%rbp), %eax
cmpl $0x65, %eax
je 0x1b3eb
movq 0x35c48(%rip), %rdi     # 0x50fb8
leaq 0x26776(%rip), %rsi     # 0x41aed
callq 0x3240
movq %rax, -0x13c0(%rbp)
jmp 0x1b385
movq -0x13c0(%rbp), %rdi
movq 0x35c0d(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1b39a
movb $0x73, -0x20b(%rbp)
jmp 0x1d0ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1d30d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1d301
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1d2f5
jmp 0x1b3ed
movq 0x35bc4(%rip), %rdi     # 0x50fb8
leaq 0x26304(%rip), %rsi     # 0x416ff
callq 0x3240
movq %rax, -0x13c8(%rbp)
jmp 0x1b409
movq -0x13c8(%rbp), %rdi
movq 0x35b89(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1b41e
movq 0x35bb3(%rip), %rdi     # 0x50fd8
leaq -0x1a8(%rbp), %rsi
callq 0x32c0
jmp 0x1b433
movq -0x8(%rbp), %rax
movq %rax, -0x13e0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x13d8(%rbp)
movb -0x20a(%rbp), %al
movb %al, -0x13c9(%rbp)
leaq -0x650(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x3100
jmp 0x1b46a
movq -0x13d8(%rbp), %rsi
movq -0x13e0(%rbp), %rdi
movb -0x13c9(%rbp), %al
movsbl %al, %edx
leaq -0x650(%rbp), %rcx
leaq -0x20c(%rbp), %r8
callq 0x3ead0
movb %al, -0x13e1(%rbp)
jmp 0x1b49c
movb -0x13e1(%rbp), %al
xorb $-0x1, %al
movb %al, -0x13e2(%rbp)
leaq -0x650(%rbp), %rdi
callq 0x3180
movb -0x13e2(%rbp), %al
testb $0x1, %al
jne 0x1b4c2
jmp 0x1b537
movq 0x35aef(%rip), %rdi     # 0x50fb8
leaq 0x2623c(%rip), %rsi     # 0x4170c
callq 0x3240
movq %rax, -0x13f0(%rbp)
jmp 0x1b4de
movq -0x13f0(%rbp), %rdi
movq 0x35ab4(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x13f8(%rbp)
jmp 0x1b4fa
movq -0x13f8(%rbp), %rdi
movq 0x35a98(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1b50f
jmp 0x1b5ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0x650(%rbp), %rdi
callq 0x3180
jmp 0x1d2f5
movl $0x10, %edi
movl $0x8, %esi
callq 0x13c90
movl %eax, -0x13fc(%rbp)
jmp 0x1b54e
movl -0x13fc(%rbp), %edx
leaq -0x7d8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x3370
jmp 0x1b569
leaq -0x7d8(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3170
jmp 0x1b57b
leaq -0x7d8(%rbp), %rdi
callq 0x31b0
jmp 0x1b5ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0x7d8(%rbp), %rdi
callq 0x31b0
jmp 0x1d2f5
jmp 0x1b5ae
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1b3ed
leaq 0x26a68(%rip), %rsi     # 0x4202d
leaq -0x48(%rbp), %rdi
callq 0x32f0
jmp 0x1b5d0
jmp 0x1b5d2
movq 0x359df(%rip), %rdi     # 0x50fb8
leaq 0x26163(%rip), %rsi     # 0x41743
callq 0x3240
movq %rax, -0x1408(%rbp)
jmp 0x1b5ee
movq -0x1408(%rbp), %rdi
movq 0x359a4(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1b603
movq 0x359ce(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x1b611
movq 0x359c0(%rip), %rdi     # 0x50fd8
leaq -0x188(%rbp), %rsi
callq 0x3070
jmp 0x1b626
leaq -0x188(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x3f480
movb %al, -0x1409(%rbp)
jmp 0x1b641
movb -0x1409(%rbp), %al
testb $0x1, %al
jne 0x1b69c
jmp 0x1b64d
movq 0x35964(%rip), %rdi     # 0x50fb8
leaq 0x260f7(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x1418(%rbp)
jmp 0x1b669
movq -0x1418(%rbp), %rdi
movq 0x35929(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1420(%rbp)
jmp 0x1b685
movq -0x1420(%rbp), %rdi
movq 0x3590d(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1b69a
jmp 0x1b69c
leaq -0x188(%rbp), %rdi
movq %rdi, -0x1430(%rbp)
callq 0x31e0
movq -0x1430(%rbp), %rdi
movq %rax, -0x7e0(%rbp)
callq 0x3120
movq -0x1430(%rbp), %rdi
movq %rax, -0x7e8(%rbp)
callq 0x31e0
movq %rax, -0x7f0(%rbp)
movq -0x7e0(%rbp), %rdi
movq -0x7e8(%rbp), %rsi
movq -0x7f0(%rbp), %rdx
movq 0x358d0(%rip), %rcx     # 0x50fc8
callq 0x1f5a0
movq %rax, -0x1428(%rbp)
jmp 0x1b706
movq -0x1428(%rbp), %rax
movq %rax, -0x7f8(%rbp)
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1b5d2
jmp 0x1b726
movq 0x3588b(%rip), %rdi     # 0x50fb8
leaq 0x263e2(%rip), %rsi     # 0x41b16
callq 0x3240
movq %rax, -0x1438(%rbp)
jmp 0x1b742
movq -0x1438(%rbp), %rdi
movq 0x35850(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1b757
movq 0x3587a(%rip), %rdi     # 0x50fd8
leaq -0x68(%rbp), %rsi
callq 0x3070
jmp 0x1b769
leaq -0x68(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x3f5c0
movb %al, -0x1439(%rbp)
jmp 0x1b781
movb -0x1439(%rbp), %al
testb $0x1, %al
jne 0x1b7dc
jmp 0x1b78d
movq 0x35824(%rip), %rdi     # 0x50fb8
leaq 0x26396(%rip), %rsi     # 0x41b31
callq 0x3240
movq %rax, -0x1448(%rbp)
jmp 0x1b7a9
movq -0x1448(%rbp), %rdi
movq 0x357e9(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1450(%rbp)
jmp 0x1b7c5
movq -0x1450(%rbp), %rdi
movq 0x357cd(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1b7da
jmp 0x1b7dc
jmp 0x1b7de
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1b726
jmp 0x1b7f0
movq 0x357c1(%rip), %rdi     # 0x50fb8
leaq 0x26369(%rip), %rsi     # 0x41b67
callq 0x3240
movq %rax, -0x1458(%rbp)
jmp 0x1b80c
movq -0x1458(%rbp), %rdi
movq 0x35786(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1b821
movq 0x357b0(%rip), %rdi     # 0x50fd8
leaq -0x88(%rbp), %rsi
callq 0x3070
jmp 0x1b836
leaq -0x88(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x40170
movb %al, -0x1459(%rbp)
jmp 0x1b851
movb -0x1459(%rbp), %al
testb $0x1, %al
jne 0x1b8ac
jmp 0x1b85d
movq 0x35754(%rip), %rdi     # 0x50fb8
leaq 0x25ee7(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x1468(%rbp)
jmp 0x1b879
movq -0x1468(%rbp), %rdi
movq 0x35719(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1470(%rbp)
jmp 0x1b895
movq -0x1470(%rbp), %rdi
movq 0x356fd(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1b8aa
jmp 0x1b8ac
jmp 0x1b8ae
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1b7f0
jmp 0x1b8c0
movq 0x356f1(%rip), %rdi     # 0x50fb8
leaq 0x26768(%rip), %rsi     # 0x42036
callq 0x3240
movq %rax, -0x1478(%rbp)
jmp 0x1b8dc
movq -0x1478(%rbp), %rdi
movq 0x356b6(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1b8f1
movq 0x356e0(%rip), %rdi     # 0x50fd8
leaq -0x208(%rbp), %rsi
callq 0x32c0
jmp 0x1b906
movq 0x356cb(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x1b914
leaq -0x818(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x3100
jmp 0x1b929
leaq -0x818(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x40a30
movb %al, -0x1479(%rbp)
jmp 0x1b944
movb -0x1479(%rbp), %al
xorb $-0x1, %al
movb %al, -0x147a(%rbp)
leaq -0x818(%rbp), %rdi
callq 0x3180
movb -0x147a(%rbp), %al
testb $0x1, %al
jne 0x1b96a
jmp 0x1b9df
movq 0x35647(%rip), %rdi     # 0x50fb8
leaq 0x266e8(%rip), %rsi     # 0x42060
callq 0x3240
movq %rax, -0x1488(%rbp)
jmp 0x1b986
movq -0x1488(%rbp), %rdi
movq 0x3560c(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1490(%rbp)
jmp 0x1b9a2
movq -0x1490(%rbp), %rdi
movq 0x355f0(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1b9b7
jmp 0x1bab5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0x818(%rbp), %rdi
callq 0x3180
jmp 0x1d2f5
movl $0x10, %edi
movl $0x8, %esi
callq 0x13c90
movl %eax, -0x1494(%rbp)
jmp 0x1b9f6
movl -0x1494(%rbp), %edx
leaq -0x9a0(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x3370
jmp 0x1ba11
leaq -0x9a0(%rbp), %rdi
leaq -0x25(%rbp), %rsi
callq 0x31f0
jmp 0x1ba23
movb $0x73, -0x20c(%rbp)
testb $0x1, -0x25(%rbp)
je 0x1baa9
movq 0x35581(%rip), %rdi     # 0x50fb8
leaq 0x2665f(%rip), %rsi     # 0x4209d
callq 0x3240
movq %rax, -0x14a0(%rbp)
jmp 0x1ba4c
movq -0x14a0(%rbp), %rdi
movq 0x35546(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1ba61
movq 0x35570(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x1ba6f
movq 0x35562(%rip), %rdi     # 0x50fd8
leaq -0x168(%rbp), %rsi
callq 0x3070
jmp 0x1ba84
jmp 0x1baa9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0x9a0(%rbp), %rdi
callq 0x31b0
jmp 0x1d2f5
leaq -0x9a0(%rbp), %rdi
callq 0x31b0
jmp 0x1bab7
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1b8c0
jmp 0x1bac9
movq 0x354e8(%rip), %rdi     # 0x50fb8
leaq 0x260a1(%rip), %rsi     # 0x41b78
callq 0x3240
movq %rax, -0x14a8(%rbp)
jmp 0x1bae5
movq -0x14a8(%rbp), %rdi
movq 0x354ad(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1bafa
movq 0x354d7(%rip), %rdi     # 0x50fd8
leaq -0xa8(%rbp), %rsi
callq 0x3070
jmp 0x1bb0f
leaq -0xa8(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x3f480
movb %al, -0x14a9(%rbp)
jmp 0x1bb2a
movb -0x14a9(%rbp), %al
testb $0x1, %al
jne 0x1bb85
jmp 0x1bb36
movq 0x3547b(%rip), %rdi     # 0x50fb8
leaq 0x25c0e(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x14b8(%rbp)
jmp 0x1bb52
movq -0x14b8(%rbp), %rdi
movq 0x35440(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x14c0(%rbp)
jmp 0x1bb6e
movq -0x14c0(%rbp), %rdi
movq 0x35424(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1bb83
jmp 0x1bb85
leaq -0x9c0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3100
jmp 0x1bb9a
movq -0x13b0(%rbp), %rdi
leaq -0x9c0(%rbp), %rsi
callq 0x3d7a0
movb %al, -0x14c1(%rbp)
jmp 0x1bbb5
movb -0x14c1(%rbp), %al
andb $0x1, %al
movb %al, -0x26(%rbp)
leaq -0x9c0(%rbp), %rdi
callq 0x3180
testb $0x1, -0x26(%rbp)
jne 0x1bc44
movq 0x353df(%rip), %rdi     # 0x50fb8
movq 0x353c0(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1bbe7
movq 0x353ca(%rip), %rdi     # 0x50fb8
leaq 0x25fa2(%rip), %rsi     # 0x41b97
callq 0x3240
movq %rax, -0x14d0(%rbp)
jmp 0x1bc03
movq -0x14d0(%rbp), %rdi
movq 0x3538f(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1bc18
movb $0x6e, -0x20c(%rbp)
jmp 0x1bc44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0x9c0(%rbp), %rdi
callq 0x3180
jmp 0x1d2f5
jmp 0x1bc46
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1bac9
jmp 0x1bc58
movq 0x35359(%rip), %rdi     # 0x50fb8
leaq 0x25f54(%rip), %rsi     # 0x41bba
callq 0x3240
movq %rax, -0x14d8(%rbp)
jmp 0x1bc74
movq -0x14d8(%rbp), %rdi
movq 0x3531e(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1bc89
movq 0x35348(%rip), %rdi     # 0x50fd8
leaq -0xc8(%rbp), %rsi
callq 0x3070
jmp 0x1bc9e
leaq -0xc8(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x3f480
movb %al, -0x14d9(%rbp)
jmp 0x1bcb9
movb -0x14d9(%rbp), %al
testb $0x1, %al
jne 0x1bd14
jmp 0x1bcc5
movq 0x352ec(%rip), %rdi     # 0x50fb8
leaq 0x25a7f(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x14e8(%rbp)
jmp 0x1bce1
movq -0x14e8(%rbp), %rdi
movq 0x352b1(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x14f0(%rbp)
jmp 0x1bcfd
movq -0x14f0(%rbp), %rdi
movq 0x35295(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1bd12
jmp 0x1bd14
movb -0x25(%rbp), %al
movb %al, -0x14f1(%rbp)
leaq -0x9e0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x3100
jmp 0x1bd32
movq -0x13a8(%rbp), %rsi
movb -0x14f1(%rbp), %al
movsbl -0x20d(%rbp), %ecx
movzbl %al, %edi
andl $0x1, %edi
leaq -0x9e0(%rbp), %rdx
callq 0x3d850
movb %al, -0x14f2(%rbp)
jmp 0x1bd60
movb -0x14f2(%rbp), %al
andb $0x1, %al
movb %al, -0x26(%rbp)
leaq -0x9e0(%rbp), %rdi
callq 0x3180
testb $0x1, -0x26(%rbp)
jne 0x1be0f
movq 0x35230(%rip), %rdi     # 0x50fb8
movq 0x35211(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1bd96
movq 0x3521b(%rip), %rdi     # 0x50fb8
leaq 0x25e32(%rip), %rsi     # 0x41bd6
callq 0x3240
movq %rax, -0x1500(%rbp)
jmp 0x1bdb2
movq -0x1500(%rbp), %rdi
movq 0x351e0(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1508(%rbp)
jmp 0x1bdce
movq -0x1508(%rbp), %rdi
movq 0x351c4(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1bde3
movb $0x6e, -0x20c(%rbp)
jmp 0x1be0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0x9e0(%rbp), %rdi
callq 0x3180
jmp 0x1d2f5
jmp 0x1be11
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1bc58
jmp 0x1be23
movq 0x3518e(%rip), %rdi     # 0x50fb8
leaq 0x25dd7(%rip), %rsi     # 0x41c08
callq 0x3240
movq %rax, -0x1510(%rbp)
jmp 0x1be3f
movq -0x1510(%rbp), %rdi
movq 0x35153(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1be54
movq 0x3517d(%rip), %rdi     # 0x50fd8
leaq -0xe8(%rbp), %rsi
callq 0x3070
jmp 0x1be69
leaq -0xe8(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x3f480
movb %al, -0x1511(%rbp)
jmp 0x1be84
movb -0x1511(%rbp), %al
testb $0x1, %al
jne 0x1bedf
jmp 0x1be90
movq 0x35121(%rip), %rdi     # 0x50fb8
leaq 0x258b4(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x1520(%rbp)
jmp 0x1beac
movq -0x1520(%rbp), %rdi
movq 0x350e6(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1528(%rbp)
jmp 0x1bec8
movq -0x1528(%rbp), %rdi
movq 0x350ca(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1bedd
jmp 0x1bedf
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x1538(%rbp)
callq 0x31e0
movq -0x1538(%rbp), %rdi
movq %rax, -0x9e8(%rbp)
callq 0x3120
movq -0x1538(%rbp), %rdi
movq %rax, -0x9f0(%rbp)
callq 0x31e0
movq %rax, -0x9f8(%rbp)
movq -0x9e8(%rbp), %rdi
movq -0x9f0(%rbp), %rsi
movq -0x9f8(%rbp), %rdx
movq 0x3508d(%rip), %rcx     # 0x50fc8
callq 0x1f5a0
movq %rax, -0x1530(%rbp)
jmp 0x1bf49
movq -0x1530(%rbp), %rax
movq %rax, -0xa00(%rbp)
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1be23
jmp 0x1bf69
movq 0x35048(%rip), %rdi     # 0x50fb8
leaq 0x25cac(%rip), %rsi     # 0x41c23
callq 0x3240
movq %rax, -0x1540(%rbp)
jmp 0x1bf85
movq -0x1540(%rbp), %rdi
movq 0x3500d(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1bf9a
movq 0x35037(%rip), %rdi     # 0x50fd8
leaq -0x1c8(%rbp), %rsi
callq 0x3070
jmp 0x1bfaf
leaq -0x1c8(%rbp), %rdi
movq %rdi, -0x1550(%rbp)
callq 0x31e0
movq -0x1550(%rbp), %rdi
movq %rax, -0xa08(%rbp)
callq 0x3120
movq -0x1550(%rbp), %rdi
movq %rax, -0xa10(%rbp)
callq 0x31e0
movq %rax, -0xa18(%rbp)
movq -0xa08(%rbp), %rdi
movq -0xa10(%rbp), %rsi
movq -0xa18(%rbp), %rdx
movq 0x34fd5(%rip), %rcx     # 0x50fe0
callq 0x1f5a0
movq %rax, -0x1548(%rbp)
jmp 0x1c019
movq -0x1548(%rbp), %rax
movq %rax, -0xa20(%rbp)
leaq 0x25c0f(%rip), %rsi     # 0x41c3d
leaq -0x1c8(%rbp), %rdi
callq 0x13c60
movb %al, -0x1551(%rbp)
jmp 0x1c042
movb -0x1551(%rbp), %al
testb $0x1, %al
jne 0x1c04e
jmp 0x1c0cb
leaq 0x25bea(%rip), %rsi     # 0x41c3f
leaq -0x1c8(%rbp), %rdi
callq 0x13c60
movb %al, -0x1552(%rbp)
jmp 0x1c069
movb -0x1552(%rbp), %al
testb $0x1, %al
jne 0x1c075
jmp 0x1c0cb
movb $0x6e, -0x20c(%rbp)
movq 0x34f35(%rip), %rdi     # 0x50fb8
leaq 0x25bb7(%rip), %rsi     # 0x41c41
callq 0x3240
movq %rax, -0x1560(%rbp)
jmp 0x1c098
movq -0x1560(%rbp), %rdi
movq 0x34efa(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1568(%rbp)
jmp 0x1c0b4
movq -0x1568(%rbp), %rdi
movq 0x34ede(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1c0c9
jmp 0x1c0fa
xorl %eax, %eax
movl %eax, %esi
leaq -0x1c8(%rbp), %rdi
callq 0x3430
movq %rax, -0x1570(%rbp)
jmp 0x1c0e4
movq -0x1570(%rbp), %rax
movb (%rax), %al
movb %al, -0x209(%rbp)
movb $0x73, -0x20c(%rbp)
jmp 0x1c0fc
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1bf69
jmp 0x1c10e
movq 0x34ea3(%rip), %rdi     # 0x50fb8
leaq 0x25b47(%rip), %rsi     # 0x41c63
callq 0x3240
movq %rax, -0x1578(%rbp)
jmp 0x1c12a
movq -0x1578(%rbp), %rdi
movq 0x34e68(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1c13f
movq 0x34e92(%rip), %rdi     # 0x50fd8
leaq -0x1e8(%rbp), %rsi
callq 0x3070
jmp 0x1c154
leaq -0xa40(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x3100
jmp 0x1c169
leaq -0xa40(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x40310
movb %al, -0x1579(%rbp)
jmp 0x1c184
movb -0x1579(%rbp), %al
xorb $-0x1, %al
movb %al, -0x157a(%rbp)
leaq -0xa40(%rbp), %rdi
callq 0x3180
movb -0x157a(%rbp), %al
testb $0x1, %al
jne 0x1c1aa
jmp 0x1c21c
movq 0x34e07(%rip), %rdi     # 0x50fb8
leaq 0x25ac8(%rip), %rsi     # 0x41c80
callq 0x3240
movq %rax, -0x1588(%rbp)
jmp 0x1c1c6
movq -0x1588(%rbp), %rdi
movq 0x34dcc(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1590(%rbp)
jmp 0x1c1e2
movq -0x1590(%rbp), %rdi
movq 0x34db0(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1c1f7
jmp 0x1c21c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0xa40(%rbp), %rdi
callq 0x3180
jmp 0x1d2f5
xorl %eax, %eax
movl %eax, %esi
leaq -0x1e8(%rbp), %rdi
callq 0x1f9a0
movsd %xmm0, -0x1598(%rbp)
jmp 0x1c236
movsd -0x1598(%rbp), %xmm0
movsd %xmm0, -0x218(%rbp)
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1c10e
jmp 0x1c258
movq 0x34d59(%rip), %rdi     # 0x50fb8
leaq 0x25b0b(%rip), %rsi     # 0x41d71
callq 0x3240
movq %rax, -0x15a0(%rbp)
jmp 0x1c274
movq -0x15a0(%rbp), %rdi
movq 0x34d1e(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1c289
movq 0x34d48(%rip), %rdi     # 0x50fd8
leaq -0x128(%rbp), %rsi
callq 0x3070
jmp 0x1c29e
leaq -0x128(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x40550
movb %al, -0x15a1(%rbp)
jmp 0x1c2b9
movb -0x15a1(%rbp), %al
testb $0x1, %al
jne 0x1c314
jmp 0x1c2c5
movq 0x34cec(%rip), %rdi     # 0x50fb8
leaq 0x25caf(%rip), %rsi     # 0x41f82
callq 0x3240
movq %rax, -0x15b0(%rbp)
jmp 0x1c2e1
movq -0x15b0(%rbp), %rdi
movq 0x34cb1(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x15b8(%rbp)
jmp 0x1c2fd
movq -0x15b8(%rbp), %rdi
movq 0x34c95(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1c312
jmp 0x1c314
jmp 0x1c316
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1c258
movsbl -0x20a(%rbp), %eax
cmpl $0x6e, %eax
jne 0x1c9ae
movq -0x8(%rbp), %rdi
callq 0x1fde0
movl %eax, -0x21c(%rbp)
movq 0x34c6c(%rip), %rdi     # 0x50fb8
leaq 0x25a74(%rip), %rsi     # 0x41dc7
callq 0x3240
movq %rax, -0x15c0(%rbp)
jmp 0x1c361
movq -0x15c0(%rbp), %rdi
movq 0x34c31(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1c376
movq 0x34c5b(%rip), %rdi     # 0x50fd8
leaq -0x148(%rbp), %rsi
callq 0x3070
jmp 0x1c38b
leaq -0x148(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x40700
movb %al, -0x15c1(%rbp)
jmp 0x1c3a6
movb -0x15c1(%rbp), %al
testb $0x1, %al
jne 0x1c401
jmp 0x1c3b2
movq 0x34bff(%rip), %rdi     # 0x50fb8
leaq 0x25a1f(%rip), %rsi     # 0x41ddf
callq 0x3240
movq %rax, -0x15d0(%rbp)
jmp 0x1c3ce
movq -0x15d0(%rbp), %rdi
movq 0x34bc4(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x15d8(%rbp)
jmp 0x1c3ea
movq -0x15d8(%rbp), %rdi
movq 0x34ba8(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1c3ff
jmp 0x1c401
jmp 0x1c403
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1c345
jmp 0x1c415
movq 0x34b9c(%rip), %rdi     # 0x50fb8
leaq 0x259e1(%rip), %rsi     # 0x41e04
callq 0x3240
movq %rax, -0x15e0(%rbp)
jmp 0x1c431
movq -0x15e0(%rbp), %rdi
movq 0x34b61(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1c446
movq 0x34b8b(%rip), %rdi     # 0x50fd8
leaq -0x108(%rbp), %rsi
callq 0x3070
jmp 0x1c45b
leaq -0x108(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x40550
movb %al, -0x15e1(%rbp)
jmp 0x1c476
movb -0x15e1(%rbp), %al
testb $0x1, %al
jne 0x1c4d1
jmp 0x1c482
movq 0x34b2f(%rip), %rdi     # 0x50fb8
leaq 0x25901(%rip), %rsi     # 0x41d91
callq 0x3240
movq %rax, -0x15f0(%rbp)
jmp 0x1c49e
movq -0x15f0(%rbp), %rdi
movq 0x34af4(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x15f8(%rbp)
jmp 0x1c4ba
movq -0x15f8(%rbp), %rdi
movq 0x34ad8(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1c4cf
jmp 0x1c4d1
jmp 0x1c4d3
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1c415
movq -0x8(%rbp), %rax
movq %rax, -0x1608(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x15fc(%rbp)
leaq -0xd88(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3100
jmp 0x1c509
leaq -0xda8(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x3100
jmp 0x1c51e
leaq -0xdc8(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x3100
jmp 0x1c530
movb -0x209(%rbp), %al
movb %al, -0x1611(%rbp)
movsd -0x218(%rbp), %xmm0
movsd %xmm0, -0x1610(%rbp)
leaq -0xde8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x3100
jmp 0x1c561
leaq -0xe08(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3100
jmp 0x1c576
leaq -0xe28(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x3100
jmp 0x1c58b
leaq -0xe48(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x3100
jmp 0x1c5a0
movb -0x25(%rbp), %al
movb %al, -0x1612(%rbp)
leaq -0xe68(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x3100
jmp 0x1c5be
leaq -0xe88(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x3100
jmp 0x1c5d3
leaq -0xea8(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x3100
jmp 0x1c5e8
leaq -0xec8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x3100
jmp 0x1c5fd
movsd -0x1610(%rbp), %xmm0
movl -0x15fc(%rbp), %esi
movb -0x1611(%rbp), %al
movb -0x1612(%rbp), %dl
movq %rsp, %rcx
movq %rcx, -0x1620(%rbp)
leaq -0xec8(%rbp), %rdi
movq %rdi, 0x40(%rcx)
leaq -0xea8(%rbp), %rdi
movq %rdi, 0x38(%rcx)
leaq -0xe88(%rbp), %rdi
movq %rdi, 0x30(%rcx)
leaq -0xe68(%rbp), %rdi
movq %rdi, 0x28(%rcx)
movzbl %dl, %edx
andl $0x1, %edx
movl %edx, 0x20(%rcx)
leaq -0xe48(%rbp), %rdx
movq %rdx, 0x18(%rcx)
leaq -0xe28(%rbp), %rdx
movq %rdx, 0x10(%rcx)
leaq -0xe08(%rbp), %rdx
movq %rdx, 0x8(%rcx)
leaq -0xde8(%rbp), %rdx
movq %rdx, (%rcx)
movsbl %al, %r9d
leaq -0xd68(%rbp), %rdi
leaq -0xd88(%rbp), %rdx
leaq -0xda8(%rbp), %rcx
leaq -0xdc8(%rbp), %r8
callq 0xa520
jmp 0x1c6a8
leaq -0xbd8(%rbp), %rdi
leaq -0x24(%rbp), %rsi
leaq -0xd68(%rbp), %rdx
callq 0x1fe40
jmp 0x1c6c1
movq -0x1608(%rbp), %rdi
leaq -0xbd8(%rbp), %rsi
callq 0x1fe00
movb %dl, -0x1629(%rbp)
movq %rax, -0x1628(%rbp)
jmp 0x1c6e3
movb -0x1629(%rbp), %al
movq -0x1628(%rbp), %rcx
movq %rcx, -0xed8(%rbp)
movb %al, -0xed0(%rbp)
leaq -0xbd8(%rbp), %rdi
callq 0x1fe80
leaq -0xd68(%rbp), %rdi
callq 0xaa60
leaq -0xec8(%rbp), %rdi
callq 0x3180
leaq -0xea8(%rbp), %rdi
callq 0x3180
leaq -0xe88(%rbp), %rdi
callq 0x3180
leaq -0xe68(%rbp), %rdi
callq 0x3180
leaq -0xe48(%rbp), %rdi
callq 0x3180
leaq -0xe28(%rbp), %rdi
callq 0x3180
leaq -0xe08(%rbp), %rdi
callq 0x3180
leaq -0xde8(%rbp), %rdi
callq 0x3180
leaq -0xdc8(%rbp), %rdi
callq 0x3180
leaq -0xda8(%rbp), %rdi
callq 0x3180
leaq -0xd88(%rbp), %rdi
callq 0x3180
movq -0x8(%rbp), %rdi
callq 0x1fde0
movl -0x21c(%rbp), %ecx
cmpq %rcx, %rax
jne 0x1c9a9
movq 0x34800(%rip), %rdi     # 0x50fb8
leaq 0x25666(%rip), %rsi     # 0x41e25
callq 0x3240
movq %rax, -0x1638(%rbp)
jmp 0x1c7cd
movq -0x1638(%rbp), %rdi
movq 0x347c5(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1c7e2
movb $0x73, -0x20b(%rbp)
jmp 0x1d0ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1c998
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1c98c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1c980
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1c974
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1c968
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1c95c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1c950
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1c944
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1c938
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1c92c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1c920
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1c914
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0xbd8(%rbp), %rdi
callq 0x1fe80
leaq -0xd68(%rbp), %rdi
callq 0xaa60
leaq -0xec8(%rbp), %rdi
callq 0x3180
leaq -0xea8(%rbp), %rdi
callq 0x3180
leaq -0xe88(%rbp), %rdi
callq 0x3180
leaq -0xe68(%rbp), %rdi
callq 0x3180
leaq -0xe48(%rbp), %rdi
callq 0x3180
leaq -0xe28(%rbp), %rdi
callq 0x3180
leaq -0xe08(%rbp), %rdi
callq 0x3180
leaq -0xde8(%rbp), %rdi
callq 0x3180
leaq -0xdc8(%rbp), %rdi
callq 0x3180
leaq -0xda8(%rbp), %rdi
callq 0x3180
leaq -0xd88(%rbp), %rdi
callq 0x3180
jmp 0x1d2f5
jmp 0x1d023
movq -0x10(%rbp), %rdi
callq 0x1fea0
movl %eax, -0x21c(%rbp)
movq 0x345f4(%rip), %rdi     # 0x50fb8
leaq 0x25488(%rip), %rsi     # 0x41e53
callq 0x3240
movq %rax, -0x1640(%rbp)
jmp 0x1c9d9
movq -0x1640(%rbp), %rdi
movq 0x345b9(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1c9ee
movq 0x345e3(%rip), %rdi     # 0x50fd8
leaq -0x148(%rbp), %rsi
callq 0x3070
jmp 0x1ca03
leaq -0x148(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x40700
movb %al, -0x1641(%rbp)
jmp 0x1ca1e
movb -0x1641(%rbp), %al
testb $0x1, %al
jne 0x1ca79
jmp 0x1ca2a
movq 0x34587(%rip), %rdi     # 0x50fb8
leaq 0x253a7(%rip), %rsi     # 0x41ddf
callq 0x3240
movq %rax, -0x1650(%rbp)
jmp 0x1ca46
movq -0x1650(%rbp), %rdi
movq 0x3454c(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1658(%rbp)
jmp 0x1ca62
movq -0x1658(%rbp), %rdi
movq 0x34530(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1ca77
jmp 0x1ca79
jmp 0x1ca7b
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1c9bd
jmp 0x1ca8d
movq 0x34524(%rip), %rdi     # 0x50fb8
leaq 0x25369(%rip), %rsi     # 0x41e04
callq 0x3240
movq %rax, -0x1660(%rbp)
jmp 0x1caa9
movq -0x1660(%rbp), %rdi
movq 0x344e9(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1cabe
movq 0x34513(%rip), %rdi     # 0x50fd8
leaq -0x108(%rbp), %rsi
callq 0x3070
jmp 0x1cad3
leaq -0x108(%rbp), %rdi
leaq -0x20c(%rbp), %rsi
callq 0x40550
movb %al, -0x1661(%rbp)
jmp 0x1caee
movb -0x1661(%rbp), %al
testb $0x1, %al
jne 0x1cb49
jmp 0x1cafa
movq 0x344b7(%rip), %rdi     # 0x50fb8
leaq 0x25289(%rip), %rsi     # 0x41d91
callq 0x3240
movq %rax, -0x1670(%rbp)
jmp 0x1cb16
movq -0x1670(%rbp), %rdi
movq 0x3447c(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1678(%rbp)
jmp 0x1cb32
movq -0x1678(%rbp), %rdi
movq 0x34460(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1cb47
jmp 0x1cb49
jmp 0x1cb4b
movsbl -0x20c(%rbp), %eax
cmpl $0x6e, %eax
je 0x1ca8d
movq -0x10(%rbp), %rax
movq %rax, -0x1688(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x167c(%rbp)
leaq -0x1220(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3100
jmp 0x1cb81
leaq -0x1240(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x3100
jmp 0x1cb96
leaq -0x1260(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x3100
jmp 0x1cba8
movb -0x209(%rbp), %al
movb %al, -0x1691(%rbp)
movsd -0x218(%rbp), %xmm0
movsd %xmm0, -0x1690(%rbp)
leaq -0x1280(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x3100
jmp 0x1cbd9
leaq -0x12a0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3100
jmp 0x1cbee
leaq -0x12c0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x3100
jmp 0x1cc03
leaq -0x12e0(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x3100
jmp 0x1cc18
movb -0x25(%rbp), %al
movb %al, -0x1692(%rbp)
leaq -0x1300(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x3100
jmp 0x1cc36
leaq -0x1320(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x3100
jmp 0x1cc4b
leaq -0x1340(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x3100
jmp 0x1cc60
leaq -0x1360(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x3100
jmp 0x1cc75
movsd -0x1690(%rbp), %xmm0
movl -0x167c(%rbp), %esi
movb -0x1691(%rbp), %al
movb -0x1692(%rbp), %dl
movq %rsp, %rcx
movq %rcx, -0x16a0(%rbp)
leaq -0x1360(%rbp), %rdi
movq %rdi, 0x40(%rcx)
leaq -0x1340(%rbp), %rdi
movq %rdi, 0x38(%rcx)
leaq -0x1320(%rbp), %rdi
movq %rdi, 0x30(%rcx)
leaq -0x1300(%rbp), %rdi
movq %rdi, 0x28(%rcx)
movzbl %dl, %edx
andl $0x1, %edx
movl %edx, 0x20(%rcx)
leaq -0x12e0(%rbp), %rdx
movq %rdx, 0x18(%rcx)
leaq -0x12c0(%rbp), %rdx
movq %rdx, 0x10(%rcx)
leaq -0x12a0(%rbp), %rdx
movq %rdx, 0x8(%rcx)
leaq -0x1280(%rbp), %rdx
movq %rdx, (%rcx)
movsbl %al, %r9d
leaq -0x1200(%rbp), %rdi
leaq -0x1220(%rbp), %rdx
leaq -0x1240(%rbp), %rcx
leaq -0x1260(%rbp), %r8
callq 0xaad0
jmp 0x1cd20
leaq -0x1070(%rbp), %rdi
leaq -0x24(%rbp), %rsi
leaq -0x1200(%rbp), %rdx
callq 0x1ff00
jmp 0x1cd39
movq -0x1688(%rbp), %rdi
leaq -0x1070(%rbp), %rsi
callq 0x1fec0
movb %dl, -0x16a9(%rbp)
movq %rax, -0x16a8(%rbp)
jmp 0x1cd5b
movb -0x16a9(%rbp), %al
movq -0x16a8(%rbp), %rcx
movq %rcx, -0x1370(%rbp)
movb %al, -0x1368(%rbp)
leaq -0x1070(%rbp), %rdi
callq 0x1ff40
leaq -0x1200(%rbp), %rdi
callq 0xafa0
leaq -0x1360(%rbp), %rdi
callq 0x3180
leaq -0x1340(%rbp), %rdi
callq 0x3180
leaq -0x1320(%rbp), %rdi
callq 0x3180
leaq -0x1300(%rbp), %rdi
callq 0x3180
leaq -0x12e0(%rbp), %rdi
callq 0x3180
leaq -0x12c0(%rbp), %rdi
callq 0x3180
leaq -0x12a0(%rbp), %rdi
callq 0x3180
leaq -0x1280(%rbp), %rdi
callq 0x3180
leaq -0x1260(%rbp), %rdi
callq 0x3180
leaq -0x1240(%rbp), %rdi
callq 0x3180
leaq -0x1220(%rbp), %rdi
callq 0x3180
movq -0x10(%rbp), %rdi
callq 0x1fea0
movl -0x21c(%rbp), %ecx
cmpq %rcx, %rax
jne 0x1d021
movq 0x34188(%rip), %rdi     # 0x50fb8
leaq 0x24fee(%rip), %rsi     # 0x41e25
callq 0x3240
movq %rax, -0x16b8(%rbp)
jmp 0x1ce45
movq -0x16b8(%rbp), %rdi
movq 0x3414d(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1ce5a
movb $0x73, -0x20b(%rbp)
jmp 0x1d0ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1d010
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1d004
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1cff8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1cfec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1cfe0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1cfd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1cfc8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1cfbc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1cfb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1cfa4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1cf98
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
jmp 0x1cf8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x428(%rbp)
movl %eax, -0x42c(%rbp)
leaq -0x1070(%rbp), %rdi
callq 0x1ff40
leaq -0x1200(%rbp), %rdi
callq 0xafa0
leaq -0x1360(%rbp), %rdi
callq 0x3180
leaq -0x1340(%rbp), %rdi
callq 0x3180
leaq -0x1320(%rbp), %rdi
callq 0x3180
leaq -0x1300(%rbp), %rdi
callq 0x3180
leaq -0x12e0(%rbp), %rdi
callq 0x3180
leaq -0x12c0(%rbp), %rdi
callq 0x3180
leaq -0x12a0(%rbp), %rdi
callq 0x3180
leaq -0x1280(%rbp), %rdi
callq 0x3180
leaq -0x1260(%rbp), %rdi
callq 0x3180
leaq -0x1240(%rbp), %rdi
callq 0x3180
leaq -0x1220(%rbp), %rdi
callq 0x3180
jmp 0x1d2f5
jmp 0x1d023
jmp 0x1d025
movq 0x33f8c(%rip), %rdi     # 0x50fb8
leaq 0x24e3b(%rip), %rsi     # 0x41e6e
callq 0x3240
movq %rax, -0x16c0(%rbp)
jmp 0x1d041
movq -0x16c0(%rbp), %rdi
movq 0x33f51(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x16c8(%rbp)
jmp 0x1d05d
movq -0x16c8(%rbp), %rdi
movq 0x33f35(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1d072
movq 0x33f3f(%rip), %rdi     # 0x50fb8
leaq 0x24e0e(%rip), %rsi     # 0x41e8e
callq 0x3240
movq %rax, -0x16d0(%rbp)
jmp 0x1d08e
movq -0x16d0(%rbp), %rdi
movq 0x33f04(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1d0a3
movq 0x33f2e(%rip), %rdi     # 0x50fd8
leaq -0x20b(%rbp), %rsi
callq 0x32e0
jmp 0x1d0b8
jmp 0x1d0ba
movsbl -0x20b(%rbp), %eax
cmpl $0x73, %eax
je 0x1b303
movq -0x8(%rbp), %rdi
callq 0x1ff60
testb $0x1, %al
jne 0x1d178
leaq 0x24fd5(%rip), %rsi     # 0x420b7
leaq -0x420(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
jmp 0x1d0f5
movq -0x8(%rbp), %rdi
callq 0x140b0
movq %rax, -0x1378(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14110
movq %rax, -0x1380(%rbp)
leaq -0x1378(%rbp), %rdi
leaq -0x1380(%rbp), %rsi
callq 0x140e0
testb $0x1, %al
jne 0x1d12e
jmp 0x1d168
leaq -0x1378(%rbp), %rdi
callq 0x1ff80
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x420(%rbp), %rdi
callq 0xfd10
jmp 0x1d14f
jmp 0x1d151
leaq -0x1378(%rbp), %rdi
xorl %esi, %esi
callq 0x14170
movq %rax, -0x1388(%rbp)
jmp 0x1d105
leaq -0x420(%rbp), %rdi
callq 0x3310
jmp 0x1d176
jmp 0x1d178
movq -0x10(%rbp), %rdi
callq 0x1ffa0
testb $0x1, %al
jne 0x1d226
leaq 0x24f37(%rip), %rsi     # 0x420c7
leaq -0x630(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
jmp 0x1d1a3
movq -0x10(%rbp), %rdi
callq 0x141b0
movq %rax, -0x1390(%rbp)
movq -0x10(%rbp), %rdi
callq 0x14210
movq %rax, -0x1398(%rbp)
leaq -0x1390(%rbp), %rdi
leaq -0x1398(%rbp), %rsi
callq 0x141e0
testb $0x1, %al
jne 0x1d1dc
jmp 0x1d216
leaq -0x1390(%rbp), %rdi
callq 0x1ffc0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x630(%rbp), %rdi
callq 0x10320
jmp 0x1d1fd
jmp 0x1d1ff
leaq -0x1390(%rbp), %rdi
xorl %esi, %esi
callq 0x14270
movq %rax, -0x13a0(%rbp)
jmp 0x1d1b3
leaq -0x630(%rbp), %rdi
callq 0x3310
jmp 0x1d224
jmp 0x1d226
leaq -0x630(%rbp), %rdi
callq 0x3340
leaq -0x420(%rbp), %rdi
callq 0x3340
leaq -0x208(%rbp), %rdi
callq 0x3180
leaq -0x1e8(%rbp), %rdi
callq 0x3180
leaq -0x1c8(%rbp), %rdi
callq 0x3180
leaq -0x1a8(%rbp), %rdi
callq 0x3180
leaq -0x188(%rbp), %rdi
callq 0x3180
leaq -0x168(%rbp), %rdi
callq 0x3180
leaq -0x148(%rbp), %rdi
callq 0x3180
leaq -0x128(%rbp), %rdi
callq 0x3180
leaq -0x108(%rbp), %rdi
callq 0x3180
leaq -0xe8(%rbp), %rdi
callq 0x3180
leaq -0xc8(%rbp), %rdi
callq 0x3180
leaq -0xa8(%rbp), %rdi
callq 0x3180
leaq -0x88(%rbp), %rdi
callq 0x3180
leaq -0x68(%rbp), %rdi
callq 0x3180
leaq -0x48(%rbp), %rdi
callq 0x3180
addq $0x1720, %rsp           # imm = 0x1720
popq %rbp
retq
leaq -0x630(%rbp), %rdi
callq 0x3340
leaq -0x420(%rbp), %rdi
callq 0x3340
leaq -0x208(%rbp), %rdi
callq 0x3180
leaq -0x1e8(%rbp), %rdi
callq 0x3180
leaq -0x1c8(%rbp), %rdi
callq 0x3180
leaq -0x1a8(%rbp), %rdi
callq 0x3180
leaq -0x188(%rbp), %rdi
callq 0x3180
leaq -0x168(%rbp), %rdi
callq 0x3180
leaq -0x148(%rbp), %rdi
callq 0x3180
leaq -0x128(%rbp), %rdi
callq 0x3180
leaq -0x108(%rbp), %rdi
callq 0x3180
leaq -0xe8(%rbp), %rdi
callq 0x3180
leaq -0xc8(%rbp), %rdi
callq 0x3180
leaq -0xa8(%rbp), %rdi
callq 0x3180
leaq -0x88(%rbp), %rdi
callq 0x3180
leaq -0x68(%rbp), %rdi
callq 0x3180
leaq -0x48(%rbp), %rdi
callq 0x3180
movq -0x428(%rbp), %rdi
callq 0x33d0
nopw (%rax,%rax)