Function at 0x140293e40
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions

Disassembly:
push rbp
push rdi
push r14
sub rsp, 0x240
mov rax, qword [0x1404af540]
xor rax, rsp
mov qword [rsp + 0x220], rax
mov ebp, 1
mov r10, r9
mov dword [rcx], ebp
mov r14d, r8d
mov rdi, rcx
cmp edx, 2
jbe 0x140293e7d
mov eax, 0xffffffff
jmp 0x1402942e4
mov dword [rcx + 4], edx
cmp r14d, ebp
jbe 0x140293e8f
mov eax, 0xfffffffe
jmp 0x1402942e4
mov dword [rcx + 8], r14d
mov rcx, qword [rsp + 0x288]
mov qword [rsp + 0x238], rsi
mov qword [rsp + 0x230], r15
test rcx, rcx
je 0x140293f1e
movzx eax, byte [rcx]
mov byte [rdi + 0xc], al
movzx eax, byte [rcx + 1]
mov byte [rdi + 0xd], al
movzx eax, byte [rcx + 2]
mov byte [rdi + 0xe], al
movzx eax, byte [rcx + 3]
mov byte [rdi + 0xf], al
movzx eax, byte [rcx + 4]
mov byte [rdi + 0x10], al
movzx eax, byte [rcx + 5]
mov byte [rdi + 0x11], al
movzx eax, byte [rcx + 6]
mov byte [rdi + 0x12], al
movzx eax, byte [rcx + 7]
mov byte [rdi + 0x13], al
movzx eax, byte [rcx + 8]
mov byte [rdi + 0x14], al
movzx eax, byte [rcx + 9]
mov byte [rdi + 0x15], al
movzx eax, byte [rcx + 0xa]
mov byte [rdi + 0x16], al
movzx eax, byte [rcx + 0xb]
mov byte [rdi + 0x17], al
movzx eax, byte [rcx + 0xc]
mov byte [rdi + 0x18], al
movzx eax, byte [rcx + 0xd]
mov byte [rdi + 0x19], al
movzx eax, byte [rcx + 0xe]
mov byte [rdi + 0x1a], al
movzx eax, byte [rcx + 0xf]
jmp 0x140293f39
mov qword [rdi + 0xc], 0
xor al, al
mov dword [rdi + 0x14], 0
mov word [rdi + 0x18], 0
mov byte [rdi + 0x1a], 0
mov ecx, dword [rsp + 0x280]
mov esi, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov byte [rdi + 0x1b], al
mov r15d, Ordinal_16
mov r8d, 0xa
test ecx, ecx
je 0x140293f8d
sub ecx, ebp
je 0x140293f7c
cmp ecx, ebp
je 0x140293f6a
mov eax, 0xfffffffd
jmp 0x1402942d4
mov dword [rdi + 0x1c], r15d
mov r11d, reloc.SinoSPE.dll_Ordinal_32
mov r9d, 0x100
jmp 0x140293f9d
mov dword [rdi + 0x1c], esi
mov r11d, reloc.SinoSPE.dll_Ordinal_24
mov r9d, 0xc0
jmp 0x140293f9d
mov dword [rdi + 0x1c], r8d
mov r11d, reloc.SinoSPE.dll_Ordinal_16
mov r9d, 0x80
test r10, r10
jne 0x140293fac
mov eax, 0xfffffffc
jmp 0x1402942d4
cmp dword [0x1404b8474], 0
mov qword [rsp + 0x268], rbx
jne 0x140293ff7
xor ecx, ecx
mov dword [0x1404b8474], ebp
mov eax, ebp
cpuid
mov dword [rsp + 0x200], eax
and ecx, 0x2080000
xor eax, eax
mov dword [rsp + 0x204], ebx
cmp ecx, 0x2080000
mov dword [rsp + 0x20c], edx
sete al
mov dword [0x1404b8478], eax
jmp 0x140293ffd
mov eax, dword [0x1404b8478]
test eax, eax
je 0x140294177
lea rbx, [rdi + 0x20]
test r14d, r14d
jne 0x140294097
cmp r9d, 0x80
jne 0x140294020
mov rsi, r8
jmp 0x14029404b
cmp r9d, 0xc0
jne 0x14029402e
mov r8d, esi
jmp 0x14029404b
xor eax, eax
cmp r9d, 0x100
cmove eax, r15d
xor esi, esi
cmp r9d, 0x100
mov r8d, eax
cmove rsi, r15
test rbx, rbx
je 0x1402942c4
test r8d, r8d
je 0x1402942c4
lea r8, [rsp + 0x20]
mov edx, r9d
mov rcx, r10
call fcn.140296070
test eax, eax
jne 0x1402942c4
lea rax, [rsp + 0x20]
sub rax, rbx
inc rsi
movdqu xmm0, xmmword [rbx + rax]
movdqu xmmword [rbx], xmm0
lea rbx, [rbx + 0x10]
sub rsi, rbp
jne 0x140294080
jmp 0x1402942c4
cmp r9d, 0x80
jne 0x1402940a5
mov rsi, r8
jmp 0x1402940d0
cmp r9d, 0xc0
jne 0x1402940b3
mov r8d, esi
jmp 0x1402940d0
xor eax, eax
cmp r9d, 0x100
cmove eax, r15d
xor esi, esi
cmp r9d, 0x100
mov r8d, eax
cmove rsi, r15
test rbx, rbx
je 0x1402942c4
test r8d, r8d
je 0x1402942c4
lea r8, [rsp + 0x110]
mov edx, r9d
mov rcx, r10
call fcn.140296070
test eax, eax
jne 0x1402942c4
movdqa xmm0, xmmword [rsp + 0x110]
movdqa xmmword [rsp + 0x20], xmm0
cmp rsi, rbp
jbe 0x140294139
xor eax, eax
lea rcx, [rsi - 1]
nop word [rax + rax]
aesimc xmm1, xmmword [rsp + rax + 0x120]
movdqu xmmword [rsp + rax + 0x30], xmm1
lea rax, [rax + 0x10]
sub rcx, rbp
jne 0x140294120
mov rax, rsi
add rax, rax
movdqu xmm0, xmmword [rsp + rax*8 + 0x110]
movdqu xmmword [rsp + rax*8 + 0x20], xmm0
lea rax, [rsp + 0x20]
sub rax, rbx
inc rsi
nop dword [rax]
movdqu xmm0, xmmword [rbx + rax]
movdqu xmmword [rbx], xmm0
lea rbx, [rbx + 0x10]
sub rsi, rbp
jne 0x140294160
jmp 0x1402942c4
mov r8, r11
lea rcx, [rsp + 0x200]
mov rdx, r10
call sub.VCRUNTIME140.dll_memcpy
lea rdx, [rsp + 0x200]
mov rcx, rdi
call fcn.140294300
cmp dword [rdi + 8], ebp
jne 0x1402942c4
cmp dword [rdi + 0x1c], ebp
jbe 0x1402942c4
lea r9, [0x140000000]
nop dword [rax]
nop word [rax + rax]
mov r8d, ebp
inc ebp
lea rbx, [r8 + 2]
add r8, r8
shl rbx, 4
add rbx, rdi
movzx ecx, byte [rbx + 3]
movzx eax, byte [rbx + 2]
mov edx, dword [r9 + rcx*4 + 0x4a9160]
xor edx, dword [r9 + rax*4 + 0x4a8d60]
movzx eax, byte [rbx + 1]
xor edx, dword [r9 + rax*4 + 0x4a8960]
movzx eax, byte [rbx]
xor edx, dword [r9 + rax*4 + 0x4a8560]
mov dword [rbx], edx
movzx ecx, byte [rdi + r8*8 + 0x27]
movzx eax, byte [rdi + r8*8 + 0x26]
mov edx, dword [r9 + rcx*4 + 0x4a9160]
xor edx, dword [r9 + rax*4 + 0x4a8d60]
movzx eax, byte [rdi + r8*8 + 0x25]
xor edx, dword [r9 + rax*4 + 0x4a8960]
movzx eax, byte [rdi + r8*8 + 0x24]
xor edx, dword [r9 + rax*4 + 0x4a8560]
mov dword [rdi + r8*8 + 0x24], edx
movzx ecx, byte [rdi + r8*8 + 0x2b]
movzx eax, byte [rdi + r8*8 + 0x2a]
mov edx, dword [r9 + rcx*4 + 0x4a9160]
xor edx, dword [r9 + rax*4 + 0x4a8d60]
movzx eax, byte [rdi + r8*8 + 0x29]
xor edx, dword [r9 + rax*4 + 0x4a8960]
movzx eax, byte [rdi + r8*8 + 0x28]
xor edx, dword [r9 + rax*4 + 0x4a8560]
mov dword [rdi + r8*8 + 0x28], edx
movzx eax, byte [rdi + r8*8 + 0x2e]
movzx ecx, byte [rdi + r8*8 + 0x2f]
mov edx, dword [r9 + rcx*4 + 0x4a9160]
xor edx, dword [r9 + rax*4 + 0x4a8d60]
movzx eax, byte [rdi + r8*8 + 0x2d]
xor edx, dword [r9 + rax*4 + 0x4a8960]
movzx eax, byte [rdi + r8*8 + 0x2c]
xor edx, dword [r9 + rax*4 + 0x4a8560]
mov dword [rdi + r8*8 + 0x2c], edx
cmp ebp, dword [rdi + 0x1c]
jb 0x1402941c0
mov rbx, qword [rsp + 0x268]
xor eax, eax
mov dword [rdi], 0
mov rsi, qword [rsp + 0x238]
mov r15, qword [rsp + 0x230]
mov rcx, qword [rsp + 0x220]
xor rcx, rsp
call fcn.1403ca460
add rsp, 0x240
pop r14
pop rdi
pop rbp
ret