// File: /workspace/github_cpp_makefile_star2_O2/myudelson[P]hmm-scalable/FitBitSlicedA.cpp
// Function: FitBitSlicedA::~FitBitSlicedA()
FitBitSlicedA::~FitBitSlicedA() {
//    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) free3D<NUMBER>(this->Am1, (NDAT)this->nZ, (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) free3D<NUMBER>(this->Am2, (NDAT)this->nZ, (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) free3D<NUMBER>(this->gradA, (NDAT)this->nZ, (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) free3D<NUMBER>(this->gradAm1, (NDAT)this->nZ, (NDAT)this->nS);
    if(this->gradBm1 != NULL) free2D<NUMBER>(this->gradBm1, (NDAT)this->nS);
    if(this->PIcopy != NULL) free(this->PIcopy);
    if(this->Acopy != NULL) free3D<NUMBER>(this->Acopy, (NDAT)this->nZ, (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) free3D<NUMBER>(this->dirA, (NDAT)this->nZ, (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) free3D<NUMBER>(this->dirAm1, (NDAT)this->nZ, (NDAT)this->nS);
    if(this->dirBm1 != NULL) free2D<NUMBER>(this->dirBm1, (NDAT)this->nS);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x28(%rdi), %rdi
callq 0x4290
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
je 0x94bd
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xa064
movq 0x38(%rbx), %rdi
testq %rdi, %rdi
je 0x94cf
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x40(%rbx), %rdi
callq 0x4290
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0x94ee
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xa064
movq 0x50(%rbx), %rdi
testq %rdi, %rdi
je 0x9500
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x58(%rbx), %rdi
callq 0x4290
movq 0x60(%rbx), %rdi
testq %rdi, %rdi
je 0x951f
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xa064
movq 0x68(%rbx), %rdi
testq %rdi, %rdi
je 0x9531
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x70(%rbx), %rdi
callq 0x4290
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0x9550
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xa064
movq 0x80(%rbx), %rdi
testq %rdi, %rdi
je 0x9565
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x88(%rbx), %rdi
callq 0x4290
movq 0x90(%rbx), %rdi
testq %rdi, %rdi
je 0x958a
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xa064
movq 0x98(%rbx), %rdi
testq %rdi, %rdi
je 0x959f
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0xa0(%rbx), %rdi
callq 0x4290
movq 0xa8(%rbx), %rdi
testq %rdi, %rdi
je 0x95c4
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xa064
movq 0xb0(%rbx), %rdi
testq %rdi, %rdi
je 0x95d9
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0xb8(%rbx), %rdi
callq 0x4290
movq 0xc0(%rbx), %rdi
testq %rdi, %rdi
je 0x95fe
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xa064
movq 0xc8(%rbx), %rdi
testq %rdi, %rdi
je 0x9614
movsbl 0x1(%rbx), %esi
popq %rbx
jmp 0x7f2c
popq %rbx
retq