// File: /workspace/github_cpp_makefile_star2_O1/nataly-enne[P]pet-fera/pet_fera_cadastrar.cpp
// Function: cadastrar(std::map<int, MAMIFERO_NATIVO, std::less<int>, std::allocator<std::pair<int const, MAMIFERO_NATIVO>>>&, std::map<int, MAMIFERO_EXOTICO, std::less<int>, std::allocator<std::pair<int const, MAMIFERO_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, MAMIFERO_NATIVO> &mamiferos_nat, map <int, MAMIFERO_EXOTICO> &mamiferos_ex, map <int, VETERINARIO> vets, map <int, TRATADOR> tratadores){
	int id;
	string classe, nome_cientifico, dieta, veterinario, tratador, nome_batismo, autorizacao, autorizacao_IBAMA, origem, cor, nome, id_string, sexo_string, tamanho_string;
	char sexo, tipo_animal, continuar = 's', sucesso, tipo = 'm';
	double tamanho;
	bool check;
	unsigned int old_size;
	ofstream nativos;
	ofstream exoticos;

	do{
		cout << "Deseja cadastrar um MAMIFERO NATIVO ou MAMIFERO EXÓTICO? \n n - NATIVO\n e - EXÓTICO" << endl;
		cin >> tipo_animal;
		if(tipo_animal != 'n' && tipo_animal != 'e'){
			cout << "Tipo invalido, tente novamente!" << endl;
			continuar = 's';
			continue;
		}
		else{
			// Recebe o ID e verifica se é valido.
			do{
				cout << "Digite o id:" << endl;
				cin >> id_string;
				if(!verifica_ID(mamiferos_nat, mamiferos_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 = "Mammalia";

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

			do{
				cout << "Digite a cor do pelo: " << endl;
				getline(cin, cor);
				if(!verifica_cor(cor, sucesso)){
					cout << "ERRO: a cor do animal deve conter letras, espaço ou '-'" << endl << endl;
				}
			}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 = mamiferos_nat.size();

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

				// Armazenando no map dados do tipo mamífero nativo passados pelo usuário.
				mamiferos_nat.insert(pair <int, MAMIFERO_NATIVO> (id, MAMIFERO_NATIVO(id, classe, nome, nome_cientifico,sexo, tamanho, dieta, veterinario, tratador, nome_batismo, cor, autorizacao_IBAMA, origem, autorizacao)));
				
				if (mamiferos_nat.size() == old_size){
					cout << "Falha no cadastro do animal! Tente novamente!" << endl;
					continuar = 's';
					continue;
				}
			}
			else{
				old_size = mamiferos_ex.size();

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

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

				// Armazenando no map dados do tipo mamífero exótico passados pelo usuário.
				mamiferos_ex.insert(pair <int, MAMIFERO_EXOTICO> (id, MAMIFERO_EXOTICO(id, classe, nome, nome_cientifico,sexo, tamanho, dieta,veterinario, tratador, nome_batismo, cor, autorizacao_IBAMA, origem, autorizacao)));
				
				if (mamiferos_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(!mamiferos_nat.empty()){
		nativos.open("mamiferos_nat.txt");
		for(auto it = mamiferos_nat.begin(); it != mamiferos_nat.end(); it++){
			nativos << (*it).second;
		}
		nativos.close();
	}
	if(!mamiferos_ex.empty()){
		exoticos.open("mamiferos_ex.txt");
		for(auto it = mamiferos_ex.begin(); it != mamiferos_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 $0xc58, %rsp            # imm = 0xC58
movq %rcx, -0x218(%rbp)
movq %rdx, -0x220(%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 -0xf8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xd8(%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 -0x140(%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 -0x120(%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 -0x200(%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 -0x1e0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movb $0x73, -0x2a(%rbp)
leaq -0xaf0(%rbp), %rdi
callq 0x3360
leaq -0x8f0(%rbp), %rdi
callq 0x3360
movq 0x32207(%rip), %r15     # 0x47fd0
leaq -0x6f0(%rbp), %r12
leaq -0x30(%rbp), %r13
movl $0x54, %edx
movq %r15, %rdi
leaq 0x25131(%rip), %rsi     # 0x3af14
callq 0x3250
movq (%r15), %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 0x321ca(%rip), %rdi     # 0x47fe0
leaq -0x2b(%rbp), %rsi
callq 0x3280
movzbl -0x2b(%rbp), %eax
cmpl $0x6e, %eax
je 0x15e31
cmpl $0x65, %eax
jne 0x171db
movl $0xc, %edx
movq %r15, %rdi
leaq 0x248ff(%rip), %rsi     # 0x3a73f
callq 0x3250
movq (%r15), %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 0x3216d(%rip), %rdi     # 0x47fe0
leaq -0x210(%rbp), %rsi
callq 0x3270
movb -0x2b(%rbp), %bl
leaq -0x510(%rbp), %rax
movq %rax, -0x520(%rbp)
movq -0x210(%rbp), %rsi
movq -0x208(%rbp), %rdx
addq %rsi, %rdx
leaq -0x520(%rbp), %rdi
callq 0x4574
movsbl %bl, %edx
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
leaq -0x520(%rbp), %rcx
leaq -0x29(%rbp), %r8
callq 0x37891
movl %eax, %r14d
movq -0x520(%rbp), %rdi
leaq -0x510(%rbp), %rax
cmpq %rax, %rdi
je 0x15ee3
callq 0x31d0
testb %r14b, %r14b
je 0x15f24
movq %r12, %rdi
leaq -0x210(%rbp), %rsi
movl $0x18, %edx
callq 0x3310
movq %r12, %rdi
movq %r13, %rsi
callq 0x3120
movq %r12, %rdi
movq 0x3209f(%rip), %rsi     # 0x47fb0
callq 0x3160
leaq -0x670(%rbp), %rdi
callq 0x30d0
jmp 0x15f89
movl $0x36, %edx
movq %r15, %rdi
leaq 0x24819(%rip), %rsi     # 0x3a74c
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x15e31
movq -0x1a8(%rbp), %rdx
movl $0x8, %r8d
leaq -0x1b0(%rbp), %rdi
xorl %esi, %esi
leaq 0x24fb9(%rip), %rcx     # 0x3af69
callq 0x3300
leaq -0x29(%rbp), %rbx
movl $0xe, %edx
movq %r15, %rdi
leaq 0x247bb(%rip), %rsi     # 0x3a783
callq 0x3250
movq 0x3200c(%rip), %r14     # 0x47fe0
movq (%r15), %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 %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 -0x68(%rbp), %rsi
callq 0x33c0
leaq -0x68(%rbp), %rdi
movq %rbx, %rsi
callq 0x3832d
testb %al, %al
jne 0x1609b
movl $0x2d, %edx
movq %r15, %rdi
leaq 0x2474d(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x60(%rbp), %rbx
testq %rbx, %rbx
je 0x160c1
movq -0x68(%rbp), %r14
xorl %r12d, %r12d
movsbl (%r14,%r12), %edi
callq 0x32c0
movb %al, (%r14,%r12)
incq %r12
cmpq %r12, %rbx
jne 0x160ab
cmpb $0x6e, -0x29(%rbp)
leaq -0x29(%rbp), %rbx
je 0x15fb9
movq 0x31f0a(%rip), %r12     # 0x47fe0
movl $0x1a, %edx
movq %r15, %rdi
leaq 0x24a71(%rip), %rsi     # 0x3ab56
callq 0x3250
movq (%r15), %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 (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x190(%rbp), %rsi
callq 0x33c0
leaq -0x190(%rbp), %rdi
movq %rbx, %rsi
callq 0x3844d
testb %al, %al
jne 0x161b0
movl $0x35, %edx
movq %r15, %rdi
leaq 0x24a17(%rip), %rsi     # 0x3ab71
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x160d6
movl $0x10, %edx
movq %r15, %rdi
leaq 0x249de(%rip), %rsi     # 0x3aba7
callq 0x3250
movq (%r15), %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 (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x170(%rbp), %rsi
callq 0x33c0
leaq -0x170(%rbp), %rdi
movq %rbx, %rsi
callq 0x38df8
testb %al, %al
jne 0x16294
movl $0x2d, %edx
movq %r15, %rdi
leaq 0x24554(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x161ba
movl $0x1e, %edx
movq %r15, %rdi
leaq 0x2490b(%rip), %rsi     # 0x3abb8
callq 0x3250
movq (%r15), %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 (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x108(%rbp), %rsi
callq 0x33c0
leaq -0x108(%rbp), %rdi
movq %rbx, %rsi
callq 0x3832d
testb %al, %al
jne 0x16378
movl $0x2d, %edx
movq %r15, %rdi
leaq 0x24470(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq -0x4f0(%rbp), %rax
movq %rax, -0x500(%rbp)
movq -0x108(%rbp), %rsi
movq -0x100(%rbp), %rdx
addq %rsi, %rdx
leaq -0x500(%rbp), %rdi
callq 0x4574
movq -0x220(%rbp), %rdi
leaq -0x500(%rbp), %rsi
callq 0x36dd9
movl %eax, %r14d
movq -0x500(%rbp), %rdi
leaq -0x4f0(%rbp), %rax
cmpq %rax, %rdi
je 0x163d1
callq 0x31d0
testb %r14b, %r14b
jne 0x1643c
movq (%r15), %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 $0x22, %edx
movq %r15, %rdi
leaq 0x247cb(%rip), %rsi     # 0x3abd7
callq 0x3250
movq (%r15), %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
movb $0x6e, -0x29(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x1629e
movl $0x1b, %edx
movq %r15, %rdi
leaq 0x247a5(%rip), %rsi     # 0x3abfa
callq 0x3250
movq (%r15), %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 (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0xe8(%rbp), %rsi
callq 0x33c0
leaq -0xe8(%rbp), %rdi
movq %rbx, %rsi
callq 0x3832d
testb %al, %al
jne 0x16520
movl $0x2d, %edx
movq %r15, %rdi
leaq 0x242c8(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
leaq -0x4d0(%rbp), %rax
movq %rax, -0x4e0(%rbp)
movq -0xe8(%rbp), %rsi
movq -0xe0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4e0(%rbp), %rdi
callq 0x4574
xorl %edi, %edi
movq -0x218(%rbp), %rsi
leaq -0x4e0(%rbp), %rdx
movl $0x6d, %ecx
callq 0x36e7a
movl %eax, %r14d
movq -0x4e0(%rbp), %rdi
leaq -0x4d0(%rbp), %rax
cmpq %rax, %rdi
je 0x16580
callq 0x31d0
testb %r14b, %r14b
jne 0x16619
movq (%r15), %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 $0x31, %edx
movq %r15, %rdi
leaq 0x24657(%rip), %rsi     # 0x3ac16
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movb $0x6e, -0x29(%rbp)
cmpb $0x6e, -0x29(%rbp)
je 0x16446
movl $0x1a, %edx
movq %r15, %rdi
leaq 0x24616(%rip), %rsi     # 0x3ac48
callq 0x3250
movq (%r15), %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 (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0xc8(%rbp), %rsi
callq 0x33c0
leaq -0xc8(%rbp), %rdi
movq %rbx, %rsi
callq 0x3832d
testb %al, %al
jne 0x166fd
movl $0x2d, %edx
movq %r15, %rdi
leaq 0x240eb(%rip), %rsi     # 0x3a792
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0xc0(%rbp), %rbx
testq %rbx, %rbx
je 0x16729
movq -0xc8(%rbp), %r14
xorl %r12d, %r12d
movsbl (%r14,%r12), %edi
callq 0x32c0
movb %al, (%r14,%r12)
incq %r12
cmpq %r12, %rbx
jne 0x16713
cmpb $0x6e, -0x29(%rbp)
leaq -0x29(%rbp), %rbx
movq 0x318a8(%rip), %r12     # 0x47fe0
je 0x16623
movl $0x19, %edx
movq %r15, %rdi
leaq 0x24516(%rip), %rsi     # 0x3ac63
callq 0x3250
movq (%r15), %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 (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x33c0
movq -0x1c8(%rbp), %rbx
testq %rbx, %rbx
je 0x167cc
movq -0x1d0(%rbp), %r14
xorl %r12d, %r12d
movsbl (%r14,%r12), %edi
callq 0x33d0
movb %al, (%r14,%r12)
incq %r12
cmpq %r12, %rbx
jne 0x167b6
leaq -0x1d0(%rbp), %rbx
movq %rbx, %rdi
leaq 0x244a0(%rip), %rsi     # 0x3ac7d
callq 0x30c0
testl %eax, %eax
je 0x1687a
movq %rbx, %rdi
leaq 0x2448b(%rip), %rsi     # 0x3ac7f
callq 0x30c0
testl %eax, %eax
je 0x1687a
movb $0x6e, -0x29(%rbp)
movl $0x21, %edx
movq %r15, %rdi
leaq 0x24471(%rip), %rsi     # 0x3ac81
callq 0x3250
leaq -0x29(%rbp), %rbx
leaq -0x6f0(%rbp), %r13
movq 0x317b9(%rip), %r12     # 0x47fe0
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
jmp 0x1689c
movq -0x1d0(%rbp), %rax
movb (%rax), %al
movb %al, -0x2c(%rbp)
movb $0x73, -0x29(%rbp)
leaq -0x29(%rbp), %rbx
leaq -0x6f0(%rbp), %r13
movq 0x31744(%rip), %r12     # 0x47fe0
cmpb $0x6e, -0x29(%rbp)
je 0x1673e
movl $0x1c, %edx
movq %r15, %rdi
leaq 0x243ee(%rip), %rsi     # 0x3aca3
callq 0x3250
movq (%r15), %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 (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x33c0
leaq -0x4b0(%rbp), %rax
movq %rax, -0x4c0(%rbp)
movq -0x1f0(%rbp), %rsi
movq -0x1e8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4c0(%rbp), %rdi
callq 0x4574
leaq -0x4c0(%rbp), %rdi
movq %rbx, %rsi
callq 0x38f49
movl %eax, %r14d
movq -0x4c0(%rbp), %rdi
leaq -0x4b0(%rbp), %rax
cmpq %rax, %rdi
je 0x1695d
callq 0x31d0
testb %r14b, %r14b
jne 0x169c7
movl $0x34, %edx
movq %r15, %rdi
leaq 0x2434f(%rip), %rsi     # 0x3acc0
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq -0x1f0(%rbp), %r12
callq 0x3040
movq %rax, %r14
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r12, %rdi
movq %r13, %rsi
callq 0x3170
movsd %xmm0, -0x110(%rbp)
cmpq %r12, -0x6f0(%rbp)
je 0x17b34
movl (%r14), %eax
testl %eax, %eax
je 0x16a1d
cmpl $0x22, %eax
leaq -0x6f0(%rbp), %r13
movq 0x315ca(%rip), %r12     # 0x47fe0
jne 0x16a2e
jmp 0x17b40
movl %ebx, (%r14)
leaq -0x6f0(%rbp), %r13
movq 0x315b2(%rip), %r12     # 0x47fe0
cmpb $0x6e, -0x29(%rbp)
leaq -0x29(%rbp), %rbx
je 0x168a6
leaq -0x30(%rbp), %r13
movl $0x16, %edx
movq %r15, %rdi
leaq 0x24523(%rip), %rsi     # 0x3af72
callq 0x3250
movq (%r15), %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 (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x130(%rbp), %rsi
callq 0x33c0
leaq -0x130(%rbp), %rdi
movq %rbx, %rsi
callq 0x394d2
testb %al, %al
jne 0x16b1a
movl $0x38, %edx
movq %r15, %rdi
leaq 0x244c5(%rip), %rsi     # 0x3af89
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x16a40
movl $0x1f, %edx
movq %r15, %rdi
leaq 0x2427e(%rip), %rsi     # 0x3adb1
callq 0x3250
movq (%r15), %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 (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq %r12, %rdi
leaq -0x150(%rbp), %rsi
callq 0x33c0
leaq -0x150(%rbp), %rdi
movq %rbx, %rsi
callq 0x391c3
testb %al, %al
jne 0x16bfe
movl $0x36, %edx
movq %r15, %rdi
leaq 0x2441a(%rip), %rsi     # 0x3afc2
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x16b24
cmpb $0x6e, -0x2b(%rbp)
jne 0x1721b
movq -0x38(%rbp), %rax
movl 0x28(%rax), %eax
movq %rax, -0x48(%rbp)
movl $0x17, %edx
movq %r15, %rdi
leaq 0x241db(%rip), %rsi     # 0x3ae07
callq 0x3250
movq (%r15), %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 0x31381(%rip), %rcx     # 0x47fe0
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq 0x31363(%rip), %rdi     # 0x47fe0
leaq -0x88(%rbp), %rsi
callq 0x33c0
leaq -0x88(%rbp), %rdi
movq %rbx, %rsi
callq 0x39389
testb %al, %al
jne 0x16d01
movl $0x24, %edx
movq %r15, %rdi
leaq 0x24174(%rip), %rsi     # 0x3ae1f
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x16c1d
movl $0x20, %edx
movq %r15, %rdi
leaq 0x2412a(%rip), %rsi     # 0x3ae44
callq 0x3250
movq (%r15), %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 0x31293(%rip), %rcx     # 0x47fe0
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq 0x31275(%rip), %rdi     # 0x47fe0
leaq -0xa8(%rbp), %rsi
callq 0x33c0
leaq -0xa8(%rbp), %rdi
movq %rbx, %rsi
callq 0x391c3
testb %al, %al
jne 0x16def
movl $0x35, %edx
movq %r15, %rdi
leaq 0x24038(%rip), %rsi     # 0x3add1
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x16d0b
movl -0x30(%rbp), %r14d
leaq -0x490(%rbp), %rax
movq %rax, -0x4a0(%rbp)
movq -0x1b0(%rbp), %rsi
movq -0x1a8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4a0(%rbp), %rdi
callq 0x4574
leaq -0x470(%rbp), %rax
movq %rax, -0x480(%rbp)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
addq %rsi, %rdx
leaq -0x480(%rbp), %rdi
callq 0x4574
leaq -0x450(%rbp), %rax
movq %rax, -0x460(%rbp)
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
addq %rsi, %rdx
leaq -0x460(%rbp), %rdi
callq 0x4574
leaq -0x430(%rbp), %rax
movq %rax, -0x440(%rbp)
movq -0x170(%rbp), %rsi
movq -0x168(%rbp), %rdx
addq %rsi, %rdx
leaq -0x440(%rbp), %rdi
callq 0x4574
leaq -0x410(%rbp), %rax
movq %rax, -0x420(%rbp)
movq -0x108(%rbp), %rsi
movq -0x100(%rbp), %rdx
addq %rsi, %rdx
leaq -0x420(%rbp), %rdi
callq 0x4574
leaq -0x3f0(%rbp), %rax
movq %rax, -0x400(%rbp)
movq -0xe8(%rbp), %rsi
movq -0xe0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x400(%rbp), %rdi
callq 0x4574
leaq -0x3d0(%rbp), %rax
movq %rax, -0x3e0(%rbp)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3e0(%rbp), %rdi
callq 0x4574
leaq -0x3b0(%rbp), %rax
movq %rax, -0x3c0(%rbp)
movq -0x130(%rbp), %rsi
movq -0x128(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3c0(%rbp), %rdi
callq 0x4574
leaq -0x390(%rbp), %rax
movq %rax, -0x3a0(%rbp)
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3a0(%rbp), %rdi
callq 0x4574
leaq -0x370(%rbp), %rax
movq %rax, -0x380(%rbp)
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
addq %rsi, %rdx
leaq -0x380(%rbp), %rdi
callq 0x4574
leaq -0x550(%rbp), %rax
movq %rax, -0x560(%rbp)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x560(%rbp), %rbx
movq %rbx, %rdi
callq 0x4574
movsbl -0x2c(%rbp), %r9d
leaq -0xc78(%rbp), %r12
movq %r12, %rdi
movl %r14d, %esi
leaq -0x4a0(%rbp), %rdx
leaq -0x480(%rbp), %rcx
leaq -0x460(%rbp), %r8
movsd -0x110(%rbp), %xmm0
pushq %rbx
leaq -0x380(%rbp), %rax
pushq %rax
leaq -0x3a0(%rbp), %rax
pushq %rax
leaq -0x3c0(%rbp), %rax
pushq %rax
leaq -0x3e0(%rbp), %rax
pushq %rax
leaq -0x400(%rbp), %rax
pushq %rax
leaq -0x420(%rbp), %rax
pushq %rax
leaq -0x440(%rbp), %rax
pushq %rax
callq 0x6638
addq $0x40, %rsp
leaq -0x6f0(%rbp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x1cf0e
movq -0x38(%rbp), %rdi
movq %rbx, %rsi
callq 0x1df18
leaq -0x6e8(%rbp), %rdi
callq 0x6af8
leaq -0xc78(%rbp), %rdi
callq 0x6af8
movq -0x560(%rbp), %rdi
leaq -0x550(%rbp), %rax
cmpq %rax, %rdi
je 0x17092
callq 0x31d0
movq -0x380(%rbp), %rdi
leaq -0x370(%rbp), %rax
cmpq %rax, %rdi
je 0x170aa
callq 0x31d0
movq -0x3a0(%rbp), %rdi
leaq -0x390(%rbp), %rax
cmpq %rax, %rdi
je 0x170c2
callq 0x31d0
movq -0x3c0(%rbp), %rdi
leaq -0x3b0(%rbp), %rax
cmpq %rax, %rdi
je 0x170da
callq 0x31d0
movq -0x3e0(%rbp), %rdi
leaq -0x3d0(%rbp), %rax
cmpq %rax, %rdi
je 0x170f2
callq 0x31d0
movq -0x400(%rbp), %rdi
leaq -0x3f0(%rbp), %rax
cmpq %rax, %rdi
je 0x1710a
callq 0x31d0
movq -0x420(%rbp), %rdi
leaq -0x410(%rbp), %rax
cmpq %rax, %rdi
je 0x17122
callq 0x31d0
movq -0x440(%rbp), %rdi
leaq -0x430(%rbp), %rax
cmpq %rax, %rdi
je 0x1713a
callq 0x31d0
movq -0x460(%rbp), %rdi
leaq -0x450(%rbp), %rax
cmpq %rax, %rdi
je 0x17152
callq 0x31d0
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
je 0x1716a
callq 0x31d0
movq -0x4a0(%rbp), %rdi
leaq -0x490(%rbp), %rax
cmpq %rax, %rdi
je 0x17182
callq 0x31d0
movq -0x38(%rbp), %rax
movq -0x48(%rbp), %rcx
cmpq %rcx, 0x28(%rax)
jne 0x177e4
movl $0x2d, %edx
movq %r15, %rdi
leaq 0x23cc2(%rip), %rsi     # 0x3ae65
callq 0x3250
leaq -0x6f0(%rbp), %r12
movq (%r15), %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
jmp 0x177db
movl $0x1f, %edx
movq %r15, %rdi
leaq 0x23943(%rip), %rsi     # 0x3ab2d
callq 0x3250
movq (%r15), %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
jmp 0x177db
movq -0x40(%rbp), %rax
movl 0x28(%rax), %eax
movq %rax, -0x48(%rbp)
movl $0x1a, %edx
movq %r15, %rdi
leaq 0x23c5e(%rip), %rsi     # 0x3ae93
callq 0x3250
movq (%r15), %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 0x30d78(%rip), %rcx     # 0x47fe0
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq 0x30d5a(%rip), %rdi     # 0x47fe0
leaq -0x88(%rbp), %rsi
callq 0x33c0
leaq -0x88(%rbp), %rdi
movq %rbx, %rsi
callq 0x39389
testb %al, %al
jne 0x1730a
movl $0x24, %edx
movq %r15, %rdi
leaq 0x23b6b(%rip), %rsi     # 0x3ae1f
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x17226
movl $0x20, %edx
movq %r15, %rdi
leaq 0x23b21(%rip), %rsi     # 0x3ae44
callq 0x3250
movq (%r15), %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 0x30c8a(%rip), %rcx     # 0x47fe0
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %edx
movq 0x30c6c(%rip), %rdi     # 0x47fe0
leaq -0xa8(%rbp), %rsi
callq 0x33c0
leaq -0xa8(%rbp), %rdi
movq %rbx, %rsi
callq 0x391c3
testb %al, %al
jne 0x173f8
movl $0x35, %edx
movq %r15, %rdi
leaq 0x23a2f(%rip), %rsi     # 0x3add1
callq 0x3250
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
cmpb $0x6e, -0x29(%rbp)
je 0x17314
movl -0x30(%rbp), %r14d
leaq -0x350(%rbp), %rax
movq %rax, -0x360(%rbp)
movq -0x1b0(%rbp), %rsi
movq -0x1a8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x360(%rbp), %rdi
callq 0x4574
leaq -0x330(%rbp), %rax
movq %rax, -0x340(%rbp)
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
addq %rsi, %rdx
leaq -0x340(%rbp), %rdi
callq 0x4574
leaq -0x310(%rbp), %rax
movq %rax, -0x320(%rbp)
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
addq %rsi, %rdx
leaq -0x320(%rbp), %rdi
callq 0x4574
leaq -0x2f0(%rbp), %rax
movq %rax, -0x300(%rbp)
movq -0x170(%rbp), %rsi
movq -0x168(%rbp), %rdx
addq %rsi, %rdx
leaq -0x300(%rbp), %rdi
callq 0x4574
leaq -0x2d0(%rbp), %rax
movq %rax, -0x2e0(%rbp)
movq -0x108(%rbp), %rsi
movq -0x100(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2e0(%rbp), %rdi
callq 0x4574
leaq -0x2b0(%rbp), %rax
movq %rax, -0x2c0(%rbp)
movq -0xe8(%rbp), %rsi
movq -0xe0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2c0(%rbp), %rdi
callq 0x4574
leaq -0x290(%rbp), %rax
movq %rax, -0x2a0(%rbp)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2a0(%rbp), %rdi
callq 0x4574
leaq -0x270(%rbp), %rax
movq %rax, -0x280(%rbp)
movq -0x130(%rbp), %rsi
movq -0x128(%rbp), %rdx
addq %rsi, %rdx
leaq -0x280(%rbp), %rdi
callq 0x4574
leaq -0x250(%rbp), %rax
movq %rax, -0x260(%rbp)
movq -0x150(%rbp), %rsi
movq -0x148(%rbp), %rdx
addq %rsi, %rdx
leaq -0x260(%rbp), %rdi
callq 0x4574
leaq -0x230(%rbp), %rax
movq %rax, -0x240(%rbp)
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
addq %rsi, %rdx
leaq -0x240(%rbp), %rdi
callq 0x4574
leaq -0x530(%rbp), %rax
movq %rax, -0x540(%rbp)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x540(%rbp), %rbx
movq %rbx, %rdi
callq 0x4574
movsbl -0x2c(%rbp), %r9d
leaq -0xc78(%rbp), %r12
movq %r12, %rdi
movl %r14d, %esi
leaq -0x360(%rbp), %rdx
leaq -0x340(%rbp), %rcx
leaq -0x320(%rbp), %r8
movsd -0x110(%rbp), %xmm0
pushq %rbx
leaq -0x240(%rbp), %rax
pushq %rax
leaq -0x260(%rbp), %rax
pushq %rax
leaq -0x280(%rbp), %rax
pushq %rax
leaq -0x2a0(%rbp), %rax
pushq %rax
leaq -0x2c0(%rbp), %rax
pushq %rax
leaq -0x2e0(%rbp), %rax
pushq %rax
leaq -0x300(%rbp), %rax
pushq %rax
callq 0x6b4e
addq $0x40, %rsp
leaq -0x6f0(%rbp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x1cf94
movq -0x40(%rbp), %rdi
movq %rbx, %rsi
callq 0x1e154
leaq -0x6e8(%rbp), %rdi
callq 0x6fc6
leaq -0xc78(%rbp), %rdi
callq 0x6fc6
movq -0x540(%rbp), %rdi
leaq -0x530(%rbp), %rax
cmpq %rax, %rdi
je 0x1769b
callq 0x31d0
movq -0x240(%rbp), %rdi
leaq -0x230(%rbp), %rax
cmpq %rax, %rdi
je 0x176b3
callq 0x31d0
movq -0x260(%rbp), %rdi
leaq -0x250(%rbp), %rax
cmpq %rax, %rdi
je 0x176cb
callq 0x31d0
movq -0x280(%rbp), %rdi
leaq -0x270(%rbp), %rax
cmpq %rax, %rdi
je 0x176e3
callq 0x31d0
movq -0x2a0(%rbp), %rdi
leaq -0x290(%rbp), %rax
cmpq %rax, %rdi
je 0x176fb
callq 0x31d0
movq -0x2c0(%rbp), %rdi
leaq -0x2b0(%rbp), %rax
cmpq %rax, %rdi
je 0x17713
callq 0x31d0
movq -0x2e0(%rbp), %rdi
leaq -0x2d0(%rbp), %rax
cmpq %rax, %rdi
je 0x1772b
callq 0x31d0
movq -0x300(%rbp), %rdi
leaq -0x2f0(%rbp), %rax
cmpq %rax, %rdi
je 0x17743
callq 0x31d0
movq -0x320(%rbp), %rdi
leaq -0x310(%rbp), %rax
cmpq %rax, %rdi
je 0x1775b
callq 0x31d0
movq -0x340(%rbp), %rdi
leaq -0x330(%rbp), %rax
cmpq %rax, %rdi
je 0x17773
callq 0x31d0
movq -0x360(%rbp), %rdi
leaq -0x350(%rbp), %rax
cmpq %rax, %rdi
je 0x1778b
callq 0x31d0
movq -0x40(%rbp), %rax
movq -0x48(%rbp), %rcx
cmpq %rcx, 0x28(%rax)
jne 0x177e4
movl $0x2d, %edx
movq %r15, %rdi
leaq 0x236bd(%rip), %rsi     # 0x3ae65
callq 0x3250
leaq -0x6f0(%rbp), %r12
movq (%r15), %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
movb $0x73, -0x2a(%rbp)
jmp 0x1789b
movl $0x1f, %edx
movq %r15, %rdi
leaq 0x236bb(%rip), %rsi     # 0x3aeae
callq 0x3250
leaq -0x6f0(%rbp), %r12
movq (%r15), %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 %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movl $0x24, %edx
movq %r15, %rdi
leaq 0x2366f(%rip), %rsi     # 0x3aece
callq 0x3250
movq (%r15), %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 0x3074e(%rip), %rdi     # 0x47fe0
leaq -0x2a(%rbp), %rsi
callq 0x3280
cmpb $0x73, -0x2a(%rbp)
je 0x15dd4
movq -0x38(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x1790b
leaq 0x23742(%rip), %rsi     # 0x3aff9
leaq -0xaf0(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0x178ff
movq %rax, %r15
leaq -0xaf0(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0xad94
movq %rbx, %rdi
callq 0x3140
movq %rax, %rbx
cmpq %r15, %rax
jne 0x178e3
leaq -0xaf0(%rbp), %rdi
callq 0x32a0
movq -0x40(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x17971
leaq 0x236ee(%rip), %rsi     # 0x3b00b
leaq -0x8f0(%rbp), %rdi
movl $0x10, %edx
callq 0x3050
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rbx
addq $0x8, %rax
cmpq %rax, %rbx
je 0x17965
movq %rax, %r15
leaq -0x8f0(%rbp), %r14
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0xb3e7
movq %rbx, %rdi
callq 0x3140
movq %rax, %rbx
cmpq %r15, %rax
jne 0x17949
leaq -0x8f0(%rbp), %rdi
callq 0x32a0
movq 0x30650(%rip), %rax     # 0x47fc8
movq (%rax), %rbx
movq 0x18(%rax), %r14
leaq -0x8e8(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0x8f0(%rbp,%rax)
callq 0x3190
movl $0xf8, %r15d
leaq -0x8f0(%rbp), %rdi
addq %r15, %rdi
callq 0x30d0
leaq -0xae8(%rbp), %rdi
movq %rbx, -0x8(%rdi)
movq -0x18(%rbx), %rax
movq %r14, -0xaf0(%rbp,%rax)
callq 0x3190
leaq -0xaf0(%rbp), %rdi
addq %r15, %rdi
callq 0x30d0
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x179f3
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x17a0b
callq 0x31d0
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x17a23
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x17a35
callq 0x31d0
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x17a4d
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x17a62
callq 0x31d0
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x17a7a
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x17a92
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x17aaa
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x17ac2
callq 0x31d0
movq -0x108(%rbp), %rdi
leaq -0xf8(%rbp), %rax
cmpq %rax, %rdi
je 0x17ada
callq 0x31d0
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x17af2
callq 0x31d0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x17b0a
callq 0x31d0
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x17b22
callq 0x31d0
addq $0xc58, %rsp            # imm = 0xC58
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x23677(%rip), %rdi     # 0x3b1b2
callq 0x3110
leaq 0x2366b(%rip), %rdi     # 0x3b1b2
callq 0x32b0
movq %rax, %r15
jmp 0x17f6d
movq %rax, %r15
jmp 0x17fa3
jmp 0x17f34
movq %rax, %r15
jmp 0x17c65
movq %rax, %r15
jmp 0x17dd1
movq %rax, %r15
jmp 0x17cea
movq %rax, %r15
leaq -0x6e8(%rbp), %rdi
callq 0x6fc6
jmp 0x17bb5
movq %rax, %r15
jmp 0x17e49
movq %rax, %r15
jmp 0x17d71
movq %rax, %r15
jmp 0x17c7d
movq %rax, %r15
jmp 0x17de9
movq %rax, %r15
jmp 0x17d02
movq %rax, %r15
leaq -0xc78(%rbp), %rdi
callq 0x6fc6
jmp 0x17bfc
jmp 0x17f34
movq %rax, %r15
jmp 0x17d89
movq %rax, %r15
jmp 0x17c95
movq %rax, %r15
jmp 0x17e01
movq %rax, %r15
leaq -0x6e8(%rbp), %rdi
callq 0x6af8
jmp 0x17c31
movq %rax, %r15
jmp 0x17d1a
movq %rax, %r15
movq -0x540(%rbp), %rdi
leaq -0x530(%rbp), %rax
cmpq %rax, %rdi
je 0x17c4d
callq 0x31d0
jmp 0x17c4d
movq %rax, %r15
jmp 0x17da1
movq %rax, %r15
jmp 0x17cad
movq %rax, %r15
jmp 0x17e19
movq %rax, %r15
leaq -0xc78(%rbp), %rdi
callq 0x6af8
jmp 0x17d59
movq %rax, %r15
jmp 0x17d32
movq %rax, %r15
movq -0x240(%rbp), %rdi
leaq -0x230(%rbp), %rax
cmpq %rax, %rdi
je 0x17c65
callq 0x31d0
movq -0x260(%rbp), %rdi
leaq -0x250(%rbp), %rax
cmpq %rax, %rdi
je 0x17c7d
callq 0x31d0
movq -0x280(%rbp), %rdi
leaq -0x270(%rbp), %rax
cmpq %rax, %rdi
je 0x17c95
callq 0x31d0
movq -0x2a0(%rbp), %rdi
leaq -0x290(%rbp), %rax
cmpq %rax, %rdi
je 0x17cad
callq 0x31d0
movq -0x2c0(%rbp), %rdi
leaq -0x2b0(%rbp), %rax
cmpq %rax, %rdi
je 0x17cd2
callq 0x31d0
jmp 0x17cd2
movq %rax, %r15
jmp 0x17db9
movq %rax, %r15
movq -0x2e0(%rbp), %rdi
leaq -0x2d0(%rbp), %rax
cmpq %rax, %rdi
je 0x17cea
callq 0x31d0
movq -0x300(%rbp), %rdi
leaq -0x2f0(%rbp), %rax
cmpq %rax, %rdi
je 0x17d02
callq 0x31d0
movq -0x320(%rbp), %rdi
leaq -0x310(%rbp), %rax
cmpq %rax, %rdi
je 0x17d1a
callq 0x31d0
movq -0x340(%rbp), %rdi
leaq -0x330(%rbp), %rax
cmpq %rax, %rdi
je 0x17d32
callq 0x31d0
movq -0x360(%rbp), %rdi
leaq -0x350(%rbp), %rax
cmpq %rax, %rdi
je 0x17f37
jmp 0x17f03
movq %rax, %r15
jmp 0x17e31
movq %rax, %r15
movq -0x560(%rbp), %rdi
leaq -0x550(%rbp), %rax
cmpq %rax, %rdi
je 0x17d71
callq 0x31d0
movq -0x380(%rbp), %rdi
leaq -0x370(%rbp), %rax
cmpq %rax, %rdi
je 0x17d89
callq 0x31d0
movq -0x3a0(%rbp), %rdi
leaq -0x390(%rbp), %rax
cmpq %rax, %rdi
je 0x17da1
callq 0x31d0
movq -0x3c0(%rbp), %rdi
leaq -0x3b0(%rbp), %rax
cmpq %rax, %rdi
je 0x17db9
callq 0x31d0
movq -0x3e0(%rbp), %rdi
leaq -0x3d0(%rbp), %rax
cmpq %rax, %rdi
je 0x17dd1
callq 0x31d0
movq -0x400(%rbp), %rdi
leaq -0x3f0(%rbp), %rax
cmpq %rax, %rdi
je 0x17de9
callq 0x31d0
movq -0x420(%rbp), %rdi
leaq -0x410(%rbp), %rax
cmpq %rax, %rdi
je 0x17e01
callq 0x31d0
movq -0x440(%rbp), %rdi
leaq -0x430(%rbp), %rax
cmpq %rax, %rdi
je 0x17e19
callq 0x31d0
movq -0x460(%rbp), %rdi
leaq -0x450(%rbp), %rax
cmpq %rax, %rdi
je 0x17e31
callq 0x31d0
movq -0x480(%rbp), %rdi
leaq -0x470(%rbp), %rax
cmpq %rax, %rdi
je 0x17e49
callq 0x31d0
movq -0x4a0(%rbp), %rdi
leaq -0x490(%rbp), %rax
cmpq %rax, %rdi
je 0x17f37
jmp 0x17f03
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
movq %rax, %r15
movq 0x3012d(%rip), %rsi     # 0x47fb0
leaq -0x6f0(%rbp), %rdi
callq 0x3160
leaq -0x670(%rbp), %rdi
callq 0x30d0
jmp 0x17f37
jmp 0x17f34
movq %rax, %r15
movq -0x4c0(%rbp), %rdi
leaq -0x4b0(%rbp), %rax
cmpq %rax, %rdi
je 0x17f37
jmp 0x17f03
movq %rax, %r15
movq -0x4e0(%rbp), %rdi
leaq -0x4d0(%rbp), %rax
cmpq %rax, %rdi
je 0x17f37
jmp 0x17f03
movq %rax, %r15
movq -0x500(%rbp), %rdi
leaq -0x4f0(%rbp), %rax
cmpq %rax, %rdi
je 0x17f37
jmp 0x17f03
movq %rax, %r15
movq -0x520(%rbp), %rdi
leaq -0x510(%rbp), %rax
cmpq %rax, %rdi
je 0x17f37
callq 0x31d0
jmp 0x17f37
movq %rax, %r15
cmpl $0x0, (%r14)
jne 0x17f37
movl %ebx, (%r14)
jmp 0x17f37
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
jmp 0x17f34
movq %rax, %r15
movq 0x3008a(%rip), %rax     # 0x47fc8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x8e8(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x8f0(%rbp,%rcx)
callq 0x3190
leaq -0x7f8(%rbp), %rdi
callq 0x30d0
movq 0x30054(%rip), %rax     # 0x47fc8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0xae8(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0xaf0(%rbp,%rcx)
callq 0x3190
leaq -0x9f8(%rbp), %rdi
callq 0x30d0
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x17fbb
callq 0x31d0
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x17fd3
callq 0x31d0
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x17feb
callq 0x31d0
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x17ffd
callq 0x31d0
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x18015
callq 0x31d0
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x1802a
callq 0x31d0
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x18042
callq 0x31d0
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x1805a
callq 0x31d0
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x18072
callq 0x31d0
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x1808a
callq 0x31d0
movq -0x108(%rbp), %rdi
leaq -0xf8(%rbp), %rax
cmpq %rax, %rdi
je 0x180a2
callq 0x31d0
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rax
cmpq %rax, %rdi
je 0x180ba
callq 0x31d0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x180d2
callq 0x31d0
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x180ea
callq 0x31d0
movq %r15, %rdi
callq 0x3380