Function at 0x1401fca70
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.14005b3d0
mov rcx, r12
mov qword [rsp + 0x90], rax
call fcn.14005b050
mov rcx, r12
mov qword [rsp + 0x80], rax
call fcn.14005b0f0
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.14006fe70
mov rdx, r12
mov r15, rax
lea rax, [rsp + 0xd0]
mov rcx, rax
mov qword [rsp + 0x88], rax
call fcn.14005b1c0
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 0x1401fd64e
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.140120390
cmp ebx, dword [r12 + 0x28]
jb 0x1401fcc94
mov r8d, 2
mov rdx, r12
mov rcx, rsi
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rsi
call fcn.14004c4f0
mov r8d, dword [r12 + 0x24]
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call fcn.14004c5f0
mov rcx, rsi
call fcn.14004c4a0
mov r8d, dword [r12 + 0x28]
mov rdx, r14
mov rcx, rsi
call fcn.14004c5a0
mov r8d, 0xff
mov rdx, r12
mov rcx, rsi
call fcn.14004c4f0
mov r8d, dword [r12 + 0x28]
mov rdx, r14
mov rcx, rsi
call fcn.14004c5f0
mov rdx, qword [rsp + 0x78]
mov rcx, rsi
mov r8d, 2
mov word [rsp + 0xce], bx
call fcn.14004c5f0
mov rcx, rsi
call fcn.14004c4a0
mov r8d, ebx
mov rdx, r14
mov rcx, rsi
call fcn.14004c5a0
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 0x1401fd676
mov edx, dword [rsp + 0x98]
mov r8d, 2
mov rcx, r15
mov r13, qword [rsp + 0xe0]
call fcn.140120390
mov qword [rsp + 0x60], rax
cmp ebx, dword [r12 + 0x28]
jae 0x1401fccf8
mov r13d, 1
mov rcx, r14
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x90]
mov rdx, r12
call fcn.14011f4d0
mov rcx, qword [rsp + 0x80]
call fcn.14011f370
mov rcx, qword [rsp + 0x88]
call fcn.14011f3c0
mov rcx, qword [rsp + 0x70]
call fcn.14011f390
mov rcx, r15
call fcn.14011f3f0
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.14004c4f0
mov r8d, dword [r12 + 0x24]
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call fcn.14004c5f0
mov rcx, rsi
call fcn.14004c4a0
mov r8d, dword [r12 + 0x28]
mov rdx, r13
mov rcx, rsi
call fcn.14004c5a0
mov r8d, 0xff
mov rdx, r12
mov rcx, rsi
call fcn.14004c4f0
mov r8d, dword [r12 + 0x28]
mov rdx, r13
mov rcx, rsi
call fcn.14004c5f0
mov rdx, qword [rsp + 0x78]
mov rcx, rsi
mov r8d, 2
mov word [rsp + 0xce], bx
call fcn.14004c5f0
mov rcx, rsi
call fcn.14004c4a0
mov rdx, r13
mov rcx, rsi
mov r8d, ebx
call fcn.14004c5a0
mov edx, dword [r12 + 0x10]
mov r10, qword [rbp + 0x10]
xor ecx, ecx
test edx, edx
je 0x1401fcdc1
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 0x1401fcd98
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.140145ae0
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.140120390
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.140120390
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.140120390
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 0x1401fcf50
add dword [rsp + 0x98], 1
mov ebx, dword [r12 + 0x20]
mov eax, dword [rsp + 0x98]
cmp ebx, eax
jbe 0x1401fd01e
mov ebx, dword [r12 + 0x14]
add ebx, dword [r12 + 0xc]
jmp 0x1401fcb46
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.140120390
mov qword [rsp + 0x20], r12
mov r8, qword [rsp + 0x78]
xor ecx, ecx
mov r9, r13
mov rdx, rax
call fcn.14004bf70
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.140120390
mov qword [rsp + 0x20], r12
mov r8, qword [rsp + 0x78]
mov r9, r13
mov rdx, rax
mov ecx, 1
call fcn.14004bf70
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.140120390
mov qword [rsp + 0x20], r12
mov r8, rbx
mov r9, r13
mov rdx, rax
mov ecx, 2
call fcn.14004bf70
mov ebx, dword [r12 + 0x20]
mov dword [rsp + 0x98], edi
cmp ebx, edi
ja 0x1401fcf3e
lea ecx, [rbx + rbx*2]
shl rcx, 3
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x98], rax
test rbx, rbx
je 0x1401fd07b
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 0x1401fd050
mov r9d, dword [r12 + 0x10]
test r9d, r9d
je 0x1401fd41f
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 0x1401fd621
lea r10, [r8 + 4]
mov rax, rdi
sub rax, r10
cmp rax, 8
jbe 0x1401fd621
lea eax, [r9 - 1]
cmp eax, 2
jbe 0x1401fd66f
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd3c3
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 0x1401fd41f
sub r9d, eax
cmp r9d, 1
je 0x1401fd40e
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 0x1401fd41f
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.14004c070
mov eax, dword [r12 + 0x20]
test eax, eax
je 0x1401fd54d
cmp qword [rsp + 0x70], 0
je 0x1401fd562
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.14015db30
mov eax, dword [r15 + 0x20]
cmp rax, rbx
ja 0x1401fd4b8
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 0x1401fcc9a
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.14015db30
mov eax, dword [r12 + 0x20]
cmp rax, rbx
ja 0x1401fd590
mov r14, qword [rsp + 0x78]
jmp 0x1401fd54d
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 0x1401fd630
jmp 0x1401fd41f
xor ecx, ecx
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x58], rax
jmp 0x1401fd07b
xor eax, eax
jmp 0x1401fd3d8
mov r13d, 1
add ebx, dword [r12 + 0xc]
jmp 0x1401fcb6e