Function at 0x14001c220
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
cmp qword [rcx + 0x28], 0
mov rbx, rcx
je 0x14001c3c0
cmp qword [rcx + 0x30], 0
je 0x14001c3c0
cmp dword [rcx + 0x18], 0
jne 0x14001c3c0
mov rdi, qword [rcx + 0x68]
cmp qword [rdi + 0x10], 0
jne 0x14001c3c0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
lea rcx, [rdi + 0x28]
mov qword [rdi + 0x18], rax
xor esi, esi
mov rax, rcx
mov qword [rcx + 0x10], rsi
cmp qword [rcx + 0x18], 0xf
jbe 0x14001c28c
mov rax, qword [rcx]
mov r8d, 0x1c
mov byte [rax], sil
lea rdx, str.communications_worker_thread
call fcn.1400067d0
mov rcx, rdi
call fcn.14001bb60
mov rcx, qword [rdi + 0x10]
mov byte [rdi + 0x48], sil
test rcx, rcx
je 0x14001c2c0
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0x10], rsi
lea rax, [rdi + 0x20]
mov byte [rdi + 8], sil
mov qword [rsp + 0x28], rax
lea r8, [0x14001bd00]
mov r9, rdi
mov dword [rsp + 0x20], esi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rdi + 0x10], rax
test rax, rax
je 0x14001c3c0
mov rcx, qword [rbx + 0x28]
call fcn.14001dba0
test al, al
je 0x14001c3c0
mov dword [rbx + 0x18], 1
cmp byte [rbx + 0x1c], sil
je 0x14001c3ad
lea rcx, [rbx + 0x38]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, 0x18
call fcn.14001e160
lea rcx, [rbx + 0x10]
mov qword [rsp + 0x50], rax
lea r8, vtable.libowobs::TimerQueueTimer.0
mov qword [rax], r8
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rsi
mov rcx, qword [rbx + 0x60]
mov qword [rbx + 0x60], rax
test rcx, rcx
je 0x14001c35a
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov r9, qword [rbx + 0x60]
cmp qword [r9 + 0x10], rsi
lea rcx, [r9 + 0x10]
jne 0x14001c391
cmp qword [r9 + 8], rsi
je 0x14001c391
mov dword [rsp + 0x30], esi
lea r8, [0x14001b750]
mov dword [rsp + 0x28], 0x2710
xor edx, edx
mov dword [rsp + 0x20], 0x2710
call qword [sym.imp.KERNEL32.dll_CreateTimerQueueTimer]
lea rcx, [rbx + 0x38]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, 1
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
mov rcx, rbx
call fcn.14001c950
test al, al
jne 0x14001c3d2
mov dword [rbx + 0x18], 3
xor al, al
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
lea rcx, [rbx + 0x38]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, 0x18
call fcn.14001e160
lea rcx, [rbx + 0x10]
mov qword [rsp + 0x50], rax
lea r8, vtable.libowobs::TimerQueueTimer.0
mov qword [rax], r8
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rsi
mov rcx, qword [rbx + 0x60]
mov qword [rbx + 0x60], rax
test rcx, rcx
je 0x14001c418
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov r9, qword [rbx + 0x60]
cmp qword [r9 + 0x10], rsi
lea rcx, [r9 + 0x10]
jne 0x14001c44f
cmp qword [r9 + 8], rsi
je 0x14001c44f
mov dword [rsp + 0x30], esi
lea r8, [0x14001b750]
mov dword [rsp + 0x28], 0x2710
xor edx, edx
mov dword [rsp + 0x20], 0x2710
call qword [sym.imp.KERNEL32.dll_CreateTimerQueueTimer]
lea rcx, [rbx + 0x38]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rbx, qword [rsp + 0x58]
mov al, 1
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret