Function at 0x140105240
Capabilities:
Create thread
Resume thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x80
movsxd rbp, edx
mov r14, rcx
xor r15d, r15d
mov rdi, qword [rcx + 8]
lea rbx, [rdi + 0x78]
mov byte [rsp + 0x38], r15b
mov qword [rsp + 0x30], rbx
lea r12d, [r15 + 1]
test rbx, rbx
je 0x140105299
mov rax, qword [rbx]
test rax, rax
jne 0x14010528c
lock cmpxchg qword [rbx], r12
je 0x140105294
mov rcx, rbx
call fcn.140107100
mov byte [rsp + 0x38], r12b
cmp byte [rdi + 0x86], 0
je 0x1401052fb
mov rax, r12
lock cmpxchg qword [rbx], r15
je 0x1401052b4
mov rcx, rbx
call fcn.1401076c0
mov byte [rsp + 0x38], 0
movabs rax, 0x7fffffffffffffff
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x48], r15d
mov dword [rsp + 0x4c], r12d
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.140105980
mov rax, qword [rbx]
test rax, rax
jne 0x1401052ee
lock cmpxchg qword [rbx], r12
je 0x1401052f6
mov rcx, rbx
call fcn.140107100
mov byte [rsp + 0x38], 1
cmp byte [rdi + 0x84], 0
jne 0x1401054a8
mov rcx, qword [rdi + 0x50]
mov esi, 0xffffffff
test rcx, rcx
je 0x140105366
mov rdx, qword [rcx + 0x60]
mov qword [rsp + 0x50], rdx
mov rax, qword [rcx + 0x68]
mov qword [rsp + 0x58], rax
mov rax, qword [rcx + 0x70]
mov qword [rsp + 0x60], rax
test rdx, rdx
je 0x140105339
lock inc dword [rdx]
lea rdx, [rsp + 0x50]
lea rcx, [rdi + 0xc0]
call fcn.14003d4a0
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1401053a4
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1401053a4
mov rcx, qword [rsp + 0x50]
jmp 0x14010539f
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r15
lea rdx, [rsp + 0x68]
lea rcx, [rdi + 0xc0]
call fcn.14003d4a0
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1401053a4
mov eax, esi
lock xadd dword [rcx], eax
cmp eax, 1
jne 0x1401053a4
mov rcx, qword [rsp + 0x68]
call fcn.14021b7f0
mov word [rdi + 0x84], 1
mov byte [rdi + 0x88], 0
mov dword [rdi + 0x8c], r15d
mov eax, r15d
xchg byte [rdi + 0x87], al
lea rax, [rdi + 0xa0]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 4
mov r9, r14
lea r8, [0x140105500]
mov edx, dword [rdi + 0x90]
xor ecx, ecx
call fcn.140224680
mov qword [rdi + 0x98], rax
test rax, rax
jne 0x140105415
lea rcx, str.QThread::start:_Failed_to_create_thread
call fcn.14010c800
mov word [rdi + 0x84], 0x100
jmp 0x1401054a8
mov dword [rdi + 0x94], ebp
cmp ebp, 7
ja case.0x140105431.7
lea rdx, [0x140000000]
mov ecx, dword [rdx + rbp*4 + 0x1054e0]
add rcx, rdx
jmp rcx
mov esi, 0xfffffff1
jmp case.0x140105431.2
mov esi, 0xfffffffe
jmp case.0x140105431.2
mov esi, r15d
jmp case.0x140105431.2
mov esi, r12d
jmp case.0x140105431.2
mov esi, 2
jmp case.0x140105431.2
mov esi, 0xf
jmp case.0x140105431.2
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov esi, eax
mov edx, esi
mov rcx, qword [rdi + 0x98]
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
test eax, eax
jne 0x140105489
lea rcx, str.QThread::start:_Failed_to_set_thread_priority
call fcn.14010c800
mov rcx, qword [rdi + 0x98]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
cmp eax, 0xffffffff
jne 0x1401054a8
lea rcx, str.QThread::start:_Failed_to_resume_new_thread
call fcn.14010c800
nop
cmp byte [rsp + 0x38], 0
je 0x1401054c1
mov rax, r12
lock cmpxchg qword [rbx], r15
je 0x1401054c1
mov rcx, rbx
call fcn.1401076c0
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret