Function at 0x409be0
Capabilities:
Copy file

Disassembly:
push 0xffffffffffffffff
push 0x41b66d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x12c
push ebx
push esi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 8]
mov dword [esp + 0x13c], 0
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0xc]
mov byte [esp + 0x13c], 1
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [esp + 0x144]
mov edx, dword [0x42a950]
mov ebx, 2
mov ecx, dword [eax + 0x14]
lea esi, [eax + 0x14]
push ecx
push str.CSyncEngine::ProcessFontFile__m_strTargetFile___s
push ebx
push edx
mov byte [esp + 0x14c], bl
call fcn.00404890
add esp, 0x10
lea eax, [esp + 0x14]
push str._fonts
push 0x42a800
push eax
call sub.MFC42.DLL_operator_2
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x140], 3
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x14]
mov byte [esp + 0x13c], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x10]
mov edx, dword [0x42a950]
push ecx
push str.CSyncEngine::ProcessFontFile__strFontDir___s
push ebx
push edx
call fcn.00404890
add esp, 0x10
lea ecx, [esp + 8]
push esi
call sub.MFC42.DLL_CString::operator
push 0x5c
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::ReverseFind
test eax, eax
jl 0x409cf5
inc eax
lea ecx, [esp + 8]
push eax
lea eax, [esp + 0x18]
push eax
call sub.MFC42.DLL_CString::Mid
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x140], 4
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x14]
mov byte [esp + 0x13c], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 8]
mov edx, dword [0x42a950]
push ecx
push str.CSyncEngine::ProcessFontFile__strFontFile___s
push ebx
push edx
call fcn.00404890
add esp, 0x10
lea eax, [esp + 0x10]
lea ecx, [esp + 0x18]
push 0x424094
push eax
push ecx
call sub.MFC42.DLL_operator_2
lea edx, [esp + 8]
mov byte [esp + 0x13c], 5
push edx
push eax
lea eax, [esp + 0x1c]
push eax
call sub.MFC42.DLL_operator_1
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x140], 6
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x14]
mov byte [esp + 0x13c], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x13c], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0xc]
mov edx, dword [0x42a950]
push ecx
push str.CSyncEngine::ProcessFontFile__strDstFile___s
push ebx
push edx
call fcn.00404890
mov ecx, dword [esp + 0x1c]
add esp, 0x10
lea eax, [esp + 0x1c]
push eax
push ecx
call sub.MFC42.DLL_CFile::GetStatus
cmp eax, 1
jne 0x409e0c
mov edx, dword [esp + 0xc]
mov eax, dword [0x42a950]
push edx
push str.CSyncEngine::ProcessFontFile__Previous_Font__s__is_Already_Exist
push ebx
push eax
call fcn.00404890
mov ecx, dword [esp + 0x18]
add esp, 0x10
push ecx
call dword [sym.imp.GDI32.dll_AddFontResourceA]
test eax, eax
jne 0x409df4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esp + 8]
push eax
mov eax, dword [0x42a950]
push edx
push str.CSyncEngine::ProcessFontFile__AddFontRecource__s__Fail__ErrCode___d
push ebx
push eax
call fcn.00404890
mov ecx, dword [0x42a950]
add esp, 0x14
call fcn.00404d50
jmp 0x409fa9
mov ecx, dword [esp + 8]
mov edx, dword [0x42a950]
push eax
push ecx
push str.CSyncEngine::ProcessFontFile__AddFontRecource__s__Success._nRet___d
push ebx
push edx
jmp 0x409fa1
mov eax, dword [esp + 0xc]
mov ecx, dword [0x42a950]
push eax
push str.CSyncEngine::ProcessFontFile__Font__s__is_not_Exist
push ebx
push ecx
call fcn.00404890
mov edx, dword [esp + 0x18]
add esp, 0x10
push edx
call dword [sym.imp.GDI32.dll_RemoveFontResourceA]
test eax, eax
jne 0x409e5c
mov eax, dword [esp + 8]
mov ecx, dword [0x42a950]
push eax
push str.CSyncEngine::ProcessFontFile__Fail_to_Remove_Previous_Font__s__Reource
push ebx
push ecx
call fcn.00404890
mov ecx, dword [0x42a950]
add esp, 0x10
call fcn.00404d50
jmp 0x409e75
mov edx, dword [esp + 8]
mov eax, dword [0x42a950]
push edx
push str.CSyncEngine::ProcessFontFile__Success_to_Remove_Previous_Font__s__Reource
push ebx
push eax
call fcn.00404890
add esp, 0x10
mov ecx, dword [esp + 0xc]
mov esi, dword [esi]
push 0
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x409ef5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esp + 0xc]
push eax
mov eax, dword [0x42a950]
push edx
push str.CSyncEngine::ProcessFontFile__CopyFile__s__Fail__ErrCode___d
push 4
push eax
call fcn.00404890
mov ecx, dword [0x42a950]
add esp, 0x14
call fcn.00404d50
lea ecx, [esp + 0xc]
mov byte [esp + 0x13c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 8]
mov byte [esp + 0x13c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x13c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xfffffffe
jmp 0x409fe1
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
mov ecx, dword [esp + 0xc]
mov edx, dword [0x42a950]
push eax
push ecx
push str.CSyncEngine::ProcessFontFile__CopyFile__s__Success
push 4
push edx
call fcn.00404890
mov eax, dword [esp + 0x1c]
add esp, 0x14
push eax
call dword [sym.imp.GDI32.dll_AddFontResourceA]
test eax, eax
jne 0x409f8e
call esi
mov ecx, dword [esp + 8]
mov edx, dword [0x42a950]
push eax
push ecx
push str.CSyncEngine::ProcessFontFile__AddFontRecource__s__Fail__ErrCode___d
push 4
push edx
call fcn.00404890
mov ecx, dword [0x42a950]
add esp, 0x14
call fcn.00404d50
lea ecx, [esp + 0xc]
mov byte [esp + 0x13c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 8]
mov byte [esp + 0x13c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x13c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xfffffffd
jmp 0x409fe1
mov ecx, dword [0x42a950]
push eax
mov eax, dword [esp + 0xc]
push eax
push str.CSyncEngine::ProcessFontFile__AddFontRecource__s__Success__nRet___d
push ebx
push ecx
call fcn.00404890
add esp, 0x14
lea ecx, [esp + 0xc]
mov byte [esp + 0x13c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 8]
mov byte [esp + 0x13c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x13c], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [esp + 0x134]
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x138
ret 4