// File: /workspace/github_cpp_makefile_star2_O3/myudelson[P]hmm-scalable/FitBit.cpp
// Function: FitBit::~FitBit()
FitBit::~FitBit() {
//    if(this->pi != NULL) free(this->PI); // these are usually linked
//    if(this->A != NULL) free2D<NUMBER>(this->A, this->nS); // these are usually linked
//    if(this->B != NULL) free2D<NUMBER>(this->B, this->nS); // these are usually linked
    if(this->PIm1 != NULL) free(this->PIm1);
    if(this->Am1 != NULL) free2D<NUMBER>(this->Am1, (NDAT)this->nS);
    if(this->Bm1 != NULL) free2D<NUMBER>(this->Bm1, (NDAT)this->nS);
    if(this->PIm2 != NULL) free(this->PIm2);
    if(this->Am2 != NULL) free2D<NUMBER>(this->Am2, (NDAT)this->nS);
    if(this->Bm2 != NULL) free2D<NUMBER>(this->Bm2, (NDAT)this->nS);
    if(this->gradPI != NULL) free(this->gradPI);
    if(this->gradA != NULL) free2D<NUMBER>(this->gradA, (NDAT)this->nS);
    if(this->gradB != NULL) free2D<NUMBER>(this->gradB, (NDAT)this->nS);
    if(this->gradPIm1 != NULL) free(this->gradPIm1);
    if(this->gradAm1 != NULL) free2D<NUMBER>(this->gradAm1, (NDAT)this->nS);
    if(this->gradBm1 != NULL) free2D<NUMBER>(this->gradBm1, (NDAT)this->nS);
    if(this->gradPIcopy != NULL) free(this->gradPIcopy);
    if(this->gradAcopy != NULL) free2D<NUMBER>(this->gradAcopy, (NDAT)this->nS);
    if(this->gradBcopy != NULL) free2D<NUMBER>(this->gradBcopy, (NDAT)this->nS);
    if(this->PIcopy != NULL) free(this->PIcopy);
    if(this->Acopy != NULL) free2D<NUMBER>(this->Acopy, (NDAT)this->nS);
    if(this->Bcopy != NULL) free2D<NUMBER>(this->Bcopy, (NDAT)this->nS);
    if(this->dirPI != NULL) free(this->dirPI);
    if(this->dirA != NULL) free2D<NUMBER>(this->dirA, (NDAT)this->nS);
    if(this->dirB != NULL) free2D<NUMBER>(this->dirB, (NDAT)this->nS);
    if(this->dirPIm1 != NULL) free(this->dirPIm1);
    if(this->dirAm1 != NULL) free2D<NUMBER>(this->dirAm1, (NDAT)this->nS);
    if(this->dirBm1 != NULL) free2D<NUMBER>(this->dirBm1, (NDAT)this->nS);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x28(%rdi), %rdi
testq %rdi, %rdi
je 0xa90c
callq 0x42a0
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
je 0xa91e
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x38(%rbx), %rdi
testq %rdi, %rdi
je 0xa930
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x40(%rbx), %rdi
testq %rdi, %rdi
je 0xa93e
callq 0x42a0
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0xa950
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x50(%rbx), %rdi
testq %rdi, %rdi
je 0xa962
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x58(%rbx), %rdi
testq %rdi, %rdi
je 0xa970
callq 0x42a0
movq 0x60(%rbx), %rdi
testq %rdi, %rdi
je 0xa982
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x68(%rbx), %rdi
testq %rdi, %rdi
je 0xa994
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x70(%rbx), %rdi
testq %rdi, %rdi
je 0xa9a2
callq 0x42a0
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0xa9b4
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x80(%rbx), %rdi
testq %rdi, %rdi
je 0xa9c9
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x88(%rbx), %rdi
testq %rdi, %rdi
je 0xa9da
callq 0x42a0
movq 0x90(%rbx), %rdi
testq %rdi, %rdi
je 0xa9ef
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x98(%rbx), %rdi
testq %rdi, %rdi
je 0xaa04
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0xa0(%rbx), %rdi
testq %rdi, %rdi
je 0xaa15
callq 0x42a0
movq 0xa8(%rbx), %rdi
testq %rdi, %rdi
je 0xaa2a
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0xb0(%rbx), %rdi
testq %rdi, %rdi
je 0xaa3f
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0xb8(%rbx), %rdi
testq %rdi, %rdi
je 0xaa50
callq 0x42a0
movq 0xc0(%rbx), %rdi
testq %rdi, %rdi
je 0xaa65
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0xc8(%rbx), %rdi
testq %rdi, %rdi
je 0xaa7a
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0xd0(%rbx), %rdi
testq %rdi, %rdi
je 0xaa8b
callq 0x42a0
movq 0xd8(%rbx), %rdi
testq %rdi, %rdi
je 0xaaa0
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0xe0(%rbx), %rdi
testq %rdi, %rdi
je 0xaab6
movsbl 0x1(%rbx), %esi
popq %rbx
jmp 0xa5dd
popq %rbx
retq