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

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x60
mov rbp, rcx
mov rsi, rdx
mov ebx, r8d
call fcn.004dade0
test eax, eax
jne 0x4ef4aa
mov edx, dword [0x007efd38]
test edx, edx
je 0x4ef4c8
cmp qword [0x007efd30], 0
mov eax, 0x32
je 0x4ef517
add rsp, 0x60
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov dword [0x007efd38], 1
call fcn.004ef890
test rax, rax
je 0x4ef4f4
lea rcx, [0x0076c5d8]
mov rdx, rax
mov qword [0x007efd30], rax
call fcn.004cba40
jmp 0x4ef4aa
call fcn.004ef3c0
test rax, rax
nop dword [rax]
jne 0x4ef4dc
call fcn.004ef7e0
test rax, rax
jne 0x4ef4dc
mov qword [0x007efd30], 0
cmp ebx, 0x10
mov dword [rbp + 0x1e4], 0
je 0x4ef790
cmp ebx, 0x18
je 0x4ef542
cmp ebx, 0x20
je 0x4ef7a5
mov eax, 0x2c
jmp 0x4ef4b9
mov edx, 5
mov r10d, 6
mov edi, 0xc
mov dword [rbp + 0x1e0], edi
xor eax, eax
mov ecx, eax
movzx r9d, byte [rsi + rax]
mov r8, rax
sar ecx, 2
add rax, 1
and r8d, 3
movsxd rcx, ecx
cmp ebx, eax
lea rcx, [rsp + rcx*4 + 0x60]
mov byte [r8 + rcx - 0x40], r9b
ja 0x4ef55a
movsxd r12, edx
lea rcx, [rsp + 0x40]
xor eax, eax
lea r9, [r12*4]
lea r11, [rsp + r9 + 0x20]
add r9, rcx
mov r8d, dword [r11 + rax]
mov dword [r9 + rax], r8d
sub rax, 4
sub edx, 1
jns 0x4ef59a
xor edx, edx
xor esi, esi
xor r8d, r8d
cmp edi, esi
jl 0x4ef609
cmp r8d, r10d
jge 0x4ef609
cmp edx, 3
jg 0x4ef5fd
movsxd rax, r8d
movsxd r9, esi
lea rbx, [rcx + rax*4]
movsxd rax, edx
lea rax, [rax + r9*4]
lea r11, [rbp + rax*4]
xor eax, eax
jmp 0x4ef5e5
cmp edx, 3
jg 0x4ef5fd
mov r9d, dword [rbx + rax]
add r8d, 1
add edx, 1
mov dword [r11 + rax], r9d
add rax, 4
cmp r10d, r8d
jg 0x4ef5e0
cmp edx, 4
jne 0x4ef5b2
add esi, 1
xor dl, dl
jmp 0x4ef5b2
cmp edi, esi
jl 0x4ef71c
lea r14, [0x0076c840]
lea r13, [0x0076f9c0]
movzx eax, byte [rsp + r12*4 + 0x41]
lea r8, [0x0076f9c0]
movzx eax, byte [r13 + rax]
xor al, byte [rsp + 0x40]
mov byte [rsp + 0x40], al
movzx r9d, byte [rsp + r12*4 + 0x42]
xor al, byte [r14]
movzx r9d, byte [r13 + r9]
xor byte [rsp + 0x41], r9b
movzx r9d, byte [rsp + r12*4 + 0x43]
movzx r9d, byte [r13 + r9]
xor byte [rsp + 0x42], r9b
movzx r9d, byte [rsp + r12*4 + 0x40]
mov byte [rsp + 0x40], al
movzx r9d, byte [r13 + r9]
xor byte [rsp + 0x43], r9b
cmp r10d, 8
je 0x4ef723
lea rax, [rcx + 4]
mov r8d, 1
nop dword [rax + rax]
add r8d, 1
mov r9d, dword [rax - 4]
xor dword [rax], r9d
add rax, 4
cmp r8d, r10d
jl 0x4ef690
xor r8d, r8d
nop word [rax + rax]
cmp edi, esi
jl 0x4ef710
cmp r8d, r10d
jge 0x4ef710
cmp edx, 3
jg 0x4ef6fd
movsxd rax, r8d
movsxd r9, esi
lea rbx, [rcx + rax*4]
movsxd rax, edx
lea rax, [rax + r9*4]
lea r11, [rbp + rax*4]
xor eax, eax
jmp 0x4ef6e5
cmp edx, 3
jg 0x4ef6fd
mov r9d, dword [rbx + rax]
add r8d, 1
add edx, 1
mov dword [r11 + rax], r9d
add rax, 4
cmp r10d, r8d
jg 0x4ef6e0
cmp edx, 4
jne 0x4ef6b0
add esi, 1
xor dl, dl
cmp edi, esi
jge 0x4ef6b4
nop dword [rax + rax]
add r14, 4
cmp edi, esi
jge 0x4ef61f
xor eax, eax
jmp 0x4ef4b9
mov eax, dword [rsp + 0x44]
xor eax, dword [rsp + 0x40]
mov dword [rsp + 0x44], eax
xor eax, dword [rsp + 0x48]
xor dword [rsp + 0x4c], eax
mov dword [rsp + 0x48], eax
movzx eax, byte [rsp + 0x4c]
movzx eax, byte [r8 + rax]
xor byte [rsp + 0x50], al
movzx eax, byte [rsp + 0x4d]
movzx eax, byte [r8 + rax]
xor byte [rsp + 0x51], al
movzx eax, byte [rsp + 0x4e]
movzx eax, byte [r8 + rax]
xor byte [rsp + 0x52], al
movzx eax, byte [rsp + 0x4f]
movzx eax, byte [r8 + rax]
xor byte [rsp + 0x53], al
mov eax, dword [rsp + 0x54]
xor eax, dword [rsp + 0x50]
mov dword [rsp + 0x54], eax
xor eax, dword [rsp + 0x58]
xor dword [rsp + 0x5c], eax
mov dword [rsp + 0x58], eax
jmp 0x4ef6a4
mov edx, 3
mov r10d, 4
mov edi, 0xa
jmp 0x4ef552
mov edx, 7
mov r10d, 8
mov edi, 0xe
jmp 0x4ef552