Function at 0x180004c10
Capabilities:
Encode data using xor

Disassembly:
test r9d, r9d
je 0x180004f66
push rbp
push rbx
push r13
push r14
mov rbp, rsp
sub rsp, 0x48
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp - 0x28], rax
mov qword [rsp + 0x70], rsi
lea rax, [rdx + 0xf]
mov qword [rsp + 0x40], rdi
mov r14d, r9d
mov qword [rsp + 0x38], r12
mov r10, r8
mov qword [rsp + 0x30], r15
mov rbx, rdx
mov qword [rbp - 0x40], rdx
mov r13, rcx
mov qword [rbp - 0x48], rcx
lea rcx, [rbp - 0x38]
cmp rcx, rax
ja 0x180004c7b
lea rax, [rbp - 0x29]
cmp rax, rbx
jb 0x180004c7b
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x38], xmm0
jmp 0x180004c82
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x38], xmm0
mov r9d, dword [rbp - 0x34]
mov r15d, 4
xor r9d, dword [r13 + 4]
mov edi, dword [r13 + 8]
mov r8d, r9d
mov esi, dword [r13 + 0xc]
mov ebx, r9d
mov eax, dword [rbp - 0x38]
mov r11d, esi
xor eax, dword [r13]
mov edx, dword [rbp - 0x30]
xor edx, edi
mov dword [rbp - 0x34], r9d
xor r11d, dword [rbp - 0x2c]
mov dword [rbp - 0x2c], r11d
mov r12d, r11d
mov r13d, r11d
nop
lea ecx, [rax + r9]
shr r8d, 0x1b
lea eax, [rdx + r11]
shr r12d, 0x18
mov r9d, ebx
mov r11d, r13d
shl r9d, 5
or r9d, r8d
shl r11d, 8
xor r9d, ecx
or r11d, r12d
xor r11d, eax
lea r8d, [r9 + rax]
ror r9d, 0x19
xor r9d, r8d
mov eax, ecx
shr eax, 0x10
shl ecx, 0x10
or ecx, eax
ror r8d, 0x10
add ecx, r11d
ror r11d, 0x13
xor r11d, ecx
lea edx, [rcx + r9]
ror r9d, 0x1b
xor r9d, edx
lea eax, [r8 + r11]
ror r11d, 0x18
xor r11d, eax
ror edx, 0x10
lea r8d, [rax + r9]
ror r9d, 0x19
xor r9d, r8d
ror r8d, 0x10
lea eax, [rdx + r11]
ror r11d, 0x13
xor r11d, eax
lea ecx, [rax + r9]
ror r9d, 0x1b
xor r9d, ecx
ror ecx, 0x10
lea eax, [r8 + r11]
ror r11d, 0x18
xor r11d, eax
lea edx, [rax + r9]
ror r9d, 0x19
xor r9d, edx
ror edx, 0x10
lea eax, [rcx + r11]
ror r11d, 0x13
xor r11d, eax
lea ecx, [rax + r9]
ror r9d, 0x1b
xor r9d, ecx
ror ecx, 0x10
lea eax, [rdx + r11]
ror r11d, 0x18
xor r11d, eax
lea edx, [rax + r9]
ror r9d, 0x19
xor r9d, edx
ror edx, 0x10
lea eax, [rcx + r11]
mov r8d, r9d
ror r11d, 0x13
mov ebx, r9d
xor r11d, eax
mov r12d, r11d
mov r13d, r11d
sub r15, 1
jne 0x180004cc0
mov r13, qword [rbp - 0x48]
xor esi, r11d
mov rbx, qword [rbp - 0x40]
xor edi, edx
mov dword [rbp - 0x2c], esi
mov esi, 0x10
mov dword [rbp - 0x30], edi
xor r9d, dword [r13 + 4]
xor eax, dword [r13]
mov dword [rbp - 0x34], r9d
cmp r14d, 0x10
mov r9d, r14d
mov dword [rbp - 0x38], eax
cmova r9d, esi
xor eax, eax
test r9d, r9d
je 0x180004f11
cmp r9d, 8
jb 0x180004ee1
lea ecx, [r9 - 1]
mov edx, ecx
lea r8, [rcx + r10]
lea rcx, [rbp - 0x38]
add rcx, rdx
cmp r10, rcx
ja 0x180004e24
lea rcx, [rbp - 0x38]
cmp r8, rcx
jae 0x180004ee1
cmp r9d, 0x40
jb 0x180004eb0
mov edi, r9d
mov r11d, r9d
and edi, 0x3f
sub r11d, edi
mov r8d, 0x20
movdqu xmm0, xmmword [rax + r10]
lea ecx, [r8 - 0x10]
movdqu xmm1, xmmword [rbp + rax - 0x38]
xorps xmm1, xmm0
movdqu xmmword [rax + r10], xmm1
add eax, 0x40
movdqu xmm0, xmmword [rcx + r10]
movdqu xmm1, xmmword [rbp + rcx - 0x38]
xorps xmm1, xmm0
movdqu xmmword [rcx + r10], xmm1
mov ecx, r8d
movdqu xmm0, xmmword [rcx + r10]
movdqu xmm1, xmmword [rbp + rcx - 0x38]
xorps xmm1, xmm0
movdqu xmmword [rcx + r10], xmm1
lea ecx, [r8 + 0x10]
add r8d, 0x40
movdqu xmm0, xmmword [rcx + r10]
movdqu xmm1, xmmword [rbp + rcx - 0x38]
xorps xmm1, xmm0
movdqu xmmword [rcx + r10], xmm1
cmp eax, r11d
jb 0x180004e40
cmp edi, 8
jb 0x180004edc
mov edx, r9d
and edx, 0xfffffff8
nop word [rax + rax]
movq xmm0, qword [rax + r10]
movq xmm1, qword [rbp + rax - 0x38]
xorps xmm1, xmm0
movq qword [rax + r10], xmm1
add eax, 8
cmp eax, edx
jb 0x180004ec0
cmp eax, r9d
jae 0x180004f11
mov edx, eax
lea r11, [rbp - 0x38]
add rdx, r10
sub r11, r10
mov r8d, r9d
sub r8d, eax
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r11 + rdx]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x180004f00
sub r14d, r9d
mov eax, r9d
add r10, rax
mov edx, esi
nop dword [rax]
lea eax, [rdx - 1]
add byte [rax + rbx], 1
jne 0x180004f2f
dec edx
test edx, edx
jg 0x180004f20
lea rax, [rbx + 0xf]
test r14d, r14d
jne 0x180004c60
mov r15, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x70]
mov rcx, qword [rbp - 0x28]
xor rcx, rsp
call fcn.180005590
add rsp, 0x48
pop r14
pop r13
pop rbx
pop rbp
ret