Function at 0x406220
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x25c
mov dword [ebp - 0x1f4], sym.___gxx_personality_sj0
mov dword [ebp - 0x1f0], 0x413cc4
lea eax, [ebp - 0x1ec]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x40699d
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x20c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Register
movzx eax, byte [0x417010]
test al, al
je 0x406274
jmp 0x406a78
mov dword [esp + 8], str.DebugUtilInitMuxName89172386123
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x208], 0xffffffff
call sub.KERNEL32.dll_CreateMutexA
sub esp, 0xc
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x210], 0
cmp dword [ebp - 0x1c], 0
jne 0x406346
mov dword [esp + 8], 0x28
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_NativeLib_DebugUtil.cpp
lea eax, [ebp - 0x38]
mov dword [esp], eax
mov dword [ebp - 0x208], 7
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0x210], 1
lea eax, [ebp - 0x38]
mov dword [esp + 4], str.failed_to_create_DebugUtil_initialization_mutex
mov dword [esp], eax
call method.du_private_AssertHelper.handleAssertionFailure2_char_const_
jmp 0x406346
cmp dword [ebp - 0x210], 0
je 0x406364
lea eax, [ebp - 0x38]
mov dword [esp], eax
mov dword [ebp - 0x208], 0xffffffff
call sym.du_private_AssertHelper::du_private_AssertHelper__
mov dword [esp + 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
mov dword [ebp - 0x208], 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
sub esp, 8
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x21c], 0
cmp dword [ebp - 0x3c], 0
je 0x40642d
mov dword [esp + 8], 0x2a
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_NativeLib_DebugUtil.cpp
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0x208], 6
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0x21c], 1
lea eax, [ebp - 0x58]
mov dword [esp + 4], str.failed_to_get_the_DebugUtil_initialization_mutex
mov dword [esp], eax
call method.du_private_AssertHelper.handleAssertionFailure2_char_const_
jmp 0x40642d
cmp dword [ebp - 0x21c], 0
je 0x40644b
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0x208], 0xffffffff
call sym.du_private_AssertHelper::du_private_AssertHelper__
movzx eax, byte [0x417010]
test al, al
jne 0x40682a
mov dword [esp + 8], 0x104
lea eax, [ebp - 0x168]
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [ebp - 0x208], 0xffffffff
call sub.KERNEL32.dll_GetModuleFileNameA
sub esp, 0xc
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x224], 0
cmp dword [ebp - 0x16c], 0
jne 0x40653d
mov dword [esp + 8], 0x30
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_NativeLib_DebugUtil.cpp
lea eax, [ebp - 0x188]
mov dword [esp], eax
mov dword [ebp - 0x208], 5
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0x224], 1
lea eax, [ebp - 0x188]
mov dword [esp + 4], str.failed_to_get_the_module_file_name__the_exe_or_dll_path_
mov dword [esp], eax
call method.du_private_AssertHelper.handleAssertionFailure_char_const__..._
jmp 0x40653d
cmp dword [ebp - 0x224], 0
je 0x40655e
lea eax, [ebp - 0x188]
mov dword [esp], eax
mov dword [ebp - 0x208], 0xffffffff
call sym.du_private_AssertHelper::du_private_AssertHelper__
mov dword [ebp - 0x22c], 0
cmp byte [ebp - 0x168], 0
je 0x40658b
lea eax, [ebp - 0x168]
mov dword [esp], eax
call sym._strlen
cmp eax, 0x103
ja 0x40658b
jmp 0x406630
mov dword [esp + 8], 0x31
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_NativeLib_DebugUtil.cpp
lea eax, [ebp - 0x198]
mov dword [esp], eax
mov dword [ebp - 0x208], 4
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0x22c], 1
lea edx, [ebp - 0x198]
lea eax, [ebp - 0x168]
mov dword [esp + 8], eax
mov dword [esp + 4], str.invalid_exe_name___s
mov dword [esp], edx
call method.du_private_AssertHelper.handleAssertionFailure_char_const__..._
jmp 0x406630
cmp dword [ebp - 0x22c], 0
je 0x406651
lea eax, [ebp - 0x198]
mov dword [esp], eax
mov dword [ebp - 0x208], 0xffffffff
call sym.du_private_AssertHelper::du_private_AssertHelper__
mov dword [esp + 4], str.C:ControllerStartupLog.txt
mov dword [esp], 0x417030
mov dword [ebp - 0x208], 0xffffffff
call sym._strcpy
lea eax, [ebp - 0x168]
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x168]
mov dword [esp], eax
call sym._strlen
add eax, dword [ebp - 0x234]
dec eax
mov dword [ebp - 0x19c], eax
lea eax, [ebp - 0x168]
cmp eax, dword [ebp - 0x19c]
jae 0x4066c4
mov eax, dword [ebp - 0x19c]
cmp byte [eax], 0x2f
je 0x4066c4
mov eax, dword [ebp - 0x19c]
cmp byte [eax], 0x5c
je 0x4066c4
lea eax, [ebp - 0x19c]
dec dword [eax]
jmp 0x406696
mov dword [ebp - 0x238], 0
lea eax, [ebp - 0x168]
cmp eax, dword [ebp - 0x19c]
je 0x4066eb
mov eax, dword [ebp - 0x19c]
cmp byte [eax], 0
jne 0x406790
mov dword [esp + 8], 0x3d
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_NativeLib_DebugUtil.cpp
lea eax, [ebp - 0x1b8]
mov dword [esp], eax
mov dword [ebp - 0x208], 3
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0x238], 1
lea edx, [ebp - 0x1b8]
lea eax, [ebp - 0x168]
mov dword [esp + 8], eax
mov dword [esp + 4], str.invalid_exe_name_derived_from_path__s
mov dword [esp], edx
call method.du_private_AssertHelper.handleAssertionFailure_char_const__..._
jmp 0x406790
cmp dword [ebp - 0x238], 0
je 0x4067b1
lea eax, [ebp - 0x1b8]
mov dword [esp], eax
mov dword [ebp - 0x208], 0xffffffff
call sym.du_private_AssertHelper::du_private_AssertHelper__
mov eax, dword [ebp - 0x19c]
inc eax
mov dword [esp + 4], eax
mov dword [esp], 0x417140
mov dword [ebp - 0x208], 0xffffffff
call sym._strcpy
mov dword [esp], 0x417140
call sym._strlen
cmp eax, 4
jbe 0x406823
mov dword [esp], 0x417140
call sym._strlen
mov edx, eax
mov eax, 0x417140
sub eax, 4
lea eax, [edx + eax]
mov dword [esp + 4], str..exe
mov dword [esp], eax
call sym._strcmpi
test eax, eax
jne 0x406823
mov dword [esp], 0x417140
call sym._strlen
mov byte [eax + 0x41713c], 0
mov byte [0x417010], 1
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
mov dword [ebp - 0x208], 0xffffffff
call sub.KERNEL32.dll_ReleaseMutex
sub esp, 4
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x240], 0
cmp dword [ebp - 0x19c], 0
jne 0x4068fa
mov dword [esp + 8], 0x4b
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_NativeLib_DebugUtil.cpp
lea eax, [ebp - 0x1c8]
mov dword [esp], eax
mov dword [ebp - 0x208], 2
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0x240], 1
lea eax, [ebp - 0x1c8]
mov dword [esp + 4], str.failed_to_release_the_DebugUtil_initialization_mutex
mov dword [esp], eax
call method.du_private_AssertHelper.handleAssertionFailure2_char_const_
jmp 0x4068fa
cmp dword [ebp - 0x240], 0
je 0x40691b
lea eax, [ebp - 0x1c8]
mov dword [esp], eax
mov dword [ebp - 0x208], 0xffffffff
call sym.du_private_AssertHelper::du_private_AssertHelper__
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
mov dword [ebp - 0x208], 0xffffffff
call sub.KERNEL32.dll_CloseHandle
sub esp, 4
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x248], 0
cmp dword [ebp - 0x16c], 0
jne 0x406a57
mov dword [esp + 8], 0x4d
mov dword [esp + 4], str.d:_systembuild_latest_build_output_build_source_controller_source_cpp_NativeLib_DebugUtil.cpp
lea eax, [ebp - 0x1d8]
mov dword [esp], eax
mov dword [ebp - 0x208], 1
call sym.du_private_AssertHelper::du_private_AssertHelper_char_const__int_
mov dword [ebp - 0x248], 1
lea eax, [ebp - 0x1d8]
mov dword [esp + 4], str.failed_to_close_the_DebugUtil_initialization_mutex
mov dword [esp], eax
call method.du_private_AssertHelper.handleAssertionFailure2_char_const_
jmp 0x406a57
cmp dword [ebp - 0x248], 0
je 0x406a78
lea eax, [ebp - 0x1d8]
mov dword [esp], eax
mov dword [ebp - 0x208], 0xffffffff
call sym.du_private_AssertHelper::du_private_AssertHelper__
lea eax, [ebp - 0x20c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret