Function at 0x507105
Capabilities:
Check mutex on windows
Get common file path

Disassembly:
push 0x21c
mov eax, 0x6ec626
call fcn.00682c92
mov edi, ecx
mov dword [ebp - 0x220], edi
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.00689b00
add esp, 0xc
lea eax, [ebp - 0x218]
push 1
push 0x1a
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
jne 0x507170
push 0xf7
push str.E:FixReplayAttackscodingTXUpdate_servicepublic_configPublicConfigStorageLogic.cpp
push 0x6ff860
call sym.txupd.exe_int___cdecl_TXAssert_wchar_t_const___wchar_t_const___int_
add esp, 0xc
cmp eax, 1
jne 0x507166
int3
mov eax, 0x80004005
jmp 0x50733a
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x224]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_wchar_t__
lea ecx, [ebp - 0x224]
mov dword [ebp - 4], ebx
call sym.txupd.exe_public:_int___thiscall_CTXStringW::GetLength_void_const
dec eax
lea ecx, [ebp - 0x224]
push eax
call sym.txupd.exe_public:_wchar_t___thiscall_CTXStringW::GetAt_int_const
push 0x5c
pop ecx
cmp ax, cx
je 0x5071d7
push 1
push ecx
lea ecx, [ebp - 0x21c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_wchar_t__int_
lea eax, [ebp - 0x21c]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x224]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::Append_class_CTXStringW_const__
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], bl
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
push str.TencentQQPublicConfingconfig.db
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x21c]
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___wchar_t_const__
add esp, 0xc
lea esi, [edi + 0x20]
mov byte [ebp - 4], 2
push eax
mov ecx, esi
call fcn.0051b603
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], bl
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
add edi, 0x24
push esi
mov ecx, edi
call fcn.0051b603
push 0x76cfa0
push 0x6fdc28
mov ecx, edi
call sym.txupd.exe_public:_int___thiscall_CTXStringW::Replace_wchar_t_const___wchar_t_const__
push str.3DCE6452_2D99_4C2A_A868_1E79E2DEC682
mov ecx, edi
call sym.txupd.exe_public:_class_CTXStringW____thiscall_CTXStringW::operator_wchar_t_const__
push 0x103
lea eax, [ebp - 0x21c]
mov ecx, edi
push eax
call sym.txupd.exe_public:_class_CTXStringW___thiscall_CTXStringW::Left_int_
lea ecx, [ebp - 0x21c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
mov esi, dword [ebp - 0x220]
mov ecx, edi
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
lea ecx, [esi + 0x18]
call fcn.00506ef1
cmp eax, 2
jne 0x507325
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
push 0xffffffffffffffff
push 0x70cffc
push dword [ebp - 0x228]
lea ecx, [ebp - 0x228]
mov dword [ebp - 0x21c], eax
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_struct_tagUTF8__char_const___int_
mov esi, eax
mov ecx, dword [ebp - 0x220]
push dword [ebp - 0x21c]
mov byte [ebp - 4], 3
lea ecx, [ecx + 0x24]
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
push str.m_mutex.Create__s__failed__lasterror:__d.
mov ecx, esi
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
push 2
push str.PublicConfigStorageLogic::InitStorage
push 0x10f
push str.E:FixReplayAttackscodingTXUpdate_servicepublic_configPublicConfigStorageLogic.cpp
call fcn.004ce3cb
add esp, 0x20
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x228]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
call edi
cmp eax, 5
jne 0x5073b9
mov edi, dword [ebp - 0x220]
lea ecx, [edi + 0x24]
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
mov esi, edi
mov ecx, eax
cmp dword [esi + 0x18], ebx
je 0x507340
push 0x3b
push str.e:_fixreplayattackscoding_txupdate_servicepublic_configPublicConfigStorageLogic.h
push 0x6ff860
call sym.txupd.exe_int___cdecl_TXAssert_wchar_t_const___wchar_t_const___int_
add esp, 0xc
cmp eax, 1
jne 0x507325
int3
lea ecx, [esi + 0x18]
call fcn.00507f9e
lea ecx, [ebp - 0x224]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
mov eax, ebx
call fcn.00682c3c
ret
push ecx
push ebx
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
xor ecx, ecx
mov dword [esi + 0x18], eax
test eax, eax
setne cl
test ecx, ecx
jne 0x507325
push 0xffffffffffffffff
push 0x70cffc
push dword [ebp - 0x228]
lea ecx, [ebp - 0x228]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_struct_tagUTF8__char_const___int_
mov esi, eax
push dword [ebp - 0x21c]
lea ecx, [edi + 0x24]
mov byte [ebp - 4], 4
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
push str.m_mutex.Open__s__SYNCHRONIZE__failed__lasterror:__d.
mov ecx, esi
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
push 2
push str.PublicConfigStorageLogic::InitStorage
push 0x116
push str.E:FixReplayAttackscodingTXUpdate_servicepublic_configPublicConfigStorageLogic.cpp
call fcn.004ce3cb
add esp, 0x20
lea ecx, [ebp - 0x228]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
mov ebx, 0x80004005
jmp 0x50732d