Function at 0x140117cfc
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
lea rdi, [rsp + 0x30]
mov rcx, rdi
call fcn.14018233f
cmp byte [rdi], 0x14
jne 0x140117f2e
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0xe0], rax
lea rax, [0x1403659c8]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0x203c24a0dbf0259e
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.14000a832
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x90], xmm0
movdqa xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xb0], 0
mov rcx, 0xfffffffffffffff8
lea rdx, [0x14036e540]
mov rbp, qword [rcx + rdx + 8]
xor rbp, qword [rax + rcx + 8]
mov qword [rsp + rcx + 0x98], rbp
add rcx, 8
cmp rcx, 0x20
jb 0x140117d8c
mov ecx, 0x786ccf37
xor ecx, dword [rax + 0x28]
lea r8, [rsp + 0x90]
mov dword [r8 + 0x28], ecx
mov al, byte [rax + 0x2c]
xor al, 0xb2
mov byte [r8 + 0x2c], al
lea rsi, [rsp + 0x60]
lea rdx, [rsp + 0xe0]
mov r9d, 0x2d
mov rcx, rsi
call fcn.14011a4ed
cmp byte [rsi], 0x14
jne 0x14011849b
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rcx]
call qword [rax + 0x10]
lea r14, [rbx + rbx*2]
shl r14, 4
add r14, rsi
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0xa8], rsi
test rbx, rbx
je 0x140117f1f
lea r13, [rsp + 0x50]
lea rdi, [rsp + 0x60]
lea r15, [rsp + 0x30]
lea r12, [0x14036e5a0]
lea rbx, [0x14036e5c0]
lea rbp, [rsi + 0x30]
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x140117f12
mov rcx, qword [rsi + 0x10]
mov qword [rsp + 0x40], rcx
movups xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [rsi + 0x20]
movups xmmword [r13], xmm0
mov rcx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x40]
lea rcx, [rcx + rax + 1]
movdqa xmm0, xmmword [rax]
pmovmskb esi, xmm0
not esi
lea rdx, [rax + 0x10]
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
mov word [rsp + 0x78], si
mov qword [rsp + 0x80], r8
mov rcx, rdi
call fcn.140131ec2
test rax, rax
je 0x140117efb
mov rsi, rax
add rsi, 0xffffffffffffffe0
mov rcx, rsi
mov rdx, r12
call fcn.14011a8b0
test al, al
jne 0x1401183ce
mov rcx, rsi
mov rdx, rbx
call fcn.14011a8b0
test al, al
je 0x140117ec0
jmp 0x1401183ce
mov rcx, r15
call fcn.140131d69
mov rsi, rbp
cmp rbp, r14
jne 0x140117e57
mov rbp, r14
mov qword [rsp + 0x98], rbp
lea rdi, [rsp + 0x30]
lea rcx, [rsp + 0x90]
call fcn.14011a83c
jmp 0x140117f38
lea rcx, [rsp + 0x30]
call fcn.140004a28
lea rsi, [rsp + 0x60]
mov rcx, rsi
call fcn.14018233f
cmp byte [rsi], 0x14
jne 0x14011843c
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0xe0], rax
lea rax, [0x140364d49]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0x1af801ca52e2902f
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.140009124
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xa0], 0
mov rcx, 0xfffffffffffffff8
lea rdx, [0x14036e630]
mov rbp, qword [rcx + rdx + 8]
xor rbp, qword [rax + rcx + 8]
mov qword [rsp + rcx + 0x98], rbp
add rcx, 8
cmp rcx, 0x10
jb 0x140117fac
mov ecx, 0xbc275b01
xor ecx, dword [rax + 0x18]
lea r8, [rsp + 0x90]
mov dword [r8 + 0x18], ecx
movzx ecx, byte [rax + 0x1e]
movzx eax, word [rax + 0x1c]
xor eax, 0x44e2
mov word [r8 + 0x1c], ax
xor cl, 0xad
mov byte [r8 + 0x1e], cl
lea rsi, [rsp + 0x60]
lea rdx, [rsp + 0xe0]
mov r9d, 0x1f
mov rcx, rsi
call fcn.14011a4ed
cmp byte [rsi], 0x14
jne 0x14011846d
mov rbx, qword [rsp + 0x68]
mov r14, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rcx]
call qword [rax + 0x10]
test rdi, rdi
je 0x14011805b
mov rax, rdi
shl rax, 4
lea rbp, [rax + rax*2]
mov rcx, r14
lea rsi, [rcx + 0x30]
call fcn.140131d69
mov rcx, rsi
add rbp, 0xffffffffffffffd0
jne 0x140118049
test rbx, rbx
je 0x140118072
mov rcx, qword [0x1403ce198]
xor edx, edx
mov r8, r14
call qword [sym.imp.kernel32.dll_HeapFree]
cmp rdi, 2
jb 0x1401183ec
lea rsi, [rsp + 0x30]
mov rcx, rsi
call fcn.14018233f
cmp byte [rsi], 0x14
jne 0x1401182f6
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0xd8], rax
xor edi, edi
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0xc8], 8
mov qword [rsp + 0xd0], rdi
lea rax, [0x140368203]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0x7802cdcd50d9306
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.140009703
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xa0], rdi
mov rcx, 0xfffffffffffffff8
lea rdx, [0x14036e5e0]
mov rbp, qword [rcx + rdx + 8]
xor rbp, qword [rax + rcx + 8]
mov qword [rsp + rcx + 0x98], rbp
add rcx, 8
cmp rcx, 0x10
jb 0x14011810a
mov ecx, 0x463f7245
xor ecx, dword [rax + 0x18]
lea r8, [rsp + 0x90]
mov dword [r8 + 0x18], ecx
movzx eax, word [rax + 0x1c]
xor eax, 0x49be
mov word [r8 + 0x1c], ax
lea rsi, [rsp + 0x60]
lea rdx, [rsp + 0xd8]
mov r9d, 0x1e
mov rcx, rsi
call fcn.14011a4ed
cmp byte [rsi], 0x14
jne 0x1401184c9
mov rsi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0xd8]
mov rax, qword [rcx]
call qword [rax + 0x10]
lea r13, [rdi + rdi*2]
shl r13, 4
add r13, rbx
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0xa0], r13
mov qword [rsp + 0xa8], rbx
mov r14d, 8
test rdi, rdi
je 0x140118305
xor edi, edi
lea rsi, [rsp + 0x60]
lea r12, [rsp + 0x30]
lea r15, [rbx + 0x30]
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x1401182dc
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x40], rcx
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [rbx + 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 ebx, xmm0
not ebx
lea rbp, [rax + 0x10]
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rax
mov word [rsp + 0x78], bx
mov qword [rsp + 0x80], rdx
mov rcx, rsi
call fcn.140131ec2
test rax, rax
je 0x1401182c5
cmp byte [rax - 0x20], 2
jne 0x14011823b
mov rdx, qword [rax - 0x10]
mov r8, qword [rax - 8]
lea rcx, [rsp + 0xe0]
call fcn.140031440
cmp rdi, qword [rsp + 0xc0]
jne 0x14011828d
lea rcx, [rsp + 0xc0]
mov rdx, rdi
call fcn.14007e5bc
mov r14, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xd0]
lea rax, [rdi + rdi*2]
mov rcx, qword [rsp + 0xf0]
mov qword [r14 + rax*8 + 0x10], rcx
movdqu xmm0, xmmword [rsp + 0xe0]
movdqu xmmword [r14 + rax*8], xmm0
mov rdi, qword [rsp + 0xd0]
inc rdi
mov qword [rsp + 0xd0], rdi
jmp 0x14011823b
mov rcx, r12
call fcn.140131d69
mov rbx, r15
cmp r15, r13
jne 0x1401181cf
mov r15, r13
mov qword [rsp + 0x98], r15
mov r15, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xc8]
jmp 0x14011830a
lea rcx, [rsp + 0x30]
call fcn.140004a28
jmp 0x1401183b9
xor edi, edi
xor r15d, r15d
lea rcx, [rsp + 0x90]
call fcn.14011a83c
lea rax, [rdi + rdi*2]
lea rsi, [r14 + rax*8]
mov rbx, r14
test rdi, rdi
je 0x140118383
lea rbx, [r14 + 0x18]
lea rdi, [rax*8 - 0x18]
mov rbp, qword [sym.imp.kernel32.dll_HeapFree]
mov r8, qword [rbx - 0x10]
test r8, r8
je 0x140118383
mov rax, qword [rbx - 0x18]
mov rcx, qword [rbx - 8]
cmp rcx, 0x40
je 0x1401183f3
cmp rcx, 0x80
je 0x1401183f3
test rax, rax
je 0x140118372
mov rcx, qword [0x1403ce198]
xor edx, edx
call rbp
add rbx, 0x18
add rdi, 0xffffffffffffffe8
cmp rdi, 0xffffffffffffffe8
jne 0x14011833a
mov rbx, rsi
sub rsi, rbx
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, rsi
mul rcx
shr rdx, 4
mov rcx, rbx
call fcn.140026fa9
test r15, r15
je 0x1401183b9
mov rcx, qword [0x1403ce198]
xor edx, edx
mov r8, r14
call qword [sym.imp.kernel32.dll_HeapFree]
nop
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], rbp
lea rcx, [rsp + 0x30]
call fcn.140131d69
mov rcx, rsi
call fcn.14011a83c
call fcn.140162ba0
ud2
test rax, rax
je 0x140118407
mov rcx, qword [0x1403ce198]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, rdi
mul rcx
shr rdx, 4
mov rcx, rbx
call fcn.140026fa9
test r15, r15
je 0x1401183ec
mov rcx, qword [0x1403ce198]
xor edx, edx
mov r8, r14
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x1401183ec
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 0x1401184f5
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 0x1401184f5
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 0x1401184f5
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, [0x1403a0f2b]
lea r9, fcn.140004a28
mov edx, 0x2b
call fcn.1402a68e0
ud2