Function at 0x40fac0
Capabilities:
Check os version

Disassembly:
pop es
or al, 0x54
push esp
outsb dx, byte [esi]
je 0x40f94c
outsb dx, byte gs:[esi]
outsb dx, byte [esi]
jne 0x40f94c
je 0x40f96a
insd dword es:[edi], dx
je 0x40f900
inc eax
add byte [ebx + ecx*4 + 0x47], bl
add byte [eax], bl
add byte [eax], cl
push esp
outsb dx, byte [esi]
je 0x40f962
outsb dx, byte gs:[esi]
jne 0x40f98c
add al, byte [eax]
sbb al, 0xdb
inc ebp
add al, cl
or dword [ecx], eax
mov al, byte [0xa000410a]
or dword [ecx], eax
add byte [eax], al
add byte [eax - 0x80000000], al
or byte [eax], al
pop es
inc ebx
popal
jo 0x40f9ae
imul ebp, dword [edi + 0x6e], 0x45db1c
cld
or al, byte [ecx]
sub al, 0xb
inc ecx
add byte [ebx + ecx + 0x41], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x4804000f], al
imul ebp, dword [esi + 0x74], 0x40f9a8
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
clc
stc
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add ah, ah
stc
inc eax
add byte [eax], ah
add byte [eax], al
nop
pop dword [edi]
sub al, 0xa5
inc esp
add byte [edx + eax - 0x6193ffba], al
inc esp
test byte [edx], al
inc esi
add byte [esi + ebx*4 + 0x44], ch
add byte [edx + eax + 0x2800046], cl
inc esi
add al, cl
inc dword [ebp]
in al, 0xff
inc ebp
add ah, ch
rol dword [edi], 1
inc esp
add byte [eax + 0x24], cl
inc esp
add byte [edx + ebx*8], dl
inc edi
add byte [eax + 0x80047da], dh
mov byte [0xa3000044], al
inc esp
add byte [ebp + 0x44], al
add byte [eax], bl
mov byte [0xa2100044], al
inc esp
add byte [ebp + 0x44], cl
add byte [eax - 0x2f], dl
inc edi
add al, dl
sbb al, byte [ecx]
in al, dx
rcr byte [edx], 1
inc ecx
add ah, ch
fild word [edi]
xor bh, bl
inc edi
add byte [esp + edx*2], cl
push esp
outsb dx, byte [esi]
je 0x40fa37
popal
imul ebp, dword [esi + 0x4d], 0x90756e65
nop
nop
clc
stc
inc eax
add byte [edi], al
pop es
or al, 0x54
push esp
outsb dx, byte [esi]
je 0x40fa4c
popal
imul ebp, dword [esi + 0x4d], 0xa8756e65
stc
inc eax
add byte [eax + edx*4], ah
inc edi
add byte [ebx], cl
add byte [eax], cl
push esp
outsb dx, byte [esi]
je 0x40fa62
outsb dx, byte gs:[esi]
jne 0x40fa8c
add byte [eax], al
nop
push 0x40fa
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, al
cli
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx + edi*8 + 0x780040], ch
add byte [eax], al
je 0x40f9d8
inc edi
add byte [0x2840044], ch
add byte [edx + eax - 0x6193ffba], al
inc esp
test byte [edx], al
inc esi
add byte [esi + ebx*4 + 0x44], ch
add byte [edx + eax + 0x2800046], cl
inc esi
add al, cl
inc dword [ebp]
in al, 0xff
inc ebp
add byte [eax + 0x1b], dl
inc ecx
add byte [0xa1200044], ch
sub al, 0x25
inc esp
add byte [eax], ah
mov eax, dword [0x24480044]
inc esp
add byte [edx + ebx*8], dl
inc edi
add byte [eax + 0x80047da], dh
mov byte [0xa3000044], al
inc esp
add byte [ebp + 0x44], al
add byte [eax], bl
mov byte [0xa2100044], al
inc esp
add byte [ebp + 0x44], cl
adc byte [edx - 0x5ab3ffbc], ah
inc esp
add al, bh
sbb al, byte [ecx]
cwde
sbb eax, dword [ecx]
inc eax
rol byte [edi], cl
sub al, 0xda
inc edi
add byte [eax - 0x1a], bh
inc edi
add byte [eax + 0xd00411b], dh
push esp
push esp
outsb dx, byte [esi]
je 0x40fb02
outsd dx, dword [esi]
jo 0x40fb2a
jo 0x40fb04
outsb dx, byte gs:[esi]
jne 0x40fa4b
nop
sar dl, 0x40
add byte [edi], al
pop es
or eax, 0x746e5454
push eax
outsd dx, dword [esi]
jo 0x40fb3f
jo 0x40fb19
outsb dx, byte gs:[esi]
jne 0x40fb38
cli
inc eax
add byte [eax], dl
xchg ebx, eax
inc edi
add byte [eax], dl
add byte [eax], cl
push esp
outsb dx, byte [esi]
je 0x40fb2b
outsb dx, byte gs:[esi]
jne 0x40fb55
add byte [eax], al
xor bl, bh
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx + edi*8 + 0x40], al
add byte [eax], al
inc esp
sti
inc eax
add byte [eax], bl
add byte [eax], al
add byte [eax], bl
xchg ebp, eax
inc edi
add byte [eax + 2], bh
inc esi
add byte [edx + eax + 0x2880046], al
inc esi
add byte [edx + eax + 0x2800046], cl
inc esi
add al, cl
add al, byte [esi]
mov word [edx], es
inc esi
add byte [eax - 0x37ffb9fe], al
inc dword [ebp]
in al, 0xff
inc ebp
add byte [eax + 0x1c], ah
inc esp
add byte [esi + ebx], al
add al, 0x1e
inc esp
add byte [eax + 0x1cb40044], al
mov ah, 0x1c
inc esp
add byte [eax], dh
sbb eax, 0x1c000044
inc ecx
add byte [eax], al
sbb al, 0x41
add byte [0x746e5454], cl
push eax
outsd dx, dword [esi]
jo 0x40fbc2
jo 0x40fb9b
imul esi, dword [ebx + 0x74], 0xfb589090
sti
inc eax
add byte [edi], al
pop es
or eax, 0x746e5454
push eax
outsd dx, dword [esi]
jo 0x40fbd7
jo 0x40fbb0
imul esi, dword [ebx + 0x74], sym.ALKATIP57.exe__Tntmenus_TTntPopupList_
add al, 0x87
inc edi
add byte [eax], al
add byte [eax], cl
push esp
outsb dx, byte [esi]
je 0x40fbc3
outsb dx, byte gs:[esi]
jne 0x40fbed
add byte [eax], al
add byte [eax], al
inc ebp
cld
xor ecx, ecx
mov dl, 1
mov eax, dword [sym.ALKATIP57.exe__Tntmenus_TTntMenuItem_]
call fcn.00479f6c
mov edi, eax
mov esi, dword [ebp + 0xc]
jne 0x40fbd1
test esi, esi
jl 0x40fbdc
inc esi
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebx]
mov eax, edi
call fcn.0047c260
add ebx, 4
dec esi
jne 0x40fbcd
ret
mov edx, dword [ebp - 4]
mov eax, edi
call sym.ALKATIP57.exe__Tntmenus_TTntMenuItem_SetCaption_qqrx17System_WideString
mov eax, dword [ebp - 8]
mov dword [edi + 0x54], eax
mov edx, dword [ebp - 0xc]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dl, byte [ebp + 8]
mov eax, edi
call fcn.0047be10
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push ebp
hlt