// File: /workspace/github_cpp_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc88, %rsp            # imm = 0xC88
movq %rcx, -0x260(%rbp)
movq %rdx, -0x268(%rbp)
movq %rsi, -0x40(%rbp)
movq %rdi, -0x38(%rbp)
leaq -0x1a0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x180(%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 -0xf0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xd0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xb0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x90(%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 -0x70(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x50(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x240(%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 -0x220(%rbp), %rcx
movq %rcx, -0x10(%rcx)
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)
movb $0x73, -0x2a(%rbp)
leaq -0xb30(%rbp), %rdi
callq 0x3360
leaq -0x930(%rbp), %rdi
callq 0x3360
leaq -0x730(%rbp), %rax
addq $0x170, %rax            # imm = 0x170
movq %rax, -0x110(%rbp)
leaq -0xca8(%rbp), %rax
addq $0x168, %rax            # imm = 0x168
movq %rax, -0x108(%rbp)
movq 0x2d801(%rip), %r13     # 0x47fd0
movq 0x2d80a(%rip), %r14     # 0x47fe0
movq %rax, -0x118(%rbp)
movl $0x4a, %edx
movq %r13, %rdi
leaq 0x2092a(%rip), %rsi     # 0x3b116
callq 0x3250
movq (%r13), %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 %r14, %rdi
leaq -0x2b(%rbp), %rsi
callq 0x3280
movzbl -0x2b(%rbp), %eax
cmpl $0x6e, %eax
je 0x1a837
cmpl $0x65, %eax
jne 0x1c333
movl $0xc, %edx
movq %r13, %rdi
leaq 0x1fef9(%rip), %rsi     # 0x3a73f
callq 0x3250
movq (%r13), %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 %r14, %rdi
leaq -0x250(%rbp), %rsi
callq 0x3270
movb -0x2b(%rbp), %bl
leaq -0x558(%rbp), %rax
movq %rax, -0x568(%rbp)
movq -0x250(%rbp), %rsi
movq -0x248(%rbp), %rdx
addq %rsi, %rdx
leaq -0x568(%rbp), %rdi
callq 0x4574
movsbl %bl, %edx
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
leaq -0x568(%rbp), %rcx
leaq -0x29(%rbp), %r8
callq 0x37e97
movl %eax, %r15d
movq -0x568(%rbp), %rdi
leaq -0x558(%rbp), %rax
cmpq %rax, %rdi
je 0x1a8e6
callq 0x31d0
testb %r15b, %r15b
je 0x1a92f
leaq -0x730(%rbp), %rbx
movq %rbx, %rdi
leaq -0x250(%rbp), %rsi
movl $0x18, %edx
callq 0x3310
movq %rbx, %rdi
leaq -0x30(%rbp), %rsi
callq 0x3120
movq %rbx, %rdi
movq 0x2d694(%rip), %rsi     # 0x47fb0
callq 0x3160
leaq -0x6b0(%rbp), %rdi
callq 0x30d0
jmp 0x1a995
movl $0x36, %edx
movq %r13, %rdi
leaq 0x1fe0e(%rip), %rsi     # 0x3a74c
callq 0x3250
movq (%r13), %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 %rax, %r12
movq (%rax), %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
cmpb $0x6e, -0x29(%rbp)
je 0x1a837
movq -0x1a8(%rbp), %rdx
movl $0x4, %r8d
leaq -0x1b0(%rbp), %rdi
xorl %esi, %esi
leaq 0x1fc32(%rip), %rcx     # 0x3a5ee
callq 0x3300
movl $0xe, %edx
movq %r13, %rdi
leaq 0x1fdb3(%rip), %rsi     # 0x3a783
callq 0x3250
movq (%r13), %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 %r14, %rdi
callq 0x33a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0x60(%rbp), %rsi
callq 0x33c0
leaq -0x60(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x1aa9f
movl $0x2d, %edx
movq %r13, %rdi
leaq 0x1fd4a(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r13), %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 %rax, %r12
movq (%rax), %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 -0x58(%rbp), %rbx
testq %rbx, %rbx
je 0x1aac5
movq -0x60(%rbp), %r15
xorl %r12d, %r12d
movsbl (%r15,%r12), %edi
callq 0x32c0
movb %al, (%r15,%r12)
incq %r12
cmpq %r12, %rbx
jne 0x1aaaf
cmpb $0x6e, -0x29(%rbp)
je 0x1a9c1
movl $0x1a, %edx
movq %r13, %rdi
leaq 0x20078(%rip), %rsi     # 0x3ab56
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0x190(%rbp), %rsi
callq 0x33c0
leaq -0x190(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3844d
testb %al, %al
jne 0x1abab
movl $0x35, %edx
movq %r13, %rdi
leaq 0x2001d(%rip), %rsi     # 0x3ab71
callq 0x3250
movq (%r13), %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 %rax, %r12
movq (%rax), %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
cmpb $0x6e, -0x29(%rbp)
je 0x1aacf
movl $0x10, %edx
movq %r13, %rdi
leaq 0x1ffe3(%rip), %rsi     # 0x3aba7
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0x170(%rbp), %rsi
callq 0x33c0
leaq -0x170(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38df8
testb %al, %al
jne 0x1ac91
movl $0x2d, %edx
movq %r13, %rdi
leaq 0x1fb58(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r13), %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 %rax, %r12
movq (%rax), %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
cmpb $0x6e, -0x29(%rbp)
je 0x1abb5
movl $0x1e, %edx
movq %r13, %rdi
leaq 0x1ff0e(%rip), %rsi     # 0x3abb8
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0x100(%rbp), %rsi
callq 0x33c0
leaq -0x100(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x1ad77
movl $0x2d, %edx
movq %r13, %rdi
leaq 0x1fa72(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r13), %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 %rax, %r12
movq (%rax), %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
leaq -0x538(%rbp), %rax
movq %rax, -0x548(%rbp)
movq -0x100(%rbp), %rsi
movq -0xf8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x548(%rbp), %rdi
callq 0x4574
movq -0x268(%rbp), %rdi
leaq -0x548(%rbp), %rsi
callq 0x36dd9
movl %eax, %r15d
movq -0x548(%rbp), %rdi
leaq -0x538(%rbp), %rax
cmpq %rax, %rdi
je 0x1add0
callq 0x31d0
testb %r15b, %r15b
jne 0x1ae3d
movq (%r13), %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
movl $0x22, %edx
movq %r13, %rdi
leaq 0x1fdcb(%rip), %rsi     # 0x3abd7
callq 0x3250
movq (%r13), %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
movb $0x6e, -0x29(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x1ac9b
movl $0x1b, %edx
movq %r13, %rdi
leaq 0x1fda4(%rip), %rsi     # 0x3abfa
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0xe0(%rbp), %rsi
callq 0x33c0
leaq -0xe0(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x1af23
movl $0x2d, %edx
movq %r13, %rdi
leaq 0x1f8c6(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r13), %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 %rax, %r12
movq (%rax), %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
leaq -0x518(%rbp), %rax
movq %rax, -0x528(%rbp)
movq -0xe0(%rbp), %rsi
movq -0xd8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x528(%rbp), %rdi
callq 0x4574
xorl %edi, %edi
movq -0x260(%rbp), %rsi
leaq -0x528(%rbp), %rdx
movl $0x76, %ecx
callq 0x36e7a
movl %eax, %r15d
movq -0x528(%rbp), %rdi
leaq -0x518(%rbp), %rax
cmpq %rax, %rdi
je 0x1af83
callq 0x31d0
testb %r15b, %r15b
jne 0x1b01e
movq (%r13), %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
movl $0x31, %edx
movq %r13, %rdi
leaq 0x1fc53(%rip), %rsi     # 0x3ac16
callq 0x3250
movq (%r13), %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 %rax, %r12
movq (%rax), %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 0x1ae47
movl $0x1a, %edx
movq %r13, %rdi
leaq 0x1fc11(%rip), %rsi     # 0x3ac48
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0xc0(%rbp), %rsi
callq 0x33c0
leaq -0xc0(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x3832d
testb %al, %al
jne 0x1b104
movl $0x2d, %edx
movq %r13, %rdi
leaq 0x1f6e5(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r13), %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 %rax, %r12
movq (%rax), %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 -0xb8(%rbp), %rbx
testq %rbx, %rbx
je 0x1b130
movq -0xc0(%rbp), %r15
xorl %r12d, %r12d
movsbl (%r15,%r12), %edi
callq 0x32c0
movb %al, (%r15,%r12)
incq %r12
cmpq %r12, %rbx
jne 0x1b11a
cmpb $0x6e, -0x29(%rbp)
je 0x1b028
movl $0x19, %edx
movq %r13, %rdi
leaq 0x1fb1a(%rip), %rsi     # 0x3ac63
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x33c0
movq -0x1c8(%rbp), %rbx
testq %rbx, %rbx
je 0x1b1c8
movq -0x1d0(%rbp), %r15
xorl %r12d, %r12d
movsbl (%r15,%r12), %edi
callq 0x33d0
movb %al, (%r15,%r12)
incq %r12
cmpq %r12, %rbx
jne 0x1b1b2
leaq -0x1d0(%rbp), %rbx
movq %rbx, %rdi
leaq 0x1faa4(%rip), %rsi     # 0x3ac7d
callq 0x30c0
testl %eax, %eax
je 0x1b261
movq %rbx, %rdi
leaq 0x1fa93(%rip), %rsi     # 0x3ac7f
callq 0x30c0
testl %eax, %eax
je 0x1b261
movb $0x6e, -0x29(%rbp)
movl $0x21, %edx
movq %r13, %rdi
leaq 0x1fa79(%rip), %rsi     # 0x3ac81
callq 0x3250
movq (%r13), %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 %rax, %r12
movq (%rax), %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
jmp 0x1b271
movq -0x1d0(%rbp), %rax
movb (%rax), %al
movb %al, -0x2c(%rbp)
movb $0x73, -0x29(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x1b13a
movl $0x1c, %edx
movq %r13, %rdi
leaq 0x1fa19(%rip), %rsi     # 0x3aca3
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0x230(%rbp), %rsi
callq 0x33c0
leaq -0x4f8(%rbp), %rax
movq %rax, -0x508(%rbp)
movq -0x230(%rbp), %rsi
movq -0x228(%rbp), %rdx
addq %rsi, %rdx
leaq -0x508(%rbp), %rdi
callq 0x4574
leaq -0x508(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38f49
movl %eax, %r15d
movq -0x508(%rbp), %rdi
leaq -0x4f8(%rbp), %rax
cmpq %rax, %rdi
je 0x1b333
callq 0x31d0
testb %r15b, %r15b
jne 0x1b39e
movl $0x34, %edx
movq %r13, %rdi
leaq 0x1f979(%rip), %rsi     # 0x3acc0
callq 0x3250
movq (%r13), %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 %rax, %r12
movq (%rax), %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 -0x230(%rbp), %r15
callq 0x3040
movq %rax, %r12
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r15, %rdi
leaq -0x730(%rbp), %rsi
callq 0x3170
movsd %xmm0, -0x130(%rbp)
cmpq %r15, -0x730(%rbp)
je 0x1c698
movl (%r12), %eax
testl %eax, %eax
je 0x1b3eb
cmpl $0x22, %eax
jne 0x1b3ef
jmp 0x1c6bc
movl %ebx, (%r12)
cmpb $0x6e, -0x29(%rbp)
je 0x1b27b
movl $0x1a, %edx
movq %r13, %rdi
leaq 0x1fd59(%rip), %rsi     # 0x3b161
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0x210(%rbp), %rsi
callq 0x33c0
leaq -0x4d8(%rbp), %rax
movq %rax, -0x4e8(%rbp)
movq -0x210(%rbp), %rsi
movq -0x208(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4e8(%rbp), %rdi
callq 0x4574
leaq -0x4e8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38f49
movl %eax, %r15d
movq -0x4e8(%rbp), %rdi
leaq -0x4d8(%rbp), %rax
cmpq %rax, %rdi
je 0x1b4b1
callq 0x31d0
testb %r15b, %r15b
jne 0x1b51c
movl $0x34, %edx
movq %r13, %rdi
leaq 0x1f7fb(%rip), %rsi     # 0x3acc0
callq 0x3250
movq (%r13), %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 %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x210(%rbp), %r15
movl (%r12), %ebx
movl $0x0, (%r12)
movq %r15, %rdi
leaq -0x730(%rbp), %rsi
callq 0x3170
movsd %xmm0, -0x128(%rbp)
cmpq %r15, -0x730(%rbp)
je 0x1c6a4
movl (%r12), %eax
testl %eax, %eax
je 0x1b565
cmpl $0x22, %eax
jne 0x1b569
jmp 0x1c6c8
movl %ebx, (%r12)
cmpb $0x6e, -0x29(%rbp)
je 0x1b3f9
movl $0x16, %edx
movq %r13, %rdi
leaq 0x1fbfa(%rip), %rsi     # 0x3b17c
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x33c0
leaq -0x4b8(%rbp), %rax
movq %rax, -0x4c8(%rbp)
movq -0x1f0(%rbp), %rsi
movq -0x1e8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4c8(%rbp), %rdi
callq 0x4574
leaq -0x4c8(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x38f49
movl %eax, %r15d
movq -0x4c8(%rbp), %rdi
leaq -0x4b8(%rbp), %rax
cmpq %rax, %rdi
je 0x1b62b
callq 0x31d0
testb %r15b, %r15b
jne 0x1b696
movl $0x34, %edx
movq %r13, %rdi
leaq 0x1f681(%rip), %rsi     # 0x3acc0
callq 0x3250
movq (%r13), %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 %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x1f0(%rbp), %r15
movl (%r12), %ebx
movl $0x0, (%r12)
movq %r15, %rdi
leaq -0x730(%rbp), %rsi
callq 0x3170
movsd %xmm0, -0x120(%rbp)
cmpq %r15, -0x730(%rbp)
je 0x1c6b0
movl (%r12), %eax
testl %eax, %eax
je 0x1b6df
cmpl $0x22, %eax
jne 0x1b6e3
jmp 0x1c6d4
movl %ebx, (%r12)
cmpb $0x6e, -0x29(%rbp)
je 0x1b573
movl $0x1f, %edx
movq %r13, %rdi
leaq 0x1f6b5(%rip), %rsi     # 0x3adb1
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0x150(%rbp), %rsi
callq 0x33c0
leaq -0x150(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x391c3
testb %al, %al
jne 0x1b7c9
movl $0x36, %edx
movq %r13, %rdi
leaq 0x1f850(%rip), %rsi     # 0x3afc2
callq 0x3250
movq (%r13), %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 %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x1b6ed
cmpb $0x6e, -0x2b(%rbp)
jne 0x1bd99
movq -0x38(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x118(%rbp)
movl %eax, %eax
movq %rax, -0x258(%rbp)
movl $0x17, %edx
movq %r13, %rdi
leaq 0x1f603(%rip), %rsi     # 0x3ae07
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0x80(%rbp), %rsi
callq 0x33c0
leaq -0x80(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x39389
testb %al, %al
jne 0x1b8cb
movl $0x24, %edx
movq %r13, %rdi
leaq 0x1f5ab(%rip), %rsi     # 0x3ae1f
callq 0x3250
movq (%r13), %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 %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x1b7f5
movl $0x20, %edx
movq %r13, %rdi
leaq 0x1f560(%rip), %rsi     # 0x3ae44
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0xa0(%rbp), %rsi
callq 0x33c0
leaq -0xa0(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x391c3
testb %al, %al
jne 0x1b9b1
movl $0x35, %edx
movq %r13, %rdi
leaq 0x1f477(%rip), %rsi     # 0x3add1
callq 0x3250
movq (%r13), %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 %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x1b8d5
movl -0x30(%rbp), %r12d
leaq -0x498(%rbp), %rax
movq %rax, -0x4a8(%rbp)
movq -0x1b0(%rbp), %rsi
movq -0x1a8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4a8(%rbp), %rdi
callq 0x4574
leaq -0x478(%rbp), %rax
movq %rax, -0x488(%rbp)
movq -0x60(%rbp), %rsi
movq -0x58(%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 -0x438(%rbp), %rax
movq %rax, -0x448(%rbp)
movq -0x170(%rbp), %rsi
movq -0x168(%rbp), %rdx
addq %rsi, %rdx
leaq -0x448(%rbp), %rdi
callq 0x4574
leaq -0x418(%rbp), %rax
movq %rax, -0x428(%rbp)
movq -0x100(%rbp), %rsi
movq -0xf8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x428(%rbp), %rdi
callq 0x4574
leaq -0x3f8(%rbp), %rax
movq %rax, -0x408(%rbp)
movq -0xe0(%rbp), %rsi
movq -0xd8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x408(%rbp), %rdi
callq 0x4574
leaq -0x3d8(%rbp), %rax
movq %rax, -0x3e8(%rbp)
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3e8(%rbp), %rdi
callq 0x4574
leaq -0x3b8(%rbp), %rax
movq %rax, -0x3c8(%rbp)
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3c8(%rbp), %rdi
callq 0x4574
leaq -0x398(%rbp), %rax
movq %rax, -0x3a8(%rbp)
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3a8(%rbp), %rdi
callq 0x4574
leaq -0x598(%rbp), %rax
movq %rax, -0x5a8(%rbp)
movq -0xa0(%rbp), %rsi
movq -0x98(%rbp), %rdx
addq %rsi, %rdx
leaq -0x5a8(%rbp), %r15
movq %r15, %rdi
callq 0x4574
subq $0x8, %rsp
movsbl -0x2c(%rbp), %r9d
leaq -0xca8(%rbp), %rbx
movq %rbx, %rdi
movl %r12d, %esi
leaq -0x4a8(%rbp), %rdx
leaq -0x488(%rbp), %rcx
leaq -0x468(%rbp), %r8
movsd -0x130(%rbp), %xmm0
movsd -0x128(%rbp), %xmm1
movsd -0x120(%rbp), %xmm2
pushq %r15
leaq -0x3a8(%rbp), %rax
pushq %rax
leaq -0x3c8(%rbp), %rax
pushq %rax
leaq -0x3e8(%rbp), %rax
pushq %rax
leaq -0x408(%rbp), %rax
pushq %rax
leaq -0x428(%rbp), %rax
pushq %rax
leaq -0x448(%rbp), %rax
pushq %rax
callq 0x79dc
addq $0x40, %rsp
movl -0x30(%rbp), %eax
movl %eax, -0x730(%rbp)
leaq -0x728(%rbp), %rdi
movq %rbx, %rsi
callq 0x1d142
movq -0x108(%rbp), %rax
movups (%rax), %xmm0
movq -0x110(%rbp), %rax
movups %xmm0, (%rax)
leaq 0x2bdf3(%rip), %rcx     # 0x47a08
leaq 0x10(%rcx), %rax
movq %rax, -0x728(%rbp)
leaq 0x30(%rcx), %rax
movq %rax, -0x628(%rbp)
movq -0x38(%rbp), %rdi
leaq -0x730(%rbp), %rsi
callq 0x1e820
leaq -0x728(%rbp), %rdi
callq 0x7e22
leaq -0xca8(%rbp), %rdi
callq 0x7e22
movq -0x5a8(%rbp), %rdi
leaq -0x598(%rbp), %rax
cmpq %rax, %rdi
je 0x1bc6b
callq 0x31d0
movq -0x3a8(%rbp), %rdi
leaq -0x398(%rbp), %rax
cmpq %rax, %rdi
je 0x1bc83
callq 0x31d0
movq -0x3c8(%rbp), %rdi
leaq -0x3b8(%rbp), %rax
cmpq %rax, %rdi
je 0x1bc9b
callq 0x31d0
movq -0x3e8(%rbp), %rdi
leaq -0x3d8(%rbp), %rax
cmpq %rax, %rdi
je 0x1bcb3
callq 0x31d0
movq -0x408(%rbp), %rdi
leaq -0x3f8(%rbp), %rax
cmpq %rax, %rdi
je 0x1bccb
callq 0x31d0
movq -0x428(%rbp), %rdi
leaq -0x418(%rbp), %rax
cmpq %rax, %rdi
je 0x1bce3
callq 0x31d0
movq -0x448(%rbp), %rdi
leaq -0x438(%rbp), %rax
cmpq %rax, %rdi
je 0x1bcfb
callq 0x31d0
movq -0x468(%rbp), %rdi
leaq -0x458(%rbp), %rax
cmpq %rax, %rdi
je 0x1bd13
callq 0x31d0
movq -0x488(%rbp), %rdi
leaq -0x478(%rbp), %rax
cmpq %rax, %rdi
je 0x1bd2b
callq 0x31d0
movq -0x4a8(%rbp), %rdi
leaq -0x498(%rbp), %rax
cmpq %rax, %rdi
je 0x1bd43
callq 0x31d0
movq -0x38(%rbp), %rax
movq -0x258(%rbp), %rcx
cmpq %rcx, 0x28(%rax)
jne 0x1c33c
movl $0x2d, %edx
movq %r13, %rdi
leaq 0x1f0fe(%rip), %rsi     # 0x3ae65
callq 0x3250
movq (%r13), %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
jmp 0x1c333
movl $0x1a, %edx
movq %r13, %rdi
leaq 0x1f0eb(%rip), %rsi     # 0x3ae93
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0x80(%rbp), %rsi
callq 0x33c0
leaq -0x80(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x39389
testb %al, %al
jne 0x1be6f
movl $0x24, %edx
movq %r13, %rdi
leaq 0x1f007(%rip), %rsi     # 0x3ae1f
callq 0x3250
movq (%r13), %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 %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x1bd99
movl $0x20, %edx
movq %r13, %rdi
leaq 0x1efbc(%rip), %rsi     # 0x3ae44
callq 0x3250
movq (%r13), %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 (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r14, %rdi
leaq -0xa0(%rbp), %rsi
callq 0x33c0
leaq -0xa0(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x391c3
testb %al, %al
jne 0x1bf55
movl $0x35, %edx
movq %r13, %rdi
leaq 0x1eed3(%rip), %rsi     # 0x3add1
callq 0x3250
movq (%r13), %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 %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x1be79
movl -0x30(%rbp), %r12d
leaq -0x378(%rbp), %rax
movq %rax, -0x388(%rbp)
movq -0x1b0(%rbp), %rsi
movq -0x1a8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x388(%rbp), %rdi
callq 0x4574
leaq -0x358(%rbp), %rax
movq %rax, -0x368(%rbp)
movq -0x60(%rbp), %rsi
movq -0x58(%rbp), %rdx
addq %rsi, %rdx
leaq -0x368(%rbp), %rdi
callq 0x4574
leaq -0x338(%rbp), %rax
movq %rax, -0x348(%rbp)
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
addq %rsi, %rdx
leaq -0x348(%rbp), %rdi
callq 0x4574
leaq -0x318(%rbp), %rax
movq %rax, -0x328(%rbp)
movq -0x170(%rbp), %rsi
movq -0x168(%rbp), %rdx
addq %rsi, %rdx
leaq -0x328(%rbp), %rdi
callq 0x4574
leaq -0x2f8(%rbp), %rax
movq %rax, -0x308(%rbp)
movq -0x100(%rbp), %rsi
movq -0xf8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x308(%rbp), %rdi
callq 0x4574
leaq -0x2d8(%rbp), %rax
movq %rax, -0x2e8(%rbp)
movq -0xe0(%rbp), %rsi
movq -0xd8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2e8(%rbp), %rdi
callq 0x4574
leaq -0x2b8(%rbp), %rax
movq %rax, -0x2c8(%rbp)
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2c8(%rbp), %rdi
callq 0x4574
leaq -0x298(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2a8(%rbp), %rdi
callq 0x4574
leaq -0x278(%rbp), %rax
movq %rax, -0x288(%rbp)
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
addq %rsi, %rdx
leaq -0x288(%rbp), %rdi
callq 0x4574
leaq -0x578(%rbp), %rax
movq %rax, -0x588(%rbp)
movq -0xa0(%rbp), %rsi
movq -0x98(%rbp), %rdx
addq %rsi, %rdx
leaq -0x588(%rbp), %r15
movq %r15, %rdi
callq 0x4574
subq $0x8, %rsp
movsbl -0x2c(%rbp), %r9d
leaq -0xca8(%rbp), %rbx
movq %rbx, %rdi
movl %r12d, %esi
leaq -0x388(%rbp), %rdx
leaq -0x368(%rbp), %rcx
leaq -0x348(%rbp), %r8
movsd -0x130(%rbp), %xmm0
movsd -0x128(%rbp), %xmm1
movsd -0x120(%rbp), %xmm2
pushq %r15
leaq -0x288(%rbp), %rax
pushq %rax
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
callq 0x7e3c
addq $0x40, %rsp
movl -0x30(%rbp), %eax
movl %eax, -0x730(%rbp)
leaq -0x728(%rbp), %rdi
movq %rbx, %rsi
callq 0x1d438
movq -0x108(%rbp), %rax
movups (%rax), %xmm0
movq -0x110(%rbp), %rax
movups %xmm0, (%rax)
leaq 0x2b887(%rip), %rcx     # 0x47a40
leaq 0x10(%rcx), %rax
movq %rax, -0x728(%rbp)
leaq 0x30(%rcx), %rax
movq %rax, -0x628(%rbp)
movq -0x40(%rbp), %rdi
leaq -0x730(%rbp), %rsi
callq 0x1ea04
leaq -0x728(%rbp), %rdi
callq 0x8272
leaq -0xca8(%rbp), %rdi
callq 0x8272
movq -0x588(%rbp), %rdi
leaq -0x578(%rbp), %rax
cmpq %rax, %rdi
je 0x1c20f
callq 0x31d0
movq -0x288(%rbp), %rdi
leaq -0x278(%rbp), %rax
cmpq %rax, %rdi
je 0x1c227
callq 0x31d0
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
cmpq %rax, %rdi
je 0x1c23f
callq 0x31d0
movq -0x2c8(%rbp), %rdi
leaq -0x2b8(%rbp), %rax
cmpq %rax, %rdi
je 0x1c257
callq 0x31d0
movq -0x2e8(%rbp), %rdi
leaq -0x2d8(%rbp), %rax
cmpq %rax, %rdi
je 0x1c26f
callq 0x31d0
movq -0x308(%rbp), %rdi
leaq -0x2f8(%rbp), %rax
cmpq %rax, %rdi
je 0x1c287
callq 0x31d0
movq -0x328(%rbp), %rdi
leaq -0x318(%rbp), %rax
cmpq %rax, %rdi
je 0x1c29f
callq 0x31d0
movq -0x348(%rbp), %rdi
leaq -0x338(%rbp), %rax
cmpq %rax, %rdi
je 0x1c2b7
callq 0x31d0
movq -0x368(%rbp), %rdi
leaq -0x358(%rbp), %rax
cmpq %rax, %rdi
je 0x1c2cf
callq 0x31d0
movq -0x388(%rbp), %rdi
leaq -0x378(%rbp), %rax
cmpq %rax, %rdi
je 0x1c2e7
callq 0x31d0
movl -0x118(%rbp), %eax
movq -0x40(%rbp), %rcx
cmpq %rax, 0x28(%rcx)
jne 0x1c33c
movl $0x2d, %edx
movq %r13, %rdi
leaq 0x1eb5f(%rip), %rsi     # 0x3ae65
callq 0x3250
movq (%r13), %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
movb $0x73, -0x2a(%rbp)
jmp 0x1c3ea
movl $0x1f, %edx
movq %r13, %rdi
leaq 0x1eb63(%rip), %rsi     # 0x3aeae
callq 0x3250
movq (%r13), %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 %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movl $0x24, %edx
movq %r13, %rdi
leaq 0x1eb1d(%rip), %rsi     # 0x3aece
callq 0x3250
movq (%r13), %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 %r14, %rdi
leaq -0x2a(%rbp), %rsi
callq 0x3280
cmpb $0x73, -0x2a(%rbp)
je 0x1a7dd
movq -0x38(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x1c45a
leaq 0x1ed8d(%rip), %rsi     # 0x3b193
leaq -0xb30(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0x1c44e
movq %rax, %r15
leaq -0xb30(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0xe5a7
movq %rbx, %rdi
callq 0x3140
movq %rax, %rbx
cmpq %r15, %rax
jne 0x1c432
leaq -0xb30(%rbp), %rdi
callq 0x32a0
movq -0x40(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x1c4c0
leaq 0x1ed34(%rip), %rsi     # 0x3b1a0
leaq -0x930(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0x1c4b4
movq %rax, %r15
leaq -0x930(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0xebba
movq %rbx, %rdi
callq 0x3140
movq %rax, %rbx
cmpq %r15, %rax
jne 0x1c498
leaq -0x930(%rbp), %rdi
callq 0x32a0
movq 0x2bb01(%rip), %rax     # 0x47fc8
movq (%rax), %rbx
movq 0x18(%rax), %r14
leaq -0x928(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0x930(%rbp,%rax)
callq 0x3190
movl $0xf8, %r15d
leaq -0x930(%rbp), %rdi
addq %r15, %rdi
callq 0x30d0
leaq -0xb28(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0xb30(%rbp,%rax)
callq 0x3190
leaq -0xb30(%rbp), %rdi
addq %r15, %rdi
callq 0x30d0
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x1c542
callq 0x31d0
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x1c55a
callq 0x31d0
movq -0x230(%rbp), %rdi
leaq -0x220(%rbp), %rax
cmpq %rax, %rdi
je 0x1c572
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x1c58a
callq 0x31d0
movq -0x250(%rbp), %rdi
leaq -0x240(%rbp), %rax
cmpq %rax, %rdi
je 0x1c5a2
callq 0x31d0
movq -0x60(%rbp), %rdi
leaq -0x50(%rbp), %rax
cmpq %rax, %rdi
je 0x1c5b4
callq 0x31d0
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
je 0x1c5c6
callq 0x31d0
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x1c5de
callq 0x31d0
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rax
cmpq %rax, %rdi
je 0x1c5f6
callq 0x31d0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x1c60e
callq 0x31d0
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x1c626
callq 0x31d0
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x1c63e
callq 0x31d0
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x1c656
callq 0x31d0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x1c66e
callq 0x31d0
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x1c686
callq 0x31d0
addq $0xc88, %rsp            # imm = 0xC88
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1eb13(%rip), %rdi     # 0x3b1b2
callq 0x3110
leaq 0x1eb07(%rip), %rdi     # 0x3b1b2
callq 0x3110
leaq 0x1eafb(%rip), %rdi     # 0x3b1b2
callq 0x3110
leaq 0x1eaef(%rip), %rdi     # 0x3b1b2
callq 0x32b0
leaq 0x1eae3(%rip), %rdi     # 0x3b1b2
callq 0x32b0
leaq 0x1ead7(%rip), %rdi     # 0x3b1b2
callq 0x32b0
movq %rax, %r14
jmp 0x1cb00
movq %rax, %r14
jmp 0x1cb36
jmp 0x1cac7
movq %rax, %r14
jmp 0x1c8a6
movq %rax, %r14
jmp 0x1c96d
movq %rax, %r14
leaq -0x728(%rbp), %rdi
callq 0x8272
jmp 0x1c74a
movq %rax, %r14
leaq -0x728(%rbp), %rdi
callq 0x7e22
jmp 0x1c75b
movq %rax, %r14
jmp 0x1c846
movq %rax, %r14
jmp 0x1c90d
movq %rax, %r14
jmp 0x1c8be
movq %rax, %r14
jmp 0x1c985
movq %rax, %r14
leaq -0xca8(%rbp), %rdi
callq 0x8272
jmp 0x1c78c
movq %rax, %r14
leaq -0xca8(%rbp), %rdi
callq 0x7e22
jmp 0x1c7a9
movq %rax, %r14
jmp 0x1c85e
movq %rax, %r14
jmp 0x1c925
movq %rax, %r14
jmp 0x1c8d6
movq %rax, %r14
jmp 0x1c99d
movq %rax, %r14
movq -0x588(%rbp), %rdi
leaq -0x578(%rbp), %rax
cmpq %rax, %rdi
je 0x1c7e0
callq 0x31d0
jmp 0x1c7e0
movq %rax, %r14
movq -0x5a8(%rbp), %rdi
leaq -0x598(%rbp), %rax
cmpq %rax, %rdi
je 0x1c7fd
callq 0x31d0
jmp 0x1c7fd
movq %rax, %r14
jmp 0x1c876
movq %rax, %r14
jmp 0x1c93d
jmp 0x1cac7
jmp 0x1cac7
movq %rax, %r14
movq -0x288(%rbp), %rdi
leaq -0x278(%rbp), %rax
cmpq %rax, %rdi
je 0x1c82e
callq 0x31d0
jmp 0x1c82e
movq %rax, %r14
movq -0x3a8(%rbp), %rdi
leaq -0x398(%rbp), %rax
cmpq %rax, %rdi
je 0x1c8f5
callq 0x31d0
jmp 0x1c8f5
movq %rax, %r14
jmp 0x1c88e
movq %rax, %r14
jmp 0x1c955
movq %rax, %r14
movq -0x2a8(%rbp), %rdi
leaq -0x298(%rbp), %rax
cmpq %rax, %rdi
je 0x1c846
callq 0x31d0
movq -0x2c8(%rbp), %rdi
leaq -0x2b8(%rbp), %rax
cmpq %rax, %rdi
je 0x1c85e
callq 0x31d0
movq -0x2e8(%rbp), %rdi
leaq -0x2d8(%rbp), %rax
cmpq %rax, %rdi
je 0x1c876
callq 0x31d0
movq -0x308(%rbp), %rdi
leaq -0x2f8(%rbp), %rax
cmpq %rax, %rdi
je 0x1c88e
callq 0x31d0
movq -0x328(%rbp), %rdi
leaq -0x318(%rbp), %rax
cmpq %rax, %rdi
je 0x1c8a6
callq 0x31d0
movq -0x348(%rbp), %rdi
leaq -0x338(%rbp), %rax
cmpq %rax, %rdi
je 0x1c8be
callq 0x31d0
movq -0x368(%rbp), %rdi
leaq -0x358(%rbp), %rax
cmpq %rax, %rdi
je 0x1c8d6
callq 0x31d0
movq -0x388(%rbp), %rdi
leaq -0x378(%rbp), %rax
cmpq %rax, %rdi
je 0x1caca
jmp 0x1ca8e
movq %rax, %r14
movq -0x3c8(%rbp), %rdi
leaq -0x3b8(%rbp), %rax
cmpq %rax, %rdi
je 0x1c90d
callq 0x31d0
movq -0x3e8(%rbp), %rdi
leaq -0x3d8(%rbp), %rax
cmpq %rax, %rdi
je 0x1c925
callq 0x31d0
movq -0x408(%rbp), %rdi
leaq -0x3f8(%rbp), %rax
cmpq %rax, %rdi
je 0x1c93d
callq 0x31d0
movq -0x428(%rbp), %rdi
leaq -0x418(%rbp), %rax
cmpq %rax, %rdi
je 0x1c955
callq 0x31d0
movq -0x448(%rbp), %rdi
leaq -0x438(%rbp), %rax
cmpq %rax, %rdi
je 0x1c96d
callq 0x31d0
movq -0x468(%rbp), %rdi
leaq -0x458(%rbp), %rax
cmpq %rax, %rdi
je 0x1c985
callq 0x31d0
movq -0x488(%rbp), %rdi
leaq -0x478(%rbp), %rax
cmpq %rax, %rdi
je 0x1c99d
callq 0x31d0
movq -0x4a8(%rbp), %rdi
leaq -0x498(%rbp), %rax
cmpq %rax, %rdi
je 0x1caca
jmp 0x1ca8e
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
movq %rax, %r14
movq 0x2b5de(%rip), %rsi     # 0x47fb0
leaq -0x730(%rbp), %rdi
callq 0x3160
leaq -0x6b0(%rbp), %rdi
callq 0x30d0
jmp 0x1caca
jmp 0x1cac7
movq %rax, %r14
movq -0x4c8(%rbp), %rdi
leaq -0x4b8(%rbp), %rax
cmpq %rax, %rdi
je 0x1caca
jmp 0x1ca8e
movq %rax, %r14
movq -0x4e8(%rbp), %rdi
leaq -0x4d8(%rbp), %rax
cmpq %rax, %rdi
je 0x1caca
jmp 0x1ca8e
movq %rax, %r14
movq -0x508(%rbp), %rdi
leaq -0x4f8(%rbp), %rax
cmpq %rax, %rdi
je 0x1caca
jmp 0x1ca8e
movq %rax, %r14
movq -0x528(%rbp), %rdi
leaq -0x518(%rbp), %rax
cmpq %rax, %rdi
je 0x1caca
jmp 0x1ca8e
movq %rax, %r14
movq -0x548(%rbp), %rdi
leaq -0x538(%rbp), %rax
cmpq %rax, %rdi
je 0x1caca
jmp 0x1ca8e
movq %rax, %r14
movq -0x568(%rbp), %rdi
leaq -0x558(%rbp), %rax
cmpq %rax, %rdi
je 0x1caca
callq 0x31d0
jmp 0x1caca
jmp 0x1ca99
jmp 0x1ca99
movq %rax, %r14
cmpl $0x0, (%r12)
jne 0x1caca
movl %ebx, (%r12)
jmp 0x1caca
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
jmp 0x1cac7
movq %rax, %r14
movq 0x2b4f7(%rip), %rax     # 0x47fc8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x928(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x930(%rbp,%rcx)
callq 0x3190
leaq -0x838(%rbp), %rdi
callq 0x30d0
movq 0x2b4c1(%rip), %rax     # 0x47fc8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0xb28(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0xb30(%rbp,%rcx)
callq 0x3190
leaq -0xa38(%rbp), %rdi
callq 0x30d0
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x1cb4e
callq 0x31d0
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x1cb66
callq 0x31d0
movq -0x230(%rbp), %rdi
leaq -0x220(%rbp), %rax
cmpq %rax, %rdi
je 0x1cb7e
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x1cb96
callq 0x31d0
movq -0x250(%rbp), %rdi
leaq -0x240(%rbp), %rax
cmpq %rax, %rdi
je 0x1cbae
callq 0x31d0
movq -0x60(%rbp), %rdi
leaq -0x50(%rbp), %rax
cmpq %rax, %rdi
je 0x1cbc0
callq 0x31d0
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
je 0x1cbd2
callq 0x31d0
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x1cbea
callq 0x31d0
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rax
cmpq %rax, %rdi
je 0x1cc02
callq 0x31d0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x1cc1a
callq 0x31d0
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x1cc32
callq 0x31d0
movq -0x100(%rbp), %rdi
leaq -0xf0(%rbp), %rax
cmpq %rax, %rdi
je 0x1cc4a
callq 0x31d0
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x1cc62
callq 0x31d0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x1cc7a
callq 0x31d0
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x1cc92
callq 0x31d0
movq %r14, %rdi
callq 0x3380