Function at 0x140255cf0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1f8
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x1b0], xmm7
movaps xmmword [rsp + 0x1c0], xmm8
movaps xmmword [rsp + 0x1d0], xmm9
movaps xmmword [rsp + 0x1e0], xmm10
xor r9d, r9d
lea r10, [0x140450c00]
mov rax, r9
mov qword [rsp + 0x240], rcx
mov rsi, rdx
mov rcx, r8
xor edx, edx
lea rbx, [rsp + 0x60]
mov r8d, dword [rcx + rdx]
mov r9d, dword [r10 + rdx]
add r8, r9
add rax, r8
mov dword [rbx + rdx], eax
add rdx, 4
shr rax, 0x20
cmp rdx, 0x38
jne 0x140255d50
mov r9, rax
lea r8, [0x140450bc0]
mov rdx, rbx
mov rcx, rbx
call fcn.14026c130
mov rdx, rbx
mov rcx, rbx
lea rbp, [rsp + 0xe0]
call fcn.140255c70
lea rax, [rsi + 0xc00]
mov dword [rsp + 0x48], 0x12
lea rsi, [rsp + 0x120]
mov qword [rsp + 0x50], rax
lea r13, [0x140450c80]
mov r12, rsi
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x38], rax
movdqa xmm6, xmmword [0x140450d30]
lea r15, [rsp + 0xa0]
lea r14, [rsp + 0x160]
mov qword [rsp + 0x58], rbx
movdqa xmm10, xmmword [0x140450d40]
movdqa xmm9, xmmword [0x140450d50]
movdqa xmm7, xmmword [0x140450d90]
movdqa xmm8, xmmword [0x140450d80]
mov eax, dword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov r9, rbp
lea rbx, [rsp + 0x1a0]
cmp eax, 0x12
setne byte [rsp + 0x47]
sub eax, 1
xor r11d, r11d
mov dword [rsp + 0x4c], eax
mov ebp, r11d
mov dword [rsp + 0x40], eax
nop word [rax + rax]
mov eax, dword [rsp + 0x40]
xor r8d, r8d
xor r10d, r10d
nop word [rax + rax]
cmp eax, 0x1bd
ja 0x140255e6f
mov edx, eax
mov ecx, eax
shr edx, 5
mov edx, dword [rsp + rdx*4 + 0x60]
shr edx, cl
mov ecx, r10d
and edx, 1
shl edx, cl
or r8d, edx
add r10d, 1
add eax, 0x12
cmp r10d, 5
jne 0x140255e50
mov eax, r8d
mov ecx, 0x18
mov rdi, r9
sar eax, 4
lea r10, [rsi - 0xc00]
lea edx, [rax - 1]
mov dword [rsp + 0x28], eax
xor eax, eax
rep stosq qword [rdi], rax
mov dword [rsp + 0x34], edx
xor r8d, edx
and r8d, 0xf
nop dword [rax + rax]
mov rcx, r8
sub r8, 1
mov rdx, r10
mov rdi, r9
not rcx
mov rax, r9
and rcx, r8
sar rcx, 0x3f
movzx ecx, cl
nop dword [rax]
movzx r11d, byte [rdx]
add rdx, 1
and r11d, ecx
or byte [rax], r11b
add rax, 1
cmp rax, rbx
jne 0x140255ed0
add r10, 0xc0
cmp r10, rsi
jne 0x140255eb0
mov edx, dword [rsp + 0x34]
movd xmm3, edx
pshufd xmm2, xmm3, 0
movdqa xmm0, xmmword [rdi + 0x40]
pxor xmm0, xmmword [rdi]
add rdi, 0x10
movdqa xmm1, xmmword [rdi - 0x10]
pand xmm0, xmm2
pxor xmm1, xmm0
pxor xmm0, xmmword [rdi + 0x30]
movaps xmmword [rdi - 0x10], xmm1
movaps xmmword [rdi + 0x30], xmm0
cmp rdi, r12
jne 0x140255f00
xor eax, eax
movdqa xmm0, xmmword [r13 + rax]
psubd xmm0, xmmword [r14 + rax]
movaps xmmword [r15 + rax], xmm0
add rax, 0x10
cmp rax, 0x40
jne 0x140255f2e
mov rcx, r15
mov rax, r15
movdqa xmm1, xmm6
movdqa xmm0, xmm1
movdqa xmm2, xmm8
add rax, 0x10
pcmpeqd xmm0, xmm9
paddd xmm1, xmm10
pand xmm2, xmm0
pandn xmm0, xmm7
por xmm0, xmm2
paddd xmm0, xmmword [rax - 0x10]
movaps xmmword [rax - 0x10], xmm0
cmp rax, r9
jne 0x140255f54
mov r8d, dword [rsp + 0xdc]
mov rax, qword [rsp + 0x38]
mov dword [rsp + 0x34], edx
mov r11d, r8d
shr r11d, 0x1c
add dword [rsp + 0xc0], r11d
nop dword [rax]
mov edi, r8d
mov r8d, dword [rax]
mov r10, rax
sub rax, 4
and edi, 0xfffffff
mov edx, r8d
shr edx, 0x1c
add edx, edi
mov dword [rax + 8], edx
cmp r10, r15
jne 0x140255fa8
mov eax, dword [rsp + 0xa0]
mov edx, dword [rsp + 0x34]
mov r8d, dword [rsp + 0x28]
and eax, 0xfffffff
mov r10d, edx
add eax, r11d
neg r8d
mov dword [rsp + 0xa0], eax
mov rax, r14
nop dword [rax + rax]
mov r11d, dword [rax]
mov edx, dword [rcx]
add rax, 4
add rcx, 4
and edx, r10d
and r11d, r8d
or edx, r11d
mov dword [rax - 4], edx
cmp rbx, rax
jne 0x140255ff8
test ebp, ebp
jne 0x140256051
cmp byte [rsp + 0x47], 0
jne 0x140256051
mov rcx, qword [rsp + 0x240]
mov rdx, r9
mov qword [rsp + 0x28], r9
add rsi, 0xc00
mov ebp, 1
call fcn.140253440
add dword [rsp + 0x40], 0x5a
mov r9, qword [rsp + 0x28]
jmp 0x140255e40
cmp ebp, 4
mov rcx, qword [rsp + 0x240]
mov rdx, r9
mov qword [rsp + 0x28], r9
sete al
xor r8d, r8d
cmp dword [rsp + 0x48], 1
setne r8b
add ebp, 1
and r8d, eax
call fcn.140253580
cmp ebp, 5
mov r9, qword [rsp + 0x28]
je 0x140256099
add dword [rsp + 0x40], 0x5a
add rsi, 0xc00
jmp 0x140255e40
mov eax, dword [rsp + 0x4c]
mov rbp, r9
test eax, eax
je 0x1402560c4
mov rdx, qword [rsp + 0x240]
xor r8d, r8d
mov rcx, rdx
call fcn.140252cf0
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x48], eax
jmp 0x140255e0a
mov rbx, qword [rsp + 0x58]
mov rcx, r9
mov edx, 0xc0
call fcn.1402f5e00
mov edx, 0x38
mov rcx, rbx
call fcn.1402f5e00
nop
movaps xmm6, xmmword [rsp + 0x1a0]
movaps xmm7, xmmword [rsp + 0x1b0]
movaps xmm8, xmmword [rsp + 0x1c0]
movaps xmm9, xmmword [rsp + 0x1d0]
movaps xmm10, xmmword [rsp + 0x1e0]
add rsp, 0x1f8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret