// File: /workspace/github_cpp_makefile_star2_O1/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 0xa904
callq 0x42a0
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
je 0xa916
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0x38(%rbx), %rdi
testq %rdi, %rdi
je 0xa928
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0x40(%rbx), %rdi
testq %rdi, %rdi
je 0xa936
callq 0x42a0
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0xa948
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0x50(%rbx), %rdi
testq %rdi, %rdi
je 0xa95a
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0x58(%rbx), %rdi
testq %rdi, %rdi
je 0xa968
callq 0x42a0
movq 0x60(%rbx), %rdi
testq %rdi, %rdi
je 0xa97a
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0x68(%rbx), %rdi
testq %rdi, %rdi
je 0xa98c
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0x70(%rbx), %rdi
testq %rdi, %rdi
je 0xa99a
callq 0x42a0
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0xa9ac
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0x80(%rbx), %rdi
testq %rdi, %rdi
je 0xa9c1
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0x88(%rbx), %rdi
testq %rdi, %rdi
je 0xa9d2
callq 0x42a0
movq 0x90(%rbx), %rdi
testq %rdi, %rdi
je 0xa9e7
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0x98(%rbx), %rdi
testq %rdi, %rdi
je 0xa9fc
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0xa0(%rbx), %rdi
testq %rdi, %rdi
je 0xaa0d
callq 0x42a0
movq 0xa8(%rbx), %rdi
testq %rdi, %rdi
je 0xaa22
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0xb0(%rbx), %rdi
testq %rdi, %rdi
je 0xaa37
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0xb8(%rbx), %rdi
testq %rdi, %rdi
je 0xaa48
callq 0x42a0
movq 0xc0(%rbx), %rdi
testq %rdi, %rdi
je 0xaa5d
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0xc8(%rbx), %rdi
testq %rdi, %rdi
je 0xaa72
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0xd0(%rbx), %rdi
testq %rdi, %rdi
je 0xaa83
callq 0x42a0
movq 0xd8(%rbx), %rdi
testq %rdi, %rdi
je 0xaa98
movsbl 0x1(%rbx), %esi
callq 0xa5e0
movq 0xe0(%rbx), %rdi
testq %rdi, %rdi
je 0xaaae
movsbl 0x1(%rbx), %esi
popq %rbx
jmp 0xa5e0
popq %rbx
retq