Function at 0x140008960
Capabilities:
Load assembly via iassembly

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rbp, qword [sym.imp.libbareos.dll_debug_level]
cmp dword [rbp], 0xc7
mov rdi, rcx
jg 0x140008f28
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x1400089a2
mov edx, 0xffffffff
call sym.BareosSocket::signal_int_
mov rcx, qword [rdi + 0x38]
mov edx, 0xfffffffc
call sym.BareosSocket::signal_int_
mov rcx, qword [rdi + 0x40]
test rcx, rcx
je 0x1400089c8
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rcx, qword [rdi + 0x40]
test rcx, rcx
je 0x1400089c0
mov rax, qword [rcx]
call qword [rax + 0x18]
mov qword [rdi + 0x40], 0
mov rcx, qword [rdi + 0x48]
test rcx, rcx
je 0x1400089ee
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rcx, qword [rdi + 0x48]
test rcx, rcx
je 0x1400089e6
mov rax, qword [rcx]
call qword [rax + 0x18]
mov qword [rdi + 0x48], 0
mov rax, qword [rdi + 0x2d8]
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x140008a03
call sym.FreePoolMemory_char_
mov rcx, qword [rdi + 0x1b0]
test rcx, rcx
je 0x140008a1f
call sym.FreePoolMemory_char_
mov qword [rdi + 0x1b0], 0
mov rax, qword [rdi + 0x2d8]
mov rcx, qword [rax + 0x48]
test rcx, rcx
je 0x140008a3b
call sym.FreePoolMemory_char_
mov rax, qword [rdi + 0x2d8]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x140008a50
call sym.FreePoolMemory_char_
mov rax, qword [rdi + 0x2d8]
mov rcx, qword [rax + 0x58]
test rcx, rcx
je 0x140008a65
call sym.FreePoolMemory_char_
mov rax, qword [rdi + 0x2d8]
mov rcx, qword [rax + 0xd8]
test rcx, rcx
je 0x140008a88
call sym.libbareos::FreeBsr_storagedaemon::BootStrapRecord_
mov rax, qword [rdi + 0x2d8]
mov qword [rax + 0xd8], 0
mov rcx, qword [rax + 0xd0]
test rcx, rcx
je 0x140008aab
call sym.storagedaemon::FreeReadContext_storagedaemon::Read_Context_
mov rax, qword [rdi + 0x2d8]
mov qword [rax + 0xd0], 0
cmp qword [rdi + 0x238], 0
je 0x140008f10
mov rcx, rdi
call sym.CleanupCompression_JobControlRecord_
mov rcx, rdi
call sym.storagedaemon::FreeRestoreVolumeList_JobControlRecord_
mov rdx, qword [rdi + 0x1c0]
test rdx, rdx
je 0x140008af4
mov rcx, rdi
call sym.SecureErase_JobControlRecord__char_const_
mov rcx, qword [rdi + 0x1c0]
call sym.FreePoolMemory_char_
mov qword [rdi + 0x1c0], 0
mov rcx, qword [rdi + 0x2d8]
cmp qword [rcx], 0
je 0x140008ef8
lea rax, str.In_FreeJcr____but_still_attached_to_device_____n
lea rcx, str..._.._.._.._core_src_stored_job.cc
xor r9d, r9d
mov r8d, 3
mov qword [rsp + 0x20], rax
mov edx, 0x1a4
call sym.e_msg_char_const__int__int__int__char_const__::_
mov rcx, qword [rdi + 0x2d8]
add rcx, 0x10
call sym.pthread_cond_destroy
mov rcx, qword [rdi + 0x2d8]
mov rdx, qword [rcx + 0x38]
mov rax, qword [rcx + 0x30]
cmp rdx, rax
je 0x140009038
test rdx, rdx
je 0x140008b73
mov rcx, rdx
call sym.storagedaemon::FreeDeviceControlRecord_storagedaemon::DeviceControlRecord_
mov rcx, qword [rdi + 0x2d8]
mov qword [rcx + 0x38], 0
mov rax, qword [rcx + 0x30]
test rax, rax
je 0x140008b8f
mov rcx, rax
call sym.storagedaemon::FreeDeviceControlRecord_storagedaemon::DeviceControlRecord_
mov rcx, qword [rdi + 0x2d8]
mov qword [rcx + 0x30], 0
mov rsi, qword [rcx + 0xa0]
test rsi, rsi
je 0x140008bee
mov rcx, qword [rsi]
test rcx, rcx
je 0x140008bda
cmp byte [rsi + 0x18], 0
je 0x140008bd5
mov r12d, dword [rsi + 8]
test r12d, r12d
jle 0x140008bd5
xor ebx, ebx
nop dword [rax]
mov rcx, qword [rcx + rbx*8]
call sym.free
mov rcx, qword [rsi]
mov qword [rcx + rbx*8], 0
add rbx, 1
cmp dword [rsi + 8], ebx
jg 0x140008bb8
call sym.free
mov rcx, rsi
mov edx, 0x20
call sym.operator_delete_void__unsigned_long_long_
mov rcx, qword [rdi + 0x2d8]
mov rax, qword [rcx + 0xb0]
test rax, rax
je 0x140008cd6
mov ebx, dword [rax + 8]
mov dword [rax + 0x14], 1
test ebx, ebx
je 0x140008cbb
mov rax, qword [rax]
mov r12, qword [rax]
nop word cs:[rax + rax]
test r12, r12
je 0x140008cbb
mov rsi, qword [r12]
test rsi, rsi
je 0x140008c7f
mov rcx, qword [rsi]
test rcx, rcx
je 0x140008c72
cmp byte [rsi + 0x18], 0
je 0x140008c6d
mov r11d, dword [rsi + 8]
test r11d, r11d
jle 0x140008c6d
xor ebx, ebx
nop dword [rax + rax]
mov rcx, qword [rcx + rbx*8]
call sym.free
mov rcx, qword [rsi]
mov qword [rcx + rbx*8], 0
add rbx, 1
cmp dword [rsi + 8], ebx
jg 0x140008c50
call sym.free
mov edx, 0x20
mov rcx, rsi
call sym.operator_delete_void__unsigned_long_long_
mov edx, 0x210
mov rcx, r12
call sym.operator_delete_void__unsigned_long_long_
mov rcx, qword [rdi + 0x2d8]
mov rax, qword [rcx + 0xb0]
movsxd rdx, dword [rax + 0x14]
cmp edx, dword [rax + 8]
jge 0x140008e98
mov r8, qword [rax]
lea r9d, [rdx + 1]
mov dword [rax + 0x14], r9d
mov r12, qword [r8 + rdx*8]
jmp 0x140008c20
mov rbx, qword [rcx + 0xb0]
test rbx, rbx
jne 0x140008e9b
mov qword [rcx + 0xb0], 0
mov rax, qword [rcx + 0xa8]
test rax, rax
je 0x140008db6
mov r9d, dword [rax + 8]
mov dword [rax + 0x14], 1
test r9d, r9d
je 0x140008d9b
mov rax, qword [rax]
mov r12, qword [rax]
test r12, r12
je 0x140008d9b
mov rsi, qword [r12]
test rsi, rsi
je 0x140008d5f
mov rcx, qword [rsi]
test rcx, rcx
je 0x140008d52
cmp byte [rsi + 0x18], 0
je 0x140008d4d
mov r8d, dword [rsi + 8]
test r8d, r8d
jle 0x140008d4d
xor ebx, ebx
nop dword [rax + rax]
mov rcx, qword [rcx + rbx*8]
call sym.free
mov rcx, qword [rsi]
mov qword [rcx + rbx*8], 0
add rbx, 1
cmp dword [rsi + 8], ebx
jg 0x140008d30
call sym.free
mov edx, 0x20
mov rcx, rsi
call sym.operator_delete_void__unsigned_long_long_
mov edx, 0x210
mov rcx, r12
call sym.operator_delete_void__unsigned_long_long_
mov rcx, qword [rdi + 0x2d8]
mov rax, qword [rcx + 0xa8]
movsxd rdx, dword [rax + 0x14]
cmp edx, dword [rax + 8]
jge 0x140008e38
mov r8, qword [rax]
lea r9d, [rdx + 1]
mov dword [rax + 0x14], r9d
mov r12, qword [r8 + rdx*8]
jmp 0x140008d00
mov rbx, qword [rcx + 0xa8]
test rbx, rbx
jne 0x140008e3b
mov qword [rcx + 0xa8], 0
mov rcx, rdi
call sym.FreePlugins
mov eax, dword [rdi + 0x120]
test eax, eax
jne 0x140009000
mov rbx, qword [rdi + 0x2d8]
test rbx, rbx
je 0x140008e1d
lea rcx, [rbx + 0x28]
lea rsi, [rbx + 0x18]
call fcn.14001c8c8
mov rcx, rsi
call sym.pthread_mutex_lock
test eax, eax
jne 0x14000904e
mov rcx, rsi
call sym.pthread_mutex_unlock
mov rcx, rsi
call sym.pthread_mutex_destroy
mov edx, 0x118
mov rcx, rbx
call sym.operator_delete_void__unsigned_long_long_
mov qword [rdi + 0x2d8], 0
cmp dword [rbp], 0xc7
jg 0x140008fd0
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rbx, rax
mov rcx, qword [rbx]
test rcx, rcx
je 0x140008e7a
cmp byte [rbx + 0x18], 0
je 0x140008e75
mov edx, dword [rbx + 8]
test edx, edx
jle 0x140008e75
xor esi, esi
nop word [rax + rax]
mov rcx, qword [rcx + rsi*8]
call sym.free
mov rcx, qword [rbx]
mov qword [rcx + rsi*8], 0
add rsi, 1
cmp dword [rbx + 8], esi
jg 0x140008e58
call sym.free
mov rcx, rbx
mov edx, 0x20
call sym.operator_delete_void__unsigned_long_long_
mov rcx, qword [rdi + 0x2d8]
jmp 0x140008dab
mov rbx, rax
mov rcx, qword [rbx]
test rcx, rcx
je 0x140008eda
cmp byte [rbx + 0x18], 0
je 0x140008ed5
mov r10d, dword [rbx + 8]
test r10d, r10d
jle 0x140008ed5
xor esi, esi
nop dword [rax]
mov rcx, qword [rcx + rsi*8]
call sym.free
mov rcx, qword [rbx]
mov qword [rcx + rsi*8], 0
add rsi, 1
cmp dword [rbx + 8], esi
jg 0x140008eb8
call sym.free
mov rcx, rbx
mov edx, 0x20
call sym.operator_delete_void__unsigned_long_long_
mov rcx, qword [rdi + 0x2d8]
jmp 0x140008ccb
cmp qword [rcx + 8], 0
jne 0x140008b05
jmp 0x140008b32
cmp qword [rdi + 0x240], 0
jne 0x140008ab9
jmp 0x140008ac1
lea rbx, str..._.._.._.._core_src_stored_job.cc
mov r8d, 0xc8
mov edx, 0x16b
lea r9, str.Start_stored_FreeJcr_n
mov rcx, rbx
call sym.d_msg_char_const__int__int__char_const__::_
cmp dword [rbp], 0x31f
jle 0x140008981
mov qword [rsp + 0x28], rdi
mov eax, dword [rdi + 0x120]
mov rcx, rbx
lea r9, str.End_Job_JobId_u__p_n
mov r8d, 0x320
mov edx, 0x16c
mov dword [rsp + 0x20], eax
call sym.d_msg_char_const__int__int__char_const__::_
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x1400089a2
cmp dword [rbp], 0x31f
jle 0x14000898a
mov qword [rsp + 0x28], rdi
mov eax, dword [rdi + 0x120]
mov rcx, rbx
lea r9, str.Send_Terminate_jid_d__p_n
mov r8d, 0x320
mov edx, 0x16f
mov dword [rsp + 0x20], eax
call sym.d_msg_char_const__int__int__char_const__::_
mov rcx, qword [rdi + 0x38]
jmp 0x14000898a
lea r9, str.End_stored_FreeJcr_n
mov r8d, 0xc8
mov edx, 0x1db
lea rcx, str..._.._.._.._core_src_stored_job.cc
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp sym.d_msg_char_const__int__int__char_const__::_
mov rbx, qword [sym.imp.libbareossd.dll_storagedaemon::me]
mov rax, qword [rbx]
mov rcx, qword [rax + 0x248]
call sym.GetFirstPortHostOrder_dlist_IPADDR__
lea rdx, str.bareos_sd
mov r8d, eax
mov rax, qword [rbx]
mov rcx, qword [rax + 0x260]
call sym.WriteStateFile_char_const__char_const__int_
jmp 0x140008dcc
mov qword [rcx + 0x30], 0
test rdx, rdx
jne 0x140008b58
jmp 0x140008b8f
mov ecx, eax
call sym.std::__throw_system_error_int_
nop
nop word cs:[rax + rax]