Function at 0x40151e
Capabilities:
Accept command line arguments
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x43c
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
xor esi, esi
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
push dword [ebp + 8]
mov ebx, 0x407f20
mov dword [0x407f90], 0x406050
mov dword [0x407a48], ebx
push 0x407fa8
push ebx
mov dword [0x407f20], 0x84
mov dword [0x407f84], 0x300
call fcn.004019c5
xor eax, eax
lea edi, [ebp - 8]
push str.SunJavaUpdateSchedulerMutex
mov dword [ebp - 0xc], esi
push 1
mov dword [ebp + 8], esi
stosd dword es:[edi], eax
pop esi
xor edi, edi
push esi
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebp - 0x18], eax
call fcn.004033b8
cmp dword [ebp - 0x18], edi
mov dword [ebp - 8], eax
je 0x4019ad
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x4019a4
push 0x493e0
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x4019a4
mov dword [ebp - 4], edi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
call fcn.00402d01
test eax, eax
je 0x40162d
call fcn.004042ce
test eax, eax
je 0x40162d
mov edi, 0x407a9c
push 0x400
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x40162d
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
dec eax
js 0x401631
cmp byte [eax + 0x407a9c], 0x5c
jne 0x401602
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
and byte [eax + 0x407a9c], 0
push 0x406174
push edi
call ebx
push 0x406178
push edi
call ebx
jmp 0x401631
or dword [ebp + 8], 0xffffffff
call fcn.00402685
and dword [ebp - 0x14], 0
cmp dword [ebp + 8], 0
jne 0x40176a
lea eax, [ebp - 4]
push eax
call fcn.0040291f
test eax, eax
pop ecx
je 0x40176a
push 0x4060a0
push 0x406184
push dword [ebp - 4]
call fcn.004029fa
add esp, 0xc
test eax, eax
je 0x40176a
push 0x407fcc
push 0x406190
push dword [ebp - 4]
call fcn.004029fa
add esp, 0xc
test eax, eax
je 0x40176a
lea eax, [ebp - 0x3c]
push eax
call fcn.00403454
test eax, eax
pop ecx
jge 0x4016b5
lea eax, [ebp - 0x43c]
push 0x400
push eax
call fcn.004038e2
pop ecx
test eax, eax
pop ecx
jl 0x4016b8
mov dword [ebp - 0x14], esi
mov edi, 0x407a74
mov ebx, 0x407a78
push edi
push ebx
push dword [ebp - 4]
call fcn.00401339
add esp, 0xc
test eax, eax
je 0x4016d9
mov dword [0x407fd8], ebx
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
cmp eax, ebx
mov dword [ebp - 0xc], eax
je 0x401763
cmp dword [ebp - 8], ebx
je 0x401763
push esi
push eax
push 4
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegNotifyChangeKeyValue]
test eax, eax
je 0x40170a
push str.Error_in_RegNotifyChangeKeyValue._n
jmp 0x40176f
push dword [ebp - 4]
call fcn.004010a7
push dword [ebp - 4]
call fcn.004013b4
pop ecx
mov dword [ebp - 0x10], eax
pop ecx
mov ebx, 0x407e9c
lea eax, [ebp - 0x20]
push eax
push 0x406250
push dword [ebp - 4]
call fcn.004029fa
add esp, 0xc
test eax, eax
je 0x401775
cmp dword [ebp - 0x20], esi
jne 0x401775
call fcn.0040482a
test eax, eax
jne 0x401775
cmp dword [ebp - 0x10], eax
je 0x4017b5
push esi
mov dword [ebp - 0x10], eax
call fcn.00401442
push dword [ebp - 4]
call fcn.004010a7
pop ecx
jmp 0x4017c3
push str.Error_in_CreateEvent._n
jmp 0x40176f
push str.Either_not_a_Win2000__XP_platform_or_Non_admin_user_or_GetModuleFilename_failed_or_Error_Opening_JavaUpdate_Keys._n
call fcn.00402051
pop ecx
or dword [ebp + 8], 0xffffffff
xor esi, esi
cmp dword [ebp - 4], esi
je 0x401789
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0xc], esi
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x401799
push dword [ebp - 0xc]
call edi
cmp dword [ebp - 8], esi
je 0x4017a3
push dword [ebp - 8]
call edi
push dword [ebp - 0x18]
call edi
mov esi, dword [ebp + 8]
mov ebx, 0x407f20
jmp 0x4019b0
cmp dword [ebp - 0x14], eax
je 0x4017c4
push eax
mov dword [ebp - 0x14], eax
call fcn.00401442
pop ecx
push edi
call dword [sym.imp.MSVCRT.dll_time]
push edi
call dword [sym.imp.MSVCRT.dll_localtime]
pop ecx
mov esi, eax
pop ecx
mov edi, 0x407a50
push 9
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [0x407fd0]
sub edi, dword [0x407a74]
call fcn.004026c4
xor edx, edx
mov ecx, 0xe10
div ecx
mov esi, edx
add esi, edi
imul esi, esi, 0x3e8
test esi, esi
ja 0x40180d
mov esi, 0x2932e00
push 0x407fd0
call dword [sym.imp.MSVCRT.dll_localtime]
pop ecx
mov dword [ebp - 0x2c], eax
mov ecx, dword [0x407fd0]
mov edi, 0xe10
sub ecx, dword [0x407a74]
push esi
mov eax, ecx
cdq
idiv edi
push eax
push ecx
push dword [ebp - 0x2c]
call dword [sym.imp.MSVCRT.dll_asctime]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
pop ecx
push eax
push str.nextSched_s___sleeptime__sec_u__hours_u___actual_sleep_u_msecs__n
push ebx
call edi
push ebx
call fcn.00402051
push 0x407fd4
call dword [sym.imp.MSVCRT.dll_localtime]
push eax
call dword [sym.imp.MSVCRT.dll_asctime]
push eax
push str.lastSchedTime__s___n
push ebx
call edi
push ebx
call fcn.00402051
add esp, 0x34
lea eax, [ebp - 0xc]
push esi
xor esi, esi
push esi
push eax
push 2
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
sub eax, esi
je 0x4018c0
dec eax
je 0x40199d
sub eax, 0x80
je 0x40199d
sub eax, 0x81
jne 0x40198d
push str.Timeout_occured._n
mov dword [ebp - 0x10], 1
call fcn.00402051
pop ecx
jmp 0x401977
push str.Registry_is_changed._n
call fcn.00402051
push 1
lea eax, [ebp - 0x24]
pop edi
mov dword [ebp - 0x28], esi
push eax
push 0x4062f0
push dword [ebp - 4]
mov dword [ebp - 0x24], edi
call fcn.004029fa
add esp, 0x10
test eax, eax
je 0x401903
lea eax, [ebp - 0x28]
push eax
push 0x4062fc
push dword [ebp - 4]
call fcn.004029fa
add esp, 0xc
test eax, eax
jne 0x401906
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
cmp eax, dword [0x4060a0]
jne 0x40192a
cmp ecx, dword [0x407fcc]
jne 0x40192a
push dword [ebp - 4]
call fcn.004013b4
pop ecx
mov dword [ebp - 0x10], eax
jmp 0x40193e
push dword [ebp - 4]
mov dword [0x4060a0], eax
mov dword [0x407fcc], ecx
call fcn.004010a7
pop ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
call fcn.0040291f
test eax, eax
pop ecx
je 0x401969
push edi
push dword [ebp - 0xc]
push 4
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegNotifyChangeKeyValue]
test eax, eax
je 0x401977
push str.Error_Opening_JavaUpdate_key_or_RegNotifyChangeKeyValue_in_while_loop_n
call fcn.00402051
pop ecx
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], esi
je 0x401779
push 1
mov edi, 0x407a74
pop esi
jmp 0x401724
push str.Error_in_WaitForSingleObject._n
call fcn.00402051
pop ecx
jmp 0x401779
push str.Received_shutdown_signal_n
jmp 0x401992
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x64
pop esi
push ebx
call fcn.00401a48
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x10