Function at 0x4c3e89
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5028ed
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5fc
mov dword [ebp - 0x5d0], ecx
mov eax, dword [ebp - 0x5d0]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x80]
jge 0x4c3ec4
cmp dword [ebp + 8], 0
jge 0x4c3ecb
xor eax, eax
jmp 0x4c4957
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
mov ecx, dword [ebp - 0x5d0]
add ecx, 0x90
call fcn.0040e380
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0xffffffff
jne 0x4c3f0b
xor eax, eax
jmp 0x4c4957
push 0
push 0
mov edx, dword [ebp - 0x5d0]
mov eax, dword [edx + 0x78]
imul eax, eax, 0x3fa
add eax, 0xda
push eax
mov ecx, dword [ebp - 0x98]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea edx, [ebp - 0x38]
push edx
push 0x3fa
lea eax, [ebp - 0x4b8]
push eax
mov ecx, dword [ebp - 0x98]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [ebp - 0x482]
mov dword [ebp - 0x4cc], edx
mov eax, dword [ebp - 0x486]
mov dword [ebp - 0x48], eax
push 0x150
call sub.MFC42u.DLL_operatornew
add esp, 4
mov dword [ebp - 0x520], eax
mov dword [ebp - 4], 0
cmp dword [ebp - 0x520], 0
je 0x4c3fae
mov ecx, dword [ebp - 0x520]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CEntCombine::constructor_void_]
mov ecx, dword [ebp - 0x520]
mov dword [ecx], 0x5098fc
mov edx, dword [ebp - 0x520]
mov dword [ebp - 0x5d4], edx
jmp 0x4c3fb8
mov dword [ebp - 0x5d4], 0
mov eax, dword [ebp - 0x5d4]
mov dword [ebp - 0x51c], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x51c]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x34], 0
lea ecx, [ebp - 0xb8]
call dword [sym.imp.mathlib.dll_public:_void___thiscall_Pt2d::constructor_void_]
push 0
push 0
mov edx, dword [ebp - 0x48]
push edx
mov eax, dword [ebp - 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x40], 0
jmp 0x4c400e
mov ecx, dword [ebp - 0x40]
add ecx, 1
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x40]
cmp edx, dword [ebp - 0x4cc]
jge 0x4c46dc
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea ecx, [ebp - 0xbc]
push ecx
mov edx, dword [ebp - 0x98]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0xbc]
and eax, 0xffff
mov dword [ebp - 0x5d8], eax
cmp dword [ebp - 0x5d8], 1
je 0x4c4072
cmp dword [ebp - 0x5d8], 2
je 0x4c4250
cmp dword [ebp - 0x5d8], 3
je 0x4c4453
jmp 0x4c46d7
mov ecx, dword [ebp - 0xba]
and ecx, 0xffff
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x4d4], edx
mov eax, dword [ebp - 0x4d4]
shl eax, 4
push eax
call sub.MFC42u.DLL_operatornew
add esp, 4
mov dword [ebp - 0x528], eax
mov dword [ebp - 4], 1
cmp dword [ebp - 0x528], 0
je 0x4c40dc
mov ecx, dword [sym.imp.mathlib.dll_public:_void___thiscall_Pt2d::constructor_void_]
push ecx
mov edx, dword [ebp - 0x4d4]
push edx
push 0x10
mov eax, dword [ebp - 0x528]
push eax
call fcn.00402080
mov ecx, dword [ebp - 0x528]
mov dword [ebp - 0x5dc], ecx
jmp 0x4c40e6
mov dword [ebp - 0x5dc], 0
mov edx, dword [ebp - 0x5dc]
mov dword [ebp - 0x524], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x524]
mov dword [ebp - 0x4d8], eax
mov dword [ebp - 0x4dc], 0
jmp 0x4c4120
mov ecx, dword [ebp - 0x4dc]
add ecx, 1
mov dword [ebp - 0x4dc], ecx
mov edx, dword [ebp - 0x4dc]
cmp edx, dword [ebp - 0x4c]
jge 0x4c4199
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea ecx, [ebp - 0x4e4]
push ecx
mov edx, dword [ebp - 0x98]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea ecx, [ebp - 0x4d0]
push ecx
mov edx, dword [ebp - 0x98]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
fld dword [ebp - 0x4e4]
mov eax, dword [ebp - 0x4dc]
shl eax, 4
mov ecx, dword [ebp - 0x4d8]
fstp qword [ecx + eax]
fld dword [ebp - 0x4d0]
mov edx, dword [ebp - 0x4dc]
shl edx, 4
mov eax, dword [ebp - 0x4d8]
fstp qword [eax + edx + 8]
jmp 0x4c4111
push 0x188
call sub.MFC42u.DLL_operatornew
add esp, 4
mov dword [ebp - 0x530], eax
mov dword [ebp - 4], 2
cmp dword [ebp - 0x530], 0
je 0x4c41ed
lea ecx, [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x4d8]
push edx
mov ecx, dword [ebp - 0x530]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CEntPoint2d::constructor_class_Pt2d___int_const__]
mov eax, dword [ebp - 0x530]
mov dword [eax], 0x50a550
mov ecx, dword [ebp - 0x530]
mov dword [ebp - 0x5e0], ecx
jmp 0x4c41f7
mov dword [ebp - 0x5e0], 0
mov edx, dword [ebp - 0x5e0]
mov dword [ebp - 0x52c], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x52c]
mov dword [ebp - 0x4e0], eax
mov ecx, dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x4e0]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CEntity::InsertToChildTail_class_CEntity__]
mov edx, dword [ebp - 0x4d8]
mov dword [ebp - 0x534], edx
mov eax, dword [ebp - 0x534]
push eax
call sub.MFC42u.DLL_operatordelete
add esp, 4
mov dword [ebp - 0x4d8], 0
jmp 0x4c46d7
mov ecx, dword [ebp - 0xba]
and ecx, 0xffff
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x4f0], edx
mov eax, dword [ebp - 0x4f0]
shl eax, 4
push eax
call sub.MFC42u.DLL_operatornew
add esp, 4
mov dword [ebp - 0x53c], eax
mov dword [ebp - 4], 3
cmp dword [ebp - 0x53c], 0
je 0x4c42ba
mov ecx, dword [sym.imp.mathlib.dll_public:_void___thiscall_Pt2d::constructor_void_]
push ecx
mov edx, dword [ebp - 0x4f0]
push edx
push 0x10
mov eax, dword [ebp - 0x53c]
push eax
call fcn.00402080
mov ecx, dword [ebp - 0x53c]
mov dword [ebp - 0x5e4], ecx
jmp 0x4c42c4
mov dword [ebp - 0x5e4], 0
mov edx, dword [ebp - 0x5e4]
mov dword [ebp - 0x538], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x538]
mov dword [ebp - 0x4ec], eax
mov dword [ebp - 0x4f8], 0
jmp 0x4c42fe
mov ecx, dword [ebp - 0x4f8]
add ecx, 1
mov dword [ebp - 0x4f8], ecx
mov edx, dword [ebp - 0x4f8]
cmp edx, dword [ebp - 0x4c]
jge 0x4c4377
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea ecx, [ebp - 0x4fc]
push ecx
mov edx, dword [ebp - 0x98]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
lea eax, [ebp - 0x38]
push eax
push 4
lea ecx, [ebp - 0x4e8]
push ecx
mov edx, dword [ebp - 0x98]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
fld dword [ebp - 0x4fc]
mov eax, dword [ebp - 0x4f8]
shl eax, 4
mov ecx, dword [ebp - 0x4ec]
fstp qword [ecx + eax]
fld dword [ebp - 0x4e8]
mov edx, dword [ebp - 0x4f8]
shl edx, 4
mov eax, dword [ebp - 0x4ec]
fstp qword [eax + edx + 8]
jmp 0x4c42ef
push 0x188
call sub.MFC42u.DLL_operatornew
add esp, 4
mov dword [ebp - 0x544], eax
mov dword [ebp - 4], 4
cmp dword [ebp - 0x544], 0
je 0x4c43cb
lea ecx, [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x4ec]
push edx
mov ecx, dword [ebp - 0x544]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CEntCurve2d::constructor_class_Pt2d___int_const__]
mov eax, dword [ebp - 0x544]
mov dword [eax], 0x509898
mov ecx, dword [ebp - 0x544]
mov dword [ebp - 0x5e8], ecx
jmp 0x4c43d5
mov dword [ebp - 0x5e8], 0
mov edx, dword [ebp - 0x5e8]
mov dword [ebp - 0x540], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x540]
mov dword [ebp - 0x4f4], eax
mov ecx, dword [ebp - 0x4f4]
add ecx, 0x150
call dword [sym.imp.QLib.dll_public:_void___thiscall_CSectChain::UpdateBox_void_]
push 1
mov ecx, dword [ebp - 0x4f4]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x4f4]
call dword [edx + 0x14]
mov eax, dword [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x4f4]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CEntity::InsertToChildTail_class_CEntity__]
mov ecx, dword [ebp - 0x4ec]
mov dword [ebp - 0x548], ecx
mov edx, dword [ebp - 0x548]
push edx
call sub.MFC42u.DLL_operatordelete
add esp, 4
mov dword [ebp - 0x4ec], 0
jmp 0x4c46d7
mov eax, dword [ebp - 0xba]
and eax, 0xffff
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x50c], ecx
mov edx, dword [ebp - 0x50c]
shl edx, 4
push edx
call sub.MFC42u.DLL_operatornew
add esp, 4
mov dword [ebp - 0x550], eax
mov dword [ebp - 4], 5
cmp dword [ebp - 0x550], 0
je 0x4c44bb
mov eax, dword [sym.imp.mathlib.dll_public:_void___thiscall_Pt2d::constructor_void_]
push eax
mov ecx, dword [ebp - 0x50c]
push ecx
push 0x10
mov edx, dword [ebp - 0x550]
push edx
call fcn.00402080
mov eax, dword [ebp - 0x550]
mov dword [ebp - 0x5ec], eax
jmp 0x4c44c5
mov dword [ebp - 0x5ec], 0
mov ecx, dword [ebp - 0x5ec]
mov dword [ebp - 0x54c], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x54c]
mov dword [ebp - 0x508], edx
mov dword [ebp - 0x514], 0
jmp 0x4c44ff
mov eax, dword [ebp - 0x514]
add eax, 1
mov dword [ebp - 0x514], eax
mov ecx, dword [ebp - 0x514]
cmp ecx, dword [ebp - 0x4c]
jge 0x4c4578
push 0
lea edx, [ebp - 0x38]
push edx
push 4
lea eax, [ebp - 0x518]
push eax
mov ecx, dword [ebp - 0x98]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
lea edx, [ebp - 0x38]
push edx
push 4
lea eax, [ebp - 0x500]
push eax
mov ecx, dword [ebp - 0x98]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
fld dword [ebp - 0x518]
mov edx, dword [ebp - 0x514]
shl edx, 4
mov eax, dword [ebp - 0x508]
fstp qword [eax + edx]
fld dword [ebp - 0x500]
mov ecx, dword [ebp - 0x514]
shl ecx, 4
mov edx, dword [ebp - 0x508]
fstp qword [edx + ecx + 8]
jmp 0x4c44f0
push 0x20
call sub.MFC42u.DLL_operatornew
add esp, 4
mov dword [ebp - 0x558], eax
mov dword [ebp - 4], 6
push es
add byte [eax], al
add byte [ebx - 0x55743], al
inc dword [eax]
je 0x4c45c9
mov eax, dword [ebp - 0x508]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
mov ecx, dword [ebp - 0x558]
call dword [sym.imp.mathlib.dll_public:_void___thiscall_CSectBezier2d::constructor_int__class_Pt2d__]
mov edx, dword [ebp - 0x558]
mov dword [edx], 0x509690
mov eax, dword [ebp - 0x558]
mov dword [ebp - 0x5f0], eax
jmp 0x4c45d3
mov dword [ebp - 0x5f0], 0
mov ecx, dword [ebp - 0x5f0]
mov dword [ebp - 0x554], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x554]
mov dword [ebp - 0x504], edx
push 0x188
call sub.MFC42u.DLL_operatornew
add esp, 4
mov dword [ebp - 0x560], eax
mov dword [ebp - 4], 7
cmp dword [ebp - 0x560], 0
je 0x4c463b
mov ecx, dword [ebp - 0x560]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CEntCurve2d::constructor_void_]
mov eax, dword [ebp - 0x560]
mov dword [eax], 0x509898
mov ecx, dword [ebp - 0x560]
mov dword [ebp - 0x5f4], ecx
jmp 0x4c4645
mov dword [ebp - 0x5f4], 0
mov edx, dword [ebp - 0x5f4]
mov dword [ebp - 0x55c], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x55c]
mov dword [ebp - 0x510], eax
mov ecx, dword [ebp - 0x504]
push ecx
mov ecx, dword [ebp - 0x510]
add ecx, 0x150
call dword [sym.imp.mathlib.dll_public:_void___thiscall_CSectChain::AddSectToHead_class_CSectObject__]
mov ecx, dword [ebp - 0x510]
add ecx, 0x150
call dword [sym.imp.QLib.dll_public:_void___thiscall_CSectChain::UpdateBox_void_]
push 1
mov edx, dword [ebp - 0x510]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x510]
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x510]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CEntity::InsertToChildTail_class_CEntity__]
mov edx, dword [ebp - 0x508]
mov dword [ebp - 0x564], edx
mov eax, dword [ebp - 0x564]
push eax
call sub.MFC42u.DLL_operatordelete
add esp, 4
mov dword [ebp - 0x508], 0
jmp 0x4c4005
mov ecx, dword [ebp - 0x98]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x3a83126f
mov edx, dword [ebp - 0x44]
push edx
call fcn.004c33bc
add esp, 8
call dword [sym.imp.DataMgr.dll_class_CDataMgr____cdecl_gf_GetDataMgr_void_]
mov dword [ebp - 0x3c], eax
push ecx
mov ecx, esp
mov dword [ebp - 0x568], esp
push 0x545b28
call sub.MFC42u.DLL_CString::CString_1
mov dword [ebp - 0x5f8], eax
mov eax, dword [ebp - 0x5f8]
mov dword [ebp - 0x5fc], eax
mov dword [ebp - 4], 8
push ecx
mov ecx, esp
mov dword [ebp - 0x56c], esp
push str.EZCADSTR_IMGLIB_DRAW
call sub.MFC42u.DLL_CString::CString_1
mov dword [ebp - 0x600], eax
lea ecx, [ebp - 0x570]
push ecx
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.DataMgr.dll_class_CString___cdecl_gf_Str_class_CString__class_CString_]
add esp, 0xc
mov dword [ebp - 0x604], eax
mov edx, dword [ebp - 0x604]
mov dword [ebp - 0x608], edx
mov dword [ebp - 4], 9
mov ecx, dword [ebp - 0x608]
call fcn.0040e380
push eax
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x3c]
call dword [edx + 0x64]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x570]
call fcn.004f5766
call dword [sym.imp.DataMgr.dll_class_CEzcadCfg____cdecl_gf_GetCfg_void_]
mov eax, dword [eax + 0x438]
push eax
mov ecx, dword [ebp - 0x44]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CEntity::SetPen_int_]
push 0
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x44]
call dword [edx + 0x14]
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x44]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CEntity::UD_AddToChildTail_class_CEntity__]
mov ecx, dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x5d0]
call fcn.004c4967
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x94]
call dword [sym.imp.QLib.dll_public:_void___thiscall_CMatrix2d::constructor_void_]
mov dword [ebp - 4], 0xa
lea edx, [ebp - 0x30]
push edx
mov ecx, dword [ebp - 0x44]
call dword [sym.imp.DataMgr.dll_public:_class_Box2d___thiscall_CEntity::GetBox_void_]
lea eax, [ebp - 0x4c8]
push eax
lea ecx, [ebp - 0x30]
call dword [sym.imp.mathlib.dll_public:_class_Pt2d___thiscall_Box2d::GetCenterPt_void_]
lea ecx, [ebp - 0xa8]
call dword [sym.imp.mathlib.dll_public:_void___thiscall_Pt2d::constructor_void_]
lea ecx, [ebp + 0xc]
push ecx
call dword [sym.imp.DataMgr.dll_class_CWnd____cdecl_gf_GetActiveWnd_void_]
mov ecx, eax
call fcn.0043ba00
lea edx, [ebp - 0xa8]
push edx
lea eax, [ebp + 0xc]
push eax
call dword [sym.imp.DataMgr.dll_class_CDrawDC____cdecl_gf_GetDrawDC_void_]
mov ecx, eax
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CDrawDC::DPtoLP_class_CPoint_const___class_Pt2d__const]
fld qword [ebp - 0xa0]
fsub qword [ebp - 0x4c0]
fstp qword [ebp - 0x578]
fld qword [ebp - 0xa8]
fsub qword [ebp - 0x4c8]
fstp qword [ebp - 0x580]
lea ecx, [ebp - 0x578]
push ecx
lea edx, [ebp - 0x580]
push edx
lea eax, [ebp - 0x5c8]
push eax
lea ecx, [ebp - 0x94]
call dword [sym.imp.mathlib.dll_public:_class_CMatrix2d___thiscall_CMatrix2d::Move_double_const___double_const__]
lea ecx, [ebp - 0x5c8]
call dword [sym.imp.mathlib.dll_public:_void___thiscall_CMatrix2d::destructor_void_]
push 1
lea ecx, [ebp - 0x94]
push ecx
mov edx, dword [ebp - 0x44]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x44]
call dword [eax + 0x54]
push 0x3ba3d70a
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.004c3ca7
add esp, 8
push 0
mov edx, dword [ebp - 0x44]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x44]
call dword [eax + 0x14]
push 2
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x44]
call dword [edx + 0x14]
mov ecx, dword [ebp - 0x3c]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CDataMgr::ResetPickParam_void_]
mov ecx, dword [ebp - 0x3c]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CDataMgr::BeginPick_void_]
push 1
mov eax, dword [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x3c]
call dword [sym.imp.DataMgr.dll_public:_int___thiscall_CDataMgr::PickEntity_class_CEntity___int_]
mov ecx, dword [ebp - 0x3c]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CDataMgr::EndPick_void_]
call dword [sym.imp.DataMgr.dll_class_CDrawDC____cdecl_gf_GetDrawDC_void_]
mov ecx, eax
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CDrawDC::Invalidate_void_]
push 1
mov ecx, dword [ebp - 0x3c]
call dword [sym.imp.DataMgr.dll_public:_void___thiscall_CDataMgr::SetModifyFlag_int_]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x3c]
call dword [edx + 0x68]
call dword [sym.imp.DataMgr.dll_class_CWnd____cdecl_gf_GetActiveWnd_void_]
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetFocus
mov dword [ebp - 0x5cc], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x94]
call dword [sym.imp.mathlib.dll_public:_void___thiscall_CMatrix2d::destructor_void_]
mov eax, dword [ebp - 0x5cc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc