Function at 0x4066b0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x476ea8
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x492afc]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov edi, ecx
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x2c]
push eax
push ecx
mov byte [esp + 0x58], 2
mov ecx, esp
mov dword [esp + 0x28], esp
push str.TOOLTIP
call fcn.004027e0
push edi
call fcn.004077d0
lea ecx, [esp + 0x28]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.TOOLTITLE
call fcn.004027e0
push edi
call fcn.004077d0
lea edx, [esp + 0x24]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.TOOLMSG1
call fcn.004027e0
push edi
call fcn.004077d0
mov ebx, dword [edi + 0x114]
lea esi, [edi + 0x118]
call dword [sym.imp.KERNEL32.dll_GetVersion]
and eax, 0xff
cmp eax, 4
sbb eax, eax
inc eax
xor ecx, ecx
mov dword [esi + 0x64], eax
cmp eax, ecx
je 0x406779
push ebx
mov eax, edi
call fcn.0040ac60
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ecx
lea eax, [esp + 0x20]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.MENU1
mov byte [esp + 0x5c], 6
call fcn.004027e0
push edi
call fcn.004077d0
lea ecx, [esp + 0x1c]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.MENU2
call fcn.004027e0
push edi
call fcn.004077d0
lea edx, [esp + 0x18]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.MENU3
call fcn.004027e0
push edi
call fcn.004077d0
lea eax, [esp + 0x14]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.MENU4
call fcn.004027e0
push edi
call fcn.004077d0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x406833
mov esi, eax
mov eax, dword [eax]
test eax, eax
je 0x40682d
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov ecx, dword [esi]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
test eax, eax
jne 0x40682f
push 0x8007000e
call fcn.00414020
xor eax, eax
mov esi, eax
jmp 0x406835
xor esi, esi
lea ebx, [edi + 0x16c]
test esi, esi
jne 0x406843
xor eax, eax
jmp 0x40685f
mov eax, esi
lea ecx, [eax + 2]
jmp 0x406850
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x406850
sub eax, ecx
sar eax, 1
push eax
push esi
mov ecx, ebx
call fcn.00402590
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x40689d
mov esi, eax
mov eax, dword [eax]
test eax, eax
je 0x406897
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov edx, dword [esi]
push eax
push edx
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
test eax, eax
jne 0x406899
push 0x8007000e
call fcn.00414020
xor eax, eax
mov esi, eax
jmp 0x40689f
xor esi, esi
lea ebx, [edi + 0x170]
test esi, esi
jne 0x4068ad
xor eax, eax
jmp 0x4068c1
mov eax, esi
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4068b2
sub eax, ecx
sar eax, 1
push eax
push esi
mov ecx, ebx
call fcn.00402590
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4068ff
mov esi, eax
mov eax, dword [eax]
test eax, eax
je 0x4068f9
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
push eax
mov eax, dword [esi]
push eax
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
test eax, eax
jne 0x4068fb
push 0x8007000e
call fcn.00414020
xor eax, eax
mov esi, eax
jmp 0x406901
xor esi, esi
lea ebx, [edi + 0x174]
test esi, esi
jne 0x40690f
xor eax, eax
jmp 0x406923
mov eax, esi
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x406914
sub eax, ecx
sar eax, 1
push eax
push esi
mov ecx, ebx
call fcn.00402590
mov eax, dword [esp + 0x14]
test eax, eax
je 0x406961
mov esi, eax
mov eax, dword [eax]
test eax, eax
je 0x40695b
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov ecx, dword [esi]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
test eax, eax
jne 0x40695d
push 0x8007000e
call fcn.00414020
xor eax, eax
mov esi, eax
jmp 0x406963
xor esi, esi
lea ebx, [edi + 0x178]
test esi, esi
jne 0x406971
xor eax, eax
jmp 0x406985
mov eax, esi
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x406976
sub eax, ecx
sar eax, 1
push eax
push esi
mov ecx, ebx
call fcn.00402590
cmp dword [ebp + 8], 5
jne 0x40699f
push 5
call fcn.004065a0
xor ebx, ebx
jmp 0x4069f3
mov eax, dword [edi + 0x20]
lea edx, [esp + 0x34]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x40]
sub ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
sub edx, dword [esp + 0x34]
xor ebx, ebx
push ebx
push ecx
push edx
push 0xfffffc18
push 0xfffffc18
push 0x497150
mov ecx, edi
call fcn.00427389
push ebx
mov ecx, edi
call fcn.004270ee
push ebx
push 0x80
push 0x40000
mov ecx, edi
call fcn.00427020
mov esi, dword [esp + 0x14]
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp esi, ebx
je 0x406a39
lea eax, [esi + 8]
push eax
call edi
test eax, eax
jne 0x406a35
cmp esi, ebx
je 0x406a35
mov eax, dword [esi]
cmp eax, ebx
je 0x406a1c
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x406a2c
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x14], ebx
mov esi, dword [esp + 0x18]
cmp esi, ebx
je 0x406a79
lea ecx, [esi + 8]
push ecx
call edi
test eax, eax
jne 0x406a75
cmp esi, ebx
je 0x406a75
mov eax, dword [esi]
cmp eax, ebx
je 0x406a5c
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x406a6c
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x18], ebx
mov esi, dword [esp + 0x1c]
cmp esi, ebx
je 0x406ab9
lea edx, [esi + 8]
push edx
call edi
test eax, eax
jne 0x406ab5
cmp esi, ebx
je 0x406ab5
mov eax, dword [esi]
cmp eax, ebx
je 0x406a9c
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x406aac
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x1c], ebx
mov esi, dword [esp + 0x20]
cmp esi, ebx
je 0x406af9
lea eax, [esi + 8]
push eax
call edi
test eax, eax
jne 0x406af5
cmp esi, ebx
je 0x406af5
mov eax, dword [esi]
cmp eax, ebx
je 0x406adc
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x406aec
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x20], ebx
mov esi, dword [esp + 0x24]
cmp esi, ebx
je 0x406b39
lea ecx, [esi + 8]
push ecx
call edi
test eax, eax
jne 0x406b35
cmp esi, ebx
je 0x406b35
mov eax, dword [esi]
cmp eax, ebx
je 0x406b1c
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x406b2c
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x24], ebx
mov esi, dword [esp + 0x28]
cmp esi, ebx
je 0x406b79
lea edx, [esi + 8]
push edx
call edi
test eax, eax
jne 0x406b75
cmp esi, ebx
je 0x406b75
mov eax, dword [esi]
cmp eax, ebx
je 0x406b5c
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x406b6c
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x28], ebx
mov esi, dword [esp + 0x2c]
cmp esi, ebx
je 0x406bb5
lea eax, [esi + 8]
push eax
call edi
test eax, eax
jne 0x406bb5
cmp esi, ebx
je 0x406bb5
mov eax, dword [esi]
cmp eax, ebx
je 0x406b9c
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x406bac
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4