Function at 0x180039740
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
mov rax, qword [0x180299d70]
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
test rax, rax
jne 0x180039770
call fcn.180048ce0
mov rax, qword [0x180299d70]
bt rax, 0x10
jae 0x180039794
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
jmp 0x180047d50
test rax, rax
jne 0x1800397a5
call fcn.180048ce0
mov rax, qword [0x180299d70]
test al, 2
je 0x1800397c6
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
jmp 0x180045b40
lea rax, [rbx + 0x50]
mov rdx, rdi
lea rcx, [rbx + 0x38]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea r9, [rbx + 0x20]
mov rcx, rsi
lea r8, [rbx + 8]
call fcn.180038c30
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov rax, rsp
mov qword [rax + 8], rbx
push rdi
sub rsp, 0xd0
movaps xmmword [rax - 0x18], xmm6
mov rbx, rcx
movdqu xmm6, xmmword [rdx]
mov edx, 0x2c
add rcx, 8
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm11
movdqa xmm11, xmmword [0x1801e8ef0]
movaps xmmword [rax - 0x78], xmm12
movaps xmmword [rsp + 0x50], xmm13
movaps xmmword [rsp + 0x40], xmm14
movaps xmmword [rsp + 0x30], xmm15
call fcn.180039a60
mov edx, 0x2c
lea rcx, [rbx + 0x20]
call fcn.180039a60
mov r11, qword [rbx + 8]
lea rdi, [0x180299d30]
mov rbx, qword [rbx + 0x20]
movdqa xmm0, xmm6
pshufb xmm0, xmmword [0x180299d50]
mov r8d, 1
lea r9, [r11 + 0x10]
lea r10, [rbx + 0x90]
movdqa xmm8, xmmword [0x180299cb0]
xorps xmm14, xmm14
movdqa xmm7, xmmword [0x180299ca0]
movdqa xmm1, xmm8
movdqa xmm12, xmmword [0x1801e8ec0]
pandn xmm1, xmm6
movdqa xmm15, xmmword [0x180299cd0]
movdqa xmm9, xmmword [0x180299c80]
movdqa xmm13, xmmword [0x180299cc0]
movdqa xmm10, xmmword [0x180299cf0]
movdqu xmmword [rbx + 0xa0], xmm0
psrld xmm1, 4
movdqa xmm0, xmm8
pshufb xmm7, xmm1
movdqa xmm1, xmmword [0x180299c90]
pand xmm0, xmm6
pshufb xmm1, xmm0
pxor xmm7, xmm1
movdqu xmmword [r11], xmm7
nop word [rax + rax]
pshufd xmm2, xmm7, 0xff
movdqa xmm0, xmm11
palignr xmm0, xmm11, 0xf
movdqa xmm5, xmm8
palignr xmm2, xmm2, 1
movdqa xmm1, xmm14
palignr xmm1, xmm11, 0xf
pandn xmm5, xmm2
pxor xmm1, xmm7
psrld xmm5, 4
movdqa xmm11, xmm0
movdqa xmm6, xmm1
pand xmm2, xmm8
pslldq xmm6, 4
pxor xmm6, xmm1
movdqa xmm4, xmm5
pxor xmm4, xmm2
movdqa xmm3, xmm15
pshufb xmm3, xmm2
movzx eax, r8b
neg al
movdqa xmm0, xmm9
movdqa xmm1, xmm9
movdqa xmm7, xmm13
pshufb xmm0, xmm4
pxor xmm0, xmm3
pshufb xmm1, xmm0
movdqa xmm0, xmm6
pslldq xmm0, 8
pxor xmm1, xmm5
pxor xmm0, xmm12
pxor xmm0, xmm6
movdqa xmm6, xmmword [0x180299ce0]
pshufb xmm7, xmm1
movdqa xmm1, xmm9
pxor xmm7, xmm0
movdqa xmm0, xmm9
pshufb xmm0, xmm5
pxor xmm0, xmm3
pshufb xmm1, xmm0
movdqa xmm0, xmm6
pxor xmm1, xmm4
pshufb xmm0, xmm1
movdqa xmm1, xmm12
pxor xmm7, xmm0
pxor xmm1, xmm7
pshufb xmm1, xmm10
movdqa xmm0, xmm1
pshufb xmm0, xmm10
movdqa xmm2, xmm0
pshufb xmm2, xmm10
pxor xmm2, xmm0
pxor xmm2, xmm1
and eax, 3
jge 0x180045d68
dec eax
or eax, 0xfffffffc
inc eax
movsxd rcx, eax
mov eax, 0xfe
add rcx, rcx
movdqa xmmword [rsp + 0x20], xmm7
sub al, r8b
and al, 3
movzx edx, al
pshufb xmm2, xmmword [rdi + rcx*8]
lea rcx, [rsp + 0x20]
movdqu xmmword [r9], xmm2
call fcn.1800451b0
movdqu xmmword [r10], xmm0
sub r10, 0x10
inc r8
add r9, 0x10
cmp r8, 0xa
jne 0x180045c60
movdqa xmm1, xmm9
palignr xmm14, xmm11, 0xf
pxor xmm14, xmm7
pshufd xmm0, xmm7, 0xff
palignr xmm0, xmm0, 1
movdqa xmm3, xmm8
pandn xmm3, xmm0
movdqa xmm4, xmm14
pand xmm0, xmm8
psrld xmm3, 4
pshufb xmm15, xmm0
movdqa xmm2, xmm3
pslldq xmm4, 4
pxor xmm2, xmm0
pxor xmm4, xmm14
movaps xmm14, xmmword [rsp + 0x40]
movdqa xmm0, xmm9
pshufb xmm0, xmm2
pxor xmm0, xmm15
pshufb xmm1, xmm0
movdqa xmm0, xmm4
pslldq xmm0, 8
pxor xmm1, xmm3
pxor xmm0, xmm12
pxor xmm0, xmm4
pshufb xmm13, xmm1
movdqa xmm1, xmmword [0x1801e9010]
pxor xmm13, xmm0
movdqa xmm0, xmm9
pshufb xmm0, xmm3
pxor xmm0, xmm15
movaps xmm15, xmmword [rsp + 0x30]
pshufb xmm9, xmm0
movdqa xmm0, xmm8
pxor xmm9, xmm2
movdqa xmm2, xmmword [0x1801e8fe0]
pshufb xmm6, xmm9
pxor xmm13, xmm6
movdqa xmm3, xmm13
pshufb xmm3, xmmword [0x180299d50]
pxor xmm3, xmm12
pxor xmm12, xmm13
pandn xmm0, xmm3
pand xmm3, xmm8
psrld xmm0, 4
pshufb xmm2, xmm0
pshufb xmm1, xmm3
movdqa xmm0, xmm8
pxor xmm2, xmm1
pandn xmm0, xmm12
movdqa xmm1, xmmword [0x1801e8e40]
pand xmm12, xmm8
movdqu xmmword [r11 + 0xa0], xmm2
lea r11, [rsp + 0xd0]
movdqa xmm2, xmmword [0x1801e8e60]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm13, xmmword [r11 - 0x80]
pshufb xmm1, xmm12
movaps xmm12, xmmword [r11 - 0x70]
psrld xmm0, 4
pshufb xmm2, xmm0
pxor xmm2, xmm1
movdqu xmmword [rbx], xmm2
mov rbx, qword [r11 + 0x10]
mov rsp, r11
pop rdi
ret
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
push rdi
sub rsp, 0x90
movaps xmmword [rax - 0x18], xmm6
mov rdi, rdx
movaps xmmword [rax - 0x28], xmm7
mov rbx, rcx
movaps xmmword [rax - 0x38], xmm8
mov edx, 0x2c
movaps xmmword [rax - 0x48], xmm9
add rcx, 8
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm11
movaps xmmword [rax - 0x78], xmm12
call fcn.180039a60
mov edx, 0x2c
lea rcx, [rbx + 0x20]
call fcn.180039a60
movdqu xmm12, xmmword [rdi]
movdqa xmm0, xmm12
pslldq xmm0, 4
pxor xmm0, xmm12
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm11, xmm1
pslldq xmm11, 4
pxor xmm11, xmm1
aeskeygenassist xmm0, xmm12, 1
pshufd xmm1, xmm0, 0xff
pxor xmm11, xmm1
movdqa xmm0, xmm11
pslldq xmm0, 4
pxor xmm0, xmm11
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm10, xmm1
pslldq xmm10, 4
pxor xmm10, xmm1
aeskeygenassist xmm0, xmm11, 2
pshufd xmm1, xmm0, 0xff
pxor xmm10, xmm1
movdqa xmm0, xmm10
pslldq xmm0, 4
pxor xmm0, xmm10
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm9, xmm1
pslldq xmm9, 4
pxor xmm9, xmm1
aeskeygenassist xmm0, xmm10, 4
pshufd xmm1, xmm0, 0xff
pxor xmm9, xmm1
movdqa xmm0, xmm9
pslldq xmm0, 4
pxor xmm0, xmm9
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm8, xmm1
pslldq xmm8, 4
pxor xmm8, xmm1
aeskeygenassist xmm0, xmm9, 8
pshufd xmm1, xmm0, 0xff
pxor xmm8, xmm1
movdqa xmm0, xmm8
pslldq xmm0, 4
pxor xmm0, xmm8
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm7, xmm1
pslldq xmm7, 4
pxor xmm7, xmm1
aeskeygenassist xmm0, xmm8, 0x10
pshufd xmm1, xmm0, 0xff
pxor xmm7, xmm1
movdqa xmm0, xmm7
pslldq xmm0, 4
pxor xmm0, xmm7
movdqa xmm1, xmm0
pslldq xmm1, 4
mov rax, qword [rbx + 8]
pxor xmm1, xmm0
movdqa xmm6, xmm1
pslldq xmm6, 4
pxor xmm6, xmm1
movdqu xmmword [rax], xmm12
movdqu xmmword [rax + 0x10], xmm11
movdqu xmmword [rax + 0x20], xmm10
movdqu xmmword [rax + 0x30], xmm9
movdqu xmmword [rax + 0x40], xmm8
movdqu xmmword [rax + 0x50], xmm7
aeskeygenassist xmm0, xmm7, 0x20
pshufd xmm1, xmm0, 0xff
pxor xmm6, xmm1
movdqu xmmword [rax + 0x60], xmm6
movdqa xmm0, xmm6
pslldq xmm0, 4
pxor xmm0, xmm6
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm5, xmm1
pslldq xmm5, 4
pxor xmm5, xmm1
aeskeygenassist xmm0, xmm6, 0x40
pshufd xmm1, xmm0, 0xff
pxor xmm5, xmm1
movdqu xmmword [rax + 0x70], xmm5
movdqa xmm0, xmm5
pslldq xmm0, 4
pxor xmm0, xmm5
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm4, xmm1
pslldq xmm4, 4
pxor xmm4, xmm1
aeskeygenassist xmm0, xmm5, 0x80
pshufd xmm1, xmm0, 0xff
pxor xmm4, xmm1
movdqu xmmword [rax + 0x80], xmm4
movdqa xmm0, xmm4
pslldq xmm0, 4
pxor xmm0, xmm4
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm3, xmm1
pslldq xmm3, 4
pxor xmm3, xmm1
aeskeygenassist xmm0, xmm4, 0x1b
pshufd xmm1, xmm0, 0xff
pxor xmm3, xmm1
movdqu xmmword [rax + 0x90], xmm3
movdqa xmm0, xmm3
pslldq xmm0, 4
pxor xmm0, xmm3
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
aeskeygenassist xmm0, xmm3, 0x36
pshufd xmm1, xmm0, 0xff
pxor xmm2, xmm1
movdqu xmmword [rax + 0xa0], xmm2
mov rax, qword [rbx + 0x20]
aesimc xmm0, xmm3
aesimc xmm1, xmm4
movdqu xmmword [rax], xmm2
movdqu xmmword [rax + 0x10], xmm0
movdqu xmmword [rax + 0x20], xmm1
aesimc xmm0, xmm5
movdqu xmmword [rax + 0x30], xmm0
aesimc xmm1, xmm6
movdqu xmmword [rax + 0x40], xmm1
aesimc xmm0, xmm7
aesimc xmm1, xmm8
movdqu xmmword [rax + 0x50], xmm0
movdqu xmmword [rax + 0x60], xmm1
movaps xmm7, xmmword [rsp + 0x70]
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm8, xmmword [r11 - 0x30]
aesimc xmm0, xmm9
movaps xmm9, xmmword [r11 - 0x40]
movdqu xmmword [rax + 0x70], xmm0
aesimc xmm1, xmm10
movaps xmm10, xmmword [r11 - 0x50]
aesimc xmm0, xmm11
movaps xmm11, xmmword [r11 - 0x60]
movdqu xmmword [rax + 0x80], xmm1
movdqu xmmword [rax + 0x90], xmm0
movdqu xmmword [rax + 0xa0], xmm12
movaps xmm12, xmmword [r11 - 0x70]
mov rsp, r11
pop rdi
ret