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

Disassembly:
push rsi
push rbx
sub rsp, 0x28
movzx eax, byte [rcx + 0x1e4]
mov r9, rcx
test al, 2
jne 0x140104b00
test al, 4
jne 0x140104af3
lea rcx, [0x1402794e0]
mov edx, 0x400
call fcn.140104720
lea rcx, [0x140278fe0]
mov edx, 0x500
call fcn.140104720
mov eax, dword [r9]
cmp dword [r9 + 0x1e0], 1
mov dword [r9 + 0xf0], eax
mov eax, dword [r9 + 4]
mov dword [r9 + 0xf4], eax
mov eax, dword [r9 + 8]
mov dword [r9 + 0xf8], eax
mov eax, dword [r9 + 0xc]
mov dword [r9 + 0xfc], eax
jle 0x140104b0b
lea rcx, [r9 + 0x10]
lea rdx, [0x140278fe0]
lea rax, [0x1402794e1]
mov r10d, 1
mov ebx, dword [rcx]
mov r8d, ebx
lea r11, [rbx*4]
movzx esi, bh
shr r8d, 0x18
shr ebx, 0xe
shl r8d, 2
and r11d, 0x3fc
and ebx, 0x3fc
movsxd r8, r8d
movzx r11d, byte [rax + r11]
movzx r8d, byte [rax + r8]
mov r8d, dword [rdx + r8*4]
ror r8d, 8
xor r8d, dword [rdx + r11*4]
lea r11d, [rsi*4]
movsxd r11, r11d
movzx r11d, byte [rax + r11]
mov r11d, dword [rdx + r11*4]
rol r11d, 8
xor r8d, r11d
movzx r11d, byte [rax + rbx]
mov ebx, dword [rcx + 4]
movzx esi, bh
mov r11d, dword [rdx + r11*4]
rol r11d, 0x10
xor r8d, r11d
lea r11, [rbx*4]
mov dword [rcx + 0xf0], r8d
mov r8d, ebx
shr ebx, 0xe
shr r8d, 0x18
and r11d, 0x3fc
and ebx, 0x3fc
shl r8d, 2
movzx r11d, byte [rax + r11]
movsxd r8, r8d
movzx r8d, byte [rax + r8]
mov r8d, dword [rdx + r8*4]
ror r8d, 8
xor r8d, dword [rdx + r11*4]
lea r11d, [rsi*4]
movsxd r11, r11d
movzx r11d, byte [rax + r11]
mov r11d, dword [rdx + r11*4]
rol r11d, 8
xor r8d, r11d
movzx r11d, byte [rax + rbx]
mov ebx, dword [rcx + 8]
movzx esi, bh
mov r11d, dword [rdx + r11*4]
rol r11d, 0x10
xor r8d, r11d
lea r11, [rbx*4]
mov dword [rcx + 0xf4], r8d
mov r8d, ebx
shr ebx, 0xe
shr r8d, 0x18
and r11d, 0x3fc
and ebx, 0x3fc
shl r8d, 2
movzx r11d, byte [rax + r11]
movsxd r8, r8d
movzx r8d, byte [rax + r8]
mov r8d, dword [rdx + r8*4]
ror r8d, 8
xor r8d, dword [rdx + r11*4]
lea r11d, [rsi*4]
movsxd r11, r11d
movzx r11d, byte [rax + r11]
mov r11d, dword [rdx + r11*4]
rol r11d, 8
xor r8d, r11d
movzx r11d, byte [rax + rbx]
mov ebx, dword [rcx + 0xc]
movzx esi, bh
mov r11d, dword [rdx + r11*4]
rol r11d, 0x10
xor r8d, r11d
lea r11, [rbx*4]
add r10d, 1
mov dword [rcx + 0xf8], r8d
mov r8d, ebx
shr ebx, 0xe
shr r8d, 0x18
and r11d, 0x3fc
and ebx, 0x3fc
shl r8d, 2
add rcx, 0x10
movsxd r8, r8d
movzx r8d, byte [rax + r8]
mov r8d, dword [rdx + r8*4]
movzx r11d, byte [rax + r11]
ror r8d, 8
xor r8d, dword [rdx + r11*4]
lea r11d, [rsi*4]
movsxd r11, r11d
movzx r11d, byte [rax + r11]
mov r11d, dword [rdx + r11*4]
rol r11d, 8
xor r8d, r11d
movzx r11d, byte [rax + rbx]
mov r11d, dword [rdx + r11*4]
rol r11d, 0x10
xor r8d, r11d
mov dword [rcx + 0xec], r8d
cmp dword [r9 + 0x1e0], r10d
jg 0x1401048d3
movsxd r10, r10d
shl r10, 4
add r10, r9
mov eax, dword [r10]
mov dword [r10 + 0xf0], eax
mov eax, dword [r10 + 4]
mov dword [r10 + 0xf4], eax
mov eax, dword [r10 + 8]
mov dword [r10 + 0xf8], eax
mov eax, dword [r10 + 0xc]
mov dword [r10 + 0xfc], eax
add rsp, 0x28
pop rbx
pop rsi
ret
add rsp, 0x28
pop rbx
pop rsi
jmp 0x14013a140
add rsp, 0x28
pop rbx
pop rsi
jmp 0x140135290
mov r10d, 1
jmp 0x140104ab7
movsxd rax, dword [rcx + 0x1e0]
shl rax, 4
mov r9, qword [rcx + rax]
mov r10, qword [rcx + rax + 8]
mov qword [rcx + 0xf0], r9
mov qword [rcx + 0xf8], r10
movdqa xmm1, xmmword [rcx + rax - 0x10]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x100], xmm1
movdqa xmm1, xmmword [rcx + rax - 0x20]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x110], xmm1
movdqa xmm1, xmmword [rcx + rax - 0x30]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x120], xmm1
movdqa xmm1, xmmword [rcx + rax - 0x40]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x130], xmm1
movdqa xmm1, xmmword [rcx + rax - 0x50]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x140], xmm1
movdqa xmm1, xmmword [rcx + rax - 0x60]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x150], xmm1
movdqa xmm1, xmmword [rcx + rax - 0x70]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x160], xmm1
movdqa xmm1, xmmword [rcx + rax - 0x80]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x170], xmm1
movdqa xmm1, xmmword [rcx + rax - 0x90]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x180], xmm1
cmp dword [rcx + 0x1e0], 0xa
mov edx, 0xa0
jle 0x1401353d9
movdqa xmm1, xmmword [rcx + rax - 0xa0]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x190], xmm1
movdqa xmm1, xmmword [rcx + rax - 0xb0]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x1a0], xmm1
cmp dword [rcx + 0x1e0], 0xc
mov edx, 0xc0
jle 0x1401353d9
movdqa xmm1, xmmword [rcx + rax - 0xc0]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x1b0], xmm1
movdqa xmm1, xmmword [rcx + rax - 0xd0]
aesimc xmm1, xmm1
movdqa xmmword [rcx + 0x1c0], xmm1
mov edx, 0xe0
mov r9, qword [rcx]
mov r10, qword [rcx + 8]
mov qword [rcx + rdx + 0xf0], r9
mov qword [rcx + rdx + 0xf8], r10
pxor xmm0, xmm0
pxor xmm1, xmm1
ret
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa0
mov eax, dword [rcx + 0x1e0]
mov r12, rcx
lea ebx, [rax - 6]
shl ebx, 5
movdqu xmmword [rsp], xmm6
movdqu xmmword [rsp + 0x10], xmm7
movdqu xmmword [rsp + 0x20], xmm8
movdqu xmmword [rsp + 0x30], xmm9
movdqu xmmword [rsp + 0x40], xmm10
movdqu xmmword [rsp + 0x50], xmm11
movdqu xmmword [rsp + 0x60], xmm12
movdqu xmmword [rsp + 0x70], xmm13
movdqu xmmword [rsp + 0x80], xmm14
movdqu xmmword [rsp + 0x90], xmm15
movsxd rbp, dword [rcx + 0x1e0]
xor r13d, r13d
cmp ebx, 0xc0
setne r13b
shl r13d, 5
add rbp, 0xf
shl rbp, 4
lea rdi, [r12 + 0xf0]
mov esi, ebx
lea rdx, [r12 + rbp]
mov ecx, 1
mov r8d, r13d
call fcn.1401399c0
pxor xmm0, xmm0
pxor xmm1, xmm1
pxor xmm2, xmm2
pxor xmm3, xmm3
pxor xmm4, xmm4
pxor xmm5, xmm5
movdqu xmm6, xmmword [rsp]
movdqu xmm7, xmmword [rsp + 0x10]
movdqu xmm8, xmmword [rsp + 0x20]
movdqu xmm9, xmmword [rsp + 0x30]
movdqu xmm10, xmmword [rsp + 0x40]
movdqu xmm11, xmmword [rsp + 0x50]
movdqu xmm12, xmmword [rsp + 0x60]
movdqu xmm13, xmmword [rsp + 0x70]
movdqu xmm14, xmmword [rsp + 0x80]
movdqu xmm15, xmmword [rsp + 0x90]
add rsp, 0xa0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret