// File: brashi[P]PetFera/src/animal/animal.cpp
// Function: Animal::printOutDetails(std::shared_ptr<Animal>)
void Animal::printOutDetails(shared_ptr<Animal> animal) {
    shared_ptr<Veterinario> vet = animal->getVeterinario();
    shared_ptr<Tratador> trt = animal->getTratador();
    string classe = Animal::getClasse(animal);
    string classificacao = Animal::getClassificacao(animal);

    cout << endl << "=-=-=-=-=- Visualização de animal -=-=-=-=-=-" << endl;
    cout << "Nome: " << animal->nome << endl;
    cout << "Espécie: " << animal->getEspecie() << endl;
    cout << "Perigoso: " << (animal->getPerigoso() ? "Sim" : "Não") << endl;
    cout << "Ameaçado por: " << animal->getAmeacadoPor() << endl;
    cout << "Veterinário: " << vet->getNome() << endl;
    cout << "  └ CRMV: " << vet->getCRMV() << endl;
    cout << "Tratador: " << trt->getNome() << endl;
    int un = trt->getUniforme();
    cout << "  └ N. Segurança: " << (un == 0? "Verde" : (un == 1 ? "Azul" : "Vermelho")) << endl;
    cout << "Categoria: " << classificacao << endl;
    if(classificacao == "Silvestre Exótico")
        cout << "  └ Habitat: " << dynamic_pointer_cast<Exotico>(animal)->getLocal() << endl;
    else if(classificacao == "Silvestre Nativo") {
        shared_ptr<Nativo> classificacao = dynamic_pointer_cast<Nativo>(animal);
        cout << "  ├ Lic. Transporte IBAMA: " << classificacao->getLicenca() << endl;
        cout << "  └ Região: " << classificacao->getRegiao() << endl;
    } else 
        cout << "  └ Adestrado: " << (dynamic_pointer_cast<Domestico>(animal)->getAdestrado() ? "Sim" : "Não") << endl;
    cout << "Classe: " << classe << endl;
    if(classe == "Ave")
        cout << "  └ Voa: " << (dynamic_pointer_cast<Ave>(animal)->getVoa() ? "Sim" : "Não") << endl;
    else if(classe == "Anfíbio") {
        shared_ptr<Anfibio> classe = dynamic_pointer_cast<Anfibio>(animal);
        cout << "  ├ Cauda: " << (classe->getCauda() ? "Sim" : "Não") << endl;
        cout << "  └ Pata: " << (classe->getPata() ? "Sim" : "Não") << endl;
    } else if(classe == "Réptil") {
        int pele = dynamic_pointer_cast<Reptil>(animal)->getPele();
        cout << "  └ Pele: " << (pele == 0? "Escama" : (pele == 1 ? "Placa" : "Carapaça")) << endl;
    } else
        cout << "  └ Gestação: " << (dynamic_pointer_cast<Mamifero>(animal)->getGestacao() ? "Sim" : "Não") << endl;
    cout << endl << "-=-=-=-=-=-=-=-=-=-= Fim =-=-=-=-=-=-=-=-=-=-" << endl << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x420, %rsp            # imm = 0x420
movq %rdi, -0x228(%rbp)
movq %rdi, -0x8(%rbp)
callq 0xb480
movq %rax, %rsi
leaq -0x18(%rbp), %rdi
callq 0x29c70
movq -0x228(%rbp), %rdi
callq 0xb480
movq %rax, %rsi
leaq -0x28(%rbp), %rdi
callq 0x29cd0
movq -0x228(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x220(%rbp)
callq 0xb430
movq -0x220(%rbp), %rsi
leaq -0x48(%rbp), %rdi
xorl %edx, %edx
callq 0x2a420
jmp 0x2abba
leaq -0x58(%rbp), %rdi
callq 0xb460
movq -0x228(%rbp), %rsi
leaq -0x98(%rbp), %rdi
movq %rdi, -0x230(%rbp)
callq 0xb430
movq -0x230(%rbp), %rsi
leaq -0x88(%rbp), %rdi
xorl %edx, %edx
callq 0x29e90
jmp 0x2abf4
leaq -0x98(%rbp), %rdi
callq 0xb460
movq 0x383c1(%rip), %rdi     # 0x62fc8
movq 0x38392(%rip), %rsi     # 0x62fa0
callq 0x6360
movq %rax, -0x238(%rbp)
jmp 0x2ac1c
movq -0x238(%rbp), %rdi
leaq 0x17577(%rip), %rsi     # 0x421a1
callq 0x6310
movq %rax, -0x240(%rbp)
jmp 0x2ac38
movq -0x240(%rbp), %rdi
movq 0x3835a(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2ac4d
movq 0x38374(%rip), %rdi     # 0x62fc8
leaq 0x1731e(%rip), %rsi     # 0x41f79
callq 0x6310
movq %rax, -0x248(%rbp)
jmp 0x2ac69
movq -0x228(%rbp), %rdi
callq 0xb480
movq -0x248(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0x6300
movq %rax, -0x250(%rbp)
jmp 0x2ac91
movq -0x250(%rbp), %rdi
movq 0x38301(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2aca6
movq 0x3831b(%rip), %rdi     # 0x62fc8
leaq 0x173cc(%rip), %rsi     # 0x42080
callq 0x6310
movq %rax, -0x258(%rbp)
jmp 0x2acc2
movq -0x228(%rbp), %rdi
callq 0xb480
movq %rax, %rsi
leaq -0xb8(%rbp), %rdi
callq 0x29950
jmp 0x2acdf
movq -0x258(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x6300
movq %rax, -0x260(%rbp)
jmp 0x2acfb
movq -0x260(%rbp), %rdi
movq 0x38297(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2ad10
leaq -0xb8(%rbp), %rdi
callq 0x6678
movq 0x382a5(%rip), %rdi     # 0x62fc8
leaq 0x174a7(%rip), %rsi     # 0x421d1
callq 0x6310
movq %rax, -0x268(%rbp)
jmp 0x2ad38
movq -0x228(%rbp), %rdi
callq 0xb480
movq %rax, %rdi
callq 0x29d30
movq -0x268(%rbp), %rdi
movb %al, %cl
leaq 0x17480(%rip), %rax     # 0x421dc
leaq 0x1747d(%rip), %rsi     # 0x421e0
testb %cl, %cl
cmovneq %rax, %rsi
callq 0x6310
movq %rax, -0x270(%rbp)
jmp 0x2ad77
movq -0x270(%rbp), %rdi
movq 0x3821b(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2ad8c
movq 0x38235(%rip), %rdi     # 0x62fc8
leaq 0x1744b(%rip), %rsi     # 0x421e5
callq 0x6310
movq %rax, -0x278(%rbp)
jmp 0x2ada8
movq -0x228(%rbp), %rdi
callq 0xb480
movq %rax, %rsi
leaq -0xd8(%rbp), %rdi
callq 0x29ae0
jmp 0x2adc5
movq -0x278(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x6300
movq %rax, -0x280(%rbp)
jmp 0x2ade1
movq -0x280(%rbp), %rdi
movq 0x381b1(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2adf6
leaq -0xd8(%rbp), %rdi
callq 0x6678
movq 0x381bf(%rip), %rdi     # 0x62fc8
leaq 0x173e5(%rip), %rsi     # 0x421f5
callq 0x6310
movq %rax, -0x288(%rbp)
jmp 0x2ae1e
leaq -0x18(%rbp), %rdi
callq 0xb170
movq %rax, %rsi
leaq -0xf8(%rbp), %rdi
callq 0x27920
jmp 0x2ae38
movq -0x288(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x6300
movq %rax, -0x290(%rbp)
jmp 0x2ae54
movq -0x290(%rbp), %rdi
movq 0x3813e(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2ae69
leaq -0xf8(%rbp), %rdi
callq 0x6678
movq 0x3814c(%rip), %rdi     # 0x62fc8
leaq 0x17381(%rip), %rsi     # 0x42204
callq 0x6310
movq %rax, -0x298(%rbp)
jmp 0x2ae91
leaq -0x18(%rbp), %rdi
callq 0xb170
movq %rax, %rsi
leaq -0x118(%rbp), %rdi
callq 0x28be0
jmp 0x2aeab
movq -0x298(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x6300
movq %rax, -0x2a0(%rbp)
jmp 0x2aec7
movq -0x2a0(%rbp), %rdi
movq 0x380cb(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2aedc
leaq -0x118(%rbp), %rdi
callq 0x6678
movq 0x380d9(%rip), %rdi     # 0x62fc8
leaq 0x1731b(%rip), %rsi     # 0x42211
callq 0x6310
movq %rax, -0x2a8(%rbp)
jmp 0x2af04
leaq -0x28(%rbp), %rdi
callq 0xb2d0
movq %rax, %rsi
leaq -0x138(%rbp), %rdi
callq 0x27920
jmp 0x2af1e
movq -0x2a8(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x6300
movq %rax, -0x2b0(%rbp)
jmp 0x2af3a
movq -0x2b0(%rbp), %rdi
movq 0x38058(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2af4f
leaq -0x138(%rbp), %rdi
callq 0x6678
leaq -0x28(%rbp), %rdi
callq 0xb2d0
movq %rax, %rdi
callq 0x280c0
movl %eax, -0x2b4(%rbp)
jmp 0x2af74
movl -0x2b4(%rbp), %eax
movl %eax, -0x13c(%rbp)
movq 0x38041(%rip), %rdi     # 0x62fc8
leaq 0x1728e(%rip), %rsi     # 0x4221c
callq 0x6310
movq %rax, -0x2c0(%rbp)
jmp 0x2af9c
cmpl $0x0, -0x13c(%rbp)
jne 0x2afb5
leaq 0x1705f(%rip), %rax     # 0x4200b
movq %rax, -0x2c8(%rbp)
jmp 0x2afd7
movl -0x13c(%rbp), %edx
leaq 0x17054(%rip), %rax     # 0x42016
leaq 0x17048(%rip), %rcx     # 0x42011
cmpl $0x1, %edx
cmoveq %rcx, %rax
movq %rax, -0x2c8(%rbp)
movq -0x2c0(%rbp), %rdi
movq -0x2c8(%rbp), %rsi
callq 0x6310
movq %rax, -0x2d0(%rbp)
jmp 0x2aff3
movq -0x2d0(%rbp), %rdi
movq 0x37f9f(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b008
movq 0x37fb9(%rip), %rdi     # 0x62fc8
leaq 0x1721c(%rip), %rsi     # 0x42232
callq 0x6310
movq %rax, -0x2d8(%rbp)
jmp 0x2b024
movq -0x2d8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x6300
movq %rax, -0x2e0(%rbp)
jmp 0x2b040
movq -0x2e0(%rbp), %rdi
movq 0x37f52(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b055
leaq 0x1706a(%rip), %rsi     # 0x420c6
leaq -0x88(%rbp), %rdi
callq 0xbc30
movb %al, -0x2e1(%rbp)
jmp 0x2b070
movb -0x2e1(%rbp), %al
testb $0x1, %al
jne 0x2b07f
jmp 0x2b230
movq 0x37f42(%rip), %rdi     # 0x62fc8
leaq 0x171b1(%rip), %rsi     # 0x4223e
callq 0x6310
movq %rax, -0x2f0(%rbp)
jmp 0x2b09b
movq -0x228(%rbp), %rsi
leaq -0x170(%rbp), %rdi
movq %rdi, -0x2f8(%rbp)
callq 0xb5e0
movq -0x2f8(%rbp), %rdi
callq 0xb670
movq %rax, %rsi
leaq -0x160(%rbp), %rdi
callq 0x2c350
jmp 0x2b0d2
movq -0x2f0(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x6300
movq %rax, -0x300(%rbp)
jmp 0x2b0ee
movq -0x300(%rbp), %rdi
movq 0x37ea4(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b103
leaq -0x160(%rbp), %rdi
callq 0x6678
leaq -0x170(%rbp), %rdi
callq 0xb690
jmp 0x2b47f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xb460
jmp 0x2b9aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x98(%rbp), %rdi
callq 0xb460
jmp 0x2b9a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x2b995
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x6678
jmp 0x2b995
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x6678
jmp 0x2b995
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x6678
jmp 0x2b995
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x6678
jmp 0x2b995
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x6678
jmp 0x2b995
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x2b21f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x6678
leaq -0x170(%rbp), %rdi
callq 0xb690
jmp 0x2b995
leaq 0x16ea2(%rip), %rsi     # 0x420d9
leaq -0x88(%rbp), %rdi
callq 0xbc30
movb %al, -0x301(%rbp)
jmp 0x2b24b
movb -0x301(%rbp), %al
testb $0x1, %al
jne 0x2b25a
jmp 0x2b3bb
movq -0x228(%rbp), %rsi
leaq -0x180(%rbp), %rdi
callq 0xb6b0
movq 0x37d54(%rip), %rdi     # 0x62fc8
leaq 0x16fd3(%rip), %rsi     # 0x4224e
callq 0x6310
movq %rax, -0x310(%rbp)
jmp 0x2b289
leaq -0x180(%rbp), %rdi
callq 0xb740
movq %rax, %rsi
leaq -0x1a0(%rbp), %rdi
callq 0x3ba60
jmp 0x2b2a6
movq -0x310(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x6300
movq %rax, -0x318(%rbp)
jmp 0x2b2c2
movq -0x318(%rbp), %rdi
movq 0x37cd0(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b2d7
leaq -0x1a0(%rbp), %rdi
callq 0x6678
movq 0x37cde(%rip), %rdi     # 0x62fc8
leaq 0x16f7b(%rip), %rsi     # 0x4226c
callq 0x6310
movq %rax, -0x320(%rbp)
jmp 0x2b2ff
leaq -0x180(%rbp), %rdi
callq 0xb740
movq %rax, %rsi
leaq -0x1c0(%rbp), %rdi
callq 0x3bbf0
jmp 0x2b31c
movq -0x320(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x6300
movq %rax, -0x328(%rbp)
jmp 0x2b338
movq -0x328(%rbp), %rdi
movq 0x37c5a(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b34d
leaq -0x1c0(%rbp), %rdi
callq 0x6678
leaq -0x180(%rbp), %rdi
callq 0xb760
jmp 0x2b47d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x2b3aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x6678
jmp 0x2b3aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x6678
leaq -0x180(%rbp), %rdi
callq 0xb760
jmp 0x2b995
movq 0x37c06(%rip), %rdi     # 0x62fc8
leaq 0x16eb3(%rip), %rsi     # 0x4227c
callq 0x6310
movq %rax, -0x330(%rbp)
jmp 0x2b3d7
movq -0x228(%rbp), %rsi
leaq -0x1d0(%rbp), %rdi
movq %rdi, -0x340(%rbp)
callq 0xb510
movq -0x340(%rbp), %rdi
callq 0xb5a0
movq %rax, %rdi
callq 0x2c170
movb %al, -0x331(%rbp)
jmp 0x2b40d
movq -0x330(%rbp), %rdi
movb -0x331(%rbp), %cl
leaq 0x16dbb(%rip), %rax     # 0x421dc
leaq 0x16db8(%rip), %rsi     # 0x421e0
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x6310
movq %rax, -0x348(%rbp)
jmp 0x2b43d
movq -0x348(%rbp), %rdi
movq 0x37b55(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b452
leaq -0x1d0(%rbp), %rdi
callq 0xb5c0
jmp 0x2b47d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0xb5c0
jmp 0x2b995
jmp 0x2b47f
movq 0x37b42(%rip), %rdi     # 0x62fc8
leaq 0x16e01(%rip), %rsi     # 0x4228e
callq 0x6310
movq %rax, -0x350(%rbp)
jmp 0x2b49b
movq -0x350(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x6300
movq %rax, -0x358(%rbp)
jmp 0x2b4b4
movq -0x358(%rbp), %rdi
movq 0x37ade(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b4c9
leaq 0x16c72(%rip), %rsi     # 0x42142
leaq -0x48(%rbp), %rdi
callq 0xbc30
movb %al, -0x359(%rbp)
jmp 0x2b4e1
movb -0x359(%rbp), %al
testb $0x1, %al
jne 0x2b4f0
jmp 0x2b5b5
movq 0x37ad1(%rip), %rdi     # 0x62fc8
leaq 0x16d99(%rip), %rsi     # 0x42297
callq 0x6310
movq %rax, -0x368(%rbp)
jmp 0x2b50c
movq -0x228(%rbp), %rsi
leaq -0x1e0(%rbp), %rdi
movq %rdi, -0x378(%rbp)
callq 0xb780
movq -0x378(%rbp), %rdi
callq 0xb810
movq %rax, %rdi
callq 0x3bf90
movb %al, -0x369(%rbp)
jmp 0x2b542
movq -0x368(%rbp), %rdi
movb -0x369(%rbp), %cl
leaq 0x16c86(%rip), %rax     # 0x421dc
leaq 0x16c83(%rip), %rsi     # 0x421e0
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x6310
movq %rax, -0x380(%rbp)
jmp 0x2b572
movq -0x380(%rbp), %rdi
movq 0x37a20(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b587
leaq -0x1e0(%rbp), %rdi
callq 0xb830
jmp 0x2b8fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0xb830
jmp 0x2b995
leaq 0x16b8a(%rip), %rsi     # 0x42146
leaq -0x48(%rbp), %rdi
callq 0xbc30
movb %al, -0x381(%rbp)
jmp 0x2b5cd
movb -0x381(%rbp), %al
testb $0x1, %al
jne 0x2b5dc
jmp 0x2b717
movq -0x228(%rbp), %rsi
leaq -0x1f0(%rbp), %rdi
callq 0xb850
movq 0x379d2(%rip), %rdi     # 0x62fc8
leaq 0x16ca6(%rip), %rsi     # 0x422a3
callq 0x6310
movq %rax, -0x390(%rbp)
jmp 0x2b60b
leaq -0x1f0(%rbp), %rdi
callq 0xb8e0
movq %rax, %rdi
callq 0x3e670
movb %al, -0x391(%rbp)
jmp 0x2b627
movq -0x390(%rbp), %rdi
movb -0x391(%rbp), %cl
leaq 0x16ba1(%rip), %rax     # 0x421dc
leaq 0x16b9e(%rip), %rsi     # 0x421e0
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x6310
movq %rax, -0x3a0(%rbp)
jmp 0x2b657
movq -0x3a0(%rbp), %rdi
movq 0x3793b(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b66c
movq 0x37955(%rip), %rdi     # 0x62fc8
leaq 0x16c37(%rip), %rsi     # 0x422b1
callq 0x6310
movq %rax, -0x3a8(%rbp)
jmp 0x2b688
leaq -0x1f0(%rbp), %rdi
callq 0xb8e0
movq %rax, %rdi
callq 0x3e7e0
movb %al, -0x3a9(%rbp)
jmp 0x2b6a4
movq -0x3a8(%rbp), %rdi
movb -0x3a9(%rbp), %cl
leaq 0x16b24(%rip), %rax     # 0x421dc
leaq 0x16b21(%rip), %rsi     # 0x421e0
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x6310
movq %rax, -0x3b8(%rbp)
jmp 0x2b6d4
movq -0x3b8(%rbp), %rdi
movq 0x378be(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b6e9
leaq -0x1f0(%rbp), %rdi
callq 0xb900
jmp 0x2b8fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0xb900
jmp 0x2b995
leaq 0x16116(%rip), %rsi     # 0x41834
leaq -0x48(%rbp), %rdi
callq 0xbc30
movb %al, -0x3b9(%rbp)
jmp 0x2b72f
movb -0x3b9(%rbp), %al
testb $0x1, %al
jne 0x2b73e
jmp 0x2b836
movq -0x228(%rbp), %rsi
leaq -0x208(%rbp), %rdi
movq %rdi, -0x3c8(%rbp)
callq 0xb920
movq -0x3c8(%rbp), %rdi
callq 0xb9b0
movq %rax, %rdi
callq 0x3d930
movl %eax, -0x3c0(%rbp)
jmp 0x2b774
leaq -0x208(%rbp), %rdi
callq 0xb9d0
movl -0x3c0(%rbp), %eax
movl %eax, -0x1f4(%rbp)
movq 0x37835(%rip), %rdi     # 0x62fc8
leaq 0x16b24(%rip), %rsi     # 0x422be
callq 0x6310
movq %rax, -0x3d0(%rbp)
jmp 0x2b7a8
cmpl $0x0, -0x1f4(%rbp)
jne 0x2b7c1
leaq 0x16b13(%rip), %rax     # 0x422cb
movq %rax, -0x3d8(%rbp)
jmp 0x2b7e3
movl -0x1f4(%rbp), %edx
leaq 0x16b0a(%rip), %rax     # 0x422d8
leaq 0x16afd(%rip), %rcx     # 0x422d2
cmpl $0x1, %edx
cmoveq %rcx, %rax
movq %rax, -0x3d8(%rbp)
movq -0x3d0(%rbp), %rdi
movq -0x3d8(%rbp), %rsi
callq 0x6310
movq %rax, -0x3e0(%rbp)
jmp 0x2b7ff
movq -0x3e0(%rbp), %rdi
movq 0x37793(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b814
jmp 0x2b8f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x208(%rbp), %rdi
callq 0xb9d0
jmp 0x2b995
movq 0x3778b(%rip), %rdi     # 0x62fc8
leaq 0x16a9e(%rip), %rsi     # 0x422e2
callq 0x6310
movq %rax, -0x3e8(%rbp)
jmp 0x2b852
movq -0x228(%rbp), %rsi
leaq -0x218(%rbp), %rdi
movq %rdi, -0x3f8(%rbp)
callq 0xb9f0
movq -0x3f8(%rbp), %rdi
callq 0xba80
movq %rax, %rdi
callq 0x3cc70
movb %al, -0x3e9(%rbp)
jmp 0x2b888
movq -0x3e8(%rbp), %rdi
movb -0x3e9(%rbp), %cl
leaq 0x16940(%rip), %rax     # 0x421dc
leaq 0x1693d(%rip), %rsi     # 0x421e0
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x6310
movq %rax, -0x400(%rbp)
jmp 0x2b8b8
movq -0x400(%rbp), %rdi
movq 0x376da(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b8cd
leaq -0x218(%rbp), %rdi
callq 0xbaa0
jmp 0x2b8f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x218(%rbp), %rdi
callq 0xbaa0
jmp 0x2b995
jmp 0x2b8fa
jmp 0x2b8fc
movq 0x376c5(%rip), %rdi     # 0x62fc8
movq 0x37696(%rip), %rsi     # 0x62fa0
callq 0x6360
movq %rax, -0x408(%rbp)
jmp 0x2b918
movq -0x408(%rbp), %rdi
leaq 0x169cf(%rip), %rsi     # 0x422f5
callq 0x6310
movq %rax, -0x410(%rbp)
jmp 0x2b934
movq -0x410(%rbp), %rdi
movq 0x3765e(%rip), %rsi     # 0x62fa0
callq 0x6360
movq %rax, -0x418(%rbp)
jmp 0x2b950
movq -0x418(%rbp), %rdi
movq 0x37642(%rip), %rsi     # 0x62fa0
callq 0x6360
jmp 0x2b965
leaq -0x88(%rbp), %rdi
callq 0x6678
leaq -0x48(%rbp), %rdi
callq 0x6678
leaq -0x28(%rbp), %rdi
callq 0xb4a0
leaq -0x18(%rbp), %rdi
callq 0xb4c0
addq $0x420, %rsp            # imm = 0x420
popq %rbp
retq
leaq -0x88(%rbp), %rdi
callq 0x6678
leaq -0x48(%rbp), %rdi
callq 0x6678
leaq -0x28(%rbp), %rdi
callq 0xb4a0
leaq -0x18(%rbp), %rdi
callq 0xb4c0
movq -0x60(%rbp), %rdi
callq 0x6590
nopw %cs:(%rax,%rax)