Function at 0x140098290
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push r12
push r15
sub rsp, 0x20
xor r12d, r12d
mov ebp, r8d
mov r15, rdx
mov rbx, rcx
test rcx, rcx
je 0x140098713
test rdx, rdx
jne 0x1400982c1
test r8d, r8d
jne 0x140098713
mov edx, dword [rcx]
cmp edx, 0x40
jb 0x1400982dc
mov eax, 0xffffff7c
mov rbx, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r12
pop rbp
ret
test r15, r15
jne 0x1400982f6
test ebp, ebp
jne 0x1400982f6
xor eax, eax
mov rbx, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r12
pop rbp
ret
mov ecx, dword [rcx + 4]
mov qword [rsp + 0x50], r14
lea eax, [rcx + r8]
mov dword [rbx + 4], eax
cmp eax, ecx
jae 0x14009830c
inc dword [rbx + 8]
mov qword [rsp + 0x48], rdi
lea r14, [rbx + 0xc]
test edx, edx
je 0x1400984ec
mov qword [rsp + 0x40], rsi
lea rcx, [r14 + rdx]
mov esi, 0x40
sub esi, edx
mov rdx, r15
cmp ebp, esi
cmovb esi, ebp
mov r8d, esi
mov edi, esi
call fcn.1400d6bb0
add dword [rbx], esi
sub ebp, esi
mov rsi, qword [rsp + 0x40]
add r15, rdi
cmp dword [rbx], 0x40
jne 0x1400984ec
mov ecx, dword [r14]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14], ecx
mov ecx, dword [rbx + 0x10]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x10], ecx
mov ecx, dword [rbx + 0x14]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x14], ecx
mov ecx, dword [rbx + 0x18]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x18], ecx
mov ecx, dword [rbx + 0x1c]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x1c], ecx
mov ecx, dword [rbx + 0x20]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x20], ecx
mov ecx, dword [rbx + 0x24]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x24], ecx
mov ecx, dword [rbx + 0x28]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x28], ecx
mov ecx, dword [rbx + 0x2c]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x2c], ecx
mov ecx, dword [rbx + 0x30]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x30], ecx
mov ecx, dword [rbx + 0x34]
mov eax, ecx
mov rdx, r14
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x34], ecx
mov ecx, dword [rbx + 0x38]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x38], ecx
mov ecx, dword [rbx + 0x3c]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x3c], ecx
mov ecx, dword [rbx + 0x40]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x40], ecx
mov ecx, dword [rbx + 0x44]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x44], ecx
mov ecx, dword [rbx + 0x48]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [rbx + 0x48], ecx
mov rcx, rbx
call fcn.1400970e0
mov r12d, eax
test eax, eax
jne 0x1400986fa
mov dword [rbx], eax
cmp ebp, 0x40
jb 0x1400986e3
mov edi, ebp
shr rdi, 6
nop dword [rax + rax]
movups xmm0, xmmword [r15]
add ebp, 0xffffffc0
movups xmmword [r14], xmm0
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [r14 + 0x10], xmm1
movups xmm0, xmmword [r15 + 0x20]
movups xmmword [r14 + 0x20], xmm0
movups xmm1, xmmword [r15 + 0x30]
add r15, 0x40
movups xmmword [r14 + 0x30], xmm1
mov ecx, dword [r14]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14], ecx
mov ecx, dword [r14 + 4]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 4], ecx
mov ecx, dword [r14 + 8]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 8], ecx
mov ecx, dword [r14 + 0xc]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0xc], ecx
mov ecx, dword [r14 + 0x10]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0x10], ecx
mov ecx, dword [r14 + 0x14]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0x14], ecx
mov ecx, dword [r14 + 0x18]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0x18], ecx
mov ecx, dword [r14 + 0x1c]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0x1c], ecx
mov ecx, dword [r14 + 0x20]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0x20], ecx
mov rdx, r14
mov ecx, dword [r14 + 0x24]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0x24], ecx
mov ecx, dword [r14 + 0x28]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0x28], ecx
mov ecx, dword [r14 + 0x2c]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0x2c], ecx
mov ecx, dword [r14 + 0x30]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0x30], ecx
mov ecx, dword [r14 + 0x34]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0x34], ecx
mov ecx, dword [r14 + 0x38]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0x38], ecx
mov ecx, dword [r14 + 0x3c]
mov eax, ecx
rol ecx, 8
ror eax, 8
xor ecx, eax
and ecx, 0xff00ff
xor ecx, eax
mov dword [r14 + 0x3c], ecx
mov rcx, rbx
call fcn.1400970e0
mov r12d, eax
sub rdi, 1
jne 0x140098500
test ebp, ebp
je 0x1400986f7
mov r8d, ebp
mov rdx, r15
mov rcx, r14
call fcn.1400d6bb0
mov dword [rbx], ebp
mov eax, r12d
mov rdi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r12
pop rbp
ret
mov rbx, qword [rsp + 0x58]
mov eax, 0xffffff53
add rsp, 0x20
pop r15
pop r12
pop rbp
ret