Function at 0x406d70
Capabilities:
Copy file

Disassembly:
push 0xffffffffffffffff
push 0x41318d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x8c4
mov al, byte [esp + 0x1b]
push ebx
push ebp
push esi
mov ebp, ecx
xor ebx, ebx
push edi
push ebx
lea ecx, [esp + 0x38]
mov dword [esp + 0x48], ebp
mov byte [esp + 0x38], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov ecx, 0x1ff
xor eax, eax
lea edi, [esp + 0xd5]
mov byte [esp + 0xd4], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push ebx
push ebx
lea ecx, [esp + 0xdc]
push 0x800
stosb byte es:[edi], al
mov eax, dword [ebp + 4]
or esi, 0xffffffff
push ecx
push esi
push eax
push ebx
push ebx
mov dword [esp + 0x8fc], ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
je 0x406ec5
lea edi, [esp + 0xd4]
mov ecx, esi
xor eax, eax
lea edx, [esp + 0xd4]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x3c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov edi, str.synccomps.xml
mov ecx, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.synccomps.xml
lea ecx, [esp + 0x3c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
lea eax, [esp + 0x34]
lea ecx, [esp + 0x6c]
push eax
call fcn.0040e6b0
push ebx
lea ecx, [esp + 0x70]
mov byte [esp + 0x8e0], 1
call fcn.0040e940
test al, al
jne 0x406e84
mov ecx, dword [esp + 0xa4]
and ecx, 0xff
push ecx
push str._SyncFiles___doc.LoadFile___failed_with_error:__d._n
call fcn.00401f00
add esp, 8
mov dword [esp + 0x6c], 0x4147b0
mov byte [esp + 0x8dc], 2
jmp 0x406ea6
push str.Files
lea ecx, [esp + 0x70]
call fcn.0040d440
cmp eax, ebx
jne 0x406ed1
mov dword [esp + 0x6c], 0x4147b0
mov byte [esp + 0x8dc], 3
push 1
lea ecx, [esp + 0xb0]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea ecx, [esp + 0x6c]
mov byte [esp + 0x8dc], bl
call fcn.0040cfb0
mov dword [esp + 0x8dc], esi
jmp 0x4076f3
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x14]
mov esi, eax
cmp esi, ebx
jne 0x406ef3
mov dword [esp + 0x6c], 0x4147b0
mov byte [esp + 0x8dc], 4
jmp 0x4076c9
push str.LimitVersion
mov ecx, esi
call fcn.0040dc50
cmp eax, ebx
jne 0x406f18
mov dword [esp + 0x6c], 0x4147b0
mov byte [esp + 0x8dc], 5
jmp 0x4076c9
push eax
lea ecx, [esp + 0x20]
call sub.MFC42u.DLL_CString::CString_1
mov eax, dword [esp + 0x1c]
push 2
push eax
mov ecx, ebp
mov byte [esp + 0x8e4], 6
call fcn.00406d20
test eax, eax
je 0x4076a8
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, ebp
call fcn.004078e0
test eax, eax
je 0x4076a8
mov ecx, esi
call fcn.0040d730
cmp eax, ebx
jne 0x406f85
lea ecx, [esp + 0x1c]
mov byte [esp + 0x8dc], 1
call sub.MFC42u.DLL_CString::CString
mov dword [esp + 0x6c], 0x4147b0
mov byte [esp + 0x8dc], 8
jmp 0x4076c9
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x14]
mov esi, eax
mov al, byte [esp + 0x2b]
push ebx
push ebx
lea ecx, [esp + 0x18]
mov dword [esp + 0x70], 1
mov byte [esp + 0x18], al
call fcn.00408310
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
cmp esi, ebx
mov byte [esp + 0x8dc], 9
je 0x407171
push str.Name
mov ecx, esi
call fcn.0040dc50
push str.Locate
mov ecx, esi
mov edi, eax
call fcn.0040dc50
push str.Relocate
mov ecx, esi
mov ebp, eax
call fcn.0040dc50
cmp edi, ebx
mov dword [esp + 0x30], eax
je 0x4072a7
cmp ebp, ebx
je 0x4072a7
cmp eax, ebx
je 0x4072a7
lea ecx, [esp + 0x48]
call sub.MFC42u.DLL_CString::CString_4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x8dc], 0xa
call sub.MFC42u.DLL_CString::CString_4
lea ecx, [esp + 0x50]
mov byte [esp + 0x8dc], 0xb
call sub.MFC42u.DLL_CString::CString_4
lea ecx, [esp + 0x54]
mov byte [esp + 0x8dc], 0xc
call sub.MFC42u.DLL_CString::CString_4
lea ecx, [esp + 0x58]
mov byte [esp + 0x8dc], 0xd
call sub.MFC42u.DLL_CString::CString_4
lea ecx, [esp + 0x5c]
mov byte [esp + 0x8dc], 0xe
call sub.MFC42u.DLL_CString::CString_4
lea ecx, [esp + 0x60]
mov byte [esp + 0x8dc], 0xf
call sub.MFC42u.DLL_CString::CString_4
push edi
lea ecx, [esp + 0x4c]
mov byte [esp + 0x8e0], 0x10
mov dword [esp + 0x68], ebx
call fcn.00412070
push ebp
lea ecx, [esp + 0x54]
call fcn.00412070
mov ecx, dword [esp + 0x30]
push ecx
lea ecx, [esp + 0x58]
call fcn.00412070
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x24]
lea eax, [esp + 0x48]
push edx
push eax
mov dword [esp + 0x2c], ebx
call fcn.00407a00
test eax, eax
je 0x407220
cmp dword [esp + 0x24], ebx
je 0x4070df
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x48]
push ecx
lea eax, [esp + 0x30]
push edx
push eax
lea ecx, [esp + 0x1c]
call fcn.00408250
mov ecx, esi
call fcn.0040d7a0
mov esi, eax
lea ecx, [esp + 0x60]
mov byte [esp + 0x8dc], 0x1c
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x5c]
mov byte [esp + 0x8dc], 0x1b
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x58]
mov byte [esp + 0x8dc], 0x1a
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x54]
mov byte [esp + 0x8dc], 0x19
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x50]
mov byte [esp + 0x8dc], 0x18
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x4c]
mov byte [esp + 0x8dc], 0x17
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x48]
mov byte [esp + 0x8dc], 9
call sub.MFC42u.DLL_CString::CString
cmp esi, ebx
jne 0x406fc1
cmp dword [esp + 0x18], ebx
jne 0x40731b
push str._SyncFiles___Not_sync_files._n
call fcn.00401f00
mov eax, dword [esp + 0x18]
add esp, 4
lea ecx, [esp + 0x2c]
mov byte [esp + 0x8dc], 6
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00408240
mov edx, dword [eax]
lea eax, [esp + 0x34]
push edx
push eax
lea ecx, [esp + 0x1c]
call fcn.004082b0
mov ecx, dword [esp + 0x14]
push ecx
call sub.MFC42u.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov byte [esp + 0x8dc], 1
call sub.MFC42u.DLL_CString::CString
mov dword [esp + 0x6c], 0x4147b0
push 1
lea ecx, [esp + 0xb0]
mov byte [esp + 0x8e0], 0x1e
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea ecx, [esp + 0x6c]
mov byte [esp + 0x8dc], bl
call fcn.0040cfb0
push 1
lea ecx, [esp + 0x38]
mov dword [esp + 0x8e0], 0xffffffff
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, 1
jmp 0x407701
push edi
push str._SyncFiles___Sync_file__s_failed._n
call fcn.00401f00
add esp, 8
lea ecx, [esp + 0x60]
mov byte [esp + 0x8dc], 0x16
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x5c]
mov byte [esp + 0x8dc], 0x15
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x58]
mov byte [esp + 0x8dc], 0x14
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x54]
mov byte [esp + 0x8dc], 0x13
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x50]
mov byte [esp + 0x8dc], 0x12
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x4c]
mov byte [esp + 0x8dc], 0x11
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x48]
mov byte [esp + 0x8dc], 9
call sub.MFC42u.DLL_CString::CString
jmp 0x4072b4
push str._SyncFiles___Node_attribute_is_null._n
call fcn.00401f00
add esp, 4
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x18]
mov byte [esp + 0x8e4], 6
call fcn.00408240
mov eax, dword [eax]
lea ecx, [esp + 0x34]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.004082b0
mov edx, dword [esp + 0x14]
push edx
call sub.MFC42u.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov byte [esp + 0x8dc], 1
call sub.MFC42u.DLL_CString::CString
mov dword [esp + 0x6c], 0x4147b0
mov byte [esp + 0x8dc], 0x1d
jmp 0x4076c9
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x20]
lea eax, [edx + 4]
push eax
call sub.MFC42u.DLL_CString::CString_2
push str.updatecfg.ini
lea ecx, [esp + 0x24]
mov byte [esp + 0x8e0], 0x1f
call sub.MFC42u.DLL_CString::operator_1
mov edi, dword [esp + 0x44]
push ebx
mov eax, dword [edi + 0x10]
push eax
mov eax, dword [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x4073ec
mov ecx, dword [edi + 0x10]
mov edx, dword [esp + 0x20]
push ecx
push edx
push str._SyncFiles___Copy_file__s_to__s_failed._n
call fcn.00401f00
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x8dc], 9
call sub.MFC42u.DLL_CString::CString
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0x8e4], 6
call fcn.00408240
mov edx, dword [eax]
lea eax, [esp + 0x34]
push edx
push eax
lea ecx, [esp + 0x1c]
call fcn.004082b0
mov ecx, dword [esp + 0x14]
push ecx
call sub.MFC42u.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov byte [esp + 0x8dc], 1
call sub.MFC42u.DLL_CString::CString
mov dword [esp + 0x6c], 0x4147b0
mov byte [esp + 0x8dc], 0x20
jmp 0x4076c9
mov eax, dword [esp + 0x14]
mov ebp, dword [eax]
cmp ebp, eax
je 0x4074fe
mov eax, dword [ebp + 0x1c]
lea esi, [ebp + 8]
push eax
mov ecx, edi
call fcn.00407f40
test eax, eax
je 0x407478
cmp dword [esi + 0x1c], ebx
je 0x40743f
mov eax, dword [esi + 0x18]
mov ecx, edi
push eax
call fcn.00407f90
test eax, eax
jne 0x40743f
mov eax, dword [esi + 0x18]
lea edx, [esp + 0x24]
push edx
push eax
mov dword [esp + 0x2c], ebx
call fcn.00406960
add esp, 8
test eax, eax
je 0x40745c
cmp dword [esp + 0x24], ebx
je 0x40745c
push esi
mov ecx, edi
call fcn.00407fd0
test eax, eax
je 0x407483
mov ebp, dword [ebp]
mov eax, dword [esp + 0x14]
cmp ebp, eax
je 0x4074fe
jmp 0x4073fa
mov eax, dword [esi + 0x18]
push eax
push str.Is360SignatureOk___The_sign_of_the_file__s_is_invalid._n
call fcn.00401f00
mov edx, dword [esi + 0x14]
add esp, 8
push edx
push str._SyncFiles___The_sign_of_the_file__s_is_not_valid._n
jmp 0x40748c
mov ecx, dword [esi + 0x14]
push ecx
push str._SyncFiles___File__s_could_not_be_replead._n
jmp 0x40748c
mov eax, dword [esi + 0x14]
push eax
push str._SyncFiles___Update_configure_file_failed_while_update_file__s._n
call fcn.00401f00
add esp, 8
lea ecx, [esp + 0x20]
mov byte [esp + 0x8dc], 9
call sub.MFC42u.DLL_CString::CString
mov eax, dword [esp + 0x14]
mov byte [esp + 0x8dc], 6
push eax
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004082b0
mov edx, dword [esp + 0x14]
push edx
call sub.MFC42u.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov byte [esp + 0x8dc], 1
call sub.MFC42u.DLL_CString::CString
mov dword [esp + 0x6c], 0x4147b0
mov byte [esp + 0x8dc], 0x21
jmp 0x4076c9
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x10]
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x407596
mov edx, dword [esp + 0x20]
mov eax, dword [edi + 0x10]
push edx
push eax
push str._SyncFiles___Copy_file__s_to__s_failed._n
call fcn.00401f00
add esp, 0xc
lea ecx, [esp + 0x20]
mov byte [esp + 0x8dc], 9
call sub.MFC42u.DLL_CString::CString
mov eax, dword [esp + 0x14]
mov byte [esp + 0x8dc], 6
push eax
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004082b0
mov edx, dword [esp + 0x14]
push edx
call sub.MFC42u.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov byte [esp + 0x8dc], 1
call sub.MFC42u.DLL_CString::CString
mov dword [esp + 0x6c], 0x4147b0
mov byte [esp + 0x8dc], 0x22
jmp 0x4076c9
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
cmp esi, eax
je 0x4075d0
lea eax, [esi + 8]
mov ecx, edi
push eax
call fcn.00408050
test eax, eax
je 0x4075bb
mov esi, dword [esi]
mov eax, dword [esp + 0x14]
cmp esi, eax
jne 0x4075a0
jmp 0x4075d0
mov ecx, dword [esi + 8]
push ecx
push str._SyncFiles___Update_file__s_failed._n
call fcn.00401f00
add esp, 8
mov dword [esp + 0x68], ebx
lea ecx, [esp + 0x20]
mov byte [esp + 0x8dc], 9
call sub.MFC42u.DLL_CString::CString
mov eax, dword [esp + 0x14]
mov byte [esp + 0x8dc], 6
mov esi, eax
mov ecx, dword [eax]
cmp ecx, eax
mov dword [esp + 0x24], ecx
je 0x407629
lea edx, [esp + 0xcc]
push ebx
push edx
lea ecx, [esp + 0x2c]
call fcn.00408380
mov eax, dword [eax]
lea ecx, [esp + 0xd0]
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00408340
cmp dword [esp + 0x24], esi
jne 0x4075f9
mov eax, dword [esp + 0x14]
push eax
call sub.MFC42u.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov byte [esp + 0x8dc], 1
call sub.MFC42u.DLL_CString::CString
mov dword [esp + 0x6c], 0x4147b0
push 1
lea ecx, [esp + 0xb0]
mov byte [esp + 0x8e0], 0x23
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea ecx, [esp + 0x6c]
mov byte [esp + 0x8dc], bl
call fcn.0040cfb0
mov ecx, dword [esp + 0x38]
cmp ecx, ebx
je 0x4076a2
mov al, byte [ecx - 1]
cmp al, bl
je 0x407698
cmp al, 0xff
je 0x407698
dec al
mov byte [ecx - 1], al
mov eax, dword [esp + 0x68]
jmp 0x407701
dec ecx
push ecx
call sub.MFC42u.DLL_operatordelete
add esp, 4
mov eax, dword [esp + 0x68]
jmp 0x407701
lea ecx, [esp + 0x1c]
mov byte [esp + 0x8dc], 1
call sub.MFC42u.DLL_CString::CString
mov dword [esp + 0x6c], 0x4147b0
mov byte [esp + 0x8dc], 7
push 1
lea ecx, [esp + 0xb0]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea ecx, [esp + 0x6c]
mov byte [esp + 0x8dc], bl
call fcn.0040cfb0
mov dword [esp + 0x8dc], 0xffffffff
push 1
lea ecx, [esp + 0x38]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
xor eax, eax
mov ecx, dword [esp + 0x8d4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x8d0
ret