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

Disassembly:
push rbp
sub rsp, 0x50
mov rbp, rsp
cmp byte [rcx + 9], 0
je 0x53e579
mov eax, dword [rdx]
mov dword [rbp + 0xc], eax
mov eax, dword [rdx + 4]
mov dword [rbp + 0x10], eax
mov eax, dword [rdx + 8]
mov dword [rbp + 0x14], eax
mov eax, dword [rdx + 0xc]
mov dword [rbp + 0x18], eax
mov eax, dword [rcx + 0x2c]
cmp eax, 2
jb 0x53e3c0
mov edx, eax
mov r9, rdx
add r9, r9
add r9, r9
mov r10d, dword [rbp + 0xc]
xor r10d, dword [rcx + r9*8 + 0x210]
mov dword [rbp + 0x30], r10d
mov r9, rdx
add r9, r9
add r9, r9
mov r10d, dword [rbp + 0x10]
xor r10d, dword [rcx + r9*8 + 0x214]
mov dword [rbp + 0x34], r10d
mov r9, rdx
add r9, r9
add r9, r9
mov r10d, dword [rbp + 0x14]
xor r10d, dword [rcx + r9*8 + 0x218]
mov dword [rbp + 0x38], r10d
add rdx, rdx
add rdx, rdx
mov r9d, dword [rbp + 0x18]
xor r9d, dword [rcx + rdx*8 + 0x21c]
mov dword [rbp + 0x3c], r9d
lea rdx, [0x005840b4]
movzx r9, byte [rbp + 0x30]
lea r10, [0x005844b4]
movzx r11, byte [rbp + 0x3d]
mov edx, dword [rdx + r9*4]
xor edx, dword [r10 + r11*4]
lea r9, [0x005848b4]
movzx r10, byte [rbp + 0x3a]
xor edx, dword [r9 + r10*4]
lea r9, [0x00584cb4]
movzx r10, byte [rbp + 0x37]
xor edx, dword [r9 + r10*4]
mov dword [rbp + 0xc], edx
lea rdx, [0x005840b4]
movzx r9, byte [rbp + 0x34]
lea r10, [0x005844b4]
movzx r11, byte [rbp + 0x31]
mov edx, dword [rdx + r9*4]
xor edx, dword [r10 + r11*4]
lea r9, [0x005848b4]
movzx r10, byte [rbp + 0x3e]
xor edx, dword [r9 + r10*4]
lea r9, [0x00584cb4]
movzx r10, byte [rbp + 0x3b]
xor edx, dword [r9 + r10*4]
mov dword [rbp + 0x10], edx
lea rdx, [0x005840b4]
movzx r9, byte [rbp + 0x38]
lea r10, [0x005844b4]
movzx r11, byte [rbp + 0x35]
mov edx, dword [rdx + r9*4]
xor edx, dword [r10 + r11*4]
lea r9, [0x005848b4]
movzx r10, byte [rbp + 0x32]
xor edx, dword [r9 + r10*4]
lea r9, [0x00584cb4]
movzx r10, byte [rbp + 0x3f]
xor edx, dword [r9 + r10*4]
mov dword [rbp + 0x14], edx
lea rdx, [0x005840b4]
movzx r9, byte [rbp + 0x3c]
lea r10, [0x005844b4]
movzx r11, byte [rbp + 0x39]
mov edx, dword [rdx + r9*4]
xor edx, dword [r10 + r11*4]
lea r9, [0x005848b4]
movzx r10, byte [rbp + 0x36]
xor edx, dword [r9 + r10*4]
lea r9, [0x00584cb4]
movzx r10, byte [rbp + 0x33]
xor edx, dword [r9 + r10*4]
mov dword [rbp + 0x18], edx
sub eax, 1
cmp eax, 1
jne 0x53e245
nop
mov eax, dword [rbp + 0xc]
xor eax, dword [rcx + 0x230]
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x10]
xor eax, dword [rcx + 0x234]
mov dword [rbp + 0x34], eax
mov eax, dword [rbp + 0x14]
xor eax, dword [rcx + 0x238]
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x18]
xor eax, dword [rcx + 0x23c]
mov dword [rbp + 0x3c], eax
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x30]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0xc], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x3d]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0xd], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x3a]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0xe], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x37]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0xf], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x34]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0x10], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x31]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0x11], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x3e]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0x12], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x3b]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0x13], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x38]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0x14], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x35]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0x15], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x32]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0x16], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x3f]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0x17], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x3c]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0x18], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x39]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0x19], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x36]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0x1a], al
lea rax, [0x005850b4]
movzx rdx, byte [rbp + 0x33]
movzx rax, byte [rax + rdx]
mov byte [rbp + 0x1b], al
mov eax, dword [rcx + 0x210]
xor dword [rbp + 0xc], eax
lea rax, [rbp + 0x10]
mov edx, dword [rcx + 0x214]
xor dword [rax], edx
lea rax, [rbp + 0x14]
mov edx, dword [rcx + 0x218]
xor dword [rax], edx
lea rax, [rbp + 0x18]
mov ecx, dword [rcx + 0x21c]
xor dword [rax], ecx
mov eax, dword [rbp + 0xc]
mov dword [r8], eax
mov eax, dword [rbp + 0x10]
mov dword [r8 + 4], eax
mov eax, dword [rbp + 0x14]
mov dword [r8 + 8], eax
mov eax, dword [rbp + 0x18]
mov dword [r8 + 0xc], eax
lea rsp, [rbp + 0x50]
pop rbp
ret