Function at 0x47ee30
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58d234
mov eax, dword fs:[0]
push eax
sub esp, 0x60
push ebx
push esi
push edi
mov eax, dword [0x610304]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [ebp - 0x18], ebx
mov esi, dword [ebp + 8]
cmp esi, ebx
je 0x47f0e4
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x47f0e4
push eax
lea ecx, [ebp - 0x1c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_wchar_t_const__
push esi
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], ebx
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_wchar_t_const__
push str.BACKUP_
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x20]
push ecx
mov byte [ebp - 4], 1
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___wchar_t_const__
add esp, 0xc
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
call sym.txupd.exe_public:_int___thiscall_CTXStringW::GetLength_void_const
mov edi, 1
sub eax, edi
push eax
lea ecx, [ebp - 0x10]
call sym.txupd.exe_public:_wchar_t___thiscall_CTXStringW::GetAt_int_const
cmp ax, 0x5c
je 0x47eef5
push 0x5c
lea ecx, [ebp - 0x10]
call sym.txupd.exe_public:_int___thiscall_CTXStringW::ReverseFind_wchar_t_const
add eax, edi
push eax
lea edx, [ebp + 8]
push edx
lea ecx, [ebp - 0x10]
call sym.txupd.exe_public:_class_CTXStringW___thiscall_CTXStringW::Left_int_
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 3
call fcn.0049f0c7
lea ecx, [ebp + 8]
mov byte [ebp - 4], 2
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
push 0x5a3f4c
lea ecx, [ebp - 0x14]
mov dword [ebp + 8], ebx
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_wchar_t_const__
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
call sym.txupd.exe_public:_int___thiscall_CTXStringW::GetLength_void_const
push eax
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x10]
call sym.txupd.exe_public:_class_CTXStringW___thiscall_CTXStringW::Right_int_
mov esi, eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 5
call sym.txupd.exe_public:_wchar_t____thiscall_CTXStringW::GetBuffer_void_
push eax
mov ecx, esi
call sym.txupd.exe_public:_int___thiscall_CTXStringW::CompareNoCase_wchar_t_const__const
test eax, eax
lea ecx, [ebp - 0x24]
sete bl
mov byte [ebp - 4], 4
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
test bl, bl
je 0x47ef54
mov ebx, dword [ebp - 0x18]
mov dword [ebp + 8], edi
lea esi, [ebp - 0x10]
jmp 0x47ef8f
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 0x2c]
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___class_CTXStringW_const__
push str.LICENSE
push eax
lea ecx, [ebp - 0x28]
push ecx
mov byte [ebp - 4], 6
mov dword [ebp - 0x18], edi
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___wchar_t_const__
add esp, 0x18
mov esi, eax
mov ebx, 3
mov dword [ebp - 4], 7
mov dword [ebp - 0x18], ebx
push str.LICENSE
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebp - 0x24]
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___wchar_t_const__
add esp, 0xc
mov edi, eax
mov ecx, esi
mov dword [ebp - 4], 8
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
mov ecx, edi
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call fcn.00499580
add esp, 8
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 7
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
test bl, 2
mov dword [ebp - 4], 6
je 0x47efeb
and ebx, 0xfffffffd
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], ebx
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
test bl, 1
mov dword [ebp - 4], 4
je 0x47f005
and ebx, 0xfffffffe
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], ebx
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x10]
push edx
call fcn.0047d9f0
mov edi, dword [ebp + 8]
add esp, 8
test edi, edi
jne 0x47f104
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x2c]
push edx
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___class_CTXStringW_const__
push 0x5aaf38
push eax
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 9
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___wchar_t_const__
add esp, 0x18
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xb
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x24]
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x47f0f8
push 0x5aaf38
lea ecx, [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x28]
push edx
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___wchar_t_const__
lea ecx, [ebp - 0x24]
push ecx
push eax
mov byte [ebp - 4], 0xc
call fcn.0047eae0
add esp, 0x14
test eax, eax
lea ecx, [ebp - 0x28]
sete byte [ebp + 0xb]
mov byte [ebp - 4], 0xb
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
cmp byte [ebp + 0xb], 0
je 0x47f0f8
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 4
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 4
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
push 0x5aaf38
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 0x28]
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___wchar_t_const__
mov esi, eax
push 0x5aaf38
lea ecx, [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x2c]
push edx
mov byte [ebp - 4], 0xd
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___wchar_t_const__
push esi
push eax
mov byte [ebp - 4], 0xe
call fcn.0047eae0
add esp, 0x20
test eax, eax
lea ecx, [ebp - 0x2c]
sete byte [ebp + 0xb]
mov byte [ebp - 4], 0xd
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 4
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
cmp byte [ebp + 0xb], 0
jne 0x47f0b1
xor esi, esi
cmp edi, esi
je 0x47f16f
lea eax, [ebp - 0x10]
jmp 0x47f18d
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x2c]
push edx
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___class_CTXStringW_const__
add esp, 0xc
or ebx, 4
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x18], ebx
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0047ebc0
add esp, 8
test eax, eax
sete byte [ebp + 0xb]
test bl, 4
mov dword [ebp - 4], 4
je 0x47f1ba
and ebx, 0xfffffffb
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], ebx
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
cmp byte [ebp + 0xb], 0
je 0x47f282
mov dword [ebp + 8], str.txupd:_replace_tencent_component_file_faild___n
mov dword [ebp - 0x38], str.E:_txupdatecodingTXUpdate_servicelogicOwnUpdater.cpp
mov dword [ebp - 0x34], str.OwnUpdater::ReplaceUpdaterUsingNewVer
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x64], 0xbc
mov dword [ebp - 0x60], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x68], 2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [ebp - 0x4c]
push ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], esi
call dword [sym.imp.MSVCR80.dll__time64]
lea edx, [ebp + 8]
push edx
push 0x5a48f0
lea eax, [ebp - 0x6c]
push 0x5aaeb4
push eax
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
call sym.txupd.exe_void___cdecl_TXLog_DoTXLogVW_struct_tagLogObj___wchar_t_const___wchar_t_const___char__
push str.txupd:_replace_tencent_component_file_faild___n
call dword [sym.imp.MSVCR80.dll_wprintf]
add esp, 0x18
cmp edi, esi
je 0x47f243
lea eax, [ebp - 0x10]
jmp 0x47f261
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp + 8]
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_operator_class_CTXStringW_const___class_CTXStringW_const__
add esp, 0xc
or ebx, 8
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x18], ebx
push eax
lea ecx, [ebp - 0x20]
push ecx
call fcn.0047dcd0
add esp, 8
test bl, 8
mov dword [ebp - 4], 4
je 0x47f282
lea ecx, [ebp + 8]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
push esi
lea ecx, [ebp - 0x20]
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call fcn.004997e0
add esp, 8
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret