// File: /workspace/github_cpp_makefile_star2_O3/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
testq %rdi, %rdi
je 0xbc4a
callq 0x42a0
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
je 0xbc60
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xca4f
movq 0x38(%rbx), %rdi
testq %rdi, %rdi
je 0xbc72
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x40(%rbx), %rdi
testq %rdi, %rdi
je 0xbc80
callq 0x42a0
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0xbc96
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xca4f
movq 0x50(%rbx), %rdi
testq %rdi, %rdi
je 0xbca8
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x58(%rbx), %rdi
testq %rdi, %rdi
je 0xbcb6
callq 0x42a0
movq 0x60(%rbx), %rdi
testq %rdi, %rdi
je 0xbccc
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xca4f
movq 0x68(%rbx), %rdi
testq %rdi, %rdi
je 0xbcde
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x70(%rbx), %rdi
testq %rdi, %rdi
je 0xbcec
callq 0x42a0
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0xbd02
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xca4f
movq 0x80(%rbx), %rdi
testq %rdi, %rdi
je 0xbd17
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0x88(%rbx), %rdi
testq %rdi, %rdi
je 0xbd28
callq 0x42a0
movq 0x90(%rbx), %rdi
testq %rdi, %rdi
je 0xbd41
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xca4f
movq 0x98(%rbx), %rdi
testq %rdi, %rdi
je 0xbd56
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0xa0(%rbx), %rdi
testq %rdi, %rdi
je 0xbd67
callq 0x42a0
movq 0xa8(%rbx), %rdi
testq %rdi, %rdi
je 0xbd80
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xca4f
movq 0xb0(%rbx), %rdi
testq %rdi, %rdi
je 0xbd95
movsbl 0x1(%rbx), %esi
callq 0xa5dd
movq 0xb8(%rbx), %rdi
testq %rdi, %rdi
je 0xbda6
callq 0x42a0
movq 0xc0(%rbx), %rdi
testq %rdi, %rdi
je 0xbdbf
movsbl 0x2(%rbx), %esi
movsbl 0x1(%rbx), %edx
callq 0xca4f
movq 0xc8(%rbx), %rdi
testq %rdi, %rdi
je 0xbdd5
movsbl 0x1(%rbx), %esi
popq %rbx
jmp 0xa5dd
popq %rbx
retq
nop