Function at 0x416dd0
Capabilities:
Check if file exists

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49dfb5
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x140
mov eax, dword [0x4cd070]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0xd8], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0xe4], eax
lea esi, [edi + 0x48]
mov eax, dword [ebx + 8]
mov dword [edi + 0xd8], eax
cmp dword [esi], 0
jne 0x416ea5
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xdc], edi
push eax
lea edx, [ebp - 0x18]
mov dword [ebp - 0x18], 0x418f00
lea ecx, [ebp - 0xd4]
call fcn.0041c4a0
add esp, 4
cmp esi, eax
je 0x416e85
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [esi]
mov dword [esi], ecx
test eax, eax
je 0x416e85
cmp dword [eax + 4], 0
je 0x416e7a
call fcn.004865af
push 8
push eax
call fcn.004653ca
add esp, 8
mov eax, dword [ebp - 0xd4]
test eax, eax
je 0x416ea5
cmp dword [eax + 4], 0
je 0x416e9a
call fcn.004865af
push 8
push eax
call fcn.004653ca
add esp, 8
mov ecx, edi
call fcn.00416780
mov ecx, eax
test ecx, ecx
jne 0x416ebe
push str.UpdateInfo_is_empty
push 7
jmp 0x417a63
mov eax, dword [ecx]
mov dword [edi + 0x60], eax
mov eax, dword [ecx + 0x7c]
mov dword [edi + 0x74], eax
mov eax, dword [ecx + 0xb8]
mov dword [edi + 0x78], eax
cmp dword [ecx + 0xc4], 0
setle al
test al, al
je 0x416f51
push str.wechatInstallPath_is_empty.
push str.UpdateMgr
push 0x154
push str.managerUpdateMgr.cpp
push 4
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 4
mov byte [edi + 0x50], 1
mov ecx, esp
push 0xffffffffffffffff
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
push str.NeedUpdateType
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
call fcn.00405e40
mov ecx, 1
call fcn.0042cff0
add esp, 0x14
mov ecx, edi
call fcn.00419cb0
jmp 0x417a6a
cmp dword [ecx + 0x5c], 0
lea eax, [ecx + 0x58]
mov dword [ebp - 0xd4], eax
setle al
test al, al
je 0x416f6f
push str.Component_xml_is_empty
jmp 0x417a61
mov eax, dword [ecx + 0x80]
mov dword [edi + 0x58], eax
mov eax, dword [ecx]
mov dword [edi + 0xd0], eax
mov eax, dword [ecx + 0x7c]
mov ecx, edi
mov dword [edi + 0xd4], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004196a0
mov dword [ebp - 4], 0
mov ecx, dword [eax]
test ecx, ecx
je 0x416fc2
cmp word [ecx], 0
je 0x416fc2
lea esi, [eax + 0xc]
sub esp, 8
mov edx, esi
call fcn.004237d0
mov eax, dword [esi]
add esp, 8
test eax, eax
je 0x416fc2
cmp byte [eax], 0
jne 0x416fc7
mov eax, 0x4afda8
push eax
push dword [edi + 0xd0]
push str.get_the_pack_version:_m_patchVersion:__d__version:__s
push str.UpdateMgr
push 0x165
push str.managerUpdateMgr.cpp
push 1
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00405df0
push str.warning_its_not_the_real_update_version.
push str.UpdateMgr
push 0x166
push str.managerUpdateMgr.cpp
push 1
call fcn.0040e400
push eax
call fcn.00402c30
mov esi, dword [ebp - 0xd4]
add esp, 4
mov ecx, esp
push esi
call fcn.00405bb0
mov ecx, edi
call fcn.00419df0
test al, al
je 0x417a30
cmp dword [edi + 0xc], 0
je 0x417a30
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.004169d0
lea ecx, [edi + 0x80]
push eax
mov dword [ebp - 0xe0], ecx
call fcn.00406020
lea ecx, [ebp - 0x2c]
call fcn.00405df0
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.00416b70
lea ecx, [edi + 0x94]
push eax
call fcn.00406020
lea ecx, [ebp - 0x2c]
call fcn.00405df0
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.00416cb0
lea ecx, [edi + 0xa8]
push eax
mov dword [ebp - 0x18], ecx
call fcn.00406020
lea ecx, [ebp - 0x2c]
call fcn.00405df0
lea esi, [edi + 0xbc]
lea eax, [edi + 0x94]
mov dword [ebp - 0xdc], esi
push eax
mov ecx, esi
call fcn.00406020
push str._tmp
mov ecx, esi
call fcn.00405fa0
lea ecx, [edi + 0x94]
call fcn.00413be0
push eax
lea ecx, [edi + 0x80]
call fcn.00413be0
push eax
push str.m_oldVersionDir:_s__m_newVersionDir_s
push str.UpdateMgr
push 0x175
push str.managerUpdateMgr.cpp
push 2
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x1c
lea ecx, [edi + 0x94]
mov edx, 3
call fcn.0042b4c0
mov ecx, dword [edi + 0xa8]
add esp, 4
test ecx, ecx
je 0x417137
cmp word [ecx], 0
jne 0x41713c
mov ecx, 0x4aebf4
call fcn.0042d450
test al, al
jne 0x417181
lea ecx, [edi + 0xa8]
call fcn.00413be0
push eax
push str.failReason:_patch_not_exist:__s
push str.UpdateMgr
push 0x17b
push str.managerUpdateMgr.cpp
push 4
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x1c
push str.patch_not_Exist
push 3
jmp 0x417a63
push 0
push 0
push 0x467
push dword [edi + 0xd8]
call dword [sym.imp.USER32.dll_PostMessageW]
push 0xffffffffffffffff
xorps xmm0, xmm0
mov dword [ebp - 0x8c], 0
push str.andromeda.dll
lea ecx, [ebp - 0x150]
movq qword [ebp - 0x94], xmm0
call fcn.00405b70
push 0xffffffffffffffff
push str.VoipEngine.dll
lea ecx, [ebp - 0x13c]
call fcn.00405b70
push 0xffffffffffffffff
push str.libFFmpeg.dll
lea ecx, [ebp - 0x128]
call fcn.00405b70
push 0xffffffffffffffff
push str.ConfSdk.dll
lea ecx, [ebp - 0x114]
call fcn.00405b70
push 0xffffffffffffffff
push str.confsdk.dll
lea ecx, [ebp - 0x100]
call fcn.00405b70
lea ecx, [ebp - 0x150]
mov dword [ebp - 4], 1
push ecx
lea eax, [ebp - 0xec]
push eax
push ecx
lea ecx, [ebp - 0x94]
call fcn.0041aee0
push fcn.00405df0
push 5
push 0x14
lea eax, [ebp - 0x150]
mov byte [ebp - 4], 3
push eax
call fcn.0046563b
mov eax, dword [edi]
sub esp, 0x14
add eax, 0xc0
mov dword [ebp - 0xd4], esp
mov ecx, esp
push eax
call fcn.00405bb0
sub esp, 0xc
mov byte [ebp - 4], 4
lea eax, [ebp - 0x94]
mov ecx, esp
push eax
call fcn.0041af20
mov byte [ebp - 4], 3
call fcn.0042fb70
add esp, 0x20
test al, al
jne 0x4172be
push str.checkRenameOldDllFiles:_faild
push str.UpdateMgr
push 0x18b
push str.managerUpdateMgr.cpp
push 4
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x18
mov ecx, edi
push str.checkRenameOldDllFiles_faild.
push 5
call fcn.00418390
lea ecx, [ebp - 0x94]
call fcn.00413c90
jmp 0x417a6a
mov ecx, esi
call fcn.00406000
mov ecx, eax
call fcn.0042d450
test al, al
je 0x4172f7
mov ecx, edi
call fcn.0041a2e0
test al, al
je 0x4172e7
mov dword [edi + 0x70], 1
jmp 0x4176d1
push ecx
mov edx, 3
mov ecx, esi
call fcn.0042b4c0
add esp, 4
push str.needCopyFiles.
push str.UpdateMgr
push 0x1a0
push str.managerUpdateMgr.cpp
push 2
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x18
mov ecx, esi
call fcn.0042d890
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x88]
xorps xmm0, xmm0
mov dword [ebp - 0x80], 0
movq qword [ebp - 0x88], xmm0
call fcn.0042b960
mov byte [ebp - 4], 5
mov esi, dword [ebp - 0x88]
mov edi, dword [ebp - 0x84]
cmp esi, edi
je 0x417458
nop word [eax + eax]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
push esi
lea ecx, [ebp - 0x2c]
movups xmmword [ebp - 0x2c], xmm0
call fcn.00405bb0
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x40]
movups xmmword [ebp - 0x40], xmm0
call fcn.00405b40
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x54], xmm0
call fcn.00405b40
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x4173b7
cmp word [eax], 0
jne 0x4173bc
mov eax, 0x4aebf4
mov ecx, dword [ebp - 0x18]
push eax
push 0x4b5884
call fcn.00406000
push eax
lea ecx, [ebp - 0x40]
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
mov eax, dword [ebp - 0xd4]
test eax, eax
je 0x4173f1
cmp word [eax], 0
jne 0x4173f6
mov eax, 0x4aebf4
mov ecx, dword [ebp - 0xdc]
push eax
push 0x4b5884
call fcn.00406000
push eax
lea ecx, [ebp - 0x54]
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
lea edx, [ebp - 0x54]
lea ecx, [ebp - 0x40]
call fcn.0042af90
test al, al
je 0x41765d
lea ecx, [ebp - 0x54]
call fcn.00405df0
lea ecx, [ebp - 0x40]
call fcn.00405df0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00405df0
add esi, 0x14
cmp esi, edi
jne 0x417360
push str.copy_patchDir_done.
push str.UpdateMgr
push 0x1af
push str.managerUpdateMgr.cpp
push 2
call fcn.0040e400
push eax
call fcn.00402c30
mov edi, dword [ebp - 0xd8]
add esp, 0x18
mov esi, dword [edi + 8]
mov eax, dword [esi]
mov dword [ebp - 0x18], eax
cmp eax, esi
je 0x417601
lea edi, [eax + 0x10]
push edi
lea ecx, [ebp - 0xd0]
call fcn.00405bb0
lea eax, [edi + 0x14]
push eax
lea ecx, [ebp - 0xbc]
call fcn.00405bb0
lea eax, [ebp - 0xd0]
mov dword [ebp - 0x1c], 0
xorps xmm0, xmm0
lea ecx, [ebp - 0x2c]
push eax
movups xmmword [ebp - 0x2c], xmm0
call fcn.00405bb0
xorps xmm0, xmm0
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0
movups xmmword [ebp - 0x54], xmm0
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x30], 0
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x30], 0
mov byte [ebp - 4], 0xc
mov edi, dword [ebp - 0x2c]
test edi, edi
je 0x41750f
cmp word [edi], 0
mov ecx, edi
jne 0x417514
mov ecx, 0x4aebf4
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax]
test eax, eax
je 0x417526
cmp word [eax], 0
jne 0x41752b
mov eax, 0x4aebf4
push ecx
push 0x4b5884
push eax
lea ecx, [ebp - 0x40]
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x417555
cmp word [eax], 0
jne 0x41755a
mov eax, 0x4aebf4
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
sete al
test al, al
jne 0x4175c1
test edi, edi
je 0x417575
cmp word [edi], 0
jne 0x41757a
mov edi, 0x4aebf4
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax]
test eax, eax
je 0x41758c
cmp word [eax], 0
jne 0x417591
mov eax, 0x4aebf4
push edi
push 0x4b5884
push eax
lea ecx, [ebp - 0x54]
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x54]
call fcn.0042af90
test al, al
je 0x417689
lea ecx, [ebp - 0x40]
call fcn.00405df0
lea ecx, [ebp - 0x54]
call fcn.00405df0
lea ecx, [ebp - 0x2c]
call fcn.00405df0
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 5
call fcn.00417a90
lea ecx, [ebp - 0x18]
call fcn.0041b400
mov eax, dword [ebp - 0x18]
cmp eax, esi
jne 0x417492
mov edi, dword [ebp - 0xd8]
push str.copy_installDir_done.
push str.UpdateMgr
push 0x1bf
push str.managerUpdateMgr.cpp
push 2
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x18
mov ecx, edi
call fcn.0041a2e0
test al, al
jne 0x4176c0
push str.compare_md5_faild.
push 4
mov ecx, edi
call fcn.00418390
lea ecx, [ebp - 0x88]
call fcn.00413c90
lea ecx, [ebp - 0x94]
call fcn.00413c90
jmp 0x417a6a
mov ecx, dword [ebp - 0xd8]
push str.copy_patch_file_error
push 6
call fcn.00418390
lea ecx, [ebp - 0x54]
call fcn.00405df0
lea ecx, [ebp - 0x40]
call fcn.00405df0
lea ecx, [ebp - 0x2c]
call fcn.00405df0
jmp 0x417642
mov ecx, dword [ebp - 0xd8]
push str.copy_old_file_error.
push 6
call fcn.00418390
lea ecx, [ebp - 0x40]
call fcn.00405df0
lea ecx, [ebp - 0x54]
call fcn.00405df0
lea ecx, [ebp - 0x2c]
call fcn.00405df0
lea ecx, [ebp - 0xd0]
call fcn.00417a90
jmp 0x417642
lea ecx, [ebp - 0x88]
call fcn.00413c90
lea esi, [edi + 0xbc]
xorps xmm0, xmm0
mov dword [ebp - 0x98], 0
movups xmmword [ebp - 0xa8], xmm0
mov dword [ebp - 0x98], 0
movups xmmword [ebp - 0xa8], xmm0
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x58], 0
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x58], 0
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x6c], 0
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x6c], 0
mov byte [ebp - 4], 0xf
mov eax, dword [esi]
test eax, eax
je 0x417732
cmp word [eax], 0
jne 0x417737
mov eax, 0x4aebf4
push 0x4b6430
push 0x4b5884
push eax
lea ecx, [ebp - 0xa8]
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
mov eax, dword [edi]
mov eax, dword [eax + 0xc0]
test eax, eax
je 0x41776d
cmp word [eax], 0
jne 0x417772
mov eax, 0x4aebf4
push 0x4b6430
push 0x4b5884
push eax
lea ecx, [ebp - 0x68]
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x4177a0
cmp word [eax], 0
jne 0x4177a5
mov eax, 0x4aebf4
push str._bak
push eax
lea ecx, [ebp - 0x7c]
call fcn.00405fa0
mov ecx, eax
call fcn.00405fa0
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x4177c7
cmp word [eax], 0
jne 0x4177cc
mov eax, 0x4aebf4
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
sete al
test al, al
je 0x4177e5
lea ecx, [ebp - 0x7c]
call fcn.0042a510
lea edx, [ebp - 0x7c]
lea ecx, [ebp - 0x68]
call fcn.0042a7d0
test al, al
jne 0x41783b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [ebp - 0x68]
call fcn.00413be0
push eax
push str.copy_wechat.exe._renameFile_faild._path_s__lastErr_d
push str.UpdateMgr
push 0x1da
push str.managerUpdateMgr.cpp
push 4
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x20
mov ecx, edi
push str.rename_wechat.exe_error.
push 5
call fcn.00418390
jmp 0x417a08
lea edx, [ebp - 0x68]
lea ecx, [ebp - 0xa8]
call fcn.0042af90
test al, al
jne 0x417873
lea ecx, [ebp - 0x68]
call fcn.0042a510
lea edx, [ebp - 0x68]
lea ecx, [ebp - 0x7c]
call fcn.0042a7d0
push str.copy_wechat.exe_error.
push 6
mov ecx, edi
call fcn.00418390
jmp 0x417a08
push str.copy_wechat.exe_done.
push str.UpdateMgr
push 0x1e8
push str.managerUpdateMgr.cpp
push 2
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x18
lea edx, [edi + 0x94]
mov ecx, esi
call fcn.0042a7d0
test al, al
jne 0x41795a
push str.rename_tmp_directory_to_final_path_faild_
push str.UpdateMgr
push 0x1ee
push str.managerUpdateMgr.cpp
push 4
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x18
lea ecx, [edi + 0x94]
call fcn.0042d890
lea edx, [edi + 0x94]
mov ecx, esi
call fcn.0042a9c0
test al, al
jne 0x417936
lea ecx, [ebp - 0x68]
call fcn.0042a510
lea edx, [ebp - 0x68]
lea ecx, [ebp - 0x7c]
call fcn.0042a7d0
push str.forceRenameFileUseCopy_faild_
push str.UpdateMgr
push 0x1f5
push str.managerUpdateMgr.cpp
push 4
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x18
mov ecx, edi
push str.rename_final_dir_error.
push 9
call fcn.00418390
jmp 0x417a08
push str.forceRenameFileUseCopy_ok_
push str.UpdateMgr
push 0x1f9
push str.managerUpdateMgr.cpp
push 4
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x18
push str.rename_temp_dir_ok_
push str.UpdateMgr
push 0x1fc
push str.managerUpdateMgr.cpp
push 2
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x18
lea ecx, [ebp - 0x7c]
call fcn.0042a510
test al, al
jne 0x4179be
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [ebp - 0x7c]
call fcn.00413be0
push eax
push str.deleteFile_wechat.exe_bak_faild._path_s__lastErr_d
push str.UpdateMgr
push 0x201
push str.managerUpdateMgr.cpp
push 4
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x20
push dword [edi + 0xc]
push str.update_success__replaced_file_count:__d
push str.UpdateMgr
push 0x205
push str.managerUpdateMgr.cpp
push 2
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x1c
mov ecx, edi
call fcn.00417b20
push 0
push 0
push 0x468
push dword [edi + 0xd8]
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, edi
call fcn.004186d0
lea ecx, [ebp - 0x7c]
call fcn.00405df0
lea ecx, [ebp - 0x68]
call fcn.00405df0
lea ecx, [ebp - 0xa8]
call fcn.00405df0
lea ecx, [ebp - 0x94]
call fcn.00413c90
jmp 0x417a6a
mov ecx, esi
call fcn.00413be0
push eax
push str.get_new_file_info_failed_com__s
push str.UpdateMgr
push 0x16a
push str.managerUpdateMgr.cpp
push 4
call fcn.0040e400
push eax
call fcn.00402c30
add esp, 0x1c
push str.get_new_file_info_failed
push 8
mov ecx, edi
call fcn.00418390
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00464f19
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4