// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/./petshop.cpp
// Function: Petshop::listarAnimais(bool)
void Petshop::listarAnimais(bool autoList) {
    shared_ptr<Veterinario> vet;
    shared_ptr<Tratador> trt;
    string filtro = {}, idPessoa = {}, animalID = {};

    if(autoList)
        goto listBypass;

    if(this->animais.size() == 0)
        throw "Não há animais para visualizar no sistema!";

    cout << "Escolha seu filtro: " << endl << endl;
    cout << "Enter - Todos (sem filtro)" << endl;
    cout << "A - Apenas aves" << endl;
    cout << "F - Apenas anfíbios" << endl;
    cout << "R - Apenas répteis" << endl;
    cout << "M - Apenas mamíferos" << endl;
    cout << "D - Apenas animais domésticos" << endl;
    cout << "E - Apenas silvestres exóticos" << endl;
    cout << "N - Apenas silvestres nativos" << endl;
    cout << "T - Filtrar por tratador" << endl;
    cout << "V - Filtrar por veterinário" << endl;

    getline(cin, filtro);
    long unsigned int num;

listBypass:
    if(filtro.empty())
        filtro = "X";

    if(filtro == "T" || filtro == "t") {
        if(this->tratadores.size() == 0)
            throw "Não há tratadores no sistema!";

        cout << "Digite o ID do tratador responsável: " << endl;
        this->listarTratadores();
        getline(cin, idPessoa);
        num = stoi(idPessoa);
        if(num >= 0 && num < this->tratadores.size())
            trt = this->tratadores[num];
        else
            throw "Tratador não existe!";
    } else if(filtro == "V" || filtro == "v") {
        if(this->veterinarios.size() == 0)
            throw "Não há veterinários no sistema!";

        cout << "Digite o ID do veterinário responsável: " << endl;
        this->listarVeterinarios();
        getline(cin, idPessoa);
        num = stoi(idPessoa);
        if(num >= 0 && num < this->veterinarios.size())
            vet = this->veterinarios[num];
        else
            throw "Veterinário não existe!";
    }

    // Imprime cabeçalho:
    cout << endl << "=-=-=-=-=- Lista de animais -=-=-=-=-=-" << endl;
    cout << right << setfill(' ') << setw(6) << "ID"
         << setfill(' ') << setw(23) << "Nome"
         << setfill(' ') << setw(23) << "Espécie"
         << setfill(' ') << setw(23) << "Ameaçado por"
         << setfill(' ') << setw(23) << "Perigoso" << endl;

    int index = 0;
    char selecao = toupper(filtro[0]);
    for(auto& animal : this->animais) {
        if(selecao == 'V') {
            if(animal->getVeterinario() == vet)
                cout << setfill(' ') << setw(6) << index << animal;
        } else if(selecao == 'T') {
            if(animal->getTratador() == trt)
                cout << setfill(' ') << setw(6) << index << animal;
        } else {
            if(casts.filtro[selecao](animal))
                cout << setfill(' ') << setw(6) << index << animal;
        }
        index++;
    }
    cout << endl << "-=-=-=-=-=-=-=-=- Fim -=-=-=-=-=-=-=-=-" << endl << endl;

    if(!autoList) {
        cout << endl << "Digite o ID de um animal a ser visualizado: " << endl;
        cout << "(Mantenha em branco para cancelar a operação)" << endl;
        getline(cin, animalID);
        if(animalID.size() != 0) {
            num = stoi(animalID);
            if(num >= 0 && num < this->animais.size())
                Animal::printOutDetails(this->animais[num]);
            else
                throw "Animal não existe!";
        } else
            cout << "Operação cancelada..." << endl;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %rdi, %r15
xorps %xmm0, %xmm0
movaps %xmm0, 0x80(%rsp)
movaps %xmm0, 0x70(%rsp)
leaq 0x38(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x60(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0xf0(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rax, -0x8(%r12)
movb %al, (%r12)
movl %esi, 0x24(%rsp)
testl %esi, %esi
jne 0x11780
movq 0x38(%r15), %rax
cmpq 0x30(%r15), %rax
je 0x12337
movq 0x19ba9(%rip), %rbx     # 0x2afd0
leaq 0xf73c(%rip), %rsi      # 0x20b6a
movl $0x14, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x19b77(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x19b39(%rip), %rbx     # 0x2afd0
leaq 0xf6e1(%rip), %rsi      # 0x20b7f
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x19b07(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x19af3(%rip), %rbx     # 0x2afd0
leaq 0xf6b6(%rip), %rsi      # 0x20b9a
movl $0xf, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x19ac1(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x19aad(%rip), %rbx     # 0x2afd0
leaq 0xf680(%rip), %rsi      # 0x20baa
movl $0x14, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x19a7b(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x19a67(%rip), %rbx     # 0x2afd0
leaq 0xf64f(%rip), %rsi      # 0x20bbf
movl $0x13, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x19a35(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x19a21(%rip), %rbx     # 0x2afd0
leaq 0xf61d(%rip), %rsi      # 0x20bd3
movl $0x15, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x199ef(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x199db(%rip), %rbx     # 0x2afd0
leaq 0xf5ed(%rip), %rsi      # 0x20be9
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x199a9(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x19995(%rip), %rbx     # 0x2afd0
leaq 0xf5c6(%rip), %rsi      # 0x20c08
movl $0x1f, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x19963(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x1994f(%rip), %rbx     # 0x2afd0
leaq 0xf5a0(%rip), %rsi      # 0x20c28
movl $0x1d, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x1991d(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x19909(%rip), %rbx     # 0x2afd0
leaq 0xf578(%rip), %rsi      # 0x20c46
movl $0x18, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x198d7(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x198c3(%rip), %rbx     # 0x2afd0
leaq 0xf54b(%rip), %rsi      # 0x20c5f
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x19891(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x1988d(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x19872(%rip), %rdi     # 0x2afe0
leaq 0x28(%rsp), %rsi
callq 0x5480
cmpq $0x0, 0x30(%rsp)
jne 0x1179b
leaq 0xf4f5(%rip), %rcx      # 0x20c7c
leaq 0x28(%rsp), %rdi
movl $0x1, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x53f0
leaq 0xf4dc(%rip), %rsi      # 0x20c7e
leaq 0x28(%rsp), %rdi
callq 0x50d0
testl %eax, %eax
je 0x1190c
leaq 0xda63(%rip), %rsi      # 0x1f21e
leaq 0x28(%rsp), %rdi
callq 0x50d0
testl %eax, %eax
je 0x1190c
leaq 0xe7a7(%rip), %rsi      # 0x1ff7b
leaq 0x28(%rsp), %rdi
callq 0x50d0
testl %eax, %eax
je 0x117fb
leaq 0xd878(%rip), %rsi      # 0x1f061
leaq 0x28(%rsp), %rdi
callq 0x50d0
testl %eax, %eax
jne 0x11a30
movq 0x8(%r15), %rax
cmpq (%r15), %rax
je 0x1237d
movq 0x197c1(%rip), %rbx     # 0x2afd0
leaq 0xe964(%rip), %rsi      # 0x2017a
movl $0x2a, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x1978f(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %r15, %rdi
callq 0xe7d2
movq 0x19783(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x19768(%rip), %rdi     # 0x2afe0
leaq 0x50(%rsp), %rsi
callq 0x5480
movq %r15, %r13
movq 0x50(%rsp), %rbx
callq 0x5050
movq %rax, %r14
movl (%rax), %ebp
movl $0x0, (%rax)
leaq 0x10(%rsp), %r15
movq %rbx, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x5380
cmpq %rbx, (%r15)
je 0x12386
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x12392
movl (%r14), %ecx
cmpl $0x22, %ecx
je 0x12392
testl %ecx, %ecx
movq %r13, %r15
jne 0x118e8
movl %ebp, (%r14)
movq (%r15), %rcx
movq 0x8(%r15), %rdx
subq %rcx, %rdx
sarq $0x4, %rdx
cmpq %rax, %rdx
jbe 0x1239e
leaq 0x88(%rsp), %rdi
jmp 0x11a17
movq 0x20(%r15), %rax
cmpq 0x18(%r15), %rax
je 0x1230a
movq 0x196af(%rip), %rbx     # 0x2afd0
leaq 0xe9f8(%rip), %rsi      # 0x20320
movl $0x26, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x1967d(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %r15, %rdi
callq 0xeb38
movq 0x19671(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x19656(%rip), %rdi     # 0x2afe0
leaq 0x50(%rsp), %rsi
callq 0x5480
movq %r15, %r13
movq 0x50(%rsp), %rbx
callq 0x5050
movq %rax, %r14
movl (%rax), %ebp
movl $0x0, (%rax)
leaq 0x10(%rsp), %r15
movq %rbx, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x5380
cmpq %rbx, (%r15)
je 0x12316
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x12322
movl (%r14), %ecx
cmpl $0x22, %ecx
je 0x12322
testl %ecx, %ecx
movq %r13, %r15
jne 0x119fa
movl %ebp, (%r14)
movq 0x18(%r15), %rcx
movq 0x20(%r15), %rdx
subq %rcx, %rdx
sarq $0x4, %rdx
cmpq %rax, %rdx
jbe 0x1232e
leaq 0x78(%rsp), %rdi
shlq $0x4, %rax
leaq (%rcx,%rax), %rsi
movq (%rcx,%rax), %rax
movq %rax, -0x8(%rdi)
addq $0x8, %rsi
callq 0x13cf6
movq 0x19599(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x1957e(%rip), %rbx     # 0x2afd0
movq %rbx, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0xf214(%rip), %rsi      # 0x20c80
movl $0x27, %edx
movq %rax, %rdi
callq 0x5310
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq %r14, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movl $0xffffff4f, %edx       # imm = 0xFFFFFF4F
andl 0x18(%rbx,%rcx), %edx
orl $0x80, %edx
movl %edx, 0x18(%rbx,%rcx)
movq -0x18(%rax), %rcx
leaq (%rbx,%rcx), %r14
cmpb $0x0, 0xe1(%rbx,%rcx)
jne 0x11ae4
movq %r14, %rdi
movl $0x20, %esi
callq 0x5280
movb $0x1, 0xe1(%r14)
movq (%rbx), %rax
movb $0x20, 0xe0(%r14)
movq -0x18(%rax), %rax
movq $0x6, 0x10(%rbx,%rax)
leaq 0xefa3(%rip), %rsi      # 0x20aa3
movl $0x2, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
movq -0x18(%rax), %rcx
leaq (%rbx,%rcx), %r14
cmpb $0x0, 0xe1(%rbx,%rcx)
jne 0x11b3a
movq %r14, %rdi
movl $0x20, %esi
callq 0x5280
movb $0x1, 0xe1(%r14)
movq (%rbx), %rax
movb $0x20, 0xe0(%r14)
movq -0x18(%rax), %rax
movq $0x17, 0x10(%rbx,%rax)
leaq 0xef50(%rip), %rsi      # 0x20aa6
movl $0x4, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
movq -0x18(%rax), %rcx
leaq (%rbx,%rcx), %r14
cmpb $0x0, 0xe1(%rbx,%rcx)
jne 0x11b90
movq %r14, %rdi
movl $0x20, %esi
callq 0x5280
movb $0x1, 0xe1(%r14)
movq (%rbx), %rax
movb $0x20, 0xe0(%r14)
movq -0x18(%rax), %rax
movq $0x17, 0x10(%rbx,%rax)
leaq 0xf0fc(%rip), %rsi      # 0x20ca8
movl $0x8, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
movq -0x18(%rax), %rcx
leaq (%rbx,%rcx), %r14
cmpb $0x0, 0xe1(%rbx,%rcx)
jne 0x11be6
movq %r14, %rdi
movl $0x20, %esi
callq 0x5280
movb $0x1, 0xe1(%r14)
movq (%rbx), %rax
movb $0x20, 0xe0(%r14)
movq -0x18(%rax), %rax
movq $0x17, 0x10(%rbx,%rax)
leaq 0xf0af(%rip), %rsi      # 0x20cb1
movl $0xd, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
movq -0x18(%rax), %rcx
leaq (%rbx,%rcx), %r14
cmpb $0x0, 0xe1(%rbx,%rcx)
jne 0x11c3c
movq %r14, %rdi
movl $0x20, %esi
callq 0x5280
movb $0x1, 0xe1(%r14)
movq (%rbx), %rax
movb $0x20, 0xe0(%r14)
movq -0x18(%rax), %rax
movq $0x17, 0x10(%rbx,%rax)
leaq 0xf067(%rip), %rsi      # 0x20cbf
movl $0x8, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x1934d(%rip), %r14     # 0x2afd0
movq %r14, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x28(%rsp), %rax
movsbl (%rax), %edi
callq 0x5490
movb %al, 0xf(%rsp)
movq 0x30(%r15), %rbx
movq %r15, 0x48(%rsp)
movq 0x38(%r15), %r15
cmpq %r15, %rbx
je 0x11fc9
movq 0x48(%rsp), %rax
addq $0x78, %rax
movq %rax, 0x100(%rsp)
xorl %r12d, %r12d
movzbl 0xf(%rsp), %eax
cmpl $0x54, %eax
je 0x11d9b
cmpl $0x56, %eax
jne 0x11e4e
movq (%rbx), %rsi
leaq 0x10(%rsp), %rdi
callq 0x16afa
movq 0x10(%rsp), %rbp
movq 0x18(%rsp), %rdi
movq 0x80(%rsp), %r13
testq %rdi, %rdi
je 0x11d0e
callq 0x9f52
cmpq %r13, %rbp
jne 0x11fb9
movq (%r14), %rax
movq -0x18(%rax), %rcx
leaq (%r14,%rcx), %rbp
cmpb $0x0, 0xe1(%r14,%rcx)
jne 0x11d44
movq %rbp, %rdi
movl $0x20, %esi
callq 0x5280
movb $0x1, 0xe1(%rbp)
movq (%r14), %rax
movb $0x20, 0xe0(%rbp)
movq -0x18(%rax), %rax
movq $0x6, 0x10(%r14,%rax)
movq %r14, %rdi
movl %r12d, %esi
callq 0x5450
movq (%rbx), %rcx
movq %rcx, 0xd0(%rsp)
movq 0x8(%rbx), %rcx
movq %rcx, 0xd8(%rsp)
testq %rcx, %rcx
je 0x11f79
movq 0x1923e(%rip), %rdx     # 0x2afc8
cmpb $0x0, (%rdx)
je 0x11f75
incl 0x8(%rcx)
jmp 0x11f79
movq (%rbx), %rsi
leaq 0x10(%rsp), %rdi
callq 0x16b3a
movq 0x10(%rsp), %rbp
movq 0x18(%rsp), %rdi
movq 0x70(%rsp), %r13
testq %rdi, %rdi
je 0x11dc1
callq 0x9f52
cmpq %r13, %rbp
jne 0x11fb9
movq (%r14), %rax
movq -0x18(%rax), %rcx
leaq (%r14,%rcx), %rbp
cmpb $0x0, 0xe1(%r14,%rcx)
jne 0x11df7
movq %rbp, %rdi
movl $0x20, %esi
callq 0x5280
movb $0x1, 0xe1(%rbp)
movq (%r14), %rax
movb $0x20, 0xe0(%rbp)
movq -0x18(%rax), %rax
movq $0x6, 0x10(%r14,%rax)
movq %r14, %rdi
movl %r12d, %esi
callq 0x5450
movq (%rbx), %rcx
movq %rcx, 0xc0(%rsp)
movq 0x8(%rbx), %rcx
movq %rcx, 0xc8(%rsp)
testq %rcx, %rcx
je 0x11f97
movq 0x1918b(%rip), %rdx     # 0x2afc8
cmpb $0x0, (%rdx)
je 0x11f93
incl 0x8(%rcx)
jmp 0x11f97
movq 0x100(%rsp), %rdi
leaq 0xf(%rsp), %rsi
callq 0x13a36
movq (%rbx), %rcx
movq %rcx, 0xb0(%rsp)
movq 0x8(%rbx), %rcx
movq %rcx, 0xb8(%rsp)
testq %rcx, %rcx
je 0x11e91
movq 0x19145(%rip), %rdx     # 0x2afc8
cmpb $0x0, (%rdx)
je 0x11e8d
incl 0x8(%rcx)
jmp 0x11e91
lock
incl 0x8(%rcx)
cmpq $0x0, 0x10(%rax)
je 0x12305
leaq 0x10(%rsp), %rdi
movq %rax, %rsi
leaq 0xb0(%rsp), %rdx
callq *0x18(%rax)
movq 0x10(%rsp), %rbp
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x11ec3
callq 0x9f52
movq 0xb8(%rsp), %rdi
testq %rdi, %rdi
je 0x11ed5
callq 0x9f52
testq %rbp, %rbp
je 0x11fb9
movq (%r14), %rax
movq -0x18(%rax), %rcx
leaq (%r14,%rcx), %rbp
cmpb $0x0, 0xe1(%r14,%rcx)
jne 0x11f0b
movq %rbp, %rdi
movl $0x20, %esi
callq 0x5280
movb $0x1, 0xe1(%rbp)
movq (%r14), %rax
movb $0x20, 0xe0(%rbp)
movq -0x18(%rax), %rax
movq $0x6, 0x10(%r14,%rax)
movq %r14, %rdi
movl %r12d, %esi
callq 0x5450
movq (%rbx), %rcx
movq %rcx, 0xa0(%rsp)
movq 0x8(%rbx), %rcx
movq %rcx, 0xa8(%rsp)
testq %rcx, %rcx
je 0x11f5b
movq 0x1907b(%rip), %rdx     # 0x2afc8
cmpb $0x0, (%rdx)
je 0x11f57
incl 0x8(%rcx)
jmp 0x11f5b
lock
incl 0x8(%rcx)
movq %rax, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x18b01
movq 0xa8(%rsp), %rdi
jmp 0x11faf
lock
incl 0x8(%rcx)
movq %rax, %rdi
leaq 0xd0(%rsp), %rsi
callq 0x18b01
movq 0xd8(%rsp), %rdi
jmp 0x11faf
lock
incl 0x8(%rcx)
movq %rax, %rdi
leaq 0xc0(%rsp), %rsi
callq 0x18b01
movq 0xc8(%rsp), %rdi
testq %rdi, %rdi
je 0x11fb9
callq 0x9f52
incl %r12d
addq $0x10, %rbx
cmpq %r15, %rbx
jne 0x11cce
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
leaq 0xf0(%rsp), %r12
callq 0x5280
movsbl %al, %esi
movq 0x18fe1(%rip), %rbx     # 0x2afd0
movq %rbx, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0xeac0(%rip), %rsi      # 0x20ac9
movl $0x27, %edx
movq %rax, %rdi
callq 0x5310
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq %r14, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq %r14, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51c0
cmpb $0x0, 0x24(%rsp)
jne 0x1227d
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x18f40(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %rbx
leaq 0xec21(%rip), %rsi      # 0x20cc8
movl $0x2c, %edx
movq %rax, %rdi
callq 0x5310
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x18eee(%rip), %rbx     # 0x2afd0
leaq 0xec0c(%rip), %rsi      # 0x20cf5
movl $0x2f, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x18ebc(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x18eb8(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x18e9d(%rip), %rdi     # 0x2afe0
leaq 0xe0(%rsp), %rsi
callq 0x5480
cmpq $0x0, 0xe8(%rsp)
je 0x12212
movq 0xe0(%rsp), %rbx
callq 0x5050
movq %rax, %r14
movl (%rax), %ebp
movl $0x0, (%rax)
leaq 0x10(%rsp), %r15
movq %rbx, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x5380
cmpq %rbx, (%r15)
je 0x12340
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
movq 0x48(%rsp), %rdx
jb 0x1234c
movl (%r14), %ecx
cmpl $0x22, %ecx
je 0x1234c
testl %ecx, %ecx
jne 0x121c7
movl %ebp, (%r14)
movq 0x30(%rdx), %rcx
movq 0x38(%rdx), %rdx
subq %rcx, %rdx
sarq $0x4, %rdx
cmpq %rax, %rdx
jbe 0x12358
shlq $0x4, %rax
movq (%rcx,%rax), %rdx
movq %rdx, 0x90(%rsp)
movq 0x8(%rcx,%rax), %rax
movq %rax, 0x98(%rsp)
testq %rax, %rax
je 0x1225e
movq 0x18dc0(%rip), %rcx     # 0x2afc8
cmpb $0x0, (%rcx)
je 0x1225a
incl 0x8(%rax)
jmp 0x1225e
movq 0x18db7(%rip), %rbx     # 0x2afd0
leaq 0xd998(%rip), %rsi      # 0x1fbb8
movl $0x17, %edx
movq %rbx, %rdi
callq 0x5310
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x18d85(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
jmp 0x1227d
lock
incl 0x8(%rax)
leaq 0x90(%rsp), %rdi
callq 0x17540
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x1227d
callq 0x9f52
movq 0xe0(%rsp), %rdi
cmpq %r12, %rdi
je 0x1229a
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x52b0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x122b6
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x52b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x122d2
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x52b0
movq 0x78(%rsp), %rdi
testq %rdi, %rdi
je 0x122e1
callq 0x9f52
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x122f3
callq 0x9f52
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x5110
leaq 0xdd74(%rip), %rbx      # 0x20085
jmp 0x123a5
leaq 0xd0c3(%rip), %rdi      # 0x1f3e0
callq 0x51b0
leaq 0xd0b7(%rip), %rdi      # 0x1f3e0
callq 0x53a0
leaq 0xe012(%rip), %rbx      # 0x20347
jmp 0x123a5
leaq 0xe7ff(%rip), %rbx      # 0x20b3d
jmp 0x123a5
leaq 0xd099(%rip), %rdi      # 0x1f3e0
callq 0x51b0
leaq 0xd08d(%rip), %rdi      # 0x1f3e0
callq 0x53a0
movl $0x8, %edi
callq 0x5170
leaq 0xe397(%rip), %rcx      # 0x20700
movq %rcx, (%rax)
movq 0x18c3d(%rip), %rsi     # 0x2afb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x5440
leaq 0xdcde(%rip), %rbx      # 0x20062
jmp 0x123a5
leaq 0xd053(%rip), %rdi      # 0x1f3e0
callq 0x51b0
leaq 0xd047(%rip), %rdi      # 0x1f3e0
callq 0x53a0
leaq 0xde00(%rip), %rbx      # 0x201a5
movl $0x8, %edi
callq 0x5170
movq %rbx, (%rax)
movq 0x18bf7(%rip), %rsi     # 0x2afb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x5440
movq %rax, %rbx
movq 0x98(%rsp), %rdi
jmp 0x12428
jmp 0x123e0
movq %rax, %rbx
cmpl $0x0, (%r14)
jne 0x12439
movl %ebp, (%r14)
jmp 0x12439
movq %rax, %rbx
cmpl $0x0, (%r14)
jne 0x12446
movl %ebp, (%r14)
jmp 0x12446
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
jmp 0x12428
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
jmp 0x12428
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
jmp 0x12428
jmp 0x1241d
jmp 0x12436
jmp 0x12436
jmp 0x12436
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
testq %rdi, %rdi
je 0x12439
callq 0x9f52
jmp 0x12439
jmp 0x12436
movq %rax, %rbx
leaq 0xf0(%rsp), %r12
jmp 0x12446
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
cmpq %r12, %rdi
je 0x12463
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x52b0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x1247f
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x52b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x1249b
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x52b0
movq 0x78(%rsp), %rdi
testq %rdi, %rdi
je 0x124aa
callq 0x9f52
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x124bc
callq 0x9f52
movq %rbx, %rdi
callq 0x5460