Function at 0x42b7f0
Capabilities:
Terminate thread

Disassembly:
push rsi
push rbx
sub rsp, 0x48
mov rsi, qword [0x006d1040]
mov r8, 0xffffffffffffffff
mov rbx, rcx
mov rax, qword [rsi]
mov qword [rsp + 0x38], rax
xor eax, eax
lea rax, [rcx + 0x10]
test rdx, rdx
mov qword [rcx], rax
je 0x42b7c3
mov rcx, rdx
mov qword [rsp + 0x28], rdx
call sub.msvcrt.dll_strlen
mov rdx, qword [rsp + 0x28]
lea r8, [rdx + rax]
mov rax, qword [rsp + 0x38]
xor rax, qword [rsi]
jne 0x42b7db
mov rcx, rbx
add rsp, 0x48
pop rbx
pop rsi
jmp fcn.0042b5a0
call fcn.00582f30
nop
nop dword [rax + rax]
nop word cs:[rax + rax]
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rax, qword [0x006d1040]
mov rbx, qword [0x006808b0]
mov rdx, qword [rax]
mov qword [rsp + 0x38], rdx
xor edx, edx
test rbx, rbx
je 0x42b992
mov rsi, qword [rbx + 8]
lock sub dword [rsi + 0xac], 1
je 0x42b9c0
mov rsi, qword [rbx + 8]
movzx edi, byte [rsi + 0x60]
test dil, dil
jne 0x42ba10
movzx edi, byte [rsi + 0xa8]
mov byte [rsi + 0xc0], 1
test dil, dil
je 0x42bab4
mov r12, qword [rbx + 0x10]
test r12, r12
je 0x42b920
lea rbp, [rsp + 0x20]
mov rdi, qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
lea r15, [0x005b7780]
mov r14, qword [sym.imp.KERNEL32.dll_QueueUserAPC]
mov r13, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x42b8d4
mov rdx, qword [r12]
mov rcx, r15
xor r8d, r8d
call r14
mov edx, 0xffffffff
mov rcx, qword [r12]
call r13
mov r12, qword [rbx + 0x10]
mov rax, qword [r12 + 0x10]
mov rcx, qword [r12]
mov qword [rbx + 0x10], rax
call rsi
mov rcx, r12
mov edx, 0x18
call fcn.00670510
mov r12, qword [rbx + 0x10]
test r12, r12
je 0x42b920
mov rax, qword [r12 + 8]
mov r9d, 0xffffffff
xor r8d, r8d
mov rdx, rbp
mov ecx, 2
mov qword [rsp + 0x20], rax
mov rax, qword [r12]
mov qword [rsp + 0x28], rax
call rdi
mov rcx, qword [r12 + 8]
call rsi
xor eax, eax
lock xadd dword [0x006808c0], eax
test eax, eax
je 0x42b892
xor edx, edx
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_TerminateThread]
jmp 0x42b8ab
mov rdi, qword [rbx]
mov rsi, qword [rdi + 0x38]
test rsi, rsi
je 0x42b96e
nop dword [rax]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
mov rsi, qword [rsi + 0x20]
test rsi, rsi
jne 0x42b930
mov rdi, qword [rbx]
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x42b96e
nop
mov rsi, qword [rcx + 0x20]
mov rax, qword [rcx]
call qword [rax + 8]
test rsi, rsi
mov qword [rdi + 0x38], rsi
mov rcx, rsi
jne 0x42b950
mov rdi, qword [rbx]
test rdi, rdi
je 0x42b985
lea rcx, [rdi + 8]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov edx, 0x40
mov rcx, rdi
call fcn.00670510
mov edx, 0x18
mov rcx, rbx
call fcn.00670510
mov rax, qword [0x006d1040]
mov rdx, qword [rsp + 0x38]
xor rdx, qword [rax]
jne 0x42bad4
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx edi, byte [rsi + 0x60]
test dil, dil
jne 0x42ba71
movzx edi, byte [rsi + 0xa8]
mov byte [rsi + 0xc0], 1
test dil, dil
jne 0x42b833
cmp qword [rsi + 0x88], 0
je 0x42b833
test dil, dil
mov byte [rsi + 0xa8], 1
je 0x42b833
lea rbp, [rsi + 0x38]
jmp 0x42baa6
lea rbp, [rsi + 0x38]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [rsi + 0x60], 0
mov byte [rsi + 0xc0], 1
je 0x42ba3c
or qword [rsi + 0x80], 1
mov rcx, qword [rsi + 0x70]
call qword [sym.imp.KERNEL32.dll_SetEvent]
cmp byte [rsi + 0xa8], 0
jne 0x42ba63
cmp qword [rsi + 0x88], 0
je 0x42ba63
test dil, dil
mov byte [rsi + 0xa8], 1
je 0x42b85b
lea rbp, [rsi + 0x38]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x42b85b
lea rbp, [rsi + 0x38]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [rsi + 0x60], 0
mov byte [rsi + 0xc0], 1
je 0x42ba9d
or qword [rsi + 0x80], 1
mov rcx, qword [rsi + 0x70]
call qword [sym.imp.KERNEL32.dll_SetEvent]
cmp byte [rsi + 0xa8], 0
je 0x42bac4
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x42b833
cmp qword [rsi + 0x88], 0
je 0x42b85b
jmp 0x42ba4f
cmp qword [rsi + 0x88], 0
jne 0x42b9f2
jmp 0x42baa6
call fcn.00582f30
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.00662320
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x42bae2