Function at 0x40ff90
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetVersion]
and eax, 0xff
cmp eax, 4
sbb eax, eax
inc eax
xor ebx, ebx
mov dword [esi + 0x3d0], eax
cmp eax, ebx
jne 0x40ffd8
push 0x98
push 0x42c7b0
push 0x42c7d4
call fcn.00414782
add esp, 0xc
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x2c
cmp dword [ebp + 0x10], 0x8000
mov dword [0x434928], 0x80
jae 0x410002
push 0xa0
push 0x42c7e0
push 0x42c804
call fcn.00414782
add esp, 0xc
mov eax, dword [ebp + 0x14]
lea edx, [eax + 2]
jmp 0x410010
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x410010
sub eax, edx
sar eax, 1
cmp eax, dword [0x434928]
jbe 0x41003e
push 0xa3
push 0x42c83c
push str._tcslen_szToolTip____m_nMaxTooltipLength
call fcn.00414782
add esp, 0xc
push edi
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x30]
push eax
mov dword [esi + 0x3c4], edi
mov dword [ebp - 0x30], 0x30
mov dword [ebp - 0x2c], 0xb
mov dword [ebp - 0x28], 0x40fea0
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], 0x42c794
mov dword [ebp - 4], ebx
call dword [sym.imp.USER32.dll_RegisterClassExW]
push ebx
push edi
push ebx
push ebx
push SysReAllocString
push SysReAllocString
push SysReAllocString
push SysReAllocString
push SysReAllocString
push 0x42c8b4
push str.TrayIconClass
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov ecx, dword [ebp + 0xc]
mov dword [esi + 0x3c8], eax
mov dword [esi + 8], 0x3bc
cmp ecx, ebx
je 0x4100ca
mov eax, ecx
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], eax
mov eax, dword [ebp + 0x14]
lea edx, [esi + 0x20]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], 7
sub edx, eax
mov edi, edi
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
cmp cx, bx
jne 0x4100f0
cmp dword [esi + 0x3e0], ebx
je 0x410208
mov eax, dword [ebp + 0x24]
cmp eax, ebx
je 0x410208
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
call edi
cmp eax, 0x100
jl 0x41013d
push 0xc0
push 0x42c8d4
push str.lstrlen_szBalloonTip____256
call fcn.00414782
add esp, 0xc
mov ebx, dword [ebp + 0x28]
test ebx, ebx
je 0x410163
push ebx
call edi
cmp eax, 0x40
jl 0x410163
push 0xc7
push 0x42c930
push str.lstrlen_szBalloonTitle____64
call fcn.00414782
add esp, 0xc
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x410190
cmp eax, 1
je 0x410190
cmp eax, 2
je 0x410190
cmp eax, 3
je 0x410190
push 0xcc
push 0x42c990
push str.NIIF_NONE__dwBalloonIcon__NIIF_INFO__dwBalloonIcon__NIIF_WARNING__dwBalloonIcon__NIIF_ERROR__dwBalloonIcon
call fcn.00414782
add esp, 0xc
mov edi, dword [ebp + 0x30]
cmp edi, 0xa
jb 0x41019d
cmp edi, 0x1e
jbe 0x4101b4
push 0xcf
push 0x42c9b4
push str.uBalloonTimeout___10__uBalloonTimeout___30
call fcn.00414782
add esp, 0xc
mov ecx, dword [ebp + 0x24]
or dword [esi + 0x14], 0x10
push 0xff
push ecx
lea edx, [esi + 0x128]
push edx
call fcn.00414718
add esp, 0xc
test ebx, ebx
je 0x4101e8
push 0x3f
lea eax, [esi + 0x32c]
push ebx
push eax
call fcn.00414718
add esp, 0xc
jmp 0x4101f1
xor ecx, ecx
mov word [esi + 0x32c], cx
mov edx, dword [ebp + 0x2c]
imul edi, edi, 0x3e8
mov dword [esi + 0x328], edi
mov dword [esi + 0x3ac], edx
xor ebx, ebx
mov edx, dword [esi + 0x3e0]
mov ecx, dword [ebp + 0x20]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x3d4], ecx
mov dword [esi + 0x3cc], eax
pop edi
cmp edx, ebx
je 0x410241
cmp ecx, ebx
je 0x410241
mov eax, 1
mov dword [esi + 0x14], 8
mov dword [esi + 0x120], eax
mov dword [esi + 0x124], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x418], eax
mov eax, 1
cmp ecx, ebx
je 0x410257
cmp edx, ebx
je 0x41027b
lea eax, [esi + 8]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
xor ecx, ecx
cmp eax, ebx
sete cl
mov dword [esi + 0x3d8], ecx
mov dword [esi + 0x3d4], ecx
mov dword [esi + 0x3dc], ecx
cmp dword [esi + 0x3e0], ebx
je 0x410291
cmp dword [ebp + 0x24], ebx
je 0x410291
xor ecx, ecx
mov word [esi + 0x128], cx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x2c