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

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov ebx, 0xffffff53
test rcx, rcx
je 0x140060974
mov r14d, r8d
cmp r8d, 0xf0
ja 0x140060974
cmp r14d, 0x20
ja 0x140060974
mov r8d, r14d
movabs rax, 0x101010000
bt rax, r8
jae 0x140060974
mov rdi, r9
mov rsi, rcx
mov dword [rcx + 0xf4], r14d
mov r15d, r14d
shr r15d, 2
lea eax, [r15 + 6]
mov dword [rcx + 0xf0], eax
call sub.msvcrt.dll_memcpy
test sil, 3
je 0x14006038e
mov ecx, r14d
and ecx, 0xfffffffc
je 0x140060500
mov eax, ecx
cmp ecx, 0x1d
jae 0x1400603a2
xor ecx, ecx
jmp 0x140060450
mov eax, r15d
cmp r14d, 0x20
jae 0x140060466
xor ecx, ecx
jmp 0x1400604f0
lea rdx, [rax - 1]
shr rdx, 2
inc rdx
mov r8, rdx
and r8, 0xfffffffffffffff8
lea rcx, [r8*4]
xor r9d, r9d
pxor xmm0, xmm0
nop word cs:[rax + rax]
movdqu xmm1, xmmword [rsi + r9*4]
movdqu xmm2, xmmword [rsi + r9*4 + 0x10]
movdqa xmm3, xmm1
punpckhbw xmm3, xmm0
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm1, xmm0
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm3
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [rsi + r9*4], xmm1
movdqu xmmword [rsi + r9*4 + 0x10], xmm2
add r9, 8
cmp r8, r9
jne 0x1400603d0
cmp rdx, r8
je 0x140060500
nop word cs:[rax + rax]
mov edx, dword [rsi + rcx]
bswap edx
mov dword [rsi + rcx], edx
add rcx, 4
cmp rcx, rax
jb 0x140060450
jmp 0x140060500
mov ecx, eax
and ecx, 0xfffffff8
mov edx, r14d
and edx, 0xffffffe0
xor r8d, r8d
pxor xmm0, xmm0
nop dword [rax + rax]
movdqu xmm1, xmmword [rsi + r8]
movdqu xmm2, xmmword [rsi + r8 + 0x10]
movdqa xmm3, xmm1
punpckhbw xmm3, xmm0
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm1, xmm0
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm3
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [rsi + r8], xmm1
movdqu xmmword [rsi + r8 + 0x10], xmm2
add r8, 0x20
cmp rdx, r8
jne 0x140060480
cmp rcx, rax
je 0x140060500
mov edx, dword [rsi + rcx*4]
bswap edx
mov dword [rsi + rcx*4], edx
inc rcx
cmp rax, rcx
jne 0x1400604f0
cmp r14d, 0x10
je 0x140060632
cmp r14d, 0x18
je 0x140060983
cmp r14d, 0x20
jne 0x140060974
mov r8d, dword [rsi]
xor eax, eax
lea r11, [0x140262790]
lea r9, [0x140263790]
nop word cs:[rax + rax]
mov ecx, dword [rsi + rax*8 + 0x1c]
mov rdx, rcx
shr rdx, 0xe
and edx, 0x3fc
movzx edx, byte [rdx + r11 + 0x803]
shl edx, 0x18
movzx ebp, ch
movzx r10d, byte [r11 + rbp*4 + 0xc02]
shl r10d, 0x10
xor r10d, r8d
xor r10d, edx
movzx edx, cl
movzx edx, byte [r11 + rdx*4 + 1]
shl edx, 8
mov rbx, rcx
shr rbx, 0x18
movzx r8d, byte [r11 + rbx*4 + 0x400]
xor r8d, edx
xor r8d, r10d
xor r8d, dword [rax + r9]
mov dword [rsi + rax*8 + 0x20], r8d
mov edx, dword [rsi + rax*8 + 4]
xor edx, r8d
mov dword [rsi + rax*8 + 0x24], edx
xor edx, dword [rsi + rax*8 + 8]
mov dword [rsi + rax*8 + 0x28], edx
xor edx, dword [rsi + rax*8 + 0xc]
mov dword [rsi + rax*8 + 0x2c], edx
cmp rax, 0x18
je 0x1400606df
mov r10d, edx
shr r10d, 0x18
movzx r10d, byte [r11 + r10*4 + 0x803]
shl r10d, 0x18
xor r10d, dword [rsi + rax*8 + 0x10]
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
movzx ebx, byte [r11 + rbx*4 + 0xc02]
shl ebx, 0x10
movzx ebp, dh
movzx ebp, byte [r11 + rbp*4 + 1]
shl ebp, 8
xor ebp, ebx
movzx edx, dl
movzx edx, byte [r11 + rdx*4 + 0x400]
xor edx, ebp
xor edx, r10d
mov dword [rsi + rax*8 + 0x30], edx
xor edx, dword [rsi + rax*8 + 0x14]
mov dword [rsi + rax*8 + 0x34], edx
xor edx, dword [rsi + rax*8 + 0x18]
mov dword [rsi + rax*8 + 0x38], edx
xor edx, ecx
mov dword [rsi + rax*8 + 0x3c], edx
add rax, 4
jmp 0x140060540
mov r8d, dword [rsi]
xor eax, eax
lea rcx, [0x140262790]
lea r11, [0x140263790]
nop word cs:[rax + rax]
mov edx, dword [rsi + rax*4 + 0xc]
mov r9, rdx
shr r9, 0xe
and r9d, 0x3fc
movzx r9d, byte [r9 + rcx + 0x803]
shl r9d, 0x18
movzx ebp, dh
movzx r10d, byte [rcx + rbp*4 + 0xc02]
shl r10d, 0x10
xor r10d, r8d
xor r10d, r9d
movzx r8d, dl
movzx r9d, byte [rcx + r8*4 + 1]
shl r9d, 8
mov rbx, rdx
shr rbx, 0x18
movzx r8d, byte [rcx + rbx*4 + 0x400]
xor r8d, r9d
xor r8d, r10d
xor r8d, dword [rax + r11]
mov dword [rsi + rax*4 + 0x10], r8d
mov r9d, dword [rsi + rax*4 + 4]
xor r9d, r8d
mov dword [rsi + rax*4 + 0x14], r9d
xor r9d, dword [rsi + rax*4 + 8]
mov dword [rsi + rax*4 + 0x18], r9d
xor r9d, edx
mov dword [rsi + rax*4 + 0x1c], r9d
add rax, 4
cmp rax, 0x28
jne 0x140060650
mov ecx, dword [rsp + 0x80]
lea rax, [rsp + 0x24]
neg eax
test al, 4
mov byte [rsp + 0x24], 0
mov byte [rsp + 0x25], 0
mov byte [rsp + 0x26], 0
mov byte [rsp + 0x27], 0
cmp ecx, 1
jne 0x140060954
mov ecx, dword [rsi + 0xf0]
shl ecx, 2
test ecx, ecx
je 0x140060781
xor edx, edx
nop dword [rax + rax]
mov r8d, dword [rsi + rdx*4]
mov r9d, ecx
mov r10d, dword [rsi + r9*4]
mov dword [rsi + rdx*4], r10d
mov dword [rsi + r9*4], r8d
mov r8d, dword [rsi + rdx*4 + 4]
lea r9d, [rcx + 1]
mov r10d, dword [rsi + r9*4]
mov dword [rsi + rdx*4 + 4], r10d
mov dword [rsi + r9*4], r8d
mov r8d, dword [rsi + rdx*4 + 8]
lea r9d, [rcx + 2]
mov r10d, dword [rsi + r9*4]
mov dword [rsi + rdx*4 + 8], r10d
mov dword [rsi + r9*4], r8d
mov r8d, dword [rsi + rdx*4 + 0xc]
lea r9d, [rcx + 3]
mov r10d, dword [rsi + r9*4]
mov dword [rsi + rdx*4 + 0xc], r10d
mov dword [rsi + r9*4], r8d
add rdx, 4
add ecx, 0xfffffffc
cmp rdx, rcx
jb 0x140060720
test al, 4
mov byte [rsp + 0x24], 0
mov byte [rsp + 0x25], 0
mov byte [rsp + 0x26], 0
mov byte [rsp + 0x27], 0
cmp dword [rsi + 0xf0], 2
jb 0x140060954
lea rax, [rsi + 0x1c]
mov r10d, 1
lea r14, [0x140262790]
lea r8, [0x1402637c0]
nop dword [rax]
mov ecx, dword [rax - 0xc]
mov r9, rcx
movzx ebp, ch
mov rbx, rcx
shr rbx, 0x18
movzx r11d, byte [r14 + rbx*4 + 0x400]
shr r9, 0xe
and r9d, 0x3fc
movzx r9d, byte [r9 + r14 + 0x400]
mov r9d, dword [r8 + r9*4 + 0x400]
xor r9d, dword [r8 + r11*4]
movzx ecx, cl
movzx r11d, byte [r14 + rbp*4 + 0x400]
xor r9d, dword [r8 + r11*4 + 0x800]
mov edx, dword [rax - 8]
movzx ecx, byte [r14 + rcx*4 + 0x400]
xor r9d, dword [r8 + rcx*4 + 0xc00]
mov dword [rax - 0xc], r9d
mov rcx, rdx
movzx ebp, dh
mov rbx, rdx
shr rbx, 0x18
movzx r9d, byte [r14 + rbx*4 + 0x400]
shr rcx, 0xe
and ecx, 0x3fc
movzx ecx, byte [rcx + r14 + 0x400]
mov ecx, dword [r8 + rcx*4 + 0x400]
xor ecx, dword [r8 + r9*4]
movzx edx, dl
movzx r9d, byte [r14 + rbp*4 + 0x400]
xor ecx, dword [r8 + r9*4 + 0x800]
movzx edx, byte [r14 + rdx*4 + 0x400]
xor ecx, dword [r8 + rdx*4 + 0xc00]
mov dword [rax - 8], ecx
mov edx, dword [rax - 4]
mov rcx, rdx
movzx ebp, dh
mov rbx, rdx
shr rbx, 0x18
movzx r9d, byte [r14 + rbx*4 + 0x400]
shr rcx, 0xe
and ecx, 0x3fc
movzx ecx, byte [rcx + r14 + 0x400]
mov ecx, dword [r8 + rcx*4 + 0x400]
xor ecx, dword [r8 + r9*4]
movzx edx, dl
movzx r9d, byte [r14 + rbp*4 + 0x400]
xor ecx, dword [r8 + r9*4 + 0x800]
movzx edx, byte [r14 + rdx*4 + 0x400]
xor ecx, dword [r8 + rdx*4 + 0xc00]
mov dword [rax - 4], ecx
mov edx, dword [rax]
mov rcx, rdx
movzx ebp, dh
mov rbx, rdx
shr rbx, 0x18
movzx r9d, byte [r14 + rbx*4 + 0x400]
shr rcx, 0xe
and ecx, 0x3fc
movzx ecx, byte [rcx + r14 + 0x400]
mov ecx, dword [r8 + rcx*4 + 0x400]
xor ecx, dword [r8 + r9*4]
movzx edx, dl
movzx r9d, byte [r14 + rbp*4 + 0x400]
xor ecx, dword [r8 + r9*4 + 0x800]
movzx edx, byte [r14 + rdx*4 + 0x400]
xor ecx, dword [r8 + rdx*4 + 0xc00]
mov dword [rax], ecx
inc r10d
add rax, 0x10
cmp r10d, dword [rsi + 0xf0]
jb 0x1400607c0
add rsi, 0x100
test rdi, rdi
je 0x14006096a
movdqu xmm0, xmmword [rdi]
movdqu xmmword [rsi], xmm0
jmp 0x140060972
pxor xmm0, xmm0
movdqa xmmword [rsi], xmm0
xor ebx, ebx
mov eax, ebx
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov r9d, dword [rsi]
lea rax, [rsi + 0x2c]
xor ecx, ecx
lea r14, [0x140262790]
lea r8, [0x140263790]
nop word [rax + rax]
mov edx, dword [rax - 0x18]
mov r10, rdx
shr r10, 0xe
and r10d, 0x3fc
movzx r10d, byte [r10 + r14 + 0x803]
shl r10d, 0x18
movzx ebp, dh
movzx r11d, byte [r14 + rbp*4 + 0xc02]
shl r11d, 0x10
xor r11d, r9d
xor r11d, r10d
movzx r9d, dl
movzx r10d, byte [r14 + r9*4 + 1]
shl r10d, 8
mov rbx, rdx
shr rbx, 0x18
movzx r9d, byte [r14 + rbx*4 + 0x400]
xor r9d, r10d
xor r9d, r11d
xor r9d, dword [rcx + r8]
mov dword [rax - 0x14], r9d
mov r10d, dword [rax - 0x28]
xor r10d, r9d
mov dword [rax - 0x10], r10d
xor r10d, dword [rax - 0x24]
mov dword [rax - 0xc], r10d
xor r10d, dword [rax - 0x20]
mov dword [rax - 8], r10d
cmp rcx, 0x1c
je 0x1400606df
xor r10d, dword [rax - 0x1c]
mov dword [rax - 4], r10d
xor r10d, edx
mov dword [rax], r10d
add rcx, 4
add rax, 0x18
jmp 0x1400609a0