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

Disassembly:
stosb byte es:[edi], al
jne 0x4366aa
je 0x4081a7
outsb dx, byte [esi]
daa
sub ecx, dword [edi]
test ch, bh
in al, 2
add byte [eax + eax*2], dh
je 0x4366aa
jno 0x40a714
jo 0x412c00
or al, 0xda
jo 0x40a714
fsub st(0)
adc al, 0xc2
inc eax
add byte [eax], ah
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
adc eax, ebp
inc edx
add bh, bh
inc dword [eax]
add byte [eax + eax], dh
add byte [eax], al
inc esp
bound eax, qword [ecx]
or al, 0x22
inc ebx
add byte [edi], al
xchg edx, eax
inc ebx
add byte [eax], ah
add byte [eax], al
add byte [0x1b000000], dh
mov bh, 0x42
add byte [eax], al
inc eax
add byte [eax], al
xor al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ah
cmp byte [eax], 0
add byte [eax], al
add byte [ecx], ah
add byte [eax], al
or al, byte [eax]
add byte [eax], al
cwde
aaa
inc ebx
add byte [edx + eax*2 + 0x400041], bl
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
pop ebp
cmovno eax, dword [eax]
inc esp
add byte [eax], al
add byte [ecx + edx*4 + 0x43], al
add byte [eax + eax], bh
add byte [eax], al
cmp al, 0
add byte [eax], al
mov ah, 0x52
inc ecx
add byte [esi + ebx*2 + 0x66], al
rol dword [edx], 1
xor al, 0
add byte [eax], al
xor al, 0
add byte [eax], al
invalid
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 0x415e7d
jg 0x413b09
nop
cpuid
ret 0x7d8d
lea edi, [ebp - 0x50]
js 0x43347f
jns 0x413b16
fdiv st(6), st(0)
jns 0x43347f
fiadd dword [ecx - 0x74df1c3f]
pop esi
or byte [eax - 0x5c], ch
mov eax, dword [0xd9c30041]
cld
mov ax, word [ebp - 0x20]
mov cx, word [ebp - 0x24]
mov dx, word [ebp - 0x28]
push ebp
pop ebp
jne 0x42a4f4
je 0x415e97
cpuid
ret
je 0x42a4f4
invalid
jne 0x40fafc
shl ebp, 0x20
mov word [ebp - 0x24], cx
and ebp, ebp
jno 0x426484
jmp fcn.00426444
jno 0x413aeb
and byte [edx - 0x2d], 0xe0
ja 0x4369c2
jbe 0x42649a
sbb edx, eax
add al, 0xbb
jbe 0x4369c2
fadd dword [eax]
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.0041b80a
xor eax, 0xee850f71
mov al, 0xfd
push dword [edx + eax - 0x68]
xchg edx, eax
or word [esi + 0x50], di
jb 0x40819a
lea eax, [ebp - 0xc]
xchg edi, edx
xchg edx, edi
lea ecx, [ebp - 0x50]
push eax
push ecx
jmp 0x429dfe
push esi
mov dl, dl
call fcn.00426b9d
add esp, 0xc
mov dword [ebp + 8], eax
jmp 0x429e23
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 0x42647a
jns 0x429e44
pop ecx
invalid
jns 0x42647a
add eax, 0xc08446e9
jb 0x40b1fc
mov byte [ebp + 8], al
jne 0x432184
je 0x429e64
invalid
mov word [esi + 0x1e], ax
mov eax, dword [ebp - 0x14]
push 0x41e9b4
ret
inc ebx
add byte [ecx + edx*4 + 0x43], al
add byte [eax + eax], al
add byte [eax + eax], al
add byte [ebp + 0xf], bl
inc ecx
add byte [eax + eax], al
add byte [edx + edx*2 - 0xd81ffbf], dh
imul ecx, dword [eax + 0x42], 0x200
add byte [eax], dh
add byte [eax], al
add byte [esi], al
push esp
inc ecx
add byte [esi + 0xa004258], ah
mov byte [edx], al
popal
xor al, 0x43
add byte [ecx + 0x6b1d8f0], al
inc edx
add byte [eax + 0x4200416a], bh
lds eax, [ebx]
jne 0x4334a3
inc ebx
add byte [edi], cl
mov byte [0xc542c31a], al
inc ebx
add byte [eax - 0x7dffbe96], bh
cld
mov eax, dword [ebp - 0xc]
mov edi, edi
lea ecx, [ebp - 0x1c]
ja 0x40e3ed
jbe 0x433491
call 0x56c943ed
scasd eax, dword es:[edi]
std
invalid
jbe 0x40e3ed
fidivr dword [esi - 1]
jg 0x433426
xchg bh, al
xchg al, bh
mov al, al
jns 0x412bf6
shl ch, 0x20
js 0x4334b2
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]
mov bp, bp
xchg cl, dl
xchg dl, cl
mov cl, byte [ebp + 0xc]
xchg edx, eax
xchg edx, eax
mov dx, word [ebp + 0x10]
shr bx, 0x40
shr cx, 0x40
mov byte [esi + 0xba], cl