Function at 0x902500
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
mov eax, dword [0x98eb88]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0xa8]
push 0
push eax
push esi
call fcn.009146f0
add esp, 0xc
test eax, eax
jns 0x90254e
push eax
call fcn.00914f00
add esp, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xa8]
push ebx
push edi
push dword [eax]
call fcn.00914fb0
mov dword [section..data], eax
call fcn.00913f60
lea eax, [ebp - 0xb4]
push eax
push dword [ebp - 0xa8]
push esi
call fcn.00906f70
add esp, 0x10
test al, al
jne 0x903185
xor bl, bl
cmp esi, 2
jl 0x9025b7
mov eax, dword [ebp - 0xa8]
push str.guestsession
push dword [eax + 4]
call fcn.00915bd0
add esp, 8
test eax, eax
jne 0x9025b7
mov bl, 1
call fcn.009454d0
mov edi, eax
mov dword [ebp - 0xb8], edi
jmp 0x9025c4
call fcn.009454d0
mov edi, eax
mov dword [ebp - 0xb8], eax
cmp esi, 2
jne 0x9025fd
mov eax, dword [ebp - 0xa8]
push str.pagefusion
push dword [eax + 4]
call fcn.00915bd0
add esp, 8
test eax, eax
jne 0x9025fd
test edi, edi
js 0x902625
call fcn.0090ea60
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
test bl, bl
je 0x90263f
test edi, edi
js 0x902625
push dword [ebp - 0xa8]
push esi
call fcn.0090d120
add esp, 8
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
push edi
call fcn.009018b0
add esp, 4
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
mov ecx, 1
mov byte [ebp - 0xad], 1
mov ebx, esi
mov byte [ebp - 0xae], 0
mov dword [ebp - 0xac], ecx
cmp ebx, ecx
jle 0x902be4
jmp 0x902670
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xa4], eax
cmp byte [eax], 0x2d
jne 0x902da0
lea ecx, [eax + 1]
mov dword [ebp - 0xa4], ecx
mov edx, ecx
cmp byte [ecx], 0x2d
jne 0x9026e0
lea eax, [ecx + 1]
push eax
mov dword [ebp - 0xa4], eax
call fcn.009010a0
mov edi, eax
add esp, 4
cmp edi, 0xa
jne 0x90274e
push eax
push str.foreground
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x9026fd
mov ecx, 0x94fb90
mov dword [ebp - 0xa4], ecx
mov edx, ecx
lea ebx, [ebx]
movsx eax, byte [ecx]
add eax, 0xffffffc1
cmp eax, 0x37
ja case.0x9026f6.64
movzx eax, byte [eax + 0x9031fc]
jmp dword [eax*4 + 0x9031d4]
push 0xa
push str.unregister
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x902725
mov ecx, 0x94fbe4
mov dword [ebp - 0xa4], ecx
mov edx, ecx
jmp 0x9026e0
push 0xa
push str.daemonized
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x90288f
mov byte [ebp - 0xae], 1
jmp 0x902bcf
cmp edi, 7
jne 0x902806
push edi
push str.verbose
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x902781
mov ecx, 0x94fb9c
mov dword [ebp - 0xa4], ecx
mov edx, ecx
jmp 0x9026e0
push 7
push str.version
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x9027ac
mov ecx, 0x94fba8
mov dword [ebp - 0xa4], ecx
mov edx, ecx
jmp 0x9026e0
push 7
push str.logfile
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x9027d7
mov ecx, 0x94fbf0
mov dword [ebp - 0xa4], ecx
mov edx, ecx
jmp 0x9026e0
push 7
push str.pidfile
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x90288f
mov ecx, 0x94fbfc
mov dword [ebp - 0xa4], ecx
mov edx, ecx
jmp 0x9026e0
cmp edi, 4
jne 0x902835
push edi
push str.help
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x90288f
mov ecx, 0x94fbb4
mov dword [ebp - 0xa4], ecx
mov edx, ecx
jmp 0x9026e0
cmp edi, 8
jne 0x90288f
push edi
push str.interval
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x902864
mov ecx, 0x94fbc4
mov dword [ebp - 0xa4], ecx
mov edx, ecx
jmp 0x9026e0
push 8
push str.register
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x90288f
mov ecx, 0x94fbd4
mov dword [ebp - 0xa4], ecx
mov edx, ecx
jmp 0x9026e0
xor bl, bl
cmp edi, 8
jbe 0x9028e7
push 7
push str.enable_
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x9028e7
xor esi, esi
cmp esi, 0x70
jae 0x9028e7
mov eax, dword [esi + 0x98e018]
push dword [eax]
mov eax, dword [ebp - 0xa4]
add eax, 7
push eax
call fcn.00915bd0
add esp, 8
test eax, eax
sete bl
test eax, eax
jne 0x9028e0
mov byte [esi + 0x98e024], 1
add esi, 0x10
test bl, bl
je 0x9028b1
cmp edi, 9
jbe 0x902945
push 8
push str.disable_
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x90294a
test bl, bl
jne 0x90294a
xor esi, esi
jmp 0x902910
cmp esi, 0x70
jae 0x90294a
mov eax, dword [esi + 0x98e018]
push dword [eax]
mov eax, dword [ebp - 0xa4]
add eax, 8
push eax
call fcn.00915bd0
add esp, 8
test eax, eax
sete bl
test eax, eax
jne 0x90293e
mov byte [esi + 0x98e024], al
add esi, 0x10
test bl, bl
je 0x902910
cmp edi, 6
jbe 0x9029a3
push 5
push str.only_
push dword [ebp - 0xa4]
call section..text
add esp, 0xc
test eax, eax
jne 0x9029a3
xor esi, esi
jmp 0x902970
mov eax, dword [esi + 0x98e018]
push dword [eax]
mov eax, dword [ebp - 0xa4]
add eax, 5
push eax
call fcn.00915bd0
add esp, 8
test eax, eax
sete cl
mov byte [esi + 0x98e024], cl
test eax, eax
jne 0x90299b
mov bl, 1
add esi, 0x10
cmp esi, 0x70
jb 0x902970
test bl, bl
jne 0x902a43
call fcn.009019a0
mov dword [ebp - 0xb4], eax
test eax, eax
jne 0x90318b
mov ebx, dword [ebp + 8]
xor edi, edi
cmp edi, 0x70
jae 0x902a14
mov esi, dword [edi + 0x98e018]
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 0xa8]
mov esi, dword [esi + 0x14]
mov ecx, esi
push ebx
push 0
call dword [section..rdata]
call esi
add esp, 0x10
test eax, eax
sete cl
test eax, eax
je 0x902a0c
cmp eax, 0xffffffff
jne 0x90318b
add edi, 0x10
test cl, cl
je 0x9029c3
jmp 0x902bcf
test cl, cl
jne 0x902bcf
mov ecx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xa8]
push dword [eax + ecx*4]
push str.Unknown_option__s_n
push 2
call fcn.00914e90
add esp, 0xc
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
jmp 0x902bcf
mov byte [ebp - 0xad], 0
jmp 0x902ac4
inc dword [0x98f460]
jmp 0x902ac4
call fcn.009019a0
mov dword [ebp - 0xb4], eax
test eax, eax
jne 0x90318b
xor esi, esi
mov edi, dword [esi + 0x98e018]
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 0xa8]
lea eax, [ebp - 0xa4]
mov edi, dword [edi + 0x14]
mov ecx, edi
push ebx
push eax
call dword [section..rdata]
call edi
add esp, 0x10
test eax, eax
sete cl
test eax, eax
je 0x902ab6
cmp eax, 0xffffffff
jne 0x90318b
add esi, 0x10
cmp esi, 0x70
jb 0x902a71
test cl, cl
je 0x902d67
mov ecx, dword [ebp - 0xa4]
test ecx, ecx
je 0x902bcf
inc ecx
mov dword [ebp - 0xa4], ecx
mov edx, ecx
cmp byte [ecx], 0
jne 0x9026e0
jmp 0x902bcf
mov al, byte [edx + 1]
lea esi, [edx + 1]
cmp al, 0x3a
je 0x902af1
cmp al, 0x3d
jne 0x902af5
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x902b2c
mov ecx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xa8]
lea esi, [ecx + 1]
cmp esi, ebx
jl 0x902b23
push dword [eax + ecx*4]
push str.Missing_value_for_the__s_argument_n
push 2
call fcn.00914e90
add esp, 0xc
jmp 0x902bbd
mov dword [ebp - 0xac], esi
mov esi, dword [eax + esi*4]
push 0x9904ec
push 0
lea eax, [ebp - 0xbc]
push eax
push esi
call fcn.009165a0
add esp, 0x10
test eax, eax
js 0x902b7b
mov eax, dword [ebp - 0xbc]
cmp byte [eax], 0
jne 0x902b7b
mov ecx, dword [0x9904ec]
lea eax, [ecx - 1]
cmp eax, 0x418935
jbe 0x902bc5
push 0x418936
push 1
push ecx
push str.The_timesync_interval_of__RU32_seconds_is_out_of_range___RU32.._RU32__n
push 2
call fcn.00914e90
add esp, 0x14
jmp 0x902bbd
push esi
push str.Failed_to_convert_interval__s_to_a_number_n
push 2
call fcn.00914e90
add esp, 0xc
jmp 0x902bbd
push 0x1084
push 0x98f468
jmp 0x902ba3
push 0x1004
push 0x9904f0
lea eax, [ebp - 0xac]
push eax
lea eax, [edx + 1]
push eax
push dword [ebp - 0xa8]
push ebx
call fcn.009018f0
add esp, 0x18
test eax, eax
jne 0x90318b
mov dword [ebp - 0xa4], 0
mov ecx, dword [ebp - 0xac]
inc ecx
mov dword [ebp - 0xac], ecx
cmp ecx, ebx
jl 0x902670
mov eax, dword [ebp - 0xb8]
test eax, eax
jns 0x902de2
cmp eax, 0xffffffda
jne 0x902dc1
push dword [section..data]
push str.Insufficient_privileges_to_start__s__Please_start_with_Administrator_root_privileges__n
push 1
call fcn.00914e90
add esp, 0xc
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
call fcn.00914310
mov esi, eax
call fcn.00914320
push esi
push eax
push str._sr_s_n
call fcn.00917060
add esp, 0xc
xor eax, eax
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
push dword [section..data]
push str.Usage:__s___f__foreground____v__verbose____l__logfile__file___n_____________p__pidfile__file_____i__interval__seconds___n______________disable__service______enable__service___n______________only__service_____h____help__n
call fcn.00917060
push str._____________r__register____u__unregister__n
call fcn.00917060
add esp, 0xc
xor esi, esi
mov edi, edi
mov eax, dword [esi + 0x98e018]
mov eax, dword [eax + 8]
test eax, eax
je 0x902c8b
push eax
push 0x94f380
call fcn.00917060
add esp, 8
add esi, 0x10
cmp esi, 0x70
jb 0x902c70
push str._nOptions:_n_____i____interval_________The_default_interval._n_____f____foreground_______Dont_daemonize_the_program._For_debugging._n_____l____logfile__file____Enables_logging_to_a_file._n_____p____pidfile__file____Write_the_process_ID_to_a_file._n_____v____verbose__________Increment_the_verbosity_level._For_debugging._n_____V____version__________Show_version_information._n_____h________help________Show_this_message_and_exit_with_status_1._n
call fcn.00917060
push str._____r____register_________Installs_the_service._n_____u____unregister_______Uninstall_service._n
call fcn.00917060
push str._nService_specific_options:_n
call fcn.00917060
add esp, 0xc
xor esi, esi
mov eax, dword [esi + 0x98e018]
mov eax, dword [eax]
push eax
push eax
push str.______enable___14s_Enables_the__s_service.__default__n
call fcn.00917060
mov eax, dword [esi + 0x98e018]
mov eax, dword [eax]
push eax
push eax
push str.______disable___13s_Disables_the__s_service._n
call fcn.00917060
mov eax, dword [esi + 0x98e018]
mov eax, dword [eax]
push eax
push eax
push str.______only___16s_Only_enables_the__s_service._n
call fcn.00917060
mov eax, dword [esi + 0x98e018]
add esp, 0x24
mov eax, dword [eax + 0xc]
test eax, eax
je 0x902d10
push eax
push 0x94f200
call fcn.00917060
add esp, 8
add esi, 0x10
cmp esi, 0x70
jb 0x902cb6
push str._n_Copyright__C__2009_2023_Oracle_and_or_its_affiliates_n
call fcn.00917060
add esp, 4
mov eax, 1
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
call fcn.00913d70
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
call fcn.009141d0
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xac]
push dword [eax + ecx*4]
mov eax, dword [ebp - 0xa4]
movsx eax, byte [eax]
push eax
push str.Unknown_option__c___s__n
push 2
call fcn.00914e90
add esp, 0x10
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
push eax
push str.Unknown_argument__s_n
push 2
call fcn.00914e90
add esp, 0xc
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
push eax
push str.VbglR3Init_failed_with_rc_Rrc_n
push 1
call fcn.00914e90
add esp, 0xc
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
movzx eax, byte [0x98e074]
movzx ecx, byte [0x98e084]
add ecx, eax
movzx eax, byte [0x98e064]
add ecx, eax
movzx eax, byte [0x98e054]
add ecx, eax
movzx eax, byte [0x98e044]
add ecx, eax
movzx eax, byte [0x98e034]
add ecx, eax
movzx eax, byte [0x98e024]
add ecx, eax
jne 0x902e41
push str.At_least_one_service_must_be_enabled_n
push 2
call fcn.00914e90
add esp, 8
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
movsx eax, byte [0x98f468]
neg eax
sbb eax, eax
and eax, 0x98f468
jne 0x902e58
mov eax, 0x94d290
push eax
push 0x94f200
push 0
push 0
push 0
push dword [0x98e008]
push dword [0x98e014]
push dword [0x98e010]
push dword [0x98e004]
push 0x901a00
push 0x40000002
push 0
push 0
push 0xffffffffffffffff
push 0x94d408
push 0x19d
push 0x94f204
push 0
push 0x8800010
push str.VBOXSERVICE_RELEASE_LOG
push 0x9914f4
call fcn.0091bd90
mov ecx, eax
add esp, 0x54
test ecx, ecx
js 0x90319c
push dword [0x9914f4]
call fcn.0091bd60
push dword [0x9914f4]
call fcn.0091b8f0
add esp, 8
call fcn.009019a0
mov dword [ebp - 0xb4], eax
test eax, eax
jne 0x90318b
push 0x9c
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.00901060
add esp, 0xc
mov dword [ebp - 0xa0], 0x9c
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.00917cb0
cmp edx, 0x500000
jb 0x902f2b
ja 0x902f24
test eax, eax
jb 0x902f2b
push str.GlobalVBoxService
jmp 0x902f30
push 0x94fce8
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov ebx, eax
test ebx, ebx
jne 0x902fa3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x902f7a
cmp eax, 5
je 0x902f7a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CreateMutex_failed_with_last_error__u__Terminating._n
call fcn.00901db0
add esp, 8
lea eax, [ebx + 1]
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
push dword [section..data]
push str._s_is_already_running__Terminating._n
call fcn.00901db0
add esp, 8
mov eax, 1
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
mov edi, dword [0x98f460]
call fcn.00914310
mov esi, eax
call fcn.00914320
push edi
push esi
push eax
push str._s_r_s_started._Verbose_level___d_n
push 0
call fcn.00902480
add esp, 0x14
cmp byte [ebp - 0xad], 0
je 0x902ff8
cmp byte [ebp - 0xae], 0
jne 0x902ff8
push str.Starting_service_dispatcher_..._n
push 2
call fcn.00902480
add esp, 8
call fcn.00913d40
mov dword [ebp - 0xb4], eax
jmp 0x903158
push 1
push 0x901cb0
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
test eax, eax
jne 0x90301d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Unable_to_add_console_control_handler__error_ld_n
call fcn.00901db0
add esp, 8
call fcn.00902050
mov edx, eax
or ecx, 0xffffffff
mov dword [ebp - 0xac], ecx
test edx, edx
js 0x903056
cmp byte [0x9904f0], 0
je 0x903056
lea eax, [ebp - 0xac]
push eax
push 0x9904f0
call fcn.00945570
mov ecx, dword [ebp - 0xac]
add esp, 8
mov edx, eax
mov eax, edx
shr eax, 0x1f
mov dword [ebp - 0xb4], eax
test edx, edx
js 0x90311a
push 0x32
push str.Setting_VBoxService_status_to__u_n
push 4
call fcn.00902480
add esp, 0xc
cmp dword [0x991508], 0x320
je 0x9030b4
push 0
push 0x32
push 0x64
call fcn.009459a0
add esp, 0xc
test eax, eax
jns 0x9030aa
push eax
push 0x32
push str.Could_not_report_VBoxService_status___u___rc_Rrc_n
call fcn.00901db0
add esp, 0xc
jmp 0x9030b4
mov dword [0x991508], 0x32
push str.Waiting_in_main_thread_n
push 1
call fcn.00902480
push 0x9914fc
call fcn.009153d0
add esp, 0xc
mfence
cmp byte [0x9914f8], 0
jne 0x9030fc
lea esp, [esp]
push 0xffffffffffffffff
push dword [0x9914fc]
call fcn.00915570
add esp, 8
mfence
cmp byte [0x9914f8], 0
je 0x9030e0
push dword [0x9914fc]
call fcn.00915470
mov ecx, dword [ebp - 0xac]
add esp, 4
mov dword [0x9914fc], 0
cmp byte [0x9904f0], 0
je 0x903136
cmp ecx, 0xffffffff
je 0x903136
push ecx
push 0x9904f0
call fcn.00945530
add esp, 8
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
test eax, eax
jne 0x903158
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Unable_to_remove_console_control_handler__error_ld_n
call fcn.00901db0
add esp, 8
push 0x65
call fcn.00901ff0
add esp, 4
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.Ended._n
push 0
call fcn.00902480
push 0
call fcn.0091bd60
push eax
call fcn.0091b650
add esp, 0x10
mov eax, dword [ebp - 0xb4]
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00901200
mov esp, ebp
pop ebp
ret
cmp byte [0x98f468], 0
mov eax, 0x98f468
jne 0x9031af
mov eax, str._None_
push ecx
push eax
push str.Failed_to_create_release_log__s__rc_Rrc_n
push 1
call fcn.00914e90
mov ecx, dword [ebp - 4]
add esp, 0x10
xor ecx, ebp
pop edi
pop ebx
pop esi
call fcn.00901200
mov esp, ebp
pop ebp
ret