Function at 0x14003e350
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, 0x338
movdqa xmmword [rsp + 0x320], xmm15
movdqa xmmword [rsp + 0x310], xmm14
movdqa xmmword [rsp + 0x300], xmm13
movdqa xmmword [rsp + 0x2f0], xmm12
movdqa xmmword [rsp + 0x2e0], xmm11
movdqa xmmword [rsp + 0x2d0], xmm10
movdqa xmmword [rsp + 0x2c0], xmm9
movdqa xmmword [rsp + 0x2b0], xmm8
movdqa xmmword [rsp + 0x2a0], xmm7
movdqa xmmword [rsp + 0x290], xmm6
mov qword [rsp + 0x120], rcx
mov r13, qword [rdx]
mov rax, qword [rdx + 8]
mov qword [rsp + 0x128], rax
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0xc8], rax
mov rax, qword [rdx + 0x18]
mov r15d, eax
and r15d, 7
mov qword [rsp + 0x118], rax
cmp rax, 8
jae 0x14003e67c
test r15, r15
mov r12, qword [rsp + 0x128]
je 0x14003e610
movabs rax, 0xffffffffffffff8
mov rcx, qword [rsp + 0x118]
and rcx, rax
shl rcx, 4
add r12, rcx
add qword [rsp + 0xc8], rcx
mov rax, qword [rsp + 0x120]
movaps xmm0, xmmword [rax + 0x1d0]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmm0, xmmword [rax + 0x1c0]
movaps xmmword [rsp + 0xe0], xmm0
movaps xmm0, xmmword [rax + 0x1b0]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmm0, xmmword [rax + 0x1a0]
movaps xmmword [rsp + 0x100], xmm0
movaps xmm0, xmmword [rax + 0x190]
movaps xmmword [rsp + 0xf0], xmm0
movdqa xmm11, xmmword [rax + 0x180]
movdqa xmm12, xmmword [rax + 0x170]
movdqa xmm13, xmmword [rax + 0x160]
movdqa xmm14, xmmword [rax + 0x150]
movdqa xmm15, xmmword [rax + 0x140]
movdqa xmm6, xmmword [rax + 0x130]
movdqa xmm7, xmmword [rax + 0xf0]
movdqa xmm8, xmmword [rax + 0x100]
movdqa xmm9, xmmword [rax + 0x110]
movdqa xmm10, xmmword [rax + 0x120]
lea rax, [rsp + 0x40]
lea rcx, [r13 + 0x10]
lea rsi, [rsp + 0x30]
cmp rsi, rcx
setb cl
cmp r13, rax
setb bpl
and bpl, cl
shl r15d, 4
xor r14d, r14d
lea rdi, [rsp + 0x270]
jmp 0x14003e55f
movdqu xmm0, xmmword [r13]
pxor xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
mov rax, qword [rsp + 0xc8]
add rax, r14
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [rax], xmm0
movups xmm0, xmmword [rsp + 0x270]
movups xmmword [r13], xmm0
add r14, 0x10
cmp r15, r14
je 0x14003e610
lea rbx, [r12 + r14]
mov rcx, rdi
mov rdx, rbx
call case.0x140052c4d.265
mov rcx, rsi
mov rdx, rbx
call case.0x140052c4d.265
movdqa xmm0, xmmword [rsp + 0x30]
pxor xmm0, xmmword [rsp + 0xb0]
aesdec xmm0, xmmword [rsp + 0xe0]
aesdec xmm0, xmmword [rsp + 0xd0]
aesdec xmm0, xmmword [rsp + 0x100]
aesdec xmm0, xmmword [rsp + 0xf0]
aesdec xmm0, xmm11
aesdec xmm0, xmm12
aesdec xmm0, xmm13
aesdec xmm0, xmm14
aesdec xmm0, xmm15
aesdec xmm0, xmm6
aesdec xmm0, xmm10
aesdec xmm0, xmm9
aesdec xmm0, xmm8
aesdeclast xmm0, xmm7
movdqa xmmword [rsp + 0x30], xmm0
test bpl, bpl
jne 0x14003e520
mov rax, qword [r13]
xor qword [rsp + 0x30], rax
mov rax, qword [r13 + 8]
xor qword [rsp + 0x38], rax
jmp 0x14003e532
movaps xmm6, xmmword [rsp + 0x290]
movaps xmm7, xmmword [rsp + 0x2a0]
movaps xmm8, xmmword [rsp + 0x2b0]
movaps xmm9, xmmword [rsp + 0x2c0]
movaps xmm10, xmmword [rsp + 0x2d0]
movaps xmm11, xmmword [rsp + 0x2e0]
movaps xmm12, xmmword [rsp + 0x2f0]
movaps xmm13, xmmword [rsp + 0x300]
movaps xmm14, xmmword [rsp + 0x310]
movaps xmm15, xmmword [rsp + 0x320]
add rsp, 0x338
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsp + 0x118]
shr rdi, 3
lea r10, [rsp + 0x40]
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x80]
lea rax, [rsp + 0x90]
lea r11, [r13 + 0x10]
lea rsi, [rsp + 0x190]
lea rbx, [rsp + 0x30]
cmp rbx, r11
setb r11b
cmp r13, r10
setb bl
and bl, r11b
mov byte [rsp + 0x2f], bl
cmp r10, rsi
setb r10b
lea r11, [rsp + 0x180]
cmp r11, r9
setb r11b
and r11b, r10b
mov byte [rsp + 0x2e], r11b
lea r10, [rsp + 0x1a0]
cmp r9, r10
setb r9b
cmp rsi, r8
lea r11, [rsp + 0x1b0]
setb bl
and bl, r9b
mov byte [rsp + 0x2d], bl
cmp r8, r11
lea r8, [rsp + 0xa0]
mov r9, qword [rsp + 0x120]
movaps xmm0, xmmword [r9 + 0x1d0]
movaps xmmword [rsp + 0x100], xmm0
movaps xmm0, xmmword [r9 + 0x1c0]
movaps xmmword [rsp + 0x230], xmm0
movaps xmm0, xmmword [r9 + 0x1b0]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmm0, xmmword [r9 + 0x1a0]
movaps xmmword [rsp + 0x220], xmm0
movaps xmm0, xmmword [r9 + 0x190]
movaps xmmword [rsp + 0xe0], xmm0
movaps xmm0, xmmword [r9 + 0x180]
movaps xmmword [rsp + 0x210], xmm0
movaps xmm0, xmmword [r9 + 0x170]
movaps xmmword [rsp + 0x200], xmm0
movaps xmm0, xmmword [r9 + 0x160]
movaps xmmword [rsp + 0x170], xmm0
movaps xmm0, xmmword [r9 + 0x150]
movaps xmmword [rsp + 0x160], xmm0
movaps xmm0, xmmword [r9 + 0x140]
movaps xmmword [rsp + 0x150], xmm0
movaps xmm0, xmmword [r9 + 0x130]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmm0, xmmword [r9 + 0xf0]
movaps xmmword [rsp + 0x240], xmm0
movaps xmm0, xmmword [r9 + 0x100]
movaps xmmword [rsp + 0x140], xmm0
movaps xmm0, xmmword [r9 + 0x110]
movaps xmmword [rsp + 0x130], xmm0
movaps xmm0, xmmword [r9 + 0x120]
movaps xmmword [rsp + 0xd0], xmm0
setb r9b
cmp r10, rdx
setb r10b
and r10b, r9b
mov byte [rsp + 0x2c], r10b
lea r9, [rsp + 0x1c0]
cmp rdx, r9
setb dl
cmp r11, rcx
lea r10, [rsp + 0x1d0]
setb r11b
and r11b, dl
mov byte [rsp + 0x2b], r11b
cmp rcx, r10
lea rdx, [rsp + 0x1f0]
setb cl
cmp r9, rax
setb bpl
and bpl, cl
lea rcx, [rsp + 0x1e0]
cmp rax, rcx
setb al
cmp r10, r8
setb r14b
and r14b, al
lea rax, [rsp + 0xb0]
cmp r8, rdx
setb dl
cmp rcx, rax
setb sil
and sil, dl
mov r12, qword [rsp + 0x128]
mov rbx, qword [rsp + 0xc8]
jmp 0x14003e956
movdqa xmm0, xmmword [rsp + 0xa0]
pxor xmm0, xmmword [rsp + 0x1e0]
movdqa xmmword [rsp + 0xa0], xmm0
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movaps xmm2, xmmword [rsp + 0x50]
movaps xmm3, xmmword [rsp + 0x60]
movaps xmm4, xmmword [rsp + 0x70]
movaps xmm5, xmmword [rsp + 0x80]
movdqa xmm11, xmmword [rsp + 0x90]
movdqa xmm12, xmmword [rsp + 0xa0]
movdqu xmmword [rbx + 0x70], xmm12
movdqu xmmword [rbx + 0x60], xmm11
movups xmmword [rbx + 0x50], xmm5
movups xmmword [rbx + 0x40], xmm4
movups xmmword [rbx + 0x30], xmm3
movups xmmword [rbx + 0x20], xmm2
movups xmmword [rbx + 0x10], xmm1
movups xmmword [rbx], xmm0
lea rcx, [rsp + 0x280]
lea rdx, [rsp + 0x1f0]
call case.0x140052c4d.265
movups xmm0, xmmword [rsp + 0x280]
movups xmmword [r13], xmm0
sub rbx, 0xffffffffffffff80
sub r12, 0xffffffffffffff80
dec rdi
je 0x14003e405
lea rcx, [rsp + 0x180]
mov rdx, r12
call fcn.140066b30
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.140066b30
movdqa xmm12, xmmword [rsp + 0x30]
pxor xmm12, xmmword [rsp + 0x100]
movdqa xmm11, xmmword [rsp + 0x40]
movdqa xmm5, xmmword [rsp + 0x50]
movdqa xmm4, xmmword [rsp + 0x60]
movdqa xmm3, xmmword [rsp + 0x70]
movdqa xmm10, xmmword [rsp + 0x80]
movaps xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x250], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x260], xmm0
movdqa xmm6, xmmword [rsp + 0x230]
aesdec xmm12, xmm6
movdqa xmm14, xmm6
movdqa xmm6, xmmword [rsp + 0xf0]
aesdec xmm12, xmm6
movdqa xmm13, xmm6
movdqa xmm6, xmmword [rsp + 0x220]
aesdec xmm12, xmm6
movdqa xmm9, xmm6
movdqa xmm6, xmmword [rsp + 0xe0]
aesdec xmm12, xmm6
movdqa xmm8, xmm6
movdqa xmm6, xmmword [rsp + 0x210]
aesdec xmm12, xmm6
movdqa xmm7, xmm6
movdqa xmm6, xmmword [rsp + 0x200]
aesdec xmm12, xmm6
movdqa xmm15, xmm6
aesdec xmm12, xmmword [rsp + 0x170]
aesdec xmm12, xmmword [rsp + 0x160]
aesdec xmm12, xmmword [rsp + 0x150]
aesdec xmm12, xmmword [rsp + 0xb0]
aesdec xmm12, xmmword [rsp + 0xd0]
movdqa xmm1, xmmword [rsp + 0x130]
aesdec xmm12, xmm1
aesdec xmm12, xmmword [rsp + 0x140]
movdqa xmm2, xmmword [rsp + 0x240]
aesdeclast xmm12, xmm2
movdqa xmmword [rsp + 0x30], xmm12
movdqa xmm12, xmmword [rsp + 0x100]
pxor xmm11, xmm12
movdqa xmm6, xmm14
aesdec xmm11, xmm14
movdqa xmm14, xmm13
aesdec xmm11, xmm13
movdqa xmm13, xmm9
aesdec xmm11, xmm9
movdqa xmm9, xmm8
aesdec xmm11, xmm8
movdqa xmm8, xmm7
aesdec xmm11, xmm7
movdqa xmm7, xmm15
aesdec xmm11, xmm15
movdqa xmm15, xmmword [rsp + 0x170]
aesdec xmm11, xmm15
aesdec xmm11, xmmword [rsp + 0x160]
movdqa xmm0, xmmword [rsp + 0x150]
aesdec xmm11, xmm0
aesdec xmm11, xmmword [rsp + 0xb0]
aesdec xmm11, xmmword [rsp + 0xd0]
aesdec xmm11, xmm1
movdqa xmm1, xmmword [rsp + 0x140]
aesdec xmm11, xmm1
aesdeclast xmm11, xmm2
movdqa xmmword [rsp + 0x40], xmm11
pxor xmm5, xmm12
movdqa xmm12, xmm6
aesdec xmm5, xmm6
aesdec xmm5, xmm14
aesdec xmm5, xmm13
aesdec xmm5, xmm9
aesdec xmm5, xmm8
aesdec xmm5, xmm7
movdqa xmm8, xmm15
aesdec xmm5, xmm15
movdqa xmm14, xmmword [rsp + 0x160]
aesdec xmm5, xmm14
aesdec xmm5, xmm0
movdqa xmm0, xmmword [rsp + 0xb0]
aesdec xmm5, xmm0
movdqa xmm15, xmmword [rsp + 0xd0]
aesdec xmm5, xmm15
movdqa xmm6, xmmword [rsp + 0x130]
aesdec xmm5, xmm6
movdqa xmm11, xmm6
aesdec xmm5, xmm1
movdqa xmm6, xmm2
aesdeclast xmm5, xmm2
movdqa xmmword [rsp + 0x50], xmm5
movdqa xmm9, xmmword [rsp + 0x100]
pxor xmm4, xmm9
aesdec xmm4, xmm12
movdqa xmm12, xmmword [rsp + 0xf0]
aesdec xmm4, xmm12
aesdec xmm4, xmm13
movdqa xmm2, xmmword [rsp + 0xe0]
aesdec xmm4, xmm2
movdqa xmm1, xmmword [rsp + 0x210]
aesdec xmm4, xmm1
aesdec xmm4, xmm7
aesdec xmm4, xmm8
aesdec xmm4, xmm14
movdqa xmm5, xmmword [rsp + 0x150]
aesdec xmm4, xmm5
aesdec xmm4, xmm0
movdqa xmm0, xmm15
aesdec xmm4, xmm15
aesdec xmm4, xmm11
movdqa xmm15, xmmword [rsp + 0x140]
aesdec xmm4, xmm15
aesdeclast xmm4, xmm6
movdqa xmm11, xmm6
movdqa xmmword [rsp + 0x60], xmm4
pxor xmm3, xmm9
movdqa xmm13, xmm9
movdqa xmm4, xmmword [rsp + 0x230]
aesdec xmm3, xmm4
aesdec xmm3, xmm12
movdqa xmm12, xmmword [rsp + 0x220]
aesdec xmm3, xmm12
aesdec xmm3, xmm2
aesdec xmm3, xmm1
movdqa xmm9, xmm1
movdqa xmm2, xmm7
aesdec xmm3, xmm7
aesdec xmm3, xmm8
aesdec xmm3, xmm14
movdqa xmm6, xmm5
aesdec xmm3, xmm5
movdqa xmm1, xmmword [rsp + 0xb0]
aesdec xmm3, xmm1
aesdec xmm3, xmm0
movdqa xmm7, xmmword [rsp + 0x130]
aesdec xmm3, xmm7
aesdec xmm3, xmm15
aesdeclast xmm3, xmm11
movdqa xmm5, xmm11
movdqa xmmword [rsp + 0x70], xmm3
pxor xmm10, xmm13
movdqa xmm11, xmm13
aesdec xmm10, xmm4
movdqa xmm0, xmmword [rsp + 0xf0]
aesdec xmm10, xmm0
aesdec xmm10, xmm12
movdqa xmm3, xmmword [rsp + 0xe0]
aesdec xmm10, xmm3
aesdec xmm10, xmm9
aesdec xmm10, xmm2
aesdec xmm10, xmm8
aesdec xmm10, xmm14
aesdec xmm10, xmm6
aesdec xmm10, xmm1
movdqa xmm13, xmmword [rsp + 0xd0]
aesdec xmm10, xmm13
aesdec xmm10, xmm7
aesdec xmm10, xmm15
movdqa xmm1, xmm5
aesdeclast xmm10, xmm5
movdqa xmmword [rsp + 0x80], xmm10
movdqa xmm10, xmmword [rsp + 0x250]
pxor xmm10, xmm11
aesdec xmm10, xmm4
aesdec xmm10, xmm0
movdqa xmm5, xmm0
aesdec xmm10, xmm12
aesdec xmm10, xmm3
movdqa xmm2, xmm9
aesdec xmm10, xmm9
movdqa xmm3, xmmword [rsp + 0x200]
aesdec xmm10, xmm3
aesdec xmm10, xmm8
aesdec xmm10, xmm14
aesdec xmm10, xmm6
movdqa xmm0, xmmword [rsp + 0xb0]
aesdec xmm10, xmm0
aesdec xmm10, xmm13
aesdec xmm10, xmm7
aesdec xmm10, xmm15
aesdeclast xmm10, xmm1
movdqa xmmword [rsp + 0x90], xmm10
movdqa xmm9, xmmword [rsp + 0x260]
pxor xmm9, xmm11
aesdec xmm9, xmm4
aesdec xmm9, xmm5
aesdec xmm9, xmm12
aesdec xmm9, xmmword [rsp + 0xe0]
aesdec xmm9, xmm2
aesdec xmm9, xmm3
aesdec xmm9, xmmword [rsp + 0x170]
aesdec xmm9, xmm14
aesdec xmm9, xmm6
aesdec xmm9, xmm0
aesdec xmm9, xmm13
aesdec xmm9, xmm7
aesdec xmm9, xmm15
aesdeclast xmm9, xmm1
movdqa xmmword [rsp + 0xa0], xmm9
cmp byte [rsp + 0x2f], 0
je 0x14003f030
movdqu xmm0, xmmword [r13]
pxor xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
cmp byte [rsp + 0x2e], 0
jne 0x14003f04d
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
xor rax, qword [rsp + 0x180]
xor rcx, qword [rsp + 0x188]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x40], xmm1
cmp byte [rsp + 0x2d], 0
jne 0x14003f06d
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
xor rax, qword [rsp + 0x190]
xor rcx, qword [rsp + 0x198]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x50], xmm1
cmp byte [rsp + 0x2c], 0
jne 0x14003f08d
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
xor rax, qword [rsp + 0x1a0]
xor rcx, qword [rsp + 0x1a8]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x60], xmm1
cmp byte [rsp + 0x2b], 0
jne 0x14003f0ad
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
xor rax, qword [rsp + 0x1b0]
xor rcx, qword [rsp + 0x1b8]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x70], xmm1
test bpl, bpl
jne 0x14003f0cb
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
xor rax, qword [rsp + 0x1c0]
xor rcx, qword [rsp + 0x1c8]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x80], xmm1
test r14b, r14b
jne 0x14003f0ef
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
xor rax, qword [rsp + 0x1d0]
xor rcx, qword [rsp + 0x1d8]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0x90], xmm1
test sil, sil
jne 0x14003e8b0
jmp 0x14003f113
mov rax, qword [r13]
xor qword [rsp + 0x30], rax
mov rax, qword [r13 + 8]
xor qword [rsp + 0x38], rax
cmp byte [rsp + 0x2e], 0
je 0x14003eec7
movdqa xmm0, xmmword [rsp + 0x40]
pxor xmm0, xmmword [rsp + 0x180]
movdqa xmmword [rsp + 0x40], xmm0
cmp byte [rsp + 0x2d], 0
je 0x14003ef00
movdqa xmm0, xmmword [rsp + 0x50]
pxor xmm0, xmmword [rsp + 0x190]
movdqa xmmword [rsp + 0x50], xmm0
cmp byte [rsp + 0x2c], 0
je 0x14003ef39
movdqa xmm0, xmmword [rsp + 0x60]
pxor xmm0, xmmword [rsp + 0x1a0]
movdqa xmmword [rsp + 0x60], xmm0
cmp byte [rsp + 0x2b], 0
je 0x14003ef72
movdqa xmm0, xmmword [rsp + 0x70]
pxor xmm0, xmmword [rsp + 0x1b0]
movdqa xmmword [rsp + 0x70], xmm0
test bpl, bpl
je 0x14003efa9
movdqa xmm0, xmmword [rsp + 0x80]
pxor xmm0, xmmword [rsp + 0x1c0]
movdqa xmmword [rsp + 0x80], xmm0
test r14b, r14b
je 0x14003efe9
movdqa xmm0, xmmword [rsp + 0x90]
pxor xmm0, xmmword [rsp + 0x1d0]
movdqa xmmword [rsp + 0x90], xmm0
test sil, sil
jne 0x14003e8b0
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
xor rax, qword [rsp + 0x1e0]
xor rcx, qword [rsp + 0x1e8]
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm1, xmm0
movdqa xmmword [rsp + 0xa0], xmm1
jmp 0x14003e8cb