Function at 0x14009c780
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 0x14009cc03
test rdx, rdx
jne 0x14009c7b1
test r8d, r8d
jne 0x14009cc03
mov edx, dword [rcx]
cmp edx, 0x40
jb 0x14009c7cc
mov eax, 0xffffff7c
mov rbx, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r12
pop rbp
ret
test r15, r15
jne 0x14009c7e6
test ebp, ebp
jne 0x14009c7e6
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 0x14009c7fc
inc dword [rbx + 8]
mov qword [rsp + 0x48], rdi
lea r14, [rbx + 0xc]
test edx, edx
je 0x14009c9dc
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.140152da0
add dword [rbx], esi
sub ebp, esi
mov rsi, qword [rsp + 0x40]
add r15, rdi
cmp dword [rbx], 0x40
jne 0x14009c9dc
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.14009b5d0
mov r12d, eax
test eax, eax
jne 0x14009cbea
mov dword [rbx], eax
cmp ebp, 0x40
jb 0x14009cbd3
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.14009b5d0
mov r12d, eax
sub rdi, 1
jne 0x14009c9f0
test ebp, ebp
je 0x14009cbe7
mov r8d, ebp
mov rdx, r15
mov rcx, r14
call fcn.140152da0
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