Function at 0x14003d780
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
xorps xmm0, xmm0
lea r9, [rbp - 0x26]
mov esi, 4
mov r13, r8
movups xmmword [rbp - 0x28], xmm0
mov r10d, esi
mov r15, rdx
add rcx, 8
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx - 8]
lea rcx, [rcx + 1]
mov byte [r9 - 2], al
lea r9, [r9 + 4]
movzx eax, byte [rcx - 5]
mov byte [r9 - 5], al
movzx eax, byte [rcx - 1]
mov byte [r9 - 4], al
movzx eax, byte [rcx + 3]
mov byte [r9 - 3], al
sub r10, 1
jne 0x14003d7c0
movups xmm0, xmmword [rdx + 0xe0]
xor ebx, ebx
mov ecx, ebx
movaps xmmword [rbp - 0x10], xmm0
nop dword [rax]
movzx eax, byte [rbp + rcx - 0x10]
xor byte [rbp + rcx*4 - 0x28], al
movzx eax, byte [rbp + rcx - 0xc]
xor byte [rbp + rcx*4 - 0x27], al
movzx eax, byte [rbp + rcx - 8]
xor byte [rbp + rcx*4 - 0x26], al
movzx eax, byte [rbp + rcx - 4]
xor byte [rbp + rcx*4 - 0x25], al
inc rcx
cmp rcx, rsi
jb 0x14003d800
lea rdx, [rbp - 0x28]
mov r14d, 0xd
lea r8, [rbp - 0x26]
lea r9, [rbp - 0x25]
lea rdi, [r15 + 0xd0]
lea r12, [0x140051980]
nop dword [rax]
mov rcx, rbx
movzx eax, byte [rdx + rcx*4]
movzx eax, byte [rax + r12]
mov byte [rdx + rcx*4], al
movzx eax, byte [rbp + rcx*4 - 0x27]
movzx eax, byte [rax + r12]
mov byte [rbp + rcx*4 - 0x27], al
movzx eax, byte [r8 + rcx*4]
movzx eax, byte [rax + r12]
mov byte [r8 + rcx*4], al
movzx eax, byte [r9 + rcx*4]
movzx eax, byte [rax + r12]
mov byte [r9 + rcx*4], al
inc rcx
cmp rcx, rsi
jb 0x14003d853
movzx eax, byte [rbp - 0x21]
movups xmm0, xmmword [rdi]
mov byte [rbp + 0x48], al
movzx eax, byte [rbp - 0x24]
mov byte [rbp + 0x49], al
movzx eax, byte [rbp - 0x23]
mov byte [rbp + 0x4a], al
movzx eax, byte [rbp - 0x22]
mov byte [rbp + 0x4b], al
mov eax, dword [rbp + 0x48]
mov dword [rbp - 0x24], eax
movzx eax, byte [rbp - 0x1e]
mov byte [rbp + 0x58], al
movzx eax, byte [rbp - 0x1d]
mov byte [rbp + 0x59], al
movzx eax, byte [rbp - 0x20]
mov byte [rbp + 0x5a], al
movzx eax, byte [rbp - 0x1f]
mov byte [rbp + 0x5b], al
mov eax, dword [rbp + 0x58]
mov dword [rbp - 0x20], eax
movzx eax, byte [rbp - 0x1b]
mov byte [rbp - 0x30], al
movzx eax, byte [rbp - 0x1a]
mov byte [rbp - 0x2f], al
movzx eax, byte [rbp - 0x19]
mov byte [rbp - 0x2e], al
movzx eax, byte [rbp - 0x1c]
mov byte [rbp - 0x2d], al
mov eax, dword [rbp - 0x30]
mov dword [rbp - 0x1c], eax
mov rax, rbx
movaps xmmword [rbp - 0x10], xmm0
movzx ecx, byte [rbp + rax - 0x10]
xor byte [rdx + rax*4], cl
movzx ecx, byte [rbp + rax - 0xc]
xor byte [rbp + rax*4 - 0x27], cl
movzx ecx, byte [rbp + rax - 8]
xor byte [r8 + rax*4], cl
movzx ecx, byte [rbp + rax - 4]
xor byte [r9 + rax*4], cl
inc rax
cmp rax, rsi
jb 0x14003d901
lea rcx, [rbp - 0x28]
call fcn.140039260
sub rdi, 0x10
lea rdx, [rbp - 0x28]
lea r8, [rbp - 0x26]
lea r9, [rbp - 0x25]
sub r14, 1
jne 0x14003d850
mov rcx, rbx
movzx eax, byte [rbp + rcx*4 - 0x28]
movzx eax, byte [rax + r12]
mov byte [rbp + rcx*4 - 0x28], al
movzx eax, byte [rbp + rcx*4 - 0x27]
movzx eax, byte [rax + r12]
mov byte [rbp + rcx*4 - 0x27], al
movzx eax, byte [rbp + rcx*4 - 0x26]
movzx eax, byte [rax + r12]
mov byte [rbp + rcx*4 - 0x26], al
movzx eax, byte [rbp + rcx*4 - 0x25]
movzx eax, byte [rax + r12]
mov byte [rbp + rcx*4 - 0x25], al
inc rcx
cmp rcx, rsi
jb 0x14003d952
movzx eax, byte [rbp - 0x21]
movups xmm0, xmmword [r15]
mov byte [rbp + 0x48], al
movzx eax, byte [rbp - 0x24]
mov byte [rbp + 0x49], al
movzx eax, byte [rbp - 0x23]
mov byte [rbp + 0x4a], al
movzx eax, byte [rbp - 0x22]
mov byte [rbp + 0x4b], al
mov eax, dword [rbp + 0x48]
mov dword [rbp - 0x24], eax
movzx eax, byte [rbp - 0x1e]
mov byte [rbp + 0x48], al
movzx eax, byte [rbp - 0x1d]
mov byte [rbp + 0x49], al
movzx eax, byte [rbp - 0x20]
mov byte [rbp + 0x4a], al
movzx eax, byte [rbp - 0x1f]
mov byte [rbp + 0x4b], al
mov eax, dword [rbp + 0x48]
mov dword [rbp - 0x20], eax
movzx eax, byte [rbp - 0x1b]
mov byte [rbp + 0x48], al
movzx eax, byte [rbp - 0x1a]
mov byte [rbp + 0x49], al
movzx eax, byte [rbp - 0x19]
mov byte [rbp + 0x4a], al
movzx eax, byte [rbp - 0x1c]
mov byte [rbp + 0x4b], al
mov eax, dword [rbp + 0x48]
mov dword [rbp - 0x1c], eax
movaps xmmword [rbp - 0x10], xmm0
movzx eax, byte [rbp + rbx - 0x10]
xor byte [rbp + rbx*4 - 0x28], al
movzx eax, byte [rbp + rbx - 0xc]
xor byte [rbp + rbx*4 - 0x27], al
movzx eax, byte [rbp + rbx - 8]
xor byte [rbp + rbx*4 - 0x26], al
movzx eax, byte [rbp + rbx - 4]
xor byte [rbp + rbx*4 - 0x25], al
inc rbx
cmp rbx, rsi
jb 0x14003da00
lea rcx, [r13 + 8]
lea rdx, [rbp - 0x26]
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx - 2]
lea rdx, [rdx + 4]
mov byte [rcx - 8], al
lea rcx, [rcx + 1]
movzx eax, byte [rdx - 5]
mov byte [rcx - 5], al
movzx eax, byte [rdx - 4]
mov byte [rcx - 1], al
movzx eax, byte [rdx - 3]
mov byte [rcx + 3], al
sub rsi, 1
jne 0x14003da40
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret