Function at 0x18000e650
Capabilities:
Encode data using xor
Execute anti-debugging instructions

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rsi, rdx
rdtsc
mov r9, rdx
shl r9, 0x20
or r9, rax
rdtsc
shl rdx, 0x20
or rdx, rax
cmp r9, rdx
mov eax, 0xf252409b
mov ebp, 0x9d82f7ff
cmove ebp, eax
mov rdi, rcx
mov ecx, ebp
xor ecx, 0x64125361
mov r10d, dword [rsp + 0x64]
mov r11d, ebp
xor r11d, 0x9bedac9e
or r11d, dword [rsp + 0x64]
and r10d, ecx
mov r9d, ebp
xor r9d, 0x7ae25685
mov edx, dword [rsp + 0x60]
and edx, r9d
mov ebx, dword [rsp + 0x60]
mov eax, 0xffffffff
test rdi, rdi
je 0x18000ea46
mov r14d, ebp
xor r14d, 0x9d82f7fe
imul r11d, r14d
mov r15d, ebp
xor r15d, 0x627d080f
add ecx, r8d
add ecx, r15d
sub ecx, r10d
add ecx, r11d
not ebx
and r9d, ebx
add edx, r9d
mov r9d, ebp
xor r9d, 0x7ae25684
mov r10d, ebp
xor r10d, 0x627d080d
add r10d, r9d
sub r10d, edx
cmp ecx, r10d
jb 0x18000ea46
mov r15d, dword [rdi + 0xc50]
mov eax, ebp
xor eax, 0x4306c815
mov edx, dword [rsp + 0x3c]
and edx, eax
mov r13d, ebp
xor r13d, 0x9d82f7fd
mov ecx, eax
or ecx, 1
add ecx, r13d
add ecx, dword [rsp + 0x3c]
or eax, dword [rsp + 0x3c]
add eax, edx
sub ecx, eax
shl r15d, cl
mov r12d, dword [rdi + 0xc54]
mov ecx, ebp
xor ecx, 0x80acabe5
mov eax, dword [rsp + 0x38]
and eax, ecx
mov edx, ebp
add eax, dword [rsp + 0x38]
xor edx, 0x1a
or edx, dword [rsp + 0x38]
imul edx, r14d
mov r9d, ebp
xor r9d, 0xfc
or ecx, 1
add ecx, r9d
sub ecx, eax
add ecx, dword [rsp + 0x38]
add ecx, edx
shl r12d, cl
lea rdx, [rdi + 0xc58]
mov ebx, r8d
mov rcx, rsi
mov r8, rbx
call fcn.18003abb0
xor eax, eax
mov ecx, r15d
or ecx, r12d
je 0x18000ea46
mov eax, ebp
xor eax, 0xd3ddd4cd
mov edx, dword [rsp + 0x34]
or edx, eax
imul edx, r14d
mov r9d, ebp
xor r9d, 0xfec34e62
mov r8d, ebp
xor r8d, 0x9d82f7e7
add r9d, r8d
add r9d, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x34]
not ecx
or ecx, eax
imul ecx, r13d
add ecx, r9d
mov eax, ebp
xor eax, 0x32
or eax, dword [rsp + 0x34]
add ecx, edx
sub ecx, eax
mov r9d, r12d
shr r9d, cl
mov eax, ebp
xor eax, 0x17876acf
mov edx, dword [rsp + 0x5c]
and edx, eax
mov r10d, ebp
xor r10d, 0x30
or r10d, dword [rsp + 0x5c]
imul r10d, r14d
mov ecx, ebp
xor ecx, 0xee
add ecx, eax
sub ecx, edx
add ecx, r10d
mov eax, ebp
xor eax, 0x2c479db2
mov edx, dword [rsp + 0x58]
and edx, eax
mov r11d, dword [rsp + 0x58]
not r11d
and r11d, eax
add r11d, edx
mov edx, ebp
xor edx, 0x9d82f7f7
mov dword [rsp + 0x50], edx
add eax, edx
sub eax, r11d
mov edx, dword [rsp + 0x30]
mov r11d, ebp
xor r11d, 0x8c696701
mov r10d, r15d
mov r15d, dword [rsp + 0x30]
or r15d, r11d
not r15d
mov dword [rsp + 0x4c], r12d
mov r12d, dword [rsp + 0x30]
not r12d
or r12d, r11d
and r11d, dword [rsp + 0x30]
imul r15d, r13d
not r11d
add r11d, edx
mov edx, ebp
xor edx, 1
imul r11d, r14d
add edx, r8d
add edx, r15d
sub edx, r12d
add edx, r11d
mov r15d, ebp
xor r15d, 0x39ab9322
mov r8d, ebp
xor r8d, 0xc6546cdd
mov r11d, ebp
xor r11d, 0x9d82f7ef
add r11d, r8d
sub r11d, dword [rsp + 0x2c]
mov r12d, dword [rsp + 0x2c]
or r12d, r15d
add r11d, dword [rsp + 0x2c]
mov r8d, dword [rsp + 0x2c]
not r8d
or r8d, r15d
imul r8d, r14d
add r8d, r12d
mov r13d, ebp
xor r13d, 0x3b
or r13d, dword [rsp + 0x54]
mov r15d, ebp
xor r15d, 0x6d73b9c4
and r15d, dword [rsp + 0x54]
xor byte [rdi + 0xc7c], r9b
mov r12d, dword [rsp + 0x4c]
mov r9d, r12d
shr r9d, cl
xor byte [rdi + 0xc7d], r9b
mov r9d, r12d
mov ecx, eax
shr r9d, cl
add r8d, r11d
xor byte [rdi + 0xc7e], r9b
xor byte [rdi + 0xc7f], r12b
not r15d
add r15d, r13d
imul r15d, r14d
mov eax, ebp
xor eax, 0xc2
add eax, dword [rsp + 0x50]
add eax, r15d
mov r9d, r10d
mov ecx, edx
shr r9d, cl
add r8b, 2
xor byte [rdi + 0xc84], r9b
mov edx, r10d
mov ecx, r8d
shr edx, cl
xor byte [rdi + 0xc85], dl
mov edx, r10d
mov ecx, eax
shr edx, cl
xor byte [rdi + 0xc86], dl
movabs r14, 0xf50248012149c4e6
xor byte [rdi + 0xc87], r10b
lea rdx, [rdi + 0xc78]
mov rcx, rdi
mov r8, rdx
call fcn.18000a8c0
mov ecx, ebp
movabs rdx, 0xafdb7fedeb63b19
xor rdx, rcx
movabs r8, 0xffffffff627d0801
xor r8, rcx
lea r9, [r14 - 1]
xor r9, rcx
mov r10d, 0x9d82f7fd
mov r11, rcx
xor r11, r10
mov r15, rcx
xor r15, r14
inc r10
xor r10, rcx
add r9, r10
xor eax, eax
xor r12d, r12d
nop word [rax + rax]
movzx ebp, byte [rdi + r12 + 0xc78]
xor byte [rsi + r12], bpl
mov r13, qword [rsp + 0x40]
or r13, rdx
not r13
imul r13, r8
add r12, r9
add r12, r13
mov r13, qword [rsp + 0x40]
xor r13, rcx
xor r13, r14
imul r13, r11
add r12, r13
mov r13, qword [rsp + 0x40]
or r13, r15
sub r12, r13
mov r13, qword [rsp + 0x40]
and r13, rdx
not r13
imul r13, r10
add r12, r13
cmp r12, rbx
jne 0x18000e9f0
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret