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

Disassembly:
in al, dx
or al, 2
add byte [eax], al
and byte [eax + eax], cl
add byte [esi], cl
add al, byte [eax]
add byte [esi], al
or al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
inc eax
popal
je 0x405a36
add byte [eax], al
add byte [eax + 0x117], dh
add byte [eax], dh
push cs
add byte [eax], al
xchg esi, eax
add byte [eax], al
add byte [esi + ecx], dl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, al
jo 0x405a5f
popal
je 0x405a5f
add byte [eax], al
pop esp
insd dword es:[edi], dx
add byte [eax], al
add byte [eax + 0xf], dl
add byte [eax], al
outsb dx, byte [esi]
add byte [eax], al
add byte [edx + 0xe], ch
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
inc eax
xor byte cs:[eax], dh
arpl word [esi + 0x67], sp
add byte [eax], al
sub byte [eax], al
add byte [eax], al
add al, al
sldt word [eax]
add al, byte [eax]
add byte [eax], al
sbb byte [edi], cl
add byte [eax], al
sldt word [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x2e], al
js 0x405ab2
add byte [bx + si], al
add al, al
add byte es:[eax], al
add al, dl
sldt word [eax]
sub byte [eax], al
add byte [eax], al
sbb cl, byte [edi]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x2e], al
jb 0x405ad8
je 0x405ae5
insb byte es:[edi], dx
outsb dx, byte [esi]
pop esp
add byte [eax], al
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add al, byte [eax]
add byte [eax], al
inc edx
sldt word [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi], ch
je 0x405b07
jae 0x405a9d
add byte [eax], al
add byte [ecx], ch
add dword [eax], eax
add byte [eax], al
adc byte [eax], dl
add byte [eax], al
add al, byte [eax]
add byte [eax], al
inc esp
sldt word [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, al
jbe 0x405b32
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
shr byte [esi], 0x76
outsd dx, dword [esi]
insb byte es:[edi], dx
je 0x405b28
insb byte es:[edi], dx
add byte [eax + eax], al
add byte [eax], al
and byte [eax], dl
add byte [eax], al
add al, byte [eax]
add byte [eax], al
inc esi
sldt word [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
pop edi
push edx
add byte [eax], al
add byte [edi + 0x52], bl
inc esp
inc ecx
push esp
inc ecx
add byte [eax], al
hlt
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x2e], al
jb 0x405b86
jb 0x405b78
add byte [eax], al
add byte [eax + 9], bh
add byte [eax], al
add byte [eax + 0x10], al
add byte [eax], al
or al, byte [eax]
add byte [eax], al
dec edx
sldt word [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x2e], al
jb 0x405ba0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
inc eax
jb 0x405ba0
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [eax], ax
add byte [eax + 0x12], ch
push 0x12
push eax
adc byte [eax], al
add byte [eax + eax], dl
add byte [eax], al
push esp
sldt word [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edi], cl
adc byte [ecx], dl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
movups xmm2, xmmword [ecx]
inc ecx
mov eax, dword [eax + 0xf0]
inc ecx
movups xmm0, xmmword [eax]
inc ecx
movups xmm1, xmmword [eax + 0x10]
dec ebp
lea eax, [eax + 0x20]
xorps xmm2, xmm0
aesenc xmm2, xmm1
dec eax
inc ecx
movups xmm1, xmmword [eax]
dec ebp
lea eax, [eax + 0x10]
jne 0x405c1a
aesenclast xmm2, xmm1
pxor xmm0, xmm0
pxor xmm1, xmm1
movups xmmword [edx], xmm2
pxor xmm2, xmm2
repz ret