Function at 0x1400aaa60
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.1400532a0
mov rcx, r12
mov qword [rsp + 0x90], rax
call fcn.140052f20
mov rcx, r12
mov qword [rsp + 0x80], rax
call fcn.140052fc0
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.140055400
mov rdx, r12
mov r15, rax
lea rax, [rsp + 0xd0]
mov rcx, rax
mov qword [rsp + 0x88], rax
call fcn.140053090
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 0x1400ab63e
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.14007e8f0
cmp ebx, dword [r12 + 0x28]
jb 0x1400aac84
mov r8d, 2
mov rdx, r12
mov rcx, rsi
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rsi
call fcn.140048a80
mov r8d, dword [r12 + 0x24]
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call fcn.140048b80
mov rcx, rsi
call fcn.140048a30
mov r8d, dword [r12 + 0x28]
mov rdx, r14
mov rcx, rsi
call fcn.140048b30
mov r8d, 0xff
mov rdx, r12
mov rcx, rsi
call fcn.140048a80
mov r8d, dword [r12 + 0x28]
mov rdx, r14
mov rcx, rsi
call fcn.140048b80
mov rdx, qword [rsp + 0x78]
mov rcx, rsi
mov r8d, 2
mov word [rsp + 0xce], bx
call fcn.140048b80
mov rcx, rsi
call fcn.140048a30
mov r8d, ebx
mov rdx, r14
mov rcx, rsi
call fcn.140048b30
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 0x1400ab666
mov edx, dword [rsp + 0x98]
mov r8d, 2
mov rcx, r15
mov r13, qword [rsp + 0xe0]
call fcn.14007e8f0
mov qword [rsp + 0x60], rax
cmp ebx, dword [r12 + 0x28]
jae 0x1400aace8
mov r13d, 1
mov rcx, r14
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x90]
mov rdx, r12
call fcn.14007da30
mov rcx, qword [rsp + 0x80]
call fcn.14007d8d0
mov rcx, qword [rsp + 0x88]
call fcn.14007d920
mov rcx, qword [rsp + 0x70]
call fcn.14007d8f0
mov rcx, r15
call fcn.14007d950
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.140048a80
mov r8d, dword [r12 + 0x24]
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call fcn.140048b80
mov rcx, rsi
call fcn.140048a30
mov r8d, dword [r12 + 0x28]
mov rdx, r13
mov rcx, rsi
call fcn.140048b30
mov r8d, 0xff
mov rdx, r12
mov rcx, rsi
call fcn.140048a80
mov r8d, dword [r12 + 0x28]
mov rdx, r13
mov rcx, rsi
call fcn.140048b80
mov rdx, qword [rsp + 0x78]
mov rcx, rsi
mov r8d, 2
mov word [rsp + 0xce], bx
call fcn.140048b80
mov rcx, rsi
call fcn.140048a30
mov rdx, r13
mov rcx, rsi
mov r8d, ebx
call fcn.140048b30
mov edx, dword [r12 + 0x10]
mov r10, qword [rbp + 0x10]
xor ecx, ecx
test edx, edx
je 0x1400aadb1
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 0x1400aad88
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.14008d630
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.14007e8f0
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.140047720
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.14007e8f0
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.140047720
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.14007e8f0
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.140047720
cmp dword [r12 + 0x2c], 1
je 0x1400aaf40
add dword [rsp + 0x98], 1
mov ebx, dword [r12 + 0x20]
mov eax, dword [rsp + 0x98]
cmp ebx, eax
jbe 0x1400ab00e
mov ebx, dword [r12 + 0x14]
add ebx, dword [r12 + 0xc]
jmp 0x1400aab36
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.14007e8f0
mov qword [rsp + 0x20], r12
mov r8, qword [rsp + 0x78]
xor ecx, ecx
mov r9, r13
mov rdx, rax
call fcn.140048500
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.14007e8f0
mov qword [rsp + 0x20], r12
mov r8, qword [rsp + 0x78]
mov r9, r13
mov rdx, rax
mov ecx, 1
call fcn.140048500
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.14007e8f0
mov qword [rsp + 0x20], r12
mov r8, rbx
mov r9, r13
mov rdx, rax
mov ecx, 2
call fcn.140048500
mov ebx, dword [r12 + 0x20]
mov dword [rsp + 0x98], edi
cmp ebx, edi
ja 0x1400aaf2e
lea ecx, [rbx + rbx*2]
shl rcx, 3
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x98], rax
test rbx, rbx
je 0x1400ab06b
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 0x1400ab040
mov r9d, dword [r12 + 0x10]
test r9d, r9d
je 0x1400ab40f
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 0x1400ab611
lea r10, [r8 + 4]
mov rax, rdi
sub rax, r10
cmp rax, 8
jbe 0x1400ab611
lea eax, [r9 - 1]
cmp eax, 2
jbe 0x1400ab65f
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab3b3
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 0x1400ab40f
sub r9d, eax
cmp r9d, 1
je 0x1400ab3fe
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 0x1400ab40f
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.140048600
mov eax, dword [r12 + 0x20]
test eax, eax
je 0x1400ab53d
cmp qword [rsp + 0x70], 0
je 0x1400ab552
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.1400a32b0
mov eax, dword [r15 + 0x20]
cmp rax, rbx
ja 0x1400ab4a8
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 0x1400aac8a
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.1400a32b0
mov eax, dword [r12 + 0x20]
cmp rax, rbx
ja 0x1400ab580
mov r14, qword [rsp + 0x78]
jmp 0x1400ab53d
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 0x1400ab620
jmp 0x1400ab40f
xor ecx, ecx
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x58], rax
jmp 0x1400ab06b
xor eax, eax
jmp 0x1400ab3c8
mov r13d, 1
add ebx, dword [r12 + 0xc]
jmp 0x1400aab5e