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

Disassembly:
mov ebx, dword [ebp + 0x44]
mov eax, dword [esi + 4]
mov ch, ch
mov edx, dword [esi + 8]
mov eax, dword [ebp + eax]
lea esi, [esi + 0xc]
sub dword [ebx + edx], eax
shr cl, 0x40
jmp dword [esi]
lodsb al, byte [esi]
inc eax
in eax, dx
inc eax
shl ebp, 0x20
mov eax, dword [ebp + 0x44]
mov edx, dword [esi + 4]
mov ebx, dword [esi + 8]
mov al, byte [eax + edx]
push edx
pop edx
lea esi, [esi + 0xc]
jne 0x4389c6
je 0x40d002
lea ecx, [ebp - 0x10]
push 6
shr cx, 0x40
lea edx, [ebp - 0x134]
shl esi, 0x20
jmp 0x40ee89
push ecx
jmp 0x40ee8c
push edx
call fcn.004407ad
add esp, 0x18
push ecx
pop ecx
mov dword [ebp - 8], eax
test ax, ax
jb 0x44044b
je 0x44601c
shl dx, 0x20
jne 0x40eeb5
pushfd
cmp ecx, dword [ebx - 0x17aff7bb]
inc eax
push ebx
add al, byte [eax]
mov eax, dword [ebp + 8]
push eax
call fcn.004341fe
mov ecx, dword [ebp - 8]
mov edx, dword [esi]
push ecx
push edx
call fcn.0042cb65
add esp, 0xc
pop edi
pop esi
xchg ebx, edi
xchg edi, ebx
pop ebx
mov esp, ebp
pop ebp
ret
pop ebx
pop ebp
ret
mov dword [0x89f3ff66], 0xc1664065
out 0x20, eax
jmp dword [esi]
cmp dl, dl
xor edx, edx
jb 0x432637
shl al, 0x20
shr bl, 0x40
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
cmp esi, edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ecx
jne 0x42a3c4
je 0x412ef8
popal
loopne 0x412f08
cmp al, 0x8b
inc ebp
adc byte [ebp - 0x27b27300], cl
mov eax, dword [ebp + 0x10]
lea eax, [eax]
lea ecx, [ebp - 0x28]
ja 0x41824d
jbe 0x412f0c
out 0x12, al
cmp dword [ebx + 0x533b860f], ebp
add byte [eax], al
jbe 0x41824d
xor eax, 0x24448fc6
cld
lea eax, [ebp - 0x100]
push 0x10c
shr cl, 0x40
xchg ah, bl
xchg bl, ah
push eax
call fcn.0042c00f
call fcn.004362d1
and eax, 0x43d66fb
add byte [edi], cl
test dword [edi - 0x6d6dffff], edx
mov ax, ax
lea edx, [ebp - 8]
sub ecx, edx
lea edx, [ebp - 0x90]
push edx
xchg cx, dx
xchg dx, cx
jmp 0x41484a
push ebx
call fcn.0041e3f6
js 0x4462ab
jns 0x41485b
push 0x4a890f05
sbb al, byte [ebx]
add byte [esi + ebp*4], dh
jns 0x4462ab
xor al, 0xae
jmp dword [esi]
push eax
jmp 0x418250
push edx
jmp 0x418253
push ecx
jmp 0x418256
push ebx
call fcn.004225f4
mov esi, dword [ebp - 0x28]
add esp, 0x10
xchg di, ax
xchg di, ax
mov dword [ebp - 0x90], esi
lea eax, [ebp - 0x90]
mov dword [ebp + 8], 0x19
push ecx
pop ecx
mov edx, dword [eax]
mov edi, dword [ebp - 0x24]
and bh, bh
add bh, 0x9f
sub bh, 0x9f
add edx, edi
mov ecx, 0x20
mov dword [eax + 4], edx
mov edx, dword [eax]
and edx, 0x1f
jb 0x43b8fc
mov edi, esi
sub ecx, edx
add dx, 0
add eax, 4
shl edi, cl
mov ecx, edx
shr di, 0x40
mov ecx, ecx
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x20], edi
mov edi, esi
shr edi, cl
mov ecx, dword [ebp - 0x20]
or ecx, edi
jb 0x42dacd
xor edx, ecx
jb 0x42dae3
jne 0x42a39b
je 0x4182e8
nop
cpuid
ret
je 0x42a39b
invalid
and al, 0x8b
dec esi
add al, 0x8b
pop esi
or byte [ebp + 0x1bd20c76], cl
mov ch, ch
jmp dword [esi]
push ebp
pop ebp
mov ecx, edx
and ecx, 0xff
jb 0x427be1
lea edx, [edx]
mov al, byte [edi + esi]
cmp al, 0x61
jb 0x43f140
jae 0x41a7d9
nop
cpuid
ret 0x7a3c
cmp al, 0x7a
ja 0x43f140
jbe 0x41a7e5
dec esp
jbe 0x41a7f5
ja 0x43f129
xchg dword [esi], edi
dec ecx
add al, byte [eax]
shl cl, 0x20
jbe 0x41a7f3
push ss
pop ebp
mov byte [0x4930860f], al
add al, byte [eax]
jbe 0x43f129
xor byte [ecx + 2], cl
add byte [0x87d7878c], ah
and eax, 0x87d7878c
cli
shl al, 0x20
call fcn.0043740b
cmp al, 0x61
jb 0x43ca52
jae 0x41ad3e
clc
ret 0x7a3c
cmp al, 0x7a
ja 0x43ca52
jbe 0x41ad4b
cmp al, 0x5b
and eax, 0xff
jb 0x4357c3
sub eax, 0x20
jmp 0x43ca60
push edx
push edx
shr ah, 0x40
cmp eax, 1
jne 0x42b94e
mov al, al
je 0x41cf70
jno 0x41cf8e
in al, dx
iretd
mov eax, dword [ebp + 0x10]
push eax
jne 0x41c444
je 0x41cf81
into
jmp 0x41cfb0
je 0x41c444
xor al, 0x1f
mov bl, bl
xchg ebx, eax
shr bx, 0x40
mov ax, ax
xchg ebx, eax
jmp 0x41cf95
jmp 0x41cfd0
push esi
mov cl, cl
shl ax, 0x20
js 0x426eca
jns 0x41cfa9
nop
cpuid
ret 0x890f
jns 0x426eca
fcomp dword [edx]
push eax
push edi
pop edi
mov dword [ebp - 4], ebx
call fcn.004375c0
mov edx, dword [esi]
xor cx, cx
jb 0x43f73e
sbb bh, bh
invalid
mov cl, al
push edx
mov word [ebp - 0x34], cx
call fcn.0044a36f
mov di, ax
mov eax, dword [esi]
jmp 0x41cfda
wait
rol dword [edx], cl
add byte [esi - 0x77], ah
invalid
push ebx
push eax
and edi, 0xffff
jb 0x40ff98
call fcn.00434832
mov dl, dl
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x30]
push ecx
lea eax, [ebp - 0x1c]
jmp 0x41cffc
push edx
jmp 0x41cfff
push eax
call fcn.00434211
mov eax, dword [ebp - 0x24]
add esp, 0x1c
cmp eax, 0x7cf
jge 0x41d02d
jl 0x41d020
cpuid
ret
mov dword [ebp - 0x14], ebx
jmp 0x41d04c
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x1c]
jmp 0x41d034
push eax
jmp 0x41d037
push ecx
push edx
call fcn.00435a54
add esp, 0xc
mov dword [ebp - 0x14], eax
shl ax, 0x20
mov si, si
mov eax, dword [esi]
push pe_nt_image_headers32
lea ecx, [ebp - 0x134]
push eax
jmp 0x41d05f
push ecx
call fcn.00443296
lea edx, [ebp - 0x2c]
jmp 0x41d06a
push esi
lea eax, [ebp + 8]
push edx
lea ecx, [ebp - 0x134]
jmp 0x41d078
push eax
push ecx
mov bh, bh
call fcn.004165b6
add esp, 0x1c
cmp ax, bx
je 0x4485ee
jne 0x41d098
add eax, 0x8b493990
push ss
mov edx, dword [esi]
jmp 0x41d09b
push eax
jmp 0x41d09e
push edx
call fcn.0042cb65
add esp, 8
mov edi, edi
jmp fcn.004485dd
pop dword [esp - 4]
mov dl, byte [esi]
test ebx, edx
jae 0x42547a
invalid
jae 0x428f05
ljmp 0x4782:0xfc0847e
jbe 0x43da87
mov al, byte [eax]
lea esi, [esi + 0xc]
shl di, 0x20
sbb byte [ebp + ebx], al
jmp dword [esi]
je 0x427bcc
mov byte [0xd80001dd], al
jp 0x427bab
fdivr dword [edx - 0x40]
jmp 0x427c2d
invalid
cmp dl, 0x61
jb 0x41a7b6
jae 0x428f13
pushal
outsd dx, dword [esi]
mov ecx, 0xa5c78166
mov eax, 0xa5ef8166
mov eax, 0xf7afa80
xchg dword [eax - 0x3e0000e8], edx
loope 0x428f49
add di, 0xb8a5
sub di, 0xb8a5
cmp dl, 0x7a
ja 0x41a7b6
shl ecx, 0x20
jbe 0x428f2d
aam 0x96
jmp fcn.00444015
ret
mov ecx, dword [ebp + 8]
dec ecx
mov dword [ebp - 0x8c], edx
mov dword [ebp + 8], ecx
jne 0x41827f
je 0x42a3b4
cld
xchg byte [0xe47d8bc8], ch
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
shr eax, 0x40
jmp 0x439fe0
shr dx, 0x40
lea edx, [ebp - 0x90]
jne 0x439fce
je 0x42a3da
stc
out 0x1a, al
mov cs, word [edi]
test dh, ch
sti
add byte [eax], al
je 0x439fce
fnstenv [0xfec08d8d]
invalid
cmp eax, 2
jne 0x42b98a
je 0x42b95f
outsd dx, dword [si]
mov esi, 0x104d8b41
mov ecx, dword [ebp + 0x10]
push ecx
xchg si, dx
xchg dx, si
jmp 0x42b96b
push edx
push edx
xchg cx, bx
xchg bx, cx
push ebx
call fcn.004225f4
add esp, 0x10
jmp 0x4462c7
ja 0x41483b
jbe 0x42b996
inc esi
mov ebx, 0x860f96dd
lahf
invalid
jbe 0x41483b
fstp dword [esi]
clc
lcall 0x856, 0x8b445d8b
mov di, di
mov eax, dword [esi + 4]
lea esi, [esi + 0xc]
sub dword [ebx + edx], eax
jmp dword [esi]
xchg ebx, eax
sbb dword [edi], ecx
mov byte [ecx + 0x27], bh
add byte [eax], al
jns 0x42beaa
push eax
lea ecx, [edi]
mov dword [edi + 0x27], ebp
add byte [eax], al
jns 0x42e61f
fdiv dword [ebx - 0x3c]
arpl word [ecx], ax
cwde
push ebp
add byte [eax], al
cmp al, 0
add byte [eax], al
mov ch, dh
inc edx
add byte [eax + 0x3c000055], bl
add byte [eax], al
add bl, ch
lodsd eax, dword [esi]
inc ebx
add byte [eax], cl
add byte [eax], al
xor al, 0
add byte [eax], al
inc esp
loope 0x42bf1a
add dl, dh
adc al, 0x42
add byte [ebp - 0x72], bl
inc ecx
add byte [eax], cl
add byte [eax], al
sbb esi, dword [esi]
inc ebx
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 byte [eax], al
add byte [eax], al
cwde
mov dh, 0x43
add byte [ebp - 0x72], bl
inc ecx
add byte [eax + eax], al
add byte [ecx + edx*8 - 0x2a9cffbf], dh
add al, 0xd3
inc ecx
add byte [esi], dl
push esp
inc ebx
add byte [edx], cl
pop es
inc ebx
add byte [ebx], ch
mov edi, 0x865f0042
cdq
or al, byte [edi]
inc ebx
add byte [esi], dl
push esp
inc ebx
add cl, bl
popfd
push edi
call fcn.0041b3c4
add esp, 0xc
test al, al
jb 0x43387d
je 0x42a002
jne 0x42bf55
and eax, 0x8b1c4aa1
push cs
mov ecx, dword [esi]
push 0x14
mov cl, cl
push 0x429ff6
ret
setbe byte [bp - 0x7ef1]
add eax, 0xfff8816
xor dword [edi], 0x70000135
add ecx, dword [edi]
mov al, byte [0x20e1c032]
xchg dl, bh
xchg bh, dl
mov ebx, dword [ebp + 0x44]
mov eax, dword [esi + 4]
xchg cx, di
xchg di, cx
mov edx, dword [esi + 8]
shl si, 0x20
mov al, byte [ebp + eax]
lea esi, [esi + 0xc]
sub byte [ebx + edx], al
jmp dword [esi]
scasd eax, dword es:[edi]
add ecx, dword [ebp - 0x127699e5]
jno 0x44b7e8
jo 0x42e655
invalid
jo 0x44b7e8
add eax, 0x8bf689de
pop esi
add al, 0xc0
call 0x8b973a8
push edi
call fcn.0044006a
add esp, 4
test al, al
jb 0x40e1ba
jne 0x432c2d
je 0x42f5c8
nop
cpuid
ret
pop edi
pop esi
xor eax, eax
jb 0x43bfca
pop ebx
pop ebp
ret
push ebx
mov byte [edi], ch
shr ecx, 0x40
mov edi, edi
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov ebx, dword [ebp + ebx]
mov esi, esi
lea esi, [esi + 0xc]
or eax, eax
and byte [ebx], al
jb 0x422099
jne 0x41784b
mov si, si
je 0x4338ab
je 0x41784b
mov bp, bp
cmpsd dword [esi], dword es:[edi]
dec edx
call fcn.004432c5
fadd dword [ecx*4 + 0x1c72e800]
add byte [eax], al
add byte [eax], al
or al, byte [edi]
inc ebx
add byte [edi + 0x4e004357], ah
lds ecx, [ebx + 0xa]
pop es
inc ebx
add byte [esi], dl
retf
invalid
add eax, 0xe8758916
mov dword [ebp - 0x18], esi
jb 0x412ecf
jae 0x4357eb
inc esp
add cl, byte [edi - 0x75]
inc ebp
in al, dx
mov eax, dword [ebp - 0x14]
xor edx, edx
jb 0x42bea8
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 8], edx
cmp ecx, edx
mov dword [ebp - 4], edx
jbe 0x435837
shl ah, 0x20
ja 0x435810
pop ebp
pop esp
xchg esi, eax
jae 0x43579a
mov edx, ecx
mov ah, ah
lea esi, [ebx + 8]
lea edi, [ebp - 8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
jb 0x42beb0
retf 0xe488
xor edx, edx
jb 0x42e642
rep movsb byte es:[edi], byte [esi]
jmp 0x41cf5d
push edi
call fcn.004204c2
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x1c]
test ecx, 0x216b39de
add esp, 4
push edi
pop edi
push eax
mov eax, dword [ebp + 0x18]
jmp 0x4370d6
push ecx
mov ecx, dword [ebp + 0x14]
jmp 0x4370dc
push edx
push eax
shl ax, 0x20
push ecx
push edi
push 0x9c40244c
push ebx
call dword [0x57a568]
shl bh, 0x20
jmp 0x4370f7
push edi
mov esi, eax
shl ch, 0x20
call fcn.00422e74
add esp, 4
add bh, 0
test esi, esi
jb 0x40e1b1
jne 0x432c2d
je 0x437120
sbb esp, dword [esi + eax*2 - 0x64]
js 0x42f5a8
mov dx, dx
jns 0x43712f
clc
inc ebx
adc byte [edx + 0xf], al
mov dword [ebx - 0x7c], esi
invalid
jns 0x42f5a8
fmul dword [ebp - 0x1f78973]
add al, 0x13
xchg esi, edx
xchg edx, esi
jmp dword [esi]
push edx
push ebx
call fcn.0041e3f6
add esp, 8
shl cx, 0x20
mov eax, dword [ebp - 8]
jmp 0x43fb65
and eax, 0xff
jb 0x4357db
shl eax, 0x20
mov edx, dword [ebp + 0xc]
mov ecx, eax
mov al, byte [ebx + edx]
push 0x446031
ret
mov si, word [edi + 6]
jmp fcn.0043da99
and eax, 0xff
jb 0x427be8
sub eax, 0x20
jmp 0x43f14b
and eax, 0xff
jb 0x445996
cmp ecx, eax
jno 0x44937d
jo 0x43f157
mov ecx, 0x20800f2d
mov byte [0x3050000], al
jo 0x44937d
add eax, 0xbc8e8a03
add byte [eax], al
add byte [ecx], dh
ror byte [edi], 0x82
xor bl, byte [ebp - 1]
inc dword [eax - 0x7699fd17]
in eax, dx
mov cl, byte [esi + 0xbc]
xor eax, eax
jb 0x434e9f
sub cl, 2
mov bp, bp
ja 0x417e25
jbe 0x43f17f
cpuid
nop
ret
jbe 0x417e25
fisub dword [esi - 0x75]
inc esi
add al, 0x8b
pop esi
or byte [ebp - 0x3416f38a], cl
aad 0xfe
jmp dword [0xf6ffebdd]
xor eax, 0x24448fa6
cld
mov bp, bp
shl bp, 0x20
jmp fcn.0042563c
mov ecx, dword [ebx]
xor ecx, eax
jb 0x42be88
mov eax, dword [ebx + 4]
mov dword [ebx], ecx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
add bp, 0x77d5
sub bp, 0x77d5
xor eax, ecx
jb 0x42be9e
shr ecx, 0x40
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0xc]
add ebx, 8
shr dl, 0x40
inc esi
cmp esi, edi
mov dword [ebp - 8], edx
xchg dx, ax
xchg dx, ax
mov dword [ebp - 4], eax
jmp 0x4357dd
movsb byte es:[edi], byte [esi]
aaa
mov cx, cx
mov eax, dword [esi + 4]
push edx
pop edx
mov ebx, dword [esi + 8]
mov eax, dword [ebp + eax]
mov ebx, dword [ebp + ebx]
lea esi, [esi + 0xc]
or ax, ax
and dword [ebx], eax
jb 0x44b40b
jmp dword [esi]
mov eax, dword [ebx]
jno 0x41df0d
jo 0x446029
dec ecx
xchg esp, eax
out 0xf, eax
sbb dh, 0x7e
std
push dword [0xf613cb2]
jo 0x41df0d
xor eax, 0xf613cb2
adc byte [eax + 0x63], 0xfe
push dword [ebx + 2]
mov byte [esi - 0x78f085c4], dl
inc esp
arpl si, di
push dword [esi + 3]
mov eax, 0xff253776
add byte [eax], al
add byte [edi], cl
adc al, 0xce
std
push dword [ecx]
ror byte [edi], cl
adc cl, 0xce
std
dec dword [edi]
mov byte [esi], dh
enter 0xffffffffffffffff, 0x79
add cl, byte [ebx + ebp*4 - 0x37d376f1]
invalid
mov eax, dword [ebp - 0x14]
add esp, 8
cmp eax, 1
jbe 0x41779d
mov al, al
ja 0x4462c7
cpuid
ret
mov eax, dword [ebx]
mov esi, dword [ebp - 8]
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 4]
mov edi, dword [ebp + 0xc]
xor esi, eax
jb 0x42e65b
xor edx, ecx
jb 0x44b807
xor eax, eax
jb 0x44b813
test cx, 0x6419
test edi, edi
jb 0x40cfde
mov dword [ebp - 8], esi
mov dword [ebp - 4], edx
jbe 0x40d30f
ja 0x44630b
test eax, 0xd9893fd5
mov ecx, ebx
jno 0x4140e9
jo 0x446318
call [esi + 0x42]
jo 0x4140e9
fadd dword [ebx + 0x7dd926ff]
mov eax, dword [ebp + 0x30]
mov ebx, dword [esi + 4]
shl bx, 0x20
lea esi, [esi + 8]
mul byte [ebx]
mov dword [ebp + 0x30], eax
jmp dword [esi]
shl eax, 0x20
shr ebx, 0x40
mov ebx, dword [ebp + 8]
mov eax, eax
lea eax, [ebp - 4]
push esi
jmp 0x4485ff
push eax
push 0
jne 0x40ee76
je 0x44860f
clc
ret
je 0x40ee76
fcom dword [esi + 0xf6bc35d]
shr esi, 0x40
pop esi
xor ax, ax
jb 0x419ce7
ja 0x40f727
jbe 0x448633
popal
int 0xa7
jbe 0x40f727
xor al, 0xbc
jne 0x4493aa
je 0x449387
or dword [eax + 0x43], esp
inc ebx
inc esi
test dl, dl
jb 0x44599f
jne 0x42a06f
je 0x44939b
mov edx, 0x315e5f08
ror byte [edi], 0x82
js 0x4493c6
pop edi
pop esi
xor eax, eax
jb 0x44b71d
add byte [eax], al
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
mov al, byte [ebx + eax]
add eax, 0
jae 0x4493b9
cpuid
ret
jae 0x41ad32
fdiv dword [ebx + 0x33c3d66]
jb 0x42f5fa
sub byte [edi], 0x62
invalid
jae 0x4493cf
inc esi
fimul word [ebp - 0x2378f100]
fdiv st(6), st(0)
push dword [esi + 4]
lea eax, [eax]
ja 0x4370b3
jbe 0x4493dd
cpuid
ret
jbe 0x4370b3
invalid
invalid