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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r15
mov rbp, rsp
sub rsp, 0x50
mov rax, qword [0x14039e2e8]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r15d, dword [rcx + 0x1c]
mov rdi, rcx
sub r15d, 6
movsxd rbx, r15d
test r15d, r15d
jle 0x14025fd99
mov r8, rbx
lea rcx, [rbp - 0x30]
shl r8, 2
call sub.VCRUNTIME140.dll_memcpy
xor r10d, r10d
xor r8d, r8d
xor r9d, r9d
xor esi, esi
xor edx, edx
cmp esi, dword [rdi + 0x1c]
jg 0x14025fed0
cmp r8, rbx
jge 0x14025fd61
nop
cmp rdx, 4
jge 0x14025fd61
mov eax, dword [rbp + r8*4 - 0x30]
lea rcx, [rdx + r9*4]
inc r8
mov dword [rdi + rcx*4 + 0x20], eax
inc rdx
inc r10d
cmp r8, rbx
jl 0x14025fd40
cmp rdx, 4
lea eax, [rsi + 1]
cmovne eax, esi
mov esi, eax
xor eax, eax
cmp rdx, 4
cmovne eax, r10d
mov r10d, eax
lea rax, [r9 + 1]
cmovne rax, r9
mov r9, rax
xor eax, eax
cmp rdx, 4
cmovne rax, rdx
mov rdx, rax
cmp r8, rbx
jl 0x14025fd30
jmp 0x14025fd9e
xor esi, esi
xor r10d, r10d
cmp esi, dword [rdi + 0x1c]
jg 0x14025fed0
mov qword [rsp + 0x88], r12
lea r11, [rbp - 0x30]
sub r11, 4
mov qword [rsp + 0x90], r14
movsxd rax, r10d
lea r14, [0x14039e1b0]
mov r10, r11
movsxd r9, esi
lea r12, str.cw
nop word [rax + rax]
movzx ecx, byte [rbp + rbx*4 - 0x33]
lea r14, [r14 + 4]
movzx edx, byte [rbp - 0x30]
xor dl, byte [rcx + r12]
mov byte [rbp - 0x30], dl
movzx ecx, byte [rbp + rbx*4 - 0x32]
movzx ecx, byte [rcx + r12]
xor byte [rbp - 0x2f], cl
movzx ecx, byte [rbp + rbx*4 - 0x31]
movzx ecx, byte [rcx + r12]
xor byte [rbp - 0x2e], cl
movzx ecx, byte [rbp + rbx*4 - 0x34]
movzx ecx, byte [rcx + r12]
xor byte [rbp - 0x2d], cl
mov ecx, dword [r14 - 4]
xor cl, dl
mov edx, 1
mov byte [rbp - 0x30], cl
cmp r15d, 8
je 0x14025fef0
cmp rdx, rbx
jge 0x14025fe53
nop dword [rax + rax]
mov ecx, dword [r10 + rdx*4]
mov r10, r11
xor dword [rbp + rdx*4 - 0x30], ecx
inc rdx
cmp rdx, rbx
jl 0x14025fe40
lea r10, [rbp - 0x30]
sub r10, 4
xor r8d, r8d
test r15d, r15d
jle 0x14025feb7
cmp esi, dword [rdi + 0x1c]
jg 0x14025fec0
cmp r8, rbx
jge 0x14025fe8e
nop dword [rax]
cmp rax, 4
jge 0x14025fe8e
mov ecx, dword [rbp + r8*4 - 0x30]
lea rdx, [rax + r9*4]
inc r8
mov dword [rdi + rdx*4 + 0x20], ecx
inc rax
cmp r8, rbx
jl 0x14025fe70
cmp rax, 4
lea ecx, [rsi + 1]
cmovne ecx, esi
mov esi, ecx
lea rcx, [r9 + 1]
cmovne rcx, r9
mov r9, rcx
xor ecx, ecx
cmp rax, 4
cmovne rcx, rax
mov rax, rcx
cmp r8, rbx
jl 0x14025fe63
cmp esi, dword [rdi + 0x1c]
jle 0x14025fde0
mov r14, qword [rsp + 0x90]
mov r12, qword [rsp + 0x88]
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1402654f0
add rsp, 0x50
pop r15
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, dword [r11 + rdx*4]
mov r10, r11
xor dword [rbp + rdx*4 - 0x30], ecx
inc rdx
cmp rdx, 4
jl 0x14025fef0
movzx ecx, byte [rbp - 0x24]
mov edx, 5
movzx ecx, byte [rcx + r12]
xor byte [rbp - 0x20], cl
movzx ecx, byte [rbp - 0x23]
movzx ecx, byte [rcx + r12]
xor byte [rbp - 0x1f], cl
movzx ecx, byte [rbp - 0x22]
movzx ecx, byte [rcx + r12]
xor byte [rbp - 0x1e], cl
movzx ecx, byte [rbp - 0x21]
movzx ecx, byte [rcx + r12]
xor byte [rbp - 0x1d], cl
cmp rdx, rbx
jge 0x14025fe5b
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [r11 + rdx*4]
xor dword [rbp + rdx*4 - 0x30], ecx
inc rdx
cmp rdx, rbx
jl 0x14025ff50
xor r8d, r8d
jmp 0x14025fe63