Function at 0x524539
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55c27d
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 0x524574
cmp dword [ebp + 8], 0
jge 0x52457b
xor eax, eax
jmp 0x525007
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
mov ecx, dword [ebp - 0x5d0]
add ecx, 0x90
call fcn.0040e8b0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0xffffffff
jne 0x5245bb
xor eax, eax
jmp 0x525007
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 0x52465e
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], 0x562c80
mov edx, dword [ebp - 0x520]
mov dword [ebp - 0x5d4], edx
jmp 0x524668
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 0x5246be
mov ecx, dword [ebp - 0x40]
add ecx, 1
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x40]
cmp edx, dword [ebp - 0x4cc]
jge 0x524d8c
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 0x524722
cmp dword [ebp - 0x5d8], 2
je 0x524900
cmp dword [ebp - 0x5d8], 3
je 0x524b03
jmp 0x524d87
mov ecx, dword [ebp - 0xba]
and ecx, 0xffff
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x4d8], edx
mov eax, dword [ebp - 0x4d8]
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 0x52478c
mov ecx, dword [sym.imp.mathlib.dll_public:_void___thiscall_Pt2d::constructor_void_]
push ecx
mov edx, dword [ebp - 0x4d8]
push edx
push 0x10
mov eax, dword [ebp - 0x528]
push eax
call fcn.00402090
mov ecx, dword [ebp - 0x528]
mov dword [ebp - 0x5dc], ecx
jmp 0x524796
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 - 0x4d4], eax
mov dword [ebp - 0x4dc], 0
jmp 0x5247d0
mov ecx, dword [ebp - 0x4dc]
add ecx, 1
mov dword [ebp - 0x4dc], ecx
mov edx, dword [ebp - 0x4dc]
cmp edx, dword [ebp - 0x4c]
jge 0x524849
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 - 0x4d4]
fstp qword [ecx + eax]
fld dword [ebp - 0x4d0]
mov edx, dword [ebp - 0x4dc]
shl edx, 4
mov eax, dword [ebp - 0x4d4]
fstp qword [eax + edx + 8]
jmp 0x5247c1
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 0x52489d
lea ecx, [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x4d4]
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], 0x563900
mov ecx, dword [ebp - 0x530]
mov dword [ebp - 0x5e0], ecx
jmp 0x5248a7
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 - 0x4d4]
mov dword [ebp - 0x534], edx
mov eax, dword [ebp - 0x534]
push eax
call sub.MFC42u.DLL_operatordelete
add esp, 4
mov dword [ebp - 0x4d4], 0
jmp 0x524d87
mov ecx, dword [ebp - 0xba]
and ecx, 0xffff
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x4f8], edx
mov eax, dword [ebp - 0x4f8]
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 0x52496a
mov ecx, dword [sym.imp.mathlib.dll_public:_void___thiscall_Pt2d::constructor_void_]
push ecx
mov edx, dword [ebp - 0x4f8]
push edx
push 0x10
mov eax, dword [ebp - 0x53c]
push eax
call fcn.00402090
mov ecx, dword [ebp - 0x53c]
mov dword [ebp - 0x5e4], ecx
jmp 0x524974
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 - 0x4f4], 0
jmp 0x5249ae
mov ecx, dword [ebp - 0x4f4]
add ecx, 1
mov dword [ebp - 0x4f4], ecx
mov edx, dword [ebp - 0x4f4]
cmp edx, dword [ebp - 0x4c]
jge 0x524a27
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 - 0x4f4]
shl eax, 4
mov ecx, dword [ebp - 0x4ec]
fstp qword [ecx + eax]
fld dword [ebp - 0x4e8]
mov edx, dword [ebp - 0x4f4]
shl edx, 4
mov eax, dword [ebp - 0x4ec]
fstp qword [eax + edx + 8]
jmp 0x52499f
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 0x524a7b
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], 0x562c18
mov ecx, dword [ebp - 0x544]
mov dword [ebp - 0x5e8], ecx
jmp 0x524a85
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 - 0x4f0], eax
mov ecx, dword [ebp - 0x4f0]
add ecx, 0x150
call dword [sym.imp.QLib.dll_public:_void___thiscall_CSectChain::UpdateBox_void_]
push 1
mov ecx, dword [ebp - 0x4f0]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x4f0]
call dword [edx + 0x14]
mov eax, dword [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x4f0]
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 0x524d87
mov eax, dword [ebp - 0xba]
and eax, 0xffff
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x514], ecx
mov edx, dword [ebp - 0x514]
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 0x524b6b
mov eax, dword [sym.imp.mathlib.dll_public:_void___thiscall_Pt2d::constructor_void_]
push eax
mov ecx, dword [ebp - 0x514]
push ecx
push 0x10
mov edx, dword [ebp - 0x550]
push edx
call fcn.00402090
mov eax, dword [ebp - 0x550]
mov dword [ebp - 0x5ec], eax
jmp 0x524b75
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 - 0x510], 0
jmp 0x524baf
mov eax, dword [ebp - 0x510]
add eax, 1
mov dword [ebp - 0x510], eax
mov ecx, dword [ebp - 0x510]
cmp ecx, dword [ebp - 0x4c]
jge 0x524c28
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 - 0x510]
shl edx, 4
mov eax, dword [ebp - 0x508]
fstp qword [eax + edx]
fld dword [ebp - 0x500]
mov ecx, dword [ebp - 0x510]
shl ecx, 4
mov edx, dword [ebp - 0x508]
fstp qword [edx + ecx + 8]
jmp 0x524ba0
push 0x20
call sub.MFC42u.DLL_operatornew
add esp, 4
mov dword [ebp - 0x558], eax
mov dword [ebp - 4], 6
cmp dword [ebp - 0x558], 0
je 0x524c79
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], 0x5629f8
mov eax, dword [ebp - 0x558]
mov dword [ebp - 0x5f0], eax
jmp 0x524c83
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 0x524ceb
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], 0x562c18
mov ecx, dword [ebp - 0x560]
mov dword [ebp - 0x5f4], ecx
jmp 0x524cf5
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 - 0x50c], eax
mov ecx, dword [ebp - 0x504]
push ecx
mov ecx, dword [ebp - 0x50c]
add ecx, 0x150
call dword [sym.imp.mathlib.dll_public:_void___thiscall_CSectChain::AddSectToHead_class_CSectObject__]
mov ecx, dword [ebp - 0x50c]
add ecx, 0x150
call dword [sym.imp.QLib.dll_public:_void___thiscall_CSectChain::UpdateBox_void_]
push 1
mov edx, dword [ebp - 0x50c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x50c]
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x50c]
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 0x5246b5
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.00523a6c
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 0x5b06c0
call sub.MFC42u.DLL_CString::CString_2
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_2
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.0040e8b0
push eax
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x3c]
call dword [edx + 0x68]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x570]
call sub.MFC42u.DLL_CString::CString
call dword [sym.imp.DataMgr.dll_class_CEzcadCfg____cdecl_gf_GetCfg_void_]
mov eax, dword [eax + 0x458]
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.00525017
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.0043cb50
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.00524357
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 + 0x6c]
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