Function at 0x140012a90
Capabilities:
Decrypt data using aes via x86 extensions
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x3c8
movdqa xmmword [rsp + 0x3b0], xmm15
movdqa xmmword [rsp + 0x3a0], xmm14
movdqa xmmword [rsp + 0x390], xmm13
movdqa xmmword [rsp + 0x380], xmm12
movdqa xmmword [rsp + 0x370], xmm11
movdqa xmmword [rsp + 0x360], xmm10
movdqa xmmword [rsp + 0x350], xmm9
movdqa xmmword [rsp + 0x340], xmm8
movdqa xmmword [rsp + 0x330], xmm7
movdqa xmmword [rsp + 0x320], xmm6
mov qword [rsp + 0xc0], rcx
mov r13, qword [rdx]
mov rax, qword [rdx + 8]
mov qword [rsp + 0xb8], rax
mov rbp, qword [rdx + 0x10]
mov rax, qword [rdx + 0x18]
mov qword [rsp + 0xc8], rax
cmp rax, 8
jb 0x140013631
mov rdi, qword [rsp + 0xc8]
shr rdi, 3
lea rsi, [rsp + 0x40]
lea r11, [rsp + 0x50]
lea r10, [rsp + 0xf0]
lea r9, [rsp + 0x100]
lea r8, [rsp + 0x110]
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x130]
lea rax, [rsp + 0x140]
mov rbx, qword [rsp + 0xc0]
movaps xmm0, xmmword [rbx + 0x150]
movaps xmmword [rsp + 0x2d0], xmm0
movaps xmm0, xmmword [rbx + 0x140]
movaps xmmword [rsp + 0x2c0], xmm0
movaps xmm0, xmmword [rbx + 0x130]
movaps xmmword [rsp + 0x2b0], xmm0
movaps xmm0, xmmword [rbx + 0x120]
movaps xmmword [rsp + 0x2a0], xmm0
movaps xmm0, xmmword [rbx + 0x110]
movaps xmmword [rsp + 0x290], xmm0
movaps xmm0, xmmword [rbx + 0x100]
movaps xmmword [rsp + 0x280], xmm0
movaps xmm0, xmmword [rbx + 0xf0]
movaps xmmword [rsp + 0x270], xmm0
movaps xmm0, xmmword [rbx + 0xb0]
movaps xmmword [rsp + 0x260], xmm0
movaps xmm0, xmmword [rbx + 0xc0]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmm0, xmmword [rbx + 0xd0]
movaps xmmword [rsp + 0x1f0], xmm0
movaps xmm0, xmmword [rbx + 0xe0]
movaps xmmword [rsp + 0x250], xmm0
lea rbx, [rsp + 0x1e0]
lea r15, [r13 + 0x10]
movq xmm0, rbx
lea rbx, [rsp + 0x160]
movq xmm6, rbx
punpcklqdq xmm6, xmm0
lea r14, [rsp + 0x30]
cmp r14, r15
setb bl
cmp r13, rsi
setb sil
and sil, bl
mov byte [rsp + 0x2f], sil
lea rsi, [rsp + 0xe0]
cmp r14, rsi
setb bl
cmp rsi, r11
setb sil
and sil, bl
mov byte [rsp + 0x2e], sil
cmp r11, r9
lea r11, [rsp + 0x60]
setb sil
cmp r10, r11
setb r10b
and r10b, sil
mov byte [rsp + 0x2d], r10b
lea r10, [rsp + 0x70]
cmp r9, r10
setb r9b
and r9b, bl
mov byte [rsp + 0x2c], r9b
lea r9, [rsp + 0x80]
cmp r8, r9
setb r8b
and r8b, bl
mov byte [rsp + 0x2b], r8b
lea r8, [rsp + 0x90]
cmp rdx, r8
setb dl
and dl, bl
mov byte [rsp + 0x2a], dl
lea rdx, [rsp + 0xa0]
cmp rcx, rdx
setb cl
and cl, bl
mov byte [rsp + 0x29], cl
lea rcx, [rsp + 0xb0]
cmp rax, rcx
setb al
and al, bl
mov byte [rsp + 0x28], al
mov esi, 1
lea r15, [rsp + 0x200]
lea r12, [rsp + 0x308]
mov rbx, rbp
mov rax, qword [rsp + 0xb8]
movdqa xmmword [rsp + 0x240], xmm6
movdqa xmm12, xmmword [rsp + 0x260]
jmp 0x140012e01
movdqa xmm0, xmmword [rsp + 0xa0]
pxor xmm0, xmmword [rsp + 0x140]
movdqa xmmword [rsp + 0xa0], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rbx + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0x90]
movups xmmword [rbx + 0x60], xmm0
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [rbx + 0x50], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [rbx + 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmm1, xmmword [rsp + 0x40]
movdqa xmm2, xmmword [rsp + 0x50]
movdqa xmm3, xmmword [rsp + 0x60]
movdqu xmmword [rbx + 0x30], xmm3
movdqu xmmword [rbx + 0x20], xmm2
movdqu xmmword [rbx + 0x10], xmm1
movups xmmword [rbx], xmm0
lea rcx, [rsp + 0x160]
lea rdx, [rsp + 0x150]
call fcn.140015cb0
xor ecx, ecx
cmp rdi, rsi
setne cl
mov rbx, rsi
shl rbx, 7
mov rax, qword [rsp + 0xb8]
add rax, rbx
add rbx, rbp
add rcx, rsi
movdqu xmm0, xmmword [rsp + 0x160]
movdqu xmmword [r13], xmm0
cmp rdi, rsi
mov rsi, rcx
je 0x140013631
mov qword [rsp + 0x1e0], 0
movq xmm7, rax
sub rax, 0xffffffffffffff80
movq xmm0, rax
punpcklqdq xmm7, xmm0
movdqa xmmword [rsp + 0x30], xmm7
movdqa xmmword [rsp + 0x40], xmm6
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 8
mov qword [rsp + 0x60], 8
nop word cs:[rax + rax]
mov rcx, r15
mov rdx, r14
call fcn.140015c40
mov rax, qword [rsp + 0x210]
test rax, rax
je 0x140012e80
movdqu xmm0, xmmword [rsp + 0x200]
movdqu xmmword [rax], xmm0
inc qword [rsp + 0x1e0]
jmp 0x140012e50
mov rcx, qword [rsp + 0x1e0]
cmp rcx, 7
jbe 0x140013859
movups xmm0, xmmword [rsp + 0x1d0]
movaps xmmword [rsp + 0x150], xmm0
movups xmm0, xmmword [rsp + 0x1c0]
movaps xmmword [rsp + 0x140], xmm0
movups xmm0, xmmword [rsp + 0x1b0]
movaps xmmword [rsp + 0x130], xmm0
movups xmm0, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [rsp + 0x160]
movdqu xmm1, xmmword [rsp + 0x170]
movdqu xmm2, xmmword [rsp + 0x180]
movdqu xmm3, xmmword [rsp + 0x190]
movdqa xmmword [rsp + 0x110], xmm3
movdqa xmmword [rsp + 0x100], xmm2
movdqa xmmword [rsp + 0xf0], xmm1
movaps xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0x1e0], 0
movdqa xmmword [rsp + 0x200], xmm7
movdqa xmmword [rsp + 0x210], xmm6
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 8
mov qword [rsp + 0x230], 8
nop word [rax + rax]
mov rcx, r12
mov rdx, r15
call fcn.140015c40
mov rax, qword [rsp + 0x318]
test rax, rax
je 0x140012f90
movdqu xmm0, xmmword [rsp + 0x308]
movdqu xmmword [rax], xmm0
inc qword [rsp + 0x1e0]
jmp 0x140012f60
mov rcx, qword [rsp + 0x1e0]
cmp rcx, 7
jbe 0x140013859
movups xmm0, xmmword [rsp + 0x1d0]
movaps xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [rsp + 0x1c0]
movaps xmmword [rsp + 0x90], xmm0
movups xmm0, xmmword [rsp + 0x1b0]
movaps xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [rsp + 0x160]
movups xmm1, xmmword [rsp + 0x170]
movups xmm2, xmmword [rsp + 0x180]
movups xmm3, xmmword [rsp + 0x190]
movaps xmmword [rsp + 0x60], xmm3
movaps xmmword [rsp + 0x50], xmm2
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
movdqa xmm8, xmmword [rsp + 0x30]
movdqa xmm0, xmmword [rsp + 0x2d0]
pxor xmm8, xmm0
movdqa xmm10, xmmword [rsp + 0x40]
movdqa xmm11, xmmword [rsp + 0x50]
movdqa xmm13, xmmword [rsp + 0x60]
movdqa xmm14, xmmword [rsp + 0x70]
movdqa xmm15, xmmword [rsp + 0x80]
movaps xmm1, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x2e0], xmm1
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x2f0], xmm1
movdqa xmm6, xmmword [rsp + 0x2c0]
aesdec xmm8, xmm6
movdqa xmm2, xmm6
movdqa xmm6, xmmword [rsp + 0x2b0]
aesdec xmm8, xmm6
movdqa xmm3, xmm6
movdqa xmm1, xmmword [rsp + 0x2a0]
aesdec xmm8, xmm1
movdqa xmm4, xmm1
movdqa xmm1, xmmword [rsp + 0x290]
aesdec xmm8, xmm1
movdqa xmm5, xmm1
movdqa xmm1, xmmword [rsp + 0x280]
aesdec xmm8, xmm1
movdqa xmm6, xmm1
movdqa xmm1, xmmword [rsp + 0x270]
aesdec xmm8, xmm1
movdqa xmm7, xmm1
movdqa xmm1, xmmword [rsp + 0x250]
aesdec xmm8, xmm1
movdqa xmm9, xmm1
aesdec xmm8, xmmword [rsp + 0x1f0]
aesdec xmm8, xmmword [rsp + 0xd0]
aesdeclast xmm8, xmm12
movdqa xmmword [rsp + 0x30], xmm8
movdqa xmm8, xmm0
pxor xmm10, xmm0
movdqa xmm0, xmm2
aesdec xmm10, xmm2
movdqa xmm1, xmm3
aesdec xmm10, xmm3
movdqa xmm2, xmm4
aesdec xmm10, xmm4
movdqa xmm3, xmm5
aesdec xmm10, xmm5
movdqa xmm4, xmm6
aesdec xmm10, xmm6
movdqa xmm5, xmm7
aesdec xmm10, xmm7
movdqa xmm6, xmm9
aesdec xmm10, xmm9
movdqa xmm7, xmmword [rsp + 0x1f0]
aesdec xmm10, xmm7
movdqa xmm9, xmmword [rsp + 0xd0]
aesdec xmm10, xmm9
aesdeclast xmm10, xmm12
movdqa xmmword [rsp + 0x40], xmm10
pxor xmm11, xmm8
aesdec xmm11, xmm0
aesdec xmm11, xmm1
aesdec xmm11, xmm2
aesdec xmm11, xmm3
aesdec xmm11, xmm4
aesdec xmm11, xmm5
aesdec xmm11, xmm6
aesdec xmm11, xmm7
aesdec xmm11, xmm9
aesdeclast xmm11, xmm12
movdqa xmmword [rsp + 0x50], xmm11
pxor xmm13, xmm8
aesdec xmm13, xmm0
aesdec xmm13, xmm1
aesdec xmm13, xmm2
aesdec xmm13, xmm3
aesdec xmm13, xmm4
aesdec xmm13, xmm5
aesdec xmm13, xmm6
aesdec xmm13, xmm7
aesdec xmm13, xmm9
aesdeclast xmm13, xmm12
movdqa xmmword [rsp + 0x60], xmm13
pxor xmm14, xmm8
aesdec xmm14, xmm0
aesdec xmm14, xmm1
aesdec xmm14, xmm2
aesdec xmm14, xmm3
aesdec xmm14, xmm4
aesdec xmm14, xmm5
aesdec xmm14, xmm6
aesdec xmm14, xmm7
aesdec xmm14, xmm9
aesdeclast xmm14, xmm12
movdqa xmmword [rsp + 0x70], xmm14
pxor xmm15, xmm8
aesdec xmm15, xmm0
aesdec xmm15, xmm1
aesdec xmm15, xmm2
aesdec xmm15, xmm3
aesdec xmm15, xmm4
aesdec xmm15, xmm5
aesdec xmm15, xmm6
aesdec xmm15, xmm7
aesdec xmm15, xmm9
aesdeclast xmm15, xmm12
movdqa xmmword [rsp + 0x80], xmm15
movdqa xmm11, xmmword [rsp + 0x2e0]
pxor xmm11, xmm8
aesdec xmm11, xmm0
aesdec xmm11, xmm1
aesdec xmm11, xmm2
aesdec xmm11, xmm3
aesdec xmm11, xmm4
aesdec xmm11, xmm5
aesdec xmm11, xmm6
aesdec xmm11, xmm7
aesdec xmm11, xmm9
movdqa xmm10, xmm9
aesdeclast xmm11, xmm12
movdqa xmmword [rsp + 0x90], xmm11
movdqa xmm9, xmmword [rsp + 0x2f0]
pxor xmm9, xmm8
aesdec xmm9, xmm0
aesdec xmm9, xmm1
aesdec xmm9, xmm2
aesdec xmm9, xmm3
aesdec xmm9, xmm4
aesdec xmm9, xmm5
aesdec xmm9, xmm6
aesdec xmm9, xmm7
aesdec xmm9, xmm10
aesdeclast xmm9, xmm12
movdqa xmmword [rsp + 0xa0], xmm9
cmp byte [rsp + 0x2f], 0
je 0x1400133c0
movdqu xmm0, xmmword [r13]
pxor xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
cmp byte [rsp + 0x2e], 0
movdqa xmm6, xmmword [rsp + 0x240]
jne 0x1400133e2
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
xor rax, qword [rsp + 0xe0]
xor rcx, qword [rsp + 0xe8]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x40], xmm1
jmp 0x140013408
mov rax, qword [r13]
xor qword [rsp + 0x30], rax
mov rax, qword [r13 + 8]
xor qword [rsp + 0x38], rax
cmp byte [rsp + 0x2e], 0
movdqa xmm6, xmmword [rsp + 0x240]
je 0x14001338f
xor eax, eax
nop word cs:[rax + rax]
mov ecx, dword [rsp + rax + 0xe0]
xor dword [rsp + rax + 0x40], ecx
lea rcx, [rax + 4]
mov rax, rcx
cmp rcx, 0x10
jne 0x1400133f0
cmp byte [rsp + 0x2d], 0
je 0x140013530
movdqa xmm0, xmmword [rsp + 0x50]
pxor xmm0, xmmword [rsp + 0xf0]
movdqa xmmword [rsp + 0x50], xmm0
cmp byte [rsp + 0x2c], 0
jne 0x140013569
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
xor rax, qword [rsp + 0x100]
xor rcx, qword [rsp + 0x108]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x60], xmm1
cmp byte [rsp + 0x2b], 0
jne 0x140013589
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
xor rax, qword [rsp + 0x110]
xor rcx, qword [rsp + 0x118]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x70], xmm1
cmp byte [rsp + 0x2a], 0
jne 0x1400135a9
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
xor rax, qword [rsp + 0x120]
xor rcx, qword [rsp + 0x128]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x80], xmm1
cmp byte [rsp + 0x29], 0
jne 0x1400135cf
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
xor rax, qword [rsp + 0x130]
xor rcx, qword [rsp + 0x138]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x90], xmm1
cmp byte [rsp + 0x28], 0
jne 0x140012d40
jmp 0x1400135f5
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
xor rax, qword [rsp + 0xf0]
xor rcx, qword [rsp + 0xf8]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x50], xmm1
cmp byte [rsp + 0x2c], 0
je 0x140013433
movdqa xmm0, xmmword [rsp + 0x60]
pxor xmm0, xmmword [rsp + 0x100]
movdqa xmmword [rsp + 0x60], xmm0
cmp byte [rsp + 0x2b], 0
je 0x14001346c
movdqa xmm0, xmmword [rsp + 0x70]
pxor xmm0, xmmword [rsp + 0x110]
movdqa xmmword [rsp + 0x70], xmm0
cmp byte [rsp + 0x2a], 0
je 0x1400134a5
movdqa xmm0, xmmword [rsp + 0x80]
pxor xmm0, xmmword [rsp + 0x120]
movdqa xmmword [rsp + 0x80], xmm0
cmp byte [rsp + 0x29], 0
je 0x1400134e7
movdqa xmm0, xmmword [rsp + 0x90]
pxor xmm0, xmmword [rsp + 0x130]
movdqa xmmword [rsp + 0x90], xmm0
cmp byte [rsp + 0x28], 0
jne 0x140012d40
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
xor rax, qword [rsp + 0x140]
xor rcx, qword [rsp + 0x148]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0xa0], xmm1
jmp 0x140012d5b
mov rcx, qword [rsp + 0xc8]
mov r14d, ecx
and r14d, 7
je 0x1400137ed
movabs rax, 0xffffffffffffff8
and rcx, rax
shl rcx, 4
add qword [rsp + 0xb8], rcx
add rbp, rcx
lea rax, [rsp + 0x170]
mov rcx, qword [rsp + 0xc0]
movdqa xmm0, xmmword [rcx + 0x150]
movdqa xmmword [rsp + 0xd0], xmm0
movdqa xmm7, xmmword [rcx + 0x140]
movdqa xmm8, xmmword [rcx + 0x130]
movdqa xmm9, xmmword [rcx + 0x120]
movdqa xmm10, xmmword [rcx + 0x110]
movdqa xmm11, xmmword [rcx + 0x100]
movdqa xmm12, xmmword [rcx + 0xf0]
movdqa xmm13, xmmword [rcx + 0xb0]
movdqa xmm14, xmmword [rcx + 0xc0]
movdqa xmm15, xmmword [rcx + 0xd0]
movdqa xmm6, xmmword [rcx + 0xe0]
lea rcx, [r13 + 0x10]
lea rsi, [rsp + 0x160]
cmp rsi, rcx
setb cl
cmp r13, rax
setb r15b
and r15b, cl
shl r14, 4
xor r12d, r12d
lea rdi, [rsp + 0x30]
jmp 0x140013750
movdqu xmm0, xmmword [r13]
pxor xmm0, xmmword [rsp + 0x160]
movdqa xmmword [rsp + 0x160], xmm0
lea rax, [r12 + rbp]
movaps xmm0, xmmword [rsp + 0x160]
movups xmmword [rax], xmm0
movdqu xmm0, xmmword [rsp + 0x30]
movdqu xmmword [r13], xmm0
add r12, 0x10
cmp r14, r12
je 0x1400137ed
mov rax, qword [rsp + 0xb8]
lea rbx, [rax + r12]
mov rcx, rdi
mov rdx, rbx
call fcn.140015cb0
mov rcx, rsi
mov rdx, rbx
call fcn.140015cb0
movdqa xmm0, xmmword [rsp + 0x160]
pxor xmm0, xmmword [rsp + 0xd0]
aesdec xmm0, xmm7
aesdec xmm0, xmm8
aesdec xmm0, xmm9
aesdec xmm0, xmm10
aesdec xmm0, xmm11
aesdec xmm0, xmm12
aesdec xmm0, xmm6
aesdec xmm0, xmm15
aesdec xmm0, xmm14
aesdeclast xmm0, xmm13
movdqa xmmword [rsp + 0x160], xmm0
test r15b, r15b
jne 0x140013710
mov rax, qword [r13]
xor qword [rsp + 0x160], rax
mov rax, qword [r13 + 8]
xor qword [rsp + 0x168], rax
jmp 0x140013728
movaps xmm6, xmmword [rsp + 0x320]
movaps xmm7, xmmword [rsp + 0x330]
movaps xmm8, xmmword [rsp + 0x340]
movaps xmm9, xmmword [rsp + 0x350]
movaps xmm10, xmmword [rsp + 0x360]
movaps xmm11, xmmword [rsp + 0x370]
movaps xmm12, xmmword [rsp + 0x380]
movaps xmm13, xmmword [rsp + 0x390]
movaps xmm14, xmmword [rsp + 0x3a0]
movaps xmm15, xmmword [rsp + 0x3b0]
add rsp, 0x3c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov edx, 8
call fcn.140185340
ud2