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

Disassembly:
push ebp
push ebx
push esi
push edi
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
and eax, 0xfffffff0
je 0x440084
mov ecx, dword [edx + 0xf0]
test ebx, ebx
je 0x43ff00
mov ebp, edx
mov ebx, ecx
cmp eax, 0x60
jb 0x43fe1f
movdqu xmm2, xmmword [esi]
movdqu xmm3, xmmword [esi + 0x10]
movdqu xmm4, xmmword [esi + 0x20]
movdqu xmm5, xmmword [esi + 0x30]
movdqu xmm6, xmmword [esi + 0x40]
movdqu xmm7, xmmword [esi + 0x50]
lea esi, [esi + 0x60]
sub eax, 0x60
jmp 0x43fdea
movups xmmword [edi], xmm2
movdqu xmm2, xmmword [esi]
movups xmmword [edi + 0x10], xmm3
movdqu xmm3, xmmword [esi + 0x10]
movups xmmword [edi + 0x20], xmm4
movdqu xmm4, xmmword [esi + 0x20]
movups xmmword [edi + 0x30], xmm5
movdqu xmm5, xmmword [esi + 0x30]
movups xmmword [edi + 0x40], xmm6
movdqu xmm6, xmmword [esi + 0x40]
movups xmmword [edi + 0x50], xmm7
lea edi, [edi + 0x60]
movdqu xmm7, xmmword [esi + 0x50]
lea esi, [esi + 0x60]
call fcn.0043fb80
mov edx, ebp
mov ecx, ebx
sub eax, 0x60
jae 0x43fdb0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
movups xmmword [edi + 0x40], xmm6
movups xmmword [edi + 0x50], xmm7
lea edi, [edi + 0x60]
add eax, 0x60
je 0x440084
movups xmm2, xmmword [esi]
cmp eax, 0x20
jb 0x43fe70
movups xmm3, xmmword [esi + 0x10]
je 0x43fea0
movups xmm4, xmmword [esi + 0x20]
cmp eax, 0x40
jb 0x43fec0
movups xmm5, xmmword [esi + 0x30]
je 0x43fee0
movups xmm6, xmmword [esi + 0x40]
xorps xmm7, xmm7
call fcn.0043fb80
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
movups xmmword [edi + 0x40], xmm6
jmp 0x440084
movups xmm0, xmmword [edx]
movups xmm1, xmmword [edx + 0x10]
lea edx, [edx + 0x20]
xorps xmm2, xmm0
aesenc xmm2, xmm1
dec ecx
movups xmm1, xmmword [edx]
lea edx, [edx + 0x10]
jne 0x43fe7d
aesenclast xmm2, xmm1
movups xmmword [edi], xmm2
jmp 0x440084
call fcn.0043f8a0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
jmp 0x440084
call fcn.0043f960
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
jmp 0x440084
call fcn.0043fa60
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
jmp 0x440084
mov ebp, edx
mov ebx, ecx
cmp eax, 0x60
jb 0x43ffaf
movdqu xmm2, xmmword [esi]
movdqu xmm3, xmmword [esi + 0x10]
movdqu xmm4, xmmword [esi + 0x20]
movdqu xmm5, xmmword [esi + 0x30]
movdqu xmm6, xmmword [esi + 0x40]
movdqu xmm7, xmmword [esi + 0x50]
lea esi, [esi + 0x60]
sub eax, 0x60
jmp 0x43ff7a
movups xmmword [edi], xmm2
movdqu xmm2, xmmword [esi]
movups xmmword [edi + 0x10], xmm3
movdqu xmm3, xmmword [esi + 0x10]
movups xmmword [edi + 0x20], xmm4
movdqu xmm4, xmmword [esi + 0x20]
movups xmmword [edi + 0x30], xmm5
movdqu xmm5, xmmword [esi + 0x30]
movups xmmword [edi + 0x40], xmm6
movdqu xmm6, xmmword [esi + 0x40]
movups xmmword [edi + 0x50], xmm7
lea edi, [edi + 0x60]
movdqu xmm7, xmmword [esi + 0x50]
lea esi, [esi + 0x60]
call fcn.0043fc60
mov edx, ebp
mov ecx, ebx
sub eax, 0x60
jae 0x43ff40
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
movups xmmword [edi + 0x40], xmm6
movups xmmword [edi + 0x50], xmm7
lea edi, [edi + 0x60]
add eax, 0x60
je 0x440084
movups xmm2, xmmword [esi]
cmp eax, 0x20
jb 0x440000
movups xmm3, xmmword [esi + 0x10]
je 0x440030
movups xmm4, xmmword [esi + 0x20]
cmp eax, 0x40
jb 0x440050
movups xmm5, xmmword [esi + 0x30]
je 0x440070
movups xmm6, xmmword [esi + 0x40]
xorps xmm7, xmm7
call fcn.0043fc60
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
movups xmmword [edi + 0x40], xmm6
jmp 0x440084
movups xmm0, xmmword [edx]
movups xmm1, xmmword [edx + 0x10]
lea edx, [edx + 0x20]
xorps xmm2, xmm0
aesdec xmm2, xmm1
dec ecx
movups xmm1, xmmword [edx]
lea edx, [edx + 0x10]
jne 0x44000d
aesdeclast xmm2, xmm1
movups xmmword [edi], xmm2
jmp 0x440084
call fcn.0043f900
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
jmp 0x440084
call fcn.0043f9e0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
jmp 0x440084
call fcn.0043faf0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
pxor xmm0, xmm0
pxor xmm1, xmm1
pxor xmm2, xmm2
pxor xmm3, xmm3
pxor xmm4, xmm4
pxor xmm5, xmm5
pxor xmm6, xmm6
pxor xmm7, xmm7
pop edi
pop esi
pop ebx
pop ebp
ret