Function at 0x1400a8090
Capabilities:
Encode data using xor

Disassembly:
test rcx, rcx
je 0x1400a8355
mov r11, rsp
mov qword [r11 + 0x20], r9
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push r15
sub rsp, 0x60
mov r15, rdx
mov r10, rcx
test rdx, rdx
je 0x1400a834f
lea rax, [rdx + r8]
cmp rax, r9
ja 0x1400a834f
mov qword [r11 - 0x10], rbx
lea ecx, [rdx + r8]
test r8, r8
jne 0x1400a869a
mov rdx, qword [rsp + 0xa0]
mov ebx, 0xffffffff
mov rax, qword [rsp + 0x98]
mov r9, qword [rsp + 0x90]
mov qword [r11 - 0x18], rbp
mov qword [r11 - 0x20], rsi
mov qword [r11 - 0x28], rdi
lea rdi, [0x140000000]
mov qword [r11 - 0x30], r12
lea r12d, [r8 + 4]
mov qword [r11 - 0x38], r13
mov r13, r10
mov dword [rdx], ebx
and r13d, 3
mov qword [r11 - 0x40], r14
mov r11, r10
mov dword [rax], ebx
mov r10d, ebx
mov dword [r9], ebx
cmp r15, 0x1000
jb 0x1400a8357
xor r14d, r14d
test r13, r13
jne 0x1400a84ae
mov ebp, r14d
mov esi, 0x200
nop dword [rax]
nop dword [rax + rax]
xor r10d, dword [r11]
mov r9d, dword [r11 + 4]
add r11, 8
mov r8d, r10d
mov eax, r10d
shr rax, 0x10
movzx edx, al
mov eax, r10d
shr rax, 8
movzx ecx, al
mov eax, r9d
mov r10d, dword [rdi + rdx*4 + 0x3e2570]
shr rax, 0x10
xor r10d, dword [rdi + rcx*4 + 0x3e2d70]
movzx ecx, al
mov eax, r9d
shr rax, 8
xor r10d, dword [rdi + rcx*4 + 0x3e2970]
movzx ecx, al
mov eax, r8d
shr rax, 0x18
xor r10d, dword [rdi + rcx*4 + 0x3e1d70]
xor r10d, dword [rdi + rax*4 + 0x3e2170]
mov eax, r9d
shr rax, 0x18
xor r10d, dword [rdi + rax*4 + 0x3bca00]
movzx eax, r8b
xor r10d, dword [rdi + rax*4 + 0x3e3570]
movzx eax, r9b
xor r10d, dword [rdi + rax*4 + 0x3e3170]
sub rsi, 1
jne 0x1400a8160
mov r9, qword [rsp + 0x90]
mov rdx, qword [rsp + 0xa0]
test rbp, rbp
jne 0x1400a8513
mov rbp, qword [rsp + 0x70]
mov dword [r9], r10d
cmp qword [rsp + 0x88], r15
je 0x1400a8548
mov esi, 0x10000
cmp r15, rsi
jbe 0x1400a84a6
cmp rsi, 4
mov r11, rsi
mov rax, r14
mov r10, rbp
mov rbp, qword [rsp + 0x50]
cmovae rax, r13
mov r13, qword [rsp + 0x30]
sub r12, rax
test rax, rax
cmove r12, r14
sub r11, r12
and r11, 0xfffffffffffffff8
cmp rsi, 4
cmovb r11, r14
mov r14, qword [rsp + 0x28]
sub rsi, r11
sub rsi, r12
test r12, r12
jne 0x1400a8640
mov r12, qword [rsp + 0x38]
shr r11, 3
test r11, r11
je 0x1400a831c
nop dword [rax]
xor ebx, dword [r10]
mov r9d, dword [r10 + 4]
add r10, 8
mov r8d, ebx
mov eax, ebx
shr rax, 0x10
movzx edx, al
mov eax, ebx
shr rax, 8
movzx ecx, al
mov eax, r9d
mov ebx, dword [rdi + rdx*4 + 0x3e2570]
shr rax, 0x10
xor ebx, dword [rdi + rcx*4 + 0x3e2d70]
movzx ecx, al
mov eax, r9d
shr rax, 8
xor ebx, dword [rdi + rcx*4 + 0x3e2970]
movzx ecx, al
mov eax, r8d
shr rax, 0x18
xor ebx, dword [rdi + rcx*4 + 0x3e1d70]
xor ebx, dword [rdi + rax*4 + 0x3e2170]
mov eax, r9d
shr rax, 0x18
xor ebx, dword [rdi + rax*4 + 0x3bca00]
movzx eax, r8b
xor ebx, dword [rdi + rax*4 + 0x3e3570]
movzx eax, r9b
xor ebx, dword [rdi + rax*4 + 0x3e3170]
sub r11, 1
jne 0x1400a8290
test rsi, rsi
jne 0x1400a8666
mov rax, qword [rsp + 0x98]
mov r9, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov dword [rax], ebx
cmp r9, r15
jne 0x1400a868d
mov rbx, qword [rsp + 0x58]
add rsp, 0x60
pop r15
ret
mov r15d, ecx
mov r14d, 0x1000
sub r14d, ecx
mov r8, r12
xor ecx, ecx
mov esi, r15d
cmp r15, 4
mov eax, ecx
mov ebp, r15d
cmovae rax, r13
sub r8, rax
test rax, rax
cmove r8, rcx
sub rsi, r8
and rsi, 0xfffffffffffffff8
cmp r15, r12
cmovb rsi, rcx
sub rbp, rsi
sub rbp, r8
test r8, r8
jne 0x1400a857f
shr rsi, 3
test rsi, rsi
je 0x1400a844e
nop dword [rax]
xor r10d, dword [r11]
mov r9d, dword [r11 + 4]
add r11, 8
mov r8d, r10d
mov eax, r10d
shr rax, 0x10
movzx edx, al
mov eax, r10d
shr rax, 8
movzx ecx, al
mov eax, r9d
mov r10d, dword [rdi + rdx*4 + 0x3e2570]
shr rax, 0x10
xor r10d, dword [rdi + rcx*4 + 0x3e2d70]
movzx ecx, al
mov eax, r9d
shr rax, 8
xor r10d, dword [rdi + rcx*4 + 0x3e2970]
movzx ecx, al
mov eax, r8d
shr rax, 0x18
xor r10d, dword [rdi + rcx*4 + 0x3e1d70]
xor r10d, dword [rdi + rax*4 + 0x3e2170]
mov eax, r9d
shr rax, 0x18
xor r10d, dword [rdi + rax*4 + 0x3bca00]
movzx eax, r8b
xor r10d, dword [rdi + rax*4 + 0x3e3570]
movzx eax, r9b
xor r10d, dword [rdi + rax*4 + 0x3e3170]
sub rsi, 1
jne 0x1400a83b0
mov r9, qword [rsp + 0x90]
test rbp, rbp
jne 0x1400a85ab
mov dword [r9], r10d
mov rsi, r14
cmp r14, 0x400
ja 0x1400a85d8
mov r8, rsi
lea rdx, [0x1403bda70]
mov ecx, r10d
call fcn.1400a8700
mov rcx, qword [rsp + 0x90]
mov dword [rcx], eax
mov rax, qword [rsp + 0x88]
cmp rax, qword [rsp + 0x78]
je 0x1400a8613
mov rbp, qword [rsp + 0x70]
mov r15, qword [rsp + 0x78]
xor r14d, r14d
mov rsi, r15
jmp 0x1400a8233
mov r8, r12
mov esi, 0x1000
sub r8, r13
mov ebp, 0x1000
sub rsi, r8
sub rbp, r8
and rsi, 0xfffffffffffffff8
sub rbp, rsi
test r8, r8
jne 0x1400a84e2
shr rsi, 3
test rsi, rsi
jne 0x1400a8160
jmp 0x1400a8206
movzx eax, byte [r11]
mov ecx, r10d
xor rcx, rax
inc r11
mov eax, r10d
movzx edx, cl
shr eax, 8
mov r10d, dword [rdi + rdx*4 + 0x3bca00]
xor r10d, eax
sub r8, 1
jne 0x1400a84e2
mov rdx, qword [rsp + 0xa0]
jmp 0x1400a84d0
movzx eax, byte [r11]
lea r11, [r11 + 1]
mov ecx, r10d
xor rcx, rax
mov eax, r10d
shr eax, 8
movzx edx, cl
mov r10d, dword [rdi + rdx*4 + 0x3bca00]
xor r10d, eax
sub rbp, 1
jne 0x1400a8513
mov rdx, qword [rsp + 0xa0]
jmp 0x1400a820f
cmp r15, 0x1000
jne 0x1400a8559
mov dword [rdx], r10d
jmp 0x1400a84a6
lea rdx, [rbp - 0x1000]
mov r8d, 0x1000
add rdx, r15
mov ecx, ebx
call fcn.1400a8700
mov rsi, qword [rsp + 0xa0]
mov dword [rsi], eax
jmp 0x1400a8225
movzx eax, byte [r11]
mov ecx, r10d
xor rcx, rax
inc r11
mov eax, r10d
movzx edx, cl
shr eax, 8
mov r10d, dword [rdi + rdx*4 + 0x3bca00]
xor r10d, eax
sub r8, 1
jne 0x1400a857f
jmp 0x1400a839f
movzx eax, byte [r11]
lea r11, [r11 + 1]
mov ecx, r10d
xor rcx, rax
mov eax, r10d
shr eax, 8
movzx edx, cl
mov r10d, dword [rdi + rdx*4 + 0x3bca00]
xor r10d, eax
sub rbp, 1
jne 0x1400a85ab
jmp 0x1400a8457
lea rbp, [r14 - 0x401]
shr rbp, 0xa
inc rbp
imul rsi, rbp, 0xfffffffffffffc00
add rsi, r14
mov r8d, 0x400
lea rdx, [0x1403bda70]
mov ecx, r10d
call fcn.1400a8700
mov r10d, eax
sub rbp, 1
jne 0x1400a85f0
jmp 0x1400a846a
mov rdx, r14
mov ecx, ebx
call fcn.1401534b8
mov rsi, qword [rsp + 0xa0]
mov r8, r15
mov rbp, qword [rsp + 0x70]
mov ecx, eax
mov rdx, rbp
mov dword [rsi], eax
call fcn.1400a8700
mov dword [rsi], eax
jmp 0x1400a849e
movzx ecx, byte [r10]
mov eax, ebx
xor rcx, rax
inc r10
shr eax, 8
movzx edx, cl
mov ebx, dword [rdi + rdx*4 + 0x3bca00]
xor ebx, eax
sub r12, 1
jne 0x1400a8640
jmp 0x1400a827b
movzx ecx, byte [r10]
lea r10, [r10 + 1]
mov eax, ebx
xor rcx, rax
shr eax, 8
movzx edx, cl
mov ebx, dword [rdi + rdx*4 + 0x3bca00]
xor ebx, eax
sub rsi, 1
jne 0x1400a8666
jmp 0x1400a8325
mov r10, qword [rsp + 0x70]
mov r8, qword [rsp + 0x80]
mov rax, r9
sub rax, r15
sub rax, r8
cmp rax, 0x1000
jae 0x1400a834a
mov rbx, qword [rsp + 0xa0]
lea edx, [r8 + 0x1000]
mov eax, r15d
sub eax, r9d
add edx, eax
mov ecx, dword [rbx]
cmp r15, 0x1000
jb 0x1400a86dd
mov r8d, edx
sub r10, r8
lea rdx, [r15 + r10]
jmp 0x1400a86ea
cmp r15d, edx
cmovae r15d, edx
mov rdx, r10
mov r8d, r15d
call fcn.1400a8700
mov dword [rbx], eax
jmp 0x1400a834a