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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x409115
sub rsp, 0x50
mov qword [rsp + 0x48], rbp
lea rbp, [rsp + 0x48]
xor rbx, qword [0x00518ee0]
movabs rdx, 0xa0761d6478bd642f
xor rbx, rdx
test rcx, rcx
je 0x408eaa
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x58], rax
cmp rcx, 4
jb 0x408e55
je 0x408e46
cmp rcx, 8
jb 0x408e12
je 0x408e00
nop dword [rax]
cmp rcx, 0x10
jbe 0x408dc5
cmp rcx, 0x30
jbe 0x408dba
mov rdx, rcx
mov rsi, rbx
mov rdi, rsi
jmp 0x409100
mov rdx, rcx
nop dword [rax]
jmp 0x408f5d
call fcn.004092e0
mov qword [rsp + 0x28], rax
mov rbx, qword [rsp + 0x68]
lea rcx, [rbx - 8]
mov rax, qword [rsp + 0x58]
mov rbx, rcx
call fcn.0044c180
call fcn.004092e0
mov rcx, rax
mov rdx, qword [rsp + 0x18]
mov rax, qword [rsp + 0x28]
jmp 0x408eb7
call fcn.004092e0
mov rcx, rax
mov rdx, qword [rsp + 0x18]
jmp 0x408eb7
call fcn.004092a0
mov qword [rsp + 0x28], rax
mov rbx, qword [rsp + 0x68]
lea rcx, [rbx - 4]
mov rax, qword [rsp + 0x58]
mov rbx, rcx
call fcn.0044c180
call fcn.004092a0
mov rcx, rax
mov rdx, qword [rsp + 0x18]
mov rax, qword [rsp + 0x28]
jmp 0x408eb7
call fcn.004092a0
mov rcx, rax
mov rdx, qword [rsp + 0x18]
jmp 0x408eb7
movzx edx, byte [rax]
mov qword [rsp + 0x38], rdx
mov rbx, rcx
shr rbx, 1
call fcn.0044c180
movzx ecx, byte [rax]
mov qword [rsp + 0x30], rcx
mov rbx, qword [rsp + 0x68]
lea rdx, [rbx - 1]
mov rax, qword [rsp + 0x58]
mov rbx, rdx
call fcn.0044c180
mov rcx, qword [rsp + 0x30]
shl rcx, 8
mov rdx, qword [rsp + 0x38]
or rcx, rdx
movzx eax, byte [rax]
shl rax, 0x10
or rax, rcx
xor ecx, ecx
mov rdx, qword [rsp + 0x18]
jmp 0x408eb7
mov rax, rbx
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
ret
movabs rsi, 0xe7037ed1a0b428db
xor rax, rsi
xor rdx, rcx
mov rbx, rdx
call fcn.00409280
movabs rcx, 0x1d8e4e27c47d124f
mov rdx, qword [rsp + 0x68]
xor rcx, rdx
mov rbx, rax
mov rax, rcx
call fcn.00409280
mov rbp, qword [rsp + 0x48]
add rsp, 0x50
ret
call fcn.004092e0
mov qword [rsp + 0x30], rax
mov ebx, 8
mov rax, qword [rsp + 0x40]
call fcn.0044c180
call fcn.004092e0
mov rcx, qword [rsp + 0x30]
movabs rdx, 0xe7037ed1a0b428db
xor rcx, rdx
mov rbx, qword [rsp + 0x38]
xor rbx, rax
mov rax, rcx
call fcn.00409280
mov qword [rsp + 0x38], rax
mov ebx, 0x10
mov rax, qword [rsp + 0x40]
call fcn.0044c180
mov rcx, qword [rsp + 0x20]
add rcx, 0xfffffffffffffff0
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
cmp rcx, 0x10
ja 0x408ef6
lea rbx, [rcx - 0x10]
call fcn.0044c180
nop dword [rax + rax]
call fcn.004092e0
mov qword [rsp + 0x28], rax
mov rbx, qword [rsp + 0x20]
add rbx, 0xfffffffffffffff8
mov rax, qword [rsp + 0x40]
call fcn.0044c180
nop dword [rax]
call fcn.004092e0
mov rcx, rax
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x28]
jmp 0x408eb7
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x38], rbx
call fcn.004092e0
mov qword [rsp + 0x30], rax
mov ebx, 8
mov rax, qword [rsp + 0x40]
call fcn.0044c180
call fcn.004092e0
movabs rcx, 0xe7037ed1a0b428db
mov rdx, qword [rsp + 0x30]
xor rdx, rcx
mov rbx, qword [rsp + 0x38]
xor rbx, rax
mov rax, rdx
call fcn.00409280
mov qword [rsp + 0x38], rax
mov ebx, 0x10
mov rax, qword [rsp + 0x40]
nop
call fcn.0044c180
call fcn.004092e0
mov qword [rsp + 0x30], rax
mov ebx, 0x18
mov rax, qword [rsp + 0x40]
call fcn.0044c180
nop
call fcn.004092e0
movabs rcx, 0x8ebc6af09c88c6e3
mov rdx, qword [rsp + 0x30]
xor rdx, rcx
mov rbx, qword [rsp + 0x18]
xor rbx, rax
mov rax, rdx
call fcn.00409280
mov qword [rsp + 0x18], rax
mov ebx, 0x20
mov rax, qword [rsp + 0x40]
call fcn.0044c180
nop dword [rax + rax]
call fcn.004092e0
mov qword [rsp + 0x30], rax
mov ebx, 0x28
mov rax, qword [rsp + 0x40]
call fcn.0044c180
call fcn.004092e0
movabs rcx, 0x589965cc75374cc3
mov rdx, qword [rsp + 0x30]
xor rdx, rcx
mov rbx, qword [rsp + 0x10]
xor rbx, rax
mov rax, rdx
nop dword [rax + rax]
call fcn.00409280
mov qword [rsp + 0x10], rax
mov ebx, 0x30
mov rax, qword [rsp + 0x40]
call fcn.0044c180
mov rcx, qword [rsp + 0x20]
add rcx, 0xffffffffffffffd0
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
nop word [rax + rax]
nop
cmp rcx, 0x30
ja 0x408fb7
xor rdi, rsi
xor rbx, rdi
jmp 0x408f5d
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
call fcn.0045c2c0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp 0x408d40
movq xmm0, rbx
pinsrw xmm0, ecx, 4
pshufhw xmm0, xmm0, 0
movdqa xmm1, xmm0
pxor xmm0, xmmword [0x00519220]
aesenc xmm0, xmm0
cmp rcx, 0x10
jb 0x45b412
je 0x45b471
cmp rcx, 0x20
jbe 0x45b477
cmp rcx, 0x40
jbe 0x45b4be
cmp rcx, 0x80
jbe 0x45b560
jmp 0x45b6ec
test rcx, rcx
je 0x45b466
add rax, 0x10
test ax, 0xff0
je 0x45b44e
movdqu xmm1, xmmword [rax - 0x10]
add rcx, rcx
lea rax, [0x0047bc40]
pand xmm1, xmmword [rax + rcx*8]
pxor xmm1, xmm0
aesenc xmm1, xmm1
aesenc xmm1, xmm1
aesenc xmm1, xmm1
movq rax, xmm1
ret
movdqu xmm1, xmmword [rax + rcx - 0x20]
add rcx, rcx
lea rax, [0x0047bd40]
pshufb xmm1, xmmword [rax + rcx*8]
jmp 0x45b435
aesenc xmm0, xmm0
movq rax, xmm0
ret
movdqu xmm1, xmmword [rax]
jmp 0x45b435
pxor xmm1, xmmword [0x00519230]
aesenc xmm1, xmm1
movdqu xmm2, xmmword [rax]
movdqu xmm3, xmmword [rax + rcx - 0x10]
pxor xmm2, xmm0
pxor xmm3, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm2, xmm2
aesenc xmm3, xmm3
pxor xmm2, xmm3
movq rax, xmm2
ret
movdqa xmm2, xmm1
movdqa xmm3, xmm1
pxor xmm1, xmmword [0x00519230]
pxor xmm2, xmmword [0x00519240]
pxor xmm3, xmmword [0x00519250]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
movdqu xmm4, xmmword [rax]
movdqu xmm5, xmmword [rax + 0x10]
movdqu xmm6, xmmword [rax + rcx - 0x20]
movdqu xmm7, xmmword [rax + rcx - 0x10]
pxor xmm4, xmm0
pxor xmm5, xmm1
pxor xmm6, xmm2
pxor xmm7, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
pxor xmm4, xmm6
pxor xmm5, xmm7
pxor xmm4, xmm5
movq rax, xmm4
ret
movdqa xmm2, xmm1
movdqa xmm3, xmm1
movdqa xmm4, xmm1
movdqa xmm5, xmm1
movdqa xmm6, xmm1
movdqa xmm7, xmm1
pxor xmm1, xmmword [0x00519230]
pxor xmm2, xmmword [0x00519240]
pxor xmm3, xmmword [0x00519250]
pxor xmm4, xmmword [0x00519260]
pxor xmm5, xmmword [0x00519270]
pxor xmm6, xmmword [0x00519280]
pxor xmm7, xmmword [0x00519290]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
movdqu xmm8, xmmword [rax]
movdqu xmm9, xmmword [rax + 0x10]
movdqu xmm10, xmmword [rax + 0x20]
movdqu xmm11, xmmword [rax + 0x30]
movdqu xmm12, xmmword [rax + rcx - 0x40]
movdqu xmm13, xmmword [rax + rcx - 0x30]
movdqu xmm14, xmmword [rax + rcx - 0x20]
movdqu xmm15, xmmword [rax + rcx - 0x10]
pxor xmm8, xmm0
pxor xmm9, xmm1
pxor xmm10, xmm2
pxor xmm11, xmm3
pxor xmm12, xmm4
pxor xmm13, xmm5
pxor xmm14, xmm6
pxor xmm15, xmm7
aesenc xmm8, xmm8
aesenc xmm9, xmm9
aesenc xmm10, xmm10
aesenc xmm11, xmm11
aesenc xmm12, xmm12
aesenc xmm13, xmm13
aesenc xmm14, xmm14
aesenc xmm15, xmm15
aesenc xmm8, xmm8
aesenc xmm9, xmm9
aesenc xmm10, xmm10
aesenc xmm11, xmm11
aesenc xmm12, xmm12
aesenc xmm13, xmm13
aesenc xmm14, xmm14
aesenc xmm15, xmm15
aesenc xmm8, xmm8
aesenc xmm9, xmm9
aesenc xmm10, xmm10
aesenc xmm11, xmm11
aesenc xmm12, xmm12
aesenc xmm13, xmm13
aesenc xmm14, xmm14
aesenc xmm15, xmm15
pxor xmm8, xmm12
pxor xmm9, xmm13
pxor xmm10, xmm14
pxor xmm11, xmm15
pxor xmm8, xmm10
pxor xmm9, xmm11
pxor xmm8, xmm9
pxor xmm15, xmm15
movq rax, xmm8
ret
movdqa xmm2, xmm1
movdqa xmm3, xmm1
movdqa xmm4, xmm1
movdqa xmm5, xmm1
movdqa xmm6, xmm1
movdqa xmm7, xmm1
pxor xmm1, xmmword [0x00519230]
pxor xmm2, xmmword [0x00519240]
pxor xmm3, xmmword [0x00519250]
pxor xmm4, xmmword [0x00519260]
pxor xmm5, xmmword [0x00519270]
pxor xmm6, xmmword [0x00519280]
pxor xmm7, xmmword [0x00519290]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
movdqu xmm8, xmmword [rax + rcx - 0x80]
movdqu xmm9, xmmword [rax + rcx - 0x70]
movdqu xmm10, xmmword [rax + rcx - 0x60]
movdqu xmm11, xmmword [rax + rcx - 0x50]
movdqu xmm12, xmmword [rax + rcx - 0x40]
movdqu xmm13, xmmword [rax + rcx - 0x30]
movdqu xmm14, xmmword [rax + rcx - 0x20]
movdqu xmm15, xmmword [rax + rcx - 0x10]
pxor xmm8, xmm0
pxor xmm9, xmm1
pxor xmm10, xmm2
pxor xmm11, xmm3
pxor xmm12, xmm4
pxor xmm13, xmm5
pxor xmm14, xmm6
pxor xmm15, xmm7
dec rcx
shr rcx, 7
aesenc xmm8, xmm8
aesenc xmm9, xmm9
aesenc xmm10, xmm10
aesenc xmm11, xmm11
aesenc xmm12, xmm12
aesenc xmm13, xmm13
aesenc xmm14, xmm14
aesenc xmm15, xmm15
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movdqu xmm2, xmmword [rax + 0x20]
movdqu xmm3, xmmword [rax + 0x30]
aesenc xmm8, xmm0
aesenc xmm9, xmm1
aesenc xmm10, xmm2
aesenc xmm11, xmm3
movdqu xmm4, xmmword [rax + 0x40]
movdqu xmm5, xmmword [rax + 0x50]
movdqu xmm6, xmmword [rax + 0x60]
movdqu xmm7, xmmword [rax + 0x70]
aesenc xmm12, xmm4
aesenc xmm13, xmm5
aesenc xmm14, xmm6
aesenc xmm15, xmm7
add rax, 0x80
dec rcx
jne 0x45b7c6
aesenc xmm8, xmm8
aesenc xmm9, xmm9
aesenc xmm10, xmm10
aesenc xmm11, xmm11
aesenc xmm12, xmm12
aesenc xmm13, xmm13
aesenc xmm14, xmm14
aesenc xmm15, xmm15
aesenc xmm8, xmm8
aesenc xmm9, xmm9
aesenc xmm10, xmm10
aesenc xmm11, xmm11
aesenc xmm12, xmm12
aesenc xmm13, xmm13
aesenc xmm14, xmm14
aesenc xmm15, xmm15
aesenc xmm8, xmm8
aesenc xmm9, xmm9
aesenc xmm10, xmm10
aesenc xmm11, xmm11
aesenc xmm12, xmm12
aesenc xmm13, xmm13
aesenc xmm14, xmm14
aesenc xmm15, xmm15
pxor xmm8, xmm12
pxor xmm9, xmm13
pxor xmm10, xmm14
pxor xmm11, xmm15
pxor xmm8, xmm10
pxor xmm9, xmm11
pxor xmm8, xmm9
pxor xmm15, xmm15
movq rax, xmm8
ret
cmp byte [0x00518c8d], 0
je 0x45e34e
jmp 0x45b3c0
jmp 0x408d40