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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x30
mov rdi, qword [rcx + 8]
mov r14, r8
mov rsi, qword [rcx]
lea rcx, [rsp + 0x20]
mov eax, dword [rdi - 0x10]
xor eax, dword [rdx]
mov dword [rsp + 0x20], eax
mov eax, dword [rdi - 0xc]
xor eax, dword [rdx + 4]
mov dword [rsp + 0x24], eax
mov eax, dword [rdi - 8]
xor eax, dword [rdx + 8]
mov dword [rsp + 0x28], eax
mov eax, dword [rdi - 4]
xor eax, dword [rdx + 0xc]
mov dword [rsp + 0x2c], eax
call fcn.14005de60
mov edx, dword [rsp + 0x20]
lea rbp, [0x1400c1330]
mov eax, edx
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movzx r8d, byte [rcx + rbp]
movzx eax, byte [rax + rbp]
shl eax, 8
or r8d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rbp]
or r8d, eax
movzx eax, dl
mov edx, dword [rsp + 0x24]
shl r8d, 8
movzx ecx, byte [rax + rbp]
mov eax, edx
shr rax, 0x10
or r8d, ecx
movzx ecx, al
mov eax, edx
shr rax, 0x18
movzx r9d, byte [rcx + rbp]
movzx eax, byte [rax + rbp]
shl eax, 8
or r9d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r9d, 8
movzx eax, byte [rcx + rbp]
or r9d, eax
movzx eax, dl
mov edx, dword [rsp + 0x28]
shl r9d, 8
movzx ecx, byte [rax + rbp]
mov eax, edx
shr rax, 0x10
or r9d, ecx
movzx ecx, al
mov eax, edx
shr rax, 0x18
movzx r10d, byte [rcx + rbp]
movzx eax, byte [rax + rbp]
shl eax, 8
or r10d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r10d, 8
movzx eax, byte [rcx + rbp]
or r10d, eax
movzx eax, dl
mov edx, dword [rsp + 0x2c]
shl r10d, 8
movzx ecx, byte [rax + rbp]
mov eax, edx
or r10d, ecx
shr rax, 0x10
movzx ecx, al
sub rdi, rsi
sar rdi, 4
mov eax, edx
shr rax, 0x18
sub edi, 2
movsxd rdi, edi
movzx r11d, byte [rcx + rbp]
movzx eax, byte [rax + rbp]
shl eax, 8
or r11d, eax
mov eax, edx
shr rax, 8
shl r11d, 8
movzx ecx, al
movzx eax, byte [rcx + rbp]
or r11d, eax
movzx eax, dl
shl r11d, 8
movzx ecx, byte [rax + rbp]
or r11d, ecx
test rdi, rdi
jle 0x14005f1c7
mov rbx, rdi
shl rbx, 4
add rbx, rsi
nop dword [rax]
xor r8d, dword [rbx]
lea rcx, [rsp + 0x20]
xor r9d, dword [rbx + 4]
xor r10d, dword [rbx + 8]
xor r11d, dword [rbx + 0xc]
mov dword [rsp + 0x20], r8d
mov dword [rsp + 0x24], r9d
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x2c], r11d
call fcn.14005e2c0
lea rcx, [rsp + 0x20]
call fcn.14005de60
mov edx, dword [rsp + 0x20]
mov eax, edx
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movzx r8d, byte [rcx + rbp]
movzx eax, byte [rax + rbp]
shl eax, 8
or r8d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rbp]
or r8d, eax
movzx eax, dl
mov edx, dword [rsp + 0x24]
shl r8d, 8
movzx ecx, byte [rax + rbp]
mov eax, edx
shr rax, 0x10
or r8d, ecx
movzx ecx, al
mov eax, edx
shr rax, 0x18
movzx r9d, byte [rcx + rbp]
movzx eax, byte [rax + rbp]
shl eax, 8
or r9d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r9d, 8
movzx eax, byte [rcx + rbp]
or r9d, eax
movzx eax, dl
mov edx, dword [rsp + 0x28]
shl r9d, 8
movzx ecx, byte [rax + rbp]
mov eax, edx
shr rax, 0x10
or r9d, ecx
movzx ecx, al
mov eax, edx
shr rax, 0x18
movzx r10d, byte [rcx + rbp]
movzx eax, byte [rax + rbp]
shl eax, 8
or r10d, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl r10d, 8
movzx eax, byte [rcx + rbp]
or r10d, eax
movzx eax, dl
mov edx, dword [rsp + 0x2c]
shl r10d, 8
movzx ecx, byte [rax + rbp]
mov eax, edx
shr rax, 0x10
or r10d, ecx
movzx ecx, al
mov eax, edx
shr rax, 0x18
movzx r11d, byte [rcx + rbp]
movzx eax, byte [rax + rbp]
shl eax, 8
or r11d, eax
lea rbx, [rbx - 0x10]
shl r11d, 8
mov eax, edx
shr rax, 8
dec rdi
movzx ecx, al
movzx eax, byte [rcx + rbp]
or r11d, eax
movzx eax, dl
shl r11d, 8
movzx ecx, byte [rax + rbp]
or r11d, ecx
test rdi, rdi
jg 0x14005f070
xor r8d, dword [rsi]
xor r9d, dword [rsi + 4]
xor r10d, dword [rsi + 8]
xor r11d, dword [rsi + 0xc]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov dword [r14 + 0xc], r11d
mov dword [r14], r8d
mov dword [r14 + 4], r9d
mov dword [r14 + 8], r10d
add rsp, 0x30
pop r14
ret