Function at 0x1401fe530
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
push r15
push r14
push r13
mov r13, rdx
push r12
push rdi
push rsi
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0x1f0
mov r12, qword [rbp + 0x40]
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x20], r8
mov rcx, r12
mov qword [rbp + 0x28], r9
call fcn.14005a660
mov rcx, r12
mov qword [rsp + 0x90], rax
call fcn.14005a2e0
mov rcx, r12
mov qword [rsp + 0x80], rax
call fcn.14005a380
mov r8, qword [rbp + 0x20]
mov r9, qword [rbp + 0x28]
mov rdx, r13
mov qword [rsp + 0x70], rax
mov rax, qword [rbp + 0x30]
mov qword [rsp + 0x28], r12
mov rcx, qword [rbp + 0x10]
mov qword [rsp + 0x20], rax
call fcn.140070e60
mov rdx, r12
mov r15, rax
lea rax, [rsp + 0xd0]
mov rcx, rax
mov qword [rsp + 0x88], rax
call fcn.14005a450
mov ebx, dword [r12 + 0xc]
lea ecx, [rbx + rbx*8]
add ebx, dword [r12 + 0x14]
cmp ecx, ebx
cmovb rcx, rbx
call sub.msvcrt.dll_malloc
mov r8d, dword [r12 + 0x20]
mov r14, rax
test r8d, r8d
je 0x1401ff10e
mov dword [rsp + 0x98], 0
lea rsi, [rsp + 0xf0]
mov eax, dword [rsp + 0x98]
mov rdi, qword [rsp + 0x90]
xor r13d, r13d
mov qword [rsp + 0x68], rax
lea rdi, [rdi + rax*8]
lea rax, [rsp + 0xce]
mov qword [rsp + 0x78], rax
mov edx, dword [rsp + 0x98]
mov r8d, r13d
mov rcx, r15
call fcn.1401211d0
cmp ebx, dword [r12 + 0x28]
jb 0x1401fe754
mov r8d, 2
mov rdx, r12
mov rcx, rsi
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rsi
call fcn.14004b780
mov r8d, dword [r12 + 0x24]
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call fcn.14004b880
mov rcx, rsi
call fcn.14004b730
mov r8d, dword [r12 + 0x28]
mov rdx, r14
mov rcx, rsi
call fcn.14004b830
mov r8d, 0xff
mov rdx, r12
mov rcx, rsi
call fcn.14004b780
mov r8d, dword [r12 + 0x28]
mov rdx, r14
mov rcx, rsi
call fcn.14004b880
mov rdx, qword [rsp + 0x78]
mov rcx, rsi
mov r8d, 2
mov word [rsp + 0xce], bx
call fcn.14004b880
mov rcx, rsi
call fcn.14004b730
mov r8d, ebx
mov rdx, r14
mov rcx, rsi
call fcn.14004b830
mov rcx, qword [rdi]
lea rax, [r13 + r13*2]
mov rdx, r14
mov r8d, dword [r12 + 0xc]
lea rax, [rcx + rax*8]
mov rcx, qword [rax]
call sub.msvcrt.dll_memcpy
mov edx, dword [r12 + 0xc]
mov r8d, dword [r12 + 0x14]
mov rax, qword [rsp + 0x88]
add rdx, r14
mov rcx, qword [rax + r13*8]
call sub.msvcrt.dll_memcpy
mov ebx, dword [r12 + 0x14]
cmp r13, 1
jne 0x1401ff136
mov edx, dword [rsp + 0x98]
mov r8d, 2
mov rcx, r15
mov r13, qword [rsp + 0xe0]
call fcn.1401211d0
mov qword [rsp + 0x60], rax
cmp ebx, dword [r12 + 0x28]
jae 0x1401fe7b8
mov r13d, 1
mov rcx, r14
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x90]
mov rdx, r12
call fcn.140120310
mov rcx, qword [rsp + 0x80]
call fcn.1401201b0
mov rcx, qword [rsp + 0x88]
call fcn.140120200
mov rcx, qword [rsp + 0x70]
call fcn.1401201d0
mov rcx, r15
call fcn.140120230
lea rsp, [rbp - 0x38]
mov eax, r13d
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r8d, 2
mov rdx, r12
mov rcx, rsi
call fcn.14004b780
mov r8d, dword [r12 + 0x24]
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call fcn.14004b880
mov rcx, rsi
call fcn.14004b730
mov r8d, dword [r12 + 0x28]
mov rdx, r13
mov rcx, rsi
call fcn.14004b830
mov r8d, 0xff
mov rdx, r12
mov rcx, rsi
call fcn.14004b780
mov r8d, dword [r12 + 0x28]
mov rdx, r13
mov rcx, rsi
call fcn.14004b880
mov rdx, qword [rsp + 0x78]
mov rcx, rsi
mov r8d, 2
mov word [rsp + 0xce], bx
call fcn.14004b880
mov rcx, rsi
call fcn.14004b730
mov rdx, r13
mov rcx, rsi
mov r8d, ebx
call fcn.14004b830
mov edx, dword [r12 + 0x10]
mov r10, qword [rbp + 0x10]
xor ecx, ecx
test edx, edx
je 0x1401fe881
nop dword [rax]
mov r8, qword [rdi]
mov edx, ecx
add ecx, 1
mov rax, qword [r8]
mov r9, qword [r8 + 0x30]
mov r8, qword [r8 + 0x18]
mov eax, dword [rax + rdx*4]
xor eax, dword [r10 + rdx*4]
xor eax, dword [r8 + rdx*4]
mov dword [r9 + rdx*4], eax
cmp dword [r12 + 0x10], ecx
ja 0x1401fe858
mov rdx, qword [rdi]
mov r8, qword [rbp + 0x20]
mov qword [rsp + 0x20], r12
mov r9, r14
mov rcx, qword [rsp + 0x88]
mov dword [rsp + 0xe8], 0
call fcn.140146920
mov rax, qword [rsp + 0x68]
mov r9, qword [rdi]
xor r8d, r8d
mov rbx, qword [rsp + 0x80]
mov edx, dword [rsp + 0x98]
mov rcx, r15
lea rax, [rax + rax*2]
mov qword [rsp + 0x78], r9
shl rax, 3
add rbx, rax
mov qword [rsp + 0x50], rax
mov r13, qword [rbx]
call fcn.1401211d0
mov r9, qword [rsp + 0x78]
lea r10, [rsp + 0xa0]
mov rcx, rax
mov rdx, r10
mov r8, r13
mov qword [rsp + 0x60], r10
movdqu xmm2, xmmword [r9]
movaps xmmword [rsp + 0xa0], xmm2
mov rax, qword [r9 + 0x10]
mov r9, r12
mov qword [rsp + 0xb0], rax
call fcn.1400482c0
mov r13, qword [rdi]
mov r11, qword [rbx + 8]
mov rcx, r15
mov edx, dword [rsp + 0x98]
mov r8d, 1
lea r9, [r13 + 0x18]
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x78], r9
call fcn.1401211d0
movdqu xmm3, xmmword [r13 + 0x18]
mov r9, qword [rsp + 0x78]
mov r10, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
mov rcx, rax
movaps xmmword [rsp + 0xa0], xmm3
mov rax, qword [r9 + 0x10]
mov r9, r12
mov rdx, r10
mov qword [rsp + 0x68], r10
mov qword [rsp + 0xb0], rax
call fcn.1400482c0
mov r13, qword [rbx + 0x10]
mov rbx, qword [rdi]
mov rcx, r15
mov edx, dword [rsp + 0x98]
mov r8d, 2
lea r9, [rbx + 0x30]
mov qword [rsp + 0x78], r9
call fcn.1401211d0
movdqu xmm4, xmmword [rbx + 0x30]
mov r9, qword [rsp + 0x78]
mov r8, r13
mov rcx, rax
mov rdx, qword [rsp + 0x68]
movaps xmmword [rsp + 0xa0], xmm4
mov rax, qword [r9 + 0x10]
mov r9, r12
mov qword [rsp + 0xb0], rax
call fcn.1400482c0
cmp dword [r12 + 0x2c], 1
je 0x1401fea10
add dword [rsp + 0x98], 1
mov ebx, dword [r12 + 0x20]
mov eax, dword [rsp + 0x98]
cmp ebx, eax
jbe 0x1401feade
mov ebx, dword [r12 + 0x14]
add ebx, dword [r12 + 0xc]
jmp 0x1401fe606
mov r10, qword [rdi]
mov edx, dword [rsp + 0x98]
xor r8d, r8d
mov rcx, r15
mov rbx, qword [rsp + 0x50]
add rbx, qword [rsp + 0x70]
mov r13, qword [rbx]
mov qword [rsp + 0x78], r10
call fcn.1401211d0
mov qword [rsp + 0x20], r12
mov r8, qword [rsp + 0x78]
xor ecx, ecx
mov r9, r13
mov rdx, rax
call fcn.14004b200
mov rax, qword [rdi]
mov rcx, r15
mov r13, qword [rbx + 8]
mov edx, dword [rsp + 0x98]
mov r8d, 1
lea r10, [rax + 0x18]
mov qword [rsp + 0x78], r10
call fcn.1401211d0
mov qword [rsp + 0x20], r12
mov r8, qword [rsp + 0x78]
mov r9, r13
mov rdx, rax
mov ecx, 1
call fcn.14004b200
mov r13, qword [rbx + 0x10]
mov rbx, qword [rdi]
mov rcx, r15
mov edi, dword [rsp + 0x98]
mov r8d, 2
add rbx, 0x30
mov edx, edi
add edi, 1
call fcn.1401211d0
mov qword [rsp + 0x20], r12
mov r8, rbx
mov r9, r13
mov rdx, rax
mov ecx, 2
call fcn.14004b200
mov ebx, dword [r12 + 0x20]
mov dword [rsp + 0x98], edi
cmp ebx, edi
ja 0x1401fe9fe
lea ecx, [rbx + rbx*2]
shl rcx, 3
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x98], rax
test rbx, rbx
je 0x1401feb3b
mov rdi, qword [rsp + 0x90]
add rax, 0x10
mov rdx, rdi
lea r8, [rdi + rbx*8]
nop word [rax + rax]
mov rcx, qword [rdx]
add rdx, 8
add rax, 0x18
movdqu xmm0, xmmword [rcx + 0x10]
movdqu xmm5, xmmword [rcx + 0x20]
mov rcx, qword [rcx + 0x40]
shufpd xmm0, xmm5, 2
movups xmmword [rax - 0x28], xmm0
mov qword [rax - 0x18], rcx
cmp rdx, r8
jne 0x1401feb10
mov r9d, dword [r12 + 0x10]
test r9d, r9d
je 0x1401feedf
mov rax, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x58]
mov rdx, qword [rax + 8]
mov rcx, qword [rax]
mov r8, qword [rax + 0x10]
mov rax, rdi
lea r10, [rdx + 4]
lea r11, [rcx + 4]
sub rax, r10
mov r10, rdi
cmp rax, 8
seta al
sub r10, r11
cmp r10, 8
seta r10b
and eax, r10d
cmp r9d, 1
setne r10b
test al, r10b
je 0x1401ff0e1
lea r10, [r8 + 4]
mov rax, rdi
sub rax, r10
cmp rax, 8
jbe 0x1401ff0e1
lea eax, [r9 - 1]
cmp eax, 2
jbe 0x1401ff12f
movdqu xmm1, xmmword [rdx]
movdqu xmm0, xmmword [rcx]
mov eax, r9d
shr eax, 2
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8]
pxor xmm0, xmm1
movaps xmmword [rsp + 0xf0], xmm0
cmp eax, 1
je 0x1401fee83
movdqu xmm1, xmmword [rcx + 0x10]
movdqu xmm0, xmmword [rdx + 0x10]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x10]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x100], xmm0
cmp eax, 2
je 0x1401fee83
movdqu xmm1, xmmword [rdx + 0x20]
movdqu xmm0, xmmword [rcx + 0x20]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x20]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x110], xmm0
cmp eax, 3
je 0x1401fee83
movdqu xmm1, xmmword [rdx + 0x30]
movdqu xmm0, xmmword [rcx + 0x30]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x30]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x120], xmm0
cmp eax, 4
je 0x1401fee83
movdqu xmm1, xmmword [rdx + 0x40]
movdqu xmm0, xmmword [rcx + 0x40]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x40]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x130], xmm0
cmp eax, 5
je 0x1401fee83
movdqu xmm1, xmmword [rdx + 0x50]
movdqu xmm0, xmmword [rcx + 0x50]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x50]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x140], xmm0
cmp eax, 6
je 0x1401fee83
movdqu xmm1, xmmword [rdx + 0x60]
movdqu xmm0, xmmword [rcx + 0x60]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x60]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x150], xmm0
cmp eax, 7
je 0x1401fee83
movdqu xmm1, xmmword [rdx + 0x70]
movdqu xmm0, xmmword [rcx + 0x70]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x70]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x160], xmm0
cmp eax, 8
je 0x1401fee83
movdqu xmm1, xmmword [rdx + 0x80]
movdqu xmm0, xmmword [rcx + 0x80]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x80]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x170], xmm0
cmp eax, 9
je 0x1401fee83
movdqu xmm1, xmmword [rdx + 0x90]
movdqu xmm0, xmmword [rcx + 0x90]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0x90]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x180], xmm0
cmp eax, 0xa
je 0x1401fee83
movdqu xmm1, xmmword [rdx + 0xa0]
movdqu xmm0, xmmword [rcx + 0xa0]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0xa0]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x190], xmm0
cmp eax, 0xb
je 0x1401fee83
movdqu xmm1, xmmword [rdx + 0xb0]
movdqu xmm0, xmmword [rcx + 0xb0]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0xb0]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x1a0], xmm0
cmp eax, 0xc
je 0x1401fee83
movdqu xmm1, xmmword [rdx + 0xc0]
movdqu xmm0, xmmword [rcx + 0xc0]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0xc0]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x1b0], xmm0
cmp eax, 0xd
je 0x1401fee83
movdqu xmm1, xmmword [rdx + 0xd0]
movdqu xmm0, xmmword [rcx + 0xd0]
pxor xmm0, xmm1
movdqu xmm1, xmmword [r8 + 0xd0]
pxor xmm0, xmm1
movaps xmmword [rsp + 0x1c0], xmm0
cmp eax, 0xe
je 0x1401fee83
movdqu xmm0, xmmword [rcx + 0xe0]
movdqu xmm1, xmmword [rdx + 0xe0]
movdqu xmm5, xmmword [r8 + 0xe0]
pxor xmm0, xmm1
pxor xmm0, xmm5
movaps xmmword [rsp + 0x1d0], xmm0
cmp eax, 0xf
je 0x1401fee83
movdqu xmm0, xmmword [rdx + 0xf0]
movdqu xmm1, xmmword [rcx + 0xf0]
movdqu xmm5, xmmword [r8 + 0xf0]
pxor xmm0, xmm1
pxor xmm0, xmm5
movaps xmmword [rsp + 0x1e0], xmm0
mov eax, r9d
and eax, 0xfffffffc
test r9b, 3
je 0x1401feedf
sub r9d, eax
cmp r9d, 1
je 0x1401feece
mov r10d, eax
movq xmm1, qword [rdx + r10*4]
movq xmm0, qword [rcx + r10*4]
pxor xmm0, xmm1
movq xmm1, qword [r8 + r10*4]
pxor xmm0, xmm1
movq qword [rsp + r10*4 + 0xf0], xmm0
mov r10d, r9d
and r10d, 0xfffffffe
add eax, r10d
cmp r10d, r9d
je 0x1401feedf
mov edx, dword [rdx + rax*4]
xor edx, dword [rcx + rax*4]
xor edx, dword [r8 + rax*4]
mov dword [rsp + rax*4 + 0xf0], edx
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x40], r12
mov r9, qword [rsp + 0x80]
mov r8, qword [rsp + 0x98]
mov rdx, qword [rbp + 0x20]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x38], rax
mov rax, qword [rbp + 0x30]
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 0x28]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x38]
mov rax, qword [rax + 8]
mov qword [rsp + 0x20], rax
call fcn.14004b300
mov eax, dword [r12 + 0x20]
test eax, eax
je 0x1401ff00d
cmp qword [rsp + 0x70], 0
je 0x1401ff022
mov rdi, qword [rsp + 0x70]
mov qword [rsp + 0x78], r15
xor ebx, ebx
mov esi, 1
mov qword [rsp + 0x68], r14
mov r13, qword [rsp + 0x80]
mov r14, r15
mov r15, r12
mov r12, rdi
mov rdi, qword [rsp + 0x90]
nop dword [rax + rax]
mov rax, qword [rbp + 0x38]
mov ecx, esi
mov edx, esi
mov r9, qword [rdi + rbx*8]
neg ecx
shr edx, 3
mov r8, r14
add r14, 0x18
mov r11, qword [rax + 8]
mov rax, rbx
and ecx, 7
shl rax, 0x21
shr rax, 0x23
movzx edx, byte [r11 + rdx]
movzx eax, byte [r11 + rax]
sar eax, cl
mov ecx, esi
add esi, 2
not ecx
and eax, 1
and ecx, 7
sar edx, cl
lea rcx, [rbx + rbx*2]
add rbx, 1
and edx, 1
shl rcx, 4
add edx, edx
or edx, eax
mov rax, qword [rbp + 0x38]
add rcx, qword [rax]
mov qword [rsp + 0x28], r12
add r12, 0x18
mov qword [rsp + 0x20], r13
add r13, 0x18
mov qword [rsp + 0x30], r15
call fcn.14015e970
mov eax, dword [r15 + 0x20]
cmp rax, rbx
ja 0x1401fef78
mov r12, r15
mov r14, qword [rsp + 0x68]
mov r15, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x98]
xor r13d, r13d
call sub.msvcrt.dll_free
jmp 0x1401fe75a
mov rdi, qword [rsp + 0x80]
mov esi, 1
mov qword [rsp + 0x78], r14
xor ebx, ebx
mov r14, r15
mov r13, rdi
mov edi, esi
mov rsi, qword [rsp + 0x90]
nop word cs:[rax + rax]
mov rax, qword [rbp + 0x38]
mov ecx, edi
mov r9, qword [rsi + rbx*8]
mov r8, r14
not ecx
add r14, 0x18
mov rdx, qword [rax + 8]
mov eax, edi
and ecx, 7
shr eax, 3
movzx eax, byte [rdx + rax]
sar eax, cl
mov rcx, rbx
shl rcx, 0x21
and eax, 1
shr rcx, 0x23
add eax, eax
movzx edx, byte [rdx + rcx]
mov ecx, edi
add edi, 2
neg ecx
and ecx, 7
sar edx, cl
lea rcx, [rbx + rbx*2]
add rbx, 1
and edx, 1
shl rcx, 4
or edx, eax
mov rax, qword [rbp + 0x38]
add rcx, qword [rax]
mov qword [rsp + 0x20], r13
add r13, 0x18
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], 0
call fcn.14015e970
mov eax, dword [r12 + 0x20]
cmp rax, rbx
ja 0x1401ff050
mov r14, qword [rsp + 0x78]
jmp 0x1401ff00d
mov r11, qword [rsp + 0x58]
xor eax, eax
nop dword [rax + rax]
mov r10d, dword [rdx + rax*4]
xor r10d, dword [rcx + rax*4]
xor r10d, dword [r8 + rax*4]
mov dword [r11 + rax*4], r10d
add rax, 1
cmp rax, r9
jne 0x1401ff0f0
jmp 0x1401feedf
xor ecx, ecx
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x58], rax
jmp 0x1401feb3b
xor eax, eax
jmp 0x1401fee98
mov r13d, 1
add ebx, dword [r12 + 0xc]
jmp 0x1401fe62e