Function at 0x140088300
Capabilities:
Suspend thread

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x540
mov qword [rbp - 0x520], rbx
mov qword [rbp - 0x518], rsi
mov qword [rbp - 0x510], rdi
mov rsi, rcx
mov qword [rbp - 8], 0x64
mov rcx, rsi
call fcn.14002fa40
xor al, 1
jne 0x14008846f
cmp byte [rsi + 0x49], 0
je 0x140088432
lea rcx, [0x14022fbb8]
call sub.KERNEL32.dll_LeaveCriticalSection
mov rax, qword [rbp - 8]
mov qword [rbp - 0x10], rax
xor edx, edx
lea rcx, [rbp - 0x10]
call fcn.140038740
xor ebx, ebx
cmp eax, ebx
jle 0x140088384
mov edx, 0x2710
lea rcx, [rbp - 0x10]
call fcn.140038740
cmp eax, ebx
jns 0x140088384
mov qword [rbp - 0x10], 0x2710
movabs rdx, 0x270fffffb1e0
lea rcx, [rbp - 0x10]
call fcn.140038740
cmp eax, ebx
jle 0x1400883cf
mov ecx, 0xfffffffe
call sub.KERNEL32.dll_Sleep
movabs rdx, 0x270fffffb1e0
lea rcx, [rbp - 0x10]
call fcn.14003c690
movabs rdx, 0x270fffffb1e0
lea rcx, [rbp - 0x10]
call fcn.140038740
test eax, eax
jg 0x14008839b
mov rbx, qword [rbp - 0x10]
movabs rax, 0x346dc5d63886594b
imul rbx
mov rax, rbx
sar rax, 0x3f
sar rdx, 0xb
sub rdx, rax
mov ecx, edx
call sub.KERNEL32.dll_Sleep
mov edx, 0x186a0
lea rcx, [rbp - 8]
call fcn.140038740
test eax, eax
jns 0x140088415
mov edx, 2
lea rcx, [rbp - 8]
call fcn.14008aaa0
lea rcx, [0x14022fbb8]
call sub.KERNEL32.dll_EnterCriticalSection
mov rcx, rsi
call fcn.14002fa40
xor al, 1
jne 0x14008846f
jmp 0x14008833b
mov eax, dword [rsi + 0x10]
mov qword [rbp - 0x508], rax
call sub.KERNEL32.dll_GetCurrentThreadId
mov edx, eax
mov rax, qword [rbp - 0x508]
cmp eax, edx
je 0x140088493
mov rcx, qword [rsi + 0xb0]
call sub.KERNEL32.dll_SuspendThread
cmp eax, 0xffffffff
jne 0x140088493
mov rcx, rsi
call fcn.14002fa40
xor al, 1
je 0x1400885d7
mov rcx, rsi
call fcn.14002fe90
xor eax, eax
mov rbx, qword [rbp - 0x520]
mov rsi, qword [rbp - 0x518]
mov rdi, qword [rbp - 0x510]
mov rsp, rbp
pop rbp
ret
mov dword [rbp - 0x4d0], 0x100003
lea rdx, [rbp - 0x500]
mov rcx, qword [rsi + 0xb0]
call sub.KERNEL32.dll_GetThreadContext
test eax, eax
je 0x1400885f3
movsx r8d, byte [rsi + 0x90]
xor r8b, 1
je 0x1400884d8
mov rdx, qword [rbp - 0x468]
mov rbx, qword [rsi + 0x88]
mov qword [rbx + 8], rdx
mov rax, qword [rbp - 0x488]
mov qword [rsi + 0xb8], rax
mov rcx, qword [rbp - 0x470]
mov qword [rsi + 0xc0], rcx
mov rdi, qword [rbp - 0x480]
mov qword [rsi + 0xc8], rdi
mov rdx, qword [rbp - 0x478]
mov qword [rsi + 0xd0], rdx
mov rbx, qword [rbp - 0x450]
mov qword [rsi + 0xd8], rbx
mov rax, qword [rbp - 0x458]
mov qword [rsi + 0xe0], rax
mov rcx, qword [rbp - 0x460]
mov qword [rsi + 0xe8], rcx
mov rdi, qword [rbp - 0x468]
mov qword [rsi + 0xf0], rdi
mov rdx, qword [rbp - 0x448]
mov qword [rsi + 0xf8], rdx
mov rbx, qword [rbp - 0x440]
mov qword [rsi + 0x100], rbx
mov rax, qword [rbp - 0x438]
mov qword [rsi + 0x108], rax
mov rcx, qword [rbp - 0x430]
mov qword [rsi + 0x110], rcx
mov rdi, qword [rbp - 0x428]
mov qword [rsi + 0x118], rdi
mov rdx, qword [rbp - 0x420]
mov qword [rsi + 0x120], rdx
mov rbx, qword [rbp - 0x418]
mov qword [rsi + 0x128], rbx
mov rax, qword [rbp - 0x410]
mov qword [rsi + 0x130], rax
mov eax, 1
mov rbx, qword [rbp - 0x520]
mov rsi, qword [rbp - 0x518]
mov rdi, qword [rbp - 0x510]
mov rsp, rbp
pop rbp
ret
lea rdx, str.Unable_to_suspend_thread
mov qword [rbp - 0x28], rdx
mov qword [rbp - 0x30], 0x18
lea rcx, [rbp - 0x30]
call fcn.14003c620
lea rax, str.Unable_to_load_thread_context
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x20], 0x1d
lea rcx, [rbp - 0x20]
call fcn.14003c620
int3