LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O3/TooruAkagi[P]GCIS_Index/gcis_nep_locate.cpp
// Function: qrmload(int, int, int*)
int qrmload(int c,int jo,int *anst){ //mの中に，english.001.2 の中からc文字をランダムに選択して保存する
    char chr;FILE *fp;
    long long int qsize = std::filesystem::file_size(qname); //qsizeには，ファイルのサイズが書かれているはず
    fp = fopen(qname, "r"); // open file or return null
    if(fp == NULL) {
        printf("%s such file doesn't exist!\n", qname);
        return -1;
    }
    int i = 0;
    jswt = 0;
    int rlen = rand()%(qsize-c);
    if(runmode==2){rlen = qstart;}
    anst[jo] = rlen;
    fseek(fp,rlen,SEEK_SET); //指定したシークまで移動する
    printf("\nquery%d : [%lld]rlen[%d]から[%d]文字(%lld)\n[",jo,qsize,rlen,c,qsize);
    if(CHECKFLAG == 1){checkpz[0]=rlen;checkpz[1]=c;}
    for(i=0;i<c;i++) { //c文字
        chr = fgetc(fp);
        m[i] = chr;
        if(chr<0){m[i]=chr + 256;}
        if(m[i]==10){jswt=1;}
        if(DEBUGFLAG==1){printf("%c",chr);}
    }
    printf("]");
    return c;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdx, %r12
movl %esi, %ebp
movl %edi, %ebx
leaq 0x5025(%rip), %rsi      # 0x9170
movq %rsp, %r14
movq %r14, %rdi
movl $0x2, %edx
callq 0x4f68
movq %r14, %rdi
callq 0x1170
movq %rax, %r15
movq %rsp, %rdi
callq 0x4f30
movq 0x4ffb(%rip), %rdi      # 0x9170
leaq 0x1ef7(%rip), %rsi      # 0x6073
callq 0x1130
testq %rax, %rax
je 0x4247
movq %rax, %r14
movl $0x0, 0x6571(%rip)      # 0xa708
callq 0x1060
cltq
movslq %ebx, %rcx
movq %r15, %rsi
subq %rcx, %rsi
cqto
idivq %rsi
cmpl $0x2, 0x4f7d(%rip)      # 0x9130
jne 0x41bb
movl 0x4f81(%rip), %edx      # 0x913c
movslq %ebp, %r13
movl %edx, (%r12,%r13,4)
movslq %edx, %r12
movq %r14, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x1120
leaq 0x1fa3(%rip), %rdi      # 0x617c
movl %r13d, %esi
movq %r15, %rdx
movl %r12d, %ecx
movl %ebx, %r8d
movq %r15, %r9
xorl %eax, %eax
callq 0x1030
testl %ebx, %ebx
jle 0x423b
movl %ebx, %r15d
xorl %r12d, %r12d
movq %r14, %rdi
callq 0x11b0
movsbl %al, %ecx
movq 0x6505(%rip), %rdx      # 0xa710
movl %ecx, (%rdx,%r12,4)
testl %ecx, %ecx
js 0x4229
shll $0x18, %eax
cmpl $0xa000000, %eax        # imm = 0xA000000
jne 0x4233
movl $0x1, 0x64e1(%rip)      # 0xa708
jmp 0x4233
addl $0x100, %ecx            # imm = 0x100
movl %ecx, (%rdx,%r12,4)
incq %r12
cmpq %r12, %r15
jne 0x41f9
movl $0x5d, %edi
callq 0x1180
jmp 0x4261
movq 0x4f22(%rip), %rsi      # 0x9170
leaq 0x1e20(%rip), %rdi      # 0x6075
xorl %eax, %eax
callq 0x1030
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movl %ebx, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq %rsp, %rdi
callq 0x4f30
movq %rbx, %rdi
callq 0x11c0
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/./banco_dados.cpp
// Function: BancoDados::salvarDados()
void BancoDados::salvarDados() {
    try {
        salvarFuncionarios();
        salvarAnimais();
    } catch(char const* msg) {
        cout << "Erro: " << msg << endl;
    }
    
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
callq 0x5fd8
movq %rbx, %rdi
callq 0x661a
popq %rbx
retq
movq %rax, %rbx
cmpl $0x1, %edx
jne 0x5fcf
movq %rbx, %rdi
callq 0x5130
movq %rax, %rbx
movq 0x25037(%rip), %rdi     # 0x2afd0
leaq 0x190c3(%rip), %rsi     # 0x1f063
movl $0x6, %edx
callq 0x5310
movq 0x2501f(%rip), %rdi     # 0x2afd0
movq %rbx, %rsi
callq 0x5290
movq %rax, %rdi
callq 0x5160
popq %rbx
jmp 0x5420
movq %rax, %rbx
callq 0x5420
movq %rbx, %rdi
callq 0x5460
nop
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/./banco_dados.cpp
// Function: BancoDados::lerDados()
void BancoDados::lerDados() {
    try {
        lerFuncionarios();
        lerAnimais();
    } catch(char const* msg) {
        cout << "Erro: " << msg << endl << "Caso os arquivos existam,"
         << endl << "Verifique a integridade deles na pasta " << diretorio << endl;
    }
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq 0x74e0
movq %rbx, %rdi
callq 0x7c84
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq %rax, %r14
cmpl $0x1, %edx
jne 0x74d8
movq %r14, %rdi
callq 0x5130
movq %rax, %r14
movq 0x23b82(%rip), %rdi     # 0x2afd0
leaq 0x17c0e(%rip), %rsi     # 0x1f063
movl $0x6, %edx
callq 0x5310
movq 0x23b6a(%rip), %rdi     # 0x2afd0
movq %r14, %rsi
callq 0x5290
movq %rax, %rdi
callq 0x5160
movq %rax, %r14
leaq 0x17cb4(%rip), %rsi     # 0x1f134
movl $0x19, %edx
movq %rax, %rdi
callq 0x5310
movq %r14, %rdi
callq 0x5160
movq %rax, %r14
leaq 0x17caf(%rip), %rsi     # 0x1f14e
movl $0x27, %edx
movq %rax, %rdi
callq 0x5310
movq 0x50(%rbx), %rsi
movq 0x58(%rbx), %rdx
movq %r14, %rdi
callq 0x5310
movq %rax, %rdi
callq 0x5160
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x5420
movq %rax, %r14
callq 0x5420
movq %r14, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/./petshop.cpp
// Function: Petshop::findVeterinario(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
shared_ptr<Veterinario> Petshop::findVeterinario(string nome) {
    for(auto& vet : this->veterinarios) {
        if(vet->getNome() == nome) {
            return vet;
        }
    }
    return nullptr;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, (%rsp)
movq (%rsi), %r13
movq 0x8(%rsi), %rbp
cmpq %rbp, %r13
je 0xd21b
movq %rdx, %r14
leaq 0x8(%rsp), %r15
movq (%r13), %rsi
movq %r15, %rdi
callq 0x14736
movq 0x10(%rsp), %rdx
cmpq 0x8(%r14), %rdx
jne 0xd1e9
movq 0x8(%rsp), %r12
testq %rdx, %rdx
je 0xd1f2
movq (%r14), %rsi
movq %r12, %rdi
callq 0x52c0
testl %eax, %eax
sete %bl
jmp 0xd1f4
movq 0x8(%rsp), %r12
xorl %ebx, %ebx
jmp 0xd1f4
movb $0x1, %bl
leaq 0x18(%rsp), %rax
cmpq %rax, %r12
je 0xd20e
movq 0x18(%rsp), %rsi
incq %rsi
movq %r12, %rdi
callq 0x52b0
testb %bl, %bl
jne 0xd234
addq $0x10, %r13
cmpq %rbp, %r13
jne 0xd1b6
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r13), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%r13), %rdx
movq %rdx, 0x8(%rax)
testq %rdx, %rdx
je 0xd225
movq 0x1dd75(%rip), %rcx     # 0x2afc8
cmpb $0x0, (%rcx)
je 0xd25d
incl 0x8(%rdx)
jmp 0xd225
lock
incl 0x8(%rdx)
jmp 0xd225
nop
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/./petshop.cpp
// Function: Petshop::findTratador(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
shared_ptr<Tratador> Petshop::findTratador(string nome) {
    for(auto& trata : this->tratadores) {
        if(trata->getNome() == nome) {
            return trata;
        }
    }
    return nullptr;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, (%rsp)
movq 0x18(%rsi), %r13
movq 0x20(%rsi), %rbp
cmpq %rbp, %r13
je 0xd5c2
movq %rdx, %r14
leaq 0x8(%rsp), %r15
movq (%r13), %rsi
movq %r15, %rdi
callq 0x14736
movq 0x10(%rsp), %rdx
cmpq 0x8(%r14), %rdx
jne 0xd590
movq 0x8(%rsp), %r12
testq %rdx, %rdx
je 0xd599
movq (%r14), %rsi
movq %r12, %rdi
callq 0x52c0
testl %eax, %eax
sete %bl
jmp 0xd59b
movq 0x8(%rsp), %r12
xorl %ebx, %ebx
jmp 0xd59b
movb $0x1, %bl
leaq 0x18(%rsp), %rax
cmpq %rax, %r12
je 0xd5b5
movq 0x18(%rsp), %rsi
incq %rsi
movq %r12, %rdi
callq 0x52b0
testb %bl, %bl
jne 0xd5db
addq $0x10, %r13
cmpq %rbp, %r13
jne 0xd55d
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r13), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%r13), %rdx
movq %rdx, 0x8(%rax)
testq %rdx, %rdx
je 0xd5cc
movq 0x1d9ce(%rip), %rcx     # 0x2afc8
cmpb $0x0, (%rcx)
je 0xd604
incl 0x8(%rdx)
jmp 0xd5cc
lock
incl 0x8(%rdx)
jmp 0xd5cc
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/./petshop.cpp
// Function: Petshop::findAnimal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
shared_ptr<Animal> Petshop::findAnimal(string nome, string especie) {
    for(auto& animal : this->animais) {
        if(animal->getNome() == nome && animal->getEspecie() == especie) {
            return animal;
        }
    }
    return nullptr;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rcx, 0x10(%rsp)
movq %rdi, 0x8(%rsp)
movq 0x30(%rsi), %r13
movq 0x38(%rsi), %rbx
cmpq %rbx, %r13
je 0xe765
movq %rdx, %r15
leaq 0x28(%rsp), %rbp
leaq 0x18(%rsp), %r12
movq (%r13), %rsi
movq %r12, %rdi
callq 0x1667a
movq 0x20(%rsp), %rdx
cmpq 0x8(%r15), %rdx
jne 0xe6cb
testq %rdx, %rdx
je 0xe6d0
movq (%r15), %rsi
movq 0x18(%rsp), %rdi
callq 0x52c0
testl %eax, %eax
je 0xe6d0
xorl %r14d, %r14d
jmp 0xe73c
movq (%r13), %rsi
leaq 0x38(%rsp), %rdi
callq 0x167fa
movq 0x40(%rsp), %rdx
movq 0x10(%rsp), %rax
cmpq 0x8(%rax), %rdx
jne 0xe710
movq 0x38(%rsp), %rbp
testq %rdx, %rdx
je 0xe71a
movq 0x10(%rsp), %rax
movq (%rax), %rsi
movq %rbp, %rdi
callq 0x52c0
testl %eax, %eax
sete %r14b
jmp 0xe71d
movq 0x38(%rsp), %rbp
xorl %r14d, %r14d
jmp 0xe71d
movb $0x1, %r14b
leaq 0x48(%rsp), %rax
cmpq %rax, %rbp
je 0xe737
movq 0x48(%rsp), %rsi
incq %rsi
movq %rbp, %rdi
callq 0x52b0
leaq 0x28(%rsp), %rbp
movq 0x18(%rsp), %rdi
cmpq %rbp, %rdi
je 0xe753
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x52b0
testb %r14b, %r14b
jne 0xe77f
addq $0x10, %r13
cmpq %rbx, %r13
jne 0xe69e
xorps %xmm0, %xmm0
movq 0x8(%rsp), %rax
movups %xmm0, (%rax)
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r13), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%r13), %rdx
movq %rdx, 0x8(%rax)
testq %rdx, %rdx
je 0xe770
movq 0x1c829(%rip), %rcx     # 0x2afc8
cmpb $0x0, (%rcx)
je 0xe7a9
incl 0x8(%rdx)
jmp 0xe770
lock
incl 0x8(%rdx)
jmp 0xe770
movq %rax, %rbx
movq 0x18(%rsp), %rdi
cmpq %rbp, %rdi
je 0xe7c9
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
nop
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/./petshop.cpp
// Function: Petshop::excluirAnimal(std::shared_ptr<Animal>)
shared_ptr<Animal> Petshop::excluirAnimal(shared_ptr<Animal> removido) {
    int index = 0;

    for(auto& animal : this->animais) {
        if(animal == removido) {
            shared_ptr<Animal> ptr_removido = animal;
            this->animais.erase(this->animais.begin() + index);
            Debug("Animal: " << ptr_removido->getNome() << " removido do registro.");
            return ptr_removido;
        }
        index++;
    }

    return nullptr;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x30(%rsi), %rax
movq 0x38(%rsi), %rdi
cmpq %rdi, %rax
je 0x124f9
addq $0x30, %rsi
movq (%rdx), %rdx
xorl %ecx, %ecx
movq %rax, %r8
movq (%r8), %r9
cmpq %rdx, %r9
je 0x12501
addq $0x10, %r8
addq $-0x10, %rcx
cmpq %rdi, %r8
jne 0x124e4
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
jmp 0x12537
movq %r9, (%rbx)
movq 0x8(%r8), %rdx
movq %rdx, 0x8(%rbx)
testq %rdx, %rdx
je 0x12529
movq 0x18ab0(%rip), %rdi     # 0x2afc8
cmpb $0x0, (%rdi)
je 0x12522
incl 0x8(%rdx)
jmp 0x12529
lock
incl 0x8(%rdx)
movq (%rsi), %rax
subq %rcx, %rax
movq %rsi, %rdi
movq %rax, %rsi
callq 0x14368
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq %rax, %r14
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x12553
callq 0x9f52
movq %r14, %rdi
callq 0x5460
nop
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/./petshop.cpp
// Function: Petshop::excluirVeterinario(std::shared_ptr<Veterinario>)
shared_ptr<Veterinario> Petshop::excluirVeterinario(shared_ptr<Veterinario> removido) {
    int index = 0;

    for(auto& vet : this->veterinarios) {
        if(vet == removido) {
            shared_ptr<Veterinario> ptr_removido = vet;
            this->veterinarios.erase(this->veterinarios.begin() + index);
            Debug("Veterinario: " << ptr_removido->getNome() << " removido do registro.");
            return ptr_removido;
        }
        index++;
    }

    return nullptr;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq (%rsi), %rax
movq 0x8(%rsi), %rdi
cmpq %rdi, %rax
je 0x12cb6
movq (%rdx), %rdx
xorl %ecx, %ecx
movq %rax, %r8
movq (%r8), %r9
cmpq %rdx, %r9
je 0x12cbe
addq $0x10, %r8
addq $-0x10, %rcx
cmpq %rdi, %r8
jne 0x12ca1
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
jmp 0x12cf4
movq %r9, (%rbx)
movq 0x8(%r8), %rdx
movq %rdx, 0x8(%rbx)
testq %rdx, %rdx
je 0x12ce6
movq 0x182f3(%rip), %rdi     # 0x2afc8
cmpb $0x0, (%rdi)
je 0x12cdf
incl 0x8(%rdx)
jmp 0x12ce6
lock
incl 0x8(%rdx)
movq (%rsi), %rax
subq %rcx, %rax
movq %rsi, %rdi
movq %rax, %rsi
callq 0x14238
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq %rax, %r14
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x12d10
callq 0x9f52
movq %r14, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/./petshop.cpp
// Function: Petshop::excluirTratador(std::shared_ptr<Tratador>)
shared_ptr<Tratador> Petshop::excluirTratador(shared_ptr<Tratador> removido) {
    int index = 0;

    for(auto& tratador : this->tratadores) {
        if(tratador == removido) {
            shared_ptr<Tratador> ptr_removido = tratador;
            this->tratadores.erase(this->tratadores.begin() + index);
            Debug("Tratador: " << ptr_removido->getNome() << " removido do registro.");
            return ptr_removido;
        }
        index++;
    }

    return nullptr;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x18(%rsi), %rax
movq 0x20(%rsi), %rdi
cmpq %rdi, %rax
je 0x13479
addq $0x18, %rsi
movq (%rdx), %rdx
xorl %ecx, %ecx
movq %rax, %r8
movq (%r8), %r9
cmpq %rdx, %r9
je 0x13481
addq $0x10, %r8
addq $-0x10, %rcx
cmpq %rdi, %r8
jne 0x13464
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
jmp 0x134b7
movq %r9, (%rbx)
movq 0x8(%r8), %rdx
movq %rdx, 0x8(%rbx)
testq %rdx, %rdx
je 0x134a9
movq 0x17b30(%rip), %rdi     # 0x2afc8
cmpb $0x0, (%rdi)
je 0x134a2
incl 0x8(%rdx)
jmp 0x134a9
lock
incl 0x8(%rdx)
movq (%rsi), %rax
subq %rcx, %rax
movq %rsi, %rdi
movq %rax, %rsi
callq 0x142d0
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq %rax, %r14
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x134d3
callq 0x9f52
movq %r14, %rdi
callq 0x5460
nop
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/funcionarios/pessoa.cpp
// Function: Pessoa::setNome()
bool Pessoa::setNome() {
    string s;
    cout << endl << "Nome: " << endl;
    getline(cin, s);

    if(s.find(';') != std::string::npos)
        throw "O caractere (Ponto e vírgula) é proibido.";
    if(s.size() == 0)
        return false;
    else
        this->nome = s;
    
    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x1684e(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x16833(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0xc645(%rip), %rsi      # 0x20df9
movl $0x6, %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 0x167f1(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x167d6(%rip), %rdi     # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq %rsp, %rdi
movl $0x3b, %esi
xorl %edx, %edx
callq 0x5350
cmpq $-0x1, %rax
jne 0x14866
movq 0x8(%rsp), %r14
testq %r14, %r14
je 0x14840
addq $0x8, %rbx
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x5190
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x14856
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
testq %r14, %r14
setne %al
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movl $0x8, %edi
callq 0x5170
leaq 0xc589(%rip), %rcx      # 0x20e00
movq %rcx, (%rax)
movq 0x1672f(%rip), %rsi     # 0x2afb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x5440
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x148a4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/funcionarios/pessoa.cpp
// Function: Pessoa::setTelefone()
bool Pessoa::setTelefone() {
    string s;
    cout << endl << "Telefone: " << endl;
    getline(cin, s);

    if(s.find(';') != std::string::npos)
        throw "O caractere (Ponto e vírgula) é proibido.";
    if(s.size() == 0)
        return false;
    else
        this->telefone = s;
    
    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x166ce(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x166b3(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0xc4f8(%rip), %rsi      # 0x20e2c
movl $0xa, %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 0x16671(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x16656(%rip), %rdi     # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq %rsp, %rdi
movl $0x3b, %esi
xorl %edx, %edx
callq 0x5350
cmpq $-0x1, %rax
jne 0x149e6
movq 0x8(%rsp), %r14
testq %r14, %r14
je 0x149c0
addq $0x28, %rbx
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x5190
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x149d6
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
testq %r14, %r14
setne %al
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movl $0x8, %edi
callq 0x5170
leaq 0xc409(%rip), %rcx      # 0x20e00
movq %rcx, (%rax)
movq 0x165af(%rip), %rsi     # 0x2afb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x5440
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x14a24
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/funcionarios/pessoa.cpp
// Function: Pessoa::setEmail()
bool Pessoa::setEmail() {
    string s;
    cout << endl << "E-mail: " << endl;
    getline(cin, s);

    if(s.find(';') != std::string::npos)
        throw "O caractere (Ponto e vírgula) é proibido.";
    if(s.size() == 0)
        return false;
    else
        this->email = s;
    
    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x1654e(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x16533(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0xc383(%rip), %rsi      # 0x20e37
movl $0x8, %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 0x164f1(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x164d6(%rip), %rdi     # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq %rsp, %rdi
movl $0x3b, %esi
xorl %edx, %edx
callq 0x5350
cmpq $-0x1, %rax
jne 0x14b66
movq 0x8(%rsp), %r14
testq %r14, %r14
je 0x14b40
addq $0x48, %rbx
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x5190
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x14b56
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
testq %r14, %r14
setne %al
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movl $0x8, %edi
callq 0x5170
leaq 0xc289(%rip), %rcx      # 0x20e00
movq %rcx, (%rax)
movq 0x1642f(%rip), %rsi     # 0x2afb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x5440
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x14ba4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/funcionarios/tratador.cpp
// Function: Tratador::setUniforme()
bool Tratador::setUniforme() {
    string s;
    cout << endl << "Nível de segurança do tratador: " << endl;
    cout << "V - verde" << endl;
    cout << "A - azul" << endl;
    cout << "M - vermelho" << endl;
    getline(cin, s);

    switch(toupper(s[0])) {
        case 'V':
            this->uniforme = Verde;
            break;
        case 'A':
            this->uniforme = Azul;
            break;
        case 'M':
            this->uniforme = Vermelho;
            break;
        default:
            return false;
            break;
    }

    return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x1614f(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x16134(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0xbf95(%rip), %rsi      # 0x20e48
movl $0x22, %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 0x160e2(%rip), %r14     # 0x2afd0
leaq 0xbf76(%rip), %rsi      # 0x20e6b
movl $0x9, %edx
movq %r14, %rdi
callq 0x5310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x160b0(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x1609c(%rip), %r14     # 0x2afd0
leaq 0xbf3a(%rip), %rsi      # 0x20e75
movl $0x8, %edx
movq %r14, %rdi
callq 0x5310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x1606a(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x16056(%rip), %r14     # 0x2afd0
leaq 0xbefd(%rip), %rsi      # 0x20e7e
movl $0xc, %edx
movq %r14, %rdi
callq 0x5310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x16024(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0x16020(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x16005(%rip), %rdi     # 0x2afe0
leaq 0x8(%rsp), %rsi
callq 0x5480
movq 0x8(%rsp), %r14
movsbl (%r14), %edi
callq 0x5490
cmpl $0x41, %eax
je 0x1500d
cmpl $0x4d, %eax
je 0x15006
xorl %ebp, %ebp
cmpl $0x56, %eax
je 0x15012
jmp 0x15018
movl $0x2, %ebp
jmp 0x15012
movl $0x1, %ebp
movl %ebp, 0x68(%rbx)
movb $0x1, %bpl
cmpq %r15, %r14
je 0x1502d
movq 0x18(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x52b0
movl %ebp, %eax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15054
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/funcionarios/veterinario.cpp
// Function: Veterinario::setCRMV()
bool Veterinario::setCRMV() {
    string s;
    cout << endl << "CRMV: " << endl;
    getline(cin, s);

    if(s.find(';') != std::string::npos)
        throw "O caractere (Ponto e vírgula) é proibido.";
    if(s.size() == 0)
        return false;
    else
        this->CRMV = s;
    
    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x155ea(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x155cf(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0xb629(%rip), %rsi      # 0x21041
movl $0x6, %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 0x1558d(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x15572(%rip), %rdi     # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq %rsp, %rdi
movl $0x3b, %esi
xorl %edx, %edx
callq 0x5350
cmpq $-0x1, %rax
jne 0x15aca
movq 0x8(%rsp), %r14
testq %r14, %r14
je 0x15aa4
addq $0x68, %rbx
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x5190
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x15aba
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
testq %r14, %r14
setne %al
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movl $0x8, %edi
callq 0x5170
leaq 0xb325(%rip), %rcx      # 0x20e00
movq %rcx, (%rax)
movq 0x154cb(%rip), %rsi     # 0x2afb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x5440
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x15b08
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/animal.cpp
// Function: Animal::setEspecie()
bool Animal::setEspecie() {
    string s;
    cout << endl << "Espécie: " << endl;
    getline(cin, s);
    
    if(s.find(';') != std::string::npos)
        throw "O caractere (Ponto e vírgula) é proibido.";
    if(s.size() == 0)
        return false;
    else
        this->especie = s;
    
    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x1478a(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x1476f(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0xa63f(%rip), %rsi      # 0x20eb7
movl $0xa, %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 0x1472d(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x14712(%rip), %rdi     # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq %rsp, %rdi
movl $0x3b, %esi
xorl %edx, %edx
callq 0x5350
cmpq $-0x1, %rax
jne 0x1692a
movq 0x8(%rsp), %r14
testq %r14, %r14
je 0x16904
addq $0x28, %rbx
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x5190
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1691a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
testq %r14, %r14
setne %al
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movl $0x8, %edi
callq 0x5170
leaq 0xa4c5(%rip), %rcx      # 0x20e00
movq %rcx, (%rax)
movq 0x1466b(%rip), %rsi     # 0x2afb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x5440
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x16968
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/animal.cpp
// Function: Animal::setAmeacadoPor()
bool Animal::setAmeacadoPor() {
    string s;
    cout << endl << "Animal ameaçado de extinção por?: " << endl;
    getline(cin, s);
    
    if(s.find(';') != std::string::npos)
        throw "O caractere (Ponto e vírgula) é proibido.";
    if(s.size() == 0)
        return false;
    else
        this->ameacadoPor = s;
    
    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x1460a(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x145ef(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0xa4ca(%rip), %rsi      # 0x20ec2
movl $0x25, %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 0x145ad(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x14592(%rip), %rdi     # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq %rsp, %rdi
movl $0x3b, %esi
xorl %edx, %edx
callq 0x5350
cmpq $-0x1, %rax
jne 0x16aaa
movq 0x8(%rsp), %r14
testq %r14, %r14
je 0x16a84
addq $0x48, %rbx
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x5190
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x16a9a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
testq %r14, %r14
setne %al
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movl $0x8, %edi
callq 0x5170
leaq 0xa345(%rip), %rcx      # 0x20e00
movq %rcx, (%rax)
movq 0x144eb(%rip), %rsi     # 0x2afb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x5440
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x16ae8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/animal.cpp
// Function: Animal::setPerigoso()
bool Animal::setPerigoso() {
    string s;
    cout << endl << "É perigoso? (S/N): ";
    getline(cin, s);
    
    if(toupper(s[0]) == 'S')
        this->perigoso = true;
    else if(toupper(s[0]) == 'N')
        this->perigoso = false;
    else
        return false;

    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x14422(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x14407(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
leaq 0xa30b(%rip), %rsi      # 0x20ee8
movl $0x14, %edx
movq %rax, %rdi
callq 0x5310
movq 0x143ef(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x143d4(%rip), %rdi     # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq (%rsp), %r14
movsbl (%r14), %edi
callq 0x5490
cmpl $0x4e, %eax
je 0x16c31
movb $0x1, %cl
cmpl $0x53, %eax
je 0x16c33
xorl %ebx, %ebx
jmp 0x16c3b
xorl %ecx, %ecx
movb %cl, 0x88(%rbx)
movb $0x1, %bl
cmpq %r15, %r14
je 0x16c50
movq 0x10(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x52b0
movl %ebx, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x16c75
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
nop
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/animal.cpp
// Function: Animal::getClassificacao[abi:cxx11](std::shared_ptr<Animal>, bool)
string Animal::getClassificacao(shared_ptr<Animal> animal, bool simplificado) {
    if(shared_ptr<Exotico> teste = dynamic_pointer_cast< Exotico >(animal)) {
        if(simplificado)
            return "E";
        else
            return "Silvestre Exótico";
    } if(shared_ptr<Nativo> teste = dynamic_pointer_cast< Nativo >(animal)) {
        if(simplificado)
            return "N";
        else
            return "Silvestre Nativo";
    } else {
        if(simplificado)
            return "D";
        else
            return "Doméstico";
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl %edx, %ebp
movq %rdi, %rbx
movq (%rsi), %r15
testq %r15, %r15
je 0x16d23
movq %rsi, %r14
leaq 0x131e0(%rip), %rsi     # 0x29e88
leaq 0x131f9(%rip), %rdx     # 0x29ea8
movq %r15, %rdi
movq $-0x2, %rcx
callq 0x5300
testq %rax, %rax
je 0x16ce2
movq 0x8(%r14), %r14
testq %r14, %r14
je 0x16d5f
movq 0x142f1(%rip), %rax     # 0x2afc8
cmpb $0x0, (%rax)
je 0x16d5a
incl 0x8(%r14)
jmp 0x16d5f
leaq 0x1319f(%rip), %rsi     # 0x29e88
leaq 0x131c8(%rip), %rdx     # 0x29eb8
movq %r15, %rdi
movq $-0x2, %rcx
callq 0x5300
testq %rax, %rax
je 0x16d23
movq 0x8(%r14), %r14
testq %r14, %r14
je 0x16da0
movq 0x142b0(%rip), %rax     # 0x2afc8
cmpb $0x0, (%rax)
je 0x16d9b
incl 0x8(%r14)
jmp 0x16da0
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
testb %bpl, %bpl
je 0x16d3f
leaq 0x9d6e(%rip), %rsi      # 0x20aa4
leaq 0x9d68(%rip), %rdx      # 0x20aa5
jmp 0x16d4d
leaq 0xa1db(%rip), %rsi      # 0x20f21
leaq 0xa1de(%rip), %rdx      # 0x20f2b
movq %rbx, %rdi
callq 0x9d84
jmp 0x16de7
lock
incl 0x8(%r14)
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
testb %bpl, %bpl
je 0x16d83
leaq 0xa426(%rip), %rsi      # 0x21198
leaq 0xa420(%rip), %rdx      # 0x21199
movq %rbx, %rdi
callq 0x9d84
jmp 0x16dda
leaq 0xa173(%rip), %rsi      # 0x20efd
leaq 0xa17e(%rip), %rdx      # 0x20f0f
movq %rbx, %rdi
callq 0x9d84
jmp 0x16dda
lock
incl 0x8(%r14)
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
testb %bpl, %bpl
je 0x16dc4
leaq 0xa3e0(%rip), %rsi      # 0x21193
leaq 0xa3da(%rip), %rdx      # 0x21194
movq %rbx, %rdi
callq 0x9d84
jmp 0x16dda
leaq 0xa145(%rip), %rsi      # 0x20f10
leaq 0xa14e(%rip), %rdx      # 0x20f20
movq %rbx, %rdi
callq 0x9d84
testq %r14, %r14
je 0x16de7
movq %r14, %rdi
callq 0x9f52
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x16dfb
jmp 0x16dfb
jmp 0x16dfb
movq %rax, %rbx
testq %r14, %r14
je 0x16e0b
movq %r14, %rdi
callq 0x9f52
movq %rbx, %rdi
callq 0x5460
nop
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/domestico.cpp
// Function: Domestico::setAdestrado()
bool Domestico::setAdestrado() {
    string s;
    cout << endl << "Animal é adestrado? (S/N): " << endl;
    getline(cin, s);

    if(toupper(s[0]) == 'S')
        this->adestrado = true;
    else if(toupper(s[0]) == 'N')
        this->adestrado = false;
    else
        return false;

    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x1242c(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x12411(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0x8584(%rip), %rsi      # 0x2115a
movl $0x1c, %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 0x123cf(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x123b4(%rip), %rdi     # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq (%rsp), %r14
movsbl (%r14), %edi
callq 0x5490
cmpl $0x4e, %eax
je 0x18c51
movb $0x1, %cl
cmpl $0x53, %eax
je 0x18c53
xorl %ebx, %ebx
jmp 0x18c58
xorl %ecx, %ecx
movb %cl, 0x8(%rbx)
movb $0x1, %bl
cmpq %r15, %r14
je 0x18c6d
movq 0x10(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x52b0
movl %ebx, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x18c92
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/exotico.cpp
// Function: Exotico::setLocal()
bool Exotico::setLocal() {
    string s;
    cout << endl << "Habitat do animal: " << endl;
    getline(cin, s);

    if(s.find(';') != std::string::npos)
        throw "O caractere (Ponto e vírgula) é proibido.";
    if(s.size() == 0)
        return false;
    else
        this->local = s;
    
    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x12290(%rip), %rdi     # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0x12275(%rip), %rdi     # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0x8405(%rip), %rsi      # 0x21177
movl $0x13, %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 0x12233(%rip), %rdi     # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0x12218(%rip), %rdi     # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq %rsp, %rdi
movl $0x3b, %esi
xorl %edx, %edx
callq 0x5350
cmpq $-0x1, %rax
jne 0x18e24
movq 0x8(%rsp), %r14
testq %r14, %r14
je 0x18dfe
addq $0x8, %rbx
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x5190
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x18e14
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
testq %r14, %r14
setne %al
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movl $0x8, %edi
callq 0x5170
leaq 0x7fcb(%rip), %rcx      # 0x20e00
movq %rcx, (%rax)
movq 0x12171(%rip), %rsi     # 0x2afb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x5440
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x18e62
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/nativo.cpp
// Function: Nativo::setLicenca()
bool Nativo::setLicenca() {
    string s;
    cout << endl << "Licença de transporte IBAMA: " << endl;
    getline(cin, s);

    if(s.find(';') != std::string::npos)
        throw "O caractere (Ponto e vírgula) é proibido.";
    if(s.size() == 0)
        return false;
    else
        this->licenca = s;
    
    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0xff92(%rip), %rdi      # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0xff77(%rip), %rdi      # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0x6748(%rip), %rsi      # 0x217b8
movl $0x1e, %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 0xff35(%rip), %rdi      # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0xff1a(%rip), %rdi      # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq %rsp, %rdi
movl $0x3b, %esi
xorl %edx, %edx
callq 0x5350
cmpq $-0x1, %rax
jne 0x1b122
movq 0x8(%rsp), %r14
testq %r14, %r14
je 0x1b0fc
addq $0x28, %rbx
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x5190
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1b112
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
testq %r14, %r14
setne %al
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movl $0x8, %edi
callq 0x5170
leaq 0x5ccd(%rip), %rcx      # 0x20e00
movq %rcx, (%rax)
movq 0xfe73(%rip), %rsi      # 0x2afb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x5440
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1b160
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/nativo.cpp
// Function: Nativo::setRegiao()
bool Nativo::setRegiao() {
    string s;
    cout << endl << "Região do animal: " << endl;
    getline(cin, s);

    if(s.find(';') != std::string::npos)
        throw "O caractere (Ponto e vírgula) é proibido.";
    if(s.size() == 0)
        return false;
    else
        this->regiao = s;
    
    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0xfe12(%rip), %rdi      # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0xfdf7(%rip), %rdi      # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0x65e7(%rip), %rsi      # 0x217d7
movl $0x13, %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 0xfdb5(%rip), %rdi      # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0xfd9a(%rip), %rdi      # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq %rsp, %rdi
movl $0x3b, %esi
xorl %edx, %edx
callq 0x5350
cmpq $-0x1, %rax
jne 0x1b2a2
movq 0x8(%rsp), %r14
testq %r14, %r14
je 0x1b27c
addq $0x8, %rbx
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x5190
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1b292
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
testq %r14, %r14
setne %al
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movl $0x8, %edi
callq 0x5170
leaq 0x5b4d(%rip), %rcx      # 0x20e00
movq %rcx, (%rax)
movq 0xfcf3(%rip), %rsi      # 0x2afb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x5440
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1b2e0
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/ave/ave.cpp
// Function: Ave::setVoa()
bool Ave::setVoa() {
    string s;
    cout << endl << "Ave voa? (S/N): " << endl;
    getline(cin, s);

    if(toupper(s[0]) == 'S')
        this->voa = true;
    else if(toupper(s[0]) == 'N')
        this->voa = false;
    else
        return false;

    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0xfa9e(%rip), %rdi      # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0xfa83(%rip), %rdi      # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0x6287(%rip), %rsi      # 0x217eb
movl $0x10, %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 0xfa41(%rip), %rdi      # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0xfa26(%rip), %rdi      # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq (%rsp), %r14
movsbl (%r14), %edi
callq 0x5490
cmpl $0x4e, %eax
je 0x1b5df
movb $0x1, %cl
cmpl $0x53, %eax
je 0x1b5e1
xorl %ebx, %ebx
jmp 0x1b5e9
xorl %ecx, %ecx
movb %cl, 0x89(%rbx)
movb $0x1, %bl
cmpq %r15, %r14
je 0x1b5fe
movq 0x10(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x52b0
movl %ebx, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1b623
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
nop
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/mamifero/mamifero.cpp
// Function: Mamifero::setGestacao()
bool Mamifero::setGestacao() {
    string s;
    cout << endl << "Mamífero possui gestação? (S/N): " << endl;
    getline(cin, s);

    if(toupper(s[0]) == 'S')
        this->gestacao = true;
    else if(toupper(s[0]) == 'N')
        this->gestacao = false;
    else
        return false;

    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0xee1a(%rip), %rdi      # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0xedff(%rip), %rdi      # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0x563b(%rip), %rsi      # 0x21823
movl $0x24, %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 0xedbd(%rip), %rdi      # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0xeda2(%rip), %rdi      # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq (%rsp), %r14
movsbl (%r14), %edi
callq 0x5490
cmpl $0x4e, %eax
je 0x1c263
movb $0x1, %cl
cmpl $0x53, %eax
je 0x1c265
xorl %ebx, %ebx
jmp 0x1c26d
xorl %ecx, %ecx
movb %cl, 0x89(%rbx)
movb $0x1, %bl
cmpq %r15, %r14
je 0x1c282
movq 0x10(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x52b0
movl %ebx, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1c2a7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
nop
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/reptil/reptil.cpp
// Function: Reptil::setPele()
bool Reptil::setPele() {
    string s;
    cout << endl << "Qual o tipo de pele do réptil? (S/N): " << endl;
    cout << "C - carapaça" << endl;
    cout << "E - escama" << endl;
    cout << "P - placa" << endl;
    getline(cin, s);

    switch(toupper(s[0])) {
        case 'C':
            this->pele = Carapaca;
            break;
        case 'E':
            this->pele = Escama;
            break;
        case 'P':
            this->pele = Placa;
            break;
        default:
            return false;
            break;
    }

    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0xe198(%rip), %rdi      # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0xe17d(%rip), %rdi      # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0x4a15(%rip), %rsi      # 0x2187f
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 0xe12b(%rip), %r14      # 0x2afd0
leaq 0x49fb(%rip), %rsi      # 0x218a7
movl $0xd, %edx
movq %r14, %rdi
callq 0x5310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0xe0f9(%rip), %rdi      # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0xe0e5(%rip), %r14      # 0x2afd0
leaq 0x49c3(%rip), %rsi      # 0x218b5
movl $0xa, %edx
movq %r14, %rdi
callq 0x5310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0xe0b3(%rip), %rdi      # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0xe09f(%rip), %r14      # 0x2afd0
leaq 0x4988(%rip), %rsi      # 0x218c0
movl $0x9, %edx
movq %r14, %rdi
callq 0x5310
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0xe06d(%rip), %rdi      # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq 0xe069(%rip), %rdi      # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0xe04e(%rip), %rdi      # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq (%rsp), %r14
movsbl (%r14), %edi
callq 0x5490
cmpl $0x43, %eax
je 0x1cfc1
cmpl $0x45, %eax
je 0x1cfbd
cmpl $0x50, %eax
jne 0x1cfd0
movl $0x1, %eax
jmp 0x1cfc6
xorl %eax, %eax
jmp 0x1cfc6
movl $0x2, %eax
movl %eax, 0x8c(%rbx)
movb $0x1, %bl
jmp 0x1cfd2
xorl %ebx, %ebx
cmpq %r15, %r14
je 0x1cfe7
movq 0x10(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x52b0
movl %ebx, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1d00c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
// File: /workspace/github_cpp_makefile_star2_O3/brashi[P]PetFera/src/animal/anfibio/anfibio.cpp
// Function: Anfibio::setCauda()
bool Anfibio::setCauda() {
    string s;
    cout << endl << "Anfíbio possui cauda? (S/N): " << endl;
    getline(cin, s);

    if(toupper(s[0]) == 'S')
        this->cauda = true;
    else if(toupper(s[0]) == 'N')
        this->cauda = false;
    else
        return false;

    return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0xd42c(%rip), %rdi      # 0x2afd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %esi
movq 0xd411(%rip), %rdi      # 0x2afd0
callq 0x5030
movq %rax, %rdi
callq 0x51c0
movq %rax, %r14
leaq 0x3d25(%rip), %rsi      # 0x218fb
movl $0x1e, %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 0xd3cf(%rip), %rdi      # 0x2afe0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x5280
movsbl %al, %edx
movq 0xd3b4(%rip), %rdi      # 0x2afe0
movq %rsp, %rsi
callq 0x5480
movq (%rsp), %r14
movsbl (%r14), %edi
callq 0x5490
cmpl $0x4e, %eax
je 0x1dc51
movb $0x1, %cl
cmpl $0x53, %eax
je 0x1dc53
xorl %ebx, %ebx
jmp 0x1dc5b
xorl %ecx, %ecx
movb %cl, 0x89(%rbx)
movb $0x1, %bl
cmpq %r15, %r14
je 0x1dc70
movq 0x10(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x52b0
movl %ebx, %eax
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x1dc95
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x52b0
movq %rbx, %rdi
callq 0x5460
nop