Function at 0x140093a80
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 0x140093f03
test rdx, rdx
jne 0x140093ab1
test r8d, r8d
jne 0x140093f03
mov edx, dword [rcx]
cmp edx, 0x40
jb 0x140093acc
mov eax, 0xffffff7c
mov rbx, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r12
pop rbp
ret
test r15, r15
jne 0x140093ae6
test ebp, ebp
jne 0x140093ae6
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 0x140093afc
inc dword [rbx + 8]
mov qword [rsp + 0x48], rdi
lea r14, [rbx + 0xc]
test edx, edx
je 0x140093cdc
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.1400ce550
add dword [rbx], esi
sub ebp, esi
mov rsi, qword [rsp + 0x40]
add r15, rdi
cmp dword [rbx], 0x40
jne 0x140093cdc
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.1400928e0
mov r12d, eax
test eax, eax
jne 0x140093eea
mov dword [rbx], eax
cmp ebp, 0x40
jb 0x140093ed3
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.1400928e0
mov r12d, eax
sub rdi, 1
jne 0x140093cf0
test ebp, ebp
je 0x140093ee7
mov r8d, ebp
mov rdx, r15
mov rcx, r14
call fcn.1400ce550
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