Function at 0x18000a310
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, 0x88
mov r12d, edx
mov rsi, rcx
rdtsc
mov rcx, rdx
shl rcx, 0x20
or rcx, rax
rdtsc
shl rdx, 0x20
or rdx, rax
cmp rcx, rdx
mov eax, 0x19812d67
mov ebp, 0xcefc867f
cmove ebp, eax
mov ebx, 0xffffffff
test rsi, rsi
je 0x18000a89b
mov r15, r8
mov eax, 0xcefc867d
lea rdi, [rsi + 0xc68]
mov r14d, ebp
lea r13, [rax - 0xe]
xor r13, r14
mov rcx, rdi
xor edx, edx
mov r8, r13
mov ebx, r9d
call fcn.18003ad10
lea rcx, [rsi + 0xc78]
mov qword [rsp + 0x80], rcx
xor edx, edx
mov r8, r13
call fcn.18003ad10
mov dword [rsi + 0xb48], r12d
mov qword [rsi + 0xc50], 0
mov eax, ebp
xor eax, 0xbd483713
and eax, dword [rsp + 0x3c]
mov ecx, ebp
xor ecx, 0x31037981
imul ecx, eax
mov edx, ebp
xor edx, 0x42b7c8ec
mov r8d, dword [rsp + 0x3c]
or r8d, edx
mov eax, ebp
xor eax, 0xcefc867e
imul r8d, eax
mov r9d, dword [rsp + 0x3c]
xor r9d, edx
add r9d, r8d
mov r8d, ebp
and edx, dword [rsp + 0x3c]
xor r8d, 0x2995e4a5
mov r10d, ebp
xor r10d, 0xcefc8673
add r10d, r8d
add r10d, ecx
add r10d, r9d
add r10d, edx
cmp r10d, ebx
jne 0x18000a43b
mov eax, 0xcefc867d
lea r8, [rax - 0xa]
xor r8, r14
mov rcx, rdi
mov rdx, r15
call fcn.18003abb0
mov eax, ebp
xor al, 0x7e
mov byte [rsi + 0xc77], al
jmp 0x18000a7a8
mov r11d, ebx
mov qword [rsp + 0x68], rdi
mov ecx, ebp
xor ecx, 0xa88ed095
mov edx, dword [rsp + 0x64]
or edx, ecx
not edx
imul edx, eax
mov r8d, dword [rsp + 0x64]
not r8d
or r8d, ecx
mov r9d, ebp
xor r9d, 0x94
mov ecx, ebp
xor ecx, 0x7d
add ecx, r9d
sub ecx, r8d
add ecx, edx
mov edi, ebx
shl edi, cl
mov ecx, dword [rsp + 0x38]
not ecx
mov edx, ebp
xor edx, 0x243ee0
and ecx, edx
mov r8d, ebp
xor r8d, 0x7c
imul r8d, ecx
mov r9d, ebp
xor r9d, 0xbc
mov r10d, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x38]
xor ecx, ebp
xor ecx, 0x1f
add ecx, r10d
and edx, dword [rsp + 0x38]
mov r10d, ebp
xor r10d, 0x67
add r10d, r9d
add r10d, r8d
add r10d, edx
imul ecx, eax
add ecx, r10d
mov ebx, edi
shr ebx, cl
mov edx, ebp
xor edx, 0x46
mov r8d, dword [rsp + 0x60]
and r8d, edx
imul r8d, eax
mov r9d, ebp
xor r9d, 0xb9
or r9d, dword [rsp + 0x60]
mov r10d, ebp
xor r10d, 0xb8
mov ecx, ebp
xor ecx, 0x70
add ecx, r10d
sub ecx, r9d
add ecx, r8d
mov r9d, edi
shr r9d, cl
mov ecx, dword [rsp + 0x44]
not ecx
mov r8d, ebp
xor r8d, 0x69d9aeb9
and ecx, r8d
imul ecx, eax
mov eax, dword [rsp + 0x44]
xor eax, r8d
or r8d, dword [rsp + 0x44]
add r8d, ecx
mov ecx, ebp
xor ecx, 0x77
add ecx, edx
sub ecx, eax
add ecx, r8d
inc cl
mov eax, edi
shr eax, cl
test r11d, r11d
mov dword [rsp + 0x34], ebp
mov qword [rsp + 0x78], r14
mov dword [rsp + 0x5c], edi
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x54], r9d
mov dword [rsp + 0x50], eax
je 0x18000a6ca
xor ebp, 0xcefc866f
mov dword [rsp + 0x2c], ebp
movabs r13, 0x1cc3db4679c92e1b
mov rcx, r14
xor r13, r14
mov r12, r14
mov eax, 0xcefc867d
xor r12, rax
movabs r14, 0xe33c24b98636d1e2
xor r14, rcx
lea rdi, [rax + 1]
xor rdi, rcx
add r14, rdi
nop word cs:[rax + rax]
mov ebx, dword [rsp + 0x2c]
cmp r11d, ebx
cmovb ebx, r11d
test ebx, ebx
mov dword [rsp + 0x30], r11d
je 0x18000a620
mov ebp, ebx
xor eax, eax
nop dword [rax + rax]
movzx ecx, byte [r15 + rax]
xor byte [rsi + rax + 0xc68], cl
mov rcx, qword [rsp + 0x48]
and rcx, r13
imul rcx, r12
add rax, r14
sub rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x48]
or rdx, r13
add rdx, rax
add rdx, rcx
mov rax, qword [rsp + 0x48]
and rax, r13
not rax
imul rax, rdi
add rax, rdx
cmp rax, rbp
jne 0x18000a5d0
jmp 0x18000a622
xor ebp, ebp
mov rcx, rsi
mov rdx, qword [rsp + 0x68]
mov r8, rdx
call fcn.18000a8c0
mov r11d, dword [rsp + 0x30]
sub r11d, ebx
je 0x18000a644
add r15, rbp
jmp 0x18000a5b0
movzx eax, byte [rsi + 0xc68]
mov dword [rsp + 0x30], eax
movzx eax, byte [rsi + 0xc69]
mov dword [rsp + 0x2c], eax
movzx eax, byte [rsi + 0xc6a]
mov dword [rsp + 0x40], eax
movzx r8d, byte [rsi + 0xc6b]
movzx r9d, byte [rsi + 0xc6c]
movzx r10d, byte [rsi + 0xc6d]
movzx r11d, byte [rsi + 0xc6e]
movzx edi, byte [rsi + 0xc6f]
movzx ebp, byte [rsi + 0xc70]
movzx r15d, byte [rsi + 0xc71]
movzx r13d, byte [rsi + 0xc72]
movzx ecx, byte [rsi + 0xc73]
movzx eax, byte [rsi + 0xc74]
movzx r12d, byte [rsi + 0xc75]
movzx r14d, byte [rsi + 0xc76]
movzx ebx, byte [rsi + 0xc77]
jmp 0x18000a704
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x2c], 0
mov dword [rsp + 0x40], 0
xor r8d, r8d
xor r9d, r9d
xor r10d, r10d
xor r11d, r11d
xor edi, edi
xor ebp, ebp
xor r15d, r15d
xor r13d, r13d
xor ecx, ecx
xor eax, eax
xor r12d, r12d
xor r14d, r14d
xor ebx, ebx
mov edx, dword [rsp + 0x30]
mov byte [rsi + 0xc68], dl
mov edx, dword [rsp + 0x2c]
mov byte [rsi + 0xc69], dl
mov edx, dword [rsp + 0x40]
mov byte [rsi + 0xc6a], dl
mov byte [rsi + 0xc6b], r8b
mov byte [rsi + 0xc6c], r9b
mov byte [rsi + 0xc6d], r10b
mov byte [rsi + 0xc6e], r11b
mov byte [rsi + 0xc6f], dil
mov byte [rsi + 0xc70], bpl
mov byte [rsi + 0xc71], r15b
mov byte [rsi + 0xc72], r13b
mov byte [rsi + 0xc73], cl
xor al, byte [rsp + 0x58]
mov byte [rsi + 0xc74], al
xor r12b, byte [rsp + 0x54]
mov byte [rsi + 0xc75], r12b
xor r14b, byte [rsp + 0x50]
mov byte [rsi + 0xc76], r14b
xor bl, byte [rsp + 0x5c]
mov byte [rsi + 0xc77], bl
mov rcx, rsi
mov rdi, qword [rsp + 0x68]
mov rdx, rdi
mov r8, rdi
call fcn.18000a8c0
mov ebp, dword [rsp + 0x34]
mov r14, qword [rsp + 0x78]
mov ebx, 0xffffffff
lea r8, [rsi + 0xc58]
mov rcx, rsi
mov rdx, rdi
call section..text
test eax, eax
jne 0x18000a89b
mov ebx, dword [rsp + 0xf8]
mov dword [rsi + 0xc54], ebx
test ebx, ebx
je 0x18000a899
mov rdx, r14
mov ecx, 0xcefc867d
mov rdi, qword [rsp + 0xf0]
xor ebp, 0xcefc866f
movabs r14, 0xaf2b93428b12ee0d
xor r14, rdx
lea r15, [rcx + 1]
xor r15, rdx
mov r12, rdx
xor r12, rcx
movabs rax, 0x50d46cbd74ed11f2
xor rax, rdx
dec rcx
xor rcx, rdx
lea r13, [rax + rcx]
inc r13
mov dword [rsp + 0x34], ebp
nop word [rax + rax]
cmp ebx, ebp
cmovb ebp, ebx
xor eax, eax
nop word [rax + rax]
movzx ecx, byte [rdi + rax]
xor byte [rsi + rax + 0xc78], cl
mov rcx, qword [rsp + 0x70]
xor rcx, r14
add rax, r13
add rax, qword [rsp + 0x70]
imul rcx, r15
add rax, rcx
mov rcx, qword [rsp + 0x70]
not rcx
or rcx, r14
imul rcx, r12
add rax, rcx
cmp rax, rbp
jne 0x18000a840
mov rcx, rsi
mov rdx, qword [rsp + 0x80]
mov r8, rdx
call fcn.18000a8c0
sub ebx, ebp
je 0x18000a899
add rdi, rbp
mov ebp, dword [rsp + 0x34]
jmp 0x18000a830
xor ebx, ebx
mov eax, ebx
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret