Function at 0x44c05c
Capabilities:
Check os version
Encode data using xor
Encrypt data using aes mixcolumns step

Disassembly:
sub dl, bl
shr ah, 0x40
mov eax, eax
mov eax, dword [esi + 4]
mov eax, eax
mov ebx, dword [esi + 8]
mov ch, ch
mov eax, dword [ebp + eax]
mov ebx, dword [ebp + ebx]
lea esi, [esi + 0xc]
sub dword [ebx], eax
jmp dword [esi]
invalid
sub eax, 0xe8c16607
inc eax
mov eax, dword [esi + 4]
push eax
pop eax
mov ebx, dword [esi + 8]
lea esi, [esi + 0xc]
test byte [ebx], al
jb 0x428ee9
shr ecx, 0x40
jno 0x436d3e
jo 0x42e7fb
cpuid
nop
ret
jo 0x436d3e
and eax, 0x44e8bd8
lea eax, [ebp - 0x13c]
jmp 0x42e80d
push eax
jmp 0x42e810
push ecx
call fcn.00457e10
js 0x428e3f
jns 0x42e823
cpuid
jge 0x42e7e6
jns 0x428e3f
and eax, 0x4468b13
jne 0x421c03
je 0x42e839
inc esi
xor eax, 0x33c4840f
invalid
je 0x421c03
and eax, 0x405b5388
jmp 0x42e845
push eax
mov si, si
lea eax, [ebp - 0x10c]
push edx
push eax
call fcn.00443296
lea ecx, [ebp - 0x10c]
jmp 0x42e85f
push ecx
call fcn.0041b4bb
add esp, 0x14
test eax, eax
jb 0x42aa01
je 0x42e8db
jne 0x42e880
test al, 0xf
mov byte [0xf4958dc3], al
invalid
lea edx, [ebp - 0x10c]
jmp 0x42e887
push edx
call fcn.0041b4bb
mov cl, byte [ebp + eax - 0x10d]
add esp, 4
cmp cl, 0x5c
je 0x42e8db
jne 0x42e8aa
invalid
lea eax, [ebp - 0x10c]
push eax
call fcn.0041b4bb
lea ecx, [ebp - 0x10c]
mov byte [ebp + eax - 0x10b], 0
jmp 0x42e8c6
push ecx
call fcn.0041b4bb
add esp, 8
mov byte [ebp + eax - 0x10c], 0x5c
push 0x42f62c
ret
or eax, 0x4468b79
mov ebx, dword [esi + 8]
mov al, byte [eax]
lea esi, [esi + 0xc]
push ebp
pop ebp
cmc
sub byte [ebp + ebx], al
jno 0x41caea
xchg al, ch
xchg ch, al
jo 0x42fa64
xor al, 0x24
add byte [edx + 0xf], dh
add byte [eax + 0x34fffed0], 0x1a
jo 0x41caea
xor al, 0x1a
mov bp, bp
pop ebx
mov esi, esi
mov esp, ebp
pop ebp
jne 0x440067
je 0x42fa81
cpuid
nop
ret
je 0x440067
and eax, 0xd326ff7b
insb byte es:[edi], dx
call fcn.0041a809
add eax, 0x40eac0b5
mov al, byte [ebp + eax]
push ebp
pop ebp
lea esi, [esi + 0xc]
call fcn.00426e18
pop esi
mov bx, bx
pop ebx
pop ebp
ret
mov edi, 0x89810f36
sar dh, cl
push dword [eax + 3]
push ds
mov dword [0x7e800f38], eax
sar dh, cl
invalid
outsd dx, dword [esi]
les ecx, [eax - 0x2a789940]
xchg dx, bp
mov cl, bl
xchg bh, dh
xchg dh, bh
rcl dword [edi], cl
jmp dword [esi]
mov ecx, dword [esi]
test ecx, 0x2000
jb 0x413e66
jno 0x422068
jo 0x433f60
jg 0x433fc8
rol al, cl
jo 0x422068
js 0x439a31
jns 0x433f72
nop
cpuid
ret
jns 0x439a31
add eax, 0x86e28609
aam 0x88
invalid
add cl, ch
out dx, eax
fiadd dword [eax]
add byte [ebp + 0x63], ch
js 0x441a9b
jns 0x433fda
fst qword [0xdabb890f]
add byte [eax], al
jns 0x441a9b
fldenv [edx - 0x76]
push es
shl dx, 0x20
inc esi
test al, al
jb 0x41f49a
mov byte [ebp + 8], al
je 0x43c208
jne 0x434000
nop
cpuid
ret
shl esi, 0x20
mov edx, dword [ebp + 8]
push edx
call fcn.0042e2e2
add esp, 4
cmp al, 0x30
jl 0x43c1ea
jge 0x43401e
fistp qword [ebx - 0x7bf0afc4]
pop ecx
mov eax, dword [0x475fffd]
cmp al, 0x50
je 0x40e17f
jne 0x43402c
mov dword [edi], ecx
mov byte [0xf583cc3], al
test dl, bh
mov ecx, 0x4750000
cmp al, 0x58
je 0x43fa2e
jne 0x43403a
xor dword [edx + 0x493c2330], edx
cmp al, 0x49
je 0x43c2c9
jne 0x434048
nop
cpuid
ret 0x533c
cmp al, 0x53
je 0x42ac6b
jne 0x434056
mov byte [0x3c8ae3a1], al
inc ebp
cmp al, 0x45
jne 0x43407c
je 0x434064
nop
cpuid
ret 0x3e80
cmp byte [esi], 0
je 0x4369c0
shr al, 0x40
jne 0x434075
out dx, al
adc edx, dword [eax]
jmp 0x434095
cmp al, 0x43
jne 0x434095
je 0x434088
push es
fld dword [eax - 0x7bf0ffc2]
inc eax
add dword [eax], 0x60027500
cmp byte [esi], 0
je 0x43c1d1
jne 0x434095
pushal
aam 0x8a
push cs
mov cl, byte [esi]
test cl, 0xc9
test cl, cl
jb 0x42b733
lea edx, [edx]
je 0x43c1ea
jne 0x4340b0
cpuid
adc bl, al
cmp al, 0x46
jg 0x43c1ea
jle 0x4340be
cpuid
and al, bl
js 0x40e570
jns 0x4340c9
adc eax, 0x890f401a
mov eax, dword [0xc7fffda4]
adc edi, edi
and dword es:[edx + 0xf], 0xfe2eea85
push dword [esp + eax - 0x45]
cpuid
ret
jns 0x40e570
invalid
add bl, 0
test di, di
jb 0x42e7d3
mov bh, bh
mov ax, ax
jne 0x417daf
je 0x4369dd
mov dword [0x865f94bb], esi
fadd qword [esi - 0x7ef0a11d]
mov ecx, 0x70fffe13
add eax, dword [ebx]
movsb byte es:[edi], byte [esi]
jp 0x4369fe
pop edi
xchg ah, bl
xchg bl, ah
pop esi
jno 0x417da2
jo 0x4369ee
add esp, dword [edx + edi*2 + 0x13ae800f]
invalid
jo 0x417da2
sub byte [esi + 0x5fffe13], 0xcf
jge 0x441024
add eax, 0x288d0fcf
cmpsb byte [esi], byte es:[edi]
add byte [eax], al
jl 0x436a02
imul ecx, dword cs:[edx + eax], 0xff40eec0
mov byte es:[edi + ecx + 0x150a088], bh
add byte [ecx + 3], bh
adc edi, dword [eax - 0x6a76f040]
push eax
add dword [eax], eax
shr dh, 0x40
jmp dword [esi]
jne 0x41b44e
je 0x436d4a
cpuid
nop
ret
je 0x41b44e
js 0x42648d
jns 0x436d5c
cpuid
nop
ret
jns 0x42648d
xor al, 0x24
lahf
inc edx
add byte [eax + eax], cl
add byte [ebp - 0x72], bl
inc ecx
add byte [eax + eax], cl
add byte [ecx - 0x39], ch
inc edx
add byte [edx], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [esi + 0x50], ah
inc ebx
add byte [eax], cl
add byte [eax], al
dec eax
add byte [eax], al
add byte [esi], al
rol dword [ecx], cl
or ecx, dword [eax]
inc esp
add byte [edx], cl
pop es
inc ebx
add byte [eax + 0x1800436d], ah
cpuid
ret
xor eax, 0x850f5fe6
xchg edx, eax
scasb al, byte es:[edi]
std
push dword [esp + eax + 0x7f]
add esp, eax
shl edi, 0x20
push esi
shr cx, 0x40
mov byte [esi + 0xba], cl
push edx
lea edx, [edx + ecx + 0x440650]
xchg dx, dx
pop edx
mov dx, dx
mov byte [esi + 0xbb], 0
xchg bx, cx
xchg cx, bx
js 0x424a60
jns 0x439a67
imul ebx, dword [ecx - 0xc76f017], 0xffffffaf
invalid
jns 0x424a60
or byte [ebx - 0x2b], 0x40
inc ebx
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
pushfd
rol dword [ecx], 0x40
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
sbb esi, dword [esi]
inc ebx
add byte [eax], al
inc ecx
add byte [eax + 0x30], al
add byte [ecx], al
add byte [eax], al
mov al, byte [eax]
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], cl
add byte [eax], al
out dx, eax
inc ecx
add byte [esi], bh
xchg ecx, eax
inc esp
add byte [ebx], dl
sub al, byte [ebx]
in eax, dx
loopne 0x439b0d
sbb byte [ecx], al
cmp eax, 0x3d000000
add byte [eax], al
add byte [ebx + 0x300040e9], bh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ecx + 0x41], al
add byte [ecx - 0x4a], ah
inc ecx
add byte [esi + ecx + 0x200042], ah
add byte [eax], al
xor al, 0
add byte [eax], al
push es
rol dword [ecx], cl
cwde
test dword [edx], eax
or al, byte [edi]
inc ebx
add ch, dh
lcall 0xc308, 0xa20f0043
aad 0x40
inc ebx
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
mov edi, dword [ecx + 0x44]
add byte [esi], cl
test dword [edx], eax
or bh, byte [esi]
inc esp
add byte [0xf00439b], dl
adc eax, 0xf00439b
mov byte [0x3e0ac390], al
inc esp
add byte [esi], cl
test dword [edx], eax
xor eax, 0x24448f26
pop dword [esp - 4]
mov ecx, dword [ebp + 8]
mov al, byte [edi + ecx]
test bh, 0xc2
test al, al
jb 0x42dac9
je 0x40ed6e
jne 0x439b40
imul ecx, eax, 0x303c5e2b
cmp al, 0x30
jb 0x40ed6e
jae 0x439b4d
enter 0x600, 0xffffffffffffffe8
out 0xa9, eax
invalid
call fcn.00434539
and eax, 0x24648d4a
lea esp, [esp + 4]
push 1
js 0x4423e7
jns 0x439b64
and bh, dl
jns 0x4423e7
and eax, 0x41d730fd
add byte [eax], dl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
jae 0x439b6f
inc edx
add byte [eax], dl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
adc eax, dword [ebx + eax*2]
invalid
test di, di
jb 0x41b450
jne 0x43c1fc
je 0x43c1e6
int3
xchg edi, ebx
xchg ebx, edi
pop edi
pop esi
stc
xor eax, eax
jb 0x41b467
pop ebx
pop ebp
mov al, al
ret
shl bx, 0x20
mov ebx, 0x20
shl al, 0x20
mov eax, dword [ebp + 0xc]
mov word [eax], di
shr ch, 0x40
pop edi
mov word [eax + 2], bx
jne 0x41debb
je 0x43c222
and byte [edx], 0x14
adc al, 0xf
test byte [ebx + 0x35fffe1c], dl
pushfd
je 0x41debb
xor eax, 0x24448f9c
cld
cmp byte [esi], 0
mov cx, cx
je 0x43c2eb
mov al, al
jne 0x43c2dc
fisttp dword [eax]
sbb eax, 0xc0315e5f
pop edi
pop esi
xor eax, eax
jb 0x42fa40
pop ebx
pop ebp
ret
cmc
cmp dl, dl
test di, di
jb 0x42fa6a
jne 0x43c31a
shr ax, 0x40
je 0x43c305
rcr byte [ecx + 0x5f40ebc1], 1
shr ebx, 0x40
pop edi
pop esi
xor eax, eax
jb 0x41caec
pop ebx
pop ebp
ret
mov eax, dword [ebp + 0xc]
call fcn.0044b18a
xor al, 0x23
test ax, ax
jb 0x433a0a
call int.00446ae9
invalid
cmp byte [esi], 0
je 0x414382
jne 0x43fa3d
cpuid
nop
ret
pop edi
lea edi, [edi]
pop esi
cmp dl, dl
xor eax, eax
jb 0x42b2d1
pop ebx
pop ebp
call fcn.0041437b
fidivr dword [ebp - 0x34d77af1]
invalid
xchg byte [ebp - 0x78], ch
test byte [ecx + 0x33b1e9c9], 0xff
inc dword [0x3ba7e8ec]
add eax, 0x3ba7e8ec
invalid
test cl, cl
jb 0x440645
jne 0x441ab8
je 0x441aad
add bl, dh
mov si, word [eax + 6]
jmp 0x441abd
mov esi, 0x81
push eax
lea ebx, [ebx]
call fcn.0043700f
add esp, 4
cmc
test si, si
jb 0x440650
je 0x43f46e
jne 0x441ae1
test al, 0x71
jl 0x441b4a
cmp si, 3
je 0x43f46e
push dword [ebp + 4]
jne 0x441af2
jae 0x441aeb
test eax, 0xfe816603
add al, 0
cmp si, 4
xchg si, bx
xchg bx, si
je 0x43f46e
jne 0x441b09
cpuid
nop
ret
mov eax, dword [edi]
push 3
jmp 0x441b0e
push eax
jne 0x412d57
je 0x441b1b
and al, 0xe1
je 0x412d57
pop ebp
ret
call 0xda071b92
jmp 0x45addeb1
push eax
shl ch, 0x20
call fcn.00434832
lea ecx, [ebp - 0x10c]
push 0x105
push ecx
call fcn.0042c00f
lea edx, [ebp - 0x10c]
push 0
shl di, 0x20
push edx
call fcn.0044a738
lea eax, [ebp - 0x10c]
push eax
call fcn.004230ef
add esp, 0x28
lea ecx, [ebp - 0x10c]
push ecx
call fcn.0040fd2e
add esp, 4
test si, 0xcddf
test eax, eax
jb 0x44369b
je 0x443071
jne 0x442451
nop
cpuid
ret
mov eax, dword [ebp - 4]
test eax, eax
jb 0x431b83
je 0x40d998
jne 0x442468
cmp byte [edi], dh
cmpsb byte [esi], byte es:[edi]
cld
mov edx, dword [esi]
push 0x25
shl bh, 0x20
jmp 0x442470
push edx
call fcn.0042cb65
add esp, 8
pop edi
pop esi
pop ebx
mov ebx, ebx
mov esp, ebp
ja 0x40d992
jbe 0x44248f
xchg edi, eax
push ds
or cl, byte [edi]
xchg ch, bh
mov ah, 0xfc
invalid
jbe 0x40d992
fimul dword [ebx + 0xf]
mov byte [esi + 0x79fffde8], ch
add al, 0xf
mov byte [0x890fc3eb], al
mov byte [0x35fffde8], al
sbb dword [ebx - 0x77], 0x5f575dec
ret
fst dword [esi]
mov al, byte [ebp + 0xc]
jmp 0x4436a1
push ebx
mov bl, al
mov bh, bl
mov edx, ecx
mov eax, ebx
jmp 0x4436ac
push edi
mov edi, dword [ebp + 8]
push eax
pop eax
shl eax, 0x10
mov ax, bx
jne 0x44b4a2
je 0x4436c5
push esp
enter 0xffffffffffffe096, 0xf
test bh, dl
jge 0x4436ca
je 0x44b4a2
add byte [0xedc1664b], al
add eax, 0xedc1664b
inc eax
sar dword [edi], cl
shr di, 0x40
jmp dword [esi]
and eax, 0x24448f97
cld
jmp 0x41be8f
shr ecx, 2
rep stosd dword es:[edi], eax
shl ch, 0x20
mov ecx, edx
stc
and ecx, 3
jb 0x421f99
jmp fcn.0041eed9
pop dword [esp - 4]
jne 0x42c6ba
shl ax, 0x20
je 0x44c06f
add edi, dword [ecx + 0x6870fb5]
popfd
cld
push dword [esi + 4]
ja 0x415d7b
jbe 0x44c07b
jae 0x44c08d
leave
pop ebx
jbe 0x415d7b
mov eax, dword [esi + 4]
mov eax, dword [ebp + eax]
add esi, 8
shr dx, 0x40
shr ax, 0x40
shl eax, cl
add edx, 0xdfcce240
sub edx, 0xdfcce240
add edi, eax
test ecx, 0x80000000
jb 0x438d66
add byte [esi - 0x3f], ah
ljmp 0xd340
shl cl, 0x20
jne 0x433f46
je 0x44c0c1
movsb byte es:[edi], byte [esi]
sahf
and eax, 0x40e9c0ed
shr cl, 0x40
mov ecx, dword [esi]
add esi, 4
test ecx, 0x1000
jb 0x44995c
jne 0x428a2d
je 0x44c0e3
or ch, al
sbb cl, byte [edi]
test byte [ecx + ecx*8 - 3], al
invalid
je 0x428a2d
invalid