// File: /workspace/github_cpp_makefile_star2_O3/kiudee[P]VAHD-Projekt/./Subjects1-6.h
// Function: Subject::~Subject()
Subject::~Subject()
{
    _rLinks *rl;
    _sLinks *sl;

    if (DEBUG) {
        std::cout << "-- Subject " << _debugID << " deleted.\n";
    }
    if (_child != NULL) { // relay subject?
        delete _child;
        if (_parent != NULL && _parent->_Subjects != NULL) {
            _parent->_Subjects->remove(this);
            _parent->_activeSubjects->remove(this);
        }
    } else { // bad relay subject or standard subject
        if (_Relays != NULL) {        // standard subject
            rl = _Relays;               // necessary to avoid self-removal of
            _Relays = NULL;             // relay points from _Relays
            rl->deleteRelays();         // delete relays (including _sink and parent)
            delete rl;                  // delete list of relays
            delete _activeRelays;
            sl = _Subjects;             // dito
            _Subjects = NULL;
            sl->deleteSubjects();       // delete subjects
            delete sl;                  // delete list of subjects
            delete _activeSubjects;
        }
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0xbe1a(%rip), %rax      # 0x10bd8
movq %rax, (%rdi)
movq 0x18(%rdi), %r14
testq %r14, %r14
je 0x4e33
movq %r14, %rdi
callq 0x4dac
movl $0x60, %esi
movq %r14, %rdi
callq 0x2170
movq 0x10(%rbx), %rax
testq %rax, %rax
je 0x4ff4
movq 0x40(%rax), %r15
testq %r15, %r15
je 0x4ff4
movq (%r15), %r14
testq %r14, %r14
je 0x4f81
cmpq %rbx, (%r14)
jne 0x4f45
movq 0x8(%r14), %r12
movl $0x10, %esi
movq %r14, %rdi
callq 0x2170
movq %r12, %r14
testq %r12, %r12
jne 0x4e05
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
jmp 0x4f81
movq 0x30(%rbx), %r14
testq %r14, %r14
je 0x4ff4
movq $0x0, 0x30(%rbx)
movq (%r14), %r15
testq %r15, %r15
je 0x4e7d
movq (%r15), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movq 0x8(%r15), %r15
testq %r15, %r15
jne 0x4e50
jmp 0x4e75
movq 0x8(%rdi), %rax
movq %rax, (%r14)
movl $0x10, %esi
callq 0x2170
movq (%r14), %rdi
testq %rdi, %rdi
jne 0x4e64
movl $0x10, %esi
movq %r14, %rdi
callq 0x2170
movq 0x38(%rbx), %r14
testq %r14, %r14
je 0x4eae
movq (%r14), %rdi
testq %rdi, %rdi
je 0x4eae
movq 0x8(%rdi), %rax
movq %rax, (%r14)
movl $0x10, %esi
callq 0x2170
jmp 0x4e93
movl $0x10, %esi
movq %r14, %rdi
callq 0x2170
movq 0x40(%rbx), %r14
movq $0x0, 0x40(%rbx)
movq (%r14), %r15
testq %r15, %r15
je 0x4efc
movq (%r15), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
movq 0x8(%r15), %r15
testq %r15, %r15
jne 0x4ecf
jmp 0x4ef4
movq 0x8(%rdi), %rax
movq %rax, (%r14)
movl $0x10, %esi
callq 0x2170
movq (%r14), %rdi
testq %rdi, %rdi
jne 0x4ee3
movl $0x10, %esi
movq %r14, %rdi
callq 0x2170
movq 0x48(%rbx), %rbx
testq %rbx, %rbx
je 0x4f2d
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x4f2d
movq 0x8(%rdi), %rax
movq %rax, (%rbx)
movl $0x10, %esi
callq 0x2170
jmp 0x4f12
movl $0x10, %esi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x2170
movq %r14, (%r15)
movq 0x8(%r14), %rdi
testq %rdi, %rdi
je 0x4f7d
leaq 0x8(%r14), %rax
cmpq %rbx, (%rdi)
je 0x4f5f
movq %rdi, %r14
jmp 0x4f70
movq 0x8(%rdi), %rcx
movq %rcx, (%rax)
movl $0x10, %esi
callq 0x2170
leaq 0x8(%r14), %rax
movq 0x8(%r14), %rdi
testq %rdi, %rdi
jne 0x4f55
movq %r14, 0x8(%r15)
movq 0x10(%rbx), %rax
movq 0x48(%rax), %r15
movq (%r15), %r14
testq %r14, %r14
je 0x4ff4
cmpq %rbx, (%r14)
jne 0x4fb8
movq 0x8(%r14), %r12
movl $0x10, %esi
movq %r14, %rdi
callq 0x2170
movq %r12, %r14
testq %r12, %r12
jne 0x4f91
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
jmp 0x4ff4
movq %r14, (%r15)
movq 0x8(%r14), %rdi
testq %rdi, %rdi
je 0x4ff0
leaq 0x8(%r14), %rax
cmpq %rbx, (%rdi)
je 0x4fd2
movq %rdi, %r14
jmp 0x4fe3
movq 0x8(%rdi), %rcx
movq %rcx, (%rax)
movl $0x10, %esi
callq 0x2170
leaq 0x8(%r14), %rax
movq 0x8(%r14), %rdi
testq %rdi, %rdi
jne 0x4fc8
movq %r14, 0x8(%r15)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x5002
movq %rax, %rdi
callq 0x4071