Function at 0x180039800
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 0x180039830
call fcn.180048ce0
mov rax, qword [0x180299d70]
bt rax, 0x10
jae 0x180039854
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 0x1800480e0
test rax, rax
jne 0x180039865
call fcn.180048ce0
mov rax, qword [0x180299d70]
test al, 2
je 0x180039886
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 0x180045f30
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
mov qword [rax + 0x10], rsi
push rdi
sub rsp, 0xd0
movaps xmmword [rax - 0x18], xmm6
mov rsi, rdx
movaps xmmword [rax - 0x28], xmm7
mov rbx, rcx
movaps xmmword [rax - 0x38], xmm8
mov edx, 0x34
movaps xmmword [rax - 0x48], xmm9
add rcx, 8
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm11
movaps xmmword [rax - 0x78], xmm12
movaps xmmword [rsp + 0x50], xmm13
movdqa xmm13, xmmword [0x1801e8ef0]
movaps xmmword [rsp + 0x40], xmm14
movaps xmmword [rsp + 0x30], xmm15
call fcn.180039a60
mov edx, 0x34
lea rcx, [rbx + 0x20]
call fcn.180039a60
movdqu xmm2, xmmword [rsi]
xor r9d, r9d
mov r10, qword [rbx + 0x20]
movdqa xmm10, xmmword [0x180299cb0]
xorps xmm15, xmm15
movdqu xmm4, xmmword [rsi + 8]
mov rdi, qword [rbx + 8]
lea rbx, [0x180299d30]
movdqa xmm5, xmmword [0x180299ca0]
movdqa xmm1, xmm10
movdqa xmm3, xmmword [0x180299c90]
pandn xmm1, xmm2
movdqa xmm14, xmmword [0x180299d30]
movdqa xmm8, xmm5
movdqa xmm11, xmmword [0x1801e8ec0]
movdqa xmm0, xmm2
movdqa xmm12, xmmword [0x180299c80]
movdqa xmm9, xmmword [0x180299cf0]
pshufb xmm0, xmm14
psrld xmm1, 4
movdqu xmmword [r10 + 0xc0], xmm0
pshufb xmm8, xmm1
movdqa xmm0, xmm3
movdqa xmm1, xmm10
pand xmm1, xmm2
pshufb xmm0, xmm1
pxor xmm8, xmm0
movdqa xmm0, xmm10
pandn xmm0, xmm4
psrld xmm0, 4
pshufb xmm5, xmm0
movdqa xmm0, xmm10
pand xmm0, xmm4
pshufb xmm3, xmm0
movdqu xmmword [rdi], xmm8
pxor xmm5, xmm3
movdqa xmm7, xmm5
psrldq xmm7, 8
pslldq xmm7, 8
nop dword [rax + rax]
movdqa xmm3, xmmword [0x180299cd0]
lea eax, [r9 - 1]
pshufd xmm2, xmm5, 0xff
lea r11, [r9 + r9*2]
palignr xmm2, xmm2, 1
movdqa xmm0, xmm13
palignr xmm0, xmm13, 0xf
movdqa xmm5, xmm10
pandn xmm5, xmm2
movzx ecx, al
pand xmm2, xmm10
psrld xmm5, 4
pshufb xmm3, xmm2
shl r11, 4
mov eax, ecx
movdqa xmm1, xmm15
movdqa xmm4, xmm5
palignr xmm1, xmm13, 0xf
movdqa xmm13, xmm0
pxor xmm1, xmm8
movdqa xmm8, xmmword [0x180299cc0]
movdqa xmm6, xmm1
pxor xmm4, xmm2
pslldq xmm6, 4
movdqa xmm0, xmm12
pxor xmm6, xmm1
movdqa xmm1, xmm12
pshufb xmm0, xmm4
pxor xmm0, xmm3
pshufb xmm1, xmm0
movdqa xmm0, xmm6
pslldq xmm0, 8
pxor xmm1, xmm5
pxor xmm0, xmm11
pxor xmm0, xmm6
pshufb xmm8, xmm1
movdqa xmm1, xmm12
pxor xmm8, xmm0
movdqa xmm0, xmm12
pshufb xmm0, xmm5
pxor xmm0, xmm3
pshufb xmm1, xmm0
movdqa xmm0, xmmword [0x180299ce0]
pxor xmm1, xmm4
pshufb xmm0, xmm1
pxor xmm8, xmm0
movdqa xmm3, xmm8
palignr xmm3, xmm7, 8
movdqa xmm1, xmm3
pxor xmm1, xmm11
pshufb xmm1, xmm9
movdqa xmm0, xmm1
pshufb xmm0, xmm9
movdqa xmm2, xmm0
pshufb xmm2, xmm9
pxor xmm2, xmm0
pxor xmm2, xmm1
and eax, 3
jge 0x1800461a5
dec eax
or eax, 0xfffffffc
inc eax
and cl, 3
cdqe
add rax, rax
movdqa xmmword [rsp + 0x20], xmm3
movzx edx, cl
mov r8, r10
lea rcx, [rsp + 0x20]
sub r8, r11
pshufb xmm2, xmmword [rbx + rax*8]
movdqu xmmword [r11 + rdi + 0x10], xmm2
call fcn.1800451b0
pshufd xmm1, xmm7, 0x80
lea eax, [r9 - 2]
movdqu xmmword [r8 + 0xb0], xmm0
movzx ecx, al
pshufd xmm6, xmm8, 0xfe
mov eax, ecx
pxor xmm6, xmm1
movdqa xmm1, xmm11
pxor xmm6, xmm7
pxor xmm1, xmm6
pshufb xmm1, xmm9
movdqa xmm0, xmm1
pshufb xmm0, xmm9
movdqa xmm2, xmm0
pshufb xmm2, xmm9
pxor xmm2, xmm0
pxor xmm2, xmm1
and eax, 3
jge 0x18004622f
dec eax
or eax, 0xfffffffc
inc eax
and cl, 3
cdqe
add rax, rax
movdqa xmmword [rsp + 0x20], xmm6
movzx edx, cl
lea rcx, [rsp + 0x20]
pshufb xmm2, xmmword [rbx + rax*8]
movdqu xmmword [r11 + rdi + 0x20], xmm2
call fcn.1800451b0
movdqa xmm2, xmmword [0x180299cd0]
movdqa xmm4, xmm10
movdqa xmm1, xmm15
palignr xmm1, xmm13, 0xf
palignr xmm13, xmm13, 0xf
pxor xmm1, xmm8
movdqa xmm8, xmmword [0x180299cc0]
movdqa xmm5, xmm1
pslldq xmm5, 4
pxor xmm5, xmm1
movdqa xmm1, xmm12
movdqu xmmword [r8 + 0xa0], xmm0
pshufd xmm0, xmm6, 0xff
palignr xmm0, xmm0, 1
pandn xmm4, xmm0
pand xmm0, xmm10
psrld xmm4, 4
movdqa xmm3, xmm4
pxor xmm3, xmm0
pshufb xmm2, xmm0
movdqa xmm0, xmm12
pshufb xmm0, xmm3
pxor xmm0, xmm2
pshufb xmm1, xmm0
movdqa xmm0, xmm5
pslldq xmm0, 8
pxor xmm1, xmm4
pxor xmm0, xmm11
pxor xmm0, xmm5
pshufb xmm8, xmm1
movdqa xmm1, xmm12
pxor xmm8, xmm0
movdqa xmm0, xmm12
pshufb xmm0, xmm4
pxor xmm0, xmm2
pshufb xmm1, xmm0
movdqa xmm0, xmmword [0x180299ce0]
pxor xmm1, xmm3
pshufb xmm0, xmm1
pxor xmm8, xmm0
cmp r9, 3
jne 0x1800463bd
movdqa xmm2, xmmword [0x1801e8fe0]
movdqa xmm3, xmm8
movdqa xmm1, xmmword [0x1801e9010]
movdqa xmm0, xmm10
pshufb xmm3, xmm14
pxor xmm3, xmm11
pandn xmm0, xmm3
pand xmm3, xmm10
pshufb xmm1, xmm3
movdqa xmm3, xmmword [0x1801e8e60]
psrld xmm0, 4
pshufb xmm2, xmm0
movdqa xmm0, xmm10
pxor xmm2, xmm1
movdqa xmm1, xmmword [0x1801e8e40]
movdqu xmmword [rdi + 0xc0], xmm2
movdqa xmm2, xmm11
pxor xmm2, xmm8
pandn xmm0, xmm2
pand xmm2, xmm10
psrld xmm0, 4
pshufb xmm3, xmm0
pshufb xmm1, xmm2
pxor xmm3, xmm1
movdqu xmmword [r10], xmm3
jmp 0x18004643a
lea eax, [r9 + 1]
movdqa xmm1, xmm11
movzx edx, al
pxor xmm1, xmm8
pshufb xmm1, xmm9
mov eax, edx
movdqa xmm0, xmm1
pshufb xmm0, xmm9
movdqa xmm2, xmm0
pshufb xmm2, xmm9
pxor xmm2, xmm0
pxor xmm2, xmm1
and eax, 3
jge 0x1800463fe
dec eax
or eax, 0xfffffffc
inc eax
movsxd rcx, eax
and dl, 3
add rcx, rcx
movdqa xmmword [rsp + 0x20], xmm8
mov eax, 3
sub rax, r9
pshufb xmm2, xmmword [rbx + rcx*8]
lea rcx, [rsp + 0x20]
lea r8, [rax + rax*2]
add r8, r8
movdqu xmmword [r11 + rdi + 0x30], xmm2
call fcn.1800451b0
movdqu xmmword [r10 + r8*8], xmm0
psrldq xmm6, 8
inc r9
pslldq xmm6, 8
pshufd xmm5, xmm6, 0x80
pshufd xmm0, xmm8, 0xfe
pxor xmm5, xmm0
pxor xmm5, xmm6
movdqa xmm7, xmm5
psrldq xmm7, 8
pslldq xmm7, 8
cmp r9, 4
jne 0x180046080
movaps xmm14, xmmword [rsp + 0x40]
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
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 xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm15, xmmword [rsp + 0x30]
mov rsp, r11
pop rdi
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rdi, rdx
mov rbx, rcx
mov edx, 0x34
add rcx, 8
call fcn.180039a60
mov edx, 0x34
lea rcx, [rbx + 0x20]
call fcn.180039a60
movdqu xmm2, xmmword [rdi]
mov rax, qword [rbx + 8]
movdqu xmm3, xmmword [rdi + 8]
movdqa xmm0, xmm2
movups xmmword [rax], xmm2
movsd xmm1, qword [rdi + 0x10]
movsd qword [rax + 0x10], xmm1
mov rcx, qword [rbx + 8]
pslldq xmm0, 4
pxor xmm0, xmm2
psrldq xmm3, 8
movdqa xmm1, xmm0
movdqa xmm4, xmm3
pslldq xmm1, 4
pxor xmm1, xmm0
pslldq xmm4, 4
movdqa xmm2, xmm1
pxor xmm4, xmm3
pslldq xmm2, 4
pxor xmm2, xmm1
aeskeygenassist xmm0, xmm3, 1
pshufd xmm1, xmm0, 0x55
pxor xmm2, xmm1
movdqu xmmword [rcx + 0x18], xmm2
pshufd xmm0, xmm2, 0xff
pxor xmm4, xmm0
movd dword [rcx + 0x28], xmm4
movdqa xmm0, xmm4
psrldq xmm0, 4
movdqa xmm3, xmm4
movd dword [rcx + 0x2c], xmm0
movdqa xmm0, xmm2
mov rcx, qword [rbx + 8]
pslldq xmm0, 4
pxor xmm0, xmm2
pslldq xmm3, 4
movdqa xmm1, xmm0
pxor xmm3, xmm4
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
aeskeygenassist xmm0, xmm4, 2
pshufd xmm1, xmm0, 0x55
pxor xmm2, xmm1
movdqu xmmword [rcx + 0x30], xmm2
pshufd xmm0, xmm2, 0xff
pxor xmm3, xmm0
movd dword [rcx + 0x40], xmm3
movdqa xmm0, xmm3
psrldq xmm0, 4
movdqa xmm4, xmm3
movd dword [rcx + 0x44], xmm0
movdqa xmm0, xmm2
mov rcx, qword [rbx + 8]
pslldq xmm0, 4
pxor xmm0, xmm2
pslldq xmm4, 4
movdqa xmm1, xmm0
pxor xmm4, xmm3
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm2, xmm1
pslldq xmm2, 4
aeskeygenassist xmm0, xmm3, 4
pxor xmm2, xmm1
pshufd xmm1, xmm0, 0x55
pxor xmm2, xmm1
pshufd xmm0, xmm2, 0xff
pxor xmm4, xmm0
movdqu xmmword [rcx + 0x48], xmm2
movd dword [rcx + 0x58], xmm4
movdqa xmm0, xmm4
movdqa xmm3, xmm4
psrldq xmm0, 4
movd dword [rcx + 0x5c], xmm0
movdqa xmm0, xmm2
mov rcx, qword [rbx + 8]
pslldq xmm0, 4
pxor xmm0, xmm2
pslldq xmm3, 4
movdqa xmm1, xmm0
pxor xmm3, xmm4
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
aeskeygenassist xmm0, xmm4, 8
pshufd xmm1, xmm0, 0x55
pxor xmm2, xmm1
movdqu xmmword [rcx + 0x60], xmm2
pshufd xmm0, xmm2, 0xff
pxor xmm3, xmm0
movd dword [rcx + 0x70], xmm3
movdqa xmm0, xmm3
psrldq xmm0, 4
movdqa xmm4, xmm3
movd dword [rcx + 0x74], xmm0
movdqa xmm0, xmm2
mov rcx, qword [rbx + 8]
pslldq xmm0, 4
pxor xmm0, xmm2
pslldq xmm4, 4
movdqa xmm1, xmm0
pxor xmm4, xmm3
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
aeskeygenassist xmm0, xmm3, 0x10
pshufd xmm1, xmm0, 0x55
pxor xmm2, xmm1
movdqu xmmword [rcx + 0x78], xmm2
pshufd xmm0, xmm2, 0xff
pxor xmm4, xmm0
movd dword [rcx + 0x88], xmm4
movdqa xmm0, xmm4
psrldq xmm0, 4
movdqa xmm5, xmm4
movd dword [rcx + 0x8c], xmm0
movdqa xmm0, xmm2
mov rcx, qword [rbx + 8]
pslldq xmm0, 4
pxor xmm0, xmm2
pslldq xmm5, 4
movdqa xmm1, xmm0
pxor xmm5, xmm4
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
aeskeygenassist xmm0, xmm4, 0x20
pshufd xmm1, xmm0, 0x55
pxor xmm2, xmm1
movdqu xmmword [rcx + 0x90], xmm2
pshufd xmm0, xmm2, 0xff
pxor xmm5, xmm0
movdqa xmm0, xmm5
movd dword [rcx + 0xa0], xmm5
psrldq xmm0, 4
movd dword [rcx + 0xa4], xmm0
movdqa xmm0, xmm2
mov rcx, qword [rbx + 8]
pslldq xmm0, 4
pxor xmm0, xmm2
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm2, xmm1
pslldq xmm2, 4
mov rsi, qword [rsp + 0x38]
pxor xmm2, xmm1
aeskeygenassist xmm0, xmm5, 0x40
pshufd xmm1, xmm0, 0x55
movdqa xmm3, xmm5
pxor xmm2, xmm1
pslldq xmm3, 4
movdqu xmmword [rcx + 0xa8], xmm2
pshufd xmm0, xmm2, 0xff
pxor xmm3, xmm5
pxor xmm3, xmm0
movd dword [rcx + 0xb8], xmm3
movdqa xmm0, xmm3
psrldq xmm0, 4
movd dword [rcx + 0xbc], xmm0
movdqa xmm0, xmm2
mov rax, qword [rbx + 8]
pslldq xmm0, 4
pxor xmm0, xmm2
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
aeskeygenassist xmm0, xmm3, 0x80
pshufd xmm1, xmm0, 0x55
pxor xmm2, xmm1
movdqu xmmword [rax + 0xc0], xmm2
mov rax, qword [rbx + 8]
mov rcx, qword [rbx + 0x20]
mov rbx, qword [rsp + 0x30]
movdqu xmm0, xmmword [rax + 0xc0]
movdqu xmmword [rcx], xmm0
movdqu xmm0, xmmword [rax + 0xb0]
aesimc xmm1, xmm0
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmm0, xmmword [rax + 0xa0]
aesimc xmm1, xmm0
movdqu xmmword [rcx + 0x20], xmm1
movdqu xmm0, xmmword [rax + 0x90]
aesimc xmm1, xmm0
movdqu xmmword [rcx + 0x30], xmm1
movdqu xmm0, xmmword [rax + 0x80]
aesimc xmm1, xmm0
movdqu xmmword [rcx + 0x40], xmm1
movdqu xmm0, xmmword [rax + 0x70]
aesimc xmm1, xmm0
movdqu xmmword [rcx + 0x50], xmm1
movdqu xmm0, xmmword [rax + 0x60]
aesimc xmm1, xmm0
movdqu xmmword [rcx + 0x60], xmm1
movdqu xmm0, xmmword [rax + 0x50]
aesimc xmm1, xmm0
movdqu xmmword [rcx + 0x70], xmm1
movdqu xmm0, xmmword [rax + 0x40]
aesimc xmm1, xmm0
movdqu xmmword [rcx + 0x80], xmm1
movdqu xmm0, xmmword [rax + 0x30]
aesimc xmm1, xmm0
movdqu xmmword [rcx + 0x90], xmm1
movdqu xmm0, xmmword [rax + 0x20]
aesimc xmm1, xmm0
movdqu xmmword [rcx + 0xa0], xmm1
movdqu xmm0, xmmword [rax + 0x10]
aesimc xmm1, xmm0
movdqu xmmword [rcx + 0xb0], xmm1
movdqu xmm0, xmmword [rax]
movdqu xmmword [rcx + 0xc0], xmm0
add rsp, 0x20
pop rdi
ret