Function at 0x1400828a0
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 - 0x500], 0x64
mov rcx, rsi
call fcn.140017050
xor al, 1
jne 0x140082a33
cmp byte [rsi + 0x49], 0
je 0x1400829f6
lea rcx, [0x1400dc3a8]
call sub.KERNEL32.dll_LeaveCriticalSection
mov rax, qword [rbp - 0x500]
mov qword [rbp - 0x4f8], rax
xor edx, edx
lea rcx, [rbp - 0x4f8]
call fcn.14000fe30
xor ebx, ebx
cmp eax, ebx
jle 0x140082936
mov edx, 0x2710
lea rcx, [rbp - 0x4f8]
call fcn.14000fe30
cmp eax, ebx
jns 0x140082936
mov qword [rbp - 0x4f8], 0x2710
movabs rdx, 0x270fffffb1e0
lea rcx, [rbp - 0x4f8]
call fcn.14000fe30
cmp eax, ebx
jle 0x14008298a
mov ecx, 0xfffffffe
call sub.KERNEL32.dll_Sleep
movabs rdx, 0x270fffffb1e0
lea rcx, [rbp - 0x4f8]
call fcn.14000fe70
movabs rdx, 0x270fffffb1e0
lea rcx, [rbp - 0x4f8]
call fcn.14000fe30
test eax, eax
jg 0x140082950
mov rbx, qword [rbp - 0x4f8]
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 - 0x500]
call fcn.14000fe30
test eax, eax
jns 0x1400829d9
mov edx, 2
lea rcx, [rbp - 0x500]
call fcn.140086890
lea rcx, [0x1400dc3a8]
call sub.KERNEL32.dll_EnterCriticalSection
mov rcx, rsi
call fcn.140017050
xor al, 1
jne 0x140082a33
jmp 0x1400828de
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 0x140082a57
mov rcx, qword [rsi + 0xb0]
call sub.KERNEL32.dll_SuspendThread
cmp eax, 0xffffffff
jne 0x140082a57
mov rcx, rsi
call fcn.140017050
xor al, 1
je 0x140082b9b
mov rcx, rsi
call fcn.140020370
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 - 0x4b0], 0x100003
lea rdx, [rbp - 0x4e0]
mov rcx, qword [rsi + 0xb0]
call sub.KERNEL32.dll_GetThreadContext
test eax, eax
je 0x140082bc0
movsx r8d, byte [rsi + 0x90]
xor r8b, 1
je 0x140082a9c
mov rdx, qword [rbp - 0x448]
mov rbx, qword [rsi + 0x88]
mov qword [rbx + 8], rdx
mov rax, qword [rbp - 0x468]
mov qword [rsi + 0xb8], rax
mov rcx, qword [rbp - 0x450]
mov qword [rsi + 0xc0], rcx
mov rdi, qword [rbp - 0x460]
mov qword [rsi + 0xc8], rdi
mov rdx, qword [rbp - 0x458]
mov qword [rsi + 0xd0], rdx
mov rbx, qword [rbp - 0x430]
mov qword [rsi + 0xd8], rbx
mov rax, qword [rbp - 0x438]
mov qword [rsi + 0xe0], rax
mov rcx, qword [rbp - 0x440]
mov qword [rsi + 0xe8], rcx
mov rdi, qword [rbp - 0x448]
mov qword [rsi + 0xf0], rdi
mov rdx, qword [rbp - 0x428]
mov qword [rsi + 0xf8], rdx
mov rbx, qword [rbp - 0x420]
mov qword [rsi + 0x100], rbx
mov rax, qword [rbp - 0x418]
mov qword [rsi + 0x108], rax
mov rcx, qword [rbp - 0x410]
mov qword [rsi + 0x110], rcx
mov rdi, qword [rbp - 0x408]
mov qword [rsi + 0x118], rdi
mov rdx, qword [rbp - 0x400]
mov qword [rsi + 0x120], rdx
mov rbx, qword [rbp - 0x3f8]
mov qword [rsi + 0x128], rbx
mov rax, qword [rbp - 0x3f0]
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 - 0x4e8], rdx
mov qword [rbp - 0x4f0], 0x18
lea rcx, [rbp - 0x4f0]
call fcn.1400207d0
lea rax, str.Unable_to_load_thread_context
mov qword [rbp - 8], rax
mov qword [rbp - 0x10], 0x1d
lea rcx, [rbp - 0x10]
call fcn.1400207d0
int3