Function at 0x4012e0
Capabilities:
Check mutex on windows

Disassembly:
push 0x170
mov eax, 0x410398
call fcn.0040f91b
xor ebx, ebx
lea ecx, [ebp - 0x160]
mov dword [ebp - 0x170], ebx
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_void_]
push ebx
mov dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.Common.dll_void___cdecl_Util::Misc::SetMainAndLogicThreadId_unsigned_long_int__unsigned_long_int_]
mov eax, dword [sym.imp.MSVCR100.dll___argc]
mov eax, dword [eax]
mov esi, dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::destructor_void_]
pop ecx
pop ecx
cmp eax, 2
je 0x401348
cmp eax, 3
je 0x401348
cmp eax, 5
je 0x401348
or ebx, 0xffffffff
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call esi
mov eax, ebx
jmp 0x401966
mov eax, dword [sym.imp.MSVCR100.dll___wargv]
mov eax, dword [eax]
push dword [eax + 4]
mov edi, dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_wchar_t__]
lea ecx, [ebp - 0x158]
call edi
push str._fromQQ
push eax
mov byte [ebp - 4], 1
call dword [sym.imp.Common.dll_bool___cdecl_operator_class_CTXStringW_const___wchar_t_const__]
pop ecx
pop ecx
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x151], al
mov byte [ebp - 4], bl
call esi
cmp byte [ebp - 0x151], bl
je 0x401393
mov dword [0x419208], ebx
jmp 0x4013fe
mov eax, dword [sym.imp.MSVCR100.dll___wargv]
mov eax, dword [eax]
push dword [eax + 4]
lea ecx, [ebp - 0x158]
call edi
push str._fromTM
push eax
mov byte [ebp - 4], 2
call dword [sym.imp.Common.dll_bool___cdecl_operator_class_CTXStringW_const___wchar_t_const__]
pop ecx
pop ecx
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x151], al
mov byte [ebp - 4], bl
call esi
cmp byte [ebp - 0x151], bl
je 0x401926
push 0x4191f0
mov ecx, 0x4191e8
mov dword [0x419208], 1
call dword [sym.imp.Common.dll_public:_class_CTXStringW____thiscall_CTXStringW::operator_class_CTXStringW_const__]
push 0x4191f4
mov ecx, 0x4191ec
call dword [sym.imp.Common.dll_public:_class_CTXStringW____thiscall_CTXStringW::operator_class_CTXStringW_const__]
mov eax, dword [sym.imp.MSVCR100.dll___argc]
mov eax, dword [eax]
cmp eax, 3
jne 0x401455
mov eax, dword [sym.imp.MSVCR100.dll___wargv]
mov eax, dword [eax]
push dword [eax + 8]
lea ecx, [ebp - 0x158]
call edi
push str._startIM
push eax
mov byte [ebp - 4], 3
call dword [sym.imp.Common.dll_bool___cdecl_operator_class_CTXStringW_const___wchar_t_const__]
pop ecx
pop ecx
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x151], al
mov byte [ebp - 4], bl
call esi
xor eax, eax
cmp byte [ebp - 0x151], bl
setne al
mov dword [ebp - 0x170], eax
jmp 0x40152a
cmp eax, 5
jne 0x40152a
mov eax, dword [sym.imp.MSVCR100.dll___wargv]
mov eax, dword [eax]
push dword [eax + 8]
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x170], 1
call edi
push str._path
push eax
mov byte [ebp - 4], 4
call dword [sym.imp.Common.dll_bool___cdecl_operator__class_CTXStringW_const___wchar_t_const__]
pop ecx
pop ecx
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x151], al
mov byte [ebp - 4], bl
call esi
cmp byte [ebp - 0x151], bl
je 0x4014d1
lea eax, [ebp - 0x158]
push eax
push 0x413448
push str.StorageTool
push 2
push str.func
mov dword [ebp - 0x158], 0x4135ac
push 0x81
jmp 0x40194a
lea eax, [ebp - 0x15c]
push eax
mov eax, dword [sym.imp.MSVCR100.dll___wargv]
mov dword [ebp - 0x15c], ebx
mov eax, dword [eax]
push dword [eax + 0xc]
call dword [sym.imp.Common.dll_Ordinal_34]
mov eax, dword [sym.imp.MSVCR100.dll___wargv]
mov eax, dword [eax]
pop ecx
pop ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x158]
call edi
push 0x20
push 0x7c
mov ecx, eax
mov byte [ebp - 4], 5
call dword [sym.imp.Common.dll_public:_int___thiscall_CTXStringW::Replace_wchar_t__wchar_t_]
push eax
lea ecx, [ebp - 0x160]
call dword [0x413044]
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], bl
call esi
push 1
call fcn.004010a8
pop ecx
test eax, eax
jne 0x40156f
lea eax, [ebp - 0x158]
push eax
push 0x413448
push str.StorageTool
push 2
push str.func
push 0x92
push str.file
mov dword [ebp - 0x158], 0x41356c
call fcn.004011f4
add esp, 0x1c
jmp 0x401335
push dword [ebp + 0x10]
push 0x413544
push str.StorageTool
push 3
push str.func
push 0x95
push str.file
call fcn.00407b83
add esp, 0x1c
mov dword [ebp - 0x164], ebx
push ebx
lea eax, [ebp - 0x164]
push eax
push 0x413534
push 0x413524
push 0x41350c
mov byte [ebp - 4], 6
call dword [sym.imp.Common.dll_long_int___stdcall_Util::Com::CreateObjectFromDllFile_wchar_t_const___struct__GUID_const___struct__GUID_const___void____struct_IUnknown__]
test eax, eax
jns 0x4015dc
mov eax, dword [ebp - 0x164]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x401335
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x401335
lea eax, [ebp - 0x178]
push eax
call fcn.0040ebdd
lea eax, [ebp - 0x178]
mov dword [esp], str.platform.tpc
push eax
lea eax, [ebp - 0x15c]
push eax
mov byte [ebp - 4], 7
call dword [sym.imp.Common.dll_class_CTXStringW___cdecl_operator_class_CTXStringW_const___wchar_t_const__]
add esp, 0xc
mov edi, dword [sym.imp.Common.dll_public:_void___thiscall_CTXBSTR::constructor_class_CTXStringW_const__]
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 8
call edi
mov ecx, eax
mov byte [ebp - 4], 9
call dword [sym.imp.Common.dll_public:_wchar_t____thiscall_CTXBSTR::operator_wchar_t__void_const]
push eax
call dword [sym.imp.Common.dll_int___cdecl_Util::CoreCenter::InitPlatform_wchar_t__]
pop ecx
lea ecx, [ebp - 0x158]
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXBSTR::destructor_void_]
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 7
call esi
call dword [sym.imp.Common.dll_int___cdecl_Util::Boot::InitPlatformCoreConfig_void_]
call dword [sym.imp.Common.dll_int___cdecl_Util::Boot::InitPlatformI18NConfig_void_]
test eax, eax
je 0x4016c9
lea ecx, [ebp - 0xd4]
call dword [sym.imp.Common.dll_public:_void___thiscall_CFmtString::constructor_void_]
push 0x413424
push str.__PNAME
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0xa
call dword [sym.imp.Common.dll_public:_int___thiscall_CFmtString::PropertyStr_wchar_t_const___wchar_t_const__]
push str.QQ7.1
push str.__PNAME_V
lea ecx, [ebp - 0xd4]
call dword [sym.imp.Common.dll_public:_int___thiscall_CFmtString::PropertyStr_wchar_t_const___wchar_t_const__]
push 0x413438
push str.__EXEFILE
lea ecx, [ebp - 0xd4]
call dword [sym.imp.Common.dll_public:_int___thiscall_CFmtString::PropertyStr_wchar_t_const___wchar_t_const__]
lea eax, [ebp - 0xd4]
push eax
call dword [sym.imp.Common.dll_void___cdecl_TXStringBundle::AddFmtString_class_CFmtString_const__]
pop ecx
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 7
call dword [sym.imp.Common.dll_public:_void___thiscall_CFmtString::destructor_void_]
call dword [sym.imp.Common.dll_int___cdecl_Util::Boot::InitPlatformFileSystem_void_]
call dword [sym.imp.Common.dll_int___cdecl_Util::Boot::InitPlatformGFConfig_void_]
mov ecx, 0x4191e8
call dword [sym.imp.Common.dll_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const]
push eax
push ebx
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [0x41919c], eax
cmp eax, ebx
je 0x40189a
push 0x1388
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp - 0x158]
push str.Title_MoveStorageHint
push eax
call fcn.0040f64b
lea eax, [ebp - 0x15c]
push str.StorageTool_CloseQQ
push eax
mov byte [ebp - 4], 0xb
call fcn.0040f64b
add esp, 0x10
mov eax, dword [0x41919c]
mov byte [ebp - 4], 0xc
cmp eax, ebx
je 0x401749
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x41919c], ebx
mov ecx, 0x4191e8
call dword [sym.imp.Common.dll_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const]
push eax
push ebx
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [0x41919c], eax
cmp eax, ebx
je 0x401866
lea eax, [ebp - 0x168]
push eax
push 0x413448
push str.StorageTool
push 3
push str.func
push 0xdf
push str.file
mov dword [ebp - 0x168], 0x413450
call fcn.004011f4
add esp, 0x1c
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x174]
call edi
mov dword [ebp - 0x168], eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x17c]
mov byte [ebp - 4], 0xd
call edi
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x168]
push ebx
push ebx
push 0x45
mov byte [ebp - 4], 0xe
call dword [sym.imp.Common.dll_public:_wchar_t____thiscall_CTXBSTR::operator_wchar_t__void_const]
mov ecx, dword [ebp - 0x16c]
push eax
call dword [sym.imp.Common.dll_public:_wchar_t____thiscall_CTXBSTR::operator_wchar_t__void_const]
push eax
push ebx
call dword [sym.imp.AFUtil.dll_int___cdecl_Util::Misc::MessageBoxExW_struct_IGFFrame___wchar_t___wchar_t___unsigned_int__struct_ITXData___struct_ITXData___]
add esp, 0x18
lea ecx, [ebp - 0x17c]
mov dword [ebp - 0x16c], eax
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXBSTR::destructor_void_]
lea ecx, [ebp - 0x174]
mov byte [ebp - 4], 0xc
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXBSTR::destructor_void_]
cmp dword [ebp - 0x16c], 4
jne 0x40191e
mov eax, dword [0x41919c]
cmp eax, ebx
je 0x401841
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x41919c], ebx
mov ecx, 0x4191e8
call dword [sym.imp.Common.dll_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const]
push eax
push ebx
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [0x41919c], eax
cmp eax, ebx
jne 0x4017a2
xor edi, edi
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 0xb
call esi
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 7
call esi
mov eax, dword [0x41919c]
cmp eax, ebx
je 0x401896
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x41919c], ebx
cmp edi, ebx
jne 0x4018c3
lea ecx, [ebp - 0x150]
call fcn.00404ae1
lea ecx, [ebp - 0x150]
mov byte [ebp - 4], 0xf
call fcn.00404c99
lea ecx, [ebp - 0x150]
mov byte [ebp - 4], 7
call fcn.00404c0b
push ebx
call fcn.004010a8
pop ecx
call dword [sym.imp.Common.dll_void___cdecl_Util::Misc::OnExitCoreCenter_void_]
mov eax, dword [ebp - 0x164]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x48]
call dword [sym.imp.Common.dll_void___cdecl_Util::Misc::OnExitWinMain_void_]
cmp dword [ebp - 0x170], ebx
je 0x4018ef
call fcn.0040ec32
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 6
call esi
mov eax, dword [ebp - 0x164]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x40190e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call esi
xor eax, eax
jmp 0x401966
xor edi, edi
inc edi
jmp 0x401868
lea eax, [ebp - 0x174]
push eax
push 0x413448
push str.StorageTool
push 2
push str.func
mov dword [ebp - 0x174], 0x4135ac
push 0x6c
push str.file
call fcn.004011f4
or dword [ebp - 4], 0xffffffff
add esp, 0x1c
lea ecx, [ebp - 0x160]
call esi
or eax, 0xffffffff
call fcn.0040f965
ret 0x10