// File: /workspace/github_cpp_makefile_star2_O1/viniciu21[P]PetLolja/./src/PetFera.cpp
// Function: Petfera::atualizar_animal(std::shared_ptr<Animal>)
bool Petfera::atualizar_animal(shared_ptr<Animal> animal)
{
	bool alterar_bool;
	string alterar_string;
	short escolha;
	string escolha_str;
	pelos alterar_pelos;
	TipoDeGestacao alterar_gestacao;
	stringstream ss;

	cout << "o que vc quer atualizar? "
			 << "\n"
			 << "# Temos as seguintes opcao : # "
			 << "\n"
			 << "    1 -> Alterar nome cientifico do animal"
			 << "\n"
			 << "    2 -> Alterar Nome do animal"
			 << "\n"
			 << "    3 -> Alterar Tipo de temperatura do animal"
			 << "\n"
			 << "    4 -> Alterar Tipo de pele do animal"
			 << "\n"
			 << "    5 -> Alterar Tipo de fecundacao do animal"
			 << "\n"
			 << "    6 -> Alterar Troca de pele do animal"
			 << "\n"
			 << "    7 -> Alterar Material eliminado do animal"
			 << endl;

	if (animal->getFamilia() == Mamiferos)
	{
		cout << "    8 -> Alterar se possui dentes" << endl;
		cout << "    9 -> Alterar pelagem" << endl;
		cout << "    10 -> Alterar tipo de gestacao" << endl;
	}
	else if (animal->getFamilia() == Aves)
	{
		cout << "    12 -> Alterar envergadura da asa" << endl;
		cout << "    13 -> Alterar tamanho do bico" << endl;
	}
	else if (animal->getFamilia() == Anfibios)
	{
		cout << "    14 -> Alterar habitat" << endl;
		cout << "    15 -> Alterar se possui ovos" << endl;
	}
	else if (animal->getFamilia() == Repteis)
	{
	}

	cout << "Escolha uma opcao"
			 << "\n";

	cin >> escolha_str;
	ss << escolha_str;
	ss >> escolha;

	if (escolha == 1)
	{
		cout << "Digite a nova especie \n";

		cin >> alterar_string;

		animal->setEspecie(alterar_string);
	}
	else if (escolha == 2)
	{
		cout << "Digite o novo nome \n";

		cin >> alterar_string;

		animal->setNome(alterar_string);
	}
	else if (escolha == 3)
	{
		cout << "Digite o novo tipo de temperatura \n";

		cin >> alterar_string;

		animal->setTipo_temperatura(alterar_string);
	}
	else if (escolha == 4)
	{
		cout << "Digite o novo tipo de pele \n";

		cin >> alterar_string;

		animal->setTipo_pele(alterar_string);
	}
	else if (escolha == 5)
	{
		cout << "Digite o novo tipo de fecundacao \n";

		cin >> alterar_string;

		animal->setTipo_fecundacao(alterar_string);
	}
	else if (escolha == 6)
	{
		cout << "Digite de S se troca de pele ou N se nao troca \n";

		cin >> alterar_bool;

		animal->setTroca_pele(alterar_bool);
	}
	else if (escolha == 7)
	{
		cout << "Digite o novo material eliminado \n";

		cin >> alterar_string;

		animal->setMaterial_eliminidado(alterar_string);
	}
	else if (escolha == 8)
	{
		alterar_bool = leBool("Possui Dentes? [S/n]");

		shared_ptr<Mamifero> mami_trat = dynamic_pointer_cast<Mamifero>(animal);

		mami_trat->setDentes(alterar_bool);
	}
	else if (escolha == 9)
	{
		alterar_pelos = lePelo("Digite o numero correspondende a pelagem do animal \n1-ausencia de pelos \n2-pelo reduzido \n3-pelo normal \n");

		shared_ptr<Mamifero> mami_trat = dynamic_pointer_cast<Mamifero>(animal);

		mami_trat->setPelagem(alterar_pelos);
	}
	else if (escolha == 10)
	{
		alterar_gestacao = leGestacao("Digite o numero que indique o tipo de gestacao do animal \n1-Marsupio \n2-Placenta");

		shared_ptr<Mamifero> mami_trat = dynamic_pointer_cast<Mamifero>(animal);

		mami_trat->setTipoGestacao(alterar_gestacao);
	}
	else if (escolha == 12)
	{
		cout << "Digite a nova envergadura \n";

		cin >> alterar_string;

		shared_ptr<Ave> ave_trat = dynamic_pointer_cast<Ave>(animal);

		ave_trat->setEnvergaduraAsas(alterar_string);
	}
	else if (escolha == 13)
	{
		cout << "Digite o novo tamanho do bico \n";

		cin >> alterar_string;

		shared_ptr<Ave> ave_trat = dynamic_pointer_cast<Ave>(animal);

		ave_trat->setTamanhoDoBico(alterar_string);
	}
	else if (escolha == 14)
	{
		cout << "Digite o novo habitat \n";

		cin >> alterar_string;

		shared_ptr<Anfibio> anfi_trat = dynamic_pointer_cast<Anfibio>(animal);

		anfi_trat->setHabitat(alterar_string);
	}
	else if (escolha == 15)
	{
		alterar_bool = leBool("Possui ovos? [S/n]");

		shared_ptr<Anfibio> anfi_trat = dynamic_pointer_cast<Anfibio>(animal);

		anfi_trat->setPossui_ovos(alterar_bool);
	}
	else if (escolha == 0 || escolha > 15)
	{
		cout << "Erro, escolha apenas as opções mostradas";

		return false;
	}

	return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x388, %rsp            # imm = 0x388
movq %rsi, %rbx
leaq -0x48(%rbp), %r12
movq %r12, -0x10(%r12)
xorl %eax, %eax
movq %rax, -0x8(%r12)
movb %al, (%r12)
leaq -0xb0(%rbp), %r13
movq %r13, -0x10(%r13)
movq %rax, -0x8(%r13)
movb %al, (%r13)
leaq -0x3a8(%rbp), %rdi
callq 0x4130
movq 0x1e821(%rip), %rdi     # 0x3afd0
leaq 0x125c2(%rip), %rsi     # 0x2ed78
movl $0x19, %edx
callq 0x4210
movq 0x1e809(%rip), %rdi     # 0x3afd0
leaq 0x11263(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e7f1(%rip), %rdi     # 0x3afd0
leaq 0x125ac(%rip), %rsi     # 0x2ed92
movl $0x1f, %edx
callq 0x4210
movq 0x1e7d9(%rip), %rdi     # 0x3afd0
leaq 0x11233(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e7c1(%rip), %rdi     # 0x3afd0
leaq 0x12713(%rip), %rsi     # 0x2ef29
movl $0x2a, %edx
callq 0x4210
movq 0x1e7a9(%rip), %rdi     # 0x3afd0
leaq 0x11203(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e791(%rip), %rdi     # 0x3afd0
leaq 0x1270e(%rip), %rsi     # 0x2ef54
movl $0x1f, %edx
callq 0x4210
movq 0x1e779(%rip), %rdi     # 0x3afd0
leaq 0x111d3(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e761(%rip), %rdi     # 0x3afd0
leaq 0x126fe(%rip), %rsi     # 0x2ef74
movl $0x2e, %edx
callq 0x4210
movq 0x1e749(%rip), %rdi     # 0x3afd0
leaq 0x111a3(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e731(%rip), %rdi     # 0x3afd0
leaq 0x126fd(%rip), %rsi     # 0x2efa3
movl $0x27, %edx
callq 0x4210
movq 0x1e719(%rip), %rdi     # 0x3afd0
leaq 0x11173(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e701(%rip), %rdi     # 0x3afd0
leaq 0x126f5(%rip), %rsi     # 0x2efcb
movl $0x2d, %edx
callq 0x4210
movq 0x1e6e9(%rip), %rdi     # 0x3afd0
leaq 0x11143(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e6d1(%rip), %rdi     # 0x3afd0
leaq 0x126f3(%rip), %rsi     # 0x2eff9
movl $0x28, %edx
callq 0x4210
movq 0x1e6b9(%rip), %rdi     # 0x3afd0
leaq 0x11113(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e6a1(%rip), %r14     # 0x3afd0
leaq 0x126ec(%rip), %rsi     # 0x2f022
movl $0x2d, %edx
movq %r14, %rdi
callq 0x4210
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq 0x1e66f(%rip), %rdi     # 0x3afd0
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq (%rbx), %rdi
callq 0x79a4
testl %eax, %eax
je 0x1c9e2
movq (%rbx), %rdi
callq 0x79a4
cmpl $0x1, %eax
jne 0x1ca7c
movq 0x1e63e(%rip), %r14     # 0x3afd0
leaq 0x12715(%rip), %rsi     # 0x2f0ae
movl $0x24, %edx
movq %r14, %rdi
callq 0x4210
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq 0x1e60c(%rip), %rdi     # 0x3afd0
callq 0x4030
movq %rax, %rdi
callq 0x4120
movl $0x21, %edx
leaq 0x126f6(%rip), %rsi     # 0x2f0d3
jmp 0x1cadf
movq 0x1e5e7(%rip), %r14     # 0x3afd0
leaq 0x12660(%rip), %rsi     # 0x2f050
movl $0x21, %edx
movq %r14, %rdi
callq 0x4210
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq 0x1e5b5(%rip), %rdi     # 0x3afd0
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq 0x1e5a1(%rip), %r14     # 0x3afd0
leaq 0x1263c(%rip), %rsi     # 0x2f072
movl $0x18, %edx
movq %r14, %rdi
callq 0x4210
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq 0x1e56f(%rip), %rdi     # 0x3afd0
callq 0x4030
movq %rax, %rdi
callq 0x4120
movl $0x22, %edx
leaq 0x12611(%rip), %rsi     # 0x2f08b
jmp 0x1cadf
movq (%rbx), %rdi
callq 0x79a4
cmpl $0x2, %eax
jne 0x1cc20
movq 0x1e53c(%rip), %r14     # 0x3afd0
leaq 0x1265a(%rip), %rsi     # 0x2f0f5
movl $0x19, %edx
movq %r14, %rdi
callq 0x4210
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq 0x1e50a(%rip), %rdi     # 0x3afd0
callq 0x4030
movq %rax, %rdi
callq 0x4120
movl $0x20, %edx
leaq 0x12630(%rip), %rsi     # 0x2f10f
movq 0x1e4ea(%rip), %r14     # 0x3afd0
movq %r14, %rdi
callq 0x4210
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x41b0
movsbl %al, %esi
movq 0x1e4c4(%rip), %rdi     # 0x3afd0
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq 0x1e4b0(%rip), %rdi     # 0x3afd0
leaq 0x12339(%rip), %rsi     # 0x2ee60
movl $0x11, %edx
callq 0x4210
movq 0x1e498(%rip), %rdi     # 0x3afd0
leaq 0x10ef2(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e490(%rip), %rdi     # 0x3afe0
leaq -0xc0(%rbp), %rsi
callq 0x4220
leaq -0x398(%rbp), %rdi
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
callq 0x4210
leaq -0x3a8(%rbp), %rdi
leaq -0x5e(%rbp), %rsi
callq 0x4050
movzwl -0x5e(%rbp), %eax
leal -0x1(%rax), %ecx
cmpl $0xe, %ecx
ja 0x1d1ce
leaq 0x10cef(%rip), %rdx     # 0x2d88c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq 0x1e423(%rip), %rdi     # 0x3afd0
leaq 0x1257c(%rip), %rsi     # 0x2f130
movl $0x17, %edx
callq 0x4210
movq 0x1e41b(%rip), %rdi     # 0x3afe0
leaq -0x58(%rbp), %rsi
callq 0x4220
movq (%rbx), %rbx
leaq -0x210(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
addq %rsi, %rdx
leaq -0x220(%rbp), %rdi
callq 0x4f18
leaq -0x220(%rbp), %rsi
movq %rbx, %rdi
callq 0x79ae
movq -0x220(%rbp), %rdi
movb $0x1, %bl
cmpq %r14, %rdi
je 0x1d486
movq -0x210(%rbp), %rsi
jmp 0x1d02d
movq (%rbx), %rdi
callq 0x79a4
jmp 0x1cb19
leaq -0xd0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x1262a(%rip), %rsi     # 0x2f269
leaq 0x12635(%rip), %rdx     # 0x2f27b
leaq -0xe0(%rbp), %rdi
callq 0x1e03c
leaq -0xe0(%rbp), %rsi
callq 0x14432
movb %al, -0x29(%rbp)
movq -0xe0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1cc7c
movq -0xd0(%rbp), %rsi
incq %rsi
callq 0x41d0
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x1d204
leaq 0x1d5c9(%rip), %rsi     # 0x3a258
leaq 0x1d5aa(%rip), %rdx     # 0x3a240
xorl %ecx, %ecx
callq 0x4200
movq %rax, %rdi
jmp 0x1d206
movq 0x1e324(%rip), %rdi     # 0x3afd0
leaq 0x12562(%rip), %rsi     # 0x2f215
movl $0x1b, %edx
callq 0x4210
movq 0x1e31c(%rip), %rdi     # 0x3afe0
leaq -0x58(%rbp), %rsi
callq 0x4220
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x1d22c
leaq 0x1d578(%rip), %rsi     # 0x3a258
leaq 0x1d741(%rip), %rdx     # 0x3a428
xorl %ecx, %ecx
callq 0x4200
movq %rax, %r15
jmp 0x1d22f
movq 0x1e2d3(%rip), %rdi     # 0x3afd0
leaq 0x12485(%rip), %rsi     # 0x2f189
movl $0x22, %edx
callq 0x4210
movq 0x1e2cb(%rip), %rdi     # 0x3afe0
leaq -0x58(%rbp), %rsi
callq 0x4220
movq (%rbx), %rbx
leaq -0x190(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1a0(%rbp), %rdi
callq 0x4f18
leaq -0x1a0(%rbp), %rsi
movq %rbx, %rdi
callq 0x79ea
movq -0x1a0(%rbp), %rdi
movb $0x1, %bl
cmpq %r14, %rdi
je 0x1d486
movq -0x190(%rbp), %rsi
jmp 0x1d02d
movq 0x1e259(%rip), %rdi     # 0x3afd0
leaq 0x124d3(%rip), %rsi     # 0x2f251
movl $0x17, %edx
callq 0x4210
movq 0x1e251(%rip), %rdi     # 0x3afe0
leaq -0x58(%rbp), %rsi
callq 0x4220
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x1d265
leaq 0x1d4ad(%rip), %rsi     # 0x3a258
leaq 0x1d48e(%rip), %rdx     # 0x3a240
xorl %ecx, %ecx
callq 0x4200
movq %rax, %r15
jmp 0x1d268
movq 0x1e208(%rip), %rdi     # 0x3afd0
leaq 0x123dd(%rip), %rsi     # 0x2f1ac
movl $0x30, %edx
callq 0x4210
movq 0x1e200(%rip), %rdi     # 0x3afe0
leaq -0x29(%rbp), %rsi
callq 0x4190
movq (%rbx), %rdi
movzbl -0x29(%rbp), %esi
movb $0x1, %bl
callq 0x79fc
jmp 0x1d486
movq 0x1e1cd(%rip), %rdi     # 0x3afd0
leaq 0x12427(%rip), %rsi     # 0x2f231
movl $0x1f, %edx
callq 0x4210
movq 0x1e1c5(%rip), %rdi     # 0x3afe0
leaq -0x58(%rbp), %rsi
callq 0x4220
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x1d29e
leaq 0x1d421(%rip), %rsi     # 0x3a258
leaq 0x1d5ea(%rip), %rdx     # 0x3a428
xorl %ecx, %ecx
callq 0x4200
movq %rax, %r15
jmp 0x1d2a1
movq 0x1e17c(%rip), %rdi     # 0x3afd0
leaq 0x12311(%rip), %rsi     # 0x2f16c
movl $0x1c, %edx
callq 0x4210
movq 0x1e174(%rip), %rdi     # 0x3afe0
leaq -0x58(%rbp), %rsi
callq 0x4220
movq (%rbx), %rbx
leaq -0x1b0(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1c0(%rbp), %rdi
callq 0x4f18
leaq -0x1c0(%rbp), %rsi
movq %rbx, %rdi
callq 0x79d8
movq -0x1c0(%rbp), %rdi
movb $0x1, %bl
cmpq %r14, %rdi
je 0x1d486
movq -0x1b0(%rbp), %rsi
jmp 0x1d02d
movq 0x1e102(%rip), %rdi     # 0x3afd0
leaq 0x12273(%rip), %rsi     # 0x2f148
movl $0x23, %edx
callq 0x4210
movq 0x1e0fa(%rip), %rdi     # 0x3afe0
leaq -0x58(%rbp), %rsi
callq 0x4220
movq (%rbx), %rbx
leaq -0x1d0(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1e0(%rbp), %rdi
callq 0x4f18
leaq -0x1e0(%rbp), %rsi
movq %rbx, %rdi
callq 0x79ca
movq -0x1e0(%rbp), %rdi
movb $0x1, %bl
cmpq %r14, %rdi
je 0x1d486
movq -0x1d0(%rbp), %rsi
jmp 0x1d02d
movq 0x1e088(%rip), %rdi     # 0x3afd0
leaq 0x11f23(%rip), %rsi     # 0x2ee72
movl $0x14, %edx
callq 0x4210
movq 0x1e080(%rip), %rdi     # 0x3afe0
leaq -0x58(%rbp), %rsi
callq 0x4220
movq (%rbx), %rbx
leaq -0x1f0(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
addq %rsi, %rdx
leaq -0x200(%rbp), %rdi
callq 0x4f18
leaq -0x200(%rbp), %rsi
movq %rbx, %rdi
callq 0x79bc
movq -0x200(%rbp), %rdi
movb $0x1, %bl
cmpq %r14, %rdi
je 0x1d486
movq -0x1f0(%rbp), %rsi
jmp 0x1d02d
movq 0x1e011(%rip), %rdi     # 0x3afd0
leaq 0x12217(%rip), %rsi     # 0x2f1dd
movl $0x22, %edx
callq 0x4210
movq 0x1e009(%rip), %rdi     # 0x3afe0
leaq -0x58(%rbp), %rsi
callq 0x4220
movq (%rbx), %rbx
leaq -0x170(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
addq %rsi, %rdx
leaq -0x180(%rbp), %rdi
callq 0x4f18
leaq -0x180(%rbp), %rsi
movq %rbx, %rdi
callq 0x7a0a
movq -0x180(%rbp), %rdi
movb $0x1, %bl
cmpq %r14, %rdi
je 0x1d486
movq -0x170(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1d486
leaq -0x150(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x121b4(%rip), %rsi     # 0x2f200
leaq 0x121c1(%rip), %rdx     # 0x2f214
leaq -0x160(%rbp), %rdi
callq 0x1e03c
leaq -0x160(%rbp), %rsi
callq 0x14432
movb %al, -0x29(%rbp)
movq -0x160(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d089
movq -0x150(%rbp), %rsi
incq %rsi
callq 0x41d0
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x1d2d7
leaq 0x1d1bc(%rip), %rsi     # 0x3a258
leaq 0x1da5d(%rip), %rdx     # 0x3ab00
xorl %ecx, %ecx
callq 0x4200
movq %rax, %rdi
jmp 0x1d2d9
leaq -0x70(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x113be(%rip), %rsi     # 0x2e47f
leaq 0x11407(%rip), %rdx     # 0x2e4cf
leaq -0x80(%rbp), %rdi
callq 0x1e03c
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x1def0(%rip), %rdi     # 0x3afd0
callq 0x4210
movq 0x1def4(%rip), %rdi     # 0x3afe0
leaq -0x5c(%rbp), %rsi
callq 0x4110
movl -0x5c(%rbp), %r14d
movq -0x80(%rbp), %rdi
cmpq %r15, %rdi
je 0x1d10e
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x41d0
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x1d2f4
leaq 0x1d137(%rip), %rsi     # 0x3a258
leaq 0x1d9d8(%rip), %rdx     # 0x3ab00
xorl %ecx, %ecx
callq 0x4200
movq %rax, %rdi
jmp 0x1d2f6
leaq -0x90(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x112cc(%rip), %rsi     # 0x2e415
leaq 0x1132e(%rip), %rdx     # 0x2e47e
leaq -0xa0(%rbp), %rdi
callq 0x1e03c
movq -0xa0(%rbp), %rsi
movq -0x98(%rbp), %rdx
movq 0x1de5f(%rip), %rdi     # 0x3afd0
callq 0x4210
movq 0x1de63(%rip), %rdi     # 0x3afe0
leaq -0x5c(%rbp), %rsi
callq 0x4110
movl -0x5c(%rbp), %r14d
movq -0xa0(%rbp), %rdi
cmpq %r15, %rdi
je 0x1d1a5
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x41d0
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x1d314
leaq 0x1d0a0(%rip), %rsi     # 0x3a258
leaq 0x1d941(%rip), %rdx     # 0x3ab00
xorl %ecx, %ecx
callq 0x4200
movq %rax, %rdi
jmp 0x1d316
testw %ax, %ax
setne %cl
cmpw $0x10, %ax
setl %al
movb $0x1, %bl
testb %al, %cl
jne 0x1d486
movq 0x1dde4(%rip), %rdi     # 0x3afd0
leaq 0x12089(%rip), %rsi     # 0x2f27c
movl $0x2a, %edx
callq 0x4210
xorl %ebx, %ebx
jmp 0x1d486
xorl %edi, %edi
movq 0x8(%rbx), %r14
testq %r14, %r14
je 0x1d339
movq 0x1ddae(%rip), %rax     # 0x3afc8
cmpb $0x0, (%rax)
je 0x1d334
incl 0x8(%r14)
jmp 0x1d339
xorl %r15d, %r15d
testq %r15, %r15
je 0x1d25a
movq 0x8(%rbx), %r14
testq %r14, %r14
je 0x1d38e
movq 0x1dd80(%rip), %rax     # 0x3afc8
cmpb $0x0, (%rax)
je 0x1d389
incl 0x8(%r14)
jmp 0x1d38e
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0x1d38e
xorl %r15d, %r15d
testq %r15, %r15
je 0x1d293
movq 0x8(%rbx), %r14
testq %r14, %r14
je 0x1d3e0
movq 0x1dd47(%rip), %rax     # 0x3afc8
cmpb $0x0, (%rax)
je 0x1d3db
incl 0x8(%r14)
jmp 0x1d3e0
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0x1d3e0
xorl %r15d, %r15d
testq %r15, %r15
je 0x1d2cc
movq 0x8(%rbx), %r14
testq %r14, %r14
je 0x1d42b
movq 0x1dd0e(%rip), %rax     # 0x3afc8
cmpb $0x0, (%rax)
je 0x1d426
incl 0x8(%r14)
jmp 0x1d42b
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0x1d42b
xorl %edi, %edi
movq 0x8(%rbx), %r14
testq %r14, %r14
je 0x1d34c
movq 0x1dcdf(%rip), %rax     # 0x3afc8
cmpb $0x0, (%rax)
je 0x1d347
incl 0x8(%r14)
jmp 0x1d34c
xorl %edi, %edi
decl %r14d
movq 0x8(%rbx), %r15
testq %r15, %r15
je 0x1d35f
movq 0x1dcbf(%rip), %rax     # 0x3afc8
cmpb $0x0, (%rax)
je 0x1d35a
incl 0x8(%r15)
jmp 0x1d35f
xorl %edi, %edi
decl %r14d
movq 0x8(%rbx), %r15
testq %r15, %r15
je 0x1d36e
movq 0x1dc9f(%rip), %rax     # 0x3afc8
cmpb $0x0, (%rax)
je 0x1d369
incl 0x8(%r15)
jmp 0x1d36e
lock
incl 0x8(%r14)
movzbl -0x29(%rbp), %esi
callq 0x4e9e
jmp 0x1d477
lock
incl 0x8(%r14)
movzbl -0x29(%rbp), %esi
callq 0x288ca
jmp 0x1d477
lock
incl 0x8(%r15)
movl %r14d, %esi
callq 0x288fc
jmp 0x1d376
lock
incl 0x8(%r15)
movl %r14d, %esi
callq 0x288e4
movb $0x1, %bl
testq %r15, %r15
je 0x1d486
movq %r15, %rdi
jmp 0x1d481
lock
incl 0x8(%r14)
leaq -0x130(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
addq %rsi, %rdx
leaq -0x140(%rbp), %rdi
callq 0x4f18
leaq -0x140(%rbp), %rsi
movq %r15, %rdi
callq 0x84ca
movq -0x140(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1d477
movq -0x130(%rbp), %rsi
jmp 0x1d46f
lock
incl 0x8(%r14)
leaq -0xf0(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
addq %rsi, %rdx
leaq -0x100(%rbp), %rdi
callq 0x4f18
leaq -0x100(%rbp), %rsi
movq %r15, %rdi
callq 0x4e8c
movq -0x100(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1d477
movq -0xf0(%rbp), %rsi
jmp 0x1d46f
lock
incl 0x8(%r14)
leaq -0x110(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
addq %rsi, %rdx
leaq -0x120(%rbp), %rdi
callq 0x4f18
leaq -0x120(%rbp), %rsi
movq %r15, %rdi
callq 0x84dc
movq -0x120(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1d477
movq -0x110(%rbp), %rsi
incq %rsi
callq 0x41d0
movb $0x1, %bl
testq %r14, %r14
je 0x1d486
movq %r14, %rdi
callq 0x4eac
movq 0x1db1b(%rip), %rsi     # 0x3afa8
leaq -0x3a8(%rbp), %rdi
callq 0x4150
leaq -0x328(%rbp), %rdi
callq 0x40a0
movq -0xc0(%rbp), %rdi
cmpq %r13, %rdi
je 0x1d4c0
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x41d0
movq -0x58(%rbp), %rdi
cmpq %r12, %rdi
je 0x1d4d5
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x41d0
movl %ebx, %eax
addq $0x388, %rsp            # imm = 0x388
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1d4eb
movq %rax, -0x38(%rbp)
testq %r15, %r15
je 0x1d6b5
movq %r15, %rdi
jmp 0x1d636
movq %rax, -0x38(%rbp)
movq -0x180(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d6b5
movq -0x170(%rbp), %rsi
jmp 0x1d6a1
movq %rax, -0x38(%rbp)
movq -0x200(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d6b5
movq -0x1f0(%rbp), %rsi
jmp 0x1d6a1
movq %rax, -0x38(%rbp)
movq -0x1e0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d6b5
movq -0x1d0(%rbp), %rsi
jmp 0x1d6a1
movq %rax, -0x38(%rbp)
movq -0x120(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1d62a
movq -0x110(%rbp), %rsi
jmp 0x1d614
movq %rax, -0x38(%rbp)
movq -0x100(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1d62a
movq -0xf0(%rbp), %rsi
jmp 0x1d614
movq %rax, -0x38(%rbp)
movq -0x1c0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d6b5
movq -0x1b0(%rbp), %rsi
jmp 0x1d6a1
movq %rax, -0x38(%rbp)
movq -0x1a0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d6b5
movq -0x190(%rbp), %rsi
jmp 0x1d6a1
movq %rax, -0x38(%rbp)
movq -0x220(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d6b5
movq -0x210(%rbp), %rsi
jmp 0x1d6a1
movq %rax, -0x38(%rbp)
movq -0x140(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1d62a
movq -0x130(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1d62a
jmp 0x1d626
jmp 0x1d626
jmp 0x1d626
jmp 0x1d626
movq %rax, -0x38(%rbp)
testq %r14, %r14
je 0x1d6b5
movq %r14, %rdi
callq 0x4eac
jmp 0x1d6b5
movq %rax, -0x38(%rbp)
movq -0x160(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d6b5
movq -0x150(%rbp), %rsi
jmp 0x1d6a1
movq %rax, -0x38(%rbp)
movq -0xe0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d6b5
movq -0xd0(%rbp), %rsi
jmp 0x1d6a1
jmp 0x1d6b1
jmp 0x1d6b1
jmp 0x1d6b1
jmp 0x1d6b1
movq %rax, -0x38(%rbp)
movq -0xa0(%rbp), %rdi
cmpq %r15, %rdi
je 0x1d6b5
movq -0x90(%rbp), %rsi
jmp 0x1d6a1
movq %rax, -0x38(%rbp)
movq -0x80(%rbp), %rdi
cmpq %r15, %rdi
je 0x1d6b5
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1d6b5
movq %rax, -0x38(%rbp)
jmp 0x1d6d4
movq %rax, -0x38(%rbp)
movq 0x1d8ec(%rip), %rsi     # 0x3afa8
leaq -0x3a8(%rbp), %rdi
callq 0x4150
leaq -0x328(%rbp), %rdi
callq 0x40a0
movq -0xc0(%rbp), %rdi
cmpq %r13, %rdi
je 0x1d6ef
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x41d0
movq -0x58(%rbp), %rdi
cmpq %r12, %rdi
je 0x1d704
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x41d0
movq -0x38(%rbp), %rdi
callq 0x42f0
nop