Function at 0x4016c3
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 eax, 0x40dcb0
mov dword [0x40dd20], 0x40b050
mov dword [0x40d758], eax
push esi
push eax
mov dword [0x40dcb0], 0x84
mov dword [0x40dd14], 0x300
call fcn.00401c90
xor eax, eax
lea edi, [ebp - 8]
mov dword [ebp - 0xc], esi
mov dword [ebp + 8], esi
stosd dword es:[edi], eax
call fcn.004057fb
push str.SunJavaUpdateSchedulerMutex
push 1
pop ebx
mov dword [ebp - 0xc], eax
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp dword [ebp - 0xc], esi
mov edi, eax
mov dword [ebp - 0x2c], edi
je 0x401b38
cmp edi, esi
je 0x401b43
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x401b38
push 0x493e0
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x401b38
mov dword [ebp - 4], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x10], esi
call fcn.00404f5d
test eax, eax
je 0x4017d7
call fcn.00406326
test eax, eax
je 0x4017d7
mov edi, 0x40d7ac
push 0x400
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x4017d7
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
dec eax
js 0x4017db
cmp byte [eax + 0x40d7ac], 0x5c
jne 0x4017a9
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
and byte [eax + 0x40d7ac], 0
push 0x40b230
push edi
call ebx
push str.jucheck.exe
push edi
call ebx
push 1
pop ebx
jmp 0x4017db
or dword [ebp + 8], 0xffffffff
call fcn.00404614
cmp dword [ebp + 8], esi
mov dword [ebp - 0x14], esi
jne 0x401874
lea eax, [ebp - 4]
push esi
push eax
call fcn.0040475e
pop ecx
test eax, eax
pop ecx
je 0x401874
push 0x40dd34
push 0x40b0a0
call fcn.00404a1e
pop ecx
test eax, eax
pop ecx
je 0x401874
lea eax, [ebp - 0x3c]
push eax
call fcn.00405897
test eax, eax
pop ecx
jge 0x401836
lea eax, [ebp - 0x43c]
push 0x400
push eax
call fcn.00405d25
pop ecx
test eax, eax
pop ecx
jl 0x401839
mov dword [ebp - 0x14], ebx
mov edi, 0x40d788
push 0x40d784
push edi
call fcn.00401339
pop ecx
test eax, eax
pop ecx
je 0x401855
mov dword [0x40dd40], edi
push dword [ebp - 4]
call fcn.00401669
cmp eax, esi
pop ecx
mov dword [ebp - 8], eax
je 0x401885
call fcn.004010a7
call fcn.004013b3
mov dword [ebp - 0x10], eax
jmp 0x401889
push str.Either_not_a_Win2000__XP_platform_or_Non_admin_user_or_GetModuleFilename_failed_or_Error_Opening_JavaUpdate_Keys._n
call fcn.00407421
pop ecx
mov dword [0x40b0a4], esi
or dword [ebp + 8], 0xffffffff
cmp dword [0x40b0a4], esi
je 0x401af4
mov ebx, 0x40dbac
lea eax, [ebp - 0x24]
push eax
push 0x40b2b4
push dword [ebp - 4]
call fcn.004049fc
add esp, 0xc
test eax, eax
je 0x401b2c
cmp dword [ebp - 0x24], 1
jne 0x401b2c
call fcn.00407849
test eax, eax
jne 0x401b2c
cmp dword [ebp - 0x10], esi
je 0x4018f0
push 1
mov dword [ebp - 0x10], esi
call fcn.004014fc
cmp dword [0x40b0a4], esi
pop ecx
je 0x401af4
call fcn.004010a7
jmp 0x40190b
cmp dword [ebp - 0x14], esi
je 0x40190b
push esi
mov dword [ebp - 0x14], esi
call fcn.004014fc
cmp dword [0x40b0a4], esi
pop ecx
je 0x401af4
mov esi, 0x40d784
push esi
call dword [sym.imp.MSVCRT.dll_time]
push esi
call dword [sym.imp.MSVCRT.dll_localtime]
pop ecx
mov esi, eax
pop ecx
mov edi, 0x40d760
push 9
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [0x40dd38]
sub esi, dword [0x40d784]
call fcn.00404669
xor edx, edx
mov ecx, 0xe10
div ecx
mov edi, edx
add edi, esi
imul edi, edi, 0x3e8
test edi, edi
mov dword [ebp - 0x1c], edi
ja 0x40195f
mov edi, 0x2932e00
mov dword [ebp - 0x1c], edi
mov esi, dword [sym.imp.MSVCRT.dll_localtime]
push 0x40dd38
call esi
pop ecx
mov dword [ebp - 0x18], eax
mov ecx, dword [0x40dd38]
push edi
sub ecx, dword [0x40d784]
mov edi, 0xe10
mov eax, ecx
cdq
idiv edi
mov edi, dword [sym.imp.MSVCRT.dll_asctime]
push eax
push ecx
push dword [ebp - 0x18]
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 0x40dd3c
call esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0x1c
mov dword [ebp - 0x18], eax
push str.lastSchedTime
push ebx
call esi
push dword [ebp - 0x18]
call edi
pop ecx
push eax
push ebx
call esi
push ebx
call fcn.00407421
pop ecx
xor esi, esi
push dword [ebp - 0x1c]
lea eax, [ebp - 0xc]
push esi
push eax
push 2
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, esi
je 0x401ac1
push 1
pop edi
cmp eax, edi
je 0x401a3a
cmp eax, 0x7f
jbe 0x401a13
cmp eax, 0x81
jbe 0x401ac1
cmp eax, 0x102
jne 0x401a13
mov dword [ebp - 0x10], edi
push str.Timeout_occured._n
jmp 0x401acc
mov dword [0x40b0a4], esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_in_WaitForSingleObject:__d_n
push ebx
call dword [sym.imp.USER32.dll_wsprintfA]
push ebx
call fcn.00407421
add esp, 0x10
jmp 0x401ad2
push str.Registry_is_changed._n
call fcn.00407421
pop ecx
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push esi
push eax
mov dword [ebp - 4], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], edi
call fcn.0040475e
pop ecx
test eax, eax
pop ecx
je 0x401ae1
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00404a1e
pop ecx
test eax, eax
pop ecx
je 0x401ae1
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
cmp eax, dword [0x40b0a0]
jne 0x401aa3
cmp ecx, dword [0x40dd34]
jne 0x401aa3
call fcn.004013b3
mov dword [ebp - 0x10], eax
jmp 0x401ab3
mov dword [0x40b0a0], eax
mov dword [0x40dd34], ecx
call fcn.004010a7
push dword [ebp - 4]
call fcn.00401669
pop ecx
mov dword [ebp - 8], eax
jmp 0x401ad2
mov dword [0x40b0a4], esi
push str.Received_shutdown_signal_n
call fcn.00407421
pop ecx
cmp dword [0x40b0a4], esi
je 0x401af2
xor esi, esi
jmp 0x40189a
push str.Error_Opening_JavaUpdate_key_or_Querying_Frequency_Schedule_in_while_loop_n
call fcn.00407421
pop ecx
mov dword [0x40b0a4], esi
xor esi, esi
cmp dword [ebp - 4], esi
je 0x401b02
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 8], esi
je 0x401b10
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0xc], esi
je 0x401b1e
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp + 8]
jmp 0x401b46
or dword [ebp + 8], 0xffffffff
mov dword [0x40b0a4], esi
jmp 0x401af4
cmp edi, esi
je 0x401b43
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x64
pop esi
push 0x40dcb0
call fcn.00401d13
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x10