Function at 0x140025250
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x498
mov rax, qword [0x140120678]
xor rax, rsp
mov qword [rsp + 0x480], rax
cmp dword [rcx + 0x148], 1
mov r12, r9
mov rax, qword [rsp + 0x508]
mov r14, r8
mov r15, qword [rsp + 0x510]
mov rbx, rdx
mov qword [rsp + 0x30], rax
mov rsi, rcx
mov rax, qword [rsp + 0x518]
mov qword [rsp + 0x38], rax
jne 0x140025580
mov rbp, qword [rcx + 8]
lea rax, [rbp - 0x10]
cmp rax, 0x3f0
ja 0x140025580
mov ecx, dword [rcx + 0x14c]
call fcn.14001feb0
movzx edi, al
test al, al
je 0x140025580
lea r13d, [rdi + rdi]
lea ecx, [r13 + 2]
cmp rcx, rbp
ja 0x140025580
lea rax, [rsp + 0x80]
mov r9, r15
mov r8, r14
mov qword [rsp + 0x20], rax
mov rdx, rbx
mov rcx, rsi
call fcn.140024ca0
mov ebx, eax
test eax, eax
jne 0x14002555b
mov eax, dword [rsi + 0x14c]
lea r15, [rsp + 0x81]
mov r14, rbp
mov dword [rsp + 0x20], eax
sub r14, rdi
lea rcx, [rsp + 0x81]
add r15, rdi
mov edx, edi
mov r8, r15
lea r9, [r14 - 1]
call fcn.1400258c0
mov ebx, eax
test eax, eax
jne 0x14002555b
mov eax, dword [rsi + 0x14c]
lea r8, [rsp + 0x81]
mov r9d, edi
mov dword [rsp + 0x20], eax
lea rdx, [r14 - 1]
mov rcx, r15
call fcn.1400258c0
mov ebx, eax
test eax, eax
jne 0x14002555b
mov ecx, dword [rsi + 0x14c]
call fcn.140020480
test rax, rax
jne 0x140025394
mov ebx, 0xffffbf80
jmp 0x14002555b
mov r8, qword [rsp + 0x500]
lea r9, [rsp + 0x40]
mov rdx, r12
mov rcx, rax
call fcn.14001ff10
mov ebx, eax
test eax, eax
jne 0x14002555b
movzx r9d, byte [rsp + 0x80]
lea rdx, [rsp + 0x81]
xor ebx, ebx
add rdx, rdi
mov ecx, ebx
test rdi, rdi
je 0x140025485
cmp rdi, 0x20
jb 0x140025469
mov rax, rdi
xorps xmm3, xmm3
and rax, 0xffffffffffffffe0
xorps xmm2, xmm2
nop
movdqu xmm0, xmmword [rdx]
movdqu xmm1, xmmword [rsp + rcx + 0x40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rdx + 0x10]
add rdx, 0x20
por xmm1, xmm3
movdqa xmm3, xmm1
movdqu xmm1, xmmword [rsp + rcx + 0x50]
add rcx, 0x20
pxor xmm1, xmm0
por xmm1, xmm2
movdqa xmm2, xmm1
cmp rcx, rax
jb 0x1400253f0
por xmm2, xmm3
movdqa xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 2
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 1
por xmm2, xmm0
movd eax, xmm2
or r9b, al
cmp rcx, rdi
jae 0x140025485
nop
movzx eax, byte [rsp + rcx + 0x40]
inc rcx
xor al, byte [rdx]
inc rdx
or r9b, al
cmp rcx, rdi
jb 0x140025470
mov eax, r13d
mov r14, rbp
sub r14, rax
xor r8b, r8b
add r14, 0xfffffffffffffffe
mov r10, rbx
mov r11, rbx
mov rdi, rbx
mov rcx, rbx
cmp r14, 2
jb 0x1400254ec
lea rsi, [r14 - 1]
nop dword [rax + rax]
or r8b, byte [rdx + rcx]
movzx eax, r8b
neg al
or al, r8b
or r8b, byte [rdx + rcx + 1]
not al
add rcx, 2
movzx eax, al
shr rax, 7
add r10, rax
movzx eax, r8b
neg al
or al, r8b
not al
movzx eax, al
shr rax, 7
add r11, rax
cmp rcx, rsi
jb 0x1400254b0
cmp rcx, r14
jae 0x140025507
or r8b, byte [rcx + rdx]
movzx eax, r8b
neg al
or al, r8b
not al
movzx edi, al
shr rdi, 7
lea rax, [r11 + r10]
add rax, rdi
add rdx, rax
movzx eax, byte [rdx]
inc rdx
xor al, 1
or r9b, al
je 0x140025525
mov ebx, 0xffffbf00
jmp 0x14002555b
sub rbp, rdx
lea r8, [rsp + 0x80]
add r8, rbp
cmp r8, qword [rsp + 0x520]
jbe 0x140025544
mov ebx, 0xffffbc00
jmp 0x14002555b
mov rax, qword [rsp + 0x30]
mov qword [rax], r8
test r8, r8
je 0x14002555b
mov rcx, qword [rsp + 0x38]
call fcn.1400a1c90
mov edx, 0x400
lea rcx, [rsp + 0x80]
call fcn.140023aa0
mov edx, 0x40
lea rcx, [rsp + 0x40]
call fcn.140023aa0
mov eax, ebx
jmp 0x140025585
mov eax, 0xffffbf80
mov rcx, qword [rsp + 0x480]
xor rcx, rsp
call fcn.1400a0360
add rsp, 0x498
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret