Function at 0x18008c130
Capabilities:
Resume thread

Disassembly:
sub rsp, 0x578
mov rax, qword [0x1802a3900]
xor rax, rsp
mov qword [rsp + 0x570], rax
mov qword [rsp + 0x90], rcx
cmp qword [rsp + 0x90], 0
je 0x18008c172
mov rcx, qword [0x1802b0190]
mov rax, qword [rsp + 0x90]
mov qword [rax], rcx
mov eax, dword [0x1802b0178]
mov dword [rsp + 0x54], eax
call sub.KERNEL32.dll_GetCurrentThreadId
mov ecx, eax
mov eax, dword [rsp + 0x54]
cmp eax, ecx
je 0x18008c19f
mov dword [rsp + 0x98], 0x10dd
jmp 0x18008c70e
cmp dword [0x1802b0198], 0
je 0x18008c1c3
call fcn.18008be80
mov eax, dword [0x1802b0198]
mov dword [rsp + 0x98], eax
jmp 0x18008c70e
mov dword [rsp + 0x7c], 0
mov rax, qword [0x1802b0180]
mov qword [rsp + 0x88], rax
cmp qword [rsp + 0x88], 0
je 0x18008c2f1
mov rax, qword [rsp + 0x88]
cmp dword [rax + 8], 0
je 0x18008c24f
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 0x18]
mov rax, qword [rsp + 0x88]
mov rdx, qword [rax + 0x20]
add rdx, 0x20
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x20]
movzx eax, byte [rax + 0x3e]
mov r8d, eax
call fcn.180091610
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 0x18]
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x10]
mov qword [rax], rcx
jmp 0x18008c2d4
mov rax, qword [rsp + 0x88]
mov rdx, qword [rax + 0x20]
add rdx, 0x50
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 0x20]
add rcx, 0x58
call fcn.18008c740
mov rax, qword [rsp + 0x88]
mov rdx, qword [rax + 0x20]
add rdx, 0x58
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 0x18]
call fcn.18008c7b0
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x20]
mov rdx, qword [rax + 0x48]
mov rcx, qword [rsp + 0x70]
call fcn.18008c810
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 0x20]
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x10]
mov qword [rax], rcx
jmp 0x18008c2d9
mov rax, qword [rsp + 0x88]
mov rax, qword [rax]
mov qword [rsp + 0x88], rax
jmp 0x18008c1da
mov rax, qword [0x1802b0188]
mov qword [rsp + 0x80], rax
cmp qword [rsp + 0x80], 0
je 0x18008c513
mov dword [rsp + 0xd0], 0x100001
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax + 8]
lea rdx, [rsp + 0xa0]
call sub.KERNEL32.dll_GetThreadContext
cmp eax, 0
je 0x18008c4f6
mov rax, qword [0x1802b0180]
mov qword [rsp + 0x88], rax
cmp qword [rsp + 0x88], 0
je 0x18008c4f1
mov rax, qword [rsp + 0x88]
cmp dword [rax + 8], 0
je 0x18008c418
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x88]
mov rcx, qword [rcx + 0x20]
cmp rax, rcx
jb 0x18008c413
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x88]
mov rcx, qword [rcx + 0x20]
add rcx, 8
cmp rax, rcx
jae 0x18008c413
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x88]
mov rcx, qword [rcx + 0x20]
sub rax, rcx
mov dl, al
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 0x20]
call fcn.18008c850
mov cl, al
mov rax, qword [rsp + 0x48]
movzx ecx, cl
add rax, rcx
mov qword [rsp + 0x198], rax
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax + 8]
lea rdx, [rsp + 0xa0]
call sub.KERNEL32.dll_SetThreadContext
jmp 0x18008c4d4
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x88]
mov rcx, qword [rcx + 0x18]
cmp rax, rcx
jb 0x18008c4cf
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x88]
mov rcx, qword [rcx + 0x18]
mov rdx, qword [rsp + 0x88]
mov rdx, qword [rdx + 0x20]
movzx edx, byte [rdx + 0x3e]
add rcx, rdx
cmp rax, rcx
jae 0x18008c4cf
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x88]
mov rcx, qword [rcx + 0x18]
sub rax, rcx
movzx edx, al
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 0x20]
call fcn.18008c8e0
mov ecx, eax
mov rax, qword [rsp + 0x40]
movsxd rcx, ecx
add rax, rcx
mov qword [rsp + 0x198], rax
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax + 8]
lea rdx, [rsp + 0xa0]
call sub.KERNEL32.dll_SetThreadContext
jmp 0x18008c4d4
jmp 0x18008c4d9
mov rax, qword [rsp + 0x88]
mov rax, qword [rax]
mov qword [rsp + 0x88], rax
jmp 0x18008c34b
jmp 0x18008c4f6
jmp 0x18008c4fb
mov rax, qword [rsp + 0x80]
mov rax, qword [rax]
mov qword [rsp + 0x80], rax
jmp 0x18008c300
call sub.KERNEL32.dll_GetCurrentProcess
mov qword [rsp + 0x68], rax
mov rax, qword [0x1802b0180]
mov qword [rsp + 0x88], rax
cmp qword [rsp + 0x88], 0
je 0x18008c62c
mov rax, qword [rsp + 0x88]
mov r8d, dword [rax + 0x28]
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x20]
movzx eax, byte [rax + 0x3e]
mov edx, eax
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 0x18]
lea r9, [rsp + 0x9c]
call sub.KERNEL32.dll_VirtualProtect
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x20]
movzx eax, byte [rax + 0x3e]
mov r8d, eax
mov rax, qword [rsp + 0x88]
mov rdx, qword [rax + 0x18]
mov rcx, qword [rsp + 0x68]
call sub.KERNEL32.dll_FlushInstructionCache
mov rax, qword [rsp + 0x88]
cmp dword [rax + 8], 0
je 0x18008c5e9
mov rax, qword [rsp + 0x88]
cmp qword [rax + 0x20], 0
je 0x18008c5e9
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 0x20]
call fcn.18008c030
mov rax, qword [rsp + 0x88]
mov qword [rax + 0x20], 0
mov dword [rsp + 0x7c], 1
mov rax, qword [rsp + 0x88]
mov rax, qword [rax]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x38], rax
cmp rax, 0
je 0x18008c61a
mov rcx, qword [rsp + 0x38]
call fcn.18008fa8c
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x88], rax
jmp 0x18008c52c
mov qword [0x1802b0180], 0
cmp dword [rsp + 0x7c], 0
je 0x18008c654
cmp dword [0x1802b0174], 0
jne 0x18008c654
call fcn.18008c970
call fcn.18008c080
mov rax, qword [0x1802b0188]
mov qword [rsp + 0x80], rax
cmp qword [rsp + 0x80], 0
je 0x18008c6cb
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax + 8]
call sub.KERNEL32.dll_ResumeThread
mov rax, qword [rsp + 0x80]
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x30], rax
cmp rax, 0
je 0x18008c6b9
mov rcx, qword [rsp + 0x30]
call fcn.18008fa8c
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x80], rax
jmp 0x18008c668
mov qword [0x1802b0188], 0
mov dword [0x1802b0178], 0
cmp qword [rsp + 0x90], 0
je 0x18008c701
mov rcx, qword [0x1802b0190]
mov rax, qword [rsp + 0x90]
mov qword [rax], rcx
mov eax, dword [0x1802b0198]
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x98]
mov dword [rsp + 0x2c], eax
mov rcx, qword [rsp + 0x570]
xor rcx, rsp
call fcn.18008fc60
mov eax, dword [rsp + 0x2c]
add rsp, 0x578
ret