Function at 0x409043
Capabilities:
Check os version
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x540
mov dword [ebp - 0x430], 0
mov eax, dword [ebp + 8]
mov dword [0x42b380], eax
call fcn.0040d320
cmp eax, 1
jne 0x40908d
cmp dword [0x425ae8], 1
jne 0x409085
push 0x425d24
push str._s:_Service_unavailable_on_Terminal_Server._n
push 0
call fcn.0040cc10
add esp, 0xc
or eax, 0xffffffff
jmp 0x409849
lea ecx, [ebp - 0x508]
push ecx
call fcn.0040d2c0
add esp, 4
test eax, eax
je 0x4090a8
or eax, 0xffffffff
jmp 0x409849
call fcn.0040ccf0
push 0x42a808
push str.Show9xServerIcon
push 0x425d7c
call fcn.0040d4b0
add esp, 0xc
mov edx, dword [ebp + 0x10]
push edx
lea eax, [ebp - 0x4b4]
push eax
call fcn.004179d0
add esp, 8
lea ecx, [ebp - 0x4b4]
push ecx
call fcn.00422bb0
add esp, 4
mov byte [0x42b280], 0
mov dword [ebp - 0x4ec], 0
jmp 0x409108
mov edx, dword [ebp - 0x4ec]
add edx, 1
mov dword [ebp - 0x4ec], edx
mov eax, dword [ebp - 0x4ec]
movsx ecx, byte [ebp + eax - 0x4b4]
test ecx, ecx
je 0x40925b
mov edx, dword [ebp - 0x4ec]
movsx eax, byte [ebp + edx - 0x4b4]
cmp eax, 0x2f
jne 0x409230
cmp dword [ebp - 0x4ec], 0
je 0x40914b
mov ecx, dword [ebp - 0x4ec]
mov byte [ecx + 0x42b27f], 0
mov edx, dword [ebp - 0x4ec]
add edx, 1
mov dword [ebp - 0x4ec], edx
mov dword [ebp - 0x4f0], 0
jmp 0x409175
mov eax, dword [ebp - 0x4ec]
add eax, 1
mov dword [ebp - 0x4ec], eax
mov ecx, dword [ebp - 0x4ec]
movsx edx, byte [ebp + ecx - 0x4b4]
test edx, edx
je 0x4091da
mov eax, dword [ebp - 0x4ec]
movsx ecx, byte [ebp + eax - 0x4b4]
cmp ecx, 0x2f
jne 0x40919c
jmp 0x4091da
mov edx, dword [ebp - 0x4ec]
movsx eax, byte [ebp + edx - 0x4b4]
cmp eax, 0x20
je 0x4091d8
mov ecx, dword [ebp - 0x4f0]
mov edx, dword [ebp - 0x4ec]
mov al, byte [ebp + edx - 0x4b4]
mov byte [ebp + ecx - 0x28c], al
mov ecx, dword [ebp - 0x4f0]
add ecx, 1
mov dword [ebp - 0x4f0], ecx
jmp 0x409166
mov edx, dword [ebp - 0x4f0]
mov byte [ebp + edx - 0x28c], 0
push str.MSGON
lea eax, [ebp - 0x28c]
push eax
call fcn.00417810
add esp, 8
test eax, eax
jne 0x40920c
mov dword [0x425ae8], 1
jmp 0x40922e
push str.MSGOFF
lea ecx, [ebp - 0x28c]
push ecx
call fcn.00417810
add esp, 8
test eax, eax
jne 0x40922e
mov dword [0x425ae8], 0
jmp 0x40925b
mov edx, dword [ebp - 0x4ec]
mov eax, dword [ebp - 0x4ec]
mov cl, byte [ebp + eax - 0x4b4]
mov byte [edx + 0x42b280], cl
mov edx, dword [ebp - 0x4ec]
mov byte [edx + 0x42b281], 0
jmp 0x4090f9
cmp dword [0x425ae8], 0xffffffff
jne 0x40928e
push 0x425ae8
push str.ShowServerMessages
push 0x425dd0
call fcn.0040d4b0
add esp, 0xc
cmp dword [0x425ae8], 0xffffffff
jne 0x40928e
mov eax, dword [0x42a808]
mov dword [0x425ae8], eax
push 0x9c
push 0
lea ecx, [ebp - 0x42c]
push ecx
call fcn.00417510
add esp, 0xc
mov dword [ebp - 0x42c], 0x9c
lea edx, [ebp - 0x42c]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov dword [ebp - 0x4f8], eax
cmp dword [ebp - 0x4f8], 0
jne 0x4092ec
mov dword [ebp - 0x42c], 0x94
lea eax, [ebp - 0x42c]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x4092ec
xor eax, eax
jmp 0x409849
mov ecx, dword [ebp - 0x41c]
mov dword [ebp - 0x540], ecx
cmp dword [ebp - 0x540], 2
je 0x409303
jmp 0x40933a
cmp dword [ebp - 0x428], 5
jne 0x40933a
cmp dword [ebp - 0x424], 1
jb 0x40933a
cmp dword [0x425ae8], 1
jne 0x409332
push 0x425e00
push str._s:_Service_unavailable_on_XP_operating_system._n
push 0
call fcn.0040cc10
add esp, 0xc
or eax, 0xffffffff
jmp 0x409849
push str.spnServerInstCntlr
push 0
push 0
lea edx, [ebp - 0x508]
push edx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [0x42b498], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x4fc], eax
cmp dword [ebp - 0x4fc], 0xb7
je 0x409376
cmp dword [ebp - 0x4fc], 5
jne 0x40939b
cmp dword [0x425ae8], 1
jne 0x409393
push 0x425e48
push str._s:_Another_license_server_running__n
push 0
call fcn.0040cc10
add esp, 0xc
or eax, 0xffffffff
jmp 0x409849
call fcn.0040c1c0
mov dword [ebp - 0x4e4], 0x30
mov dword [ebp - 0x4e0], 3
mov dword [ebp - 0x4dc], 0x40984f
mov dword [ebp - 0x4d8], 0
mov dword [ebp - 0x4d4], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x4d0], eax
push 0x425e84
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [ebp - 0x4cc], eax
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [ebp - 0x4c8], eax
mov dword [ebp - 0x4c4], 5
mov dword [ebp - 0x4c0], str.MainMenu
mov dword [ebp - 0x4bc], str.SPNServer
push str.MAINICON
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [ebp - 0x4b8], eax
lea eax, [ebp - 0x4e4]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
and eax, 0xffff
test eax, eax
jne 0x409456
mov eax, 1
jmp 0x409849
cmp dword [0x42a808], 0
je 0x40952c
push 0x88
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [0x42b378], eax
push 0x83
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [0x42b37c], eax
push 0x86
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [0x42af7c], eax
push 0x84
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_LoadMenuA]
mov dword [0x42af78], eax
push 0
mov edx, dword [0x42af78]
push edx
call dword [sym.imp.USER32.dll_GetSubMenu]
mov dword [0x42b26c], eax
push 0x64
push 0x42b3a0
push 0x67
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
mov dword [ebp - 0x528], 0x880000
push 0
mov ecx, dword [ebp + 8]
push ecx
push 0
push 0
push 0x69
push 0xe6
push 0
push closesocket
mov edx, dword [ebp - 0x528]
push edx
push 0x42b3a0
push str.SPNServer
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x42b268], eax
cmp dword [0x42b268], 0
jne 0x40952a
xor eax, eax
jmp 0x409849
jmp 0x409579
push 0
mov eax, dword [ebp + 8]
push eax
push 0
push 0
push 0x96
push 0x12c
push closesocket
push closesocket
push 0xcf0000
push 0x425e9c
push str.SPNServer
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x42b268], eax
cmp dword [0x42b268], 0
jne 0x409579
mov eax, 1
jmp 0x409849
push str.Copyright
push 0x425ee0
push 0x425ee8
push str.___s_Centralized_License_Manager_v_s_n_s
push 0x42b1a0
call fcn.004178a0
add esp, 0x14
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040cc00
add esp, 4
push 0x104
lea edx, [ebp - 0x390]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
call fcn.00410280
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4095da
cmp dword [ebp - 4], 0xffffff9c
je 0x4095da
mov eax, 1
jmp 0x409849
call fcn.00402fd8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4095f7
push str.Superpro_driver_type_not_supported
push 0
call fcn.0040d8a0
add esp, 8
push str.spnsrv9x.exe
lea ecx, [ebp - 0x208]
push ecx
call fcn.004179d0
add esp, 8
mov edx, dword [ebp + 0x10]
push edx
lea eax, [ebp - 0x108]
push eax
call fcn.004179d0
add esp, 8
mov dword [ebp - 8], 0
push 0x104
push 0
push 0x42af80
call fcn.00417510
add esp, 0xc
lea ecx, [ebp - 0x108]
push ecx
push 0x42af80
call fcn.004179d0
add esp, 8
lea edx, [ebp - 0x52c]
push edx
push 0
lea eax, [ebp - 0x208]
push eax
push 0x401240
push 0
lea ecx, [ebp - 0x508]
push ecx
call fcn.004171c0
add esp, 0x18
mov dword [ebp - 0x4f4], eax
cmp dword [ebp - 0x4f4], 0
jne 0x409691
push str.SentinelSuperPro_server_unable_to_process_standalone_clients
push 0
call fcn.0040d8a0
add esp, 8
lea edx, [ebp - 0x4e8]
push edx
push 0
push 0
push 0x401805
push 0
lea eax, [ebp - 0x508]
push eax
call fcn.004171c0
add esp, 0x18
mov dword [ebp - 0x530], eax
cmp dword [ebp - 0x530], 0
jne 0x4096d0
push str.SentinelSuperPro_server_unable_to_process_unmanaged_mode_clients
push 0
call fcn.0040d8a0
add esp, 8
lea ecx, [ebp - 0x208]
push ecx
call fcn.00408db9
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409709
push str.SentinelSuperPro_server_unable_to_process_network_clients
push 0
call fcn.0040d8a0
add esp, 8
push str.RNBO_SPN_LOCAL
push 0x436200
call fcn.004179d0
add esp, 8
cmp dword [0x42a808], 0
je 0x409731
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [0x42b268]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [0x42b268]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
jmp 0x409752
push 0
mov edx, dword [0x42b268]
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x42b268]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov dword [ebp - 0x534], eax
mov ecx, 1
test ecx, ecx
je 0x409768
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jb 0x4097e5
mov edx, 1
test edx, edx
je 0x409797
mov eax, 1
test eax, eax
je 0x409787
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jb 0x409797
call dword [sym.imp.KERNEL32.dll_GetVersion]
and eax, 0xff
cmp eax, 4
jl 0x4097e5
mov ecx, 1
test ecx, ecx
je 0x4097e5
push str.KERNEL32.DLL
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0x538], eax
cmp dword [ebp - 0x538], 0
je 0x4097e5
push str.RegisterServiceProcess
mov edx, dword [ebp - 0x538]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x53c], eax
cmp dword [ebp - 0x53c], 0
je 0x4097e5
push 1
push 0
call dword [ebp - 0x53c]
push 0
mov eax, dword [0x4258ec]
imul eax, eax, 0x3e8
push eax
push 0x402
mov ecx, dword [0x42b268]
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
push 0
push 0
push 0
lea edx, [ebp - 0x524]
push edx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x409843
cmp dword [ebp - 0x520], 0x12
jne 0x409827
jmp 0x409843
lea eax, [ebp - 0x524]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [ebp - 0x524]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x409805
mov eax, dword [ebp - 0x51c]
mov esp, ebp
pop ebp
ret 0x10