Function at 0x140003470
Capabilities:
Decrypt data using aes via x86 extensions

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2c8
movdqa xmmword [rsp + 0x2b0], xmm15
movdqa xmmword [rsp + 0x2a0], xmm14
movdqa xmmword [rsp + 0x290], xmm13
movdqa xmmword [rsp + 0x280], xmm12
movdqa xmmword [rsp + 0x270], xmm11
movdqa xmmword [rsp + 0x260], xmm10
movdqa xmmword [rsp + 0x250], xmm9
movdqa xmmword [rsp + 0x240], xmm8
movdqa xmmword [rsp + 0x230], xmm7
movdqa xmmword [rsp + 0x220], xmm6
mov qword [rsp + 0xc0], rcx
mov r15, qword [rdx]
mov r12, qword [rdx + 8]
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0xc8], rax
mov rax, qword [rdx + 0x18]
mov ebp, eax
and ebp, 7
mov qword [rsp + 0xb8], rax
cmp rax, 8
jb 0x140003daf
mov rdi, qword [rsp + 0xb8]
shr rdi, 3
lea r8, [rsp + 0x50]
lea r11, [rsp + 0xe0]
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x100]
lea rax, [rsp + 0x110]
lea r9, [r15 + 0x10]
lea rsi, [rsp + 0x30]
cmp rsi, r9
setb r9b
lea r10, [rsp + 0x40]
cmp r15, r10
setb bl
and bl, r9b
mov byte [rsp + 0x2f], bl
cmp r10, r11
setb r9b
lea r10, [rsp + 0xd0]
cmp r10, r8
setb bl
and bl, r9b
mov byte [rsp + 0x2e], bl
lea r9, [rsp + 0x60]
cmp r8, rdx
setb r8b
cmp r11, r9
setb r9b
and r9b, r8b
mov byte [rsp + 0x2d], r9b
lea r8, [rsp + 0x70]
cmp rsi, r10
setb r9b
cmp rdx, r8
setb dl
and dl, r9b
mov byte [rsp + 0x2c], dl
lea rdx, [rsp + 0x80]
cmp rcx, rdx
lea rcx, [rsp + 0x120]
setb dl
and dl, r9b
mov byte [rsp + 0x2b], dl
lea rdx, [rsp + 0x90]
cmp rax, rdx
setb al
and al, r9b
mov byte [rsp + 0x2a], al
lea rax, [rsp + 0xa0]
cmp rcx, rax
lea rax, [rsp + 0x130]
mov rcx, qword [rsp + 0xc0]
movaps xmm0, xmmword [rcx + 0x150]
movaps xmmword [rsp + 0x1f0], xmm0
movaps xmm0, xmmword [rcx + 0x140]
movaps xmmword [rsp + 0x1e0], xmm0
movaps xmm0, xmmword [rcx + 0x130]
movaps xmmword [rsp + 0x1d0], xmm0
movaps xmm0, xmmword [rcx + 0x120]
movaps xmmword [rsp + 0x1c0], xmm0
movaps xmm0, xmmword [rcx + 0x110]
movaps xmmword [rsp + 0x1b0], xmm0
movaps xmm0, xmmword [rcx + 0x100]
movaps xmmword [rsp + 0x1a0], xmm0
movaps xmm0, xmmword [rcx + 0xf0]
movaps xmmword [rsp + 0x190], xmm0
movaps xmm0, xmmword [rcx + 0xb0]
movaps xmmword [rsp + 0x180], xmm0
movaps xmm0, xmmword [rcx + 0xc0]
movaps xmmword [rsp + 0x160], xmm0
movaps xmm0, xmmword [rcx + 0xd0]
movaps xmmword [rsp + 0x150], xmm0
movdqa xmm0, xmmword [rcx + 0xe0]
movdqa xmmword [rsp + 0x170], xmm0
setb sil
and sil, r9b
lea rcx, [rsp + 0xb0]
cmp rax, rcx
setb bl
and bl, r9b
mov r14, r12
mov r13, qword [rsp + 0xc8]
movdqa xmm12, xmmword [rsp + 0x180]
jmp 0x14000378d
movdqa xmm0, xmmword [rsp + 0xa0]
pxor xmm0, xmmword [rsp + 0x130]
movdqa xmmword [rsp + 0xa0], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [r13 + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0x90]
movups xmmword [r13 + 0x60], xmm0
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [r13 + 0x50], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [r13 + 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmm1, xmmword [rsp + 0x40]
movdqa xmm2, xmmword [rsp + 0x50]
movdqa xmm3, xmmword [rsp + 0x60]
movdqu xmmword [r13 + 0x30], xmm3
movdqu xmmword [r13 + 0x20], xmm2
movdqu xmmword [r13 + 0x10], xmm1
movups xmmword [r13], xmm0
lea rax, [rsp + 0xe0]
movdqu xmm0, xmmword [rax + 0x60]
movdqu xmmword [r15], xmm0
sub r13, 0xffffffffffffff80
sub r14, 0xffffffffffffff80
dec rdi
je 0x140003daf
lea rcx, [rsp + 0xd0]
mov rdx, r14
call fcn.1400032f0
lea rcx, [rsp + 0x30]
mov rdx, r14
call fcn.1400032f0
movdqa xmm8, xmmword [rsp + 0x30]
movdqa xmm0, xmmword [rsp + 0x1f0]
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 + 0x200], xmm1
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x210], xmm1
movdqa xmm6, xmmword [rsp + 0x1e0]
aesdec xmm8, xmm6
movdqa xmm2, xmm6
movdqa xmm6, xmmword [rsp + 0x1d0]
aesdec xmm8, xmm6
movdqa xmm3, xmm6
movdqa xmm1, xmmword [rsp + 0x1c0]
aesdec xmm8, xmm1
movdqa xmm4, xmm1
movdqa xmm1, xmmword [rsp + 0x1b0]
aesdec xmm8, xmm1
movdqa xmm5, xmm1
movdqa xmm1, xmmword [rsp + 0x1a0]
aesdec xmm8, xmm1
movdqa xmm6, xmm1
movdqa xmm1, xmmword [rsp + 0x190]
aesdec xmm8, xmm1
movdqa xmm7, xmm1
movdqa xmm1, xmmword [rsp + 0x170]
aesdec xmm8, xmm1
movdqa xmm9, xmm1
aesdec xmm8, xmmword [rsp + 0x150]
aesdec xmm8, xmmword [rsp + 0x160]
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 + 0x150]
aesdec xmm10, xmm7
movdqa xmm9, xmmword [rsp + 0x160]
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 + 0x200]
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 + 0x210]
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 0x140003c90
movdqu xmm0, xmmword [r15]
pxor xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
cmp byte [rsp + 0x2e], 0
jne 0x140003cac
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
xor rax, qword [rsp + 0xd0]
xor rcx, qword [rsp + 0xd8]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x40], xmm1
cmp byte [rsp + 0x2d], 0
jne 0x140003ccc
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
xor rax, qword [rsp + 0xe0]
xor rcx, qword [rsp + 0xe8]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x50], xmm1
cmp byte [rsp + 0x2c], 0
jne 0x140003cec
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
xor rax, qword [rsp + 0xf0]
xor rcx, qword [rsp + 0xf8]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x60], xmm1
cmp byte [rsp + 0x2b], 0
jne 0x140003d0c
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
xor rax, qword [rsp + 0x100]
xor rcx, qword [rsp + 0x108]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x70], xmm1
cmp byte [rsp + 0x2a], 0
jne 0x140003d2c
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
xor rax, qword [rsp + 0x110]
xor rcx, qword [rsp + 0x118]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x80], xmm1
test sil, sil
jne 0x140003d50
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
xor rax, qword [rsp + 0x120]
xor rcx, qword [rsp + 0x128]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x90], xmm1
test bl, bl
jne 0x1400036f0
jmp 0x140003d73
mov rax, qword [r15]
xor qword [rsp + 0x30], rax
mov rax, qword [r15 + 8]
xor qword [rsp + 0x38], rax
cmp byte [rsp + 0x2e], 0
je 0x140003b24
movdqa xmm0, xmmword [rsp + 0x40]
pxor xmm0, xmmword [rsp + 0xd0]
movdqa xmmword [rsp + 0x40], xmm0
cmp byte [rsp + 0x2d], 0
je 0x140003b5d
movdqa xmm0, xmmword [rsp + 0x50]
pxor xmm0, xmmword [rsp + 0xe0]
movdqa xmmword [rsp + 0x50], xmm0
cmp byte [rsp + 0x2c], 0
je 0x140003b96
movdqa xmm0, xmmword [rsp + 0x60]
pxor xmm0, xmmword [rsp + 0xf0]
movdqa xmmword [rsp + 0x60], xmm0
cmp byte [rsp + 0x2b], 0
je 0x140003bcf
movdqa xmm0, xmmword [rsp + 0x70]
pxor xmm0, xmmword [rsp + 0x100]
movdqa xmmword [rsp + 0x70], xmm0
cmp byte [rsp + 0x2a], 0
je 0x140003c08
movdqa xmm0, xmmword [rsp + 0x80]
pxor xmm0, xmmword [rsp + 0x110]
movdqa xmmword [rsp + 0x80], xmm0
test sil, sil
je 0x140003c48
movdqa xmm0, xmmword [rsp + 0x90]
pxor xmm0, xmmword [rsp + 0x120]
movdqa xmmword [rsp + 0x90], xmm0
test bl, bl
jne 0x1400036f0
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
xor rax, qword [rsp + 0x130]
xor rcx, qword [rsp + 0x138]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0xa0], xmm1
jmp 0x14000370b
test rbp, rbp
mov r8, qword [rsp + 0xc8]
je 0x140003f33
movabs rax, 0xffffffffffffff8
mov rcx, qword [rsp + 0xb8]
and rcx, rax
shl rcx, 4
add r12, rcx
add r8, rcx
mov rax, qword [rsp + 0xc0]
movdqa xmm0, xmmword [rax + 0x150]
movdqa xmm1, xmmword [rax + 0x140]
movdqa xmm2, xmmword [rax + 0x130]
movdqa xmm3, xmmword [rax + 0x120]
movdqa xmm4, xmmword [rax + 0x110]
movdqa xmm5, xmmword [rax + 0x100]
movdqa xmm6, xmmword [rax + 0xf0]
movdqa xmm7, xmmword [rax + 0xb0]
movdqa xmm8, xmmword [rax + 0xc0]
movdqa xmm9, xmmword [rax + 0xd0]
movdqa xmm10, xmmword [rax + 0xe0]
lea rax, [r15 + 0x10]
lea rcx, [rsp + 0x30]
cmp rcx, rax
setb cl
lea rax, [rsp + 0x40]
cmp r15, rax
setb al
and al, cl
shl rbp, 4
xor ecx, ecx
jmp 0x140003ead
movdqu xmm11, xmmword [r15]
pxor xmm11, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm11
lea rdx, [r8 + rcx]
movaps xmm11, xmmword [rsp + 0x30]
movups xmmword [rdx], xmm11
movdqa xmm11, xmmword [rsp + 0xd0]
movdqu xmmword [r15], xmm11
add rcx, 0x10
cmp rbp, rcx
je 0x140003f33
movups xmm11, xmmword [r12 + rcx]
movaps xmmword [rsp + 0xd0], xmm11
movups xmm11, xmmword [r12 + rcx]
movaps xmmword [rsp + 0x30], xmm11
movdqa xmm11, xmmword [rsp + 0x30]
pxor xmm11, xmm0
aesdec xmm11, xmm1
aesdec xmm11, xmm2
aesdec xmm11, xmm3
aesdec xmm11, xmm4
aesdec xmm11, xmm5
aesdec xmm11, xmm6
aesdec xmm11, xmm10
aesdec xmm11, xmm9
aesdec xmm11, xmm8
aesdeclast xmm11, xmm7
movdqa xmmword [rsp + 0x30], xmm11
test al, al
jne 0x140003e70
mov rdx, qword [r15]
xor qword [rsp + 0x30], rdx
mov rdx, qword [r15 + 8]
xor qword [rsp + 0x38], rdx
jmp 0x140003e83
movaps xmm6, xmmword [rsp + 0x220]
movaps xmm7, xmmword [rsp + 0x230]
movaps xmm8, xmmword [rsp + 0x240]
movaps xmm9, xmmword [rsp + 0x250]
movaps xmm10, xmmword [rsp + 0x260]
movaps xmm11, xmmword [rsp + 0x270]
movaps xmm12, xmmword [rsp + 0x280]
movaps xmm13, xmmword [rsp + 0x290]
movaps xmm14, xmmword [rsp + 0x2a0]
movaps xmm15, xmmword [rsp + 0x2b0]
add rsp, 0x2c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret