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, 0x40a7a0
mov dword [0x40a810], 0x408050
mov dword [0x40a2c8], ebx
push 0x40a828
push ebx
mov dword [0x40a7a0], 0x84
mov dword [0x40a804], 0x300
call fcn.004019cc
xor eax, eax
lea edi, [ebp - 8]
mov dword [ebp - 0xc], esi
mov dword [ebp + 8], esi
stosd dword es:[edi], eax
call fcn.00404149
push str.SunJavaUpdateSchedulerMutex
push 1
pop esi
mov dword [ebp - 8], eax
push esi
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
mov dword [ebp - 0x2c], eax
je 0x4019b4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x4019ab
push 0x493e0
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x4019ab
and dword [ebp - 4], 0
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], esi
call fcn.0040382a
test eax, eax
je 0x40162c
call fcn.00404f23
test eax, eax
je 0x40162c
mov edi, 0x40a31c
push 0x400
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x40162c
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
dec eax
js 0x401630
cmp byte [eax + 0x40a31c], 0x5c
jne 0x401601
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
and byte [eax + 0x40a31c], 0
push 0x408174
push edi
call ebx
push 0x408178
push edi
call ebx
jmp 0x401630
or dword [ebp + 8], 0xffffffff
call fcn.00402f62
and dword [ebp - 0x14], 0
cmp dword [ebp + 8], 0
jne 0x401769
lea eax, [ebp - 4]
push eax
call fcn.0040342b
test eax, eax
pop ecx
je 0x401769
push 0x4080a0
push 0x408184
push dword [ebp - 4]
call fcn.00403506
add esp, 0xc
test eax, eax
je 0x401769
push 0x40a84c
push 0x408190
push dword [ebp - 4]
call fcn.00403506
add esp, 0xc
test eax, eax
je 0x401769
lea eax, [ebp - 0x3c]
push eax
call fcn.004041e5
test eax, eax
pop ecx
jge 0x4016b4
lea eax, [ebp - 0x43c]
push 0x400
push eax
call fcn.00404673
pop ecx
test eax, eax
pop ecx
jl 0x4016b7
mov dword [ebp - 0x14], esi
mov edi, 0x40a2f4
mov ebx, 0x40a2f8
push edi
push ebx
push dword [ebp - 4]
call fcn.00401339
add esp, 0xc
test eax, eax
je 0x4016d8
mov dword [0x40a858], 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 0x401762
cmp dword [ebp - 8], ebx
je 0x401762
push esi
push eax
push 4
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegNotifyChangeKeyValue]
test eax, eax
je 0x401709
push str.Error_in_RegNotifyChangeKeyValue._n
jmp 0x40176e
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, 0x40a71c
lea eax, [ebp - 0x20]
push eax
push 0x408250
push dword [ebp - 4]
call fcn.00403506
add esp, 0xc
test eax, eax
je 0x401774
cmp dword [ebp - 0x20], esi
jne 0x401774
call fcn.00406463
test eax, eax
jne 0x401774
cmp dword [ebp - 0x10], eax
je 0x4017b4
push esi
mov dword [ebp - 0x10], eax
call fcn.00401442
push dword [ebp - 4]
call fcn.004010a7
pop ecx
jmp 0x4017c2
push str.Error_in_CreateEvent._n
jmp 0x40176e
push str.Either_not_a_Win2000__XP_platform_or_Non_admin_user_or_GetModuleFilename_failed_or_Error_Opening_JavaUpdate_Keys._n
call fcn.0040603b
pop ecx
or dword [ebp + 8], 0xffffffff
xor esi, esi
cmp dword [ebp - 4], esi
je 0x401788
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 0x401798
push dword [ebp - 0xc]
call edi
cmp dword [ebp - 8], esi
je 0x4017a2
push dword [ebp - 8]
call edi
push dword [ebp - 0x2c]
call edi
mov esi, dword [ebp + 8]
mov ebx, 0x40a7a0
jmp 0x4019b7
cmp dword [ebp - 0x14], eax
je 0x4017c3
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, 0x40a2d0
push 9
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [0x40a850]
sub edi, dword [0x40a2f4]
call fcn.00402fb7
xor edx, edx
mov ecx, 0xe10
div ecx
mov esi, edx
add esi, edi
imul esi, esi, 0x3e8
test esi, esi
ja 0x40180c
mov esi, 0x2932e00
push 0x40a850
call dword [sym.imp.MSVCRT.dll_localtime]
pop ecx
mov dword [ebp - 0x1c], eax
mov ecx, dword [0x40a850]
mov edi, 0xe10
sub ecx, dword [0x40a2f4]
push esi
mov eax, ecx
cdq
idiv edi
mov edi, dword [sym.imp.MSVCRT.dll_asctime]
push eax
push ecx
push dword [ebp - 0x1c]
call edi
pop ecx
push eax
push str.nextSched_s___sleeptime__sec_u__hours_u___actual_sleep_u_msecs__n
push ebx
call dword [sym.imp.USER32.dll_wsprintfA]
push 0x40a854
call dword [sym.imp.MSVCRT.dll_localtime]
add esp, 0x1c
mov dword [ebp - 0x1c], eax
push str.lastSchedTime
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [ebp - 0x1c]
call edi
pop ecx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push ebx
call fcn.0040603b
pop ecx
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 0x4018c7
dec eax
je 0x4019a4
sub eax, 0x80
je 0x4019a4
sub eax, 0x81
jne 0x401994
push str.Timeout_occured._n
mov dword [ebp - 0x10], 1
call fcn.0040603b
pop ecx
jmp 0x40197e
push str.Registry_is_changed._n
call fcn.0040603b
push 1
lea eax, [ebp - 0x24]
pop edi
mov dword [ebp - 0x28], esi
push eax
push 0x4082e8
push dword [ebp - 4]
mov dword [ebp - 0x24], edi
call fcn.00403506
add esp, 0x10
test eax, eax
je 0x40190a
lea eax, [ebp - 0x28]
push eax
push 0x4082f4
push dword [ebp - 4]
call fcn.00403506
add esp, 0xc
test eax, eax
jne 0x40190d
mov dword [ebp - 0x18], esi
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
cmp eax, dword [0x4080a0]
jne 0x401931
cmp ecx, dword [0x40a84c]
jne 0x401931
push dword [ebp - 4]
call fcn.004013b4
pop ecx
mov dword [ebp - 0x10], eax
jmp 0x401945
push dword [ebp - 4]
mov dword [0x4080a0], eax
mov dword [0x40a84c], 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.0040342b
test eax, eax
pop ecx
je 0x401970
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 0x40197e
push str.Error_Opening_JavaUpdate_key_or_RegNotifyChangeKeyValue_in_while_loop_n
call fcn.0040603b
pop ecx
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], esi
je 0x401778
push 1
mov edi, 0x40a2f4
pop esi
jmp 0x401723
push str.Error_in_WaitForSingleObject._n
call fcn.0040603b
pop ecx
jmp 0x401778
push str.Received_shutdown_signal_n
jmp 0x401999
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x64
pop esi
push ebx
call fcn.00401a4f
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x10