Function at 0x14002f850
Capabilities:
Terminate thread

Disassembly:
push rdi
sub rsp, 0x20
mov rdi, rcx
mov rcx, qword [rcx]
cmp rcx, 0xffffffffffffffff
je 0x14002f876
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, 0xffffffffffffffff
mov qword [rdi], 0xffffffffffffffff
cmp qword [rdi + 8], 0xffffffffffffffff
je 0x14002f99d
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rsi
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov rcx, qword [rdi]
mov byte [rdi + 0x40], 1
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, str.Kernel32.dll
mov qword [rdi], 0xffffffffffffffff
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rcx, rax
lea rdx, str.CancelSynchronousIo
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
je 0x14002f930
nop dword [rax]
mov rcx, qword [rdi + 8]
call rbx
test eax, eax
jne 0x14002f908
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x14002f908
mov rcx, qword [rdi + 8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x14002f908
mov rcx, qword [rdi + 8]
mov edx, 0x3e8
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x14002f8d0
mov rcx, qword [rdi + 8]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 8]
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 0
call qword [sym.imp.KERNEL32.dll_GetExitCodeThread]
jmp 0x14002f978
mov rcx, qword [rdi + 8]
mov edx, 0x3e8
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14002f958
mov rcx, qword [rdi + 8]
lea rdx, [rsp + 0x38]
mov dword [rsp + 0x38], eax
call qword [sym.imp.KERNEL32.dll_GetExitCodeThread]
jmp 0x14002f978
lea rcx, [rdi + 0x18]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, qword [rdi + 8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateThread]
lea rcx, [rdi + 0x18]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [rdi + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
mov qword [rdi + 8], 0xffffffffffffffff
lea rcx, [rdi + 0x18]
add rsp, 0x20
pop rdi
jmp qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov edx, 0x149e804d
invalid
mov eax, 0x2a40a4bf
insd dword [rdi], dx
add ch, byte [rsi - 0x56]
js 0x14012e044
pop rsp
lodsd eax, dword [rsi]
push rcx
invalid
out dx, eax
jnp 0x14012e09e
insd dword [rdi], dx
invalid
loope 0x14012e10c
cld
invalid
stosb byte [rdi], al
cmp eax, 0xd1e4c805
cmp al, dh
mov eax, 0x2fefec3
cld
out dx, eax
sub eax, 0xab3d3be3
xor dh, ch
je 0x14012e117
mov ecx, 0xeeafbfdf
movabs byte [0xb1dfaac58a49b517], al
scasd eax, dword [rdi]
sti
adc eax, 0xfebf43f1
cld
mov ebp, 0xd7cc7c7f
int3
xlatb
mov edi, 0x7fbdfcfe
jl 0x14012e123
int3
xlatb
xor al, 0xd6
scasb al, byte [rdi]
test al, 0xa4
cmp eax, 0x58e0bffb
invalid
insd dword [rdi], dx
cmp dword [rdx], esp
adc eax, 0x8e41fb92
lodsd eax, dword ss:[rsi]
jl 0x14012e150
jge 0x14012e1ae
insd dword [rdi], dx
mov ss, word [rdi - 0x35]
rol dword [rcx + rdi*2 + 0xc], 0xb
out 0xf1, eax
int1
int1
jle 0x14012e139
ret
out 0xdb, al
test al, 0x81
or ah, byte fs:[rdi]
hlt
invalid
jg 0x14012e1a4
push rsp
lodsb al, byte [rsi]
jl 0x14012e1f2
stc
cmp dl, ch
push rdi
cmp byte [rdi*2 - 0x3901b60a], al
and r9d, r11d
push rdi
call qword [rsi]
invalid
xchg esi, eax
mov esp, 0xc6bd8ada
nop
pop rdi
jmp [rbp + rdi*4 - 0x776a669]
invalid
ficom word [rbx + rdi*2 - 0x12]
fdivrp st(6)
movabs byte [0x94f750c27ad1876d], al
invalid
sub al, 0x8e
jmp rbx
rol ah, cl
push rdi
mov byte ds:[rdi + 0xa], al
and byte [rax - 1], ch
push 0xfffffffffe8e3cff
push 0xfffffffffe8e3cff
out 0x16, al
invalid