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

Disassembly:
push rbp
push r13
sub rsp, 0x18
movzx r9d, word [rcx]
lea rbp, [0x14047c920]
lea eax, [r9*4 + 4]
lea r13, [rcx + rax*4]
mov eax, dword [rdx + 0xc]
xor eax, dword [r13]
mov dword [rdx + 0xc], eax
mov eax, dword [rdx + 8]
xor eax, dword [r13 - 4]
mov dword [rdx + 8], eax
mov eax, dword [rdx + 4]
xor eax, dword [r13 - 8]
mov dword [rdx + 4], eax
mov eax, dword [r13 - 0xc]
sub r13, 0xc
xor dword [rdx], eax
cmp r9d, 1
jbe 0x14029a7c0
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x10], r12
lea r12d, [r9 - 1]
mov qword [rsp + 8], r14
mov qword [rsp], r15
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx + 0xf]
movzx edi, byte [rax + rbp]
movzx eax, byte [rdx + 0xa]
movzx esi, byte [rax + rbp]
movzx eax, byte [rdx + 5]
movzx r11d, byte [rax + rbp]
movzx eax, byte [rdx]
movzx ebx, byte [rax + rbp]
imul eax, r11d, 0x10100
imul ecx, ebx, 0x101
xor ecx, eax
imul eax, esi, 0x1010000
xor ecx, eax
imul eax, edi, 0x1000001
xor ecx, eax
mov eax, ecx
and ecx, 0xff7f7f7f
shr eax, 7
add ecx, ecx
and eax, 0x1010101
imul r10d, eax, 0x1b
xor r10d, ecx
mov eax, r10d
shr eax, 8
xor eax, r10d
shr eax, 8
movzx ecx, ax
mov eax, ecx
and ecx, 0xff7f7f7f
shr eax, 7
add ecx, ecx
and eax, 0x1010101
imul r9d, eax, 0x1b
xor r9d, ecx
mov eax, r9d
shr eax, 8
xor eax, r9d
movzx r8d, al
mov eax, r8d
and r8d, 0xff7f7f7f
shr eax, 7
add r8d, r8d
and eax, 0x1010101
imul ecx, eax, 0x1b
imul eax, r11d, 0x1010001
xor ecx, r8d
imul r15d, ecx, 0x1010101
xor r15d, eax
imul eax, edi, 0x10101
xor r15d, eax
imul eax, r9d, 0x10001
xor r15d, eax
imul eax, ebx, 0x1010100
xor r15d, eax
imul eax, esi, 0x1000101
xor r15d, eax
movzx eax, byte [rdx + 0xb]
xor r15d, r10d
movzx edi, byte [rax + rbp]
movzx eax, byte [rdx + 6]
movzx esi, byte [rax + rbp]
movzx eax, byte [rdx + 1]
movzx r11d, byte [rax + rbp]
movzx eax, byte [rdx + 0xc]
movzx ebx, byte [rax + rbp]
imul eax, r11d, 0x10100
imul ecx, ebx, 0x101
xor ecx, eax
imul eax, esi, 0x1010000
xor ecx, eax
imul eax, edi, 0x1000001
xor ecx, eax
mov eax, ecx
and ecx, 0xff7f7f7f
shr eax, 7
add ecx, ecx
and eax, 0x1010101
imul r10d, eax, 0x1b
xor r10d, ecx
mov eax, r10d
shr eax, 8
xor eax, r10d
shr eax, 8
movzx ecx, ax
mov eax, ecx
and ecx, 0xff7f7f7f
shr eax, 7
add ecx, ecx
and eax, 0x1010101
imul r9d, eax, 0x1b
xor r9d, ecx
mov eax, r9d
shr eax, 8
xor eax, r9d
movzx r8d, al
mov eax, r8d
and r8d, 0xff7f7f7f
shr eax, 7
add r8d, r8d
and eax, 0x1010101
imul ecx, eax, 0x1b
imul eax, r11d, 0x1010001
xor ecx, r8d
imul r14d, ecx, 0x1010101
xor r14d, eax
imul eax, edi, 0x10101
xor r14d, eax
imul eax, r9d, 0x10001
xor r14d, eax
imul eax, ebx, 0x1010100
xor r14d, eax
imul eax, esi, 0x1000101
xor r14d, eax
movzx eax, byte [rdx + 7]
xor r14d, r10d
movzx edi, byte [rax + rbp]
movzx eax, byte [rdx + 2]
movzx esi, byte [rax + rbp]
movzx eax, byte [rdx + 0xd]
movzx r11d, byte [rax + rbp]
movzx eax, byte [rdx + 8]
movzx ebx, byte [rax + rbp]
imul eax, r11d, 0x10100
imul ecx, ebx, 0x101
xor ecx, eax
imul eax, esi, 0x1010000
xor ecx, eax
imul eax, edi, 0x1000001
xor ecx, eax
mov eax, ecx
and ecx, 0xff7f7f7f
shr eax, 7
add ecx, ecx
and eax, 0x1010101
imul r10d, eax, 0x1b
xor r10d, ecx
mov eax, r10d
shr eax, 8
xor eax, r10d
shr eax, 8
movzx ecx, ax
mov eax, ecx
and ecx, 0xff7f7f7f
shr eax, 7
add ecx, ecx
and eax, 0x1010101
imul r9d, eax, 0x1b
xor r9d, ecx
mov eax, r9d
shr eax, 8
xor eax, r9d
movzx r8d, al
mov eax, r8d
and r8d, 0xff7f7f7f
shr eax, 7
add r8d, r8d
and eax, 0x1010101
imul ecx, eax, 0x1b
imul eax, r11d, 0x1010001
xor ecx, r8d
imul ebp, ecx, 0x1010101
xor ebp, eax
xor r15d, dword [r13 - 4]
lea rcx, [0x14047c920]
imul eax, edi, 0x10101
xor ebp, eax
imul eax, r9d, 0x10001
xor ebp, eax
imul eax, ebx, 0x1010100
xor ebp, eax
imul eax, esi, 0x1000101
xor ebp, eax
movzx eax, byte [rdx + 3]
xor ebp, r10d
movzx edi, byte [rax + rcx]
movzx eax, byte [rdx + 0xe]
movzx esi, byte [rax + rcx]
movzx eax, byte [rdx + 9]
movzx r11d, byte [rax + rcx]
movzx eax, byte [rdx + 4]
movzx ebx, byte [rax + rcx]
imul eax, r11d, 0x10100
mov dword [rdx + 0xc], r15d
xor r14d, dword [r13 - 8]
imul ecx, ebx, 0x101
mov dword [rdx + 8], r14d
xor ebp, dword [r13 - 0xc]
mov dword [rdx + 4], ebp
lea rbp, [0x14047c920]
xor ecx, eax
imul eax, esi, 0x1010000
xor ecx, eax
imul eax, edi, 0x1000001
xor ecx, eax
mov eax, ecx
and ecx, 0xff7f7f7f
shr eax, 7
add ecx, ecx
and eax, 0x1010101
imul r10d, eax, 0x1b
xor r10d, ecx
mov eax, r10d
shr eax, 8
xor eax, r10d
shr eax, 8
movzx ecx, ax
mov eax, ecx
and ecx, 0xff7f7f7f
shr eax, 7
add ecx, ecx
and eax, 0x1010101
imul r9d, eax, 0x1b
xor r9d, ecx
mov eax, r9d
shr eax, 8
xor eax, r9d
movzx r8d, al
mov eax, r8d
and r8d, 0xff7f7f7f
add r8d, r8d
shr eax, 7
and eax, 0x1010101
imul ecx, eax, 0x1b
imul eax, r11d, 0x1010001
xor ecx, r8d
imul r8d, ecx, 0x1010101
xor r8d, eax
imul eax, edi, 0x10101
xor r8d, eax
imul eax, r9d, 0x10001
xor r8d, eax
imul eax, ebx, 0x1010100
xor r8d, eax
imul eax, esi, 0x1000101
xor r8d, eax
xor r8d, r10d
xor r8d, dword [r13 - 0x10]
sub r13, 0x10
mov dword [rdx], r8d
sub r12, 1
jne 0x14029a3e0
mov r15, qword [rsp]
lea rbp, [0x14047c920]
mov r14, qword [rsp + 8]
mov r12, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
nop
movzx eax, byte [rdx + 0xf]
movzx r11d, byte [rax + rbp]
movzx eax, byte [rdx + 0xa]
shl r11d, 8
movzx ecx, byte [rax + rbp]
movzx eax, byte [rdx + 5]
or r11d, ecx
shl r11d, 8
movzx ecx, byte [rax + rbp]
movzx eax, byte [rdx]
or r11d, ecx
shl r11d, 8
movzx ecx, byte [rax + rbp]
movzx eax, byte [rdx + 0xb]
or r11d, ecx
xor r11d, dword [r13 - 4]
movzx r10d, byte [rax + rbp]
movzx eax, byte [rdx + 6]
shl r10d, 8
movzx ecx, byte [rax + rbp]
movzx eax, byte [rdx + 1]
or r10d, ecx
shl r10d, 8
movzx ecx, byte [rax + rbp]
movzx eax, byte [rdx + 0xc]
or r10d, ecx
shl r10d, 8
movzx ecx, byte [rax + rbp]
movzx eax, byte [rdx + 7]
or r10d, ecx
movzx r9d, byte [rax + rbp]
movzx eax, byte [rdx + 2]
shl r9d, 8
movzx ecx, byte [rax + rbp]
movzx eax, byte [rdx + 0xd]
or r9d, ecx
shl r9d, 8
movzx ecx, byte [rax + rbp]
movzx eax, byte [rdx + 8]
or r9d, ecx
shl r9d, 8
movzx ecx, byte [rax + rbp]
movzx eax, byte [rdx + 3]
or r9d, ecx
movzx r8d, byte [rax + rbp]
movzx eax, byte [rdx + 0xe]
shl r8d, 8
movzx ecx, byte [rax + rbp]
movzx eax, byte [rdx + 9]
or r8d, ecx
shl r8d, 8
movzx ecx, byte [rax + rbp]
movzx eax, byte [rdx + 4]
or r8d, ecx
shl r8d, 8
movzx ecx, byte [rax + rbp]
mov dword [rdx + 0xc], r11d
or r8d, ecx
xor r10d, dword [r13 - 8]
mov dword [rdx + 8], r10d
xor r9d, dword [r13 - 0xc]
mov dword [rdx + 4], r9d
xor r8d, dword [r13 - 0x10]
mov dword [rdx], r8d
add rsp, 0x18
pop r13
pop rbp
ret