// File: nataly-enne[P]pet-fera/pet_fera_cadastrar.cpp
// Function: cadastrar(std::map<int, AVE_NATIVO, std::less<int>, std::allocator<std::pair<int const, AVE_NATIVO>>>&, std::map<int, AVE_EXOTICO, std::less<int>, std::allocator<std::pair<int const, AVE_EXOTICO>>>&, std::map<int, VETERINARIO, std::less<int>, std::allocator<std::pair<int const, VETERINARIO>>>, std::map<int, TRATADOR, std::less<int>, std::allocator<std::pair<int const, TRATADOR>>>)
void cadastrar(map <int, AVE_NATIVO> &aves_nat, map <int, AVE_EXOTICO> &aves_ex, map <int, VETERINARIO> vets, map <int, TRATADOR> tratadores){
	int id;
	bool check;
	double tam_bico, envergadura, tamanho;;
	string classe, nome_cientifico, dieta, veterinario, tratador, nome_batismo, autorizacao, autorizacao_IBAMA, origem, nome, id_string, sexo_string, tamanho_string, tam_bico_string, envergadura_string;
	char sexo, tipo_animal, sucesso, continuar = 's', tipo = 'v';
	unsigned int old_size;
	ofstream nativos;
	ofstream exoticos;

	do{
		cout << "Deseja cadastrar um AVE NATIVA ou AVE EXÓTICA? \n n - NATIVA\n e - EXÓTICA" << endl;
		cin >> tipo_animal;
		if(tipo_animal != 'n' && tipo_animal != 'e'){
			continuar = 's';
			continue;
		}
		else{
			// Recebe o ID e verifica se é valido.
			do{
				cout << "Digite o id:" << endl;
				cin >> id_string;
				if(!verifica_ID(aves_nat, aves_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 = "Aves";

			// Recebe o nome e verifica se é valido.
			do{
				cout << "Digite o nome:" << endl;
				cin.ignore();
				getline(cin, nome);
				if(!verifica_nome(nome, sucesso)){
					cout << "ERRO: só pode ser inserido letra ou espaço!" << endl << endl;
				}
				transform(nome.begin(), nome.end(), nome.begin(), ::tolower); // Converte a string nome para caracteres maiúsculos.
			}while(sucesso == 'n');


			// Recebe o nome cientifico e verifica se é valido.
			do{
				cout << "Digite o nome científico:" << endl;
				getline(cin, nome_cientifico);
				if(!verifica_nome_cient(nome_cientifico, sucesso)){
					cout << "ERRO: só pode ser inserido letra, espaço ou traço!" << endl << endl;
				}
			}while(sucesso == 'n');

			// Recebe a dieta e verifica se não possui caracteres proibidos.
			do{
				cout << "Digite a dieta: " << endl;
				getline(cin, dieta);
				if(!verifica_dieta(dieta, sucesso)){
					cout << "ERRO: só pode ser inserido letra ou espaço!" << endl << endl;
				}
			}while(sucesso == 'n');

			// Recebe o nome do veterinario e verifica se não possui caracteres proibidos.
			do{
				cout << "Digite o nome do veterinario: " << endl;
				getline(cin, veterinario);
				
				if(!verifica_nome(veterinario, sucesso)){
					cout << "ERRO: só pode ser inserido letra ou espaço!" << endl << endl;
				}
				check = check_vet(vets, veterinario);
				if(!check){
					cout << endl;
					cout << "ERRO: Veterinario não cadastrado!" << endl;
					sucesso = 'n';
				}
			}while(sucesso == 'n');

			// Recebe o nome do tratador e verifica se não possui caracteres proibido, se já foi cadastrado ou se possui nivel de segurança adequado.
			do{
				cout << "Digite o nome do tratador: " << endl;
				getline(cin, tratador);
				if(!verifica_nome(tratador, sucesso)){
					cout << "ERRO: só pode ser inserido letra ou espaço!" << endl << endl;
				}
				check = check_tratador(0, tratadores, tratador, tipo);
				if(!check){
					cout << endl;
					cout << "ERRO: Tratador não cadastrado ou não se adequa!" << endl << endl;
					sucesso = 'n';
				}
			}while(sucesso == 'n');

			// Recebe o nome e verifica se é valido.
			do{
				cout << "Digite o nome de batismo: " << endl;
				getline(cin, nome_batismo);
				if(!verifica_nome(nome_batismo, sucesso)){
					cout << "ERRO: só pode ser inserido letra ou espaço!" << endl << endl;
				}
				transform(nome_batismo.begin(), nome_batismo.end(), nome_batismo.begin(), ::tolower); // Converte a string nome_batismo para caracteres minusculos.
			}while(sucesso == 'n');

			// Recebe o sexo do animal e verifica se é F ou M.
			do{
				cout << "Digite o sexo do animal: " << endl;
				getline(cin, sexo_string);
				transform(sexo_string.begin(), sexo_string.end(), sexo_string.begin(), ::toupper); // Converte a string sexo para caracteres maiúsculos.
				if(sexo_string != "F" && sexo_string != "M" ){
					sucesso = 'n';
					cout << "ERRO: só são permitidos F ou M!" << endl << endl;
				}
				else{
					sexo = (char)sexo_string[0];
					sucesso = 's';
				}
			}while(sucesso == 'n');

			// Recebe o tamanho do animal e verifica se não há caracteres proibidos.
			do{
				cout << "Digite o tamanho do animal: " << endl;
				getline(cin, tamanho_string);
				if(!verifica_tamanho(tamanho_string, sucesso)){
					cout << "ERRO: o tamanho do animal tem que ter apenas um '.' " << endl << endl;
				}
				tamanho = stod(tamanho_string);
			}while(sucesso == 'n');
				
			// Recebe o tamanho do bico do animal e verifica se não há caracteres proibidos.
			do{
				cout << "Digite o tamanho do bico: " << endl;
				getline(cin, tam_bico_string);
				if(!verifica_tamanho(tam_bico_string, sucesso)){
					cout << "ERRO: o tamanho do animal tem que ter apenas um '.' " << endl << endl;
				}
				tam_bico = stod(tam_bico_string);
			}while(sucesso == 'n');
			
			// Recebe a envergadura do animal e verifica se não há caracteres proibidos.
			do{
				cout << "Digite a envergadura: " << endl;
				getline(cin, envergadura_string);
				if(!verifica_tamanho(envergadura_string, sucesso)){
					cout << "ERRO: o tamanho do animal tem que ter apenas um '.' " << endl << endl;
				}
				envergadura = stod(envergadura_string);
			}while(sucesso == 'n');
			
			// Verifica se a autorizacao está no formato correto.
			do{
				cout << "Insira a autorizacao do IBAMA: " << endl;
				getline(cin, autorizacao_IBAMA);
				if(!verifica_autorizacao(autorizacao_IBAMA, sucesso)){
					cout << "ERRO: A autorizacao deve conter letras, numeros ou '-'" << endl << endl;
				}
			}while(sucesso == 'n');
			

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

				// Armazenando valores do tipo ave nativa no map passado pelo usuário.
				aves_nat.insert(pair <int, AVE_NATIVO> (id, AVE_NATIVO(id, classe, nome, nome_cientifico, sexo, tamanho, dieta, veterinario, tratador, nome_batismo, tam_bico, envergadura, autorizacao_IBAMA, origem, autorizacao)));
				
				if (aves_nat.size() == old_size){
					cout << "Falha no cadastro do animal! Tente novamente!" << endl;
					continuar = 's';
					continue;
				}
			}
			else{
				// 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 valores de ave exótica no map passada pelo usuário.
				aves_ex.insert(pair <int, AVE_EXOTICO> (id, AVE_EXOTICO(id, classe, nome, nome_cientifico, sexo, tamanho, dieta, veterinario, tratador, nome_batismo, tam_bico, envergadura, autorizacao_IBAMA, origem, autorizacao)));
				
				if (aves_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(!aves_nat.empty()){
		nativos.open("aves_nat.txt");
		for(auto it = aves_nat.begin(); it != aves_nat.end(); it++){
			nativos << (*it).second;
		}
		nativos.close();
	}
	if(!aves_ex.empty()){
		exoticos.open("aves_ex.txt");
		for(auto it = aves_ex.begin(); it != aves_ex.end(); it++){
			exoticos << (*it).second;
		}
		exoticos.close();
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1540, %rsp           # imm = 0x1540
movq %rdx, -0x11b8(%rbp)
movq %rcx, -0x11b0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%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
movb $0x73, -0x224(%rbp)
movb $0x76, -0x225(%rbp)
leaq -0x430(%rbp), %rdi
callq 0x33b0
jmp 0x1d4c3
leaq -0x640(%rbp), %rdi
callq 0x33b0
jmp 0x1d4d1
jmp 0x1d4d3
movq 0x33ade(%rip), %rdi     # 0x50fb8
leaq 0x24bf5(%rip), %rsi     # 0x420d6
callq 0x3240
movq %rax, -0x11c0(%rbp)
jmp 0x1d4ef
movq -0x11c0(%rbp), %rdi
movq 0x33aa3(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1d504
movq 0x33acd(%rip), %rdi     # 0x50fd8
leaq -0x222(%rbp), %rsi
callq 0x32e0
jmp 0x1d519
movsbl -0x222(%rbp), %eax
cmpl $0x6e, %eax
je 0x1d582
movsbl -0x222(%rbp), %eax
cmpl $0x65, %eax
je 0x1d582
movb $0x73, -0x224(%rbp)
jmp 0x1f225
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f478
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f46c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f460
jmp 0x1d584
movq 0x33a2d(%rip), %rdi     # 0x50fb8
leaq 0x2416d(%rip), %rsi     # 0x416ff
callq 0x3240
movq %rax, -0x11c8(%rbp)
jmp 0x1d5a0
movq -0x11c8(%rbp), %rdi
movq 0x339f2(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1d5b5
movq 0x33a1c(%rip), %rdi     # 0x50fd8
leaq -0x1a0(%rbp), %rsi
callq 0x32c0
jmp 0x1d5ca
movq -0x8(%rbp), %rax
movq %rax, -0x11e0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x11d8(%rbp)
movb -0x222(%rbp), %al
movb %al, -0x11c9(%rbp)
leaq -0x660(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x3100
jmp 0x1d601
movq -0x11d8(%rbp), %rsi
movq -0x11e0(%rbp), %rdi
movb -0x11c9(%rbp), %al
movsbl %al, %edx
leaq -0x660(%rbp), %rcx
leaq -0x223(%rbp), %r8
callq 0x3eef0
movb %al, -0x11e1(%rbp)
jmp 0x1d633
movb -0x11e1(%rbp), %al
xorb $-0x1, %al
movb %al, -0x11e2(%rbp)
leaq -0x660(%rbp), %rdi
callq 0x3180
movb -0x11e2(%rbp), %al
testb $0x1, %al
jne 0x1d659
jmp 0x1d6ce
movq 0x33958(%rip), %rdi     # 0x50fb8
leaq 0x240a5(%rip), %rsi     # 0x4170c
callq 0x3240
movq %rax, -0x11f0(%rbp)
jmp 0x1d675
movq -0x11f0(%rbp), %rdi
movq 0x3391d(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x11f8(%rbp)
jmp 0x1d691
movq -0x11f8(%rbp), %rdi
movq 0x33901(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1d6a6
jmp 0x1d743
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
leaq -0x660(%rbp), %rdi
callq 0x3180
jmp 0x1f460
movl $0x10, %edi
movl $0x8, %esi
callq 0x13c90
movl %eax, -0x11fc(%rbp)
jmp 0x1d6e5
movl -0x11fc(%rbp), %edx
leaq -0x7e8(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x3370
jmp 0x1d700
leaq -0x7e8(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3170
jmp 0x1d712
leaq -0x7e8(%rbp), %rdi
callq 0x31b0
jmp 0x1d743
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
leaq -0x7e8(%rbp), %rdi
callq 0x31b0
jmp 0x1f460
jmp 0x1d745
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1d584
leaq 0x23e52(%rip), %rsi     # 0x415ae
leaq -0x60(%rbp), %rdi
callq 0x32f0
jmp 0x1d767
jmp 0x1d769
movq 0x33848(%rip), %rdi     # 0x50fb8
leaq 0x23fcc(%rip), %rsi     # 0x41743
callq 0x3240
movq %rax, -0x1208(%rbp)
jmp 0x1d785
movq -0x1208(%rbp), %rdi
movq 0x3380d(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1d79a
movq 0x33837(%rip), %rdi     # 0x50fd8
callq 0x33f0
jmp 0x1d7a8
movq 0x33829(%rip), %rdi     # 0x50fd8
leaq -0x180(%rbp), %rsi
callq 0x3070
jmp 0x1d7bd
leaq -0x180(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x3f480
movb %al, -0x1209(%rbp)
jmp 0x1d7d8
movb -0x1209(%rbp), %al
testb $0x1, %al
jne 0x1d833
jmp 0x1d7e4
movq 0x337cd(%rip), %rdi     # 0x50fb8
leaq 0x23f60(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x1218(%rbp)
jmp 0x1d800
movq -0x1218(%rbp), %rdi
movq 0x33792(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1220(%rbp)
jmp 0x1d81c
movq -0x1220(%rbp), %rdi
movq 0x33776(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1d831
jmp 0x1d833
leaq -0x180(%rbp), %rdi
movq %rdi, -0x1230(%rbp)
callq 0x31e0
movq -0x1230(%rbp), %rdi
movq %rax, -0x7f0(%rbp)
callq 0x3120
movq -0x1230(%rbp), %rdi
movq %rax, -0x7f8(%rbp)
callq 0x31e0
movq %rax, -0x800(%rbp)
movq -0x7f0(%rbp), %rdi
movq -0x7f8(%rbp), %rsi
movq -0x800(%rbp), %rdx
movq 0x33739(%rip), %rcx     # 0x50fc8
callq 0x1f5a0
movq %rax, -0x1228(%rbp)
jmp 0x1d89d
movq -0x1228(%rbp), %rax
movq %rax, -0x808(%rbp)
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1d769
jmp 0x1d8bd
movq 0x336f4(%rip), %rdi     # 0x50fb8
leaq 0x2424b(%rip), %rsi     # 0x41b16
callq 0x3240
movq %rax, -0x1238(%rbp)
jmp 0x1d8d9
movq -0x1238(%rbp), %rdi
movq 0x336b9(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1d8ee
movq 0x336e3(%rip), %rdi     # 0x50fd8
leaq -0x80(%rbp), %rsi
callq 0x3070
jmp 0x1d900
leaq -0x80(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x3f5c0
movb %al, -0x1239(%rbp)
jmp 0x1d918
movb -0x1239(%rbp), %al
testb $0x1, %al
jne 0x1d973
jmp 0x1d924
movq 0x3368d(%rip), %rdi     # 0x50fb8
leaq 0x241ff(%rip), %rsi     # 0x41b31
callq 0x3240
movq %rax, -0x1248(%rbp)
jmp 0x1d940
movq -0x1248(%rbp), %rdi
movq 0x33652(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1250(%rbp)
jmp 0x1d95c
movq -0x1250(%rbp), %rdi
movq 0x33636(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1d971
jmp 0x1d973
jmp 0x1d975
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1d8bd
jmp 0x1d987
movq 0x3362a(%rip), %rdi     # 0x50fb8
leaq 0x241d2(%rip), %rsi     # 0x41b67
callq 0x3240
movq %rax, -0x1258(%rbp)
jmp 0x1d9a3
movq -0x1258(%rbp), %rdi
movq 0x335ef(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1d9b8
movq 0x33619(%rip), %rdi     # 0x50fd8
leaq -0xa0(%rbp), %rsi
callq 0x3070
jmp 0x1d9cd
leaq -0xa0(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x40170
movb %al, -0x1259(%rbp)
jmp 0x1d9e8
movb -0x1259(%rbp), %al
testb $0x1, %al
jne 0x1da43
jmp 0x1d9f4
movq 0x335bd(%rip), %rdi     # 0x50fb8
leaq 0x23d50(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x1268(%rbp)
jmp 0x1da10
movq -0x1268(%rbp), %rdi
movq 0x33582(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1270(%rbp)
jmp 0x1da2c
movq -0x1270(%rbp), %rdi
movq 0x33566(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1da41
jmp 0x1da43
jmp 0x1da45
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1d987
jmp 0x1da57
movq 0x3355a(%rip), %rdi     # 0x50fb8
leaq 0x24113(%rip), %rsi     # 0x41b78
callq 0x3240
movq %rax, -0x1278(%rbp)
jmp 0x1da73
movq -0x1278(%rbp), %rdi
movq 0x3351f(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1da88
movq 0x33549(%rip), %rdi     # 0x50fd8
leaq -0xc0(%rbp), %rsi
callq 0x3070
jmp 0x1da9d
leaq -0xc0(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x3f480
movb %al, -0x1279(%rbp)
jmp 0x1dab8
movb -0x1279(%rbp), %al
testb $0x1, %al
jne 0x1db13
jmp 0x1dac4
movq 0x334ed(%rip), %rdi     # 0x50fb8
leaq 0x23c80(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x1288(%rbp)
jmp 0x1dae0
movq -0x1288(%rbp), %rdi
movq 0x334b2(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1290(%rbp)
jmp 0x1dafc
movq -0x1290(%rbp), %rdi
movq 0x33496(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1db11
jmp 0x1db13
leaq -0x828(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x3100
jmp 0x1db28
movq -0x11b8(%rbp), %rdi
leaq -0x828(%rbp), %rsi
callq 0x3d7a0
movb %al, -0x1291(%rbp)
jmp 0x1db43
movb -0x1291(%rbp), %al
andb $0x1, %al
movb %al, -0x25(%rbp)
leaq -0x828(%rbp), %rdi
callq 0x3180
testb $0x1, -0x25(%rbp)
jne 0x1dbd2
movq 0x33451(%rip), %rdi     # 0x50fb8
movq 0x33432(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1db75
movq 0x3343c(%rip), %rdi     # 0x50fb8
leaq 0x24014(%rip), %rsi     # 0x41b97
callq 0x3240
movq %rax, -0x12a0(%rbp)
jmp 0x1db91
movq -0x12a0(%rbp), %rdi
movq 0x33401(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1dba6
movb $0x6e, -0x223(%rbp)
jmp 0x1dbd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
leaq -0x828(%rbp), %rdi
callq 0x3180
jmp 0x1f460
jmp 0x1dbd4
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1da57
jmp 0x1dbe6
movq 0x333cb(%rip), %rdi     # 0x50fb8
leaq 0x23fc6(%rip), %rsi     # 0x41bba
callq 0x3240
movq %rax, -0x12a8(%rbp)
jmp 0x1dc02
movq -0x12a8(%rbp), %rdi
movq 0x33390(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1dc17
movq 0x333ba(%rip), %rdi     # 0x50fd8
leaq -0xe0(%rbp), %rsi
callq 0x3070
jmp 0x1dc2c
leaq -0xe0(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x3f480
movb %al, -0x12a9(%rbp)
jmp 0x1dc47
movb -0x12a9(%rbp), %al
testb $0x1, %al
jne 0x1dca2
jmp 0x1dc53
movq 0x3335e(%rip), %rdi     # 0x50fb8
leaq 0x23af1(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x12b8(%rbp)
jmp 0x1dc6f
movq -0x12b8(%rbp), %rdi
movq 0x33323(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x12c0(%rbp)
jmp 0x1dc8b
movq -0x12c0(%rbp), %rdi
movq 0x33307(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1dca0
jmp 0x1dca2
leaq -0x848(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x3100
jmp 0x1dcb7
movq -0x11b0(%rbp), %rsi
movsbl -0x225(%rbp), %ecx
xorl %edi, %edi
leaq -0x848(%rbp), %rdx
callq 0x3d850
movb %al, -0x12c1(%rbp)
jmp 0x1dcdb
movb -0x12c1(%rbp), %al
andb $0x1, %al
movb %al, -0x25(%rbp)
leaq -0x848(%rbp), %rdi
callq 0x3180
testb $0x1, -0x25(%rbp)
jne 0x1dd8a
movq 0x332b5(%rip), %rdi     # 0x50fb8
movq 0x33296(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1dd11
movq 0x332a0(%rip), %rdi     # 0x50fb8
leaq 0x23eb7(%rip), %rsi     # 0x41bd6
callq 0x3240
movq %rax, -0x12d0(%rbp)
jmp 0x1dd2d
movq -0x12d0(%rbp), %rdi
movq 0x33265(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x12d8(%rbp)
jmp 0x1dd49
movq -0x12d8(%rbp), %rdi
movq 0x33249(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1dd5e
movb $0x6e, -0x223(%rbp)
jmp 0x1dd8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
leaq -0x848(%rbp), %rdi
callq 0x3180
jmp 0x1f460
jmp 0x1dd8c
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1dbe6
jmp 0x1dd9e
movq 0x33213(%rip), %rdi     # 0x50fb8
leaq 0x23e5c(%rip), %rsi     # 0x41c08
callq 0x3240
movq %rax, -0x12e0(%rbp)
jmp 0x1ddba
movq -0x12e0(%rbp), %rdi
movq 0x331d8(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1ddcf
movq 0x33202(%rip), %rdi     # 0x50fd8
leaq -0x100(%rbp), %rsi
callq 0x3070
jmp 0x1dde4
leaq -0x100(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x3f480
movb %al, -0x12e1(%rbp)
jmp 0x1ddff
movb -0x12e1(%rbp), %al
testb $0x1, %al
jne 0x1de5a
jmp 0x1de0b
movq 0x331a6(%rip), %rdi     # 0x50fb8
leaq 0x23939(%rip), %rsi     # 0x41752
callq 0x3240
movq %rax, -0x12f0(%rbp)
jmp 0x1de27
movq -0x12f0(%rbp), %rdi
movq 0x3316b(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x12f8(%rbp)
jmp 0x1de43
movq -0x12f8(%rbp), %rdi
movq 0x3314f(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1de58
jmp 0x1de5a
leaq -0x100(%rbp), %rdi
movq %rdi, -0x1308(%rbp)
callq 0x31e0
movq -0x1308(%rbp), %rdi
movq %rax, -0x850(%rbp)
callq 0x3120
movq -0x1308(%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 0x33112(%rip), %rcx     # 0x50fc8
callq 0x1f5a0
movq %rax, -0x1300(%rbp)
jmp 0x1dec4
movq -0x1300(%rbp), %rax
movq %rax, -0x868(%rbp)
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1dd9e
jmp 0x1dee4
movq 0x330cd(%rip), %rdi     # 0x50fb8
leaq 0x23d31(%rip), %rsi     # 0x41c23
callq 0x3240
movq %rax, -0x1310(%rbp)
jmp 0x1df00
movq -0x1310(%rbp), %rdi
movq 0x33092(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1df15
movq 0x330bc(%rip), %rdi     # 0x50fd8
leaq -0x1c0(%rbp), %rsi
callq 0x3070
jmp 0x1df2a
leaq -0x1c0(%rbp), %rdi
movq %rdi, -0x1320(%rbp)
callq 0x31e0
movq -0x1320(%rbp), %rdi
movq %rax, -0x870(%rbp)
callq 0x3120
movq -0x1320(%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 0x3305a(%rip), %rcx     # 0x50fe0
callq 0x1f5a0
movq %rax, -0x1318(%rbp)
jmp 0x1df94
movq -0x1318(%rbp), %rax
movq %rax, -0x888(%rbp)
leaq 0x23c94(%rip), %rsi     # 0x41c3d
leaq -0x1c0(%rbp), %rdi
callq 0x13c60
movb %al, -0x1321(%rbp)
jmp 0x1dfbd
movb -0x1321(%rbp), %al
testb $0x1, %al
jne 0x1dfc9
jmp 0x1e046
leaq 0x23c6f(%rip), %rsi     # 0x41c3f
leaq -0x1c0(%rbp), %rdi
callq 0x13c60
movb %al, -0x1322(%rbp)
jmp 0x1dfe4
movb -0x1322(%rbp), %al
testb $0x1, %al
jne 0x1dff0
jmp 0x1e046
movb $0x6e, -0x223(%rbp)
movq 0x32fba(%rip), %rdi     # 0x50fb8
leaq 0x23c3c(%rip), %rsi     # 0x41c41
callq 0x3240
movq %rax, -0x1330(%rbp)
jmp 0x1e013
movq -0x1330(%rbp), %rdi
movq 0x32f7f(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1338(%rbp)
jmp 0x1e02f
movq -0x1338(%rbp), %rdi
movq 0x32f63(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e044
jmp 0x1e075
xorl %eax, %eax
movl %eax, %esi
leaq -0x1c0(%rbp), %rdi
callq 0x3430
movq %rax, -0x1340(%rbp)
jmp 0x1e05f
movq -0x1340(%rbp), %rax
movb (%rax), %al
movb %al, -0x221(%rbp)
movb $0x73, -0x223(%rbp)
jmp 0x1e077
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1dee4
jmp 0x1e089
movq 0x32f28(%rip), %rdi     # 0x50fb8
leaq 0x23bcc(%rip), %rsi     # 0x41c63
callq 0x3240
movq %rax, -0x1348(%rbp)
jmp 0x1e0a5
movq -0x1348(%rbp), %rdi
movq 0x32eed(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e0ba
movq 0x32f17(%rip), %rdi     # 0x50fd8
leaq -0x1e0(%rbp), %rsi
callq 0x3070
jmp 0x1e0cf
leaq -0x8a8(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x3100
jmp 0x1e0e4
leaq -0x8a8(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x40310
movb %al, -0x1349(%rbp)
jmp 0x1e0ff
movb -0x1349(%rbp), %al
xorb $-0x1, %al
movb %al, -0x134a(%rbp)
leaq -0x8a8(%rbp), %rdi
callq 0x3180
movb -0x134a(%rbp), %al
testb $0x1, %al
jne 0x1e125
jmp 0x1e197
movq 0x32e8c(%rip), %rdi     # 0x50fb8
leaq 0x23b4d(%rip), %rsi     # 0x41c80
callq 0x3240
movq %rax, -0x1358(%rbp)
jmp 0x1e141
movq -0x1358(%rbp), %rdi
movq 0x32e51(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1360(%rbp)
jmp 0x1e15d
movq -0x1360(%rbp), %rdi
movq 0x32e35(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e172
jmp 0x1e197
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
leaq -0x8a8(%rbp), %rdi
callq 0x3180
jmp 0x1f460
xorl %eax, %eax
movl %eax, %esi
leaq -0x1e0(%rbp), %rdi
callq 0x1f9a0
movsd %xmm0, -0x1368(%rbp)
jmp 0x1e1b1
movsd -0x1368(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1e089
jmp 0x1e1d0
movq 0x32de1(%rip), %rdi     # 0x50fb8
leaq 0x23f43(%rip), %rsi     # 0x42121
callq 0x3240
movq %rax, -0x1370(%rbp)
jmp 0x1e1ec
movq -0x1370(%rbp), %rdi
movq 0x32da6(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e201
movq 0x32dd0(%rip), %rdi     # 0x50fd8
leaq -0x200(%rbp), %rsi
callq 0x3070
jmp 0x1e216
leaq -0x8c8(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x3100
jmp 0x1e22b
leaq -0x8c8(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x40310
movb %al, -0x1371(%rbp)
jmp 0x1e246
movb -0x1371(%rbp), %al
xorb $-0x1, %al
movb %al, -0x1372(%rbp)
leaq -0x8c8(%rbp), %rdi
callq 0x3180
movb -0x1372(%rbp), %al
testb $0x1, %al
jne 0x1e26c
jmp 0x1e2de
movq 0x32d45(%rip), %rdi     # 0x50fb8
leaq 0x23a06(%rip), %rsi     # 0x41c80
callq 0x3240
movq %rax, -0x1380(%rbp)
jmp 0x1e288
movq -0x1380(%rbp), %rdi
movq 0x32d0a(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1388(%rbp)
jmp 0x1e2a4
movq -0x1388(%rbp), %rdi
movq 0x32cee(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e2b9
jmp 0x1e2de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
leaq -0x8c8(%rbp), %rdi
callq 0x3180
jmp 0x1f460
xorl %eax, %eax
movl %eax, %esi
leaq -0x200(%rbp), %rdi
callq 0x1f9a0
movsd %xmm0, -0x1390(%rbp)
jmp 0x1e2f8
movsd -0x1390(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1e1d0
jmp 0x1e317
movq 0x32c9a(%rip), %rdi     # 0x50fb8
leaq 0x23e17(%rip), %rsi     # 0x4213c
callq 0x3240
movq %rax, -0x1398(%rbp)
jmp 0x1e333
movq -0x1398(%rbp), %rdi
movq 0x32c5f(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e348
movq 0x32c89(%rip), %rdi     # 0x50fd8
leaq -0x220(%rbp), %rsi
callq 0x3070
jmp 0x1e35d
leaq -0x8e8(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x3100
jmp 0x1e372
leaq -0x8e8(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x40310
movb %al, -0x1399(%rbp)
jmp 0x1e38d
movb -0x1399(%rbp), %al
xorb $-0x1, %al
movb %al, -0x139a(%rbp)
leaq -0x8e8(%rbp), %rdi
callq 0x3180
movb -0x139a(%rbp), %al
testb $0x1, %al
jne 0x1e3b3
jmp 0x1e425
movq 0x32bfe(%rip), %rdi     # 0x50fb8
leaq 0x238bf(%rip), %rsi     # 0x41c80
callq 0x3240
movq %rax, -0x13a8(%rbp)
jmp 0x1e3cf
movq -0x13a8(%rbp), %rdi
movq 0x32bc3(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x13b0(%rbp)
jmp 0x1e3eb
movq -0x13b0(%rbp), %rdi
movq 0x32ba7(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e400
jmp 0x1e425
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
leaq -0x8e8(%rbp), %rdi
callq 0x3180
jmp 0x1f460
xorl %eax, %eax
movl %eax, %esi
leaq -0x220(%rbp), %rdi
callq 0x1f9a0
movsd %xmm0, -0x13b8(%rbp)
jmp 0x1e43f
movsd -0x13b8(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1e317
jmp 0x1e45e
movq 0x32b53(%rip), %rdi     # 0x50fb8
leaq 0x23905(%rip), %rsi     # 0x41d71
callq 0x3240
movq %rax, -0x13c0(%rbp)
jmp 0x1e47a
movq -0x13c0(%rbp), %rdi
movq 0x32b18(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e48f
movq 0x32b42(%rip), %rdi     # 0x50fd8
leaq -0x140(%rbp), %rsi
callq 0x3070
jmp 0x1e4a4
leaq -0x140(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x40550
movb %al, -0x13c1(%rbp)
jmp 0x1e4bf
movb -0x13c1(%rbp), %al
testb $0x1, %al
jne 0x1e51a
jmp 0x1e4cb
movq 0x32ae6(%rip), %rdi     # 0x50fb8
leaq 0x23aa9(%rip), %rsi     # 0x41f82
callq 0x3240
movq %rax, -0x13d0(%rbp)
jmp 0x1e4e7
movq -0x13d0(%rbp), %rdi
movq 0x32aab(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x13d8(%rbp)
jmp 0x1e503
movq -0x13d8(%rbp), %rdi
movq 0x32a8f(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e518
jmp 0x1e51a
jmp 0x1e51c
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1e45e
movsbl -0x222(%rbp), %eax
cmpl $0x6e, %eax
jne 0x1eb6d
movq -0x8(%rbp), %rdi
callq 0x1ffe0
movl %eax, -0x22c(%rbp)
movq 0x32a66(%rip), %rdi     # 0x50fb8
leaq 0x2386e(%rip), %rsi     # 0x41dc7
callq 0x3240
movq %rax, -0x13e0(%rbp)
jmp 0x1e567
movq -0x13e0(%rbp), %rdi
movq 0x32a2b(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e57c
movq 0x32a55(%rip), %rdi     # 0x50fd8
leaq -0x160(%rbp), %rsi
callq 0x3070
jmp 0x1e591
leaq -0x160(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x40700
movb %al, -0x13e1(%rbp)
jmp 0x1e5ac
movb -0x13e1(%rbp), %al
testb $0x1, %al
jne 0x1e607
jmp 0x1e5b8
movq 0x329f9(%rip), %rdi     # 0x50fb8
leaq 0x23819(%rip), %rsi     # 0x41ddf
callq 0x3240
movq %rax, -0x13f0(%rbp)
jmp 0x1e5d4
movq -0x13f0(%rbp), %rdi
movq 0x329be(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x13f8(%rbp)
jmp 0x1e5f0
movq -0x13f8(%rbp), %rdi
movq 0x329a2(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e605
jmp 0x1e607
jmp 0x1e609
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1e54b
jmp 0x1e61b
movq 0x32996(%rip), %rdi     # 0x50fb8
leaq 0x237db(%rip), %rsi     # 0x41e04
callq 0x3240
movq %rax, -0x1400(%rbp)
jmp 0x1e637
movq -0x1400(%rbp), %rdi
movq 0x3295b(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e64c
movq 0x32985(%rip), %rdi     # 0x50fd8
leaq -0x120(%rbp), %rsi
callq 0x3070
jmp 0x1e661
leaq -0x120(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x40550
movb %al, -0x1401(%rbp)
jmp 0x1e67c
movb -0x1401(%rbp), %al
testb $0x1, %al
jne 0x1e6d7
jmp 0x1e688
movq 0x32929(%rip), %rdi     # 0x50fb8
leaq 0x236fb(%rip), %rsi     # 0x41d91
callq 0x3240
movq %rax, -0x1410(%rbp)
jmp 0x1e6a4
movq -0x1410(%rbp), %rdi
movq 0x328ee(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1418(%rbp)
jmp 0x1e6c0
movq -0x1418(%rbp), %rdi
movq 0x328d2(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e6d5
jmp 0x1e6d7
jmp 0x1e6d9
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1e61b
movq -0x8(%rbp), %rax
movq %rax, -0x1428(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x141c(%rbp)
leaq -0xc00(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3100
jmp 0x1e70f
leaq -0xc20(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x3100
jmp 0x1e724
leaq -0xc40(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x3100
jmp 0x1e736
movb -0x221(%rbp), %al
movb %al, -0x1431(%rbp)
movsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x1430(%rbp)
leaq -0xc60(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x3100
jmp 0x1e764
leaq -0xc80(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x3100
jmp 0x1e779
leaq -0xca0(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x3100
jmp 0x1e78e
leaq -0xcc0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3100
jmp 0x1e7a3
movsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x1448(%rbp)
movsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x1440(%rbp)
leaq -0xce0(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x3100
jmp 0x1e7d2
leaq -0xd00(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x3100
jmp 0x1e7e7
leaq -0xd20(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x3100
jmp 0x1e7fc
movsd -0x1440(%rbp), %xmm2
movsd -0x1448(%rbp), %xmm1
movsd -0x1430(%rbp), %xmm0
movl -0x141c(%rbp), %esi
movb -0x1431(%rbp), %al
movq %rsp, %rcx
leaq -0xd20(%rbp), %rdx
movq %rdx, 0x30(%rcx)
leaq -0xd00(%rbp), %rdx
movq %rdx, 0x28(%rcx)
leaq -0xce0(%rbp), %rdx
movq %rdx, 0x20(%rcx)
leaq -0xcc0(%rbp), %rdx
movq %rdx, 0x18(%rcx)
leaq -0xca0(%rbp), %rdx
movq %rdx, 0x10(%rcx)
leaq -0xc80(%rbp), %rdx
movq %rdx, 0x8(%rcx)
leaq -0xc60(%rbp), %rdx
movq %rdx, (%rcx)
movsbl %al, %r9d
leaq -0xbe0(%rbp), %rdi
leaq -0xc00(%rbp), %rdx
leaq -0xc20(%rbp), %rcx
leaq -0xc40(%rbp), %r8
callq 0xaff0
jmp 0x1e896
leaq -0xa68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0x20040
jmp 0x1e8af
movq -0x1428(%rbp), %rdi
leaq -0xa68(%rbp), %rsi
callq 0x20000
movb %dl, -0x1451(%rbp)
movq %rax, -0x1450(%rbp)
jmp 0x1e8d1
movb -0x1451(%rbp), %al
movq -0x1450(%rbp), %rcx
movq %rcx, -0xd30(%rbp)
movb %al, -0xd28(%rbp)
leaq -0xa68(%rbp), %rdi
callq 0x20080
leaq -0xbe0(%rbp), %rdi
callq 0xb470
leaq -0xd20(%rbp), %rdi
callq 0x3180
leaq -0xd00(%rbp), %rdi
callq 0x3180
leaq -0xce0(%rbp), %rdi
callq 0x3180
leaq -0xcc0(%rbp), %rdi
callq 0x3180
leaq -0xca0(%rbp), %rdi
callq 0x3180
leaq -0xc80(%rbp), %rdi
callq 0x3180
leaq -0xc60(%rbp), %rdi
callq 0x3180
leaq -0xc40(%rbp), %rdi
callq 0x3180
leaq -0xc20(%rbp), %rdi
callq 0x3180
leaq -0xc00(%rbp), %rdi
callq 0x3180
movq -0x8(%rbp), %rdi
callq 0x1ffe0
movl -0x22c(%rbp), %ecx
cmpq %rcx, %rax
jne 0x1eb68
movq 0x3261e(%rip), %rdi     # 0x50fb8
leaq 0x23484(%rip), %rsi     # 0x41e25
callq 0x3240
movq %rax, -0x1460(%rbp)
jmp 0x1e9af
movq -0x1460(%rbp), %rdi
movq 0x325e3(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1e9c4
movb $0x73, -0x224(%rbp)
jmp 0x1f225
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1eb57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1eb4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1eb3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1eb33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1eb27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1eb1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1eb0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1eb03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1eaf7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1eaeb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1eadf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
leaq -0xa68(%rbp), %rdi
callq 0x20080
leaq -0xbe0(%rbp), %rdi
callq 0xb470
leaq -0xd20(%rbp), %rdi
callq 0x3180
leaq -0xd00(%rbp), %rdi
callq 0x3180
leaq -0xce0(%rbp), %rdi
callq 0x3180
leaq -0xcc0(%rbp), %rdi
callq 0x3180
leaq -0xca0(%rbp), %rdi
callq 0x3180
leaq -0xc80(%rbp), %rdi
callq 0x3180
leaq -0xc60(%rbp), %rdi
callq 0x3180
leaq -0xc40(%rbp), %rdi
callq 0x3180
leaq -0xc20(%rbp), %rdi
callq 0x3180
leaq -0xc00(%rbp), %rdi
callq 0x3180
jmp 0x1f460
jmp 0x1f18e
jmp 0x1eb6f
movq 0x32442(%rip), %rdi     # 0x50fb8
leaq 0x232d6(%rip), %rsi     # 0x41e53
callq 0x3240
movq %rax, -0x1468(%rbp)
jmp 0x1eb8b
movq -0x1468(%rbp), %rdi
movq 0x32407(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1eba0
movq 0x32431(%rip), %rdi     # 0x50fd8
leaq -0x160(%rbp), %rsi
callq 0x3070
jmp 0x1ebb5
leaq -0x160(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x40700
movb %al, -0x1469(%rbp)
jmp 0x1ebd0
movb -0x1469(%rbp), %al
testb $0x1, %al
jne 0x1ec2b
jmp 0x1ebdc
movq 0x323d5(%rip), %rdi     # 0x50fb8
leaq 0x231f5(%rip), %rsi     # 0x41ddf
callq 0x3240
movq %rax, -0x1478(%rbp)
jmp 0x1ebf8
movq -0x1478(%rbp), %rdi
movq 0x3239a(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x1480(%rbp)
jmp 0x1ec14
movq -0x1480(%rbp), %rdi
movq 0x3237e(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1ec29
jmp 0x1ec2b
jmp 0x1ec2d
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1eb6f
jmp 0x1ec3f
movq 0x32372(%rip), %rdi     # 0x50fb8
leaq 0x231b7(%rip), %rsi     # 0x41e04
callq 0x3240
movq %rax, -0x1488(%rbp)
jmp 0x1ec5b
movq -0x1488(%rbp), %rdi
movq 0x32337(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1ec70
movq 0x32361(%rip), %rdi     # 0x50fd8
leaq -0x120(%rbp), %rsi
callq 0x3070
jmp 0x1ec85
leaq -0x120(%rbp), %rdi
leaq -0x223(%rbp), %rsi
callq 0x40550
movb %al, -0x1489(%rbp)
jmp 0x1eca0
movb -0x1489(%rbp), %al
testb $0x1, %al
jne 0x1ecfb
jmp 0x1ecac
movq 0x32305(%rip), %rdi     # 0x50fb8
leaq 0x230d7(%rip), %rsi     # 0x41d91
callq 0x3240
movq %rax, -0x1498(%rbp)
jmp 0x1ecc8
movq -0x1498(%rbp), %rdi
movq 0x322ca(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x14a0(%rbp)
jmp 0x1ece4
movq -0x14a0(%rbp), %rdi
movq 0x322ae(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1ecf9
jmp 0x1ecfb
jmp 0x1ecfd
movsbl -0x223(%rbp), %eax
cmpl $0x6e, %eax
je 0x1ec3f
movq -0x10(%rbp), %rax
movq %rax, -0x14b0(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x14a4(%rbp)
leaq -0x1048(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3100
jmp 0x1ed33
leaq -0x1068(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x3100
jmp 0x1ed48
leaq -0x1088(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x3100
jmp 0x1ed5a
movb -0x221(%rbp), %al
movb %al, -0x14b9(%rbp)
movsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x14b8(%rbp)
leaq -0x10a8(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x3100
jmp 0x1ed88
leaq -0x10c8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x3100
jmp 0x1ed9d
leaq -0x10e8(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x3100
jmp 0x1edb2
leaq -0x1108(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x3100
jmp 0x1edc7
movsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x14d0(%rbp)
movsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x14c8(%rbp)
leaq -0x1128(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x3100
jmp 0x1edf6
leaq -0x1148(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x3100
jmp 0x1ee0b
leaq -0x1168(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x3100
jmp 0x1ee20
movsd -0x14c8(%rbp), %xmm2
movsd -0x14d0(%rbp), %xmm1
movsd -0x14b8(%rbp), %xmm0
movl -0x14a4(%rbp), %esi
movb -0x14b9(%rbp), %al
movq %rsp, %rcx
leaq -0x1168(%rbp), %rdx
movq %rdx, 0x30(%rcx)
leaq -0x1148(%rbp), %rdx
movq %rdx, 0x28(%rcx)
leaq -0x1128(%rbp), %rdx
movq %rdx, 0x20(%rcx)
leaq -0x1108(%rbp), %rdx
movq %rdx, 0x18(%rcx)
leaq -0x10e8(%rbp), %rdx
movq %rdx, 0x10(%rcx)
leaq -0x10c8(%rbp), %rdx
movq %rdx, 0x8(%rcx)
leaq -0x10a8(%rbp), %rdx
movq %rdx, (%rcx)
movsbl %al, %r9d
leaq -0x1028(%rbp), %rdi
leaq -0x1048(%rbp), %rdx
leaq -0x1068(%rbp), %rcx
leaq -0x1088(%rbp), %r8
callq 0xb4d0
jmp 0x1eeba
leaq -0xeb0(%rbp), %rdi
leaq -0x24(%rbp), %rsi
leaq -0x1028(%rbp), %rdx
callq 0x200e0
jmp 0x1eed3
movq -0x14b0(%rbp), %rdi
leaq -0xeb0(%rbp), %rsi
callq 0x200a0
movb %dl, -0x14d9(%rbp)
movq %rax, -0x14d8(%rbp)
jmp 0x1eef5
movb -0x14d9(%rbp), %al
movq -0x14d8(%rbp), %rcx
movq %rcx, -0x1178(%rbp)
movb %al, -0x1170(%rbp)
leaq -0xeb0(%rbp), %rdi
callq 0x20120
leaq -0x1028(%rbp), %rdi
callq 0xb920
leaq -0x1168(%rbp), %rdi
callq 0x3180
leaq -0x1148(%rbp), %rdi
callq 0x3180
leaq -0x1128(%rbp), %rdi
callq 0x3180
leaq -0x1108(%rbp), %rdi
callq 0x3180
leaq -0x10e8(%rbp), %rdi
callq 0x3180
leaq -0x10c8(%rbp), %rdi
callq 0x3180
leaq -0x10a8(%rbp), %rdi
callq 0x3180
leaq -0x1088(%rbp), %rdi
callq 0x3180
leaq -0x1068(%rbp), %rdi
callq 0x3180
leaq -0x1048(%rbp), %rdi
callq 0x3180
movq -0x10(%rbp), %rdi
callq 0x20140
movl -0x22c(%rbp), %ecx
cmpq %rcx, %rax
jne 0x1f18c
movq 0x31ffa(%rip), %rdi     # 0x50fb8
leaq 0x22e60(%rip), %rsi     # 0x41e25
callq 0x3240
movq %rax, -0x14e8(%rbp)
jmp 0x1efd3
movq -0x14e8(%rbp), %rdi
movq 0x31fbf(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1efe8
movb $0x73, -0x224(%rbp)
jmp 0x1f225
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f17b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f16f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f163
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f157
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f14b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f13f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f133
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f127
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f11b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f10f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
jmp 0x1f103
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x438(%rbp)
movl %eax, -0x43c(%rbp)
leaq -0xeb0(%rbp), %rdi
callq 0x20120
leaq -0x1028(%rbp), %rdi
callq 0xb920
leaq -0x1168(%rbp), %rdi
callq 0x3180
leaq -0x1148(%rbp), %rdi
callq 0x3180
leaq -0x1128(%rbp), %rdi
callq 0x3180
leaq -0x1108(%rbp), %rdi
callq 0x3180
leaq -0x10e8(%rbp), %rdi
callq 0x3180
leaq -0x10c8(%rbp), %rdi
callq 0x3180
leaq -0x10a8(%rbp), %rdi
callq 0x3180
leaq -0x1088(%rbp), %rdi
callq 0x3180
leaq -0x1068(%rbp), %rdi
callq 0x3180
leaq -0x1048(%rbp), %rdi
callq 0x3180
jmp 0x1f460
jmp 0x1f18e
jmp 0x1f190
movq 0x31e21(%rip), %rdi     # 0x50fb8
leaq 0x22cd0(%rip), %rsi     # 0x41e6e
callq 0x3240
movq %rax, -0x14f0(%rbp)
jmp 0x1f1ac
movq -0x14f0(%rbp), %rdi
movq 0x31de6(%rip), %rsi     # 0x50fa0
callq 0x3280
movq %rax, -0x14f8(%rbp)
jmp 0x1f1c8
movq -0x14f8(%rbp), %rdi
movq 0x31dca(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1f1dd
movq 0x31dd4(%rip), %rdi     # 0x50fb8
leaq 0x22ca3(%rip), %rsi     # 0x41e8e
callq 0x3240
movq %rax, -0x1500(%rbp)
jmp 0x1f1f9
movq -0x1500(%rbp), %rdi
movq 0x31d99(%rip), %rsi     # 0x50fa0
callq 0x3280
jmp 0x1f20e
movq 0x31dc3(%rip), %rdi     # 0x50fd8
leaq -0x224(%rbp), %rsi
callq 0x32e0
jmp 0x1f223
jmp 0x1f225
movsbl -0x224(%rbp), %eax
cmpl $0x73, %eax
je 0x1d4d3
movq -0x8(%rbp), %rdi
callq 0x20160
testb $0x1, %al
jne 0x1f2e3
leaq 0x22f06(%rip), %rsi     # 0x42153
leaq -0x430(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
jmp 0x1f260
movq -0x8(%rbp), %rdi
callq 0x142b0
movq %rax, -0x1180(%rbp)
movq -0x8(%rbp), %rdi
callq 0x14310
movq %rax, -0x1188(%rbp)
leaq -0x1180(%rbp), %rdi
leaq -0x1188(%rbp), %rsi
callq 0x142e0
testb $0x1, %al
jne 0x1f299
jmp 0x1f2d3
leaq -0x1180(%rbp), %rdi
callq 0x20180
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x430(%rbp), %rdi
callq 0x11790
jmp 0x1f2ba
jmp 0x1f2bc
leaq -0x1180(%rbp), %rdi
xorl %esi, %esi
callq 0x14370
movq %rax, -0x1190(%rbp)
jmp 0x1f270
leaq -0x430(%rbp), %rdi
callq 0x3310
jmp 0x1f2e1
jmp 0x1f2e3
movq -0x10(%rbp), %rdi
callq 0x201a0
testb $0x1, %al
jne 0x1f391
leaq 0x22e65(%rip), %rsi     # 0x42160
leaq -0x640(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
jmp 0x1f30e
movq -0x10(%rbp), %rdi
callq 0x143b0
movq %rax, -0x1198(%rbp)
movq -0x10(%rbp), %rdi
callq 0x14410
movq %rax, -0x11a0(%rbp)
leaq -0x1198(%rbp), %rdi
leaq -0x11a0(%rbp), %rsi
callq 0x143e0
testb $0x1, %al
jne 0x1f347
jmp 0x1f381
leaq -0x1198(%rbp), %rdi
callq 0x201c0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x640(%rbp), %rdi
callq 0x11d60
jmp 0x1f368
jmp 0x1f36a
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0x14470
movq %rax, -0x11a8(%rbp)
jmp 0x1f31e
leaq -0x640(%rbp), %rdi
callq 0x3310
jmp 0x1f38f
jmp 0x1f391
leaq -0x640(%rbp), %rdi
callq 0x3340
leaq -0x430(%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 $0x1540, %rsp           # imm = 0x1540
popq %rbp
retq
leaq -0x640(%rbp), %rdi
callq 0x3340
leaq -0x430(%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 -0x438(%rbp), %rdi
callq 0x33d0
nopw %cs:(%rax,%rax)
nopl (%rax)