Function at 0x1401474b0
Capabilities:
Check if file exists
Copy file
Create directory

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xb8
mov qword [rbp - 0x41], 0xfffffffffffffffe
mov rax, qword [0x140324030]
xor rax, rsp
mov qword [rbp + 0xf], rax
mov qword [rbp - 0x49], r9
mov rdi, r8
movzx r13d, dx
mov rbx, rcx
mov qword [rbp - 0x39], r8
xor esi, esi
mov r12d, esi
mov dword [rbp - 0x21], esi
xor eax, eax
mov qword [rbp + 7], rax
mov qword [rbp - 1], rax
mov qword [rbp - 9], rax
mov rdx, r8
lea rcx, [rbp - 0x29]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
nop
lea edx, [rsi + 0x2e]
mov rcx, rdi
call qword [sym.imp.mfc110u.dll_Ordinal_12395]
mov r14d, eax
lea rdx, [0x140224a18]
lea rcx, [rbp - 0x11]
call qword [sym.imp.mfc110u.dll_Ordinal_286]
nop
test r14d, r14d
jns 0x14014754a
mov rdx, rdi
lea rcx, [rbp - 0x11]
call qword [sym.imp.mfc110u.dll_Ordinal_1492]
jmp 0x140147573
mov r8d, r14d
lea rdx, [rbp - 0x31]
mov rcx, rdi
call qword [sym.imp.mfc110u.dll_Ordinal_7902]
nop
mov rdx, rax
lea rcx, [rbp - 0x11]
call qword [sym.imp.mfc110u.dll_Ordinal_1492]
nop
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
lea rdx, str..PAMM
lea rcx, [rbp - 0x11]
call qword [sym.imp.mfc110u.dll_Ordinal_1661]
lea rdx, [rbp - 0x11]
lea rcx, [rbp - 0x19]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
nop
cmp byte [0x14034e61c], 1
jne 0x140147817
xor r8d, r8d
lea rdx, str.127.0.0.1
mov rcx, rdi
call qword [sym.imp.mfc110u.dll_Ordinal_4450]
test eax, eax
jns 0x140147817
xor edx, edx
mov rcx, rdi
call qword [sym.imp.mfc110u.dll_Ordinal_4795]
cmp ax, 0x5c
jne 0x140147817
lea rcx, [rbp - 0x21]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
mov edx, 0x5c
lea r14d, [rdx - 0x5b]
mov rcx, rdi
call qword [sym.imp.mfc110u.dll_Ordinal_12395]
mov rcx, qword [rdi]
mov r8d, dword [rcx - 0x10]
sub r8d, eax
dec r8d
lea rdx, [rbp - 0x31]
mov rcx, rdi
call qword [sym.imp.mfc110u.dll_Ordinal_12432]
nop
mov rdx, rax
lea rcx, [rbp - 0x21]
call qword [sym.imp.mfc110u.dll_Ordinal_1492]
nop
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
lea rdx, str.C:PARMImodel_temp_
lea rcx, [rbp - 0x29]
call qword [sym.imp.mfc110u.dll_Ordinal_1494]
mov rcx, qword [rbp - 0x29]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x140147667
mov r14d, esi
xor r8d, r8d
mov rdx, qword [rbp - 0x29]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x140147661
cmp eax, 0x50
je 0x140147661
cmp eax, 0xb7
jne 0x140147667
mov r14d, 1
lea rdx, [rbp - 0x21]
lea rcx, [rbp - 0x29]
call qword [sym.imp.mfc110u.dll_Ordinal_1658]
cmp r14d, 1
jne 0x1401477b6
xor r8d, r8d
mov rdx, qword [rbp - 0x29]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x1401476ec
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
mov r9, qword [rbp - 0x29]
mov r8, qword [rdi]
lea rdx, str.fail_to_copy__s_to__s
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_4595]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x59]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
mov rdx, rax
lea rcx, [0x14034efc0]
call qword [sym.imp.LogMsgInterface.dll_public:_void___cdecl_CLogMsgInterface::writeLogData_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64]
mov rdx, rdi
lea rcx, [rbp - 0x29]
call qword [sym.imp.mfc110u.dll_Ordinal_1492]
nop
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
mov edx, 0x2e
lea rcx, [rbp - 0x29]
call qword [sym.imp.mfc110u.dll_Ordinal_12395]
test eax, eax
jns 0x14014770f
lea rdx, [rbp - 0x29]
lea rcx, [rbp - 0x19]
call qword [sym.imp.mfc110u.dll_Ordinal_1492]
jmp 0x140147739
mov r8d, eax
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x29]
call qword [sym.imp.mfc110u.dll_Ordinal_7902]
nop
mov rdx, rax
lea rcx, [rbp - 0x19]
call qword [sym.imp.mfc110u.dll_Ordinal_1492]
nop
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
lea rdx, str..PAMM
lea rcx, [rbp - 0x19]
call qword [sym.imp.mfc110u.dll_Ordinal_1661]
xor r8d, r8d
mov rdx, qword [rbp - 0x19]
mov rcx, qword [rbp - 0x11]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x14014780d
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
mov r9, qword [rbp - 0x19]
mov r8, qword [rbp - 0x11]
lea rdx, str.fail_to_copy__s_to__s
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_4595]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x59]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
mov rdx, rax
lea rcx, [0x14034efc0]
call qword [sym.imp.LogMsgInterface.dll_public:_void___cdecl_CLogMsgInterface::writeLogData_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64]
lea rdx, [rbp - 0x11]
lea rcx, [rbp - 0x19]
call qword [sym.imp.mfc110u.dll_Ordinal_1492]
nop
jmp 0x140147802
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
mov r8, qword [rbp - 0x29]
lea rdx, str.doParseModel__Cant_create_temp_model_path._Using_original_model_path.__path:_s_
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_4595]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x59]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
mov rdx, rax
lea rcx, [0x14034efc0]
call qword [sym.imp.LogMsgInterface.dll_public:_void___cdecl_CLogMsgInterface::writeLogData_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64]
mov rdx, rdi
lea rcx, [rbp - 0x29]
call qword [sym.imp.mfc110u.dll_Ordinal_1492]
nop
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
lea rcx, [rbp - 0x21]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rcx, qword [rbp - 0x29]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x140147c14
lea r9, [rbp - 9]
lea r8, [rbp - 1]
lea rdx, [rbp + 7]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileTime]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
mov r9, qword [rbp - 0x19]
mov r8, qword [rbp - 0x29]
lea rdx, str.doParseModel__Model_file_is_access.__path:_s__cfgpath:_s_
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_4595]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x59]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
mov rdx, rax
lea rcx, [0x14034efc0]
call qword [sym.imp.LogMsgInterface.dll_public:_void___cdecl_CLogMsgInterface::writeLogData_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64]
nop
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
mov rcx, qword [rbx + 0x718]
movzx r15d, r13w
mov rax, qword [rbx + 0x720]
sub rax, rcx
sar rax, 3
cmp r15, rax
jae 0x140147bd0
mov rax, qword [rcx + r15*8]
test rax, rax
je 0x140147bd0
cmp byte [rax + 0x7090], 1
jne 0x140147926
movzx r9d, r13w
xor r8d, r8d
lea rdx, [rbp - 0x31]
lea rcx, [0x14032d720]
call fcn.14004e260
nop
mov r12d, 1
mov dword [rbp - 0x21], r12d
mov rdx, qword [rax]
mov rcx, rdi
call qword [sym.imp.mfc110u.dll_Ordinal_2848]
test eax, eax
jne 0x140147926
movzx r14d, r12b
jmp 0x140147929
xor r14b, r14b
test r12b, 1
je 0x140147939
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
mov eax, dword [rbp - 9]
mov ecx, dword [rbp - 5]
test r14b, r14b
je 0x1401479d6
cmp ecx, dword [rbx + 0xe988]
jne 0x1401479d6
cmp eax, dword [rbx + 0xe984]
jne 0x1401479d6
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
mov r8, qword [rdi]
lea rdx, str.doParseModel__Already_model_opened.__path:_s_
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_4595]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x59]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
mov rdx, rax
lea rcx, [0x14034efc0]
call qword [sym.imp.LogMsgInterface.dll_public:_void___cdecl_CLogMsgInterface::writeLogData_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64]
nop
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
lea rcx, [rbp - 0x19]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
lea rcx, [rbp - 0x11]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
lea rcx, [rbp - 0x29]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
mov rcx, rdi
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
mov al, 1
jmp 0x140147d15
mov dword [rbx + 0xe988], ecx
mov dword [rbx + 0xe984], eax
lea rdx, [rbp - 0x29]
lea rcx, [rbp - 0x59]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
mov rdx, qword [rbx + 0x718]
mov rcx, qword [rbx + 0x720]
sub rcx, rdx
sar rcx, 3
cmp r15, rcx
mov rcx, rsi
jae 0x140147a11
mov rcx, qword [rdx + r15*8]
mov r9b, 1
mov r8, qword [rbp - 0x49]
mov rdx, rax
call qword [sym.imp.ModelManager.dll_public:_int___cdecl_CModelManager::loadModelJSON_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_std::condition_variable____ptr64__bool____ptr64]
test eax, eax
je 0x140147af8
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
lea rcx, [rbp - 0x21]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
lea rdx, str.Cannot_load_model_data
lea rcx, [rbp - 0x21]
call qword [sym.imp.mfc110u.dll_Ordinal_1494]
lea rax, [rbp - 0x49]
mov qword [rbp - 0x59], rax
lea rdx, str.IDC_CANNOT_LOAD_MODEL_DATA
lea rcx, [rbp - 0x49]
call qword [sym.imp.mfc110u.dll_Ordinal_286]
mov rbx, rax
lea rdx, str.IDD_GERBER_VIEWER
lea rcx, [rbp - 0x51]
call qword [sym.imp.mfc110u.dll_Ordinal_286]
nop
lea rcx, [rbp - 0x21]
mov qword [rsp + 0x20], rcx
lea r9, [rbp - 0x21]
mov r8, rbx
mov rdx, rax
lea rcx, [0x14034ef60]
call qword [sym.imp.MultiLang_x64.dll_public:_int___cdecl_CMultiLangManager::GetCaptionDef_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64__class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64____ptr64]
mov r9, qword [rbp - 0x29]
mov r8, qword [rbp - 0x21]
lea rdx, str._s__from__s_
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_4595]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x51]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
mov rdx, rax
lea rcx, [0x14034efc0]
call qword [sym.imp.LogMsgInterface.dll_public:_void___cdecl_CLogMsgInterface::writeLogData_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64]
xor r8d, r8d
mov edx, 0x40000
mov rcx, qword [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_2217]
nop
lea rcx, [rbp - 0x21]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
jmp 0x140147cde
lea rdx, str.doParseModel__Model_file_load_complete.
lea rcx, [rbp - 0x51]
call qword [sym.imp.mfc110u.dll_Ordinal_286]
mov rdx, rax
lea rcx, [0x14034efc0]
call qword [sym.imp.LogMsgInterface.dll_public:_void___cdecl_CLogMsgInterface::writeLogData_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64]
lea rdx, [rbp - 0x19]
lea rcx, [rbp - 0x51]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
mov rdx, qword [rbx + 0x718]
mov rcx, qword [rbx + 0x720]
sub rcx, rdx
sar rcx, 3
cmp r15, rcx
jae 0x140147b45
mov rsi, qword [rdx + r15*8]
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.ModelManager.dll_public:_int___cdecl_CModelManager::loadModelConfigJSON_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64]
test eax, eax
je 0x140147b9f
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
mov r8, qword [rbp - 0x19]
lea rdx, str.Cannot_load_model_config_data.__from__s_
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_4595]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x51]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
mov rdx, rax
lea rcx, [0x14034efc0]
call qword [sym.imp.LogMsgInterface.dll_public:_void___cdecl_CLogMsgInterface::writeLogData_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64]
nop
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
lea rcx, [rbp - 0x19]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
lea rcx, [rbp - 0x11]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
lea rcx, [rbp - 0x29]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
mov rcx, rdi
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
mov al, 1
jmp 0x140147d15
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
movzx r8d, r13w
lea rdx, str.doParseModel__ModelManager_is_NULL.__index:_d_
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_4595]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x51]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
mov rdx, rax
lea rcx, [0x14034efc0]
call qword [sym.imp.LogMsgInterface.dll_public:_void___cdecl_CLogMsgInterface::writeLogData_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64]
nop
jmp 0x140147cde
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
lea rcx, [rbp - 0x21]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
lea rdx, str.Cannot_load_model_data
lea rcx, [rbp - 0x21]
call qword [sym.imp.mfc110u.dll_Ordinal_1494]
lea rax, [rbp - 0x49]
mov qword [rbp - 0x51], rax
lea rdx, str.IDC_CANNOT_LOAD_MODEL_DATA
lea rcx, [rbp - 0x49]
call qword [sym.imp.mfc110u.dll_Ordinal_286]
mov rbx, rax
lea rdx, str.IDD_GERBER_VIEWER
lea rcx, [rbp - 0x59]
call qword [sym.imp.mfc110u.dll_Ordinal_286]
nop
lea rcx, [rbp - 0x21]
mov qword [rsp + 0x20], rcx
lea r9, [rbp - 0x21]
mov r8, rbx
mov rdx, rax
lea rcx, [0x14034ef60]
call qword [sym.imp.MultiLang_x64.dll_public:_int___cdecl_CMultiLangManager::GetCaptionDef_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64__class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64____ptr64]
mov r9, qword [rbp - 0x29]
mov r8, qword [rbp - 0x21]
lea rdx, str._s__from__s_
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_4595]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x51]
call qword [sym.imp.mfc110u.dll_Ordinal_280]
mov rdx, rax
lea rcx, [0x14034efc0]
call qword [sym.imp.LogMsgInterface.dll_public:_void___cdecl_CLogMsgInterface::writeLogData_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_______ptr64]
xor r8d, r8d
mov edx, 0x40000
mov rcx, qword [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_2217]
nop
lea rcx, [rbp - 0x21]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
lea rcx, [rbp - 0x31]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
lea rcx, [rbp - 0x19]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
lea rcx, [rbp - 0x11]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
lea rcx, [rbp - 0x29]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
mov rcx, rdi
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
xor al, al
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.1401e3980
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret