Function at 0x431cb6
Capabilities:
Check os version
Encrypt data using aes mixcolumns step

Disassembly:
stosb byte es:[edi], al
jne 0x43e5aa
je 0x4100a7
outsb dx, byte [esi]
daa
sub ecx, dword [edi]
test ch, bh
in al, 2
add byte [eax + eax*2], dh
je 0x43e5aa
cmp eax, ebx
mov word [ebp - 0x28], dx
mov word [esi + 0x53], bx
mov edi, edi
mov dword [ebp - 0x10], ebx
shr bl, 0x40
jle 0x41dd7d
jg 0x41ba09
nop
cpuid
ret 0x7d8d
lea edi, [ebp - 0x50]
mov word [ebp - 0x24], cx
and ebp, ebp
jno 0x42e384
jmp fcn.0042e344
jno 0x41b9eb
and byte [edx - 0x2d], 0xe0
ja 0x43e8c2
jbe 0x42e39a
sbb edx, eax
add al, 0xbb
jbe 0x43e8c2
lea esp, [esp + 4]
lea esi, [esi + 4]
push 0xd30569ff
mov dword [esp], ebx
pushfd
mov ebx, 0xf597a04e
sub ebx, 0x800edc60
popfd
push eax
pop eax
call fcn.0042370a
xor eax, 0xee850f71
mov al, 0xfd
push dword [edx + eax - 0x68]
xchg edx, eax
or word [esi + 0x50], di
jb 0x41009a
lea eax, [ebp - 0xc]
xchg edi, edx
xchg edx, edi
lea ecx, [ebp - 0x50]
push eax
push ecx
jmp 0x431cfe
push esi
mov dl, dl
call fcn.0042ea9d
add esp, 0xc
mov dword [ebp + 8], eax
jmp 0x431d23
mov ax, word [esi + 0x1e]
mov cx, word [esi + 0x1c]
shl edx, 0x20
mov dx, word [esi + 0x42]
mov word [ebp - 0x20], ax
mov eax, dword [ebp + 8]
js 0x42e37a
jns 0x431d44
pop ecx
invalid
jns 0x42e37a
add eax, 0xc08446e9
jb 0x4130fc
mov byte [ebp + 8], al
jne 0x43a084
je 0x431d64
invalid
mov eax, esi
pop edi
pop esi
pop ebx
pop ebp
ret
mov ebx, dword [ebp + 8]
push ebx
call fcn.0044aab8
add esp, 4
test eax, eax
jb 0x44911b
jne 0x431d64
je 0x43a0a7
push esi
mov byte [0xf3ff2e44], al
push ebx
call fcn.00431d6d
add esp, 4
test eax, eax
jb 0x4130eb
add byte [ebp + 0x2f820fc0], al
nop
std
inc dword [edi + 0xfeb87dd]
cmp dword [edi + 0x70fffdd4], 0xd7e97a03
xchg ebp, ebx
xchg ebx, ebp
jno 0x417585
jo 0x43a0cb
jp 0x43a0b3
xlatb
jo 0x417585
and eax, 0x8768d2d
inc word [ebx]
jmp dword [esi]
inc ebx
add byte [eax + edx + 0x44], al
add byte [eax + eax], al
add byte [eax + eax], al
add byte [ebp - 0x72], bl
inc ecx
add byte [eax + eax], al
add byte [ecx + edx*8 - 0xd81ffbf], dh
imul eax, edi, 0x20042
add byte [eax], al
xor byte [eax], al
add byte [eax], al
push es
rol dword [ecx], cl
cmpsb byte [esi], byte es:[edi]
xlatb
inc edx
add byte [edx], cl
pop es
inc ebx
add byte [ecx - 0x4d], ah
inc ebx
add byte [ecx - 0x7a4e2710], al
inc edx
add byte [eax + 0x420041e9], bh
inc esp
inc esp
add byte [ebp - 0x4d], dh
inc ebx
add byte [edi], cl
mov byte [0x4442c31a], al
inc esp
add byte [eax - 0x7dffbe17], bh
cld
mov eax, dword [ebp - 0xc]
mov edi, edi
lea ecx, [ebp - 0x1c]
ja 0x4162ed
jbe 0x43b391
call 0x56c9c2ed
scasd eax, dword es:[edi]
std
invalid
jbe 0x4162ed
fidivr dword [esi - 1]
jg 0x43b326
xchg bh, al
xchg al, bh
mov al, al
jns 0x41aaf6
shl ch, 0x20
js 0x43b3b2
cpuid
nop
ret
lea esi, [esi + 8]
mov ax, ax
jmp dword [esi]
xchg si, ax
xchg si, ax
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov ax, word [ebp + eax]
lea esi, [esi + 0xc]
mov bx, bx
sbb word [ebp + ebx], ax
shr bh, 0x40
jmp dword [esi]
xor al, 0x46
mov ebx, dword [esi + 4]
mov edi, edi
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x38]
lea esi, [esi + 8]
idiv dword [ebp + ebx]
shl ebx, 0x20
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x38], edx
jmp dword [esi]