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

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

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

					classe = "Aves";

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


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

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

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

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

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

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

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

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

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

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

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

					classe = "Aves";

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


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

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

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

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

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

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

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

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


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

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xbb8, %rsp            # imm = 0xBB8
movq %rcx, -0x280(%rbp)
movq %rdx, -0x288(%rbp)
movq %rsi, -0xd0(%rbp)
movq %rdi, -0xd8(%rbp)
leaq -0x220(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x200(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x1e0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xb8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x98(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x78(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x1c0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x1a0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x180(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x58(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x658(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x100(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x160(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x140(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x120(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xbe0(%rbp), %rdi
callq 0x3360
leaq -0x9e0(%rbp), %rdi
callq 0x3360
movq -0xd0(%rbp), %rax
leaq 0x8(%rax), %rbx
leaq -0x7e0(%rbp), %rax
leaq 0x80(%rax), %rcx
movq %rcx, -0x270(%rbp)
leaq 0xa0(%rax), %rcx
movq %rcx, -0x268(%rbp)
leaq 0xc0(%rax), %rcx
movq %rcx, -0x260(%rbp)
leaq 0xe0(%rax), %rcx
movq %rcx, -0x258(%rbp)
leaq 0x108(%rax), %rcx
movq %rcx, -0x250(%rbp)
leaq 0x128(%rax), %rcx
movq %rcx, -0x248(%rbp)
leaq 0x148(%rax), %rcx
movq %rcx, -0x240(%rbp)
addq $0x168, %rax            # imm = 0x168
movq %rax, -0x238(%rbp)
movq -0xd8(%rbp), %rax
leaq 0x8(%rax), %r14
movq 0x195aa(%rip), %r12     # 0x47fd0
movq 0x195b3(%rip), %r15     # 0x47fe0
movq %r14, -0x278(%rbp)
movq %rbx, -0x48(%rbp)
movl $0x2f, %edx
movq %r12, %rdi
leaq 0xc7f0(%rip), %rsi      # 0x3b237
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r15, %rdi
leaq -0x31(%rbp), %rsi
callq 0x3280
movzbl -0x31(%rbp), %eax
cmpl $0x65, %eax
je 0x30036
cmpl $0x6e, %eax
je 0x2eb5b
movl $0x25, %edx
movq %r12, %rdi
leaq 0xc76c(%rip), %rsi      # 0x3b211
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movl $0x10, %edx
movq %r12, %rdi
leaq 0xbb0f(%rip), %rsi      # 0x3a618
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r15, %rdi
leaq -0x32(%rbp), %rsi
callq 0x3280
cmpb $0x73, -0x32(%rbp)
je 0x316e8
cmpb $0x73, -0x2b(%rbp)
je 0x2ea38
jmp 0x316e8
movl $0x15, %edx
movq %r12, %rdi
leaq 0xc6fd(%rip), %rsi      # 0x3b267
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r15, %rdi
leaq -0x30(%rbp), %rsi
callq 0x3120
movq -0xd8(%rbp), %rax
movq 0x10(%rax), %rcx
movq %r14, %rax
testq %rcx, %rcx
je 0x2ebd3
movl -0x30(%rbp), %edx
movq %r14, %rax
xorl %esi, %esi
cmpl %edx, 0x20(%rcx)
setl %sil
cmovgeq %rcx, %rax
movq 0x10(%rcx,%rsi,8), %rcx
testq %rcx, %rcx
jne 0x2ebbc
movq %r14, %rcx
cmpq %r14, %rax
je 0x2ebe8
movl -0x30(%rbp), %ecx
cmpl 0x20(%rax), %ecx
cmovlq %r14, %rax
movq %rax, %rcx
movq %rcx, -0x40(%rbp)
cmpq %r14, %rcx
je 0x31509
movl $0xa, %edx
movq %r12, %rdi
leaq 0xc679(%rip), %rsi      # 0x3b27d
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x228(%rbp), %rdx
movl $0x4, %r8d
leaq -0x230(%rbp), %rdi
xorl %esi, %esi
leaq 0xb9a0(%rip), %rcx      # 0x3a5ee
callq 0x3300
movl $0xe, %edx
movq %r12, %rdi
leaq 0xbb21(%rip), %rsi      # 0x3a783
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r15, %rdi
callq 0x33a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x68(%rbp), %rsi
callq 0x33c0
leaq -0x68(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x2ed31
movl $0x2d, %edx
movq %r12, %rdi
leaq 0xbab8(%rip), %rsi      # 0x3a792
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x60(%rbp), %rbx
testq %rbx, %rbx
je 0x2ed57
movq -0x68(%rbp), %r14
xorl %r13d, %r13d
movsbl (%r14,%r13), %edi
callq 0x32c0
movb %al, (%r14,%r13)
incq %r13
cmpq %r13, %rbx
jne 0x2ed41
cmpb $0x6e, -0x29(%rbp)
je 0x2ec53
movl $0x1a, %edx
movq %r12, %rdi
leaq 0xbde6(%rip), %rsi      # 0x3ab56
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x210(%rbp), %rsi
callq 0x33c0
leaq -0x210(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3844d
testb %al, %al
jne 0x2ee3d
movl $0x35, %edx
movq %r12, %rdi
leaq 0xbd8b(%rip), %rsi      # 0x3ab71
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x2ed61
movl $0x10, %edx
movq %r12, %rdi
leaq 0xbd51(%rip), %rsi      # 0x3aba7
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x33c0
leaq -0x1f0(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38df8
testb %al, %al
jne 0x2ef23
movl $0x2d, %edx
movq %r12, %rdi
leaq 0xb8c6(%rip), %rsi      # 0x3a792
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x2ee47
movl $0x1e, %edx
movq %r12, %rdi
leaq 0xbc7c(%rip), %rsi      # 0x3abb8
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0xc8(%rbp), %rsi
callq 0x33c0
leaq -0xc8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x2f009
movl $0x2d, %edx
movq %r12, %rdi
leaq 0xb7e0(%rip), %rsi      # 0x3a792
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq -0x5f8(%rbp), %rax
movq %rax, -0x608(%rbp)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x608(%rbp), %rdi
callq 0x4574
movq -0x288(%rbp), %rdi
leaq -0x608(%rbp), %rsi
callq 0x36dd9
movl %eax, %ebx
movq -0x608(%rbp), %rdi
leaq -0x5f8(%rbp), %rax
cmpq %rax, %rdi
je 0x2f061
callq 0x31d0
testb %bl, %bl
jne 0x2f0cd
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movl $0x22, %edx
movq %r12, %rdi
leaq 0xbb3b(%rip), %rsi      # 0x3abd7
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movb $0x6e, -0x29(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x2ef2d
movl $0x1b, %edx
movq %r12, %rdi
leaq 0xbb14(%rip), %rsi      # 0x3abfa
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0xa8(%rbp), %rsi
callq 0x33c0
leaq -0xa8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x2f1b3
movl $0x2d, %edx
movq %r12, %rdi
leaq 0xb636(%rip), %rsi      # 0x3a792
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq -0x5d8(%rbp), %rax
movq %rax, -0x5e8(%rbp)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x5e8(%rbp), %rdi
callq 0x4574
xorl %edi, %edi
movq -0x280(%rbp), %rsi
leaq -0x5e8(%rbp), %rdx
movl $0x76, %ecx
callq 0x36e7a
movl %eax, %ebx
movq -0x5e8(%rbp), %rdi
leaq -0x5d8(%rbp), %rax
cmpq %rax, %rdi
je 0x2f212
callq 0x31d0
testb %bl, %bl
jne 0x2f2ac
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movl $0x31, %edx
movq %r12, %rdi
leaq 0xb9c5(%rip), %rsi      # 0x3ac16
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movb $0x6e, -0x29(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x2f0d7
movl $0x1a, %edx
movq %r12, %rdi
leaq 0xb983(%rip), %rsi      # 0x3ac48
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x88(%rbp), %rsi
callq 0x33c0
leaq -0x88(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x2f392
movl $0x2d, %edx
movq %r12, %rdi
leaq 0xb457(%rip), %rsi      # 0x3a792
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x80(%rbp), %rbx
testq %rbx, %rbx
je 0x2f3bb
movq -0x88(%rbp), %r14
xorl %r13d, %r13d
movsbl (%r14,%r13), %edi
callq 0x32c0
movb %al, (%r14,%r13)
incq %r13
cmpq %r13, %rbx
jne 0x2f3a5
cmpb $0x6e, -0x29(%rbp)
je 0x2f2b6
movl $0x19, %edx
movq %r12, %rdi
leaq 0xb88f(%rip), %rsi      # 0x3ac63
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x110(%rbp), %rsi
callq 0x33c0
movq -0x108(%rbp), %rbx
testq %rbx, %rbx
je 0x2f453
movq -0x110(%rbp), %r14
xorl %r13d, %r13d
movsbl (%r14,%r13), %edi
callq 0x33d0
movb %al, (%r14,%r13)
incq %r13
cmpq %r13, %rbx
jne 0x2f43d
leaq -0x110(%rbp), %rbx
movq %rbx, %rdi
leaq 0xb819(%rip), %rsi      # 0x3ac7d
callq 0x30c0
testl %eax, %eax
je 0x2f4ec
movq %rbx, %rdi
leaq 0xb808(%rip), %rsi      # 0x3ac7f
callq 0x30c0
testl %eax, %eax
je 0x2f4ec
movb $0x6e, -0x29(%rbp)
movl $0x21, %edx
movq %r12, %rdi
leaq 0xb7ee(%rip), %rsi      # 0x3ac81
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
jmp 0x2f4fc
movq -0x110(%rbp), %rax
movb (%rax), %al
movb %al, -0x2a(%rbp)
movb $0x73, -0x29(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x2f3c5
movl $0x1c, %edx
movq %r12, %rdi
leaq 0xb78e(%rip), %rsi      # 0x3aca3
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x170(%rbp), %rsi
callq 0x33c0
leaq -0x5b8(%rbp), %rax
movq %rax, -0x5c8(%rbp)
movq -0x170(%rbp), %rsi
movq -0x168(%rbp), %rdx
addq %rsi, %rdx
leaq -0x5c8(%rbp), %rdi
callq 0x4574
leaq -0x5c8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38f49
movl %eax, %ebx
movq -0x5c8(%rbp), %rdi
leaq -0x5b8(%rbp), %rax
cmpq %rax, %rdi
je 0x2f5bd
callq 0x31d0
testb %bl, %bl
je 0x2f60d
movq -0x170(%rbp), %r13
callq 0x3040
movq %rax, %rbx
movl (%rax), %r14d
movl $0x0, (%rax)
movq %r13, %rdi
leaq -0x7e0(%rbp), %rsi
callq 0x3170
movsd %xmm0, -0xf0(%rbp)
cmpq %r13, -0x7e0(%rbp)
je 0x318ff
movl (%rbx), %eax
testl %eax, %eax
je 0x2f675
cmpl $0x22, %eax
jne 0x2f678
jmp 0x31947
movl $0x34, %edx
movq %r12, %rdi
leaq 0xb6a4(%rip), %rsi      # 0x3acc0
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
jmp 0x2f678
movl %r14d, (%rbx)
cmpb $0x6e, -0x29(%rbp)
je 0x2f506
movl $0x1a, %edx
movq %r12, %rdi
leaq 0xbad0(%rip), %rsi      # 0x3b161
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x150(%rbp), %rsi
callq 0x33c0
leaq -0x598(%rbp), %rax
movq %rax, -0x5a8(%rbp)
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
addq %rsi, %rdx
leaq -0x5a8(%rbp), %rdi
callq 0x4574
leaq -0x5a8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38f49
movl %eax, %ebx
movq -0x5a8(%rbp), %rdi
leaq -0x598(%rbp), %rax
cmpq %rax, %rdi
je 0x2f739
callq 0x31d0
testb %bl, %bl
jne 0x2f7a3
movl $0x34, %edx
movq %r12, %rdi
leaq 0xb574(%rip), %rsi      # 0x3acc0
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x150(%rbp), %r13
callq 0x3040
movq %rax, %rbx
movl (%rax), %r14d
movl $0x0, (%rax)
movq %r13, %rdi
leaq -0x7e0(%rbp), %rsi
callq 0x3170
movsd %xmm0, -0xe8(%rbp)
cmpq %r13, -0x7e0(%rbp)
je 0x318cf
movl (%rbx), %eax
testl %eax, %eax
je 0x2f7ef
cmpl $0x22, %eax
jne 0x2f7f2
jmp 0x31923
movl %r14d, (%rbx)
cmpb $0x6e, -0x29(%rbp)
je 0x2f682
movl $0x16, %edx
movq %r12, %rdi
leaq 0xb971(%rip), %rsi      # 0x3b17c
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x130(%rbp), %rsi
callq 0x33c0
leaq -0x578(%rbp), %rax
movq %rax, -0x588(%rbp)
movq -0x130(%rbp), %rsi
movq -0x128(%rbp), %rdx
addq %rsi, %rdx
leaq -0x588(%rbp), %rdi
callq 0x4574
leaq -0x588(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38f49
movl %eax, %r13d
movq -0x588(%rbp), %rdi
leaq -0x578(%rbp), %rax
cmpq %rax, %rdi
je 0x2f8b4
callq 0x31d0
testb %r13b, %r13b
jne 0x2f91f
movl $0x34, %edx
movq %r12, %rdi
leaq 0xb3f8(%rip), %rsi      # 0x3acc0
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x130(%rbp), %r13
movl (%rbx), %r14d
movl $0x0, (%rbx)
movq %r13, %rdi
leaq -0x7e0(%rbp), %rsi
callq 0x3170
movsd %xmm0, -0xe0(%rbp)
cmpq %r13, -0x7e0(%rbp)
je 0x318e7
movl (%rbx), %eax
testl %eax, %eax
je 0x2f963
cmpl $0x22, %eax
jne 0x2f966
jmp 0x3192f
movl %r14d, (%rbx)
cmpb $0x6e, -0x29(%rbp)
movq -0x278(%rbp), %r14
je 0x2f7fc
movl $0x1f, %edx
movq %r12, %rdi
leaq 0xb42b(%rip), %rsi      # 0x3adb1
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x33c0
leaq -0x1b0(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x391c3
testb %al, %al
jne 0x2fa53
movl $0x36, %edx
movq %r12, %rdi
leaq 0xb5c6(%rip), %rsi      # 0x3afc2
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x2f977
movl $0x17, %edx
movq %r12, %rdi
leaq 0xb39b(%rip), %rsi      # 0x3ae07
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x190(%rbp), %rsi
callq 0x33c0
leaq -0x190(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x39389
testb %al, %al
jne 0x2fb39
movl $0x24, %edx
movq %r12, %rdi
leaq 0xb33d(%rip), %rsi      # 0x3ae1f
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x2fa5d
movl $0x20, %edx
movq %r12, %rdi
leaq 0xb2f2(%rip), %rsi      # 0x3ae44
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x33c0
leaq -0x1d0(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x391c3
testb %al, %al
jne 0x2fc1f
movl $0x35, %edx
movq %r12, %rdi
leaq 0xb209(%rip), %rsi      # 0x3add1
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x2fb43
movl -0x30(%rbp), %ebx
leaq -0x558(%rbp), %rax
movq %rax, -0x568(%rbp)
movq -0x230(%rbp), %rsi
movq -0x228(%rbp), %rdx
addq %rsi, %rdx
leaq -0x568(%rbp), %rdi
callq 0x4574
leaq -0x538(%rbp), %rax
movq %rax, -0x548(%rbp)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
addq %rsi, %rdx
leaq -0x548(%rbp), %rdi
callq 0x4574
leaq -0x518(%rbp), %rax
movq %rax, -0x528(%rbp)
movq -0x210(%rbp), %rsi
movq -0x208(%rbp), %rdx
addq %rsi, %rdx
leaq -0x528(%rbp), %rdi
callq 0x4574
leaq -0x4f8(%rbp), %rax
movq %rax, -0x508(%rbp)
movq -0x1f0(%rbp), %rsi
movq -0x1e8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x508(%rbp), %rdi
callq 0x4574
leaq -0x4d8(%rbp), %rax
movq %rax, -0x4e8(%rbp)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4e8(%rbp), %rdi
callq 0x4574
leaq -0x4b8(%rbp), %rax
movq %rax, -0x4c8(%rbp)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4c8(%rbp), %rdi
callq 0x4574
leaq -0x498(%rbp), %rax
movq %rax, -0x4a8(%rbp)
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4a8(%rbp), %rdi
callq 0x4574
leaq -0x478(%rbp), %rax
movq %rax, -0x488(%rbp)
movq -0x1b0(%rbp), %rsi
movq -0x1a8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x488(%rbp), %rdi
callq 0x4574
leaq -0x458(%rbp), %rax
movq %rax, -0x468(%rbp)
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
addq %rsi, %rdx
leaq -0x468(%rbp), %rdi
callq 0x4574
leaq -0x638(%rbp), %rax
movq %rax, -0x648(%rbp)
movq -0x1d0(%rbp), %rsi
movq -0x1c8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x648(%rbp), %r13
movq %r13, %rdi
callq 0x4574
subq $0x8, %rsp
movsbl -0x2a(%rbp), %r9d
leaq -0x7e0(%rbp), %rdi
movl %ebx, %esi
leaq -0x568(%rbp), %rdx
leaq -0x548(%rbp), %rcx
leaq -0x528(%rbp), %r8
movsd -0xf0(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm1
movsd -0xe0(%rbp), %xmm2
pushq %r13
leaq -0x468(%rbp), %rax
pushq %rax
leaq -0x488(%rbp), %rax
pushq %rax
leaq -0x4a8(%rbp), %rax
pushq %rax
leaq -0x4c8(%rbp), %rax
pushq %rax
leaq -0x4e8(%rbp), %rax
pushq %rax
leaq -0x508(%rbp), %rax
pushq %rax
callq 0x79dc
addq $0x40, %rsp
movl -0x7d8(%rbp), %eax
movq -0x40(%rbp), %rbx
movl %eax, 0x30(%rbx)
leaq 0x38(%rbx), %rdi
leaq -0x7d0(%rbp), %rsi
callq 0x30f0
leaq 0x58(%rbx), %rdi
leaq -0x7b0(%rbp), %rsi
callq 0x30f0
leaq 0x78(%rbx), %rdi
leaq -0x790(%rbp), %rsi
callq 0x30f0
leaq -0x7d0(%rbp), %rax
movups 0x60(%rax), %xmm0
movups %xmm0, 0x98(%rbx)
leaq 0xa8(%rbx), %rdi
movq -0x270(%rbp), %rsi
callq 0x30f0
leaq 0xc8(%rbx), %rdi
movq -0x268(%rbp), %rsi
callq 0x30f0
leaq 0xe8(%rbx), %rdi
movq -0x260(%rbp), %rsi
callq 0x30f0
leaq 0x108(%rbx), %rdi
movq -0x258(%rbp), %rsi
callq 0x30f0
leaq 0x130(%rbx), %rdi
movq -0x250(%rbp), %rsi
callq 0x30f0
leaq 0x150(%rbx), %rdi
movq -0x248(%rbp), %rsi
callq 0x30f0
leaq 0x170(%rbx), %rdi
movq -0x240(%rbp), %rsi
callq 0x30f0
movq -0x238(%rbp), %rax
movups (%rax), %xmm0
movups %xmm0, 0x190(%rbx)
leaq -0x7e0(%rbp), %rdi
callq 0x7e22
movq -0x648(%rbp), %rdi
leaq -0x638(%rbp), %rax
cmpq %rax, %rdi
je 0x2ff57
callq 0x31d0
movq -0x468(%rbp), %rdi
leaq -0x458(%rbp), %rax
cmpq %rax, %rdi
je 0x2ff6f
callq 0x31d0
movq -0x488(%rbp), %rdi
leaq -0x478(%rbp), %rax
cmpq %rax, %rdi
je 0x2ff87
callq 0x31d0
movq -0x4a8(%rbp), %rdi
leaq -0x498(%rbp), %rax
cmpq %rax, %rdi
je 0x2ff9f
callq 0x31d0
movq -0x4c8(%rbp), %rdi
leaq -0x4b8(%rbp), %rax
cmpq %rax, %rdi
je 0x2ffb7
callq 0x31d0
movq -0x4e8(%rbp), %rdi
leaq -0x4d8(%rbp), %rax
cmpq %rax, %rdi
je 0x2ffcf
callq 0x31d0
movq -0x508(%rbp), %rdi
leaq -0x4f8(%rbp), %rax
cmpq %rax, %rdi
je 0x2ffe7
callq 0x31d0
movq -0x528(%rbp), %rdi
leaq -0x518(%rbp), %rax
cmpq %rax, %rdi
je 0x2ffff
callq 0x31d0
movq -0x548(%rbp), %rdi
leaq -0x538(%rbp), %rax
cmpq %rax, %rdi
je 0x30017
callq 0x31d0
movq -0x568(%rbp), %rdi
leaq -0x558(%rbp), %rax
cmpq %rax, %rdi
je 0x3002f
callq 0x31d0
movb $0x73, %bl
jmp 0x31547
movl $0x15, %edx
movq %r12, %rdi
leaq 0xb222(%rip), %rsi      # 0x3b267
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r15, %rdi
leaq -0x30(%rbp), %rsi
callq 0x3120
movq -0xd0(%rbp), %rax
movq 0x10(%rax), %rcx
movq %rbx, %rax
testq %rcx, %rcx
je 0x300ae
movl -0x30(%rbp), %edx
movq %rbx, %rax
xorl %esi, %esi
cmpl %edx, 0x20(%rcx)
setl %sil
cmovgeq %rcx, %rax
movq 0x10(%rcx,%rsi,8), %rcx
testq %rcx, %rcx
jne 0x30097
movq %rbx, %rcx
cmpq %rbx, %rax
je 0x300c3
movl -0x30(%rbp), %ecx
cmpl 0x20(%rax), %ecx
cmovlq %rbx, %rax
movq %rax, %rcx
movq %rcx, -0x40(%rbp)
cmpq %rbx, %rcx
je 0x315f1
movl $0xa, %edx
movq %r12, %rdi
leaq 0xb19e(%rip), %rsi      # 0x3b27d
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x228(%rbp), %rdx
movl $0x4, %r8d
leaq -0x230(%rbp), %rdi
xorl %esi, %esi
leaq 0xa4c5(%rip), %rcx      # 0x3a5ee
callq 0x3300
movl $0xe, %edx
movq %r12, %rdi
leaq 0xa646(%rip), %rsi      # 0x3a783
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r15, %rdi
callq 0x33a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x68(%rbp), %rsi
callq 0x33c0
leaq -0x68(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x3020c
movl $0x2d, %edx
movq %r12, %rdi
leaq 0xa5dd(%rip), %rsi      # 0x3a792
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x60(%rbp), %rbx
testq %rbx, %rbx
je 0x30232
movq -0x68(%rbp), %r14
xorl %r13d, %r13d
movsbl (%r14,%r13), %edi
callq 0x32c0
movb %al, (%r14,%r13)
incq %r13
cmpq %r13, %rbx
jne 0x3021c
cmpb $0x6e, -0x29(%rbp)
je 0x3012e
movl $0x1a, %edx
movq %r12, %rdi
leaq 0xa90b(%rip), %rsi      # 0x3ab56
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x210(%rbp), %rsi
callq 0x33c0
leaq -0x210(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3844d
testb %al, %al
jne 0x30318
movl $0x35, %edx
movq %r12, %rdi
leaq 0xa8b0(%rip), %rsi      # 0x3ab71
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x3023c
movl $0x10, %edx
movq %r12, %rdi
leaq 0xa876(%rip), %rsi      # 0x3aba7
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x33c0
leaq -0x1f0(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38df8
testb %al, %al
jne 0x303fe
movl $0x2d, %edx
movq %r12, %rdi
leaq 0xa3eb(%rip), %rsi      # 0x3a792
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x30322
movl $0x1e, %edx
movq %r12, %rdi
leaq 0xa7a1(%rip), %rsi      # 0x3abb8
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0xc8(%rbp), %rsi
callq 0x33c0
leaq -0xc8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x304e4
movl $0x2d, %edx
movq %r12, %rdi
leaq 0xa305(%rip), %rsi      # 0x3a792
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq -0x438(%rbp), %rax
movq %rax, -0x448(%rbp)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x448(%rbp), %rdi
callq 0x4574
movq -0x288(%rbp), %rdi
leaq -0x448(%rbp), %rsi
callq 0x36dd9
movl %eax, %ebx
movq -0x448(%rbp), %rdi
leaq -0x438(%rbp), %rax
cmpq %rax, %rdi
je 0x3053c
callq 0x31d0
testb %bl, %bl
jne 0x305a8
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movl $0x22, %edx
movq %r12, %rdi
leaq 0xa660(%rip), %rsi      # 0x3abd7
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movb $0x6e, -0x29(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x30408
movl $0x1b, %edx
movq %r12, %rdi
leaq 0xa639(%rip), %rsi      # 0x3abfa
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0xa8(%rbp), %rsi
callq 0x33c0
leaq -0xa8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x3068e
movl $0x2d, %edx
movq %r12, %rdi
leaq 0xa15b(%rip), %rsi      # 0x3a792
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq -0x418(%rbp), %rax
movq %rax, -0x428(%rbp)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x428(%rbp), %rdi
callq 0x4574
xorl %edi, %edi
movq -0x280(%rbp), %rsi
leaq -0x428(%rbp), %rdx
movl $0x76, %ecx
callq 0x36e7a
movl %eax, %ebx
movq -0x428(%rbp), %rdi
leaq -0x418(%rbp), %rax
cmpq %rax, %rdi
je 0x306ed
callq 0x31d0
testb %bl, %bl
jne 0x30787
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movl $0x31, %edx
movq %r12, %rdi
leaq 0xa4ea(%rip), %rsi      # 0x3ac16
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movb $0x6e, -0x29(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x305b2
movl $0x1a, %edx
movq %r12, %rdi
leaq 0xa4a8(%rip), %rsi      # 0x3ac48
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x88(%rbp), %rsi
callq 0x33c0
leaq -0x88(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x3086d
movl $0x2d, %edx
movq %r12, %rdi
leaq 0x9f7c(%rip), %rsi      # 0x3a792
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x80(%rbp), %rbx
testq %rbx, %rbx
je 0x30896
movq -0x88(%rbp), %r14
xorl %r13d, %r13d
movsbl (%r14,%r13), %edi
callq 0x32c0
movb %al, (%r14,%r13)
incq %r13
cmpq %r13, %rbx
jne 0x30880
cmpb $0x6e, -0x29(%rbp)
je 0x30791
movl $0x19, %edx
movq %r12, %rdi
leaq 0xa3b4(%rip), %rsi      # 0x3ac63
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x110(%rbp), %rsi
callq 0x33c0
movq -0x108(%rbp), %rbx
testq %rbx, %rbx
je 0x3092e
movq -0x110(%rbp), %r14
xorl %r13d, %r13d
movsbl (%r14,%r13), %edi
callq 0x33d0
movb %al, (%r14,%r13)
incq %r13
cmpq %r13, %rbx
jne 0x30918
leaq -0x110(%rbp), %rbx
movq %rbx, %rdi
leaq 0xa33e(%rip), %rsi      # 0x3ac7d
callq 0x30c0
testl %eax, %eax
je 0x309c7
movq %rbx, %rdi
leaq 0xa32d(%rip), %rsi      # 0x3ac7f
callq 0x30c0
testl %eax, %eax
je 0x309c7
movb $0x6e, -0x29(%rbp)
movl $0x21, %edx
movq %r12, %rdi
leaq 0xa313(%rip), %rsi      # 0x3ac81
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
jmp 0x309d7
movq -0x110(%rbp), %rax
movb (%rax), %al
movb %al, -0x2a(%rbp)
movb $0x73, -0x29(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x308a0
movl $0x1c, %edx
movq %r12, %rdi
leaq 0xa2b3(%rip), %rsi      # 0x3aca3
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x170(%rbp), %rsi
callq 0x33c0
leaq -0x3f8(%rbp), %rax
movq %rax, -0x408(%rbp)
movq -0x170(%rbp), %rsi
movq -0x168(%rbp), %rdx
addq %rsi, %rdx
leaq -0x408(%rbp), %rdi
callq 0x4574
leaq -0x408(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38f49
movl %eax, %ebx
movq -0x408(%rbp), %rdi
leaq -0x3f8(%rbp), %rax
cmpq %rax, %rdi
je 0x30a98
callq 0x31d0
testb %bl, %bl
jne 0x30b02
movl $0x34, %edx
movq %r12, %rdi
leaq 0xa215(%rip), %rsi      # 0x3acc0
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x170(%rbp), %r13
callq 0x3040
movq %rax, %rbx
movl (%rax), %r14d
movl $0x0, (%rax)
movq %r13, %rdi
leaq -0x7e0(%rbp), %rsi
callq 0x3170
movsd %xmm0, -0xf0(%rbp)
cmpq %r13, -0x7e0(%rbp)
je 0x318c3
movl (%rbx), %eax
testl %eax, %eax
je 0x30b4e
cmpl $0x22, %eax
jne 0x30b51
jmp 0x3190b
movl %r14d, (%rbx)
cmpb $0x6e, -0x29(%rbp)
je 0x309e1
movl $0x1a, %edx
movq %r12, %rdi
leaq 0xa5f7(%rip), %rsi      # 0x3b161
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x150(%rbp), %rsi
callq 0x33c0
leaq -0x3d8(%rbp), %rax
movq %rax, -0x3e8(%rbp)
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3e8(%rbp), %rdi
callq 0x4574
leaq -0x3e8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38f49
movl %eax, %r13d
movq -0x3e8(%rbp), %rdi
leaq -0x3d8(%rbp), %rax
cmpq %rax, %rdi
je 0x30c13
callq 0x31d0
testb %r13b, %r13b
jne 0x30c7e
movl $0x34, %edx
movq %r12, %rdi
leaq 0xa099(%rip), %rsi      # 0x3acc0
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x150(%rbp), %r13
movl (%rbx), %r14d
movl $0x0, (%rbx)
movq %r13, %rdi
leaq -0x7e0(%rbp), %rsi
callq 0x3170
movsd %xmm0, -0xe8(%rbp)
cmpq %r13, -0x7e0(%rbp)
je 0x318db
movl (%rbx), %eax
testl %eax, %eax
je 0x30cc2
cmpl $0x22, %eax
jne 0x30cc5
jmp 0x31917
movl %r14d, (%rbx)
cmpb $0x6e, -0x29(%rbp)
je 0x30b5b
movl $0x16, %edx
movq %r12, %rdi
leaq 0xa49e(%rip), %rsi      # 0x3b17c
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x130(%rbp), %rsi
callq 0x33c0
leaq -0x3b8(%rbp), %rax
movq %rax, -0x3c8(%rbp)
movq -0x130(%rbp), %rsi
movq -0x128(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3c8(%rbp), %rdi
callq 0x4574
leaq -0x3c8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38f49
movl %eax, %r13d
movq -0x3c8(%rbp), %rdi
leaq -0x3b8(%rbp), %rax
cmpq %rax, %rdi
je 0x30d87
callq 0x31d0
testb %r13b, %r13b
jne 0x30df2
movl $0x34, %edx
movq %r12, %rdi
leaq 0x9f25(%rip), %rsi      # 0x3acc0
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x130(%rbp), %r13
movl (%rbx), %r14d
movl $0x0, (%rbx)
movq %r13, %rdi
leaq -0x7e0(%rbp), %rsi
callq 0x3170
movsd %xmm0, -0xe0(%rbp)
cmpq %r13, -0x7e0(%rbp)
je 0x318f3
movl (%rbx), %eax
testl %eax, %eax
je 0x30e36
cmpl $0x22, %eax
jne 0x30e39
jmp 0x3193b
movl %r14d, (%rbx)
cmpb $0x6e, -0x29(%rbp)
movq -0x278(%rbp), %r14
je 0x30ccf
movl $0x1f, %edx
movq %r12, %rdi
leaq 0x9f58(%rip), %rsi      # 0x3adb1
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x33c0
leaq -0x1b0(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x391c3
testb %al, %al
jne 0x30f26
movl $0x36, %edx
movq %r12, %rdi
leaq 0xa0f3(%rip), %rsi      # 0x3afc2
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x30e4a
movl $0x1a, %edx
movq %r12, %rdi
leaq 0x9f54(%rip), %rsi      # 0x3ae93
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x190(%rbp), %rsi
callq 0x33c0
leaq -0x190(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x39389
testb %al, %al
jne 0x3100c
movl $0x24, %edx
movq %r12, %rdi
leaq 0x9e6a(%rip), %rsi      # 0x3ae1f
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x30f30
movl $0x20, %edx
movq %r12, %rdi
leaq 0x9e1f(%rip), %rsi      # 0x3ae44
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x33c0
leaq -0x1d0(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x391c3
testb %al, %al
jne 0x310f2
movl $0x35, %edx
movq %r12, %rdi
leaq 0x9d36(%rip), %rsi      # 0x3add1
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x31016
movl -0x30(%rbp), %ebx
leaq -0x398(%rbp), %rax
movq %rax, -0x3a8(%rbp)
movq -0x230(%rbp), %rsi
movq -0x228(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3a8(%rbp), %rdi
callq 0x4574
leaq -0x378(%rbp), %rax
movq %rax, -0x388(%rbp)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
addq %rsi, %rdx
leaq -0x388(%rbp), %rdi
callq 0x4574
leaq -0x358(%rbp), %rax
movq %rax, -0x368(%rbp)
movq -0x210(%rbp), %rsi
movq -0x208(%rbp), %rdx
addq %rsi, %rdx
leaq -0x368(%rbp), %rdi
callq 0x4574
leaq -0x338(%rbp), %rax
movq %rax, -0x348(%rbp)
movq -0x1f0(%rbp), %rsi
movq -0x1e8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x348(%rbp), %rdi
callq 0x4574
leaq -0x318(%rbp), %rax
movq %rax, -0x328(%rbp)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x328(%rbp), %rdi
callq 0x4574
leaq -0x2f8(%rbp), %rax
movq %rax, -0x308(%rbp)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x308(%rbp), %rdi
callq 0x4574
leaq -0x2d8(%rbp), %rax
movq %rax, -0x2e8(%rbp)
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2e8(%rbp), %rdi
callq 0x4574
leaq -0x2b8(%rbp), %rax
movq %rax, -0x2c8(%rbp)
movq -0x1b0(%rbp), %rsi
movq -0x1a8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2c8(%rbp), %rdi
callq 0x4574
leaq -0x298(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2a8(%rbp), %rdi
callq 0x4574
leaq -0x618(%rbp), %rax
movq %rax, -0x628(%rbp)
movq -0x1d0(%rbp), %rsi
movq -0x1c8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x628(%rbp), %r13
movq %r13, %rdi
callq 0x4574
subq $0x8, %rsp
movsbl -0x2a(%rbp), %r9d
leaq -0x7e0(%rbp), %rdi
movl %ebx, %esi
leaq -0x3a8(%rbp), %rdx
leaq -0x388(%rbp), %rcx
leaq -0x368(%rbp), %r8
movsd -0xf0(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm1
movsd -0xe0(%rbp), %xmm2
pushq %r13
leaq -0x2a8(%rbp), %rax
pushq %rax
leaq -0x2c8(%rbp), %rax
pushq %rax
leaq -0x2e8(%rbp), %rax
pushq %rax
leaq -0x308(%rbp), %rax
pushq %rax
leaq -0x328(%rbp), %rax
pushq %rax
leaq -0x348(%rbp), %rax
pushq %rax
callq 0x7e3c
addq $0x40, %rsp
movl -0x7d8(%rbp), %eax
movq -0x40(%rbp), %rbx
movl %eax, 0x30(%rbx)
leaq 0x38(%rbx), %rdi
leaq -0x7d0(%rbp), %rsi
callq 0x30f0
leaq 0x58(%rbx), %rdi
leaq -0x7b0(%rbp), %rsi
callq 0x30f0
leaq 0x78(%rbx), %rdi
leaq -0x790(%rbp), %rsi
callq 0x30f0
leaq -0x7d0(%rbp), %rax
movups 0x60(%rax), %xmm0
movups %xmm0, 0x98(%rbx)
leaq 0xa8(%rbx), %rdi
movq -0x270(%rbp), %rsi
callq 0x30f0
leaq 0xc8(%rbx), %rdi
movq -0x268(%rbp), %rsi
callq 0x30f0
leaq 0xe8(%rbx), %rdi
movq -0x260(%rbp), %rsi
callq 0x30f0
leaq 0x108(%rbx), %rdi
movq -0x258(%rbp), %rsi
callq 0x30f0
leaq 0x130(%rbx), %rdi
movq -0x250(%rbp), %rsi
callq 0x30f0
leaq 0x150(%rbx), %rdi
movq -0x248(%rbp), %rsi
callq 0x30f0
leaq 0x170(%rbx), %rdi
movq -0x240(%rbp), %rsi
callq 0x30f0
movq -0x238(%rbp), %rax
movups (%rax), %xmm0
movups %xmm0, 0x190(%rbx)
leaq -0x7e0(%rbp), %rdi
callq 0x8272
movq -0x628(%rbp), %rdi
leaq -0x618(%rbp), %rax
cmpq %rax, %rdi
je 0x3142a
callq 0x31d0
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
cmpq %rax, %rdi
je 0x31442
callq 0x31d0
movq -0x2c8(%rbp), %rdi
leaq -0x2b8(%rbp), %rax
cmpq %rax, %rdi
je 0x3145a
callq 0x31d0
movq -0x2e8(%rbp), %rdi
leaq -0x2d8(%rbp), %rax
cmpq %rax, %rdi
je 0x31472
callq 0x31d0
movq -0x308(%rbp), %rdi
leaq -0x2f8(%rbp), %rax
cmpq %rax, %rdi
je 0x3148a
callq 0x31d0
movq -0x328(%rbp), %rdi
leaq -0x318(%rbp), %rax
cmpq %rax, %rdi
je 0x314a2
callq 0x31d0
movq -0x348(%rbp), %rdi
leaq -0x338(%rbp), %rax
cmpq %rax, %rdi
je 0x314ba
callq 0x31d0
movq -0x368(%rbp), %rdi
leaq -0x358(%rbp), %rax
cmpq %rax, %rdi
je 0x314d2
callq 0x31d0
movq -0x388(%rbp), %rdi
leaq -0x378(%rbp), %rax
cmpq %rax, %rdi
je 0x314ea
callq 0x31d0
movq -0x3a8(%rbp), %rdi
leaq -0x398(%rbp), %rax
cmpq %rax, %rdi
je 0x31502
callq 0x31d0
movb $0x73, %bl
jmp 0x3162f
movl $0x18, %edx
movq %r12, %rdi
leaq 0x9d70(%rip), %rsi      # 0x3b288
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movb $0x6e, %bl
movq %rax, %rdi
callq 0x3130
movb %bl, -0x29(%rbp)
cmpq %r14, -0x40(%rbp)
je 0x315a4
leaq -0xbe0(%rbp), %rdi
leaq 0x9c35(%rip), %rsi      # 0x3b193
movl $0x10, %edx
callq 0x3050
movq -0xd8(%rbp), %rax
movq 0x18(%rax), %rbx
cmpq %r14, %rbx
je 0x31598
leaq 0x28(%rbx), %rsi
leaq -0xbe0(%rbp), %rdi
callq 0xe5a7
movq %rbx, %rdi
callq 0x3140
movq %rax, %rbx
cmpq %r14, %rax
jne 0x31578
leaq -0xbe0(%rbp), %rdi
callq 0x32a0
movl $0x18, %edx
movq %r12, %rdi
leaq 0x9cef(%rip), %rsi      # 0x3b2a2
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r15, %rdi
leaq -0x2b(%rbp), %rsi
callq 0x3280
jmp 0x316da
movl $0x18, %edx
movq %r12, %rdi
leaq 0x9c88(%rip), %rsi      # 0x3b288
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movb $0x6e, %bl
movq %rax, %rdi
callq 0x3130
movb %bl, -0x29(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x31692
leaq -0x9e0(%rbp), %rdi
leaq 0x9b56(%rip), %rsi      # 0x3b1a0
movl $0x10, %edx
callq 0x3050
movq -0xd0(%rbp), %rax
movq 0x18(%rax), %rbx
cmpq -0x48(%rbp), %rbx
je 0x31686
leaq 0x28(%rbx), %rsi
leaq -0x9e0(%rbp), %rdi
callq 0xebba
movq %rbx, %rdi
callq 0x3140
movq %rax, %rbx
cmpq -0x48(%rbp), %rax
jne 0x31665
leaq -0x9e0(%rbp), %rdi
callq 0x32a0
movl $0x19, %edx
movq %r12, %rdi
leaq 0x9c00(%rip), %rsi      # 0x3b2a1
callq 0x3250
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r15, %rdi
leaq -0x2b(%rbp), %rsi
callq 0x3280
cmpb $0x73, -0x2b(%rbp)
movq -0x48(%rbp), %rbx
je 0x2ea38
movq 0x168d9(%rip), %rax     # 0x47fc8
movq (%rax), %rbx
movq 0x18(%rax), %r14
leaq -0x9d8(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0x9e0(%rbp,%rax)
callq 0x3190
movl $0xf8, %r15d
leaq -0x9e0(%rbp), %rdi
addq %r15, %rdi
callq 0x30d0
leaq -0xbd8(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0xbe0(%rbp,%rax)
callq 0x3190
leaq -0xbe0(%rbp), %rdi
addq %r15, %rdi
callq 0x30d0
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x3176a
callq 0x31d0
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x31782
callq 0x31d0
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x3179a
callq 0x31d0
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x317b2
callq 0x31d0
movq -0x668(%rbp), %rdi
leaq -0x658(%rbp), %rax
cmpq %rax, %rdi
je 0x317ca
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x317dc
callq 0x31d0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x317f4
callq 0x31d0
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x3180c
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x31824
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x31839
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x31851
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x31869
callq 0x31d0
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x31881
callq 0x31d0
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x31899
callq 0x31d0
movq -0x230(%rbp), %rdi
leaq -0x220(%rbp), %rax
cmpq %rax, %rdi
je 0x318b1
callq 0x31d0
addq $0xbb8, %rsp            # imm = 0xBB8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x98e8(%rip), %rdi      # 0x3b1b2
callq 0x3110
leaq 0x98dc(%rip), %rdi      # 0x3b1b2
callq 0x3110
leaq 0x98d0(%rip), %rdi      # 0x3b1b2
callq 0x3110
leaq 0x98c4(%rip), %rdi      # 0x3b1b2
callq 0x3110
leaq 0x98b8(%rip), %rdi      # 0x3b1b2
callq 0x3110
leaq 0x98ac(%rip), %rdi      # 0x3b1b2
callq 0x3110
leaq 0x98a0(%rip), %rdi      # 0x3b1b2
callq 0x32b0
leaq 0x9894(%rip), %rdi      # 0x3b1b2
callq 0x32b0
leaq 0x9888(%rip), %rdi      # 0x3b1b2
callq 0x32b0
leaq 0x987c(%rip), %rdi      # 0x3b1b2
callq 0x32b0
leaq 0x9870(%rip), %rdi      # 0x3b1b2
callq 0x32b0
leaq 0x9864(%rip), %rdi      # 0x3b1b2
callq 0x32b0
movq %rax, %r15
jmp 0x31b34
movq %rax, %r15
jmp 0x31a31
jmp 0x31d9b
movq %rax, %r15
jmp 0x31ac1
movq %rax, %r15
jmp 0x31af1
movq %rax, %r15
jmp 0x31bac
movq %rax, %r15
jmp 0x31a79
movq %rax, %r15
jmp 0x31bc4
movq %rax, %r15
jmp 0x31a91
movq %rax, %r15
jmp 0x31a61
movq %rax, %r15
jmp 0x31b64
movq %rax, %r15
jmp 0x31bf4
movq %rax, %r15
jmp 0x31a49
movq %rax, %r15
jmp 0x31b4c
movq %rax, %r15
jmp 0x31b7c
movq %rax, %r15
jmp 0x31aa9
movq %rax, %r15
jmp 0x31b94
movq %rax, %r15
jmp 0x31ad9
jmp 0x31d9b
movq %rax, %r15
jmp 0x31bdc
movq %rax, %r15
jmp 0x31b1c
movq %rax, %r15
jmp 0x31a19
movq %rax, %r15
jmp 0x31dd4
movq %rax, %r15
jmp 0x31e0a
movq %rax, %r15
leaq -0x7e0(%rbp), %rdi
callq 0x8272
movq -0x628(%rbp), %rdi
leaq -0x618(%rbp), %rax
cmpq %rax, %rdi
je 0x31a31
callq 0x31d0
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
cmpq %rax, %rdi
je 0x31a49
callq 0x31d0
movq -0x2c8(%rbp), %rdi
leaq -0x2b8(%rbp), %rax
cmpq %rax, %rdi
je 0x31a61
callq 0x31d0
movq -0x2e8(%rbp), %rdi
leaq -0x2d8(%rbp), %rax
cmpq %rax, %rdi
je 0x31a79
callq 0x31d0
movq -0x308(%rbp), %rdi
leaq -0x2f8(%rbp), %rax
cmpq %rax, %rdi
je 0x31a91
callq 0x31d0
movq -0x328(%rbp), %rdi
leaq -0x318(%rbp), %rax
cmpq %rax, %rdi
je 0x31aa9
callq 0x31d0
movq -0x348(%rbp), %rdi
leaq -0x338(%rbp), %rax
cmpq %rax, %rdi
je 0x31ac1
callq 0x31d0
movq -0x368(%rbp), %rdi
leaq -0x358(%rbp), %rax
cmpq %rax, %rdi
je 0x31ad9
callq 0x31d0
movq -0x388(%rbp), %rdi
leaq -0x378(%rbp), %rax
cmpq %rax, %rdi
je 0x31af1
callq 0x31d0
movq -0x3a8(%rbp), %rdi
leaq -0x398(%rbp), %rax
cmpq %rax, %rdi
je 0x31d9e
jmp 0x31d4b
movq %rax, %r15
leaq -0x7e0(%rbp), %rdi
callq 0x7e22
movq -0x648(%rbp), %rdi
leaq -0x638(%rbp), %rax
cmpq %rax, %rdi
je 0x31b34
callq 0x31d0
movq -0x468(%rbp), %rdi
leaq -0x458(%rbp), %rax
cmpq %rax, %rdi
je 0x31b4c
callq 0x31d0
movq -0x488(%rbp), %rdi
leaq -0x478(%rbp), %rax
cmpq %rax, %rdi
je 0x31b64
callq 0x31d0
movq -0x4a8(%rbp), %rdi
leaq -0x498(%rbp), %rax
cmpq %rax, %rdi
je 0x31b7c
callq 0x31d0
movq -0x4c8(%rbp), %rdi
leaq -0x4b8(%rbp), %rax
cmpq %rax, %rdi
je 0x31b94
callq 0x31d0
movq -0x4e8(%rbp), %rdi
leaq -0x4d8(%rbp), %rax
cmpq %rax, %rdi
je 0x31bac
callq 0x31d0
movq -0x508(%rbp), %rdi
leaq -0x4f8(%rbp), %rax
cmpq %rax, %rdi
je 0x31bc4
callq 0x31d0
movq -0x528(%rbp), %rdi
leaq -0x518(%rbp), %rax
cmpq %rax, %rdi
je 0x31bdc
callq 0x31d0
movq -0x548(%rbp), %rdi
leaq -0x538(%rbp), %rax
cmpq %rax, %rdi
je 0x31bf4
callq 0x31d0
movq -0x568(%rbp), %rdi
leaq -0x558(%rbp), %rax
cmpq %rax, %rdi
je 0x31d9e
jmp 0x31d4b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d5a
movq %rax, %r15
movq -0x3c8(%rbp), %rdi
leaq -0x3b8(%rbp), %rax
cmpq %rax, %rdi
je 0x31d9e
jmp 0x31d4b
movq %rax, %r15
movq -0x588(%rbp), %rdi
leaq -0x578(%rbp), %rax
cmpq %rax, %rdi
je 0x31d9e
jmp 0x31d4b
movq %rax, %r15
movq -0x3e8(%rbp), %rdi
leaq -0x3d8(%rbp), %rax
cmpq %rax, %rdi
je 0x31d9e
jmp 0x31d4b
movq %rax, %r15
movq -0x5a8(%rbp), %rdi
leaq -0x598(%rbp), %rax
cmpq %rax, %rdi
je 0x31d9e
jmp 0x31d4b
movq %rax, %r15
movq -0x5c8(%rbp), %rdi
leaq -0x5b8(%rbp), %rax
cmpq %rax, %rdi
je 0x31d9e
jmp 0x31d4b
movq %rax, %r15
movq -0x408(%rbp), %rdi
leaq -0x3f8(%rbp), %rax
cmpq %rax, %rdi
je 0x31d9e
jmp 0x31d4b
movq %rax, %r15
movq -0x5e8(%rbp), %rdi
leaq -0x5d8(%rbp), %rax
cmpq %rax, %rdi
je 0x31d9e
jmp 0x31d4b
movq %rax, %r15
movq -0x428(%rbp), %rdi
leaq -0x418(%rbp), %rax
cmpq %rax, %rdi
je 0x31d9e
jmp 0x31d4b
movq %rax, %r15
movq -0x448(%rbp), %rdi
leaq -0x438(%rbp), %rax
cmpq %rax, %rdi
je 0x31d9e
jmp 0x31d4b
movq %rax, %r15
movq -0x608(%rbp), %rdi
leaq -0x5f8(%rbp), %rax
cmpq %rax, %rdi
je 0x31d9e
callq 0x31d0
jmp 0x31d9e
jmp 0x31d5a
jmp 0x31d5a
jmp 0x31d5a
jmp 0x31d5a
movq %rax, %r15
cmpl $0x0, (%rbx)
jne 0x31d9e
movl %r14d, (%rbx)
jmp 0x31d9e
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
jmp 0x31d9b
movq %rax, %r15
movq 0x16223(%rip), %rax     # 0x47fc8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x9d8(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x9e0(%rbp,%rcx)
callq 0x3190
leaq -0x8e8(%rbp), %rdi
callq 0x30d0
movq 0x161ed(%rip), %rax     # 0x47fc8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0xbd8(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0xbe0(%rbp,%rcx)
callq 0x3190
leaq -0xae8(%rbp), %rdi
callq 0x30d0
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x31e22
callq 0x31d0
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x31e3a
callq 0x31d0
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x31e52
callq 0x31d0
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x31e6a
callq 0x31d0
movq -0x668(%rbp), %rdi
leaq -0x658(%rbp), %rax
cmpq %rax, %rdi
je 0x31e82
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x31e94
callq 0x31d0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x31eac
callq 0x31d0
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x31ec4
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x31edc
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x31ef1
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x31f09
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x31f21
callq 0x31d0
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x31f39
callq 0x31d0
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x31f51
callq 0x31d0
movq -0x230(%rbp), %rdi
leaq -0x220(%rbp), %rax
cmpq %rax, %rdi
je 0x31f69
callq 0x31d0
movq %r15, %rdi
callq 0x3380