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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r13
push r14
mov rbp, rsp
sub rsp, 0x30
mov rax, qword [0x14016a040]
xor rax, rsp
mov qword [rbp - 0x10], rax
movups xmm0, xmmword [rdx]
movsxd r14, dword [rcx + 4]
xor edi, edi
movups xmm1, xmmword [rdx + 0x10]
xor r11d, r11d
mov rsi, rcx
movups xmmword [rbp - 0x30], xmm0
lea rdx, [r14 - 6]
lea r12d, [rdi + 4]
movups xmmword [rbp - 0x20], xmm1
test rdx, rdx
jle 0x1400ef7a5
xor r9d, r9d
xor ebx, ebx
xor r8d, r8d
cmp edi, dword [rsi + 4]
jg 0x1400ef90e
cmp r9, rdx
jge 0x1400ef772
lea r10, [rbp - 0x30]
lea r10, [r10 + r9*4]
cmp r8, r12
jge 0x1400ef772
mov eax, dword [r10]
lea rcx, [r8 + rbx*4]
add r10, r12
mov dword [rsi + rcx*4 + 0x18], eax
inc r8
inc r9
inc r11d
cmp r9, rdx
jl 0x1400ef751
cmp r8, r12
lea eax, [rdi + 1]
cmovne eax, edi
mov edi, eax
xor eax, eax
cmp r8, r12
cmovne eax, r11d
mov r11d, eax
lea rax, [rbx + 1]
cmovne rax, rbx
mov rbx, rax
xor eax, eax
cmp r8, r12
cmovne rax, r8
mov r8, rax
cmp r9, rdx
jl 0x1400ef73b
cmp edi, dword [rsi + 4]
jg 0x1400ef90e
movsxd r10, r11d
lea r13, str.cw
lea r11, [0x14013eaa0]
movsxd rbx, edi
movzx eax, byte [rbp + rdx*4 - 0x33]
mov cl, byte [rbp - 0x30]
xor cl, byte [rax + r13]
mov byte [rbp - 0x30], cl
movzx eax, byte [rbp + rdx*4 - 0x32]
xor cl, byte [r11]
inc r11
mov al, byte [rax + r13]
xor byte [rbp - 0x2f], al
movzx eax, byte [rbp + rdx*4 - 0x31]
mov al, byte [rax + r13]
xor byte [rbp - 0x2e], al
movzx eax, byte [rbp + rdx*4 - 0x34]
mov byte [rbp - 0x30], cl
mov al, byte [rax + r13]
xor byte [rbp - 0x2d], al
cmp r14d, 0xe
je 0x1400ef82f
cmp rdx, 1
jle 0x1400ef8a6
lea rcx, [rbp - 0x2c]
lea r9, [rdx - 1]
mov r8, r12
mov al, byte [rcx - 4]
xor byte [rcx], al
inc rcx
sub r8, 1
jne 0x1400ef819
sub r9, 1
jne 0x1400ef816
jmp 0x1400ef8a1
lea rcx, [rbp - 0x2c]
mov r9d, 3
mov r8, r12
mov al, byte [rcx - 4]
xor byte [rcx], al
inc rcx
sub r8, 1
jne 0x1400ef83c
sub r9, 1
jne 0x1400ef839
movzx eax, byte [rbp - 0x24]
mov al, byte [rax + r13]
xor byte [rbp - 0x20], al
movzx eax, byte [rbp - 0x23]
mov al, byte [rax + r13]
xor byte [rbp - 0x1f], al
movzx eax, byte [rbp - 0x22]
mov al, byte [rax + r13]
xor byte [rbp - 0x1e], al
movzx eax, byte [rbp - 0x21]
mov al, byte [rax + r13]
xor byte [rbp - 0x1d], al
cmp rdx, 5
jle 0x1400ef8a6
lea rcx, [rbp - 0x1c]
lea r9, [rdx - 5]
mov r8, r12
mov al, byte [rcx - 4]
xor byte [rcx], al
inc rcx
sub r8, 1
jne 0x1400ef88d
sub r9, 1
jne 0x1400ef88a
xor r8d, r8d
jmp 0x1400ef8ae
xor r8d, r8d
test rdx, rdx
jle 0x1400ef905
cmp edi, dword [rsi + 4]
jg 0x1400ef90e
cmp r8, rdx
jge 0x1400ef8de
lea r9, [rbp - 0x30]
lea r9, [r9 + r8*4]
cmp r10, r12
jge 0x1400ef8de
mov eax, dword [r9]
lea rcx, [r10 + rbx*4]
add r9, r12
mov dword [rsi + rcx*4 + 0x18], eax
inc r10
inc r8
cmp r8, rdx
jl 0x1400ef8c0
cmp r10, r12
lea eax, [rdi + 1]
cmovne eax, edi
mov edi, eax
lea rax, [rbx + 1]
cmovne rax, rbx
mov rbx, rax
xor eax, eax
cmp r10, r12
cmovne rax, r10
mov r10, rax
cmp r8, rdx
jl 0x1400ef8ae
cmp edi, dword [rsi + 4]
jle 0x1400ef7c2
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1400f44c0
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret