Function at 0x140001320
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, 0x28
cmp byte [rcx + 8], 0
je 0x14000130c
mov r15, rcx
mov qword [rsp + 8], r8
mov r8d, dword [rdx]
mov ebx, dword [rdx + 4]
bswap r8d
xor r8d, dword [rcx + 0x1ec]
bswap ebx
xor ebx, dword [rcx + 0x1f0]
mov edi, dword [rdx + 8]
bswap edi
xor edi, dword [rcx + 0x1f4]
mov r9d, dword [rdx + 0xc]
bswap r9d
xor r9d, dword [rcx + 0x1f8]
mov eax, dword [rcx + 0x3d4]
cmp eax, 2
mov qword [rsp], rax
jl 0x140001195
shl rax, 5
add rax, 0xffffffffffffffe0
mov qword [rsp + 0x18], rax
xor r14d, r14d
mov qword [rsp + 0x10], r15
lea r13, [0x14001c500]
nop word cs:[rax + rax]
movzx r15d, bl
mov esi, ebx
movzx eax, bh
mov qword [rsp + 0x20], rax
mov r10d, ebx
mov edx, r8d
mov eax, r8d
shr eax, 0x18
mov r11d, r9d
shr r11d, 0x10
movzx r11d, r11b
mov r11d, dword [r13 + r11*4]
lea r8, [0x14001c100]
xor r11d, dword [r8 + rax*4]
mov eax, edx
mov ecx, edx
mov r12, r9
mov ebx, edi
movzx edi, bh
lea r9, [0x14001c900]
xor r11d, dword [r9 + rdi*4]
movzx edi, ch
mov ebp, edx
shr r10d, 0x18
shr eax, 0x10
movzx eax, al
mov eax, dword [r13 + rax*4]
xor eax, dword [r8 + r10*4]
mov rcx, r12
movzx edx, ch
xor eax, dword [r9 + rdx*4]
lea r12, [0x14001cd00]
xor r11d, dword [r12 + r15*4]
mov r15, qword [rsp + 0x10]
movzx edx, bl
xor eax, dword [r12 + rdx*4]
mov r10d, ebx
shr r10d, 0x18
shr esi, 0x10
movzx edx, sil
mov edx, dword [r13 + rdx*4]
xor edx, dword [r8 + r10*4]
xor r11d, dword [r15 + r14 + 0x20c]
xor eax, dword [r15 + r14 + 0x210]
xor edx, dword [r9 + rdi*4]
movzx r10d, bpl
movzx esi, cl
xor edx, dword [r12 + rsi*4]
xor edx, dword [r15 + r14 + 0x214]
shr ecx, 0x18
shr ebx, 0x10
movzx esi, bl
mov esi, dword [r13 + rsi*4]
xor esi, dword [r8 + rcx*4]
mov rcx, qword [rsp + 0x20]
xor esi, dword [r9 + rcx*4]
xor esi, dword [r12 + r10*4]
xor esi, dword [r15 + r14 + 0x218]
add r14, 0x20
mov r8d, r11d
mov ebx, eax
mov edi, edx
mov r9d, esi
cmp qword [rsp + 0x18], r14
jne 0x140001090
jmp 0x14000119f
mov esi, r9d
mov edx, edi
mov eax, ebx
mov r11d, r8d
movsxd rdi, dword [rsp]
shl rdi, 5
mov ebx, dword [r15 + rdi + 0x1ec]
mov r10d, r11d
mov r14, r10
shr r14, 0x18
lea r9, [0x14001d100]
mov ebp, ebx
shr ebp, 0x18
xor bpl, byte [r14 + r9]
mov r8, qword [rsp + 8]
mov byte [r8], bpl
mov r14d, esi
shr r14d, 0x10
movzx r14d, r14b
mov ebp, ebx
shr ebp, 0x10
xor bpl, byte [r14 + r9]
mov byte [r8 + 1], bpl
mov r14d, edx
shr r14d, 8
movzx r14d, r14b
mov ebp, ebx
shr ebp, 8
xor bpl, byte [r14 + r9]
mov byte [r8 + 2], bpl
mov r14d, eax
mov rcx, r15
movzx r15d, r14b
xor bl, byte [r15 + r9]
mov byte [r8 + 3], bl
mov ebx, dword [rcx + rdi + 0x1f0]
shr r14, 0x18
mov ebp, ebx
shr ebp, 0x18
xor bpl, byte [r14 + r9]
mov byte [r8 + 4], bpl
mov r14d, r11d
shr r14d, 0x10
movzx r14d, r14b
mov ebp, ebx
shr ebp, 0x10
xor bpl, byte [r14 + r9]
mov byte [r8 + 5], bpl
mov r14d, esi
shr r14d, 8
movzx r14d, r14b
mov ebp, ebx
shr ebp, 8
xor bpl, byte [r14 + r9]
mov byte [r8 + 6], bpl
mov r14d, edx
movzx r15d, r14b
xor bl, byte [r15 + r9]
mov byte [r8 + 7], bl
mov ebx, dword [rcx + rdi + 0x1f4]
shr r14, 0x18
mov ebp, ebx
shr ebp, 0x18
xor bpl, byte [r14 + r9]
mov byte [r8 + 8], bpl
mov r14d, eax
shr r14d, 0x10
movzx r14d, r14b
mov ebp, ebx
shr ebp, 0x10
xor bpl, byte [r14 + r9]
mov byte [r8 + 9], bpl
shr r11d, 8
movzx r11d, r11b
mov ebp, ebx
shr ebp, 8
xor bpl, byte [r11 + r9]
mov byte [r8 + 0xa], bpl
mov r11d, esi
movzx esi, r11b
xor bl, byte [rsi + r9]
mov byte [r8 + 0xb], bl
mov ecx, dword [rcx + rdi + 0x1f8]
shr r11, 0x18
mov esi, ecx
shr esi, 0x18
xor sil, byte [r11 + r9]
mov byte [r8 + 0xc], sil
shr edx, 0x10
movzx edx, dl
mov r11d, ecx
shr r11d, 0x10
xor r11b, byte [rdx + r9]
movzx edx, r10b
mov byte [r8 + 0xd], r11b
shr eax, 8
movzx eax, al
mov r10d, ecx
shr r10d, 8
xor r10b, byte [rax + r9]
mov byte [r8 + 0xe], r10b
xor cl, byte [rdx + r9]
mov byte [r8 + 0xf], cl
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
cmp byte [rcx + 8], 0
je 0x14000162b
mov rdi, rcx
mov r9d, dword [rcx + 0x3d0]
cmp r9d, 0x10
jne 0x140001362
mov rcx, rdi
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp section..text
mov qword [rsp + 0x30], r8
lea r12d, [r9 + 3]
test r9d, r9d
cmovns r12d, r9d
sar r12d, 2
mov eax, r9d
and eax, 0xfffffffc
xor ecx, ecx
cmp eax, 0x18
sete cl
mov r8d, 2
sub r8, rcx
xor ecx, ecx
cmp eax, 0x10
cmovne rcx, r8
shl rcx, 5
lea rax, [0x14001d200]
mov r8d, dword [rcx + rax + 0xc]
mov qword [rsp + 0x28], r8
mov r14d, dword [rcx + rax + 0x14]
mov ebx, dword [rcx + rax + 0x1c]
lea rcx, [rdi + 0x458]
cmp r9d, 4
jl 0x14000141c
xor eax, eax
nop word cs:[rax + rax]
movzx r10d, byte [rdx + rax*4]
shl r10d, 0x18
mov dword [rcx + rax*4], r10d
movzx r8d, byte [rdx + rax*4 + 1]
shl r8d, 0x10
or r8d, r10d
mov dword [rcx + rax*4], r8d
movzx r10d, byte [rdx + rax*4 + 2]
shl r10d, 8
or r10d, r8d
mov dword [rcx + rax*4], r10d
movzx r8d, byte [rdx + rax*4 + 3]
or r8d, r10d
xor r8d, dword [rcx + rax*4 - 0x26c]
mov dword [rcx + rax*4], r8d
inc rax
cmp r12, rax
jne 0x1400013d0
mov eax, dword [rdi + 0x3d4]
mov qword [rsp + 0x58], rax
cmp eax, 2
jl 0x140001574
lea rax, [rdi + 0x438]
mov qword [rsp + 0x48], rax
lea eax, [r12*4]
cdqe
mov qword [rsp + 0x40], rax
lea r15, [rdi + 0x20c]
mov eax, 1
lea rsi, [0x14001c100]
lea r13, [0x14001c500]
lea rbp, [0x14001c900]
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x38], rbx
jmp 0x1400014cc
mov rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x40]
mov rbx, r14
mov rsi, rbp
mov rbp, r13
mov r13, rcx
call fcn.14000c250
mov rcx, r13
mov r13, rbp
mov rbp, rsi
mov rbx, qword [rsp + 0x38]
lea rsi, [0x14001c100]
mov rax, qword [rsp + 0x60]
inc rax
add r15, 0x20
cmp rax, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
je 0x140001574
mov qword [rsp + 0x60], rax
cmp r9d, 4
lea r11, [0x14001cd00]
jl 0x140001480
xor r10d, r10d
nop word cs:[rax + rax]
mov r9d, dword [rdi + r10*4 + 0x458]
shr r9, 0x16
and r9d, 0x3fc
mov rax, qword [rsp + 0x28]
add eax, r10d
cdq
idiv r12d
movsxd rax, edx
mov eax, dword [rdi + rax*4 + 0x458]
shr rax, 0xe
and eax, 0x3fc
mov r8d, dword [rax + r13]
xor r8d, dword [r9 + rsi]
lea eax, [r14 + r10]
cdq
idiv r12d
movsxd rax, edx
mov eax, dword [rdi + rax*4 + 0x458]
movzx eax, ah
xor r8d, dword [rbp + rax*4]
lea eax, [rbx + r10]
cdq
idiv r12d
movsxd rax, edx
movzx eax, byte [rdi + rax*4 + 0x458]
xor r8d, dword [r11 + rax*4]
xor r8d, dword [r15 + r10*4]
mov dword [rdi + r10*4 + 0x438], r8d
inc r10
cmp r12, r10
jne 0x1400014f0
jmp 0x140001480
cmp r9d, 4
mov r10, qword [rsp + 0x30]
jl 0x14000162b
xor ecx, ecx
lea r8, [0x14001d100]
nop dword [rax]
movsxd rax, dword [rdi + 0x3d4]
shl rax, 5
lea rdx, [rdi + rcx*4]
mov r9d, dword [rax + rdx + 0x1ec]
movzx eax, byte [rdi + rcx*4 + 0x45b]
mov edx, r9d
shr edx, 0x18
xor dl, byte [rax + r8]
mov byte [r10 + rcx*4], dl
mov rax, qword [rsp + 0x28]
add eax, ecx
cdq
idiv r12d
movsxd rax, edx
movzx eax, byte [rdi + rax*4 + 0x45a]
mov edx, r9d
shr edx, 0x10
xor dl, byte [rax + r8]
mov byte [r10 + rcx*4 + 1], dl
lea eax, [r14 + rcx]
cdq
idiv r12d
movsxd rax, edx
movzx eax, byte [rdi + rax*4 + 0x459]
mov edx, r9d
shr edx, 8
xor dl, byte [rax + r8]
mov byte [r10 + rcx*4 + 2], dl
lea eax, [rbx + rcx]
cdq
idiv r12d
movsxd rax, edx
movzx eax, byte [rdi + rax*4 + 0x458]
xor r9b, byte [rax + r8]
mov byte [r10 + rcx*4 + 3], r9b
inc rcx
cmp r12, rcx
jne 0x140001590
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret