Function at 0x1400014f0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
push r12
lea rbp, [rsp - 0x18]
sub rsp, 0x118
mov rax, qword [0x140028040]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov qword [rsp + 0x38], r8
mov rdi, rcx
cmp edx, 2
jle 0x140001b47
movzx eax, byte [rcx + 1]
sub edx, 2
movsx r12d, byte [rcx]
shl r12d, 8
or r12d, eax
mov eax, edx
mov dword [rsp + 0x30], r12d
and eax, 0x8000000f
jge 0x140001548
dec eax
or eax, 0xfffffff0
inc eax
mov ebx, edx
sub ebx, eax
test eax, eax
cmove ebx, edx
add ebx, 0x10
je 0x140001b47
mov eax, ebx
and eax, 0x8000000f
jge 0x14000156a
dec eax
or eax, 0xfffffff0
inc eax
test eax, eax
jne 0x140001b47
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [r9 + rax], 0
jne 0x140001580
cmp eax, 0x10
jne 0x140001b47
mov qword [rsp + 0x108], r14
mov rcx, r9
mov qword [rsp + 0x100], r15
call fcn.140001070
xor r14d, r14d
movsxd r15, ebx
test ebx, ebx
jle 0x140001b32
mov r12, qword [rsp + 0x38]
lea r8, [rsp + 0x70]
mov qword [rsp + 0x140], rsi
lea r10, [rbp - 0x70]
mov qword [rsp + 0x110], r13
lea r11, [rbp - 0x60]
lea r13, [rdi + 4]
xor esi, esi
lea r9, [0x140000000]
nop dword [rax + rax]
xor edx, edx
lea rcx, [rsi + r13]
nop word [rax + rax]
movzx eax, byte [rcx - 2]
lea rcx, [rcx + 4]
mov dword [r8 + rdx*4], eax
movzx eax, byte [rcx - 5]
mov dword [rbp + rdx*4 - 0x80], eax
movzx eax, byte [rcx - 4]
mov dword [r10 + rdx*4], eax
movzx eax, byte [rcx - 3]
mov dword [r11 + rdx*4], eax
inc rdx
cmp rdx, 4
jl 0x140001600
xor edx, edx
nop
mov ecx, dword [rdx + r9 + 0x2b870]
mov eax, ecx
sar eax, 0x18
movzx eax, al
xor dword [rsp + rdx + 0x70], eax
mov eax, ecx
sar eax, 0x10
movzx eax, al
xor dword [rbp + rdx - 0x80], eax
mov eax, ecx
sar eax, 8
movzx eax, al
xor dword [rbp + rdx - 0x70], eax
movzx eax, cl
xor dword [rbp + rdx - 0x60], eax
add rdx, 4
cmp rdx, 0x10
jl 0x140001630
lea rbx, [0x14002b864]
mov edi, 9
nop dword [rax]
lea rdx, [rsp + 0x74]
mov r8d, 4
nop dword [rax + rax]
movsxd rax, dword [rdx - 4]
lea rdx, [rdx + 0x10]
mov rcx, rax
and eax, 0xf
sar rcx, 4
and ecx, 0xf
shl rcx, 4
add rcx, rax
mov eax, dword [r9 + rcx*4 + 0x1f6e0]
mov dword [rdx - 0x14], eax
movsxd rax, dword [rdx - 0x10]
mov rcx, rax
and eax, 0xf
sar rcx, 4
and ecx, 0xf
shl rcx, 4
add rcx, rax
mov eax, dword [r9 + rcx*4 + 0x1f6e0]
mov dword [rdx - 0x10], eax
movsxd rax, dword [rdx - 0xc]
mov rcx, rax
and eax, 0xf
sar rcx, 4
and ecx, 0xf
shl rcx, 4
add rcx, rax
mov eax, dword [r9 + rcx*4 + 0x1f6e0]
mov dword [rdx - 0xc], eax
movsxd rax, dword [rdx - 8]
mov rcx, rax
and eax, 0xf
sar rcx, 4
and ecx, 0xf
shl rcx, 4
add rcx, rax
mov eax, dword [r9 + rcx*4 + 0x1f6e0]
mov dword [rdx - 8], eax
sub r8, 1
jne 0x140001690
movups xmm1, xmmword [rbp - 0x80]
xor ecx, ecx
movups xmm2, xmmword [rbp - 0x70]
movups xmm3, xmmword [rbp - 0x60]
movups xmmword [rsp + 0x38], xmm1
movups xmmword [rsp + 0x48], xmm2
movups xmmword [rsp + 0x58], xmm3
movups xmmword [rsp + 0x20], xmm1
mov eax, dword [rsp + 0x24]
movdqa xmm0, xmm1
mov dword [rsp + 0x40], eax
psrldq xmm0, 8
movd dword [rsp + 0x44], xmm0
movdqa xmm0, xmm2
psrldq xmm0, 0xc
movups xmmword [rsp + 0x20], xmm2
mov eax, dword [rsp + 0x24]
movd dword [rsp + 0x4c], xmm0
movdqa xmm0, xmm3
movups xmmword [rsp + 0x20], xmm3
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x24]
movd dword [rsp + 0x3c], xmm1
movd dword [rsp + 0x50], xmm2
movd dword [rsp + 0x64], xmm3
psrldq xmm0, 0xc
psrldq xmm1, 0xc
psrldq xmm2, 8
psrldq xmm3, 8
movd dword [rsp + 0x60], xmm0
movd dword [rsp + 0x38], xmm1
movd dword [rsp + 0x48], xmm2
movd dword [rsp + 0x5c], xmm3
mov dword [rsp + 0x58], eax
nop
mov eax, dword [rsp + rcx + 0x38]
mov dword [rbp + rcx - 0x80], eax
mov eax, dword [rsp + rcx + 0x48]
mov dword [rbp + rcx - 0x70], eax
mov eax, dword [rsp + rcx + 0x58]
mov dword [rbp + rcx - 0x60], eax
add rcx, 4
cmp rcx, 0x10
jl 0x1400017d0
lea rcx, [rsp + 0x70]
call fcn.140001360
mov ecx, dword [rbx - 4]
mov eax, ecx
sar eax, 0x18
movzx eax, al
mov dword [rbp - 0x50], eax
mov edx, dword [rbx]
mov eax, edx
mov r8d, dword [rbx + 4]
mov r9d, dword [rbx + 8]
sar eax, 0x18
movzx eax, al
mov dword [rbp - 0x4c], eax
mov eax, r8d
sar eax, 0x18
movzx eax, al
mov dword [rbp - 0x48], eax
mov eax, r9d
sar eax, 0x18
movzx eax, al
mov dword [rbp - 0x44], eax
mov eax, ecx
sar eax, 0x10
movzx eax, al
mov dword [rbp - 0x40], eax
mov eax, edx
sar eax, 0x10
movzx eax, al
mov dword [rbp - 0x3c], eax
mov eax, r8d
sar eax, 0x10
movzx eax, al
mov dword [rbp - 0x38], eax
mov eax, r9d
sar eax, 0x10
movzx eax, al
mov dword [rbp - 0x34], eax
mov eax, ecx
sar eax, 8
movzx eax, al
mov dword [rbp - 0x30], eax
mov eax, edx
sar eax, 8
movzx eax, al
mov dword [rbp - 0x2c], eax
mov eax, r8d
sar eax, 8
movzx eax, al
mov dword [rbp - 0x28], eax
mov eax, r9d
sar eax, 8
movzx eax, al
mov dword [rbp - 0x24], eax
movzx eax, cl
lea rcx, [rbp - 0x50]
mov dword [rbp - 0x20], eax
movzx eax, dl
mov dword [rbp - 0x1c], eax
movzx eax, r8b
mov dword [rbp - 0x18], eax
movzx eax, r9b
mov dword [rbp - 0x14], eax
call fcn.140001360
xor eax, eax
nop dword [rax + rax]
mov ecx, dword [rbp + rax - 0x50]
xor dword [rsp + rax + 0x70], ecx
mov ecx, dword [rbp + rax - 0x4c]
xor dword [rsp + rax + 0x74], ecx
mov ecx, dword [rbp + rax - 0x48]
xor dword [rsp + rax + 0x78], ecx
mov ecx, dword [rbp + rax - 0x44]
xor dword [rsp + rax + 0x7c], ecx
add rax, 0x10
cmp rax, 0x40
jl 0x1400018c0
sub rbx, 0x10
lea r9, [0x140000000]
sub rdi, 1
jne 0x140001680
lea rdx, [rsp + 0x74]
mov r8d, 4
lea r9, [0x140000000]
movsxd rax, dword [rdx - 4]
lea rdx, [rdx + 0x10]
mov rcx, rax
and eax, 0xf
sar rcx, 4
and ecx, 0xf
shl rcx, 4
add rcx, rax
mov eax, dword [r9 + rcx*4 + 0x1f6e0]
mov dword [rdx - 0x14], eax
movsxd rax, dword [rdx - 0x10]
mov rcx, rax
and eax, 0xf
sar rcx, 4
and ecx, 0xf
shl rcx, 4
add rcx, rax
mov eax, dword [r9 + rcx*4 + 0x1f6e0]
mov dword [rdx - 0x10], eax
movsxd rax, dword [rdx - 0xc]
mov rcx, rax
and eax, 0xf
sar rcx, 4
and ecx, 0xf
shl rcx, 4
add rcx, rax
mov eax, dword [r9 + rcx*4 + 0x1f6e0]
mov dword [rdx - 0xc], eax
movsxd rax, dword [rdx - 8]
mov rcx, rax
and eax, 0xf
sar rcx, 4
and ecx, 0xf
shl rcx, 4
add rcx, rax
mov eax, dword [r9 + rcx*4 + 0x1f6e0]
mov dword [rdx - 8], eax
sub r8, 1
jne 0x140001911
movups xmm1, xmmword [rbp - 0x80]
xor ecx, ecx
movups xmm2, xmmword [rbp - 0x70]
movups xmm3, xmmword [rbp - 0x60]
movups xmmword [rsp + 0x58], xmm1
movups xmmword [rsp + 0x48], xmm2
movups xmmword [rsp + 0x38], xmm3
movups xmmword [rsp + 0x20], xmm1
mov eax, dword [rsp + 0x24]
movdqa xmm0, xmm1
mov dword [rsp + 0x60], eax
psrldq xmm0, 8
movd dword [rsp + 0x64], xmm0
movdqa xmm0, xmm2
psrldq xmm0, 0xc
movups xmmword [rsp + 0x20], xmm2
mov eax, dword [rsp + 0x24]
movd dword [rsp + 0x4c], xmm0
movdqa xmm0, xmm3
movups xmmword [rsp + 0x20], xmm3
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x24]
movd dword [rsp + 0x5c], xmm1
movd dword [rsp + 0x50], xmm2
movd dword [rsp + 0x44], xmm3
psrldq xmm0, 0xc
psrldq xmm1, 0xc
psrldq xmm2, 8
psrldq xmm3, 8
movd dword [rsp + 0x40], xmm0
movd dword [rsp + 0x58], xmm1
movd dword [rsp + 0x48], xmm2
movd dword [rsp + 0x3c], xmm3
mov dword [rsp + 0x38], eax
nop
mov eax, dword [rsp + rcx + 0x58]
mov dword [rbp + rcx - 0x80], eax
mov eax, dword [rsp + rcx + 0x48]
mov dword [rbp + rcx - 0x70], eax
mov eax, dword [rsp + rcx + 0x38]
mov dword [rbp + rcx - 0x60], eax
add rcx, 4
cmp rcx, 0x10
jl 0x140001a50
xor edx, edx
nop dword [rax]
nop dword [rax + rax]
mov ecx, dword [rdx + r9 + 0x2b7d0]
mov eax, ecx
sar eax, 0x18
movzx eax, al
xor dword [rsp + rdx + 0x70], eax
mov eax, ecx
sar eax, 0x10
movzx eax, al
xor dword [rbp + rdx - 0x80], eax
mov eax, ecx
sar eax, 8
movzx eax, al
xor dword [rbp + rdx - 0x70], eax
movzx eax, cl
xor dword [rbp + rdx - 0x60], eax
add rdx, 4
cmp rdx, 0x10
jl 0x140001a80
movsxd rcx, r14d
lea r8, [rsp + 0x70]
add rcx, r12
lea r10, [rbp - 0x70]
xor edx, edx
lea r11, [rbp - 0x60]
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx*4]
mov byte [rcx], al
lea rcx, [rcx + 4]
movzx eax, byte [rbp + rdx*4 - 0x80]
mov byte [rcx - 3], al
movzx eax, byte [r10 + rdx*4]
mov byte [rcx - 2], al
movzx eax, byte [r11 + rdx*4]
inc rdx
mov byte [rcx - 1], al
cmp rdx, 4
jl 0x140001ae0
add r14d, 0x10
add rsi, 0x10
cmp rsi, r15
jl 0x1400015f0
mov r13, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x140]
mov r12d, dword [rsp + 0x30]
mov r15, qword [rsp + 0x100]
mov eax, r12d
mov r14, qword [rsp + 0x108]
jmp 0x140001b49
xor eax, eax
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.14001bfd0
add rsp, 0x118
pop r12
pop rdi
pop rbx
pop rbp
ret