Function at 0x4165c0
Capabilities:
Check http status code
Check if file exists
Copy file
Delete file
Move file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42ab66
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x23e4
call fcn.00428a90
mov eax, dword [ebp + 0x18]
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x10], esp
mov ecx, dword [ebp + 0x1c]
xor edi, edi
push 0x440b68
mov dword [ebp - 0x90], esi
mov dword [eax], edi
call sub.MFC42.DLL_CString::operator_1
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x20], edi
call sub.MFC42.DLL_CString::CString_2
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], edi
call sub.MFC42.DLL_CString::CString_2
mov ebx, dword [ebp + 8]
mov ecx, 0x80
xor eax, eax
lea edi, [ebp - 0x3d4]
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x14]
lea edi, [ebx + 0x14]
push eax
mov byte [ebp - 4], 1
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionA]
push eax
lea ecx, [ebp - 0x1c]
call fcn.004284f2
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 2
mov eax, dword [ecx - 8]
test eax, eax
jne 0x416662
push str..backup
lea ecx, [ebp - 0x1c]
call sub.MFC42.DLL_CString::operator_1
mov edx, dword [ebp - 0x1c]
mov ecx, edi
push edx
push 0
call sub.MFC42.DLL_CString::GetBuffer
push eax
lea eax, [ebp - 0x3d4]
push 0x435078
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea ecx, [ebx + 0x10]
push 0
call sub.MFC42.DLL_CString::GetBuffer
mov ecx, dword [esi + 0x90]
push eax
push 0
add ecx, 0x30
call sub.MFC42.DLL_CString::GetBuffer
push eax
lea ecx, [ebp - 0x14]
push 0x43af44
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0x10
lea edx, [ebp - 0x14]
lea eax, [ebp - 0x6c]
mov ecx, esi
push edx
push eax
call fcn.0041dfe0
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call sub.MFC42.DLL_CString::operator
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov dword [ebp - 0x44], eax
cmp eax, 2
jge 0x417d6c
cmp eax, 1
jne 0x416ac1
mov eax, dword [esi + 0x94]
xor ebx, ebx
cmp dword [eax + 0x1c8], ebx
je 0x41674b
mov ecx, dword [eax + 0xd0]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Close_g_pHttpConnection
push 1
push ecx
call fcn.00407c90
mov edx, dword [esi + 0x94]
add esp, 0xc
mov ecx, dword [edx + 0x1c8]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [esi + 0x94]
mov ecx, dword [ecx + 0x1c8]
cmp ecx, ebx
je 0x41673f
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov eax, dword [esi + 0x94]
mov dword [eax + 0x1c8], ebx
mov eax, dword [esi + 0x94]
cmp dword [eax + 0x1c4], ebx
je 0x4167a3
mov ecx, dword [eax + 0xd0]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Close_g_pInetSession
push 1
push ecx
call fcn.00407c90
mov edx, dword [esi + 0x94]
add esp, 0xc
mov ecx, dword [edx + 0x1c4]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [esi + 0x94]
mov ecx, dword [ecx + 0x1c4]
cmp ecx, ebx
je 0x416797
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov eax, dword [esi + 0x94]
mov dword [eax + 0x1c4], ebx
mov ecx, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Create_New_g_pHttpConnection
push 1
mov edx, dword [ecx + 0xd0]
push edx
call fcn.00407c90
push 0x14
call sub.MFC42.DLL_operatornew
add esp, 0x10
mov dword [ebp - 0x68], eax
cmp eax, ebx
mov byte [ebp - 4], 4
je 0x4167e5
push ebx
push ebx
push ebx
push ebx
push 1
push 0x436d94
mov ecx, eax
call sub.MFC42.DLL_CInternetSession::CInternetSession
jmp 0x4167e7
xor eax, eax
mov ecx, dword [esi + 0x94]
mov byte [ebp - 4], 2
mov dword [ecx + 0x1c4], eax
mov eax, dword [esi + 0x90]
cmp dword [eax + 0x88], ebx
jne 0x416971
mov edx, dword [eax + 0x8c]
cmp dword [edx - 8], ebx
je 0x416971
mov eax, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Proxy_Auth_Mode_0.
push 1
mov ecx, dword [eax + 0xd0]
push ecx
call fcn.00407c90
mov edx, dword [esi + 0x90]
mov ecx, dword [esi + 0x94]
mov dword [ebp - 0xa8], 3
add esp, 0xc
mov eax, dword [edx + 0x8c]
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0xa4], eax
mov ecx, dword [ecx + 0x1c4]
push ebx
lea eax, [ebp - 0xa8]
push 0xc
push eax
push 0x26
call sub.MFC42.DLL_CInternetSession::SetOption
mov edx, dword [esi + 0x90]
mov eax, dword [edx + 0x90]
cmp dword [eax - 8], ebx
je 0x416955
mov ecx, dword [edx + 0x94]
cmp dword [ecx - 8], ebx
je 0x416955
mov ecx, 0x1f
xor eax, eax
lea edi, [ebp - 0x4d3]
mov byte [ebp - 0x4d4], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x1f
xor eax, eax
lea edi, [ebp - 0x453]
mov byte [ebp - 0x454], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edx, dword [edx + 0x90]
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
push edx
lea edx, [ebp - 0x4d4]
push edx
call edi
mov eax, dword [esi + 0x90]
add esp, 8
lea ecx, [ebp - 0x454]
mov eax, dword [eax + 0x94]
push eax
push ecx
call edi
lea edi, [ebp - 0x4d4]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
mov eax, dword [esi + 0x94]
push ebx
not ecx
dec ecx
lea edx, [ebp - 0x4d4]
push ecx
mov ecx, dword [eax + 0x1c4]
push edx
push 0x2b
call sub.MFC42.DLL_CInternetSession::SetOption
lea edi, [ebp - 0x454]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esi + 0x94]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ebx
push ecx
lea ecx, [ebp - 0x454]
push ecx
mov ecx, dword [edx + 0x1c4]
push 0x2c
call sub.MFC42.DLL_CInternetSession::SetOption
jmp 0x416971
mov eax, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Proxy_Auth_username_or_password_is_empty.
push 1
mov ecx, dword [eax + 0xd0]
push ecx
call fcn.00407c90
add esp, 0xc
mov edx, dword [esi + 0x90]
mov eax, dword [edx + 0x2c]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
mov ecx, dword [esi + 0x90]
mov ebx, eax
mov edi, ebx
add esp, 4
and edi, 0xffff
add ecx, 0x28
push edi
push 0
call sub.MFC42.DLL_CString::GetBuffer
push eax
mov eax, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Create_New_g_pInetSession__IP__s__Port__d_
push 1
mov ecx, dword [eax + 0xd0]
push ecx
call fcn.00407c90
mov edx, dword [esi + 0x90]
add esp, 0x14
mov eax, dword [edx + 0x28]
push 0
push 0
push ebx
push eax
mov eax, dword [esi + 0x94]
mov ecx, dword [eax + 0x1c4]
call sub.MFC42.DLL_CInternetSession::GetHttpConnection
mov ecx, dword [esi + 0x94]
mov dword [ecx + 0x1c8], eax
mov eax, dword [esi + 0x94]
mov ecx, dword [eax + 0x1c8]
test ecx, ecx
jne 0x416a1e
mov edx, dword [esi + 0x90]
push edi
mov ecx, dword [edx + 0x28]
mov edx, dword [eax + 0xd0]
push ecx
push str.CXSyncExeDlg::DownloadOneFileFromServer__GetHttpConnection__s___d__returns_NULL
push 1
push edx
call fcn.00407c90
add esp, 0x14
jmp 0x416ae7
mov ecx, dword [eax + 0xcc]
mov edx, dword [eax + 0xc8]
push ecx
mov ecx, dword [eax + 0xc4]
push edx
mov edx, dword [eax + 0xd0]
push ecx
push str.CXSyncExeDlg::DownloadOneFileFromServer__m_dwConnectTimeOut_d__m_dwSendTimeOut_d__m_dwRecvTimeOut_d
push 1
push edx
call fcn.00407c90
mov eax, dword [esi + 0x94]
add esp, 0x18
mov edx, dword [eax + 0xc4]
lea ecx, [eax + 0xc4]
test edx, edx
jbe 0x416a71
push 0
push 4
push ecx
mov ecx, dword [eax + 0x1c8]
push 2
call sub.MFC42.DLL_CInternetConnection::SetOption
mov eax, dword [esi + 0x94]
mov edx, dword [eax + 0xc8]
lea ecx, [eax + 0xc8]
test edx, edx
jbe 0x416a99
push 0
push 4
push ecx
mov ecx, dword [eax + 0x1c8]
push 5
call sub.MFC42.DLL_CInternetConnection::SetOption
mov eax, dword [esi + 0x94]
mov edx, dword [eax + 0xcc]
lea ecx, [eax + 0xcc]
test edx, edx
jbe 0x416ac1
push 0
push 4
push ecx
mov ecx, dword [eax + 0x1c8]
push 6
call sub.MFC42.DLL_CInternetConnection::SetOption
mov eax, dword [esi + 0x94]
mov ecx, dword [eax + 0x1c8]
test ecx, ecx
jne 0x416b24
mov eax, dword [eax + 0xd0]
push str.CXSyncExeDlg::DownloadOneFileFromServer__g_pHttpConnection_is_NULL
push 1
push eax
call fcn.00407c90
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::GetBuffer
mov ecx, dword [esi + 0x94]
push eax
push str.CXSyncExeDlg::DownloadOneFileFromServer__File_URL___s
push 1
mov edx, dword [ecx + 0xd0]
push edx
call fcn.00407c90
add esp, 0x10
lea ecx, [ebp - 0x18]
push 0
call sub.MFC42.DLL_CString::GetBuffer
push eax
mov eax, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Encoded_File_URL___s
push 1
mov ecx, dword [eax + 0xd0]
push ecx
call fcn.00407c90
mov edx, dword [esi + 0x90]
mov dword [ebp - 0xd0], str.image_gif
mov dword [ebp - 0xcc], str.image_x_xbitmap
mov dword [ebp - 0xc8], str.image_jpeg
mov dword [ebp - 0xc4], str.image_pjpeg
mov dword [ebp - 0xc0], str.application_x_shockwave_flash
mov dword [ebp - 0xbc], str.application_vnd.ms_excel
mov dword [ebp - 0xb8], str.application_vnd.ms_powerpoint
mov dword [ebp - 0xb4], str.application_msword
mov dword [ebp - 0xb0], 0x436b5c
mov dword [ebp - 0xac], 0
mov ax, word [edx + 0x80]
add esp, 0x10
mov edi, 0xa0400000
test ax, ax
jle 0x416c09
mov ecx, dword [ebp + 0x14]
mov edi, 0xa0c00000
cmp ecx, 1
je 0x416c04
cmp ax, 1
jne 0x416c09
mov edi, 0xa0c03000
mov eax, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Try_to_OpenRequest__
push 2
mov ecx, dword [eax + 0xd0]
push ecx
call fcn.00407c90
add esp, 0xc
lea ecx, [ebp - 0x18]
push 0
call sub.MFC42.DLL_CString::GetBuffer
push edi
lea edx, [ebp - 0xd0]
push str.HTTP_1.1
push edx
push 1
push 0
push eax
mov eax, dword [esi + 0x94]
push 0x436b14
mov ecx, dword [eax + 0x1c8]
call sub.MFC42.DLL_CHttpConnection::OpenRequest
mov ebx, eax
test ebx, ebx
mov dword [ebp - 0x20], ebx
jne 0x416c9a
mov ecx, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__OpenRequest___Return_NULL
push 4
mov edx, dword [ecx + 0xd0]
push edx
call fcn.00407c90
mov eax, dword [ebp - 0x44]
add esp, 0xc
test eax, eax
jne 0x416ae7
mov dword [ebp - 0x44], 1
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x44]
jmp 0x4166df
mov eax, dword [esi + 0x90]
mov ax, word [eax + 0x80]
test ax, ax
jle 0x416cf7
cmp dword [ebp + 0x14], 1
je 0x416cb8
cmp ax, 1
jne 0x416cf7
mov ecx, dword [esi + 0x94]
mov dword [ebp - 0x40], 0
push str.CXSyncExeDlg::DownloadOneFileFromServer__Try_to_SetOption_____set_cert_ignore_flag
push 2
mov edx, dword [ecx + 0xd0]
push edx
call fcn.00407c90
mov eax, dword [ebp - 0x40]
add esp, 0xc
or eax, 0x3380
mov ecx, ebx
mov dword [ebp - 0x40], eax
push 0
lea eax, [ebp - 0x40]
push 4
push eax
push 0x1f
call sub.MFC42.DLL_CInternetFile::SetOption
xor edi, edi
mov ecx, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Try_to_SendRequest__
push 2
mov edx, dword [ecx + 0xd0]
push edx
call fcn.00407c90
add esp, 0xc
mov ecx, ebx
push 0
push 0
push 0
push 0
call sub.MFC42.DLL_CHttpFile::SendRequest
mov eax, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Try_to_QueryInfoStatusCode__
push 2
mov ecx, dword [eax + 0xd0]
push ecx
call fcn.00407c90
add esp, 0xc
lea edx, [ebp - 0x70]
mov ecx, ebx
push edx
call sub.MFC42.DLL_CHttpFile::QueryInfoStatusCode
test eax, eax
je 0x416d5c
cmp dword [ebp - 0x70], 0xc8
je 0x41706b
mov eax, dword [ebp - 0x70]
lea ecx, [ebp - 0x94]
push eax
push ecx
mov ecx, dword [esi + 0x94]
call fcn.00411180
mov edx, dword [eax]
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x14]
push edx
mov edx, dword [esi + 0x94]
push eax
push ecx
push str.CXSyncExeDlg::DownloadOneFileFromServer__QueryInfoStatusCode__s__Return___d__Message___s
mov eax, dword [edx + 0xd0]
push 4
push eax
mov byte [ebp - 4], 6
call fcn.00407c90
add esp, 0x18
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
cmp dword [ebp - 0x70], 0x197
jne 0x418343
mov edx, dword [esi + 0x90]
mov eax, dword [edx + 0x88]
cmp eax, 1
je 0x416dd3
cmp eax, 2
jne 0x418343
mov ecx, dword [edx + 0x90]
mov eax, dword [ecx - 8]
test eax, eax
je 0x418343
mov eax, dword [edx + 0x94]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x418343
test edi, edi
je 0x416e35
mov ecx, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Proxy_Auth_Error.
push 4
mov edx, dword [ecx + 0xd0]
push edx
call fcn.00407c90
mov eax, dword [ebx]
add esp, 0xc
mov ecx, ebx
call dword [eax + 0x54]
test ebx, ebx
je 0x416e29
mov edx, dword [ebx]
push 1
mov ecx, ebx
call dword [edx + 4]
mov dword [ebp - 0x20], 0
jmp 0x417ce1
mov ecx, 0x1f
xor eax, eax
lea edi, [ebp - 0x1d3]
mov byte [ebp - 0x1d4], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x1f
xor eax, eax
lea edi, [ebp - 0x153]
mov byte [ebp - 0x154], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edx, dword [edx + 0x90]
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
lea eax, [ebp - 0x1d4]
push edx
push eax
call edi
mov ecx, dword [esi + 0x90]
add esp, 8
lea edx, [ebp - 0x154]
mov eax, dword [ecx + 0x94]
push eax
push edx
call edi
mov eax, dword [esi + 0x90]
add esp, 8
cmp dword [eax + 0x88], 1
jne 0x416f27
mov ecx, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Proxy_Auth_Mode_1.
push 1
mov edx, dword [ecx + 0xd0]
push edx
call fcn.00407c90
lea edi, [ebp - 0x1d4]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebp - 0x1d4]
push ecx
push eax
push 0x2b
mov ecx, ebx
call sub.MFC42.DLL_CInternetFile::SetOption
test eax, eax
jne 0x416ef5
mov edi, 0xffffff9b
jmp 0x416f9b
lea edi, [ebp - 0x154]
or ecx, 0xffffffff
xor eax, eax
push 0
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [ebp - 0x154]
push ecx
push 0x2c
mov ecx, ebx
call sub.MFC42.DLL_CInternetFile::SetOption
test eax, eax
jne 0x417029
mov edi, 0xffffff9a
jmp 0x416f9b
mov edx, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Proxy_Auth_Mode_2.
push 1
mov eax, dword [edx + 0xd0]
push eax
call fcn.00407c90
lea edi, [ebp - 0x1d4]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
push ecx
lea ecx, [ebp - 0x1d4]
push ecx
push 0x2b
push eax
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x416f6e
mov edi, 0xffffff99
jmp 0x416f9b
lea edi, [ebp - 0x154]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x154]
repne scasb al, byte es:[edi]
not ecx
push ecx
push edx
push 0x2c
push eax
call dword [sym.imp.WININET.dll_InternetSetOptionA]
test eax, eax
jne 0x417029
mov edi, 0xffffff98
mov eax, dword [esi + 0x94]
push edi
push str.CXSyncExeDlg::DownloadOneFileFromServer__Proxy_Auth_SetOption___ret___d
push 1
mov ecx, dword [eax + 0xd0]
push ecx
call fcn.00407c90
mov edx, dword [ebx]
add esp, 0x10
mov ecx, ebx
call dword [edx + 0x54]
test ebx, ebx
je 0x416fcc
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x20], 0
test eax, eax
jne 0x416fed
mov dword [ebp - 0x44], 1
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x44]
jmp 0x4166df
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Proxy_SetOption___success.
push 4
mov edx, dword [ecx + 0xd0]
push edx
call fcn.00407c90
mov eax, dword [esi + 0x94]
add esp, 0xc
mov ecx, dword [eax + 0xd0]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Goto_ReSendRequest1.
push 4
push ecx
call fcn.00407c90
add esp, 0xc
mov edi, 1
jmp 0x416cf9
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x9c]
push edx
push ecx
lea edi, [eax + 0x14]
mov ecx, esp
mov dword [ebp - 0x68], esp
push edi
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x24], edi
call sub.MFC42.DLL_CString::CString_1
call fcn.004035a0
mov eax, dword [ebp - 0x44]
add esp, 8
test eax, eax
jne 0x41727f
lea ecx, [ebp - 0x3d4]
push ecx
lea ecx, [ebp - 0x38]
call fcn.004284f2
push 0
mov ecx, edi
mov byte [ebp - 4], 7
call sub.MFC42.DLL_CString::GetBuffer
push eax
lea ecx, [ebp - 0x54]
call fcn.004284f2
mov eax, dword [ebp - 0x54]
mov byte [ebp - 4], 8
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4171b1
mov edx, dword [ebp - 0x38]
mov ecx, dword [edx - 8]
test ecx, ecx
je 0x4171b1
lea ecx, [ebp - 0x11f4]
push ecx
push eax
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x4171b1
mov al, byte [ebp - 0x11e4]
test al, 1
je 0x417123
mov bl, al
mov eax, dword [ebp - 0x54]
lea edx, [ebp - 0x11f4]
and bl, 0xfe
push edx
push eax
mov byte [ebp - 0x11e4], bl
call sub.MFC42.DLL_CFile::SetStatus
mov edx, dword [ebp - 0x38]
lea ecx, [ebp - 0xb64]
push ecx
push edx
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x417177
mov al, byte [ebp - 0xb54]
test al, 1
je 0x41715c
mov ecx, dword [ebp - 0x38]
mov dl, al
lea eax, [ebp - 0xb64]
and dl, 0xfe
push eax
push ecx
mov byte [ebp - 0xb54], dl
call sub.MFC42.DLL_CFile::SetStatus
mov edx, dword [ebp - 0x38]
push edx
call dword [sym.imp.MSVCRT.dll__unlink]
add esp, 4
test eax, eax
je 0x417177
mov eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x54]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll_rename]
add esp, 8
test eax, eax
je 0x4171aa
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x54]
push 0
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x4171b1
mov edx, dword [ebp - 0x54]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, 1
jmp 0x4171b3
xor eax, eax
test eax, eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 7
sete bl
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x417288
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp edi, 2
je 0x417288
mov ebx, dword [ebp - 0x24]
push 0
mov ecx, ebx
call sub.MFC42.DLL_CString::GetBuffer
mov edx, dword [esi + 0x94]
lea ecx, [ebp - 0x3d4]
push edi
push ecx
push eax
mov eax, dword [edx + 0xd0]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Failed_to_copy_backup_files.__s_____s___ErrCode___d
push 1
push eax
call fcn.00407c90
mov edx, dword [esi + 0x94]
add esp, 0x18
lea ecx, [ebp - 0x8c]
push ecx
mov ecx, dword [edx + 0xd0]
call fcn.00407370
mov eax, dword [ebp - 0x8c]
mov byte [ebp - 4], 9
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x41726e
push eax
mov eax, dword [ebx]
lea edi, [esi + 0x9c]
push eax
push 0x43b724
push edi
call sub.MFC42.DLL_CString::Format
add esp, 0x10
mov ecx, edi
push 0
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 1
mov ecx, esi
call fcn.00414bb0
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
jmp 0x417288
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ebx, dword [ebp - 0x24]
push 0
mov ecx, ebx
call sub.MFC42.DLL_CString::GetBuffer
push 0x435ae4
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x41751f
mov ecx, dword [ebx]
mov edx, dword [esi + 0x94]
push ecx
push str.CXSyncExeDlg::DownloadOneFileFromServer__Local_File_Open__s__Fail
mov eax, dword [edx + 0xd0]
push 4
push eax
call fcn.00407c90
mov edx, dword [esi + 0x94]
add esp, 0x10
lea ecx, [ebp - 0x74]
push ecx
mov ecx, dword [edx + 0xd0]
call fcn.00407370
mov eax, dword [ebp - 0x74]
mov byte [ebp - 4], 0xa
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x41731d
push eax
mov eax, ebx
lea edi, [esi + 0x9c]
mov ecx, dword [eax]
push ecx
push 0x43b6c0
push edi
call sub.MFC42.DLL_CString::Format
add esp, 0x10
mov ecx, edi
push 0
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 1
mov ecx, esi
call fcn.00414bb0
mov edi, dword [ebp - 0x20]
mov ecx, edi
mov edx, dword [edi]
call dword [edx + 0x54]
test edi, edi
je 0x417334
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
push 0
mov ecx, ebx
mov dword [ebp - 0x20], 0
call sub.MFC42.DLL_CString::GetBuffer
push eax
lea ecx, [ebp - 0x28]
call fcn.004284f2
lea ecx, [ebp - 0x3d4]
mov byte [ebp - 4], 0xb
push ecx
lea ecx, [ebp - 0x5c]
call fcn.004284f2
mov eax, dword [ebp - 0x5c]
mov byte [ebp - 4], 0xc
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x417448
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx - 8]
test ecx, ecx
je 0x417448
lea ecx, [ebp - 0xd94]
push ecx
push eax
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x417448
mov al, byte [ebp - 0xd84]
test al, 1
je 0x4173ba
mov bl, al
mov eax, dword [ebp - 0x5c]
lea edx, [ebp - 0xd94]
and bl, 0xfe
push edx
push eax
mov byte [ebp - 0xd84], bl
call sub.MFC42.DLL_CFile::SetStatus
mov edx, dword [ebp - 0x28]
lea ecx, [ebp - 0xfc4]
push ecx
push edx
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x41740e
mov al, byte [ebp - 0xfb4]
test al, 1
je 0x4173f3
mov ecx, dword [ebp - 0x28]
mov dl, al
lea eax, [ebp - 0xfc4]
and dl, 0xfe
push eax
push ecx
mov byte [ebp - 0xfb4], dl
call sub.MFC42.DLL_CFile::SetStatus
mov edx, dword [ebp - 0x28]
push edx
call dword [sym.imp.MSVCRT.dll__unlink]
add esp, 4
test eax, eax
je 0x41740e
mov eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x5c]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll_rename]
add esp, 8
test eax, eax
je 0x417441
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x5c]
push 0
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x417448
mov edx, dword [ebp - 0x5c]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, 1
jmp 0x41744a
xor eax, eax
test eax, eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0xb
sete bl
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xa
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x417513
mov ecx, dword [ebp - 0x24]
push 0
call sub.MFC42.DLL_CString::GetBuffer
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 0x94]
push eax
lea eax, [ebp - 0x3d4]
push edi
mov edx, dword [ecx + 0xd0]
push eax
push str.CXSyncExeDlg::DownloadOneFileFromServer__Restore_Backup_File_Fail__s_____s___ErrCode___d
push 1
push edx
call fcn.00407c90
mov ecx, dword [esi + 0x94]
add esp, 0x18
lea eax, [ebp - 0x98]
mov ecx, dword [ecx + 0xd0]
push eax
call fcn.00407370
push eax
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0xd
call sub.MFC42.DLL_CString::operator
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xa
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x74]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x417513
lea edx, [ebp - 0x3d4]
push eax
lea edi, [esi + 0x9c]
push edx
push 0x43b644
push edi
call sub.MFC42.DLL_CString::Format
add esp, 0x10
mov ecx, edi
push 0
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 1
mov ecx, esi
call fcn.00414bb0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x74]
jmp 0x41801d
mov eax, dword [ebp + 8]
mov dword [ebp - 0x40], 0
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x417555
mov eax, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Write_transfer_encoded_chunked_file._So_the_total_size_of_the_file_is_unknown.
push 1
mov dword [ebp - 0x24], 0xa000
mov ecx, dword [eax + 0xd0]
push ecx
call fcn.00407c90
add esp, 0xc
jmp 0x41756c
push 0
lea ecx, [eax + 0x2c]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
mov dword [ebp - 0x24], eax
cmp dword [ebp + 0x10], 1
jne 0x41758c
lea edi, [esi + 0x26c]
push 0x64
push 0
mov ecx, edi
call fcn.004052d0
push 0
mov ecx, edi
call fcn.00405300
mov dword [ebp - 0x68], 1
mov dword [ebp - 0x4c], 0
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
test eax, eax
jne 0x4175b2
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4c]
cmp eax, edx
jge 0x417857
mov ecx, 0x3ff
xor eax, eax
lea edi, [ebp - 0x23f3]
mov byte [ebp - 0x23f4], 0
rep stosd dword es:[edi], eax
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x23f4]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebx]
push 0x1000
push ecx
mov ecx, ebx
call dword [eax + 0x3c]
mov edi, eax
test edi, edi
jg 0x417dd4
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x417847
mov edx, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__pHttpFile__Read_pBuf__sizeof_pBuf_____No_data.
push 4
mov eax, dword [edx + 0xd0]
push eax
call fcn.00407c90
mov ecx, dword [ebp - 0x64]
add esp, 0xc
push ecx
call dword [sym.imp.MSVCRT.dll_fclose]
mov edx, dword [ebx]
add esp, 4
mov ecx, ebx
call dword [edx + 0x54]
test ebx, ebx
je 0x417633
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 4]
mov ecx, dword [ebp + 8]
push 0
mov dword [ebp - 0x20], 0
lea edi, [ecx + 0x14]
mov ecx, edi
call sub.MFC42.DLL_CString::GetBuffer
push eax
lea ecx, [ebp - 0x3c]
call fcn.004284f2
lea edx, [ebp - 0x3d4]
lea ecx, [ebp - 0x58]
push edx
mov byte [ebp - 4], 0xe
call fcn.004284f2
mov eax, dword [ebp - 0x58]
mov byte [ebp - 4], 0xf
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x41774d
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx - 8]
test edx, edx
je 0x41774d
lea edx, [ebp - 0xa4c]
push edx
push eax
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x41774d
mov al, byte [ebp - 0xa3c]
test al, 1
je 0x4176bf
mov ecx, dword [ebp - 0x58]
mov dl, al
lea eax, [ebp - 0xa4c]
and dl, 0xfe
push eax
push ecx
mov byte [ebp - 0xa3c], dl
call sub.MFC42.DLL_CFile::SetStatus
mov eax, dword [ebp - 0x3c]
lea edx, [ebp - 0x81c]
push edx
push eax
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x417713
mov al, byte [ebp - 0x80c]
test al, 1
je 0x4176f8
mov edx, dword [ebp - 0x3c]
mov bl, al
lea ecx, [ebp - 0x81c]
and bl, 0xfe
push ecx
push edx
mov byte [ebp - 0x80c], bl
call sub.MFC42.DLL_CFile::SetStatus
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.MSVCRT.dll__unlink]
add esp, 4
test eax, eax
je 0x417713
mov ecx, dword [ebp - 0x3c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x58]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_rename]
add esp, 8
test eax, eax
je 0x417746
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x58]
push 0
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x41774d
mov eax, dword [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, 1
jmp 0x41774f
xor eax, eax
test eax, eax
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0xe
sete bl
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x417808
push 0
mov ecx, edi
call sub.MFC42.DLL_CString::GetBuffer
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esi + 0x94]
push eax
lea ecx, [ebp - 0x3d4]
push edi
mov eax, dword [edx + 0xd0]
push ecx
push str.CXSyncExeDlg::DownloadOneFileFromServer__Restore_Backup_File_Fail__s_____s___ErrCode___d
push 1
push eax
call fcn.00407c90
mov edx, dword [esi + 0x94]
add esp, 0x18
lea ecx, [ebp - 0x80]
push ecx
mov ecx, dword [edx + 0xd0]
call fcn.00407370
mov eax, dword [ebp - 0x80]
mov byte [ebp - 4], 0x10
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4177fc
push eax
lea eax, [ebp - 0x3d4]
lea edi, [esi + 0x9c]
push eax
push 0x43b550
push edi
call sub.MFC42.DLL_CString::Format
add esp, 0x10
mov ecx, edi
push 0
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 1
mov ecx, esi
call fcn.00414bb0
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xfffffff6
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x64
lea ecx, [esi + 0x26c]
call fcn.00405300
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0x64]
push ecx
call dword [sym.imp.MSVCRT.dll_fclose]
mov edx, dword [esi + 0x94]
add esp, 4
mov eax, dword [edx + 0xd0]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Close_Target_File_Success
push 1
push eax
call fcn.00407c90
mov eax, dword [ebx + 0xc]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4178f6
lea ecx, [ebp - 0x78]
call sub.MFC42.DLL_CString::CString_2
mov edi, dword [ebp - 0x20]
lea ecx, [ebp - 0x78]
push 0
push ecx
push 0x1d
mov ecx, edi
mov byte [ebp - 4], 0x17
call sub.MFC42.DLL_CHttpFile::QueryInfo
mov edx, dword [ebp - 0x78]
push str.gzip
push edx
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x4178e1
mov dword [ebx + 0xc], 1
mov eax, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Content_encoding_GZIP.
push 1
mov ecx, dword [eax + 0xd0]
push ecx
call fcn.00407c90
add esp, 0xc
jmp 0x4178e8
mov dword [ebx + 0xc], 0
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
jmp 0x4178f9
mov edi, dword [ebp - 0x20]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x54]
test edi, edi
je 0x41790d
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
mov ecx, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Close_HTTP_File_Success
push 1
mov dword [ebp - 0x20], 0
mov edx, dword [ecx + 0xd0]
push edx
call fcn.00407c90
mov eax, dword [ebx + 0xc]
add esp, 0xc
cmp eax, 1
jne 0x4179eb
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x88]
push ecx
mov ecx, esi
lea edi, [eax + 0x14]
push edi
call fcn.004203a0
test eax, eax
jne 0x4179b3
mov edx, dword [edi]
mov eax, dword [esi + 0x94]
push edx
push str.CXSyncExeDlg::DownloadOneFileFromServer__UnCompressGzipFile__s__Failed.
mov ecx, dword [eax + 0xd0]
push 4
push ecx
call fcn.00407c90
add esp, 0x10
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xfffffffa
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov edx, dword [ebp - 0x88]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [edi]
mov ecx, dword [esi + 0x94]
push edx
push ebx
mov edx, dword [ecx + 0xd0]
push eax
push str.CXSyncExeDlg::DownloadOneFileFromServer__UnCompressGzipFile__s__Success._nCurrentServerReadSize_d_dwUnCompressSize_d
push 1
push edx
call fcn.00407c90
mov eax, dword [ebp - 0x88]
add esp, 0x18
test eax, eax
jbe 0x4179ee
mov ebx, eax
jmp 0x4179ee
mov ebx, dword [ebp - 0x4c]
mov edi, dword [ebp + 8]
mov eax, dword [edi + 8]
test eax, eax
je 0x417a19
mov eax, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Transfer_encoded_chunked_files_cannot_be_compared_in_size.
push 1
mov ecx, dword [eax + 0xd0]
push ecx
call fcn.00407c90
add esp, 0xc
jmp 0x417c99
mov edi, dword [ebp - 0x24]
mov edx, dword [esi + 0x94]
push edi
push str.CXSyncExeDlg::DownloadOneFileFromServer__nServerFileSize___d
mov eax, dword [edx + 0xd0]
push 1
push eax
call fcn.00407c90
add esp, 0x10
test edi, edi
jle 0x417c7a
cmp ebx, edi
je 0x417c7a
mov ecx, dword [esi + 0x94]
push ebx
push edi
push str.CXSyncExeDlg::DownloadOneFileFromServer__Server_File_Size___d__Write_File_Size___d
mov edx, dword [ecx + 0xd0]
push 4
push edx
call fcn.00407c90
mov eax, dword [ebp + 8]
add esp, 0x14
lea edi, [eax + 0x14]
push 0
mov ecx, edi
call sub.MFC42.DLL_CString::GetBuffer
push eax
lea ecx, [ebp - 0x34]
call fcn.004284f2
lea ecx, [ebp - 0x3d4]
mov byte [ebp - 4], 0x18
push ecx
lea ecx, [ebp - 0x50]
call fcn.004284f2
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 0x19
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x417b77
mov edx, dword [ebp - 0x34]
mov ecx, dword [edx - 8]
test ecx, ecx
je 0x417b77
lea ecx, [ebp - 0xc7c]
push ecx
push eax
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x417b77
mov al, byte [ebp - 0xc6c]
test al, 1
je 0x417ae9
and al, 0xfe
lea edx, [ebp - 0xc7c]
mov byte [ebp - 0xc6c], al
mov eax, dword [ebp - 0x50]
push edx
push eax
call sub.MFC42.DLL_CFile::SetStatus
mov edx, dword [ebp - 0x34]
lea ecx, [ebp - 0x10dc]
push ecx
push edx
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x417b3d
mov al, byte [ebp - 0x10cc]
test al, 1
je 0x417b22
mov ecx, dword [ebp - 0x34]
mov dl, al
lea eax, [ebp - 0x10dc]
and dl, 0xfe
push eax
push ecx
mov byte [ebp - 0x10cc], dl
call sub.MFC42.DLL_CFile::SetStatus
mov edx, dword [ebp - 0x34]
push edx
call dword [sym.imp.MSVCRT.dll__unlink]
add esp, 4
test eax, eax
je 0x417b3d
mov eax, dword [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x50]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll_rename]
add esp, 8
test eax, eax
je 0x417b70
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x50]
push 0
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x417b77
mov edx, dword [ebp - 0x50]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, 1
jmp 0x417b79
xor eax, eax
test eax, eax
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x18
sete bl
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x417c3b
push 0
mov ecx, edi
call sub.MFC42.DLL_CString::GetBuffer
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 0x94]
push eax
lea eax, [ebp - 0x3d4]
push edi
mov edx, dword [ecx + 0xd0]
push eax
push str.CXSyncExeDlg::DownloadOneFileFromServer__Restore_Backup_File_Fail__s_____s___ErrCode___d
push 1
push edx
call fcn.00407c90
mov ecx, dword [esi + 0x94]
add esp, 0x18
lea eax, [ebp - 0x84]
mov ecx, dword [ecx + 0xd0]
push eax
call fcn.00407370
mov eax, dword [ebp - 0x84]
mov byte [ebp - 4], 0x1a
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x417c2c
lea edx, [ebp - 0x3d4]
push eax
lea edi, [esi + 0x9c]
push edx
push 0x43b550
push edi
call sub.MFC42.DLL_CString::Format
add esp, 0x10
mov ecx, edi
push 0
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 1
mov ecx, esi
call fcn.00414bb0
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xfffffffc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Down_File_Size_Validation_Success
push 1
mov ecx, dword [eax + 0xd0]
push ecx
call fcn.00407c90
mov edi, dword [ebp + 8]
add esp, 0xc
cmp dword [ebp + 0xc], 1
jne 0x417da8
mov edx, dword [esi + 0x90]
lea ecx, [edi + 0x28]
add edi, 0x14
mov eax, dword [edx + 0xc8]
push eax
push ecx
push edi
call fcn.004030d0
add esp, 0xc
test eax, eax
jge 0x417d20
mov edx, dword [esi + 0x94]
push eax
push str.CXSyncExeDlg::DownloadOneFileFromServer__SetFileModifyDate___Fail__RetVal___d
push 4
mov eax, dword [edx + 0xd0]
push eax
call fcn.00407c90
add esp, 0x10
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xfffffffb
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [esi + 0x94]
push str.CXSyncExeDlg::DownloadOneFileFromServer__Set_File_Modify_Date_Success
push 1
mov edx, dword [ecx + 0xd0]
push edx
call fcn.00407c90
mov ecx, dword [esi + 0x94]
add esp, 0xc
lea eax, [ebp - 0x3d4]
mov edx, dword [ecx + 0xd0]
push eax
push str.CXSyncExeDlg::DownloadOneFileFromServer__Delete_Backup_File__s_
push 1
push edx
call fcn.00407c90
add esp, 0x10
lea eax, [ebp - 0x3d4]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov edx, dword [esi + 0x94]
lea ecx, [ebp - 0x3d4]
push ecx
push str.CXSyncExeDlg::DownloadOneFileFromServer__Delete_Backup_File__s_
mov eax, dword [edx + 0xd0]
push 1
push eax
call fcn.00407c90
add esp, 0x10
lea ecx, [ebp - 0x3d4]
push ecx
jmp 0x417d66
mov edx, dword [ebp + 8]
mov dword [ebp - 0x68], 0
mov eax, dword [edx + 8]
test eax, eax
je 0x417de8
add dword [ebp - 0x40], edi
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x4c]
push eax
push edi
lea ecx, [ebp - 0x23f4]
add edx, edi
push 1
push ecx
mov dword [ebp - 0x4c], edx
call dword [sym.imp.MSVCRT.dll_fwrite]
add esp, 0x10
cmp eax, edi
je 0x418061
mov edx, dword [esi + 0x94]
push eax
push str.CXSyncExeDlg::DownloadOneFileFromServer__fwrite___Fail__RetVal___d
push 1
mov eax, dword [edx + 0xd0]
push eax
call fcn.00407c90
mov ecx, dword [ebp - 0x64]
add esp, 0x10
push ecx
call dword [sym.imp.MSVCRT.dll_fclose]
mov edx, dword [ebx]
add esp, 4
mov ecx, ebx
call dword [edx + 0x54]
test ebx, ebx
je 0x417e4d
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 4]
mov ecx, dword [ebp + 8]
push 0
mov dword [ebp - 0x20], 0
lea edi, [ecx + 0x14]
mov ecx, edi
call sub.MFC42.DLL_CString::GetBuffer
push eax
lea ecx, [ebp - 0x2c]
call fcn.004284f2
lea edx, [ebp - 0x3d4]
lea ecx, [ebp - 0x60]
push edx
mov byte [ebp - 4], 0x11
call fcn.004284f2
mov eax, dword [ebp - 0x60]
mov byte [ebp - 4], 0x12
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x417f67
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx - 8]
test edx, edx
je 0x417f67
lea edx, [ebp - 0xeac]
push edx
push eax
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x417f67
mov al, byte [ebp - 0xe9c]
test al, 1
je 0x417ed9
mov ecx, dword [ebp - 0x60]
mov dl, al
lea eax, [ebp - 0xeac]
and dl, 0xfe
push eax
push ecx
mov byte [ebp - 0xe9c], dl
call sub.MFC42.DLL_CFile::SetStatus
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x934]
push edx
push eax
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x417f2d
mov al, byte [ebp - 0x924]
test al, 1
je 0x417f12
mov edx, dword [ebp - 0x2c]
mov bl, al
lea ecx, [ebp - 0x934]
and bl, 0xfe
push ecx
push edx
mov byte [ebp - 0x924], bl
call sub.MFC42.DLL_CFile::SetStatus
mov eax, dword [ebp - 0x2c]
push eax
call dword [sym.imp.MSVCRT.dll__unlink]
add esp, 4
test eax, eax
je 0x417f2d
mov ecx, dword [ebp - 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x60]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_rename]
add esp, 8
test eax, eax
je 0x417f60
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x60]
push 0
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x417f67
mov eax, dword [ebp - 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, 1
jmp 0x417f69
xor eax, eax
test eax, eax
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x11
sete bl
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x418022
push 0
mov ecx, edi
call sub.MFC42.DLL_CString::GetBuffer
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esi + 0x94]
push eax
lea ecx, [ebp - 0x3d4]
push edi
mov eax, dword [edx + 0xd0]
push ecx
push str.CXSyncExeDlg::DownloadOneFileFromServer__Restore_Backup_File_Fail__s_____s___ErrCode___d
push 1
push eax
call fcn.00407c90
mov edx, dword [esi + 0x94]
add esp, 0x18
lea ecx, [ebp - 0x7c]
push ecx
mov ecx, dword [edx + 0xd0]
call fcn.00407370
mov eax, dword [ebp - 0x7c]
mov byte [ebp - 4], 0x13
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x418016
push eax
lea eax, [ebp - 0x3d4]
lea edi, [esi + 0x9c]
push eax
push 0x43b550
push edi
call sub.MFC42.DLL_CString::Format
add esp, 0x10
mov ecx, edi
push 0
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 1
mov ecx, esi
call fcn.00414bb0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x7c]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xfffffffd
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [esi + 0x98]
mov edi, 1
cmp eax, edi
jne 0x4182c4
mov ecx, dword [esi + 0x94]
push edi
push str.CXSyncExeDlg::DownloadOneFileFromServer__Its_Time_To_Stop__m_nRequestStopFlag___d
push edi
mov edx, dword [ecx + 0xd0]
push edx
call fcn.00407c90
mov eax, dword [ebp - 0x64]
add esp, 0x10
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
mov edx, dword [ebx]
add esp, 4
mov ecx, ebx
call dword [edx + 0x54]
test ebx, ebx
je 0x4180b0
mov eax, dword [ebx]
push edi
mov ecx, ebx
call dword [eax + 4]
mov ecx, dword [ebp + 8]
push 0
mov dword [ebp - 0x20], 0
lea edi, [ecx + 0x14]
mov ecx, edi
call sub.MFC42.DLL_CString::GetBuffer
push eax
lea ecx, [ebp - 0x30]
call fcn.004284f2
lea edx, [ebp - 0x3d4]
lea ecx, [ebp - 0x48]
push edx
mov byte [ebp - 4], 0x14
call fcn.004284f2
mov eax, dword [ebp - 0x48]
mov byte [ebp - 4], 0x15
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4181ca
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx - 8]
test edx, edx
je 0x4181ca
lea edx, [ebp - 0x5ec]
push edx
push eax
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x4181ca
mov al, byte [ebp - 0x5dc]
test al, 1
je 0x41813c
mov ecx, dword [ebp - 0x48]
mov dl, al
lea eax, [ebp - 0x5ec]
and dl, 0xfe
push eax
push ecx
mov byte [ebp - 0x5dc], dl
call sub.MFC42.DLL_CFile::SetStatus
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x704]
push edx
push eax
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
je 0x418190
mov al, byte [ebp - 0x6f4]
test al, 1
je 0x418175
mov edx, dword [ebp - 0x30]
mov bl, al
lea ecx, [ebp - 0x704]
and bl, 0xfe
push ecx
push edx
mov byte [ebp - 0x6f4], bl
call sub.MFC42.DLL_CFile::SetStatus
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.MSVCRT.dll__unlink]
add esp, 4
test eax, eax
je 0x418190
mov ecx, dword [ebp - 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x48]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_rename]
add esp, 8
test eax, eax
je 0x4181c3
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x48]
push 0
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x4181ca
mov eax, dword [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, 1
jmp 0x4181cc
xor eax, eax
test eax, eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x14
sete bl
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x418285
push 0
mov ecx, edi
call sub.MFC42.DLL_CString::GetBuffer
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esi + 0x94]
push eax
lea ecx, [ebp - 0x3d4]
push edi
mov eax, dword [edx + 0xd0]
push ecx
push str.CXSyncExeDlg::DownloadOneFileFromServer__Restore_Backup_File_Fail__s_____s___ErrCode___d
push 1
push eax
call fcn.00407c90
mov edx, dword [esi + 0x94]
add esp, 0x18
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, dword [edx + 0xd0]
call fcn.00407370
mov eax, dword [ebp - 0x6c]
mov byte [ebp - 4], 0x16
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x418279
push eax
lea eax, [ebp - 0x3d4]
lea edi, [esi + 0x9c]
push eax
push 0x43b550
push edi
call sub.MFC42.DLL_CString::Format
add esp, 0x10
mov ecx, edi
push 0
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 1
mov ecx, esi
call fcn.00414bb0
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xfffffff9
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp dword [ebp + 0x10], edi
jne 0x41759a
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
test eax, eax
je 0x418317
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x24]
cmp eax, ecx
jl 0x4182fa
push 0
lea ecx, [esi + 0x26c]
mov dword [ebp - 0x40], 0
call fcn.00405300
jmp 0x41759a
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv ecx
lea ecx, [esi + 0x26c]
push eax
call fcn.00405300
jmp 0x41759a
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x41759a
mov eax, dword [ebp - 0x4c]
lea ecx, [esi + 0x26c]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv dword [ebp - 0x24]
push eax
call fcn.00405300
jmp 0x41759a
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x54]
test ebx, ebx
je 0x418357
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x20], 0
test eax, eax
jne 0x418378
mov dword [ebp - 0x44], 1
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x44]
jmp 0x4166df
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov eax, 0xfffffffe
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x18