Function at 0x140099a20
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r14
lea rbp, [rsp - 0x420]
sub rsp, 0x520
mov rax, qword [0x140188050]
xor rax, rsp
mov qword [rbp + 0x410], rax
mov rsi, rdx
mov edi, ecx
xor edx, edx
lea rcx, [rsp + 0x70]
mov r8d, 0x118
call fcn.1400082a0
xor r12d, r12d
lea rcx, [rbp + 0x90]
xor edx, edx
mov r8d, 0x250
mov r14d, r12d
call fcn.1400082a0
xor eax, eax
mov dword [rsp + 0x40], r12d
mov qword [rsp + 0x44], rax
lea ebx, [r12 + 0x64]
mov qword [rsp + 0x4c], rax
call fcn.1400090e0
test eax, eax
jne 0x140099ae5
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x140099aca
cmp eax, 5
je 0x140099aca
mov r8d, eax
lea rdx, str.Aborting:_Unable_to_Obtain_Instance_Lock__Error__d_n
lea ecx, [rbx - 0x61]
call fcn.14000c900
mov eax, 0x3ec
jmp 0x140099f6f
lea rdx, str.Aborting:_Another_Instance_is_already_running_n
mov ecx, 3
call fcn.14000c900
mov eax, 0x3ec
jmp 0x140099f6f
lea r8, [rsp + 0x70]
mov rdx, rsi
mov ecx, edi
call fcn.14009a6d0
mov edi, eax
mov esi, 1
test eax, eax
jne 0x140099f00
cmp dword [rsp + 0x7c], r12d
je 0x140099ba9
lea rax, [rbp + 0x90]
mov dword [rsp + 0x30], 0x4001c
mov qword [rsp + 0x28], rax
lea rdx, str..pipe14579667_532A_42C2_9200_FD0544E09B90
lea rax, [0x140009a30]
mov r9d, esi
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x90]
call fcn.140006200
test eax, eax
jne 0x140099b5b
mov edi, 0x3eb
mov dword [0x140189564], esi
jmp 0x140099f35
lea rcx, [rbp + 0x90]
call fcn.140005220
test eax, eax
jne 0x140099b9b
nop dword [rax + rax]
mov eax, ebx
dec ebx
test eax, eax
jle 0x140099b93
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rcx, [rbp + 0x90]
call fcn.140005220
test eax, eax
je 0x140099b70
test ebx, ebx
jle 0x140099f00
lea rax, [rbp + 0x90]
mov qword [0x14019f360], rax
call fcn.140006ea0
mov edi, eax
test eax, eax
jne 0x140099f00
mov qword [rsp + 0x28], r12
lea r8, [0x1400991b0]
xor r9d, r9d
mov dword [rsp + 0x20], r12d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov r14, rax
test rax, rax
jne 0x140099bfd
lea rdx, str.Unable_to_create_worker_thread._n
lea ecx, [rdi + 3]
call fcn.14000c900
mov edi, 0x3eb
mov dword [0x140189564], esi
jmp 0x140099f35
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [rsp + 0x7c], r12d
je 0x140099c71
xor eax, eax
mov word [rbp + 0x2e0], r12w
xor r8d, r8d
mov qword [rbp + 0x2e2], rax
lea rcx, [rbp + 0x2e0]
mov qword [rbp + 0x2ea], rax
mov qword [rbp + 0x2f2], rax
lea edx, [rax + 5]
mov word [rbp + 0x2fa], ax
call fcn.140005900
mov r8d, 0x1c
lea rdx, [rbp + 0x2e0]
lea rcx, [rbp + 0x90]
call fcn.14000d000
or edx, 0xffffffff
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x140099f00
mov eax, dword [0x140189568]
test eax, eax
jne 0x140099d02
cmp dword [0x14019eefc], r12d
je 0x140099d02
cmp byte [rbp - 0x80], r12b
je 0x140099d02
mov edx, 0x101
lea rcx, [rbp - 0x80]
call fcn.14000d820
lea r8, [rbp - 0x80]
lea rdx, [0x14013f1e8]
lea rcx, [rsp + 0x58]
call fcn.140002dd0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x50], eax
cmp qword [rsp + 0x44], r12
je 0x140099ce0
lea rcx, [rsp + 0x40]
call fcn.140006610
mov rcx, qword [rsp + 0x44]
test rcx, rcx
je 0x140099ce0
call fcn.140006db0
lea rcx, [rbp - 0x80]
call fcn.140003380
call fcn.14009a8a0
mov eax, dword [0x140189568]
cmp dword [rsp + 0x78], r12d
cmovne eax, esi
mov dword [0x140189568], eax
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x550], r15
test rcx, rcx
je 0x140099e16
test eax, eax
jne 0x140099ef8
movabs r15, 0x100000601
nop word [rax + rax]
mov r9d, 0x101
lea r8, [rbp + 0x300]
lea rdx, str.____n_s
call fcn.140003c60
cmp eax, esi
jne 0x140099e10
mov edx, 0x101
lea rcx, [rbp + 0x300]
call fcn.14000d820
mov ebx, r12d
lea ecx, [rax + 1]
cmp ecx, 4
jb 0x140099d9d
mov r8d, 3
lea rdx, [0x1401459dc]
lea rcx, [rbp + 0x300]
call fcn.140003280
test eax, eax
jne 0x140099d9d
movzx eax, byte [rbp + 0x303]
cmp al, 0x20
ja 0x140099d9d
bt r15, rax
jae 0x140099d9d
mov ebx, esi
test ebx, ebx
jne 0x140099df9
lea r8, [rbp + 0x300]
lea rdx, [0x14013f1e8]
lea rcx, [rsp + 0x58]
call fcn.140002dd0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x50], eax
cmp qword [rsp + 0x44], r12
je 0x140099de8
lea rcx, [rsp + 0x40]
call fcn.140006610
mov rcx, qword [rsp + 0x44]
test rcx, rcx
je 0x140099de8
call fcn.140006db0
lea rcx, [rbp + 0x300]
call fcn.140003380
call fcn.14009a8a0
cmp dword [0x140189568], r12d
jne 0x140099ef8
mov rcx, qword [rsp + 0x70]
jmp 0x140099d30
mov eax, dword [0x140189568]
test eax, eax
jne 0x140099ef8
nop
cmp dword [0x14019eefc], r12d
je 0x140099ee1
lea rdx, [0x140189770]
lea rcx, [rbp + 0x2e0]
call fcn.1400014b0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x58], xmm0
mov rbx, qword [rsp + 0x5c]
test rbx, rbx
je 0x140099e67
mov rdx, rbx
mov ecx, 3
call fcn.14000c900
mov rcx, rbx
call fcn.140006db0
xor ecx, ecx
call fcn.140003390
mov r8, rax
lea rcx, [rbp + 0x300]
mov edx, 0x100
call fcn.14000be80
test rax, rax
je 0x140099ef8
mov edx, 0x100
lea rcx, [rbp + 0x300]
call fcn.14000d820
lea r8, [rbp + 0x300]
mov ecx, 2
lea rdx, [0x140143070]
call fcn.14000c900
mov edx, 0x101
lea rcx, [rbp + 0x300]
call fcn.14000d820
lea rcx, [rbp + 0x300]
call fcn.140003380
call fcn.14009a8a0
cmp dword [0x140189568], r12d
je 0x140099e20
jmp 0x140099ef8
lea rdx, str.Exiting..._n
mov ecx, 3
call fcn.14000c900
mov dword [0x140189568], esi
mov r15, qword [rsp + 0x550]
mov dword [0x140189564], esi
test r14, r14
je 0x140099f35
lea rdx, str.Waiting_For_EVENT_Thread_To_Exit..._n
lea rcx, [rbp + 0x90]
call fcn.140009610
mov edx, 0x1388
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rbp + 0x90]
call fcn.140009d20
lea rcx, [rbp + 0x90]
mov qword [0x14019f360], r12
call fcn.1400061a0
call fcn.14000e8d0
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x140099f68
call fcn.140009ff0
call fcn.140004b60
mov eax, edi
mov rcx, qword [rbp + 0x410]
xor rcx, rsp
call fcn.14000d260
mov rbx, qword [rsp + 0x560]
add rsp, 0x520
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret