Function at 0x1400730d0
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 0x140073553
test rdx, rdx
jne 0x140073112
test r8d, r8d
jne 0x140073553
xor eax, eax
mov rbx, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r12
pop rbp
ret
mov edx, dword [rcx]
cmp edx, 0x40
jb 0x14007312d
mov eax, 0xffffff7c
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 0x140073143
inc dword [rbx + 8]
mov qword [rsp + 0x48], rdi
lea r14, [rbx + 0xc]
test edx, edx
je 0x140073323
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 sub.VCRUNTIME140.dll_memcpy
add dword [rbx], esi
sub ebp, esi
mov rsi, qword [rsp + 0x40]
add r15, rdi
cmp dword [rbx], 0x40
jne 0x140073323
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.140071f30
mov r12d, eax
test eax, eax
jne 0x14007353a
mov dword [rbx], eax
cmp ebp, 0x40
jb 0x140073523
mov edi, ebp
shr rdi, 6
nop dword [rax]
nop word [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.140071f30
mov r12d, eax
sub rdi, 1
jne 0x140073340
test ebp, ebp
je 0x140073537
mov r8d, ebp
mov rdx, r15
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
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