Function at 0x40a970
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x43dca8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xbac
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov ecx, dword [esi + 0x414]
cmp eax, ecx
jge 0x40b91e
push eax
mov ecx, esi
call dword [sym.imp.VzSatData.dll_public:_class_CVzSatModel____thiscall_CVzSatPro::GetModel_int_]
test eax, eax
mov dword [esp + 0x60], eax
jne 0x40a9ce
mov ecx, dword [esp + 0xbb8]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [eax + 0x36c]
mov ebx, dword [eax + 0x368]
mov dword [esp + 0x4c], ecx
lea edx, [esp + 0x7c]
lea ecx, [esp + 0x70]
push edx
push ecx
mov ecx, eax
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CVzSatModel::GetParallax_float___float__]
fld dword [esp + 0x70]
fchs
fstp qword [esp + 0xdc]
fld dword [esp + 0x7c]
fchs
fstp qword [esp + 0xf4]
mov ecx, 0xc
lea esi, [esp + 0xdc]
lea edi, [esp + 0x17c]
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0x3ff00000
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0x3ff00000
lea edx, [esp + 0xdc]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
push edx
mov ecx, esi
call dword [sym.imp.VzSatData.dll_public:_int___thiscall_CVzSatModel::GetAtf_double__]
mov edi, dword [esi + 0x360]
lea ecx, [esp + 0x250]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x90], edi
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CSubModelData::constructor_void_]
mov ecx, dword [ebx + 0x30c]
mov eax, dword [ebx + 0x310]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
fild dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xbc0], 0
test edi, edi
fstp dword [esp + 0x40]
fild dword [esp + 0xc]
mov edx, dword [eax + 0x310]
mov eax, dword [eax + 0x30c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
fstp dword [esp + 0x48]
fild dword [esp + 0x10]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], 0
fstp dword [esp + 0x54]
fild dword [esp + 0xc]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
fstp dword [esp + 0x5c]
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
je 0x40ab8d
mov ecx, 0xc
lea esi, [esp + 0xdc]
lea edi, [esp + 0x17c]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x60]
mov eax, dword [ebp + 0x40]
test eax, eax
je 0x40b3f5
lea ecx, [esp + 0x9a0]
call dword [sym.imp.SpGeoCvt.dll_public:_void___thiscall_CSpGeoCvt::constructor_void_]
mov edi, dword [ebp + 8]
mov byte [esp + 0xbc0], 1
lea ecx, [edi + 0x63c]
push ecx
lea ecx, [esp + 0x9a4]
call dword [sym.imp.SpGeoCvt.dll_public:_int___thiscall_CSpGeoCvt::Load4File_char_const__]
test eax, eax
jne 0x40abf3
lea ecx, [esp + 0x9a0]
mov byte [esp + 0xbc0], al
call dword [sym.imp.SpGeoCvt.dll_public_virtual:_void___thiscall_CSpGeoCvt::destructor_void_]
xor eax, eax
mov ecx, dword [esp + 0xbb8]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi]
push 0
lea eax, [esp + 0xc8]
push 1
lea ecx, [esp + 0xdc]
push eax
push ecx
lea eax, [esp + 0x1bc]
lea ecx, [esp + 0x224]
push eax
push ecx
mov ecx, esi
call dword [edx + 0x14]
fld qword [esp + 0xd4]
fsub qword [ebp + 0x10]
mov edx, dword [edi + 0x860]
mov eax, dword [edi + 0x864]
sub esp, 8
mov dword [esp + 0x7c], edx
fdiv qword [ebp + 0x20]
mov dword [esp + 0x80], eax
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
fld qword [esp + 0xd4]
fsub qword [ebp + 0x10]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul qword [ebp + 0x20]
fsubp st(1)
fld dword [ebp + 0x30]
fcompp
fnstsw ax
test ah, 1
je 0x40ac7d
inc dword [esp + 0x20]
fld qword [esp + 0xc4]
fsub qword [ebp + 0x18]
sub esp, 8
fdiv qword [ebp + 0x28]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
fld qword [esp + 0xc4]
fsub qword [ebp + 0x18]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [ebp + 0x28]
fsubp st(1)
fld dword [ebp + 0x34]
fcompp
fnstsw ax
test ah, 1
je 0x40acc5
inc dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x74]
push 0
add edx, 0x350
push esi
lea ecx, [ebx + 0x350]
push edi
mov dword [esp + 0x1c], edx
call dword [sym.imp.VzSatData.dll_public:_double___thiscall_CVzSatAbsPara::GetGsd_double__bool_]
mov ecx, dword [esp + 0x10]
push 0
fstp qword [esp + 0x98]
push esi
push edi
call dword [sym.imp.VzSatData.dll_public:_double___thiscall_CVzSatAbsPara::GetGsd_double__bool_]
fcomp qword [esp + 0x94]
push 0
push esi
push edi
lea ecx, [ebx + 0x350]
fnstsw ax
test ah, 0x41
je 0x40ad1c
mov ecx, dword [esp + 0x1c]
call dword [sym.imp.VzSatData.dll_public:_double___thiscall_CVzSatAbsPara::GetGsd_double__bool_]
fld dword [ebp + 0x30]
fst qword [esp + 0x64]
fdiv st(1)
fadd qword [0x442540]
call sub.MSVCRT.dll__ftol
fld dword [ebp + 0x34]
mov dword [esp + 0xb8], eax
fst qword [esp + 0x24]
fdiv st(1)
fadd qword [0x442540]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x14]
fstp st(0)
fld qword [ebp + 0x18]
test eax, eax
jle 0x40b3c5
fld qword [esp + 0x24]
fadd qword [ebp + 0x28]
mov dword [esp + 0x14], eax
fstp qword [esp + 0x10c]
fst qword [esp + 0x16c]
fst qword [esp + 0x124]
fld st(0)
fadd qword [ebp + 0x28]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
test eax, eax
fst qword [esp + 0x94]
fst qword [esp + 0x154]
fstp qword [esp + 0x13c]
fld dword [ebp + 0x34]
fsubr st(1)
mov dword [esp + 0x28], ecx
fst qword [esp + 0x204]
fstp qword [esp + 0x1bc]
fadd qword [esp + 0x10c]
fst qword [esp + 0x1ec]
fstp qword [esp + 0x1d4]
jle 0x40b3af
fld qword [esp + 0x64]
fadd qword [ebp + 0x20]
mov dword [esp + 0x10], eax
fstp qword [esp + 0x114]
lea ecx, [esp + 0x250]
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CSubModelData::Reset_void_]
fld qword [esp + 0x24]
fadd qword [ebp + 0x20]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x134], edx
mov ecx, edx
mov edx, eax
xor esi, esi
fst qword [esp + 0xcc]
fst qword [esp + 0x164]
fstp qword [esp + 0x14c]
fld dword [ebp + 0x30]
mov dword [esp + 0x138], eax
mov dword [esp + 0x11c], ecx
fstp qword [esp + 0x64]
fld qword [esp + 0x24]
fsub qword [esp + 0x64]
mov dword [esp + 0x120], edx
xor edi, edi
fst qword [esp + 0x1cc]
fstp qword [esp + 0x1b4]
fld qword [esp + 0x24]
fadd qword [esp + 0x114]
fst qword [esp + 0x1fc]
fstp qword [esp + 0x1e4]
lea eax, [esp + 0xb0]
lea ecx, [esp + 0xa8]
push eax
mov eax, dword [esp + 0x7c]
lea edx, [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + esi + 0x134]
push eax
mov eax, dword [esp + esi + 0x134]
push ecx
mov ecx, dword [esp + esi + 0x134]
push edx
mov edx, dword [esp + esi + 0x134]
push eax
push ecx
push edx
lea ecx, [esp + 0x9c4]
call dword [sym.imp.SpGeoCvt.dll_public:_int___thiscall_CSpGeoCvt::Cvt_Prj2LBH_double__double__double__double___double___double__]
mov edx, dword [esp + 0xb4]
lea eax, [esp + 0xc]
fld qword [esp + 0xa8]
fmul qword [0x442580]
lea ecx, [esp + 0x18]
push eax
mov eax, dword [esp + 0xb4]
push ecx
push edx
push eax
sub esp, 8
mov ecx, ebx
fstp qword [esp]
fld qword [esp + 0xb8]
fmul qword [0x442580]
sub esp, 8
fstp qword [esp]
call dword [sym.imp.VzSatData.dll_public:_bool___thiscall_CVzSatPhoto::GeodeticToPhoto_double__double__double__float___float__]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
mov dword [esp + edi + 0x6b8], ecx
lea eax, [esp + 0xb0]
mov dword [esp + edi + 0x6bc], edx
lea ecx, [esp + 0xa8]
push eax
mov eax, dword [esp + 0x7c]
lea edx, [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + esi + 0x1cc]
push eax
mov eax, dword [esp + esi + 0x1cc]
push ecx
mov ecx, dword [esp + esi + 0x1cc]
push edx
mov edx, dword [esp + esi + 0x1cc]
push eax
push ecx
push edx
lea ecx, [esp + 0x9c4]
call dword [sym.imp.SpGeoCvt.dll_public:_int___thiscall_CSpGeoCvt::Cvt_Prj2LBH_double__double__double__double___double___double__]
mov edx, dword [esp + 0xb4]
lea eax, [esp + 0xc]
fld qword [esp + 0xa8]
fmul qword [0x442580]
lea ecx, [esp + 0x18]
push eax
mov eax, dword [esp + 0xb4]
push ecx
push edx
push eax
sub esp, 8
mov ecx, ebx
fstp qword [esp]
fld qword [esp + 0xb8]
fmul qword [0x442580]
sub esp, 8
fstp qword [esp]
call dword [sym.imp.VzSatData.dll_public:_bool___thiscall_CVzSatPhoto::GeodeticToPhoto_double__double__double__float___float__]
fld dword [esp + 0x18]
fstp dword [esp + edi + 0x220]
fld dword [esp + 0xc]
add esi, 0x18
fstp dword [esp + edi + 0x224]
add edi, 8
cmp esi, 0x60
jl 0x40ae82
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 0x3c]
lea eax, [ecx + edx + 1]
mov ecx, dword [ebp + 0x38]
push eax
lea edx, [esp + 0x25c]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edi, [ebx + 0x108]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x298]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x498]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push 2
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x50]
push 0
lea edi, [ecx + 0x108]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0xc8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x98]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0xc
lea esi, [esp + 0xe4]
lea edi, [esp + 0x708]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x704], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x700], ecx
mov ecx, dword [esp + 0x84]
mov word [esp + 0x740], ax
test eax, eax
push ecx
push edx
setne al
push eax
lea ecx, [esp + 0x264]
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CSubModelData::AutoCalcCorner_bool__float__float__bool__int_]
lea ecx, [esp + 0x220]
push 4
push ecx
lea ecx, [esp + 0x248]
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CFltRect::constructor_struct_tagFPoint___int_]
push eax
lea ecx, [esp + 0x69c]
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CFltRect::operator_class_CFltRect_const__]
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
sub esp, 0x10
mov esi, dword [esp + 0x54]
mov edx, esp
mov ecx, dword [esp + 0x58]
push 0
mov dword [edx], eax
mov dword [edx + 4], edi
mov dword [edx + 8], esi
mov dword [edx + 0xc], ecx
push 0
lea ecx, [esp + 0x6b0]
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CFltRect::Expand_float__float__class_CFltRect_]
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x17c]
push edx
mov edx, dword [esp + 0x58]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x6c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x70]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x6ac]
push eax
call dword [sym.imp.VzSatData.dll_public:_static_int___cdecl_CFltRect::IntersectRect_class_CFltRect___class_CFltRect__double_const__]
lea ecx, [esp + 0x194]
lea edx, [esp + 0x6c0]
push ecx
lea eax, [esp + 0x6b4]
push edx
push eax
call dword [sym.imp.VzSatData.dll_public:_static_void___cdecl_CFltRect::Rect2Rect_class_CFltRect_const___class_CFltRect___double_const__]
add esp, 0x24
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
push 0
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov dword [ecx + 4], edi
mov dword [ecx + 8], esi
mov esi, dword [sym.imp.VzSatData.dll_public:_bool___thiscall_CSubModelData::IsModelInRect_class_CFltRect__int_]
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x264]
call esi
test al, al
je 0x40b38a
mov edx, dword [esp + 0x50]
push 2
mov eax, dword [esp + 0x58]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x70]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x264]
call esi
test al, al
je 0x40b38a
sub esp, 0x750
mov ecx, 0x10
mov eax, esp
lea esi, [esp + 0x9a8]
mov dword [esp + 0x80c], esp
lea edi, [eax + 8]
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x48]
mov ecx, 0x80
lea esi, [esp + 0x9e8]
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x248]
mov ecx, 0x80
lea esi, [esp + 0xbe8]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0xde8]
lea ecx, [eax + 0x448]
lea edi, [eax + 0x468]
lea esi, [esp + 0xe08]
mov dword [ecx], edx
mov edx, dword [esp + 0xdec]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xdf0]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xdf4]
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0xdf8]
lea ecx, [eax + 0x458]
mov dword [eax + 0x458], edx
mov edx, dword [esp + 0xdfc]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xe00]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xe04]
mov dword [ecx + 0xc], edx
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x488]
mov ecx, 8
lea esi, [esp + 0xe28]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xe48]
lea edi, [eax + 0x4b0]
mov dword [eax + 0x4a8], ecx
mov edx, dword [esp + 0xe4c]
mov ecx, 0xc
lea esi, [esp + 0xe50]
mov dword [eax + 0x4ac], edx
rep movsd dword es:[edi], dword [esi]
mov cl, byte [esp + 0xe80]
lea edi, [eax + 0x4eb]
mov byte [eax + 0x4e0], cl
mov edx, dword [esp + 0xe84]
mov dword [eax + 0x4e4], edx
mov cx, word [esp + 0xe88]
mov word [eax + 0x4e8], cx
mov dl, byte [esp + 0xe8a]
mov ecx, 0x80
lea esi, [esp + 0xe8b]
mov byte [eax + 0x4ea], dl
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x108c]
lea ecx, [eax + 0x6ec]
lea edi, [eax + 0x6fc]
lea esi, [esp + 0x109c]
mov dword [ecx], edx
mov edx, dword [esp + 0x1090]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x1094]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x1098]
mov dword [ecx + 0xc], edx
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x720]
mov ecx, 0xc
lea esi, [esp + 0x10c0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [sym.imp.VzSatData.dll_const_CSubModelData::vftable]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7b0]
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CVzSatStrip::AddSubModel_class_CSubModelData_]
inc dword [esp + 0x1c]
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], eax
jne 0x40adf7
mov eax, dword [esp + 0x14]
fld qword [esp + 0x94]
dec eax
mov dword [esp + 0x14], eax
jne 0x40ad7b
lea ecx, [esp + 0x9a0]
mov byte [esp + 0xbc0], 0
fstp st(0)
call dword [sym.imp.SpGeoCvt.dll_public_virtual:_void___thiscall_CSpGeoCvt::destructor_void_]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xbb8]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld dword [esp + 0x40]
fadd qword [ebp + 0x20]
fsub qword [0x442578]
call sub.MSVCRT.dll__ftol
fld qword [ebp + 0x20]
mov esi, eax
call sub.MSVCRT.dll__ftol
mov ecx, eax
mov eax, esi
cdq
fld dword [esp + 0x48]
idiv ecx
fadd qword [ebp + 0x28]
fsub qword [0x442578]
mov esi, eax
mov dword [esp + 0x20], esi
call sub.MSVCRT.dll__ftol
fld qword [ebp + 0x28]
mov edi, eax
call sub.MSVCRT.dll__ftol
mov ecx, eax
mov eax, edi
cdq
idiv ecx
mov dword [esp + 0x18], 0
mov ecx, eax
test ecx, ecx
mov dword [esp + 0x14], ecx
jle 0x40b905
fild dword [esp + 0x18]
fmul qword [ebp + 0x28]
fadd qword [ebp + 0x18]
fst dword [esp + 0x88]
fadd qword [ebp + 0x28]
fst dword [esp + 0x8c]
fcomp dword [esp + 0x48]
fnstsw ax
test ah, 0x41
jne 0x40b488
mov edx, dword [esp + 0x48]
mov dword [esp + 0x8c], edx
test esi, esi
mov dword [esp + 0xc], 0
jle 0x40b8f4
fild dword [esp + 0xc]
fmul qword [ebp + 0x20]
fadd qword [ebp + 0x10]
fst dword [esp + 0x80]
fadd qword [ebp + 0x20]
fst dword [esp + 0x84]
fcomp dword [esp + 0x40]
fnstsw ax
test ah, 0x41
jne 0x40b4c9
mov eax, dword [esp + 0x40]
mov dword [esp + 0x84], eax
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x30]
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CFltRect::operator_class_CFltRect_const__]
fld dword [esp + 0x30]
fsub dword [esp + 0x2c]
fcomp dword [0x442560]
fnstsw ax
test ah, 1
jne 0x40b8df
fld dword [esp + 0x38]
fsub dword [esp + 0x34]
fcomp dword [0x442560]
fnstsw ax
test ah, 1
jne 0x40b8df
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x17c]
push edx
mov edx, dword [esp + 0x58]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x6c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x70]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.VzSatData.dll_public:_static_int___cdecl_CFltRect::IntersectRect_class_CFltRect___class_CFltRect__double_const__]
add esp, 0x18
test eax, eax
je 0x40b8df
lea ecx, [esp + 0x250]
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CSubModelData::Reset_void_]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov edx, ecx
mov dword [esp + 0x6d0], ecx
mov dword [esp + 0x6b8], edx
mov edx, dword [esp + 0x34]
mov ecx, eax
mov dword [esp + 0x6c8], eax
mov dword [esp + 0x6c0], ecx
mov ecx, dword [esp + 0x38]
mov eax, edx
mov dword [esp + 0x6c4], edx
mov dword [esp + 0x6bc], eax
mov eax, dword [ebp + 0x3c]
mov dword [esp + 0x6d4], ecx
mov edx, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x6cc], edx
lea edx, [ecx + eax + 1]
mov eax, dword [ebp + 0x38]
push edx
lea ecx, [esp + 0x25c]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edi, [ebx + 0x108]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
fld dword [ebp + 0x30]
fadd dword [0x442554]
not ecx
sub edi, ecx
lea edx, [esp + 0x298]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x498]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x4c]
lea edi, [ecx + 0x108]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0xc
lea esi, [esp + 0xdc]
lea edi, [esp + 0x700]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x90]
mov word [esp + 0x738], si
call sub.MSVCRT.dll__ftol
fld dword [ebp + 0x34]
fadd dword [0x442554]
mov dword [esp + 0x6f8], eax
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x70]
push 2
push 0
test esi, esi
mov dword [esp + 0x704], eax
push ecx
push edx
setne al
push eax
lea ecx, [esp + 0x264]
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CSubModelData::AutoCalcCorner_bool__float__float__bool__int_]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x54]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x58]
mov dword [ecx + 8], edx
mov edx, dword [ebp + 0x30]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp + 0x34]
push ecx
push edx
lea ecx, [esp + 0x44]
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CFltRect::Expand_float__float__class_CFltRect_]
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x17c]
push eax
mov eax, dword [esp + 0x58]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x70]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x40]
push ecx
call dword [sym.imp.VzSatData.dll_public:_static_int___cdecl_CFltRect::IntersectRect_class_CFltRect___class_CFltRect__double_const__]
add esp, 0x18
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x698]
push edx
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CFltRect::operator_class_CFltRect_const__]
lea eax, [esp + 0x17c]
lea ecx, [esp + 0x6a8]
push eax
lea edx, [esp + 0x30]
push ecx
push edx
call dword [sym.imp.VzSatData.dll_public:_static_void___cdecl_CFltRect::Rect2Rect_class_CFltRect_const___class_CFltRect___double_const__]
sub esp, 0x744
mov ecx, 0x10
mov eax, esp
lea esi, [esp + 0x9a8]
mov dword [esp + 0x80c], esp
lea edi, [eax + 8]
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x48]
mov ecx, 0x80
lea esi, [esp + 0x9e8]
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x248]
mov ecx, 0x80
lea esi, [esp + 0xbe8]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0xde8]
lea ecx, [eax + 0x448]
lea edi, [eax + 0x468]
mov dword [ecx], edx
mov edx, dword [esp + 0xdec]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xdf0]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xdf4]
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0xdf8]
lea ecx, [eax + 0x458]
mov dword [eax + 0x458], edx
mov edx, dword [esp + 0xdfc]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xe00]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xe04]
mov dword [ecx + 0xc], edx
mov ecx, 8
lea esi, [esp + 0xe08]
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x488]
mov ecx, 8
lea esi, [esp + 0xe28]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xe48]
lea edi, [eax + 0x4b0]
mov dword [eax + 0x4a8], ecx
mov edx, dword [esp + 0xe4c]
mov ecx, 0xc
lea esi, [esp + 0xe50]
mov dword [eax + 0x4ac], edx
rep movsd dword es:[edi], dword [esi]
mov cl, byte [esp + 0xe80]
lea edi, [eax + 0x4eb]
mov byte [eax + 0x4e0], cl
mov edx, dword [esp + 0xe84]
mov dword [eax + 0x4e4], edx
mov cx, word [esp + 0xe88]
mov word [eax + 0x4e8], cx
mov dl, byte [esp + 0xe8a]
mov ecx, 0x80
lea esi, [esp + 0xe8b]
mov byte [eax + 0x4ea], dl
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x108c]
lea ecx, [eax + 0x6ec]
lea edi, [eax + 0x6fc]
lea esi, [esp + 0x109c]
mov dword [ecx], edx
mov edx, dword [esp + 0x1090]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x1094]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x1098]
mov dword [ecx + 0xc], edx
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x720]
mov ecx, 0xc
lea esi, [esp + 0x10c0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [sym.imp.VzSatData.dll_const_CSubModelData::vftable]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7b0]
call dword [sym.imp.VzSatData.dll_public:_void___thiscall_CVzSatStrip::AddSubModel_class_CSubModelData_]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
inc eax
cmp eax, esi
mov dword [esp + 0xc], eax
jl 0x40b498
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jl 0x40b457
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xbb8]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
sub eax, ecx
mov ecx, esi
push eax
call dword [sym.imp.VzSatData.dll_public:_class_CVzSatTLA____thiscall_CVzSatPro::GetTLA_int_]
test eax, eax
jne 0x40b942
mov ecx, dword [esp + 0xbb8]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x864]
mov edx, dword [esi + 0x860]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0x40]
push ecx
mov ecx, dword [ebp + 0x38]
push ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x6c], edx
push ecx
mov ecx, dword [esp + 0x70]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x34]
push ecx
mov ecx, dword [ebp + 0x30]
push ecx
mov ecx, dword [ebp + 0x2c]
push ecx
mov ecx, dword [ebp + 0x28]
push ecx
mov ecx, dword [ebp + 0x24]
push ecx
mov ecx, dword [ebp + 0x20]
push ecx
mov ecx, dword [ebp + 0x1c]
push ecx
mov ecx, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 0x14]
push ecx
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, eax
call dword [edx + 0x18]
mov ecx, dword [esp + 0xbb8]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret