// File: /workspace/github_cpp_makefile_star2_O3/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 0x1e7b7(%rip), %rdi     # 0x3afd0
leaq 0x12558(%rip), %rsi     # 0x2ed78
movl $0x19, %edx
callq 0x4210
movq 0x1e79f(%rip), %rdi     # 0x3afd0
leaq 0x111f9(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e787(%rip), %rdi     # 0x3afd0
leaq 0x12542(%rip), %rsi     # 0x2ed92
movl $0x1f, %edx
callq 0x4210
movq 0x1e76f(%rip), %rdi     # 0x3afd0
leaq 0x111c9(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e757(%rip), %rdi     # 0x3afd0
leaq 0x126a9(%rip), %rsi     # 0x2ef29
movl $0x2a, %edx
callq 0x4210
movq 0x1e73f(%rip), %rdi     # 0x3afd0
leaq 0x11199(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e727(%rip), %rdi     # 0x3afd0
leaq 0x126a4(%rip), %rsi     # 0x2ef54
movl $0x1f, %edx
callq 0x4210
movq 0x1e70f(%rip), %rdi     # 0x3afd0
leaq 0x11169(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e6f7(%rip), %rdi     # 0x3afd0
leaq 0x12694(%rip), %rsi     # 0x2ef74
movl $0x2e, %edx
callq 0x4210
movq 0x1e6df(%rip), %rdi     # 0x3afd0
leaq 0x11139(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e6c7(%rip), %rdi     # 0x3afd0
leaq 0x12693(%rip), %rsi     # 0x2efa3
movl $0x27, %edx
callq 0x4210
movq 0x1e6af(%rip), %rdi     # 0x3afd0
leaq 0x11109(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e697(%rip), %rdi     # 0x3afd0
leaq 0x1268b(%rip), %rsi     # 0x2efcb
movl $0x2d, %edx
callq 0x4210
movq 0x1e67f(%rip), %rdi     # 0x3afd0
leaq 0x110d9(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e667(%rip), %rdi     # 0x3afd0
leaq 0x12689(%rip), %rsi     # 0x2eff9
movl $0x28, %edx
callq 0x4210
movq 0x1e64f(%rip), %rdi     # 0x3afd0
leaq 0x110a9(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e637(%rip), %r14     # 0x3afd0
leaq 0x12682(%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 0x1e605(%rip), %rdi     # 0x3afd0
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq (%rbx), %rdi
callq 0x79a8
testl %eax, %eax
je 0x1ca4c
movq (%rbx), %rdi
callq 0x79a8
cmpl $0x1, %eax
jne 0x1cae6
movq 0x1e5d4(%rip), %r14     # 0x3afd0
leaq 0x126ab(%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 0x1e5a2(%rip), %rdi     # 0x3afd0
callq 0x4030
movq %rax, %rdi
callq 0x4120
movl $0x21, %edx
leaq 0x1268c(%rip), %rsi     # 0x2f0d3
jmp 0x1cb49
movq 0x1e57d(%rip), %r14     # 0x3afd0
leaq 0x125f6(%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 0x1e54b(%rip), %rdi     # 0x3afd0
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq 0x1e537(%rip), %r14     # 0x3afd0
leaq 0x125d2(%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 0x1e505(%rip), %rdi     # 0x3afd0
callq 0x4030
movq %rax, %rdi
callq 0x4120
movl $0x22, %edx
leaq 0x125a7(%rip), %rsi     # 0x2f08b
jmp 0x1cb49
movq (%rbx), %rdi
callq 0x79a8
cmpl $0x2, %eax
jne 0x1cc8a
movq 0x1e4d2(%rip), %r14     # 0x3afd0
leaq 0x125f0(%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 0x1e4a0(%rip), %rdi     # 0x3afd0
callq 0x4030
movq %rax, %rdi
callq 0x4120
movl $0x20, %edx
leaq 0x125c6(%rip), %rsi     # 0x2f10f
movq 0x1e480(%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 0x1e45a(%rip), %rdi     # 0x3afd0
callq 0x4030
movq %rax, %rdi
callq 0x4120
movq 0x1e446(%rip), %rdi     # 0x3afd0
leaq 0x122cf(%rip), %rsi     # 0x2ee60
movl $0x11, %edx
callq 0x4210
movq 0x1e42e(%rip), %rdi     # 0x3afd0
leaq 0x10e88(%rip), %rsi     # 0x2da31
movl $0x1, %edx
callq 0x4210
movq 0x1e426(%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 0x1d328
leaq 0x10c85(%rip), %rdx     # 0x2d88c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq 0x1e3b9(%rip), %rdi     # 0x3afd0
leaq 0x12512(%rip), %rsi     # 0x2f130
movl $0x17, %edx
callq 0x4210
movq 0x1e3b1(%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 0x79b2
movq -0x220(%rbp), %rdi
movb $0x1, %bl
cmpq %r14, %rdi
je 0x1d500
movq -0x210(%rbp), %rsi
jmp 0x1d13f
movq (%rbx), %rdi
callq 0x79a8
jmp 0x1cb83
leaq -0xd0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x125c0(%rip), %rsi     # 0x2f269
leaq 0x125cb(%rip), %rdx     # 0x2f27b
leaq -0xe0(%rbp), %rdi
callq 0x1e0e2
leaq -0xe0(%rbp), %rsi
callq 0x144be
movl %eax, %r14d
movb %al, -0x29(%rbp)
movq -0xe0(%rbp), %rdi
cmpq %r15, %rdi
je 0x1cce9
movq -0xd0(%rbp), %rsi
incq %rsi
callq 0x41d0
movq (%rbx), %rdi
leaq 0x1d59d(%rip), %rsi     # 0x3a290
leaq 0x1d57e(%rip), %rdx     # 0x3a278
xorl %ecx, %ecx
callq 0x4200
movq 0x8(%rbx), %r15
testq %r15, %r15
je 0x1d388
movq 0x1e2b3(%rip), %rcx     # 0x3afc8
cmpb $0x0, (%rcx)
je 0x1d37f
incl 0x8(%r15)
jmp 0x1d388
movq 0x1e2a2(%rip), %rdi     # 0x3afd0
leaq 0x124e0(%rip), %rsi     # 0x2f215
movl $0x1b, %edx
callq 0x4210
movq 0x1e29a(%rip), %rdi     # 0x3afe0
leaq -0x58(%rbp), %rsi
callq 0x4220
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x1d35e
leaq 0x1d52e(%rip), %rsi     # 0x3a290
leaq 0x1d6f7(%rip), %rdx     # 0x3a460
xorl %r15d, %r15d
xorl %ecx, %ecx
callq 0x4200
movl $0x0, %r14d
testq %rax, %rax
je 0x1d402
movq 0x8(%rbx), %r14
testq %r14, %r14
je 0x1d3e8
movq 0x1e232(%rip), %rcx     # 0x3afc8
cmpb $0x0, (%rcx)
je 0x1d3fa
incl 0x8(%r14)
jmp 0x1d3ff
movq 0x1e221(%rip), %rdi     # 0x3afd0
leaq 0x123d3(%rip), %rsi     # 0x2f189
movl $0x22, %edx
callq 0x4210
movq 0x1e219(%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 0x79ee
movq -0x1a0(%rbp), %rdi
movb $0x1, %bl
cmpq %r14, %rdi
je 0x1d500
movq -0x190(%rbp), %rsi
jmp 0x1d13f
movq 0x1e1a7(%rip), %rdi     # 0x3afd0
leaq 0x12421(%rip), %rsi     # 0x2f251
movl $0x17, %edx
callq 0x4210
movq 0x1e19f(%rip), %rdi     # 0x3afe0
leaq -0x58(%rbp), %rsi
callq 0x4220
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x1d369
leaq 0x1d433(%rip), %rsi     # 0x3a290
leaq 0x1d414(%rip), %rdx     # 0x3a278
xorl %r15d, %r15d
xorl %ecx, %ecx
callq 0x4200
movl $0x0, %r14d
testq %rax, %rax
je 0x1d457
movq 0x8(%rbx), %r14
testq %r14, %r14
je 0x1d3ed
movq 0x1e137(%rip), %rcx     # 0x3afc8
cmpb $0x0, (%rcx)
je 0x1d44f
incl 0x8(%r14)
jmp 0x1d454
movq 0x1e126(%rip), %rdi     # 0x3afd0
leaq 0x122fb(%rip), %rsi     # 0x2f1ac
movl $0x30, %edx
callq 0x4210
movq 0x1e11e(%rip), %rdi     # 0x3afe0
leaq -0x29(%rbp), %rsi
callq 0x4190
movq (%rbx), %rdi
movzbl -0x29(%rbp), %esi
movb $0x1, %bl
callq 0x7a00
jmp 0x1d500
movq 0x1e0eb(%rip), %rdi     # 0x3afd0
leaq 0x12345(%rip), %rsi     # 0x2f231
movl $0x1f, %edx
callq 0x4210
movq 0x1e0e3(%rip), %rdi     # 0x3afe0
leaq -0x58(%rbp), %rsi
callq 0x4220
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x1d374
leaq 0x1d377(%rip), %rsi     # 0x3a290
leaq 0x1d540(%rip), %rdx     # 0x3a460
xorl %r15d, %r15d
xorl %ecx, %ecx
callq 0x4200
movl $0x0, %r14d
testq %rax, %rax
je 0x1d4a5
movq 0x8(%rbx), %r14
testq %r14, %r14
je 0x1d3f2
movq 0x1e07b(%rip), %rcx     # 0x3afc8
cmpb $0x0, (%rcx)
je 0x1d49d
incl 0x8(%r14)
jmp 0x1d4a2
movq 0x1e06a(%rip), %rdi     # 0x3afd0
leaq 0x121ff(%rip), %rsi     # 0x2f16c
movl $0x1c, %edx
callq 0x4210
movq 0x1e062(%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 0x79dc
movq -0x1c0(%rbp), %rdi
movb $0x1, %bl
cmpq %r14, %rdi
je 0x1d500
movq -0x1b0(%rbp), %rsi
jmp 0x1d13f
movq 0x1dff0(%rip), %rdi     # 0x3afd0
leaq 0x12161(%rip), %rsi     # 0x2f148
movl $0x23, %edx
callq 0x4210
movq 0x1dfe8(%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 0x79ce
movq -0x1e0(%rbp), %rdi
movb $0x1, %bl
cmpq %r14, %rdi
je 0x1d500
movq -0x1d0(%rbp), %rsi
jmp 0x1d13f
movq 0x1df76(%rip), %rdi     # 0x3afd0
leaq 0x11e11(%rip), %rsi     # 0x2ee72
movl $0x14, %edx
callq 0x4210
movq 0x1df6e(%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 0x79c0
movq -0x200(%rbp), %rdi
movb $0x1, %bl
cmpq %r14, %rdi
je 0x1d500
movq -0x1f0(%rbp), %rsi
jmp 0x1d13f
movq 0x1deff(%rip), %rdi     # 0x3afd0
leaq 0x12105(%rip), %rsi     # 0x2f1dd
movl $0x22, %edx
callq 0x4210
movq 0x1def7(%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 0x7a0e
movq -0x180(%rbp), %rdi
movb $0x1, %bl
cmpq %r14, %rdi
je 0x1d500
movq -0x170(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1d500
leaq -0x150(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x120a2(%rip), %rsi     # 0x2f200
leaq 0x120af(%rip), %rdx     # 0x2f214
leaq -0x160(%rbp), %rdi
callq 0x1e0e2
leaq -0x160(%rbp), %rsi
callq 0x144be
movl %eax, %r14d
movb %al, -0x29(%rbp)
movq -0x160(%rbp), %rdi
cmpq %r15, %rdi
je 0x1d19e
movq -0x150(%rbp), %rsi
incq %rsi
callq 0x41d0
movq (%rbx), %rdi
leaq 0x1d0e8(%rip), %rsi     # 0x3a290
leaq 0x1d951(%rip), %rdx     # 0x3ab00
xorl %ecx, %ecx
callq 0x4200
movq 0x8(%rbx), %r15
testq %r15, %r15
je 0x1d3a2
movq 0x1ddfe(%rip), %rcx     # 0x3afc8
cmpb $0x0, (%rcx)
je 0x1d399
incl 0x8(%r15)
jmp 0x1d3a2
leaq -0x70(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x11294(%rip), %rsi     # 0x2e47f
leaq 0x112dd(%rip), %rdx     # 0x2e4cf
leaq -0x80(%rbp), %rdi
callq 0x1e0e2
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
movq 0x1ddc6(%rip), %rdi     # 0x3afd0
callq 0x4210
movq 0x1ddca(%rip), %rdi     # 0x3afe0
leaq -0x5c(%rbp), %rsi
callq 0x4110
movl -0x5c(%rbp), %r14d
movq -0x80(%rbp), %rdi
cmpq %r15, %rdi
je 0x1d238
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x41d0
decl %r14d
movq (%rbx), %rdi
leaq 0x1d04b(%rip), %rsi     # 0x3a290
leaq 0x1d8b4(%rip), %rdx     # 0x3ab00
xorl %ecx, %ecx
callq 0x4200
movq 0x8(%rbx), %r15
testq %r15, %r15
je 0x1d3b8
movq 0x1dd61(%rip), %rcx     # 0x3afc8
cmpb $0x0, (%rcx)
je 0x1d3b3
incl 0x8(%r15)
jmp 0x1d3b8
leaq -0x90(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x1118a(%rip), %rsi     # 0x2e415
leaq 0x111ec(%rip), %rdx     # 0x2e47e
leaq -0xa0(%rbp), %rdi
callq 0x1e0e2
movq -0xa0(%rbp), %rsi
movq -0x98(%rbp), %rdx
movq 0x1dd1d(%rip), %rdi     # 0x3afd0
callq 0x4210
movq 0x1dd21(%rip), %rdi     # 0x3afe0
leaq -0x5c(%rbp), %rsi
callq 0x4110
movl -0x5c(%rbp), %r14d
movq -0xa0(%rbp), %rdi
cmpq %r15, %rdi
je 0x1d2e7
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x41d0
decl %r14d
movq (%rbx), %rdi
leaq 0x1cf9c(%rip), %rsi     # 0x3a290
leaq 0x1d805(%rip), %rdx     # 0x3ab00
xorl %ecx, %ecx
callq 0x4200
movq 0x8(%rbx), %r15
testq %r15, %r15
je 0x1d3ca
movq 0x1dcb2(%rip), %rcx     # 0x3afc8
cmpb $0x0, (%rcx)
je 0x1d3c5
incl 0x8(%r15)
jmp 0x1d3ca
testw %ax, %ax
setne %cl
cmpw $0x10, %ax
setl %al
movb $0x1, %bl
testb %al, %cl
jne 0x1d500
movq 0x1dc8a(%rip), %rdi     # 0x3afd0
leaq 0x11f2f(%rip), %rsi     # 0x2f27c
movl $0x2a, %edx
callq 0x4210
xorl %ebx, %ebx
jmp 0x1d500
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0x1d402
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0x1d457
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0x1d4a5
lock
incl 0x8(%r15)
movb -0x29(%rbp), %r14b
movzbl %r14b, %esi
andl $0x1, %esi
movq %rax, %rdi
callq 0x4e9e
jmp 0x1d3d5
lock
incl 0x8(%r15)
movb -0x29(%rbp), %r14b
movzbl %r14b, %esi
andl $0x1, %esi
movq %rax, %rdi
callq 0x288da
jmp 0x1d3d5
lock
incl 0x8(%r15)
movq %rax, %rdi
movl %r14d, %esi
callq 0x2890c
jmp 0x1d3d5
lock
incl 0x8(%r15)
movq %rax, %rdi
movl %r14d, %esi
callq 0x288f4
movb $0x1, %bl
testq %r15, %r15
je 0x1d500
movq %r15, %rdi
jmp 0x1d4fb
xorl %r14d, %r14d
jmp 0x1d3ff
xorl %r14d, %r14d
jmp 0x1d454
xorl %r14d, %r14d
jmp 0x1d4a2
lock
incl 0x8(%r14)
movq %rax, %r15
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 0x84d2
movq -0x140(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1d4f1
movq -0x130(%rbp), %rsi
jmp 0x1d4e9
lock
incl 0x8(%r14)
movq %rax, %r15
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 0x1d4f1
movq -0xf0(%rbp), %rsi
jmp 0x1d4e9
lock
incl 0x8(%r14)
movq %rax, %r15
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 0x84e4
movq -0x120(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1d4f1
movq -0x110(%rbp), %rsi
incq %rsi
callq 0x41d0
movb $0x1, %bl
testq %r14, %r14
je 0x1d500
movq %r14, %rdi
callq 0x4eac
movq 0x1daa1(%rip), %rsi     # 0x3afa8
leaq -0x3a8(%rbp), %rdi
callq 0x4150
leaq -0x328(%rbp), %rdi
callq 0x40a0
movq -0xc0(%rbp), %rdi
cmpq %r13, %rdi
je 0x1d53a
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x41d0
movq -0x58(%rbp), %rdi
cmpq %r12, %rdi
je 0x1d54f
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 0x1d6a3
jmp 0x1d6a3
movq %rax, -0x38(%rbp)
movq -0x180(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d732
movq -0x170(%rbp), %rsi
jmp 0x1d71e
movq %rax, -0x38(%rbp)
movq -0x200(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d732
movq -0x1f0(%rbp), %rsi
jmp 0x1d71e
movq %rax, -0x38(%rbp)
movq -0x1e0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d732
movq -0x1d0(%rbp), %rsi
jmp 0x1d71e
movq %rax, -0x38(%rbp)
movq -0x120(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1d695
movq -0x110(%rbp), %rsi
jmp 0x1d681
movq %rax, -0x38(%rbp)
movq -0x100(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1d695
movq -0xf0(%rbp), %rsi
jmp 0x1d681
movq %rax, -0x38(%rbp)
movq -0x1c0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d732
movq -0x1b0(%rbp), %rsi
jmp 0x1d71e
movq %rax, -0x38(%rbp)
movq -0x1a0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d732
movq -0x190(%rbp), %rsi
jmp 0x1d71e
movq %rax, -0x38(%rbp)
movq -0x220(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d732
movq -0x210(%rbp), %rsi
jmp 0x1d71e
movq %rax, -0x38(%rbp)
movq -0x140(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1d695
movq -0x130(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1d695
jmp 0x1d6a3
jmp 0x1d691
jmp 0x1d691
movq %rax, -0x38(%rbp)
testq %r14, %r14
je 0x1d732
movq %r14, %rdi
jmp 0x1d6b3
movq %rax, -0x38(%rbp)
testq %r15, %r15
je 0x1d732
movq %r15, %rdi
callq 0x4eac
jmp 0x1d732
movq %rax, -0x38(%rbp)
movq -0x160(%rbp), %rdi
cmpq %r15, %rdi
je 0x1d732
movq -0x150(%rbp), %rsi
jmp 0x1d71e
movq %rax, -0x38(%rbp)
movq -0xe0(%rbp), %rdi
cmpq %r15, %rdi
je 0x1d732
movq -0xd0(%rbp), %rsi
jmp 0x1d71e
jmp 0x1d72e
jmp 0x1d72e
jmp 0x1d72e
jmp 0x1d72e
movq %rax, -0x38(%rbp)
movq -0xa0(%rbp), %rdi
cmpq %r15, %rdi
je 0x1d732
movq -0x90(%rbp), %rsi
jmp 0x1d71e
movq %rax, -0x38(%rbp)
movq -0x80(%rbp), %rdi
cmpq %r15, %rdi
je 0x1d732
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x41d0
jmp 0x1d732
movq %rax, -0x38(%rbp)
jmp 0x1d751
movq %rax, -0x38(%rbp)
movq 0x1d86f(%rip), %rsi     # 0x3afa8
leaq -0x3a8(%rbp), %rdi
callq 0x4150
leaq -0x328(%rbp), %rdi
callq 0x40a0
movq -0xc0(%rbp), %rdi
cmpq %r13, %rdi
je 0x1d76c
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x41d0
movq -0x58(%rbp), %rdi
cmpq %r12, %rdi
je 0x1d781
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x41d0
movq -0x38(%rbp), %rdi
callq 0x42f0