// File: /workspace/github_cpp_makefile_star2_O3/kiudee[P]VAHD-Projekt/./Subjects1-6.h
// Function: Relay::~Relay()
Relay::~Relay()
{
    _idLinks *idl;

    if (DEBUG) {
        std::cout << "-- Relay " << ID << " deleted.\n";
    }
    if (_oLink != NULL) {
        _oLink->_iLinks->remove(this);    // cut outgoing link
    }
    delete _oQueue;                  // delete remaining messages
    if (_iLinks != NULL) {
        _iLinks->halt();               // cut all incoming links
        delete _iLinks;
    }
    if (_home != NULL && _home->_Relays != NULL) {
        _home->_Relays->remove(this);
        _home->_activeRelays->remove(this);
    }
    while (_identities != NULL) {
        idl = _identities;
        if (_identities->id != NULL) {
            _identities->id->_source = NULL;
        }
        _identities = _identities->next;
        delete idl;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0xc17a(%rip), %rax      # 0x10c58
movq %rax, (%rdi)
movq 0x28(%rdi), %rax
testq %rax, %rax
je 0x4b59
movq 0x20(%rax), %r15
movq (%r15), %r14
testq %r14, %r14
je 0x4b59
cmpq %rbx, (%r14)
jne 0x4b1d
movq 0x8(%r14), %r12
movl $0x10, %esi
movq %r14, %rdi
callq 0x2170
movq %r12, %r14
testq %r12, %r12
jne 0x4af6
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
jmp 0x4b59
movq %r14, (%r15)
movq 0x8(%r14), %rdi
testq %rdi, %rdi
je 0x4b55
leaq 0x8(%r14), %rax
cmpq %rbx, (%rdi)
je 0x4b37
movq %rdi, %r14
jmp 0x4b48
movq 0x8(%rdi), %rcx
movq %rcx, (%rax)
movl $0x10, %esi
callq 0x2170
leaq 0x8(%r14), %rax
movq 0x8(%r14), %rdi
testq %rdi, %rdi
jne 0x4b2d
movq %r14, 0x8(%r15)
movq 0x38(%rbx), %r14
testq %r14, %r14
je 0x4b7d
movq (%r14), %rdi
testq %rdi, %rdi
je 0x4b7d
movq 0x30(%rdi), %rax
movq %rax, (%r14)
movl $0x38, %esi
callq 0x2170
jmp 0x4b62
movl $0x10, %esi
movq %r14, %rdi
callq 0x2170
movq 0x20(%rbx), %r14
testq %r14, %r14
je 0x4bd8
movq (%r14), %rdi
testq %rdi, %rdi
je 0x4bcb
movq %rdi, %rax
movq (%rax), %rcx
movq $0x0, 0x28(%rcx)
movq 0x8(%rax), %rax
testq %rax, %rax
jne 0x4b9e
movq 0x8(%rdi), %rax
movq %rax, (%r14)
movl $0x10, %esi
callq 0x2170
movq (%r14), %rdi
testq %rdi, %rdi
jne 0x4bb2
movl $0x10, %esi
movq %r14, %rdi
callq 0x2170
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x4cf9
movq 0x30(%rax), %r15
testq %r15, %r15
je 0x4cf9
movq (%r15), %r14
testq %r14, %r14
je 0x4c5d
cmpq %rbx, (%r14)
jne 0x4c21
movq 0x8(%r14), %r12
movl $0x10, %esi
movq %r14, %rdi
callq 0x2170
movq %r12, %r14
testq %r12, %r12
jne 0x4bfa
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
jmp 0x4c5d
movq %r14, (%r15)
movq 0x8(%r14), %rdi
testq %rdi, %rdi
je 0x4c59
leaq 0x8(%r14), %rax
cmpq %rbx, (%rdi)
je 0x4c3b
movq %rdi, %r14
jmp 0x4c4c
movq 0x8(%rdi), %rcx
movq %rcx, (%rax)
movl $0x10, %esi
callq 0x2170
leaq 0x8(%r14), %rax
movq 0x8(%r14), %rdi
testq %rdi, %rdi
jne 0x4c31
movq %r14, 0x8(%r15)
movq 0x18(%rbx), %rax
movq 0x38(%rax), %r15
movq (%r15), %r14
testq %r14, %r14
je 0x4cf9
cmpq %rbx, (%r14)
jne 0x4c98
movq 0x8(%r14), %r12
movl $0x10, %esi
movq %r14, %rdi
callq 0x2170
movq %r12, %r14
testq %r12, %r12
jne 0x4c71
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
jmp 0x4cf9
movq %r14, (%r15)
movq 0x8(%r14), %rdi
testq %rdi, %rdi
je 0x4cd0
leaq 0x8(%r14), %rax
cmpq %rbx, (%rdi)
je 0x4cb2
movq %rdi, %r14
jmp 0x4cc3
movq 0x8(%rdi), %rcx
movq %rcx, (%rax)
movl $0x10, %esi
callq 0x2170
leaq 0x8(%r14), %rax
movq 0x8(%r14), %rdi
testq %rdi, %rdi
jne 0x4ca8
movq %r14, 0x8(%r15)
jmp 0x4cf9
movq 0x10(%rdi), %rax
testq %rax, %rax
je 0x4ce7
movq $0x0, 0x10(%rax)
movq 0x8(%rdi), %rax
movq %rax, 0x40(%rbx)
movl $0x18, %esi
callq 0x2170
movq 0x40(%rbx), %rdi
testq %rdi, %rdi
jne 0x4cd6
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq