Function at 0x140204617
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, 0xf8
lea rdx, [0x1404cb341]
lea r15, [rsp + 0x30]
mov r8d, 0xa
mov rcx, r15
call fcn.1402672b1
cmp byte [r15], 0x14
jne 0x14020485d
mov rdi, qword [rsp + 0x38]
mov qword [rsp + 0xd8], rdi
lea rax, [0x1404943af]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0x6f72d2a618cd83e4
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.14000a649
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x90], xmm0
movdqa xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], 0
mov rcx, 0xfffffffffffffff8
lea rdx, [0x140498930]
mov r8, qword [rcx + rdx + 8]
xor r8, qword [rax + rcx + 8]
mov qword [rsp + rcx + 0x98], r8
add rcx, 8
cmp rcx, 0x20
jb 0x1402046b5
mov ecx, 0xa1348341
xor ecx, dword [rax + 0x28]
lea r8, [rsp + 0x90]
mov dword [r8 + 0x28], ecx
mov al, byte [rax + 0x2c]
xor al, 0xf
mov byte [r8 + 0x2c], al
lea rbx, [rsp + 0x60]
lea rdx, [rsp + 0xd8]
mov r9d, 0x2d
mov rcx, rbx
call fcn.1400041a0
cmp byte [rbx], 0x14
jne 0x140204e4c
mov rbx, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x10]
lea rsi, [r14 + r14*2]
shl rsi, 4
add rsi, r12
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], r12
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], r12
test r14, r14
je 0x14020484e
lea rbp, [rsp + 0x50]
lea rdi, [rsp + 0x60]
lea rbx, [rsp + 0x30]
lea r14, [0x140498990]
lea r15, [0x1404989b0]
lea r13, [r12 + 0x30]
mov rax, qword [r12 + 0x18]
test rax, rax
je 0x140204841
mov rcx, qword [r12 + 0x10]
mov qword [rsp + 0x40], rcx
movups xmm0, xmmword [r12]
movaps xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [r12 + 0x20]
movups xmmword [rbp], xmm0
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
lea rcx, [rcx + rax + 1]
movdqa xmm0, xmmword [rax]
pmovmskb r8d, xmm0
not r8d
lea r9, [rax + 0x10]
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
mov word [rsp + 0x78], r8w
mov qword [rsp + 0x80], rdx
mov rcx, rdi
call fcn.1401f952e
test rax, rax
je 0x14020482a
mov r12, rax
add r12, 0xffffffffffffffe0
je 0x14020482a
mov rcx, r12
mov rdx, r14
call fcn.14020d8a4
test al, al
jne 0x140204da8
mov rcx, r12
mov rdx, r15
call fcn.14020d8a4
test al, al
je 0x1402047ed
jmp 0x140204da8
mov rcx, rbx
call fcn.1401f93da
mov r12, r13
cmp r13, rsi
jne 0x14020477b
mov r13, rsi
mov qword [rsp + 0x98], r13
lea r15, [rsp + 0x30]
lea rcx, [rsp + 0x90]
call fcn.14020d4fc
jmp 0x140204867
lea rcx, [rsp + 0x30]
call fcn.1401ece54
lea rdx, [0x1404cb341]
lea rdi, [rsp + 0x60]
mov r8d, 0xa
mov rcx, rdi
call fcn.1402672b1
cmp byte [rdi], 0x14
jne 0x140204ded
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0xd8], rax
lea rax, [0x140489cc6]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0xcfd7e7ef7cc15d75
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.14000c88b
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xa0], 0
mov rcx, 0xfffffffffffffff8
lea rdx, str.uT_n
mov r8, qword [rcx + rdx + 8]
xor r8, qword [rax + rcx + 8]
mov qword [rsp + rcx + 0x98], r8
add rcx, 8
cmp rcx, 0x10
jb 0x1402048e8
mov ecx, 0x807862e5
xor ecx, dword [rax + 0x18]
lea r15, [rsp + 0x90]
mov dword [r15 + 0x18], ecx
movzx ecx, byte [rax + 0x1e]
movzx eax, word [rax + 0x1c]
xor eax, 0x1a17
mov word [r15 + 0x1c], ax
xor cl, 0xb4
mov byte [r15 + 0x1e], cl
lea r12, [rsp + 0x60]
lea rdx, [rsp + 0xd8]
mov r9d, 0x1f
mov rcx, r12
mov r8, r15
call fcn.1400041a0
cmp byte [r12], 0x14
jne 0x140204e1e
mov rax, qword [rsp + 0x78]
lea rbx, [rsp + 0x30]
mov qword [rbx + 0x10], rax
movdqu xmm0, xmmword [rsp + 0x68]
movdqa xmmword [rbx], xmm0
mov rcx, qword [rsp + 0xd8]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rsi, qword [rbx + 0x10]
mov rcx, rbx
call fcn.1401f9388
cmp rsi, 3
jb 0x140204dc6
lea rdx, [0x1404cb341]
lea r14, [rsp + 0x30]
mov r8d, 0xa
mov rcx, r14
call fcn.1402672b1
cmp byte [r14], 0x14
jne 0x140204c34
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0xf0], rbx
xor esi, esi
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xc8], 8
mov qword [rsp + 0xd0], rsi
lea rax, [0x14049234b]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0x93fe0c3f055dac69
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.14000baa1
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xa0], rsi
mov rcx, 0xfffffffffffffff8
lea rdx, str.AEC74
mov r8, qword [rcx + rdx + 8]
xor r8, qword [rax + rcx + 8]
mov qword [rsp + rcx + 0x98], r8
add rcx, 8
cmp rcx, 0x10
jb 0x140204a32
mov ecx, 0x1e4bc997
xor ecx, dword [rax + 0x18]
lea r8, [rsp + 0x90]
mov dword [r8 + 0x18], ecx
movzx eax, word [rax + 0x1c]
xor eax, 0x5f4b
mov word [r8 + 0x1c], ax
lea r14, [rsp + 0x60]
lea rdx, [rsp + 0xf0]
mov r9d, 0x1e
mov rcx, r14
call fcn.1400041a0
cmp byte [r14], 0x14
jne 0x140204e7a
mov rsi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
lea rdi, [r14 + r14*2]
shl rdi, 4
add rdi, rbp
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x98], rbp
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0xa8], rbp
mov esi, 8
xor ebx, ebx
test r14, r14
je 0x140204c43
lea r14, [rsp + 0x60]
lea r15, [rsp + 0x30]
lea r12, [rsp + 0xd8]
lea r13, [rbp + 0x30]
mov rax, qword [rbp + 0x18]
test rax, rax
je 0x140204c0d
mov rcx, qword [rbp + 0x10]
mov qword [rsp + 0x40], rcx
movups xmm0, xmmword [rbp]
movaps xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [rbp + 0x20]
lea rcx, [rsp + 0x50]
movups xmmword [rcx], xmm0
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
lea rcx, [rcx + rax + 1]
movdqa xmm0, xmmword [rax]
pmovmskb r8d, xmm0
not r8d
lea r9, [rax + 0x10]
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
mov word [rsp + 0x78], r8w
mov qword [rsp + 0x80], rdx
mov rcx, r14
call fcn.1401f952e
test rax, rax
je 0x140204bf6
mov rcx, rax
add rcx, 0xffffffffffffffe0
je 0x140204bf6
cmp byte [rcx], 2
jne 0x140204b6a
mov rdx, qword [rax - 0x10]
mov r8, qword [rax - 8]
mov rcx, r12
call fcn.140047c30
cmp rbx, qword [rsp + 0xc0]
jne 0x140204bbf
lea rcx, [rsp + 0xc0]
mov rdx, rbx
call fcn.14010b3da
mov rsi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xd0]
lea rax, [rbx + rbx*2]
mov rcx, qword [rsp + 0xe8]
mov qword [rsi + rax*8 + 0x10], rcx
movdqu xmm0, xmmword [rsp + 0xd8]
movdqu xmmword [rsi + rax*8], xmm0
mov rbx, qword [rsp + 0xd0]
inc rbx
mov qword [rsp + 0xd0], rbx
jmp 0x140204b6a
mov rcx, r15
call fcn.1401f93da
mov rbp, r13
cmp r13, rdi
jne 0x140204afa
mov r13, rdi
mov qword [rsp + 0x98], r13
mov rdi, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xc8]
lea r15, [rsp + 0x90]
lea r12, [rsp + 0x60]
jmp 0x140204c45
lea rcx, [rsp + 0x30]
call fcn.1401ece54
jmp 0x140204cd7
xor edi, edi
lea rcx, [rsp + 0x90]
call fcn.14020d4fc
lea rax, [rbx + rbx*2]
lea rax, [rsi + rax*8]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rsi
test rbx, rbx
je 0x140204ccd
add rsi, 0x18
shl rbx, 3
lea rdi, [rbx + rbx*2]
mov rbx, qword [sym.imp.kernel32.dll_HeapFree]
mov qword [rsp + 0x38], rsi
mov r8, qword [rsi - 0x10]
test r8, r8
je 0x140204ccd
mov rax, qword [rsi - 0x18]
mov rcx, qword [rsi - 8]
cmp rcx, 0x40
je 0x140204dcd
cmp rcx, 0x80
je 0x140204dcd
test rax, rax
je 0x140204cc3
mov rcx, qword [0x1404fd180]
xor edx, edx
call rbx
add rsi, 0x18
add rdi, 0xffffffffffffffe8
jne 0x140204c86
lea rcx, [rsp + 0x30]
call fcn.1400a9faa
mov esi, 0xa
xor ebx, ebx
rdtsc
mov r8d, edx
neg r8d
shl r8, 0x20
mov r9d, eax
xor ecx, ecx
xor eax, eax
mov r10, rbx
cpuid
xchg rbx, r10
rdtsc
shl rdx, 0x20
mov eax, eax
add rax, rbx
add rax, rdx
sub r8, r9
mov rbx, r8
add rbx, rax
mov ecx, 0x1f4
call sub.kernel32.dll_Sleep
dec esi
jne 0x140204cde
movabs rcx, 0xcccccccccccccccd
mov rax, rbx
mul rcx
shr rdx, 3
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x60], r15
lea rax, [fcn.14004b6a0]
mov qword [rsp + 0x68], rax
lea rax, str.Avg:
lea rcx, [rsp + 0x30]
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], 2
mov qword [rcx], 0
mov qword [rcx + 0x20], r12
mov qword [rcx + 0x28], 1
call fcn.140237360
mov rax, 0xfffffffffffffc18
mov rcx, qword [rsp + 0x90]
add rcx, rax
cmp rcx, rax
ja 0x140204d94
jmp 0x140204d92
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rsi, [rsp + 0x90]
mov qword [rsi + 8], r13
lea rcx, [rsp + 0x30]
call fcn.1401f93da
mov rcx, rsi
call fcn.14020d4fc
call fcn.140244360
ud2
test rax, rax
je 0x140204de1
mov rcx, qword [0x1404fd180]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
lea rcx, [rsp + 0x30]
call fcn.1400a9faa
jmp 0x140204dc6
movups xmm0, xmmword [rsp + 0x60]
movups xmm1, xmmword [rsp + 0x70]
movups xmm2, xmmword [rsp + 0x80]
lea r8, [rsp + 0x30]
movaps xmmword [r8 + 0x20], xmm2
movaps xmmword [r8 + 0x10], xmm1
movaps xmmword [r8], xmm0
lea rax, str.src_anti_emulation.rs
jmp 0x140204ea6
movups xmm0, xmmword [rsp + 0x60]
movups xmm1, xmmword [rsp + 0x70]
movups xmm2, xmmword [rsp + 0x80]
lea r8, [rsp + 0x30]
movaps xmmword [r8 + 0x20], xmm2
movaps xmmword [r8 + 0x10], xmm1
movaps xmmword [r8], xmm0
lea rax, str.src_anti_emulation.rs
jmp 0x140204ea6
movups xmm0, xmmword [rsp + 0x60]
movups xmm1, xmmword [rsp + 0x70]
movups xmm2, xmmword [rsp + 0x80]
lea r8, [rsp + 0x30]
movaps xmmword [r8 + 0x20], xmm2
movaps xmmword [r8 + 0x10], xmm1
movaps xmmword [r8], xmm0
lea rax, str.src_anti_emulation.rs
jmp 0x140204ea6
movups xmm0, xmmword [rsp + 0x60]
movups xmm1, xmmword [rsp + 0x70]
movups xmm2, xmmword [rsp + 0x80]
lea r8, [rsp + 0x30]
movaps xmmword [r8 + 0x20], xmm2
movaps xmmword [r8 + 0x10], xmm1
movaps xmmword [r8], xmm0
lea rax, str.src_anti_emulation.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x1404ccfe2]
lea r9, fcn.1401ece54
mov edx, 0x2b
call fcn.14038ebe0
ud2