Function at 0x4094f0
Capabilities:
Encrypt 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, 0x88
mov qword [rsp + 0x48], rdx
movzx eax, byte [0x0071b010]
cmp al, 1
je 0x409cfd
movzx eax, al
cmp eax, 0xff
je 0x409cea
mov r8, rcx
mov qword [rsp + 0x80], rcx
movzx eax, byte [rcx + 1]
shl eax, 0x10
movzx ecx, byte [rcx]
or rcx, rax
movzx eax, byte [r8 + 2]
shl rax, 0x20
or rax, rcx
movzx ecx, byte [r8 + 3]
shl rcx, 0x30
or rcx, rax
movzx eax, byte [r8 + 8]
shl eax, 8
or rax, rcx
movzx ecx, byte [r8 + 9]
shl ecx, 0x18
or rcx, rax
movzx edx, byte [r8 + 0xa]
shl rdx, 0x28
or rdx, rcx
movzx eax, byte [r8 + 0xb]
shl rax, 0x38
or rax, rdx
movzx ecx, byte [r8 + 5]
shl ecx, 0x10
movzx edx, byte [r8 + 4]
or rdx, rcx
movzx ecx, byte [r8 + 6]
shl rcx, 0x20
or rcx, rdx
movzx edx, byte [r8 + 7]
shl rdx, 0x30
or rdx, rcx
movzx ecx, byte [r8 + 0xc]
shl ecx, 8
or rcx, rdx
movzx edx, byte [r8 + 0xd]
shl edx, 0x18
or rdx, rcx
movzx ecx, byte [r8 + 0xe]
shl rcx, 0x28
or rcx, rdx
movzx r10d, byte [r8 + 0xf]
shl r10, 0x38
or r10, rcx
mov r9, rax
shr r9, 1
xor r9, rax
movabs rcx, 0x5555555555555555
and r9, rcx
mov r11, r9
xor r11, rax
add r9, r9
xor r9, rax
mov rdx, r10
shr rdx, 1
xor rdx, r10
and rdx, rcx
mov r8, rdx
xor r8, r10
add rdx, rdx
xor rdx, r10
mov rcx, r9
shr rcx, 2
xor rcx, r9
movabs rsi, 0x3333333333333333
and rcx, rsi
mov rax, rcx
xor rax, r9
shl rcx, 2
xor rcx, r9
mov r10, r11
shr r10, 2
xor r10, r11
and r10, rsi
mov r9, r10
xor r9, r11
shl r10, 2
xor r10, r11
mov rbp, rdx
shr rbp, 2
xor rbp, rdx
and rbp, rsi
mov r15, rbp
xor r15, rdx
shl rbp, 2
xor rbp, rdx
mov rdx, r8
shr rdx, 2
xor rdx, r8
and rdx, rsi
mov rsi, rdx
xor rsi, r8
shl rdx, 2
xor rdx, r8
mov r14, rcx
shr r14, 4
xor r14, rbp
movabs rdi, 0xf0f0f0f0f0f0f0f
and r14, rdi
xor rbp, r14
mov r8, r10
shr r8, 4
xor r8, rdx
and r8, rdi
xor rdx, r8
shl r8, 4
xor r8, r10
mov r12, rax
shr r12, 4
xor r12, r15
mov r10, rdi
and r12, rdi
xor r15, r12
shl r12, 4
xor r12, rax
mov rdi, r9
shr rdi, 4
xor rdi, rsi
and rdi, r10
mov rax, rdi
shl rax, 4
xor rax, r9
shl r14, 4
xor r14, rcx
xor rdi, rsi
mov rcx, rbp
xor rcx, r12
mov r9, rdi
xor r9, r8
mov r10, r9
mov r13, r9
mov qword [rsp + 0x20], r9
xor r10, rcx
mov qword [rsp + 0x38], r10
mov r9, rcx
mov qword [rsp + 0x70], rcx
xor rax, r10
mov rcx, rax
xor rcx, r12
mov r11, rcx
mov qword [rsp + 0x30], rcx
xor rax, r15
xor r15, rdx
mov rcx, rdi
xor rcx, rbp
mov qword [rsp + 0x78], rcx
mov r10, rax
xor r10, rcx
mov qword [rsp + 0x60], r10
mov rdx, r10
and rdx, rcx
xor r12, rdi
xor r11, r15
mov rcx, r11
xor rcx, r10
mov qword [rsp + 0x68], rcx
and rcx, r9
xor rcx, rdx
mov r9, r11
mov qword [rsp + 0x50], r11
and r9, r12
xor r9, rdx
mov rdx, r10
xor rdx, r14
mov rbx, rdx
mov qword [rsp + 0x58], rdx
mov rdx, r10
xor rdx, r15
mov rsi, rdx
and rsi, r13
xor r15, r14
mov r13, r15
xor r13, rdi
mov qword [rsp + 0x40], r13
mov r10, rbx
and r10, r13
xor r10, rdx
mov qword [rsp + 0x28], rdx
xor rdi, rsi
xor rdi, r10
mov r13, qword [rsp + 0x30]
mov rbx, r13
and rbx, qword [rsp + 0x38]
xor rbp, r15
mov r10, rbp
and r10, r14
xor r10, r12
xor r10, r11
xor r10, rbx
xor r10, r9
xor rdi, r9
xor r8, r15
mov r9, r8
and r9, r15
xor r9, rdx
xor r9, rsi
xor rax, rbx
mov rsi, r13
xor rsi, r14
mov rdx, r8
xor rdx, r12
mov rbx, rsi
and rbx, rdx
xor rax, rbx
xor r9, qword [rsp + 0x20]
xor r9, rcx
xor rax, rcx
mov rcx, r9
and rcx, rax
mov rbx, rcx
xor rbx, r10
mov r13, rdi
xor r13, r9
and r13, rbx
mov rbx, r13
xor rbx, rdi
xor r13, rcx
and r13, rdi
xor rdi, rcx
xor rax, r10
mov r11, rdi
and r11, rax
xor r11, r10
xor rdi, r13
and rdi, r11
xor rdi, rax
mov rax, rdi
xor rax, r11
mov rcx, qword [rsp + 0x28]
and rcx, rax
mov qword [rsp + 0x28], rcx
and rax, qword [rsp + 0x20]
mov qword [rsp + 0x20], rax
xor r13, r9
mov r9, qword [rsp + 0x30]
and r9, r13
mov rax, r13
and r13, qword [rsp + 0x38]
and r8, rdi
and r15, rdi
xor rax, rbx
xor rdi, rax
and rdx, rax
and rax, rsi
and qword [rsp + 0x40], r11
mov r10, qword [rsp + 0x58]
and r10, r11
xor r15, rcx
mov rcx, qword [rsp + 0x50]
and rcx, rdi
and r12, rdi
xor rax, r9
xor rax, r15
xor r11, rbx
xor rdi, r11
mov rsi, qword [rsp + 0x68]
and rsi, rdi
xor rsi, r15
and rdi, qword [rsp + 0x70]
mov r15, qword [rsp + 0x60]
and r15, r11
and r11, qword [rsp + 0x78]
and rbp, rbx
xor rdi, r11
xor rdx, rdi
xor rbp, rdx
xor rdx, r13
mov r13, rdx
and rbx, r14
xor rbx, r9
mov r9, r15
xor r9, rsi
xor rcx, rbx
xor rcx, qword [rsp + 0x20]
xor rcx, rsi
xor r11, r12
mov rdx, qword [rsp + 0x40]
xor rdx, rcx
xor rbp, rdx
xor r11, r9
xor r11, rdx
xor rax, r13
xor rbx, r10
xor rbx, qword [rsp + 0x28]
movabs r14, 0xf000ff000f0000
mov rdx, rax
shr rdx, 8
xor rdx, rax
and rdx, r14
mov r15, rdx
shl r15, 8
or r15, rdx
xor r8, rbx
xor rbx, rax
xor r15, rax
mov rsi, rax
xor rsi, r9
xor r8, rdi
xor rcx, r8
xor r8, qword [rsp + 0x20]
xor r13, r9
not r8
not rcx
not r11
not rsi
mov rax, r8
shr rax, 8
xor rax, r8
and rax, r14
mov rdx, rax
shl rdx, 8
or rdx, rax
xor rdx, r8
mov rax, rdx
shr rax, 4
xor rax, rdx
movabs rdi, 0xf0f00000f0f0000
and rax, rdi
mov r12, rax
shl r12, 4
or r12, rax
xor r12, rdx
mov rax, rcx
shr rax, 8
xor rax, rcx
and rax, r14
mov rdx, rax
shl rdx, 8
or rdx, rax
xor rdx, rcx
mov rax, rdx
shr rax, 4
xor rax, rdx
and rax, rdi
mov r9, rax
shl r9, 4
or r9, rax
xor r9, rdx
mov rax, rbp
shr rax, 8
xor rax, rbp
and rax, r14
mov r8, rax
shl r8, 8
or r8, rax
xor r8, rbp
mov rax, r8
shr rax, 4
xor rax, r8
and rax, rdi
mov rdx, rax
shl rdx, 4
or rdx, rax
xor rdx, r8
mov rax, rbx
shr rax, 8
xor rax, rbx
and rax, r14
mov r10, rax
shl r10, 8
or r10, rax
xor r10, rbx
mov rax, r10
shr rax, 4
xor rax, r10
and rax, rdi
mov r8, rax
shl r8, 4
or r8, rax
xor r8, r10
mov r10, r15
shr r10, 4
xor r10, r15
and r10, rdi
mov rax, r10
shl rax, 4
or rax, r10
xor rax, r15
mov r10, r11
shr r10, 8
xor r10, r11
and r10, r14
mov rbx, r10
shl rbx, 8
or rbx, r10
xor rbx, r11
mov rcx, rbx
shr rcx, 4
xor rcx, rbx
and rcx, rdi
mov r11, rcx
shl r11, 4
or r11, rcx
xor r11, rbx
mov rcx, rsi
shr rcx, 8
xor rcx, rsi
and rcx, r14
mov r10, rcx
shl r10, 8
or r10, rcx
xor r10, rsi
mov rcx, r10
shr rcx, 4
xor rcx, r10
and rcx, rdi
mov rsi, rcx
shl rsi, 4
or rsi, rcx
xor rsi, r10
mov rcx, r13
shr rcx, 8
xor rcx, r13
and rcx, r14
mov rbx, rcx
shl rbx, 8
or rbx, rcx
xor rbx, r13
mov rcx, rbx
shr rcx, 4
xor rcx, rbx
and rcx, rdi
mov r10, rcx
shl r10, 4
mov rdi, r12
rol rdi, 0x30
or r10, rcx
mov r15, r9
rol r15, 0x30
xor r10, rbx
mov r14, r10
rol r14, 0x30
xor r12, rdi
xor r9, r15
xor r10, r14
mov rbx, r9
rol rbx, 0x20
xor rbx, r12
rol r12, 0x20
xor rdi, r10
xor rdi, r12
mov rcx, rdx
rol rcx, 0x30
xor rdx, rcx
xor r9, rcx
mov r12, r8
rol r12, 0x30
xor r8, r12
mov r13, r8
rol r13, 0x20
xor r13, rdx
rol rdx, 0x20
xor r9, rdx
mov rdx, rax
rol rdx, 0x30
mov rbp, r11
rol rbp, 0x30
xor rax, rdx
xor r11, rbp
mov rcx, r11
rol rcx, 0x20
xor r8, rdx
xor rcx, rbp
xor rcx, rax
rol rax, 0x20
xor r8, rax
mov rax, rsi
rol rax, 0x30
xor rsi, rax
xor r11, rax
mov rax, r10
rol rax, 0x20
xor rax, rsi
rol rsi, 0x20
xor r11, rsi
xor rbx, r15
mov rdx, rdi
shr rdx, 1
xor rbx, rdx
xor rbx, r10
add rbx, rbx
movabs rdx, 0xaaaaaaaaaaaaaaaa
and rbx, rdx
xor rbx, rdi
mov rsi, r9
shr rsi, 1
xor r13, rsi
xor r8, r10
xor r10, r12
xor r10, r13
mov rsi, r8
shr rsi, 1
xor rcx, rsi
add rcx, rcx
and rcx, rdx
xor rcx, r8
add r10, r10
xor rax, r14
mov rdx, r11
shr rdx, 1
xor rax, rdx
movabs rdx, 0x2222222222222222
and r10, rdx
add rax, rax
and rax, rdx
xor r10, r9
mov rdx, rbx
shr rdx, 2
xor r10, rdx
shl r10, 2
movabs rdx, 0xcccccccccccccccc
and r10, rdx
xor r10, rbx
xor rax, r11
mov r8, rcx
shr r8, 2
xor rax, r8
shl rax, 2
and rax, rdx
xor rax, rcx
mov rcx, r10
shr rcx, 4
xor rcx, rax
movabs rdx, 0xf0f0f0f0f0f0f0f
and rcx, rdx
xor rax, rcx
shl rcx, 4
xor rcx, r10
mov edx, ecx
shr edx, 0x10
mov rsi, qword [rsp + 0x80]
mov byte [rsi], cl
mov byte [rsi + 1], dl
mov rdx, rcx
shr rdx, 0x20
mov byte [rsi + 2], dl
mov rdx, rcx
shr rdx, 0x30
mov byte [rsi + 3], dl
mov edx, eax
shr edx, 0x10
mov byte [rsi + 4], al
mov byte [rsi + 5], dl
mov rdx, rax
shr rdx, 0x20
mov byte [rsi + 6], dl
mov rdx, rax
shr rdx, 0x30
mov byte [rsi + 7], dl
mov byte [rsi + 8], ch
mov edx, ecx
shr edx, 0x18
mov byte [rsi + 9], dl
mov rdx, rcx
shr rdx, 0x28
mov byte [rsi + 0xa], dl
shr rcx, 0x38
mov byte [rsi + 0xb], cl
mov byte [rsi + 0xc], ah
mov ecx, eax
shr ecx, 0x18
mov byte [rsi + 0xd], cl
mov rcx, rax
shr rcx, 0x28
mov byte [rsi + 0xe], cl
shr rax, 0x38
mov byte [rsi + 0xf], al
mov rax, qword [rsp + 0x48]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rsi]
xorps xmm1, xmm0
movups xmmword [rsi], xmm1
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, rcx
call sym.aes::hazmat::aes_intrinsics::init_get::init_inner::hcf6fdf1679a15124
mov rcx, rsi
test al, al
je 0x409525
mov rdx, qword [rsp + 0x48]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sym.aes::ni::hazmat::cipher_round::hfbf889223051508e