Function at 0x404e10
Capabilities:
Check mutex on windows
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xcc
mov eax, dword [0x41813c]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x80], 0
mov byte [ebp - 0xc9], 0
mov dword [ebp - 4], 0
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call dword [sym.imp.KERNEL32.DLL_GetVersion]
and eax, 0xffff
movzx eax, ax
and eax, 0xff
movzx ecx, al
cmp ecx, 5
jae 0x404e97
call dword [sym.imp.KERNEL32.DLL_GetACP]
cmp eax, 0x3b6
jne 0x404e7c
push 0x10
push 0x41443c
push 0x414458
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x404e90
push 0x10
push str.Boshiamy_Portable_Trial_Edition
push str.This_application_only_works_on_Microsoft_Windows_2000_or_later.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x405164
push 0x4191c0
call dword [sym.imp.KERNEL32.DLL_GetLocalTime]
movzx edx, word [0x4191c0]
cmp edx, 0x7e8
jg 0x404ef2
movzx eax, word [0x4191c0]
cmp eax, 0x7e8
jne 0x404ecb
movzx ecx, word [0x4191c2]
cmp ecx, 2
jg 0x404ef2
movzx edx, word [0x4191c0]
cmp edx, 0x7e8
jne 0x404f35
movzx eax, word [0x4191c2]
cmp eax, 2
jne 0x404f35
movzx ecx, word [0x4191c6]
cmp ecx, 1
jl 0x404f35
push 0x32
lea edx, [ebp - 0x78]
push edx
push 0x68
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x14
lea ecx, [ebp - 0xc4]
push ecx
push 0x69
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x30
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x78]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x405164
push str.B047543A_594F_4483_998F_D583D8135D53
push 1
push 0
call dword [sym.imp.KERNEL32.DLL_CreateMutexW]
mov dword [ebp - 8], eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0xb7
jne 0x404f97
push 0x32
lea edx, [ebp - 0x78]
push edx
push 0x6a
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x14
lea ecx, [ebp - 0xc4]
push ecx
push 0x6b
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x40
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x78]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
jmp 0x405164
push 0x414544
mov edx, dword [ebp + 0x10]
push edx
call fcn.00408831
add esp, 8
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0
je 0x405092
push 0x414548
mov eax, dword [ebp - 0x7c]
add eax, 2
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x404fd7
mov dword [ebp - 0x80], 0x20000
jmp 0x40507b
push str.noprompt
mov ecx, dword [ebp - 0x7c]
add ecx, 2
push ecx
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x404ff9
mov byte [ebp - 0xc9], 1
jmp 0x40507b
push str.nologo
mov edx, dword [ebp - 0x7c]
add edx, 2
push edx
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x405020
movzx eax, byte [0x4191d8]
or eax, 1
mov byte [0x4191d8], al
jmp 0x40507b
push str.author
mov ecx, dword [ebp - 0x7c]
add ecx, 2
push ecx
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x40504c
push 0x40
push 0x414594
push str.Author:_Luke_Chang
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x40507b
mov edx, dword [ebp - 0x7c]
movzx eax, word [edx]
cmp eax, 0x2d
jne 0x40507b
mov ecx, dword [ebp - 0x7c]
movzx edx, word [ecx + 2]
cmp edx, 0x4b
jne 0x40507b
lea eax, [ebp - 4]
push eax
push 0x4145d4
mov ecx, dword [ebp - 0x7c]
add ecx, 4
push ecx
call fcn.0040880f
add esp, 0xc
push 0x4145dc
push 0
call fcn.00408831
add esp, 8
mov dword [ebp - 0x7c], eax
jmp 0x404fab
movzx edx, byte [ebp - 0xc9]
test edx, edx
jne 0x4050ed
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_MessageBeep]
push 0
push 0x404b50
push 0
push 0x403
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamW]
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0
jne 0x4050d3
xor eax, eax
jmp 0x405164
mov ecx, dword [ebp - 0xc8]
push ecx
push 0x404940
push 0
push 0x66
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_DialogBoxParamW]
mov eax, dword [ebp - 0x80]
push eax
push 0x4048e0
mov ecx, dword [ebp + 8]
push ecx
mov ecx, 0x4191d0
call fcn.00405a30
movzx edx, ax
test edx, edx
je 0x40511d
mov eax, dword [ebp + 0x14]
push eax
mov ecx, 0x4191d0
call fcn.00405af0
test eax, eax
jne 0x405121
xor eax, eax
jmp 0x405164
push 0
push 0
push 0
lea ecx, [ebp - 0x9c]
push ecx
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x405154
lea edx, [ebp - 0x9c]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x9c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x405121
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.DLL_ReleaseMutex]
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00408348
mov esp, ebp
pop ebp
ret 0x10