Function at 0x140045360
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x20], rbx
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x70
movzx esi, byte [rcx + 8]
mov r15, r9
mov r12, r8
mov r13, rdx
mov rdi, rcx
cmp sil, 5
jne 0x14004538d
or esi, 0x20000200
cmp byte [rcx + 0x109], 0
je 0x14004539a
bts esi, 0xb
mov rbx, qword [0x140132c80]
mov r9d, 1
mov qword [rsp + 0xa8], rbp
test rbx, rbx
jne 0x1400454d8
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
jne 0x1400453d1
mov eax, 8
jmp 0x14004564a
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0xb0], r14
call qword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov r9d, 1
mov ebp, eax
movabs rax, 0x10c6f7a0b5ed
div rbx
mov r14, rax
xor eax, eax
lock cmpxchg dword [0x140132c78], r9d
je 0x140045440
mov rbx, qword [0x140132c80]
test rbx, rbx
jne 0x1400454d0
nop dword [rax + rax]
mov ecx, r9d
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rbx, qword [0x140132c80]
mov r9d, 1
test rbx, rbx
je 0x140045420
jmp 0x1400454d0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea r8, [rsp + 0x68]
lea rdx, [0x140128138]
call qword [sym.imp.KERNEL32.dll_GetProcessAffinityMask]
test eax, eax
je 0x140045469
cmp qword [0x140128138], 0
jne 0x140045478
mov r9d, 1
mov qword [0x140128138], r9
jmp 0x14004547e
mov r9d, 1
mov rax, qword [0x140128140]
test qword [0x140128138], rax
jne 0x1400454a7
nop
shl qword [0x140128140], 1
mov rax, qword [0x140128140]
test qword [0x140128138], rax
je 0x140045490
mov rax, r14
imul rax, rbx
mov qword [0x140132c88], rax
imul rax, r14, 0xf4240
mov qword [0x140132c90], rax
xchg dword [0x140128130], ebp
mov qword [0x140132c80], rbx
mov r14, qword [rsp + 0xb0]
cmp rbx, 0x1dcd6500
jbe 0x140045513
mov rcx, qword [0x140128140]
mov rax, qword [0x140128138]
mov rdx, rcx
add rcx, rcx
cmove rcx, r9
test rcx, rax
je 0x1400454f2
mov rax, rdx
lock cmpxchg qword [0x140128140], rcx
jne 0x1400454e1
mov qword [rdi + 0xf8], rdx
xor r8d, r8d
mov edx, r9d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateWaitableTimerW]
mov qword [rdi + 0xf0], rax
test rax, rax
je 0x1400453c7
lea rax, [0x140045fe0]
xor ebp, ebp
lea rbx, [rdi + 0x10]
movzx r9d, r15b
mov qword [rsp + 0x58], rbx
mov r8, r12
mov qword [rsp + 0x50], rdi
mov rdx, r13
mov qword [rsp + 0x48], rax
mov ecx, esi
lea rax, [0x140046090]
mov qword [rsp + 0x40], rax
lea rax, [0x1400460a0]
mov qword [rsp + 0x38], rax
movzx eax, byte [rsp + 0xc8]
mov qword [rsp + 0x30], rbp
mov byte [rsp + 0x28], al
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x20], rax
call fcn.140047790
test eax, eax
jne 0x1400453c7
movzx edx, byte [rdi + 0x20]
test dl, dl
je 0x1400455ac
mov rcx, qword [rbx]
call fcn.1400479e0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rdi + 0x38], rax
test rax, rax
je 0x1400453c7
lea rax, [rsp + 0xa0]
mov r9, rdi
mov qword [rsp + 0x28], rax
lea r8, [0x140044fe0]
xor edx, edx
mov dword [rsp + 0x20], ebp
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rbx, rax
test rax, rax
je 0x140045604
mov edx, 1
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov qword [rdi + 0x40], rbx
test rbx, rbx
je 0x1400453c7
mov rax, qword [rsp + 0xd0]
xor r8d, r8d
mov rcx, qword [rdi + 0x18]
mov rdx, qword [rdi]
mov qword [rdi + 0x1480], rax
mov rax, qword [rsp + 0xd8]
mov qword [rdi + 0x1488], rax
mov rax, qword [rcx]
call qword [rax + reloc.imgengine.dll_Ordinal_8]
test eax, eax
jne 0x14004564a
mov byte [rdi + 0x10c], 1
mov rbp, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret