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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
movdqa xmmword [rsp + 0x130], xmm14
movdqa xmmword [rsp + 0x120], xmm13
movdqa xmmword [rsp + 0x110], xmm12
movdqa xmmword [rsp + 0x100], xmm11
movdqa xmmword [rsp + 0xf0], xmm10
movdqa xmmword [rsp + 0xe0], xmm9
movdqa xmmword [rsp + 0xd0], xmm8
movdqa xmmword [rsp + 0xc0], xmm7
movdqa xmmword [rsp + 0xb0], xmm6
mov rax, qword [0x18002c038]
xor rax, rsp
mov qword [rsp + 0xa8], rax
test r8d, r8d
je 0x18000187a
mov rsi, rdx
mov rbp, rcx
mov eax, r8d
mov qword [rsp + 0x78], rax
lea rax, [rcx + 0xf0]
mov qword [rsp + 0x70], rax
xor eax, eax
movdqa xmm8, xmmword [str.eeee]
mov qword [rsp + 0x88], rcx
jmp 0x18000132c
mov al, byte [rbp + 0xf0]
xor byte [rsi], al
mov al, byte [rbp + 0xf1]
xor byte [rsi + 1], al
mov al, byte [rbp + 0xf2]
xor byte [rsi + 2], al
mov al, byte [rbp + 0xf3]
xor byte [rsi + 3], al
mov al, byte [rbp + 0xf4]
xor byte [rsi + 4], al
mov al, byte [rbp + 0xf5]
xor byte [rsi + 5], al
mov al, byte [rbp + 0xf6]
xor byte [rsi + 6], al
mov al, byte [rbp + 0xf7]
xor byte [rsi + 7], al
mov al, byte [rbp + 0xf8]
xor byte [rsi + 8], al
mov al, byte [rbp + 0xf9]
xor byte [rsi + 9], al
mov al, byte [rbp + 0xfa]
xor byte [rsi + 0xa], al
mov al, byte [rbp + 0xfb]
xor byte [rsi + 0xb], al
mov al, byte [rbp + 0xfc]
xor byte [rsi + 0xc], al
mov al, byte [rbp + 0xfd]
xor byte [rsi + 0xd], al
mov al, byte [rbp + 0xfe]
xor byte [rsi + 0xe], al
mov al, byte [rbp + 0xff]
xor byte [rsi + 0xf], al
movdqa xmm0, xmmword [rsp + 0x90]
mov rax, qword [rsp + 0x70]
movdqu xmmword [rax], xmm0
add rsi, 0x10
mov rax, qword [rsp + 0x80]
add rax, 0x10
cmp rax, qword [rsp + 0x78]
jae 0x18000187a
mov qword [rsp + 0x80], rax
movdqu xmm0, xmmword [rsi]
movdqa xmmword [rsp + 0x90], xmm0
mov cl, byte [rsi]
mov al, byte [rsi + 1]
xor cl, byte [rbp + 0xe0]
mov byte [rsi], cl
xor al, byte [rbp + 0xe1]
mov byte [rsp + 0x2e], al
mov byte [rsi + 1], al
mov al, byte [rsi + 2]
xor al, byte [rbp + 0xe2]
mov byte [rsp + 0x2f], al
mov byte [rsi + 2], al
mov dl, byte [rsi + 3]
xor dl, byte [rbp + 0xe3]
mov byte [rsi + 3], dl
mov r13b, byte [rsi + 4]
xor r13b, byte [rbp + 0xe4]
mov byte [rsi + 4], r13b
mov dil, byte [rsi + 5]
xor dil, byte [rbp + 0xe5]
mov byte [rsi + 5], dil
mov al, byte [rsi + 6]
xor al, byte [rbp + 0xe6]
mov byte [rsp + 0x2d], al
mov byte [rsi + 6], al
mov al, byte [rsi + 7]
xor al, byte [rbp + 0xe7]
mov byte [rsp + 0x2c], al
mov byte [rsi + 7], al
mov r9b, byte [rsi + 8]
xor r9b, byte [rbp + 0xe8]
mov byte [rsi + 8], r9b
mov r14b, byte [rsi + 9]
xor r14b, byte [rbp + 0xe9]
mov byte [rsi + 9], r14b
mov r12b, byte [rsi + 0xa]
xor r12b, byte [rbp + 0xea]
mov byte [rsi + 0xa], r12b
mov al, byte [rsi + 0xb]
xor al, byte [rbp + 0xeb]
mov byte [rsi + 0xb], al
mov r11b, byte [rsi + 0xc]
xor r11b, byte [rbp + 0xec]
mov byte [rsi + 0xc], r11b
mov r10b, byte [rsi + 0xd]
xor r10b, byte [rbp + 0xed]
mov byte [rsi + 0xd], r10b
mov r8b, byte [rsi + 0xe]
xor r8b, byte [rbp + 0xee]
mov byte [rsi + 0xe], r8b
mov r15b, byte [rsi + 0xf]
xor r15b, byte [rbp + 0xef]
mov bl, 0xd
nop dword [rax + rax]
movzx ecx, cl
lea rbp, [0x18001a440]
mov cl, byte [rcx + rbp]
mov byte [rsi], cl
movzx ecx, r13b
mov cl, byte [rcx + rbp]
mov byte [rsi + 4], cl
movzx ecx, r9b
mov cl, byte [rcx + rbp]
mov byte [rsi + 8], cl
movzx ecx, r11b
mov cl, byte [rcx + rbp]
mov byte [rsi + 0xc], cl
movzx ecx, r10b
mov cl, byte [rcx + rbp]
mov byte [rsi + 1], cl
movzx ecx, byte [rsp + 0x2e]
mov cl, byte [rcx + rbp]
mov byte [rsi + 5], cl
movzx ecx, dil
mov cl, byte [rcx + rbp]
mov byte [rsi + 9], cl
movzx ecx, r14b
mov cl, byte [rcx + rbp]
mov byte [rsi + 0xd], cl
movzx ecx, r12b
mov cl, byte [rcx + rbp]
mov byte [rsi + 2], cl
movzx ecx, r8b
mov cl, byte [rcx + rbp]
mov byte [rsi + 6], cl
movzx ecx, byte [rsp + 0x2f]
mov cl, byte [rcx + rbp]
mov byte [rsi + 0xa], cl
movzx ecx, byte [rsp + 0x2d]
mov cl, byte [rcx + rbp]
mov byte [rsi + 0xe], cl
movzx ecx, byte [rsp + 0x2c]
mov cl, byte [rcx + rbp]
mov byte [rsi + 3], cl
movzx eax, al
mov al, byte [rax + rbp]
mov byte [rsi + 7], al
movzx eax, r15b
mov al, byte [rax + rbp]
mov byte [rsi + 0xb], al
movzx eax, dl
mov al, byte [rax + rbp]
mov byte [rsi + 0xf], al
mov ecx, ebx
mov rdx, rsi
mov rbp, qword [rsp + 0x88]
mov r8, rbp
call fcn.1800018f0
sub bl, 1
jb 0x180001270
mov eax, 0xf
nop word [rax + rax]
movzx ecx, byte [rsi + rax - 0xf]
movzx edx, byte [rsi + rax - 7]
movzx ebp, byte [rsi + rax - 3]
shl ebp, 8
or ebp, edx
movzx edx, byte [rsi + rax - 0xb]
shl edx, 8
or edx, ecx
movd xmm4, edx
pinsrw xmm4, ebp, 1
movzx ecx, byte [rsi + rax - 0xe]
movzx edx, byte [rsi + rax - 6]
movzx ebp, byte [rsi + rax - 2]
shl ebp, 8
or ebp, edx
movzx edx, byte [rsi + rax - 0xa]
shl edx, 8
or edx, ecx
movd xmm12, edx
pinsrw xmm12, ebp, 1
movzx ecx, byte [rsi + rax - 0xd]
movzx edx, byte [rsi + rax - 5]
movzx ebp, byte [rsi + rax - 1]
shl ebp, 8
or ebp, edx
movzx edx, byte [rsi + rax - 9]
shl edx, 8
or edx, ecx
movd xmm11, edx
pinsrw xmm11, ebp, 1
movzx ecx, byte [rsi + rax - 0xc]
movzx edx, byte [rsi + rax - 4]
movzx ebp, byte [rsi + rax]
shl ebp, 8
or ebp, edx
movzx edx, byte [rsi + rax - 8]
shl edx, 8
or edx, ecx
movd xmm10, edx
pinsrw xmm10, ebp, 1
pxor xmm13, xmm13
pcmpgtb xmm13, xmm4
movdqa xmm9, xmm12
pxor xmm7, xmm7
pcmpgtb xmm7, xmm12
movdqa xmm3, xmm11
pxor xmm3, xmm12
movdqa xmm6, xmm11
pxor xmm6, xmm4
pxor xmm12, xmm4
movdqa xmm2, xmm4
paddb xmm2, xmm4
pand xmm13, xmm8
pxor xmm13, xmm2
movdqa xmm1, xmm13
paddb xmm1, xmm13
pxor xmm4, xmm4
pcmpgtb xmm4, xmm2
pand xmm4, xmm8
pxor xmm4, xmm1
pxor xmm14, xmm14
pcmpgtb xmm14, xmm1
movdqa xmm1, xmm4
paddb xmm1, xmm4
pand xmm14, xmm8
pxor xmm14, xmm1
paddb xmm9, xmm9
pand xmm7, xmm8
pxor xmm7, xmm9
pxor xmm3, xmm10
pxor xmm3, xmm13
pxor xmm3, xmm7
pxor xmm6, xmm10
pxor xmm6, xmm7
movdqa xmm1, xmm7
paddb xmm1, xmm7
pxor xmm0, xmm0
pcmpgtb xmm0, xmm9
pand xmm0, xmm8
pxor xmm0, xmm1
pxor xmm7, xmm7
pcmpgtb xmm7, xmm1
pxor xmm1, xmm1
pcmpgtb xmm1, xmm11
pxor xmm13, xmm11
paddb xmm11, xmm11
pand xmm1, xmm8
pxor xmm1, xmm11
pxor xmm6, xmm1
pxor xmm6, xmm0
pxor xmm13, xmm0
paddb xmm0, xmm0
pand xmm7, xmm8
pxor xmm7, xmm0
pxor xmm3, xmm4
pxor xmm4, xmm10
pxor xmm4, xmm1
paddb xmm1, xmm1
pxor xmm0, xmm0
pcmpgtb xmm0, xmm11
pand xmm0, xmm8
pxor xmm0, xmm1
pxor xmm3, xmm0
pxor xmm4, xmm0
paddb xmm0, xmm0
pxor xmm5, xmm5
pcmpgtb xmm5, xmm1
pand xmm5, xmm8
pxor xmm5, xmm0
pxor xmm0, xmm0
pcmpgtb xmm0, xmm10
paddb xmm10, xmm10
pand xmm0, xmm8
pxor xmm0, xmm10
pxor xmm12, xmm0
paddb xmm0, xmm0
pxor xmm1, xmm1
pcmpgtb xmm1, xmm10
pand xmm1, xmm8
pxor xmm1, xmm0
pxor xmm2, xmm2
pcmpgtb xmm2, xmm0
movdqa xmm0, xmm1
paddb xmm0, xmm1
pand xmm2, xmm8
pxor xmm2, xmm0
pxor xmm3, xmm14
movdqa xmm0, xmm7
pxor xmm0, xmm5
pxor xmm3, xmm0
pxor xmm3, xmm2
movdqa xmmword [rsp + 0x30], xmm3
pxor xmm13, xmm7
pxor xmm6, xmm14
pxor xmm7, xmm1
pxor xmm7, xmm6
pxor xmm1, xmm5
pxor xmm5, xmm2
pxor xmm5, xmm7
movzx ecx, byte [rsp + 0x30]
movzx edx, byte [rsp + 0x31]
mov byte [rsi + rax - 0xf], cl
mov byte [rsi + rax - 0xb], dl
movzx ecx, byte [rsp + 0x32]
mov byte [rsi + rax - 7], cl
movzx ecx, byte [rsp + 0x33]
mov byte [rsi + rax - 3], cl
movdqa xmmword [rsp + 0x40], xmm5
pxor xmm12, xmm14
pxor xmm4, xmm12
pxor xmm0, xmm2
pxor xmm0, xmm4
movzx ecx, byte [rsp + 0x40]
movzx edx, byte [rsp + 0x41]
mov byte [rsi + rax - 0xe], cl
mov byte [rsi + rax - 0xa], dl
movzx ecx, byte [rsp + 0x42]
mov byte [rsi + rax - 6], cl
movzx ecx, byte [rsp + 0x43]
mov byte [rsi + rax - 2], cl
movdqa xmmword [rsp + 0x60], xmm0
pxor xmm13, xmm12
pxor xmm1, xmm2
pxor xmm1, xmm13
movzx ecx, byte [rsp + 0x60]
movzx edx, byte [rsp + 0x61]
mov byte [rsi + rax - 0xd], cl
mov byte [rsi + rax - 9], dl
movzx ecx, byte [rsp + 0x62]
mov byte [rsi + rax - 5], cl
movzx ecx, byte [rsp + 0x63]
mov byte [rsi + rax - 1], cl
movdqa xmmword [rsp + 0x50], xmm1
movzx ecx, byte [rsp + 0x50]
movzx edx, byte [rsp + 0x51]
mov byte [rsi + rax - 0xc], cl
mov byte [rsi + rax - 8], dl
movzx ecx, byte [rsp + 0x52]
mov byte [rsi + rax - 4], cl
movzx ecx, byte [rsp + 0x53]
mov byte [rsi + rax], cl
add rax, 0x10
cmp rax, 0x1f
jne 0x180001500
mov r10b, byte [rsi + 0xd]
mov r14b, byte [rsi + 9]
mov dil, byte [rsi + 5]
mov cl, byte [rsi]
mov al, byte [rsi + 1]
mov byte [rsp + 0x2e], al
mov al, byte [rsi + 2]
mov byte [rsp + 0x2f], al
mov r12b, byte [rsi + 0xa]
mov al, byte [rsi + 6]
mov byte [rsp + 0x2d], al
mov r8b, byte [rsi + 0xe]
mov dl, byte [rsi + 3]
mov al, byte [rsi + 7]
mov byte [rsp + 0x2c], al
mov al, byte [rsi + 0xb]
mov r15b, byte [rsi + 0xf]
mov r13b, byte [rsi + 4]
mov r9b, byte [rsi + 8]
mov r11b, byte [rsi + 0xc]
jmp 0x180001430
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.180005fb0
movaps xmm6, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm8, xmmword [rsp + 0xd0]
movaps xmm9, xmmword [rsp + 0xe0]
movaps xmm10, xmmword [rsp + 0xf0]
movaps xmm11, xmmword [rsp + 0x100]
movaps xmm12, xmmword [rsp + 0x110]
movaps xmm13, xmmword [rsp + 0x120]
movaps xmm14, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret