Function at 0x14007f940
Capabilities:
Execute anti-debugging instructions

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
movzx eax, byte [rcx + 0x4a]
mov rbx, rcx
movzx ecx, al
xor r13d, r13d
shr cl, 1
not al
mov r12, r8
mov rdi, rdx
mov esi, r13d
test al, 1
je 0x14007fa90
test cl, 1
je 0x14007f989
mov r14b, 1
movzx ecx, r14b
jmp 0x14007f98e
xor r14b, r14b
xor cl, cl
mov rax, qword [rbx + 0x70]
mov qword [rsp + 0x40], rax
mov rax, qword [rbx + 0x40]
mov byte [rsp + 0x90], cl
test rax, rax
je 0x14007f9ab
mov byte [rax + 0x14], 1
test cl, cl
je 0x14007f9ef
mov rax, qword [rbx + 0x30]
mov r8, qword [rax + 0x128]
nop
test r8, r8
je 0x14007f9ef
mov rcx, qword [rbx + 0x30]
mov rax, r8
lock cmpxchg qword [rcx + 0x128], r13
jne 0x14007f9ef
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x88]
cmp r8, rcx
jle 0x14007f9ef
mov rdx, qword [rbx + 0x30]
mov rcx, qword [rbx + 0x78]
call fcn.140082080
mov rax, qword [rbx + 0x30]
mov r15d, 0xffffffff
mov ebp, dword [rax + 0x90]
nop
dec ebp
cmp qword [rdi], 1
je 0x14007fd1b
nop dword [rax]
test r14b, r14b
je 0x14007fa33
mov rax, qword [rbx + 0x30]
mov ecx, dword [rax + 0x84]
nop
mov rax, qword [rbx + 0x30]
shr ecx, 0xc
cmp dword [rax + 0x80], ecx
jb 0x14007fd4f
mov rax, qword [rbx + 0x30]
mov rdi, qword [rax + 0x88]
test rbp, rbp
je 0x14007faa3
mov rax, qword [rbx + 0x40]
mov rcx, qword [rax]
test rcx, rcx
je 0x14007faa3
mov rdx, r12
mov rcx, rbx
call fcn.14007dde0
mov rsi, rax
test r12, r12
je 0x14007faa3
test rax, rax
jne 0x14007fd53
mov rcx, qword [rbx + 0x40]
mov rdx, qword [rcx]
test rdx, rdx
je 0x14007faee
mov rdx, qword [rbx + 0x40]
test rdx, rdx
je 0x14007faee
cmp byte [rdx + 0x14], 1
jne 0x14007faee
test rdx, rdx
je 0x14007faee
mov byte [rdx + 0x14], al
jmp 0x14007faee
xor r14b, r14b
test cl, 1
je 0x14007f98c
mov cl, 1
jmp 0x14007f98e
test rsi, rsi
jne 0x14007fd53
test r12, r12
jne 0x14007faee
cmp byte [rsp + 0x90], r12b
je 0x14007faee
mov rcx, qword [rbx + 0x30]
movsxd rax, edi
cmp qword [rcx + rax*8 + 0x98], r12
je 0x14007faee
mov r8, qword [rbx + 0x28]
add rcx, 0x98
sub r8, 0xffffffffffffff80
mov edx, edi
call fcn.14007ed80
mov rsi, rax
test rax, rax
jne 0x14007fd53
cmp qword [rbx + 0x148], 0
je 0x14007fb0f
mov rdx, r12
mov rcx, rbx
call fcn.140080420
mov rsi, rax
test rax, rax
jne 0x14007fd53
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x40], rax
jae 0x14007fb37
test rbp, rbp
je 0x14007fb37
mov rdx, r12
mov rcx, rbx
call fcn.140080750
mov rsi, rax
test rax, rax
jne 0x14007fd53
cmp r15d, 0xffffffff
mov edi, 0
cmove r15d, edi
rdtsc
shl rdx, 0x20
mov ecx, 1
or rax, rdx
mov r8, rax
lea r9, [rax + 0x3e8]
nop dword [rax]
movsxd rdx, ecx
test ecx, ecx
je 0x14007fb6f
pause
sub rdx, 1
jne 0x14007fb67
cmp ecx, 0x10
jge 0x14007fb76
add ecx, ecx
rdtsc
shl rdx, 0x20
or rax, rdx
cmp rax, r8
jbe 0x14007fb8c
mov r8, rax
cmp rax, r9
jb 0x14007fb60
lea eax, [rbp*2 + 2]
cmp r15d, eax
jl 0x14007fd06
mov r15d, eax
call qword [sym.imp.KERNEL32.dll_SwitchToThread]
mov rax, qword [rbx + 0x30]
cmp qword [rax + 0x118], rdi
je 0x14007fc81
lock inc qword [rax + 0x120]
mov rax, qword [rbx + 0x30]
mov rcx, rdi
xchg qword [rax + 0x118], rcx
mov qword [rsp + 0x38], rcx
test rcx, rcx
je 0x14007fc81
movzx ecx, byte [rbx + 0x4a]
dec qword [rbx + 0x158]
movzx eax, cl
not al
mov qword [rsp + 0xa8], rdi
test al, 1
je 0x14007fc1f
test cl, 2
je 0x14007fc1f
mov rax, qword [rbx + 0x30]
mov ecx, dword [rax + 0x84]
nop
mov r9, qword [rbx + 0x30]
shr ecx, 0xc
cmp dword [r9 + 0x80], ecx
jb 0x14007fc1f
mov r9, qword [r9 + 0x88]
jmp 0x14007fc26
mov rax, qword [rbx + 0x60]
mov r9, qword [rax]
lea r8, [rsp + 0xa8]
mov qword [rsp + 0x20], r12
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.140080210
mov rsi, rax
cmp qword [rsp + 0x38], rdi
je 0x14007fc78
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rbx + 0x148]
mov qword [rcx], rax
cmp qword [rbx + 0x148], rdi
jne 0x14007fc6c
mov qword [rbx + 0x150], rcx
mov rax, qword [rsp + 0x38]
mov qword [rbx + 0x148], rax
test rsi, rsi
jne 0x14007fd1c
mov eax, r13d
inc r13d
cmp eax, 0x64
jl 0x14007fcf9
test r14b, r14b
jne 0x14007fca9
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x88]
mov rax, qword [rbx + 0x30]
cmp rcx, qword [rax + 0x108]
jle 0x14007fcbf
mov rcx, qword [rbx + 0x30]
call fcn.140083210
test al, al
je 0x14007fcbf
test r14b, r14b
jne 0x14007fd4f
cmp qword [rbx + 0x148], rdi
je 0x14007fcf9
dec qword [rbx + 0x158]
test r14b, r14b
jne 0x14007fcf9
mov rax, qword [rbx + 0x30]
mov rdx, qword [rax + 0x88]
mov rax, qword [rbx + 0x60]
mov rcx, qword [rax]
cmp rcx, rdx
jle 0x14007fcf9
mov rax, qword [rbx + 0x30]
add rax, 0x88
mov qword [rbx + 0x60], rax
mov rax, qword [rbx + 0x30]
mov ebp, dword [rax + 0x90]
nop
dec ebp
mov rdi, qword [rsp + 0x98]
inc r15d
cmp qword [rdi], 1
jne 0x14007fa10
nop
mov rcx, qword [rbx + 0x40]
test rcx, rcx
je 0x14007fd34
cmp byte [rcx + 0x14], 1
jne 0x14007fd34
test rcx, rcx
je 0x14007fd34
mov byte [rcx + 0x14], 0
mov rax, rsi
mov rbx, qword [rsp + 0xa0]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
xor eax, eax
jmp 0x14007fd37
mov rcx, qword [rbx + 0x30]
lea rdx, [rbx + 0x58]
add rcx, 0xe0
mov rax, qword [rcx + 8]
cmp qword [rdx], rax
je 0x14007fd7c
movzx r8d, byte [rbx + 0x4a]
not r8b
and r8b, 1
call fcn.140084370
mov rax, qword [0x14016bdc0]
lea rdx, [rbx + 0x50]
cmp qword [rdx], rax
je 0x14007fd1c
movzx r8d, byte [rbx + 0x4a]
lea rcx, [0x14016bdb8]
not r8b
and r8b, 1
call fcn.140084370
jmp 0x14007fd1c