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

Disassembly:
test byte [ebp + ebx], al
jb 0x430c0f
mov cx, cx
jmp dword [esi]
mov edx, dword [esi]
push 0
jmp 0x42eb41
push edx
call fcn.00453232
mov eax, dword [esi]
jmp 0x42eb4b
push eax
call fcn.00434460
mov ecx, dword [esi]
mov di, ax
and edi, 0xffff
jb 0x457da7
push 0x42ebc6
ret
shr di, 0x40
mov ax, word [ebp + eax]
mov ebp, ebp
lea esi, [esi + 0xc]
stc
add word [ebx + edx], ax
jmp dword [esi]
xor eax, 0x42d3bb94
add byte [eax], dh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ebx + ecx*8 + 0x43], al
add byte [ecx], al
ja 0x430c67
add byte [esi], al
mov ebp, 0x7c540043
inc esi
add byte [edi + 0x7e], ah
inc ebx
add byte [eax], ah
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [edx], cl
int1
inc esp
add byte [ebp + 0xc], al
inc ebx
add byte [ebp + ebp - 0x5bbd55d], dh
inc ebp
add byte [eax + eax], al
add byte [eax + eax], al
add byte [esi + 0x3a], ah
inc ebp
add byte [eax + eax], bh
add byte [eax], al
cmp al, 0
add byte [eax], al
aad 0x2a
inc ebp
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
xor ebx, dword [edi]
inc ebx
add byte [0x35000000], bh
add byte [eax], al
add byte [ebx], dh
pop ds
inc ebx
add byte [0x3d000000], dh
add byte [eax], al
add byte [ebp + 0x78], bl
inc ebx
add byte [eax + eax], bh
add byte [eax], al
cmp al, byte [ebp]
xor byte [eax], al
add byte [eax], al
xor al, 0
add byte [eax], al
aad 0x14
inc ebp
add ah, ch
xchg ecx, eax
enter 0x3416, 0
add byte [eax], al
adc al, 0x2b
inc ebx
add ah, ch
xchg ecx, eax
enter 0x3416, 0
add byte [eax], al
adc ebp, dword [esi]
inc ebp
add bh, bh
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
inc esp
retf
invalid
call fcn.00469138
call 0x4490cf
xor eax, 0x24448fba
pop dword [esp - 4]
mov bl, bl
shl byte [ebx + edx], cl
shr ebx, 0x40
jmp dword [esi]
jmp dword [esi]
fnstcw word [ecx - 0x7af7ba75]
ror byte [edi], 0x82
popal
and dword [edx], eax
add byte [edi], cl
test byte [edi], bl
scasb al, byte es:[edi]
add byte [eax], al
invalid
and edx, edx
jno 0x43507a
jmp 0xfbeda21
jno 0x443e49
mov dh, dh
js 0x45fa24
jns 0x43508c
aad 0xc9
jmp dword [esi]
daa
mov edx, 0x468b5f57
add al, 0x86
inc byte [esi + 0x85e8bf7]
mov ebx, dword [ebp + ebx]
lea esi, [esi + 0xc]
and word [ebx], ax
jb 0x440aa2
lea edi, [esi + 8]
je 0x438e0d
jne 0x438e01
pop edx
int 0x9f
mov esp, 0x8b9
add byte [eax - 0x3ed6ff13], al
mov ecx, 8
sub ch, 0
sub ecx, eax
add edi, ecx
push edi
call fcn.00452be7
mov eax, eax
mov esi, eax
and ch, ch
add esp, 4
test esi, esi
jb 0x444beb
push 0x43b7da
ret
xor eax, 0x24448f7d
cld
push ebp
mov ebp, esp
sub esp, 0x50
jne 0x44a609
je 0x4393f0
and dword [eax], ecx
test dword [edi], ecx
test byte [ebx], dl
adc al, byte [ecx]
add bh, al
aad 0x71
in al, 0x43
add byte [edx], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [edi], al
sti
inc ebp
add byte [eax], ah
add byte [eax], al
add byte [0x1b000000], bh
and byte [ebp], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
popal
add byte [eax + 0x38], al
add byte [ecx], ah
add byte [eax], al
or al, byte [eax]
add byte [eax], al
cwde
mov al, byte [0x6ee30045]
inc esp
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
pop ebp
js 0x439486
je 0x44a609
invalid
add byte [eax + eax], al
add byte [ebx + edi*4 + 0x7ed0043], dh
lea esp, [esp - 0x64]
push ebp
lea ebp, [esp + 8]
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], edi
pop dword [ebp + 0x44]
lea esi, [esp + 0x68]
lea edi, [esp + 4]
mov ecx, 4
or ecx, ecx
je 0x439482
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
dec ecx
jne 0x439479
mov dword [ebp + 0x40], esp
mov dword [esp], 0x439497
mov esi, 0x4394b5
jmp dword [esi]
test byte [eax + eax], ah
add byte [eax], al
add byte [edi - 0x41ffbc6c], dl
mov ch, 0x94
inc ebx
add bh, bh
mov eax, dword es:[ebp + 0x30]
mov ebx, dword [ebp + 0x3c]
mov esi, dword [ebp + 0x48]
mov edi, dword [ebp + 0x4c]
mov ebp, dword [ebp + 0x44]
pop edx
lea esp, [esp + 0x60]
mov ecx, dword [esp]
lea esp, [esp + edx]
mov dword [esp], ecx
ret
pop esi
pop ebx
mov bx, bx
pop ebp
ret
mov ecx, dword [ebx]
sar ecx, 3
push ecx
push esi
call fcn.0043b113
xchg cl, bh
xchg bh, cl
mov edx, dword [edi]
push edx
push esi
call fcn.00464943
push 0x103
jno 0x45de7e
jo 0x439d75
scasb al, byte es:[edi]
out 0xf, eax
add byte [ebx], 0x41
add al, byte [eax]
jo 0x45de7e
add eax, 0x4468bb7
mov ebx, dword [esi + 8]
mov bh, bh
push 0x44053e
ret
jmp 0x43d9fc
push ecx
mov bp, bp
call fcn.00461c96
add esp, 0xc
mov ch, ch
jmp 0x43da29
mov edx, 0xd4d4d4d4
mov dword [ebp - 0xf0], edx
mov dword [ebp - 0xec], edx
mov edi, edi
lea eax, [ebp - 0x11c]
js 0x44fa4c
jns 0x43da3d
cpuid
ret
jns 0x44fa4c
and eax, 0x26c35dfb
xchg edx, eax
jmp 0x43da4a
push esi
call fcn.00468d6f
mov ebx, dword [ebp + 0x10]
stc
and eax, 0xffff
jb 0x4393d5
shl eax, 3
mov ax, ax
jmp 0x43da67
push eax
mov dword [ebx], eax
shr ch, 0x40
call fcn.00452be7
shr bx, 0x40
mov edi, dword [ebp + 0xc]
cmc
add esp, 8
test eax, eax
jb 0x448d99
mov dword [edi], eax
jne 0x439d4b
je 0x43da95
xchg esi, eax
pop ebp
mov edx, dword [ebp + 0x14]
push 0xc
mov eax, dword [edx]
jmp 0x43da9d
push eax
call fcn.0044b565
mov ax, word [ebp + 8]
add esp, 8
pop edi
js 0x439d42
jns 0x43daba
xlatb
sbb dword [esi + 0xf], edi
mov dword [edx + 0x34ffffc2], eax
push esi
jns 0x439d42
xor al, 0x56
push edx
call fcn.00452bfe
shr bp, 0x40
push edi
call fcn.00452bfe
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00448b00
xchg dh, bl
push edx
pop edx
xchg bl, dh
shl dh, 0x20
mov cl, byte [ebp + 0xc]
shr bp, 0x40
xchg dh, al
xchg al, dh
mov dx, word [ebp + 0x10]
push eax
push esi
call fcn.00436fa1
mov dword [0x4597eb], 0x48
dec eax
add byte [eax], al
add byte [ebx + ecx*8 + 0x43], al
add byte [edx + edx*2], ah
inc ebx
add byte [ebx], dl
inc ebp
add bh, bh
inc dword [eax]
add byte [eax + eax], dh
add byte [eax], al
inc esp
retf
lea ecx, [ebp - 0x100]
push 0x100
push ecx
mov al, al
jmp 0x43fb35
push edx
ja 0x454ad1
jbe 0x43fb41
les ebp, [esi + 0x4f8a860f]
add dword [eax], eax
jbe 0x454ad1
invalid
jmp 0x4405ab
push edi
call fcn.00439dc4
add esp, 0xc
cmc
test al, al
jb 0x4522a8
je 0x4405e0
mov eax, eax
jne 0x4405ce
push ds
loopne 0x4405e3
mov edx, dword [esi]
push 0xa
jmp 0x4405d3
push edx
call fcn.004433dd
add esp, 8
push 8
push 0x5a4040
push edi
call fcn.00439dc4
add esp, 0xc
test al, al
jb 0x43624d
inc eax
inc eax
pop edx
add byte [edi - 0x18], dl
xlatb
xchg edi, eax
invalid
push 0x434fca
ret
mov edx, dword [esi + 8]
ja 0x42f3ec
jbe 0x441c8e
loop 0x441c9b
mov byte [0x58860fc3], al
xlatb
invalid
jbe 0x42f3ec
invalid
add byte [ecx], bh
push edi
rol dword [eax], 0x10
add byte [eax], al
jb 0x4560a5
jne 0x43b4aa
je 0x441cb4
sub ch, byte [esi]
shl ah, 0x20
shr bh, 0x40
push 0x4386e9
ret
xor byte [eax], al
add byte [esp + edx*4], dh
jb 0x436e9c
js 0x466161
jns 0x447d88
jle 0x447dcc
jns 0x466161
xor al, 0x5d
jmp dword [esi]
jne 0x447d78
push ecx
pop ecx
mov ebx, dword [ebp + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [esi + 8]
mov ax, word [ebp + eax]
mov di, di
jne 0x45ece0
je 0x447db2
jns 0x447d6d
jae 0x447dc2
je 0x45ece0
test byte [eax], ch
outsd dx, dword [esi]
add dword [eax], eax
add eax, 0x1d44319a
add byte [edi], cl
and byte [ebp + 0x3b], 1
add bh, bh
inc ebp
test eax, 0x40ebc166
add dword [eax], eax
jmp dword [esi]
shr bp, 0x40
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov al, byte [ebp + eax]
mov ebx, dword [ebp + ebx]
lea esi, [esi + 0xc]
sub si, 0
ja 0x435072
jbe 0x447df2
sti
jmp 0x8653913a
jbe 0x435072
and eax, 0x3e8c100
push eax
push esi
call fcn.0043b113
push 0
shr eax, 0x40
jne 0x4530bb
je 0x447e15
fild qword [eax]
jmp 0x447e25
je 0x4530bb
and byte [edx], 0xc7
inc ebp
cld
add byte [eax], al
add byte [eax], al
mov eax, dword [esi]
push es
jmp 0x447e27
push eax
call fcn.004687de
add esp, 4
or cl, cl
test ax, ax
jb 0x45c715
je 0x42eb3c
shl bx, 0x20
shl edx, 0x20
jne 0x447e52
jmp [ebx - 0x3f]
mov ecx, dword [esi]
push 0xa
jmp 0x447e57
push ecx
call fcn.0044b565
add esp, 8
call fcn.0045dba1
fst dword [eax - 1]
test byte [ebp - 0x17f73], 0xff
push 1
lea edx, [ebp - 0x100]
jmp 0x447e7c
push ecx
push edx
call fcn.0043818a
add esp, 0x10
test esi, 0x8797f0e6
test ax, ax
jb 0x44436c
je 0x447ec5
jne 0x447ea4
jecxz 0x447e52
mov byte [0xf786fe86], al
xchg dh, bh
xchg bh, dh
jmp 0x447ea9
push eax
mov bp, bp
mov eax, dword [esi]
jmp 0x447eb1
push eax
call fcn.0044b565
add esp, 8
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esi]
shr ebx, 0x40
jmp 0x43fb25
ficomp dword [eax + 0x51]
call fcn.004433dd
add esp, 8
push 8
push 0x5a4020
jno 0x4405aa
jo 0x448a14
push 0xffffffffffffffc2
mov cl, 0xf
adc byte [eax + 0x35ffff7b], 0x80
jo 0x4405aa
xor eax, 0xeac16680
inc eax
invalid
shl di, 0x20
jmp 0x44a60e
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, 7
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
push edi
pop edi
mov ax, word [esi + 0x18]
xor ebx, ebx
jb 0x434bdf
cmp ax, 0x100
push edi
mov dword [ebp - 8], ebx
call fcn.0046217e
invalid
jmp dword [esi]
push edi
mov ah, ah
push edx
call fcn.00469138
mov eax, esi
jne 0x453752
je 0x44d812
pop ebp
or ecx, dword [edi]
test byte [edx], bh
pop edi
add byte [eax], al
je 0x453752
fisub dword [edx]
ja 0x450f72
jbe 0x44d824
and byte [esi + 0xf], bh
xchg byte [eax + 0x37], cl
add byte [eax], al
jbe 0x450f72
xor byte [edx], 0x8b
pop ebp
inc esp
mov eax, dword [esi + 4]
jno 0x441c7f
jo 0x44d83c
das
dec byte [edi]
cmp byte [0xc7ffff44], 0x55
jmp 0x46ac11
jo 0x441c7f
invalid
mov word [edx], ds
mov bp, bp
mov eax, dword [ebp + 0x44]
mov edx, dword [esi + 4]
mov al, al
mov ebx, dword [esi + 8]
jne 0x45ba05
je 0x44debe
salc
pop edx
or al, byte [edi + 0xf]
test byte [ecx - 0x25], al
add byte [eax], al
je 0x45ba05
and eax, 0xcc481b6
add byte [eax], al
add byte [esi - 0x48], ah
and dword [eax], eax
pop edi
pop esi
pop ebx
mov esp, ebp
shl bp, 0x20
pop ebp
ret
push eax
call fcn.00441aef
add esp, 4
test ax, ax
jb 0x454269
call fcn.0045e5b0
xor eax, 0x43785d4f
add byte [eax + eax], al
add byte [ebx + edi*4 + 0x14110043], dh
cmpsd dword [esi], dword es:[edi]
loopne 0x44fabc
add byte [ebx + 0x300042d3], bh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ebx + ecx*8 + 0x43], al
add byte [esi], dh
leave
inc ebp
add byte [esi], al
mov ebp, 0xb8730043
inc edx
add byte [edx], cl
int1
inc esp
add byte [eax - 0x6dffbb06], ah
xor al, 0xa4
clc
inc ebx
add byte [eax], ah
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
aad 0x2a
inc ebp
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
pop ebp
js 0x44fafe
add byte [eax], cl
add byte [eax], al
cmp al, byte [ebp]
xor al, 0
dec eax
add byte [eax], al
add byte [esi + 0x3a], ah
inc ebp
add byte [eax + eax], dh
add byte [eax], al
xor al, 0
add byte [eax], al
cmp al, byte [ebp]
xor byte [eax], al
add byte [eax], al
xor al, 0
add byte [eax], al
and al, 0x2b
inc ebp
add byte [0x340042b8], al
fmul qword [ebp - 0x74fbdb9c]
lea esp, [esp + 4]
mov eax, dword [esi + 4]
mov eax, dword [ebp + eax]
xchg bl, ah
xchg ah, bl
mov ebx, dword [esi + 8]
movzx eax, word [eax]
lea esi, [esi + 0xc]
mov dword [ebp + ebx], eax
jmp dword [esi]
or al, 0x9a
jmp 0x4311b7
invalid
out dx, eax
jmp dword [esi]
ret
mov esi, dword [ebp + esi]
jno 0x44b1bd
jo 0x450f82
aas
arpl word [eax + 0x13], bx
jo 0x44b1bd
cmp byte [0x5a29810f], 0xff
push dword [eax + 3]
mov esp, 0x840f2547
lcall 0xed89, 0x66fffe3f
mov ebx, dword [esi + 4]
lea esi, [esi + 8]
jmp fcn.00433cd1
push esi
ja 0x431d7b
xchg bl, dl
xchg dl, bl
jbe 0x4530cb
cmp eax, 0xaa860f5e
in al, dx
std
invalid
jbe 0x431d7b
fidivr dword [edi + ecx + 0x54498]
mov bp, bp
jmp dword [esi]
jno 0x43f458
lea edx, [edx]
jo 0x453697
and dword [ebx - 0x7ff01b83], ebx
mov ebx, 0x25fffebd
jno 0x453706
jo 0x43f458
and eax, 0xebc16671
inc eax
shr ebx, 0x40
call fcn.0044a471
jmp 0x465191
ret
add esp, 0x24
and eax, 7
jb 0x4489f4
js 0x438df2
jns 0x45376e
sub al, 0xde
inc ebp
jns 0x438df2
ficom dword [ebx + ebp*8 - 0x9000f01]
call fcn.00438e36
xor ecx, ecx
jb 0x44dea2
mov cx, word [edi + 0x24]
push ecx
mov ecx, ecx
mov edx, edx
push esi
call fcn.00454f74
mov dx, word [edi + 0x1c]
jmp 0x45379d
push edx
push esi
call fcn.004392e8
mov dl, dl
mov ax, word [edi + 0x28]
push ebx
pop ebx
push eax
jmp 0x4537b0
push esi
call fcn.0042e48e
push 0x189
jmp 0x4537bd
push esi
shr ecx, 0x40
call fcn.0044aa0f
add esp, 0x30
jmp fcn.00434bf9
sub ebx, esp
shl ebp, 0x20
mov ebx, dword [esi + 8]
ja 0x456b48
jbe 0x45427c
xchg edi, eax
sbb esi, edx
jbe 0x456b48
fldenv [ebx + 0x83826ff]
shr ch, 0x40
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov al, byte [ebp + eax]
lea esi, [esi + 0xc]
adc byte [ebp + ebx], al
jmp dword [esi]
call fcn.00461c96
mov ecx, dword [esi]
shr eax, 0x40
pop dword [esp - 4]
mov ebx, dword [ebp + 8]
xchg di, bx
xchg bx, di
lea ecx, [ebp - 0x100]
push ebx
xchg al, cl
xchg cl, al
shr dx, 0x40
push ecx
call fcn.00453232
lea edx, [ebp - 0x100]
js 0x44d7fc
jns 0x454d03
sub eax, 0xf3890f0b
mov bh, bh
inc dword [0xd4850fdf]
jns 0x44d7fc
add eax, 0xd4850fdf
jo 0x454d10
add byte [ebx + eax + 0x35], dh
sahf
outsb dx, byte [esi]
je 0x45bde5
fsubr st(5)
cmp al, byte [ebp]
xor byte [eax], al
add byte [eax], al
xor al, 0
add byte [eax], al
movzx eax, byte [edx]
adc ebp, dword [esi]
inc ebp
add bh, bh
inc dword [eax]
add byte [eax + eax], dh
add byte [eax], al
inc esp
retf
xlatb
add byte [edi], cl
sbb byte [0xc7ffffeb], 0xa5
invalid
mov ecx, dword [esi + 4]
mov bx, bx
mov ebx, dword [ebp + ebx]
lea esi, [esi + 0xc]
shr word [ebx], cl
jmp dword [esi]
mov byte [esi + 0xbb], al
mov ebp, ebp
mov word [esi + 0xbc], di
js 0x453689
mov bp, bp
jns 0x4582e3
nop
cpuid
ret
jns 0x453689
invalid
xchg edx, eax