Function at 0x180001494
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rbx, rcx
mov ecx, 0x10
mov dword [rbx + 0x3cc], ecx
mov dword [rbx + 0x3d0], ecx
movups xmm0, xmmword [str.X___.0D__zyQs_]
movdqu xmmword [rbx + 0x3d8], xmm0
movups xmm1, xmmword [str.X___.0D__zyQs_]
movdqu xmmword [rbx + 0x3f8], xmm1
mov eax, dword [rbx + 0x3cc]
cmp eax, ecx
je 0x180001503
cmp eax, 0x18
lea eax, [rcx - 2]
jne 0x180001508
cmp dword [rbx + 0x3d0], 0x20
lea ecx, [rax - 2]
cmovne eax, ecx
jmp 0x180001508
mov eax, 0xa
mov dword [rbx + 0x3d4], eax
lea rsi, [rbx + 0xc]
mov eax, dword [rbx + 0x3d0]
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd r13, eax
xor edi, edi
mov rbp, r13
test r13d, r13d
jle 0x18000153f
mov r8, r13
xor edx, edx
shl r8, 2
mov rcx, rsi
call sub.VCRUNTIME140.dll_memset
mov eax, dword [rbx + 0x3d4]
inc edi
add rsi, 0x20
cmp edi, eax
jle 0x180001529
xor esi, esi
test eax, eax
js 0x180001582
lea rdi, [rbx + 0x1ec]
test r13d, r13d
jle 0x180001572
mov r8, r13
xor edx, edx
shl r8, 2
mov rcx, rdi
call sub.VCRUNTIME140.dll_memset
mov eax, dword [rbx + 0x3d4]
inc esi
add rdi, 0x20
cmp esi, eax
jle 0x18000155c
lea r11d, [rax + 1]
mov eax, dword [rbx + 0x3cc]
cdq
imul r11d, r13d
and edx, 3
lea r12, [rbx + 0x418]
add eax, edx
mov r8, r12
sar eax, 2
lea rdx, str._Ryo__A_3n_u_:L
movsxd r15, eax
test eax, eax
jle 0x1800015ec
mov r9d, r15d
movzx ecx, byte [rdx]
lea rdx, [rdx + 4]
shl ecx, 0x18
mov dword [r8], ecx
movzx eax, byte [rdx - 3]
shl eax, 0x10
or eax, ecx
mov dword [r8], eax
movzx ecx, byte [rdx - 2]
shl ecx, 8
or ecx, eax
mov dword [r8], ecx
movzx eax, byte [rdx - 1]
or eax, ecx
mov dword [r8], eax
lea r8, [r8 + 4]
sub r9, 1
jne 0x1800015b4
xor r9d, r9d
lea r14, [0x180000000]
test r15d, r15d
jle 0x180001647
xor esi, esi
mov rdi, r12
cmp r9d, r11d
jge 0x180001765
mov eax, r9d
inc rsi
cdq
inc r9d
idiv r13d
movsxd rcx, eax
movsxd r8, edx
lea rdx, [r8 + rcx*8]
mov ecx, dword [rdi]
mov dword [rbx + rdx*4 + 0xc], ecx
mov ecx, dword [rbx + 0x3d4]
sub ecx, eax
movsxd rax, ecx
lea rcx, [r8 + rax*8]
mov eax, dword [rdi]
add rdi, 4
mov dword [rbx + rcx*4 + 0x1ec], eax
cmp rsi, r15
jl 0x180001600
cmp r9d, r11d
jge 0x180001765
lea rbp, [0x180006d10]
lea rdi, [rbx + 0x41c]
movsxd rdx, dword [rbx + r15*4 + 0x414]
mov rax, rdx
sar rax, 0x10
movzx ecx, al
movsx eax, byte [rbp]
inc rbp
movsx r8d, byte [rcx + r14 + 0x57a0]
xor r8d, eax
mov rax, rdx
sar rax, 8
shl r8d, 8
movzx ecx, al
movzx eax, byte [rcx + r14 + 0x57a0]
xor r8d, eax
movzx eax, dl
shl r8d, 8
sar rdx, 0x18
movzx eax, byte [rax + r14 + 0x57a0]
xor r8d, eax
movzx eax, dl
shl r8d, 8
movzx eax, byte [rax + r14 + 0x57a0]
xor r8d, eax
xor dword [r12], r8d
cmp r15d, 8
je 0x180001809
cmp r15, 1
jle 0x1800016f5
lea rcx, [rbx + 0x41c]
lea rdx, [r15 - 1]
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x1800016e6
lea rdi, [rbx + 0x41c]
xor esi, esi
test r15d, r15d
jle 0x180001752
mov r14, r12
cmp r9d, r11d
jge 0x18000175b
mov eax, r9d
inc rsi
cdq
inc r9d
idiv r13d
movsxd rcx, eax
movsxd r8, edx
lea rdx, [r8 + rcx*8]
mov ecx, dword [r14]
mov dword [rbx + rdx*4 + 0xc], ecx
mov ecx, dword [rbx + 0x3d4]
sub ecx, eax
movsxd rax, ecx
lea rcx, [r8 + rax*8]
mov eax, dword [r14]
add r14, 4
mov dword [rbx + rcx*4 + 0x1ec], eax
cmp rsi, r15
jl 0x180001706
lea r14, [0x180000000]
cmp r9d, r11d
jl 0x18000165e
mov rbp, r13
lea r14, [0x180000000]
mov r10d, 1
cmp dword [rbx + 0x3d4], r10d
jle 0x1800017e8
lea r11, [rbx + 0x20c]
test rbp, rbp
jle 0x1800017d8
mov rdi, r11
mov rsi, rbp
movsxd r9, dword [rdi]
mov rax, r9
sar rax, 0x18
movzx edx, al
mov rax, r9
sar rax, 0x10
movzx ecx, al
mov rax, r9
sar rax, 8
mov r8d, dword [r14 + rdx*4 + 0x7130]
xor r8d, dword [r14 + rcx*4 + 0x58a0]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [r14 + rcx*4 + 0x60a0]
xor r8d, dword [r14 + rax*4 + 0x6d30]
mov dword [rdi], r8d
lea rdi, [rdi + 4]
sub rsi, 1
jne 0x180001786
inc r10d
add r11, 0x20
cmp r10d, dword [rbx + 0x3d4]
jl 0x18000177b
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x68]
mov byte [rbx + 8], 1
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov rcx, rdi
mov edx, 3
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x180001811
movsxd r8, dword [rbx + 0x424]
mov rax, r8
sar rax, 0x18
movzx ecx, al
mov rax, r8
sar rax, 0x10
movsx edx, byte [rcx + r14 + 0x57a0]
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r14 + 0x57a0]
xor edx, eax
mov rax, r8
sar rax, 8
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + r14 + 0x57a0]
xor edx, eax
movzx eax, r8b
shl edx, 8
movzx eax, byte [rax + r14 + 0x57a0]
xor edx, eax
xor dword [rbx + 0x428], edx
cmp r15, 5
jle 0x1800016fc
lea rcx, [rbx + 0x42c]
lea rdx, [r15 - 5]
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x180001897
xor esi, esi
jmp 0x180001703