Function at 0x18005d3e0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov dword [rax + 8], ecx
push r12
sub rsp, 0x80
mov r12, r9
lea r9d, [rcx + 0x39c]
mov dword [rsp + 0x30], r9d
cmp ecx, r9d
jae 0x18005d7b9
mov qword [rax + 0x20], rbx
mov qword [rax - 0x10], rbp
mov ebp, dword [rsp + 0x90]
mov qword [rax - 0x18], rsi
mov rsi, qword [rsp + 0x48]
mov qword [rax - 0x20], rdi
mov rdi, qword [rsp + 0x48]
mov qword [rax - 0x28], r13
mov r13, qword [rsp + 0x48]
mov qword [rax - 0x30], r14
mov r14d, dword [rsp + 0x90]
mov qword [rax - 0x38], r15
mov r15d, dword [rsp + 0x90]
cmp ecx, 0x18e
ja 0x18005d627
je 0x18005d60f
mov eax, ecx
sub eax, 0x90
je 0x18005d600
sub eax, 0x64
je 0x18005d572
cmp eax, 0x36
jne 0x18005d775
mov r11d, dword [r12]
cmp r11d, r15d
jle 0x18005d551
movsxd rbx, r15d
cmp r15d, r14d
jle 0x18005d54c
mov r10d, r15d
mov r9d, r11d
sub r10d, r14d
sub r9d, r15d
cmp r9d, r10d
jle 0x18005d505
movsxd r9, r10d
test r10d, r10d
jle 0x18005d500
movsxd rdx, r11d
mov rax, rdx
movsxd rcx, r14d
sub rax, rbx
add rax, rcx
mov rcx, qword [rsp + 0x98]
lea r8, [rcx + rax*8]
mov rax, rbx
sub rax, rdx
lea rdx, [rax*8]
nop dword [rax]
mov rax, qword [r8]
mov rcx, qword [rdx + r8]
mov qword [rdx + r8], rax
mov qword [r8], rcx
lea r8, [r8 + 8]
sub r9, 1
jne 0x18005d4e0
mov rdx, qword [rsp + 0x98]
sub r11d, r10d
jmp 0x18005d543
movsxd r8, r9d
test r9d, r9d
jle 0x18005d540
movsxd rcx, r14d
lea rax, [rdx + rbx*8]
sub rcx, rbx
lea r10, [rcx*8]
nop
mov rcx, qword [rax]
mov rdx, qword [r10 + rax]
mov qword [r10 + rax], rcx
mov qword [rax], rdx
lea rax, [rax + 8]
sub r8, 1
jne 0x18005d520
mov rdx, qword [rsp + 0x98]
add r14d, r9d
cmp r11d, r15d
jg 0x18005d492
mov r9d, dword [rsp + 0x30]
mov ecx, dword [r12]
mov eax, ecx
sub eax, dword [r12 + 0x34]
add dword [r12 + 0x30], eax
mov dword [r12 + 0x34], ecx
mov ecx, dword [rsp + 0x90]
jmp 0x18005d775
mov rcx, qword [r8]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rcx, qword [r12]
mov rbx, rax
mov rdx, qword [rcx]
call qword [rdx + 0x28]
cmp rax, rbx
jbe 0x18005d593
mov rcx, qword [r12]
jmp 0x18005d59e
mov rcx, qword [rsp + 0xa0]
mov rcx, qword [rcx]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rcx, qword [rsp + 0x98]
xor r9d, r9d
mov qword [rsp + 0x40], rax
xor edx, edx
mov r8d, 0x8d
mov rax, qword [rcx]
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.18006c150
mov rdx, qword [rsp + 0x98]
mov ecx, dword [rsp + 0x90]
mov rax, qword [rdx]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x48], rax
mov rax, qword [r12]
mov r13, qword [rax + 0x10]
jmp 0x18005d770
mov r14d, dword [r12 + 0x30]
mov r15d, dword [r12 + 0x34]
jmp 0x18005d775
mov rax, qword [r8]
mov r8, qword [rax + 0x10]
mov rax, qword [rdx]
mov qword [rsp + 0x38], r8
mov rdi, qword [rax + 0x18]
jmp 0x18005d775
cmp ecx, 0x228
je 0x18005d679
cmp ecx, 0x2c2
jne 0x18005d775
mov eax, ebp
cmp rax, r13
jae 0x18005d657
mov eax, dword [rsi]
inc ebp
mov dword [rdi], eax
add rsi, 4
add rdi, 4
mov eax, ebp
cmp rax, r13
jb 0x18005d642
mov r8, qword [rsp + 0x48]
xor edx, edx
sub r8, r13
mov rcx, rdi
shl r8, 2
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [rsp + 0x90]
jmp 0x18005d768
mov rax, qword [r12]
xor ebp, ebp
mov r9, qword [rsp + 0x38]
cmp r13, r9
mov rsi, qword [rax + 0x18]
mov rax, qword [r8]
mov r8, r13
cmova r8, r9
mov rdx, qword [rax + 0x18]
cmp r8, 0x10
jb 0x18005d73b
lea eax, [r8 - 1]
mov ecx, eax
lea r9, [rdi + rax*4]
lea rax, [rsi + rax*4]
cmp rdi, rax
ja 0x18005d6bb
cmp r9, rsi
jae 0x18005d72f
lea rax, [rdx + rcx*4]
cmp rdi, rax
ja 0x18005d6c9
cmp r9, rdx
jae 0x18005d72f
mov rcx, r8
and rcx, 0xfffffffffffffff0
movdqu xmm0, xmmword [rsi]
add ebp, 0x10
movdqu xmm1, xmmword [rdx]
mov eax, ebp
pxor xmm1, xmm0
movdqu xmm0, xmmword [rsi + 0x10]
movdqu xmmword [rdi], xmm1
movdqu xmm1, xmmword [rdx + 0x10]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rsi + 0x20]
movdqu xmmword [rdi + 0x10], xmm1
movdqu xmm1, xmmword [rdx + 0x20]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rsi + 0x30]
add rsi, 0x40
movdqu xmmword [rdi + 0x20], xmm1
movdqu xmm1, xmmword [rdx + 0x30]
add rdx, 0x40
pxor xmm1, xmm0
movdqu xmmword [rdi + 0x30], xmm1
add rdi, 0x40
cmp rax, rcx
jb 0x18005d6d0
mov ecx, dword [rsp + 0x90]
mov r9, qword [rsp + 0x38]
mov eax, ebp
cmp rax, r8
jae 0x18005d75d
mov eax, dword [rdx]
inc ebp
xor eax, dword [rsi]
add rdx, 4
mov dword [rdi], eax
add rsi, 4
add rdi, 4
mov eax, ebp
cmp rax, r8
jb 0x18005d742
cmp r9, r13
jbe 0x18005d768
mov rsi, rdx
mov r13, r9
mov rdx, qword [rsp + 0x98]
mov r9d, dword [rsp + 0x30]
mov r8, qword [rsp + 0xa0]
add ecx, 0x9a
mov dword [rsp + 0x90], ecx
cmp ecx, r9d
jb 0x18005d451
mov r15, qword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
mov r13, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop r12
ret