Function at 0x14001f27c
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
and qword [rsp + 0x40], 0
mov edi, r8d
mov rbx, rdx
test r9, r9
je 0x14001f2ae
mov rax, qword [r9]
mov qword [rsp + 0x38], rax
jmp 0x14001f2b4
and qword [rsp + 0x38], 0
test r9, r9
je 0x14001f2bf
mov rax, qword [r9 + 8]
jmp 0x14001f2c1
xor eax, eax
mov rbp, rax
movzx esi, ax
lea rax, [r9 + 0x10]
lea r14, [rsp + 0x40]
shr rbp, 0x10
test r9, r9
cmovne r14, rax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r13b, bpl
mov r15d, eax
and r13b, 2
mov eax, 1
add r15, rbx
cmp rbx, 0x4e20
jl 0x14001f308
mov cl, al
call fcn.14005b15c
mov eax, 1
test r13b, r13b
je 0x14001f47b
mov ebx, 0x989680
movzx ebp, bp
mov qword [rsp + 0xd8], 0
and ebp, eax
je 0x14001f3fc
lea rcx, [rsp + 0x30]
mov edx, 0x30
call fcn.140061298
mov rcx, qword [rsp + 0x30]
call fcn.140058cec
mov r12, qword [rsp + 0x30]
movsx rax, r13b
and qword [r12], 0
or rax, 5
lea r8, [0x14005fb50]
mov qword [r12 + 0x20], rax
lea rax, [0x1401309e8]
mov r9, r12
mov qword [rsp + 0x28], rax
mov eax, 0x10000
xor ecx, ecx
mov rdx, rax
mov qword [r12 + 8], r14
mov qword [r12 + 0x10], rsi
mov qword [r12 + 0x18], r15
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rsp + 0xd8], rax
test rax, rax
jne 0x14001f3df
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rax, [0x1401309e8]
mov edx, 0x10000
mov qword [rsp + 0x28], rax
lea r8, [0x14005fb50]
mov r9, r12
xor ecx, ecx
mov dword [rsp + 0x20], edx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rsp + 0xd8], rax
test rax, rax
je 0x14001f3f2
and qword [rsp + 0x30], 0
xor ebp, ebp
lea r14, [rsp + 0xd8]
lea esi, [rbp + 1]
lea rcx, [rsp + 0x30]
call fcn.140058d88
and dword [rsp + 0xc8], 0
test ebp, ebp
je 0x14001f40e
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r12, qword [rsp + 0x38]
mov ecx, 0x64
mov edx, 0x3e8
test r13b, r13b
jne 0x14001f447
test edi, edi
jg 0x14001f447
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rbx, r15
mov r11d, eax
sub rbx, r11
test ebx, ebx
jle 0x14001f5ad
mov ecx, 0x64
mov edx, 0x3e8
mov al, byte [0x14012e25f]
test al, al
jle 0x14001f5ad
test rbx, rbx
jle 0x14001f56d
mov r9d, ebx
test ebp, ebp
je 0x14001f49b
cmp ebx, ecx
mov r8d, ebp
mov rdx, r14
cmovg r9d, ecx
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
jmp 0x14001f4bd
test rbx, rbx
jg 0x14001f316
test edi, edi
jg 0x14001f316
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
jmp 0x14001f5ea
cmp ebx, ecx
mov dword [rsp + 0x20], 0x4ff
cmovg r9d, ecx
cmp ebx, edx
mov ecx, esi
cmovg r9d, edx
xor r8d, r8d
mov rdx, r14
call qword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
mov dword [rsp + 0xc8], eax
cmp eax, 0xffffffff
jne 0x14001f4e2
test rsi, rsi
jne 0x14001f59e
lea ecx, [rsi + 1]
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [rsp + 0xc8]
cmp eax, esi
jae 0x14001f56d
mov rcx, qword [rsp + 0xd8]
test rcx, rcx
je 0x14001f5e8
lea rdx, [rsp + 0xc8]
call qword [sym.imp.KERNEL32.dll_GetExitCodeThread]
mov eax, dword [rsp + 0xc8]
jmp 0x14001f5ce
test r13b, r13b
jne 0x14001f531
test edi, edi
jg 0x14001f531
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rbx, r15
mov r11d, eax
sub rbx, r11
test ebx, ebx
jle 0x14001f57b
lea rcx, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
mov rdx, r12
mov dword [rsp + 0x20], 3
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x14001f579
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_DispatchMessageW]
test edi, edi
jle 0x14001f56d
dec edi
mov al, byte [0x14012e25f]
test al, al
jg 0x14001f515
jmp 0x14001f57b
xor edi, edi
mov eax, 0x102
mov ecx, 0x64
mov edx, 0x3e8
cmp dword [rsp + 0xc8], eax
jne 0x14001f41d
xor edi, edi
jmp 0x14001f41d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 1
test eax, eax
jmp 0x14001f5c4
test rsi, rsi
jne 0x14001f5b6
xor eax, eax
jmp 0x14001f5c7
mov eax, dword [rsp + 0xc8]
mov ecx, 0x102
cmp eax, esi
cmove eax, ecx
mov dword [rsp + 0xc8], eax
mov rcx, qword [rsp + 0xd8]
test rcx, rcx
je 0x14001f5e8
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0xc8]
mov eax, eax
mov rbx, qword [rsp + 0xc0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret