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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x5ef39a
mov eax, dword fs:[0]
push eax
sub esp, 0x2e8
push ebx
push esi
push edi
mov eax, dword [0x615cbc]
xor eax, esp
push eax
lea eax, [esp + 0x2f8]
mov dword fs:[0], eax
mov dword [esp + 0x20], ecx
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x4c], eax
or dword [ecx + 8], 0x8000001
mov esi, dword [ebx + 0x3dc]
mov edx, dword [ebx + 0x41c]
mov ecx, esi
shl ecx, 4
sub ecx, esi
cmp esi, eax
mov edi, dword [edx + ecx*4]
jl 0x465264
lea eax, [esi + esi + 1]
lea ecx, [esp + 0x27c]
mov dword [esp + 0x58], eax
call fcn.004e3630
xorps xmm0, xmm0
push 0xffffffffffffffff
lea ecx, [esp + 0x268]
push ecx
lea edx, [esp + 0x284]
push edx
mov ecx, ebx
movsd qword [esp + 0x280], xmm0
movsd qword [esp + 0x278], xmm0
movsd qword [esp + 0x270], xmm0
call fcn.005331d0
cmp edi, eax
je 0x465349
cmp byte [ebx + 0x383], 0
jne 0x46531a
test esi, esi
jge 0x4652c4
xor esi, esi
jmp 0x4652c8
lea esi, [esi + esi + 1]
push str.Invalid_File_Parameter_Data___
lea ecx, [ebx + 0x2e8]
call fcn.0042f6f0
mov edi, eax
cmp byte [edi + 0x9c], 0
je 0x4652ed
push esi
lea ecx, [edi + 0x10]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push 0x5fcfd8
mov ecx, edi
call fcn.0042f6f0
cmp byte [eax + 0x9c], 0
je 0x46531a
lea ecx, [eax + 8]
test ecx, ecx
je 0x46530e
add eax, 0x10
jmp 0x465310
xor eax, eax
push eax
call dword [sym.imp.MSVCP90.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
add esp, 4
lea edx, [esp + 0x264]
push edx
lea eax, [esp + 0x280]
push eax
mov ecx, ebx
call fcn.00532f60
mov ecx, dword [esp + 0x2f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor esi, esi
push 5
lea ecx, [esp + 0xc0]
mov dword [esp + 0xc8], esi
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc4], 5
call fcn.004587b0
push 5
lea ecx, [esp + 0xb0]
mov dword [esp + 0x304], esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], 5
call fcn.004587b0
mov eax, 1
mov byte [esp + 0x300], al
cmp edi, 0x8e
jne 0x465450
lea ecx, [esp + 0x1e8]
push ecx
mov ecx, dword [ebx + 0x144]
mov dword [esp + 0x6c], eax
mov esi, eax
call fcn.00532920
mov ecx, dword [ebx + 0x144]
lea edx, [esp + 0x180]
push edx
call fcn.00532920
cmp dword [esp + 0x180], 0
je 0x468144
mov ecx, dword [ebx + 0x144]
lea eax, [esp + 0x17c]
push eax
call fcn.00532920
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0xbc]
lea eax, [esp + 0xb8]
mov dword [edx], ecx
mov ecx, dword [ebx + 0x144]
push eax
call fcn.00532920
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xac]
lea eax, [esp + 0x1e4]
mov dword [edx], ecx
mov ecx, dword [ebx + 0x144]
push eax
call fcn.00532920
jmp 0x4655d1
cmp edi, 0x8d
jne 0x4655b3
lea ecx, [esp + 0x1e8]
push ecx
mov ecx, dword [ebx + 0x144]
call fcn.00532920
mov ecx, dword [ebx + 0x144]
lea edx, [esp + 0x1e4]
push edx
call fcn.00532920
mov ecx, dword [ebx + 0x144]
lea eax, [esp + 0x180]
push eax
call fcn.00532920
cmp dword [esp + 0x180], esi
je 0x466346
lea ecx, [esp + 0x68]
push ecx
mov ecx, dword [ebx + 0x144]
call fcn.00532920
mov edx, dword [esp + 0x68]
push edx
lea ecx, [esp + 0xc0]
call fcn.004587b0
mov eax, dword [esp + 0x68]
push eax
lea ecx, [esp + 0xb0]
call fcn.004587b0
cmp dword [esp + 0x68], 0
mov dword [esp + 0x48], 0
jle 0x4655d1
jmp 0x4654f0
mov edi, dword [ebp + 8]
lea ecx, [esp + 0xb8]
push ecx
mov ecx, dword [edi + 0x144]
call fcn.00532920
mov ecx, dword [edi + 0x144]
lea edx, [esp + 0x54]
push edx
call fcn.00532920
cmp dword [esp + 0x54], 2
mov eax, dword [esp + 0xb8]
jne 0x46552d
neg eax
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x48]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x144]
lea eax, [esp + 0x44]
push eax
call fcn.00532920
xor edi, edi
cmp dword [esp + 0x44], edi
jle 0x46559b
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x17c]
push ecx
mov ecx, dword [edx + 0x144]
call fcn.00532920
cmp esi, dword [esp + 0xc4]
mov ebx, dword [esp + 0x17c]
jl 0x465589
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0xc0]
call fcn.004587b0
mov ecx, dword [esp + 0xbc]
mov dword [ecx + esi*4], ebx
inc edi
inc esi
cmp edi, dword [esp + 0x44]
jl 0x465553
mov eax, dword [esp + 0x48]
inc eax
cmp eax, dword [esp + 0x68]
mov dword [esp + 0x48], eax
jl 0x4654f0
mov ebx, dword [ebp + 8]
jmp 0x4655d1
push eax
lea ecx, [esp + 0xb0]
mov dword [esp + 0x6c], eax
call fcn.004587b0
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0x58]
mov dword [edx], eax
lea ecx, [esp + 0x264]
push ecx
lea edx, [esp + 0x280]
push edx
mov ecx, ebx
call fcn.00532f60
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x1c]
call fcn.00425000
mov edi, dword [eax + 0x30]
mov ecx, dword [esp + 0x20]
cmp dword [0x6189c0], 0
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax + 0x20]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 8]
setne byte [esp + 0x18]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], 0
mov byte [esp + 0x19], 0
test eax, 0x400
je 0x465637
mov byte [esp + 0x18], 0
jmp 0x465643
test eax, 0x800
je 0x465648
mov byte [esp + 0x18], 1
mov byte [esp + 0x19], 1
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x68]
push 0
push eax
push ecx
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0xb8]
push edx
push ebx
mov byte [esp + 0x3e], 0
call fcn.0045de10
mov dword [esp + 0x30], eax
test edi, edi
je 0x465678
mov edi, dword [edi + 0x5c]
jmp 0x46567f
mov eax, dword [esp + 0x34]
mov edi, dword [eax + 0x2c]
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x30]
push eax
push edi
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x28]
mov ecx, edi
mov dword [esp + 0x40], eax
call fcn.0045a970
fstp qword [esp + 0x5c]
push esi
lea edx, [esp + 0xc0]
push edx
push ebx
mov ecx, edi
call fcn.0045cd10
movsd xmm0, qword [esp + 0x5c]
mov esi, eax
mov dword [esp + 0x54], esi
test esi, esi
jle 0x4656df
mov ecx, edi
call fcn.00435b70
fstp qword [esp + 0x84]
movsd xmm1, qword [esp + 0x84]
movsd xmm0, qword [esp + 0x5c]
jmp 0x4656f4
movapd xmm1, xmm0
addsd xmm1, qword [0x5fa8b8]
movsd qword [esp + 0x84], xmm1
movsd xmm3, qword [0x5fcad8]
comisd xmm3, xmm1
mov byte [esp + 0x1b], 1
ja 0x46570c
mov byte [esp + 0x1b], 0
movsd xmm2, qword [0x5fc898]
comisd xmm2, xmm0
mov byte [esp + 0x3f], 1
ja 0x465724
mov byte [esp + 0x3f], 0
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
cmp eax, 0x38
jne 0x465734
movapd xmm3, xmm2
movsd xmm2, qword [0x5fc878]
movapd xmm4, xmm0
divsd xmm4, xmm2
comisd xmm4, xmm1
jbe 0x465755
comisd xmm0, xmm3
jbe 0x465755
mov byte [esp + 0x18], 0
xor bl, bl
cmp byte [esp + 0x19], bl
je 0x465765
test esi, esi
jne 0x46586d
cmp dword [esp + 0x30], 0
jle 0x46586d
cmp byte [esp + 0x18], 0
je 0x46586d
cmp byte [esp + 0x3f], 0
je 0x46586d
mov edi, dword [esp + 0x1c]
mov edx, dword [edi]
mov eax, dword [edx + 0x28]
mov ecx, edi
call eax
mov esi, eax
mov eax, dword [edi + 0xc]
add eax, 0xffffffc9
cmp eax, 4
ja case.0x4657a0.58
jmp dword [eax*4 + 0x468184]
push 1
mov ecx, edi
call fcn.004e5d10
mov bl, al
jmp case.0x4657a0.58
mov ecx, edi
call fcn.00572450
mov bl, al
jmp case.0x4657a0.58
mov ecx, edi
call fcn.00572450
mov bl, al
jmp case.0x4657a0.58
fld qword [0x5fa918]
sub esp, 8
fstp qword [esp]
push 1
mov ecx, edi
call fcn.0048f1e0
fld qword [0x5fa918]
sub esp, 8
fstp qword [esp]
push 0
mov ecx, edi
mov bl, al
call fcn.0048f1e0
or bl, al
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x24]
push edx
call fcn.0045a2a0
fld qword [0x5fb9c8]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x465841
mov eax, dword [esp + 0x20]
mov edx, dword [edi]
mov ebx, dword [eax + 0x1c]
mov eax, dword [edx]
push 1
mov ecx, edi
call eax
push esi
mov ecx, ebx
call fcn.00425010
mov edi, esi
mov dword [esp + 0x1c], edi
mov byte [esp + 0x18], 0
xor bl, bl
jmp 0x46584f
test esi, esi
je 0x46584f
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
movsd xmm1, qword [esp + 0x84]
movsd xmm0, qword [esp + 0x5c]
movsd xmm2, qword [0x5fc878]
mov byte [esp + 0x2a], 1
jmp 0x465871
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x46588a
comisd xmm0, xmmword [0x5fc898]
ja 0x46588a
cmp byte [esp + 0x18], 0
jne 0x465894
mov esi, dword [esp + 0x54]
mov dword [esp + 0x24], esi
jmp 0x465898
mov esi, dword [esp + 0x24]
test eax, eax
jne 0x4658a4
test esi, esi
je 0x468144
cmp byte [esp + 0x19], 0
jne 0x465a3a
cmp dword [esp + 0x30], 0
jne 0x4658c0
mov byte [esp + 0x18], 0
jmp 0x465a25
test esi, esi
jne 0x465906
cmp byte [esp + 0x2a], 0
mov byte [esp + 0x18], 1
jne 0x465a25
mov eax, dword [edi + 0xc]
add eax, 0xffffffc9
cmp eax, 4
ja case.0x4659c8.58
jmp dword [eax*4 + 0x468198]
mov ecx, edi
call fcn.00572450
mov bl, al
jmp case.0x4659c8.58
mov ecx, edi
call fcn.00572450
mov bl, al
jmp case.0x4659c8.58
movsd xmm3, qword [0x5fcad8]
comisd xmm0, xmm3
jbe 0x465943
comisd xmm1, xmm3
jbe 0x4658b6
movapd xmm3, xmm1
mulsd xmm3, xmm2
comisd xmm0, xmm3
jbe 0x465932
mov byte [esp + 0x18], 0
jmp 0x465a25
mulsd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x4659af
mov byte [esp + 0x18], 1
jmp 0x4659b6
comisd xmm1, xmm3
jbe 0x46597c
cmp dword [0x6189c0], 0
jne 0x46593c
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x24]
push edx
call fcn.0045a2a0
fld qword [0x5fb9c8]
fcompi st(1)
fstp st(0)
jbe 0x4658b6
mov byte [esp + 0x18], 1
jmp 0x4659b6
cmp byte [esp + 0x18], 0
je 0x465a25
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
push eax
push ecx
mov ecx, dword [esp + 0x28]
call fcn.0045a2a0
fld qword [0x5fb9c8]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4659af
mov byte [esp + 0x18], 0
jmp 0x465a25
cmp byte [esp + 0x18], 0
je 0x465a25
cmp byte [esp + 0x2a], 0
jne 0x465a25
mov eax, dword [edi + 0xc]
add eax, 0xffffffc9
cmp eax, 4
ja case.0x4659c8.58
jmp dword [eax*4 + 0x4681ac]
push 1
mov ecx, edi
call fcn.004e5d10
mov bl, al
jmp case.0x4659c8.58
mov ecx, edi
call fcn.00572450
mov bl, al
jmp case.0x4659c8.58
mov ecx, edi
call fcn.00572450
mov bl, al
jmp case.0x4659c8.58
fld qword [0x5fa918]
sub esp, 8
fstp qword [esp]
push 1
mov ecx, edi
call fcn.0048f1e0
fld qword [0x5fa918]
sub esp, 8
fstp qword [esp]
push 0
mov ecx, edi
or bl, al
call fcn.0048f1e0
or bl, al
mov byte [esp + 0x2a], 1
test bl, bl
jne 0x465a5a
cmp byte [esp + 0x18], bl
jne 0x465a3a
mov eax, dword [esp + 0x44]
or dword [eax + 8], 0x400
mov al, byte [edi + 0x1a]
test al, al
jne 0x465a4a
mov byte [esp + 0x2b], al
cmp byte [edi + 0x18], al
je 0x465a4f
mov byte [esp + 0x2b], 1
test al, al
je 0x465a6e
movsd xmm0, qword [edi + 0x70]
jmp 0x465a73
cmp byte [esp + 0x18], 0
je 0x465a2f
mov eax, dword [esp + 0x44]
or dword [eax + 8], 0x800
jmp 0x465a3a
movsd xmm0, qword [edi + 0x38]
mov al, byte [edi + 0x1b]
movapd xmm1, xmm0
movsd qword [esp + 0x5c], xmm1
test al, al
jne 0x465a8d
cmp byte [edi + 0x19], al
jne 0x465a8d
xor cl, cl
jmp 0x465a8f
mov cl, 1
mov byte [esp + 0x19], cl
test al, al
je 0x465a9e
movsd xmm0, qword [edi + 0x78]
jmp 0x465aa3
movsd xmm0, qword [edi + 0x48]
cmp byte [esp + 0x2b], 0
movsd xmm2, qword [0x5fc898]
movsd qword [esp + 0x1ec], xmm0
je 0x465aca
mulsd xmm1, xmm2
movsd qword [esp + 0xcc], xmm1
jmp 0x465ad3
movsd qword [esp + 0xcc], xmm2
test cl, cl
je 0x465ae6
mulsd xmm0, xmm2
movsd qword [esp + 0x11c], xmm0
jmp 0x465aef
movsd qword [esp + 0x11c], xmm2
cmp dword [esp + 0x30], 1
jne 0x465b18
cmp esi, 1
jne 0x465b18
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x20]
test eax, eax
je 0x465b18
mov ecx, dword [eax + 0x20]
call fcn.004d9b60
test al, al
jne 0x465b18
xor esi, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x64], 0
test esi, esi
jle 0x4662f0
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 0x44]
mov dword [esp + 0x50], edi
mov dword [esp + 0x40], eax
lea ecx, [ecx]
mov esi, dword [edi + 0x20]
mov ecx, dword [edi + 0x44]
fld qword [esi + 0x10]
mov edx, dword [esi]
mov edx, dword [edx + 0x4c]
sub esp, 8
lea eax, [esp + 0xf4]
fstp qword [esp]
mov dword [esp + 0xd0], ecx
push eax
mov ecx, esi
call edx
fld qword [esi + 0x18]
mov eax, dword [esi]
mov edx, dword [eax + 0x4c]
sub esp, 8
lea ecx, [esp + 0x134]
fstp qword [esp]
push ecx
mov ecx, esi
call edx
fld qword [0x5fa920]
sub esp, 8
mov ecx, edi
fstp qword [esp]
call fcn.00436e80
sub esp, 8
test al, al
je 0x465c5a
fldz
lea eax, [esp + 0xf4]
fstp qword [esp]
lea ecx, [esp + 0x104]
push eax
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.0046a050
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x300], 2
test eax, eax
je 0x465bea
lea edx, [esp + 0xfc]
push edx
mov ecx, eax
call fcn.0043cf90
mov esi, eax
jmp 0x465bec
xor esi, esi
mov edi, dword [esp + 0x34]
push esi
mov ecx, edi
mov byte [esp + 0x304], 1
call fcn.0042f080
push 0x60
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x300], 3
test eax, eax
je 0x465c29
push 0
push esi
push esi
mov ecx, eax
call fcn.00445ee0
mov esi, eax
jmp 0x465c2b
xor esi, esi
or dword [esi + 8], 3
mov ebx, 1
add dword [esi + 4], ebx
push esi
mov ecx, edi
mov byte [esp + 0x304], 1
call fcn.0042eff0
mov ecx, dword [esp + 0x50]
push esi
call fcn.00437290
add dword [esp + 0x64], ebx
jmp 0x466296
mov eax, dword [ebp + 8]
movsd xmm0, qword [eax + 0x218]
mulsd xmm0, qword [0x5fb9c8]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x24]
movsd qword [esp], xmm0
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push ebx
push esi
call fcn.0045a1e0
mov edi, eax
test edi, edi
jne 0x465e5f
cmp byte [esp + 0x18], al
je 0x465cb6
cmp byte [esp + 0x1b], al
jne 0x465cb6
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
dec dword [esp + 0x24]
jmp 0x46629a
fld qword [0x5fdfa8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x98]
sub esp, 8
fstp qword [esp]
push esi
mov ecx, ebx
call edx
fldz
sub esp, 8
fstp qword [esp]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0xf4]
push eax
lea ecx, [esp + 0x1d8]
push ecx
mov ecx, ebx
call fcn.0046a050
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x300], 4
test eax, eax
je 0x465d1f
lea edx, [esp + 0x1cc]
push edx
mov ecx, eax
call fcn.0043cf90
mov edi, eax
jmp 0x465d21
xor edi, edi
mov ecx, dword [esp + 0x34]
push edi
mov byte [esp + 0x304], 1
call fcn.0042f080
fldz
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x220]
push ecx
mov ecx, ebx
mov esi, edi
call fcn.0046a050
movsd xmm0, qword [esp + 0x1cc]
subsd xmm0, qword [esp + 0x214]
movsd qword [esp + 0xfc], xmm0
movsd xmm0, qword [esp + 0x1d4]
subsd xmm0, qword [esp + 0x21c]
movsd qword [esp + 0x104], xmm0
movsd xmm0, qword [esp + 0x1dc]
subsd xmm0, qword [esp + 0x224]
lea ecx, [esp + 0xfc]
movsd qword [esp + 0x10c], xmm0
call fcn.004a88b0
mov edx, dword [ebp + 8]
fld qword [edx + 0x218]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x465e03
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x300], 5
test eax, eax
je 0x465ded
lea ecx, [esp + 0x214]
push ecx
mov ecx, eax
call fcn.0043cf90
jmp 0x465def
xor eax, eax
mov ecx, dword [esp + 0x34]
push eax
mov byte [esp + 0x304], 1
mov esi, eax
call fcn.0042f080
push 0x60
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x300], 6
test eax, eax
je 0x465e2c
push 0
push esi
push edi
mov ecx, eax
call fcn.00445ee0
mov esi, eax
jmp 0x465e2e
xor esi, esi
mov edx, dword [esp + 0x54]
or dword [esi + 8], 3
push edx
mov ecx, esi
mov byte [esp + 0x304], 1
call fcn.004440c0
mov ecx, dword [esp + 0x34]
push esi
call fcn.0042eff0
mov ecx, dword [esp + 0x50]
push esi
call fcn.00437290
jmp 0x46629a
mov ebx, dword [edi + 0x24]
fld qword [ebx + 0x10]
mov eax, dword [ebx]
sub esp, 8
cmp byte [ebx + 0x38], 0
fstp qword [esp]
je 0x465fef
movsd xmm0, qword [esi + 0x10]
mov edx, dword [eax + 0x6c]
lea ecx, [esp + 0x1d4]
movsd qword [esp + 0x12c], xmm0
xorps xmm0, xmm0
push ecx
mov ecx, ebx
movsd qword [esp + 0x88], xmm0
movsd qword [esp + 0x80], xmm0
movsd qword [esp + 0x78], xmm0
call edx
lea ecx, [esp + 0x1cc]
call fcn.004a8b50
fstp st(0)
xorps xmm0, xmm0
mov eax, dword [esi]
lea ecx, [esp + 0x124]
push ecx
lea edx, [esp + 0x160]
push edx
mov edx, dword [eax + 0x5c]
lea ecx, [esp + 0x174]
push ecx
mov ecx, esi
movsd qword [esp + 0x170], xmm0
movsd qword [esp + 0x168], xmm0
movsd qword [esp + 0x180], xmm0
movsd qword [esp + 0x178], xmm0
call edx
lea ecx, [esp + 0x15c]
call fcn.004a7bc0
fstp st(0)
lea eax, [esp + 0x16c]
push eax
lea ecx, [esp + 0x160]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x74]
push edx
call fcn.0046a4e0
movsd xmm0, qword [esp + 0x1cc]
mulsd xmm0, qword [esp + 0x6c]
movsd xmm1, qword [esp + 0x1d4]
mulsd xmm1, qword [esp + 0x74]
addsd xmm0, xmm1
movsd xmm1, qword [esp + 0x1dc]
mulsd xmm1, qword [esp + 0x7c]
addsd xmm0, xmm1
comisd xmm0, xmmword [0x5fa830]
mov byte [esp + 0x1a], 1
ja 0x465f7a
mov byte [esp + 0x1a], 0
fldz
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0xf4]
push eax
lea ecx, [esp + 0x108]
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.0046a050
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x300], 7
test eax, eax
je 0x465fc8
lea edx, [esp + 0xfc]
push edx
mov ecx, eax
call fcn.0043cf90
mov esi, eax
jmp 0x465fca
xor esi, esi
mov ecx, dword [esp + 0x34]
push esi
mov byte [esp + 0x304], 1
mov dword [esp + 0x94], esi
mov dword [esp + 0x48], esi
call fcn.0042f080
mov dword [edi + 0x20], esi
jmp 0x466264
xorps xmm0, xmm0
mov edx, dword [eax + 0x68]
lea ecx, [esp + 0x23c]
push ecx
mov ecx, ebx
movsd qword [esp + 0x88], xmm0
movsd qword [esp + 0x80], xmm0
movsd qword [esp + 0x78], xmm0
movsd qword [esp + 0xb0], xmm0
movsd qword [esp + 0xa8], xmm0
movsd qword [esp + 0xa0], xmm0
call edx
fld qword [ebx + 0x18]
movq xmm0, qword [eax]
movq qword [esp + 0x6c], xmm0
movq xmm0, qword [eax + 8]
sub esp, 8
movq qword [esp + 0x7c], xmm0
fstp qword [esp]
movq xmm0, qword [eax + 0x10]
mov eax, dword [ebx]
mov edx, dword [eax + 0x68]
lea ecx, [esp + 0x23c]
push ecx
mov ecx, ebx
movq qword [esp + 0x88], xmm0
call edx
fldz
movq xmm0, qword [eax]
movq qword [esp + 0x94], xmm0
movq xmm0, qword [eax + 8]
sub esp, 8
movq qword [esp + 0xa4], xmm0
fstp qword [esp]
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0xf4]
push eax
lea ecx, [esp + 0x240]
push ecx
mov ecx, dword [esp + 0x2c]
movq qword [esp + 0xb4], xmm0
call fcn.0046a050
movq xmm0, qword [eax]
movsd xmm3, qword [esp + 0x6c]
movq xmm1, qword [eax + 8]
movq xmm2, qword [eax + 0x10]
subsd xmm3, xmm0
movsd qword [esp + 0x194], xmm0
movsd xmm0, qword [esp + 0x74]
subsd xmm0, xmm1
movsd qword [esp + 0x104], xmm0
movsd xmm0, qword [esp + 0x7c]
subsd xmm0, xmm2
lea ecx, [esp + 0xfc]
movsd qword [esp + 0x19c], xmm1
movsd qword [esp + 0x1a4], xmm2
movsd qword [esp + 0xfc], xmm3
movsd qword [esp + 0x10c], xmm0
call fcn.004a88b0
fstp qword [esp + 0x84]
movsd xmm0, qword [esp + 0x94]
subsd xmm0, qword [esp + 0x194]
movsd qword [esp + 0xfc], xmm0
movsd xmm0, qword [esp + 0x9c]
subsd xmm0, qword [esp + 0x19c]
movsd qword [esp + 0x104], xmm0
movsd xmm0, qword [esp + 0xa4]
subsd xmm0, qword [esp + 0x1a4]
lea ecx, [esp + 0xfc]
movsd qword [esp + 0x10c], xmm0
call fcn.004a88b0
fld qword [esp + 0x84]
fxch st(1)
mov byte [esp + 0x1a], 1
fcompi st(1)
fstp st(0)
ja 0x4661a6
mov byte [esp + 0x1a], 0
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x300], 8
test eax, eax
je 0x4661d0
lea edx, [esp + 0x6c]
push edx
mov ecx, eax
call fcn.0043cf90
mov esi, eax
jmp 0x4661d2
xor esi, esi
mov ecx, dword [esp + 0x34]
push esi
mov byte [esp + 0x304], 1
mov dword [esp + 0x94], esi
call fcn.0042f080
fldz
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x148]
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.0046a050
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0x300], 9
test eax, eax
je 0x46623b
lea edx, [esp + 0x94]
push edx
mov ecx, eax
call fcn.0043cf90
mov dword [esp + 0x2c], eax
jmp 0x466243
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
push eax
mov byte [esp + 0x304], 1
mov dword [esp + 0x48], eax
call fcn.0042f080
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x20], eax
cmp byte [esp + 0x1a], 0
mov dword [edi + 0x1c], esi
jne 0x466288
mov edx, dword [ebx]
mov eax, dword [edx + 0x50]
mov ecx, ebx
call eax
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x90]
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], edx
mov ecx, dword [esp + 0x50]
or dword [ecx + 8], 1
push edi
call fcn.00437290
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc8]
cmp eax, dword [esp + 0x40]
je 0x4662b2
mov dword [esp + 0x50], eax
mov edi, eax
jmp 0x465b40
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x30], esi
jle 0x466302
mov eax, esi
sub eax, dword [esp + 0x64]
test eax, eax
jle 0x4662f0
mov ecx, dword [esp + 0x20]
call fcn.00435b70
fstp qword [esp + 0x124]
cmp byte [esp + 0x18], 0
je 0x46631b
movsd xmm0, qword [0x5fc880]
comisd xmm0, xmmword [esp + 0x124]
ja 0x466302
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x30], esi
mov ebx, dword [esp + 0x1c]
jg 0x467020
cmp byte [esp + 0x18], 0
je 0x46631b
cmp byte [esp + 0x3f], 0
je 0x46631b
cmp byte [esp + 0x1b], 0
je 0x467020
test esi, esi
mov esi, dword [esp + 0x20]
je 0x46632a
and dword [esi + 8], 0xf7ffffff
cmp byte [esp + 0x1b], 0
jne 0x466376
cmp byte [esp + 0x2b], 0
jne 0x46633f
cmp byte [esp + 0x19], 0
je 0x466376
or dword [esi + 8], 0x1000000
lea ecx, [esp + 0xac]
call fcn.00428180
lea ecx, [esp + 0xbc]
call fcn.00428180
mov ecx, dword [esp + 0x2f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x30]
movsd xmm0, qword [esp + 0x11c]
movsd xmm1, qword [esp + 0xcc]
comisd xmm0, xmm1
mov dword [esp + 0x38], edx
jbe 0x46639d
movapd xmm0, xmm1
movsd xmm1, qword [0x5fcad8]
comisd xmm0, xmm1
movsd qword [esp + 0x84], xmm0
jbe 0x4663bd
movsd qword [esp + 0x84], xmm1
fld qword [0x5fa920]
mov eax, dword [esp + 0x58]
mov ecx, dword [ebp + 8]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [esp + 0x94]
fstp qword [esp]
push eax
push ecx
mov ecx, esi
call fcn.0045afc0
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x466346
xorps xmm0, xmm0
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 0x44]
mov dword [esp + 0x54], eax
movsd qword [esp + 0x1c4], xmm0
movsd qword [esp + 0x1bc], xmm0
movsd qword [esp + 0x1b4], xmm0
movsd qword [esp + 0x1ac], xmm0
movsd qword [esp + 0x20c], xmm0
movsd qword [esp + 0x204], xmm0
mov dword [esp + 0x50], 0
cmp ecx, eax
je 0x466fff
mov ebx, dword [esp + 0x30]
lea ebx, [ebx]
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x20]
fld qword [esi + 0x10]
mov edx, dword [esi]
mov edi, dword [eax + 0x1c]
mov edx, dword [edx + 0x4c]
sub esp, 8
test byte [eax + 8], 1
fstp qword [esp]
mov ecx, esi
je 0x4664d6
lea eax, [esp + 0x1fc]
push eax
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x1bc], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x1c4], xmm0
fld qword [esi + 0x18]
mov eax, dword [esi]
mov edx, dword [eax + 0x4c]
sub esp, 8
lea ecx, [esp + 0x25c]
fstp qword [esp]
push ecx
mov ecx, esi
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x1ac], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x1b4], xmm0
test edi, edi
je 0x466542
mov eax, dword [edi + 0x1c]
mov ebx, dword [edi + 0x20]
jmp 0x46653a
lea eax, [esp + 0x134]
push eax
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x1ac], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x1b4], xmm0
fld qword [esi + 0x18]
mov eax, dword [esi]
mov edx, dword [eax + 0x4c]
sub esp, 8
lea ecx, [esp + 0x18c]
fstp qword [esp]
push ecx
mov ecx, esi
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x1bc], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x1c4], xmm0
test edi, edi
je 0x466542
mov ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x20]
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x46656e
movq xmm0, qword [esp + 0x1bc]
movq qword [esp + 0x204], xmm0
movq xmm0, qword [esp + 0x1c4]
movq qword [esp + 0x20c], xmm0
test edi, edi
je 0x466587
test eax, eax
jne 0x466fe2
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x50], ecx
jmp 0x466fe2
mov edi, dword [ebp + 8]
fld qword [edi + 0x218]
mov ecx, dword [esp + 0x2c]
sub esp, 8
fstp qword [esp]
call fcn.00436e80
test al, al
je 0x46667f
mov edi, dword [esp + 0x50]
test edi, edi
jne 0x466613
fldz
mov ecx, dword [esp + 0x1c]
sub esp, 8
fstp qword [esp]
lea edx, [esp + 0x1c4]
push edx
lea eax, [esp + 0x240]
push eax
call fcn.0046a050
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0x1d
test eax, eax
je 0x4665fb
lea ecx, [esp + 0x234]
push ecx
mov ecx, eax
call fcn.0043cf90
jmp 0x4665fd
xor eax, eax
mov ecx, dword [esp + 0x34]
push eax
mov byte [esp + 0x304], 1
mov ebx, eax
call fcn.0042f080
jmp 0x466617
mov ebx, dword [esp + 0x24]
push 0x60
mov dword [esp + 0x34], ebx
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0x1e
test eax, eax
je 0x466644
push 0
push ebx
push ebx
mov ecx, eax
call fcn.00445ee0
mov esi, eax
jmp 0x466646
xor esi, esi
or dword [esi + 8], 3
mov byte [esp + 0x300], 1
mov dword [esp + 0x58], esi
test edi, edi
jne 0x46665e
mov dword [esp + 0x50], ebx
mov ecx, dword [esp + 0x34]
inc dword [esi + 4]
push esi
call fcn.0042eff0
cmp dword [esp + 0x38], 0
jne 0x466fd4
mov dword [esp + 0x38], esi
jmp 0x466fd4
movsd xmm0, qword [edi + 0x218]
mulsd xmm0, qword [0x5fb9c8]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
sub esp, 8
movsd qword [esp], xmm0
push edx
push eax
push ecx
mov ecx, dword [esp + 0x34]
push esi
mov byte [esp + 0x32], 0
call fcn.0045a1e0
mov dword [esp + 0x58], eax
test eax, eax
jne 0x46672c
mov ecx, dword [esp + 0x1c]
fld qword [0x5fdfa8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x98]
sub esp, 8
fstp qword [esp]
push esi
mov byte [esp + 0x26], 1
call eax
push 0x60
mov ebx, eax
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0x1f
test eax, eax
je 0x466704
mov ecx, eax
call fcn.00445e40
mov edi, eax
jmp 0x466706
xor edi, edi
or dword [edi + 8], 3
push ebx
mov ecx, edi
mov byte [esp + 0x304], 1
mov dword [esp + 0x5c], edi
call fcn.004440c0
mov ecx, dword [esp + 0x34]
push edi
call fcn.0042eff0
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
mov edi, dword [ecx + 0x24]
mov dword [esp + 0x40], edi
test edi, edi
jne 0x46675e
mov eax, dword [esp + 0x20]
or dword [eax + 8], 0x80
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx]
mov esi, dword [ecx + 0x44]
push 1
call eax
mov dword [esp + 0x2c], esi
jmp 0x466ff1
fld qword [edi + 0x10]
sub esp, 8
cmp byte [edi + 0x38], 0
fstp qword [esp]
je 0x466883
movsd xmm0, qword [esi + 0x10]
mov edx, dword [edi]
mov edx, dword [edx + 0x6c]
lea eax, [esp + 0x144]
movsd qword [esp + 0x12c], xmm0
xorps xmm0, xmm0
push eax
mov ecx, edi
movsd qword [esp + 0x230], xmm0
movsd qword [esp + 0x228], xmm0
movsd qword [esp + 0x220], xmm0
call edx
lea ecx, [esp + 0x13c]
call fcn.004a8b50
fstp st(0)
xorps xmm0, xmm0
mov eax, dword [esi]
lea ecx, [esp + 0x124]
push ecx
lea edx, [esp + 0x160]
push edx
mov edx, dword [eax + 0x5c]
lea ecx, [esp + 0xf4]
push ecx
mov ecx, esi
movsd qword [esp + 0x170], xmm0
movsd qword [esp + 0x168], xmm0
movsd qword [esp + 0x100], xmm0
movsd qword [esp + 0xf8], xmm0
call edx
lea ecx, [esp + 0x15c]
call fcn.004a7bc0
fstp st(0)
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x160]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x21c]
push edx
call fcn.0046a4e0
movsd xmm1, qword [esp + 0x144]
mulsd xmm1, qword [esp + 0x21c]
movsd xmm0, qword [esp + 0x13c]
mulsd xmm0, qword [esp + 0x214]
addsd xmm1, xmm0
movsd xmm0, qword [esp + 0x14c]
mulsd xmm0, qword [esp + 0x224]
addsd xmm1, xmm0
xorps xmm0, xmm0
comisd xmm1, xmm0
ja 0x466aa0
jmp 0x466a94
mov eax, dword [esp + 0x34]
test byte [eax + 8], 1
je 0x46690c
mov edx, dword [edi]
mov edx, dword [edx + 0x68]
lea eax, [esp + 0x144]
push eax
mov ecx, edi
call edx
fld qword [edi + 0x18]
movq xmm0, qword [eax]
movsd qword [esp + 0x94], xmm0
movq xmm0, qword [eax + 8]
sub esp, 8
movsd qword [esp + 0xa4], xmm0
fstp qword [esp]
movq xmm0, qword [eax + 0x10]
mov eax, dword [edi]
mov edx, dword [eax + 0x68]
lea ecx, [esp + 0x144]
push ecx
mov ecx, edi
movsd qword [esp + 0xb0], xmm0
call edx
movq xmm0, qword [eax]
movsd qword [esp + 0xd4], xmm0
movq xmm0, qword [eax + 8]
movsd qword [esp + 0xdc], xmm0
movq xmm0, qword [eax + 0x10]
movsd qword [esp + 0xe4], xmm0
jmp 0x466989
mov eax, dword [edi]
mov edx, dword [eax + 0x68]
lea ecx, [esp + 0x144]
push ecx
mov ecx, edi
call edx
fld qword [edi + 0x18]
movq xmm0, qword [eax]
movsd qword [esp + 0xd4], xmm0
movq xmm0, qword [eax + 8]
sub esp, 8
movsd qword [esp + 0xe4], xmm0
fstp qword [esp]
movq xmm0, qword [eax + 0x10]
mov eax, dword [edi]
mov edx, dword [eax + 0x68]
lea ecx, [esp + 0x144]
push ecx
mov ecx, edi
movsd qword [esp + 0xf0], xmm0
call edx
movq xmm0, qword [eax]
movsd qword [esp + 0x94], xmm0
movq xmm0, qword [eax + 8]
movsd qword [esp + 0x9c], xmm0
movq xmm0, qword [eax + 0x10]
movsd qword [esp + 0xa4], xmm0
fldz
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x1c4]
push eax
lea ecx, [esp + 0x148]
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.0046a050
movq xmm1, qword [eax]
movq xmm2, qword [eax + 8]
movq xmm3, qword [eax + 0x10]
movsd xmm0, qword [esp + 0x94]
subsd xmm0, xmm1
movsd qword [esp + 0x13c], xmm0
movsd xmm0, qword [esp + 0x9c]
subsd xmm0, xmm2
movsd qword [esp + 0x144], xmm0
movsd xmm0, qword [esp + 0xa4]
subsd xmm0, xmm3
lea ecx, [esp + 0x13c]
movsd qword [esp + 0x1cc], xmm1
movsd qword [esp + 0x1d4], xmm2
movsd qword [esp + 0x1dc], xmm3
movsd qword [esp + 0x14c], xmm0
call fcn.004a88b0
fstp qword [esp + 0x11c]
movsd xmm0, qword [esp + 0xd4]
subsd xmm0, qword [esp + 0x1cc]
movsd qword [esp + 0x13c], xmm0
movsd xmm0, qword [esp + 0xdc]
subsd xmm0, qword [esp + 0x1d4]
movsd qword [esp + 0x144], xmm0
movsd xmm0, qword [esp + 0xe4]
subsd xmm0, qword [esp + 0x1dc]
lea ecx, [esp + 0x13c]
movsd qword [esp + 0x14c], xmm0
call fcn.004a88b0
fld qword [esp + 0x11c]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x466a9d
mov edx, dword [edi]
mov eax, dword [edx + 0x50]
mov ecx, edi
call eax
xorps xmm0, xmm0
mov ebx, dword [esp + 0x50]
test ebx, ebx
je 0x466d4e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
cmp edx, dword [ecx + 0x24]
jne 0x466d4e
movsd xmm0, qword [esp + 0x1ac]
subsd xmm0, qword [esp + 0x204]
movsd qword [esp + 0x16c], xmm0
movsd xmm0, qword [esp + 0x1b4]
subsd xmm0, qword [esp + 0x20c]
lea ecx, [esp + 0x16c]
movsd qword [esp + 0x174], xmm0
call fcn.004a7500
fld qword [0x5fc870]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x466f16
push 0x88
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov edi, eax
add esp, 4
mov dword [esp + 0x44], edi
mov byte [esp + 0x300], 0x20
test edi, edi
je 0x466b84
lea eax, [esp + 0x204]
push eax
lea ecx, [esp + 0x218]
call fcn.004ae170
mov esi, eax
or dword [esp + 0x4c], 0x10
lea ecx, [esp + 0x1ac]
push ecx
lea ecx, [esp + 0x140]
mov byte [esp + 0x304], 0x21
call fcn.004ae170
or dword [esp + 0x4c], 0x20
push esi
push eax
mov ecx, edi
mov dword [esp + 0x308], 0x22
call fcn.004ac780
mov esi, eax
jmp 0x466b86
xor esi, esi
mov eax, dword [esp + 0x4c]
test al, 0x20
je 0x466ba0
and eax, 0xffffffdf
mov dword [esp + 0x4c], eax
mov dword [esp + method.CGeom2d_Abs.virtual_0], vtable.CGeom2d_Abs.0
mov dword [esp + 0x300], 1
test al, 0x10
je 0x466bc1
and eax, 0xffffffef
mov dword [esp + 0x4c], eax
mov dword [esp + method.CGeom2d_Abs.virtual_0], vtable.CGeom2d_Abs.0
push 0x48
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x300], 0x25
test eax, eax
je 0x466be6
mov ecx, eax
call fcn.004372c0
mov edi, eax
jmp 0x466be8
xor edi, edi
or dword [edi + 8], 0x13
push esi
mov ecx, edi
mov byte [esp + 0x304], 1
call fcn.00425010
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
push 1
push edi
push edx
call fcn.00434af0
fldz
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 0x1c]
sub esp, 8
fstp qword [esp]
lea ecx, [esp + 0x1b4]
push ecx
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x108]
push edx
add esi, 0x10
call fcn.0046a050
movsd xmm0, qword [esp + 0xfc]
subsd xmm0, qword [esi]
movsd qword [esp + 0x13c], xmm0
movsd xmm0, qword [esp + 0x104]
subsd xmm0, qword [esi + 8]
movsd qword [esp + 0x144], xmm0
movsd xmm0, qword [esp + 0x10c]
subsd xmm0, qword [esi + 0x10]
lea ecx, [esp + 0x13c]
movsd qword [esp + 0x14c], xmm0
call fcn.004a88b0
mov eax, dword [ebp + 8]
fld qword [eax + 0x218]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x466ce0
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x300], 0x26
test eax, eax
je 0x466cc4
lea ecx, [esp + 0xfc]
push ecx
mov ecx, eax
call fcn.0043cf90
jmp 0x466cc6
xor eax, eax
mov ecx, dword [esp + 0x34]
push eax
mov byte [esp + 0x304], 1
mov ebx, eax
mov dword [esp + 0x34], eax
call fcn.0042f080
jmp 0x466ce8
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x30], ebx
push 0x60
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x44], eax
mov byte [esp + 0x300], 0x27
test eax, eax
je 0x466d0d
mov ecx, eax
call fcn.00445e40
mov esi, eax
jmp 0x466d0f
xor esi, esi
mov ecx, dword [esp + 0x34]
or dword [esi + 8], 3
inc dword [esi + 4]
push esi
mov byte [esp + 0x304], 1
call fcn.0042eff0
cmp dword [esp + 0x38], 0
jne 0x466d33
mov dword [esp + 0x38], esi
mov edx, dword [esp + 0x50]
push esi
mov ecx, edi
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], edx
call fcn.00437290
mov edi, dword [esp + 0x40]
jmp 0x466f1a
movsd qword [esp + 0x7c], xmm0
movsd qword [esp + 0x74], xmm0
movsd qword [esp + 0x6c], xmm0
movsd qword [esp + 0x1a4], xmm0
movsd qword [esp + 0x19c], xmm0
movsd qword [esp + 0x194], xmm0
test ebx, ebx
jne 0x466e0d
fldz
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x1c4]
push eax
lea ecx, [esp + 0x148]
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.0046a050
movq xmm0, qword [eax]
movq qword [esp + 0x6c], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x74], xmm0
movq xmm0, qword [eax + 0x10]
push 0x38
movq qword [esp + 0x80], xmm0
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0x28
test eax, eax
je 0x466df1
lea edx, [esp + 0x6c]
push edx
mov ecx, eax
call fcn.0043cf90
mov esi, eax
jmp 0x466df3
xor esi, esi
mov ecx, dword [esp + 0x34]
push esi
mov byte [esp + 0x304], 1
mov dword [esp + 0x54], esi
call fcn.0042f080
mov dword [esp + 0x24], esi
mov ebx, dword [esp + 0x24]
fldz
mov eax, dword [ebx + 0x1c]
movq xmm0, qword [eax + 0x10]
add eax, 0x10
movq qword [esp + 0x6c], xmm0
movq xmm0, qword [eax + 8]
sub esp, 8
movq qword [esp + 0x7c], xmm0
fstp qword [esp]
movq xmm0, qword [eax + 0x10]
lea eax, [esp + 0x1b4]
push eax
lea ecx, [esp + 0x148]
push ecx
mov ecx, dword [esp + 0x2c]
movq qword [esp + 0x8c], xmm0
call fcn.0046a050
movq xmm0, qword [eax]
movsd qword [esp + 0x194], xmm0
movq xmm1, qword [eax + 8]
subsd xmm0, qword [esp + 0x6c]
movsd qword [esp + 0x19c], xmm1
movq xmm2, qword [eax + 0x10]
subsd xmm1, qword [esp + 0x74]
movsd qword [esp + 0x1a4], xmm2
subsd xmm2, qword [esp + 0x7c]
lea ecx, [esp + 0x13c]
movsd qword [esp + 0x13c], xmm0
movsd qword [esp + 0x144], xmm1
movsd qword [esp + 0x14c], xmm2
call fcn.004a88b0
mov edx, dword [ebp + 8]
fld qword [edx + 0x218]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x466f16
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0x29
test eax, eax
je 0x466efa
lea ecx, [esp + 0x194]
push ecx
mov ecx, eax
call fcn.0043cf90
jmp 0x466efc
xor eax, eax
mov ecx, dword [esp + 0x34]
mov ebx, eax
push eax
mov byte [esp + 0x304], 1
mov dword [esp + 0x34], ebx
call fcn.0042f080
jmp 0x466f1a
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x2c]
test byte [edx + 8], 1
mov esi, dword [esp + 0x58]
je 0x466f34
mov eax, dword [esp + 0x24]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], ebx
jmp 0x466f3e
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ecx
cmp byte [esp + 0x1a], 0
je 0x466fd4
cmp byte [edi + 0x38], 0
jne 0x466fd4
mov edx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x1c]
mov eax, dword [edx + 0x1c]
movsd xmm0, qword [ecx + 0x10]
subsd xmm0, qword [eax + 0x10]
add ecx, 0x10
add eax, 0x10
movsd qword [esp + 0x13c], xmm0
movsd xmm0, qword [ecx + 8]
subsd xmm0, qword [eax + 8]
movsd qword [esp + 0x144], xmm0
movsd xmm0, qword [ecx + 0x10]
subsd xmm0, qword [eax + 0x10]
lea ecx, [esp + 0x13c]
movsd qword [esp + 0x14c], xmm0
call fcn.004a88b0
fld qword [0x5ff758]
fcompi st(1)
fstp st(0)
jbe 0x466fd4
mov eax, dword [edi]
mov edx, dword [eax]
push 1
mov ecx, edi
call edx
push 0
mov ecx, esi
call fcn.004440c0
mov ecx, dword [esp + 0x24]
inc dword [esi + 4]
push ebx
call fcn.0043ce60
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
push eax
call fcn.00437290
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x44]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x54]
jne 0x466450
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.00435530
fstp st(0)
mov ecx, dword [esi + 8]
and ecx, 0xf7ffffff
or ecx, 0x10
mov dword [esi + 8], ecx
jmp 0x466346
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x467044
mov eax, dword [eax + 0x24]
mov edi, dword [eax + 0x44]
mov edx, dword [ecx]
mov eax, dword [edx]
mov esi, dword [ecx + 0x44]
push 1
call eax
cmp esi, edi
je 0x467044
mov ecx, esi
jmp 0x467031
cmp byte [esp + 0x2a], 0
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x48]
mov esi, dword [ecx + 0x5c]
mov byte [esp + 0x1b], 1
mov dword [esp + 0x30], edi
mov dword [esp + 0x90], esi
jne case.0x467078.58
cmp byte [esp + 0x18], 0
je case.0x467078.58
mov eax, dword [ebx + 0xc]
add eax, 0xffffffc9
cmp eax, 4
ja case.0x467078.58
jmp dword [eax*4 + 0x4681c0]
push 1
mov ecx, ebx
call fcn.004e5d10
jmp case.0x467078.58
mov ecx, ebx
call fcn.00572450
jmp case.0x467078.58
mov ecx, ebx
call fcn.00572450
jmp case.0x467078.58
fld qword [0x5fa918]
sub esp, 8
fstp qword [esp]
push 1
mov ecx, ebx
call fcn.0048f1e0
fld qword [0x5fa918]
sub esp, 8
fstp qword [esp]
push 0
mov ecx, ebx
call fcn.0048f1e0
mov al, byte [esp + 0x2b]
xor ecx, ecx
mov dword [esp + 0x24], ecx
test al, al
jne 0x4670e4
cmp byte [esp + 0x19], al
jne 0x4670e4
movsd xmm0, qword [0x5ff780]
jmp 0x4670ec
movsd xmm0, qword [0x5fc898]
movsd qword [esp + 0x11c], xmm0
xorps xmm0, xmm0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], ecx
movsd qword [esp + 0x7c], xmm0
movsd qword [esp + 0x74], xmm0
movsd qword [esp + 0x6c], xmm0
movsd qword [esp + 0x134], xmm0
movsd qword [esp + 0x12c], xmm0
movsd qword [esp + 0xf4], xmm0
movsd qword [esp + 0xec], xmm0
test al, al
jne 0x467170
cmp byte [esp + 0x19], al
jne 0x467178
movsd xmm0, qword [ebx + 0x48]
movsd xmm2, qword [ebx + 0x40]
movsd xmm1, qword [ebx + 0x38]
movsd xmm3, qword [ebx + 0x30]
subsd xmm1, xmm3
subsd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x467166
movapd xmm0, xmm1
mulsd xmm0, qword [0x5fcc60]
jmp 0x467189
movsd xmm0, qword [esp + 0x5c]
jmp 0x467181
movsd xmm0, qword [esp + 0x1ec]
mulsd xmm0, qword [0x5fd488]
movsd qword [esp + 0x84], xmm0
cmp edi, esi
je 0x467d80
lea ebx, [ebx]
mov ecx, dword [esp + 0x30]
mov esi, dword [ecx + 0x24]
push 0
mov byte [esp + 0x1e], 0
call fcn.00444ae0
xorps xmm0, xmm0
mov dword [esp + 0xc8], eax
movsd qword [esp + 0x124], xmm0
test eax, eax
je 0x4671d8
mov edx, eax
mov ebx, dword [edx + 0x20]
mov dword [esp + 0x50], ebx
jmp 0x4672db
xor ebx, ebx
mov dword [esp + 0x50], ebx
test esi, esi
je 0x4672d6
fld qword [0x5ff790]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.004f0b50
fst qword [esp + 0x124]
fld qword [0x5fa920]
fxch st(1)
fcompi st(1)
jbe 0x4672d4
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x94]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [0x5fdfa8]
fstp qword [esp]
push esi
call edx
mov ebx, eax
mov dword [esp + 0x50], ebx
test ebx, ebx
jne 0x4672d6
fld qword [0x5ff790]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.004f0b50
fld qword [0x5fc880]
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x4672d4
mov eax, dword [ebp + 8]
cmp byte [eax + 0x383], bl
jne 0x4672c5
mov ecx, dword [sym.imp.MSVCP90.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
mov edx, dword [esp + 0x58]
push ecx
sub esp, 8
fstp qword [esp]
push str.Curve_Length_
push 0x5fcfd8
push edx
push 0x5fd4c8
lea ecx, [eax + 0x2e8]
call fcn.0042f6f0
mov ecx, eax
call fcn.00432040
mov ecx, eax
call fcn.0042f6f0
mov ecx, eax
call fcn.0042f6f0
mov ecx, eax
call fcn.0045a180
mov ecx, eax
call fcn.0042e970
mov eax, dword [esp + 0x20]
or dword [eax + 8], 0x80
jmp 0x4672d6
mov eax, dword [esp + 0x20]
fstp st(0)
or dword [eax + 8], 0x80
jmp 0x4672d6
fstp st(0)
mov byte [esp + 0x1a], 1
test ebx, ebx
je 0x467cfb
fld qword [ebx + 0x10]
mov eax, dword [ebx]
mov edx, dword [eax + 0x4c]
sub esp, 8
lea ecx, [esp + 0x18c]
fstp qword [esp]
push ecx
mov ecx, ebx
call edx
fld qword [ebx + 0x18]
mov eax, dword [ebx]
mov edx, dword [eax + 0x4c]
sub esp, 8
lea ecx, [esp + 0x164]
fstp qword [esp]
push ecx
mov ecx, ebx
call edx
mov eax, dword [esp + 0x30]
xorps xmm0, xmm0
mov edi, dword [eax + 0x1c]
mov ecx, eax
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x64], edi
mov dword [esp + 0x38], edx
movsd qword [esp + 0xa4], xmm0
movsd qword [esp + 0x9c], xmm0
movsd qword [esp + 0x94], xmm0
movsd qword [esp + 0xe4], xmm0
movsd qword [esp + 0xdc], xmm0
movsd qword [esp + 0xd4], xmm0
test esi, esi
je 0x467406
fld qword [esi + 0x10]
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
sub esp, 8
lea ecx, [esp + 0x23c]
fstp qword [esp]
push ecx
mov ecx, esi
call edx
fld qword [esi + 0x18]
movq xmm0, qword [eax]
movq qword [esp + 0x94], xmm0
movq xmm0, qword [eax + 8]
sub esp, 8
movq qword [esp + 0xa4], xmm0
fstp qword [esp]
movq xmm0, qword [eax + 0x10]
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
lea ecx, [esp + 0x23c]
push ecx
mov ecx, esi
movq qword [esp + 0xb0], xmm0
call edx
movq xmm5, qword [eax]
movsd xmm0, qword [esp + 0xa4]
movsd xmm1, qword [esp + 0x9c]
movsd xmm2, qword [esp + 0x94]
movsd qword [esp + 0xd4], xmm5
movq xmm4, qword [eax + 8]
movsd qword [esp + 0xdc], xmm4
movq xmm3, qword [eax + 0x10]
jmp 0x46747a
test edi, edi
je 0x467412
mov eax, dword [edi + 0x1c]
add eax, 0x10
jmp 0x467433
fldz
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x18c]
push eax
lea ecx, [esp + 0x240]
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.0046a050
movq xmm5, qword [eax]
movsd qword [esp + 0xd4], xmm5
movq xmm4, qword [eax + 8]
movsd qword [esp + 0xdc], xmm4
movq xmm3, qword [eax + 0x10]
movdqa xmm0, xmm3
movdqa xmm1, xmm4
movdqa xmm2, xmm5
movsd qword [esp + 0xa4], xmm0
movsd qword [esp + 0x9c], xmm1
movsd qword [esp + 0x94], xmm2
cmp dword [esp + 0x48], 0
movsd qword [esp + 0xe4], xmm3
jne 0x4675df
test edi, edi
jne 0x467509
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0xa
test eax, eax
je 0x4674bd
lea edx, [esp + 0x94]
push edx
mov ecx, eax
call fcn.0043cf90
jmp 0x4674bf
xor eax, eax
mov ecx, dword [esp + 0x34]
push eax
mov byte [esp + 0x304], 1
mov edi, eax
call fcn.0042f080
movsd xmm0, qword [esp + 0xa4]
movsd xmm1, qword [esp + 0x9c]
movsd xmm2, qword [esp + 0x94]
movsd xmm3, qword [esp + 0xe4]
movsd xmm4, qword [esp + 0xdc]
movsd xmm5, qword [esp + 0xd4]
subsd xmm2, xmm5
subsd xmm1, xmm4
subsd xmm0, xmm3
lea ecx, [esp + 0xfc]
mov dword [esp + 0x54], edi
movsd qword [esp + 0xfc], xmm2
movsd qword [esp + 0x104], xmm1
movsd qword [esp + 0x10c], xmm0
call fcn.004a88b0
fld qword [0x5fa920]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x46759d
mov esi, dword [esp + 0x38]
test esi, esi
jne 0x4675a3
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0xb
test eax, eax
je 0x467581
lea ecx, [esp + 0xd4]
push ecx
mov ecx, eax
call fcn.0043cf90
jmp 0x467583
xor eax, eax
mov ecx, dword [esp + 0x34]
mov esi, eax
push eax
mov byte [esp + 0x304], 1
mov dword [esp + 0x3c], esi
call fcn.0042f080
jmp 0x4675a3
mov esi, edi
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x30]
movq xmm0, qword [esp + 0x184]
mov dword [eax + 0x1c], edi
mov dword [eax + 0x20], esi
movq qword [esp + 0xec], xmm0
movq xmm0, qword [esp + 0x18c]
mov ecx, 1
add dword [esp + 0x44], ecx
movq qword [esp + 0xf4], xmm0
jmp 0x467c26
movsd xmm3, qword [esp + 0x6c]
subsd xmm3, xmm2
movsd xmm2, qword [esp + 0x74]
subsd xmm2, xmm1
movsd xmm1, qword [esp + 0x7c]
subsd xmm1, xmm0
lea ecx, [esp + 0xfc]
movsd qword [esp + 0xfc], xmm3
movsd qword [esp + 0x104], xmm2
movsd qword [esp + 0x10c], xmm1
call fcn.004a88b0
fstp qword [esp + 0xcc]
movsd xmm0, qword [esp + 0x184]
subsd xmm0, qword [esp + 0x12c]
movsd qword [esp + 0x254], xmm0
movsd xmm0, qword [esp + 0x18c]
subsd xmm0, qword [esp + 0x134]
lea ecx, [esp + 0x254]
movsd qword [esp + 0x25c], xmm0
call fcn.004a7500
fstp qword [esp + 0x5c]
cmp byte [esp + 0x3f], 0
jne 0x46790d
movsd xmm0, qword [esp + 0xcc]
comisd xmm0, xmmword [0x5fc898]
jbe 0x46790d
test edi, edi
jne 0x4676e5
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0xc
test eax, eax
je 0x4676c4
lea edx, [esp + 0x94]
push edx
mov ecx, eax
call fcn.0043cf90
mov esi, eax
jmp 0x4676c6
xor esi, esi
mov ecx, dword [esp + 0x34]
mov edi, esi
push esi
mov byte [esp + 0x304], 1
mov dword [esp + 0x68], edi
call fcn.0042f080
mov eax, dword [esp + 0x30]
mov dword [eax + 0x1c], esi
movsd xmm0, qword [esp + 0x5c]
comisd xmm0, xmmword [esp + 0x11c]
jbe 0x4678ee
comisd xmm0, xmmword [esp + 0x84]
ja 0x4678ee
push 0x88
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov edi, eax
add esp, 4
mov dword [esp + 0x40], edi
mov byte [esp + 0x300], 0xd
test edi, edi
je 0x46777c
lea ecx, [esp + 0x184]
push ecx
lea ecx, [esp + 0x100]
call fcn.004ae170
mov esi, eax
or dword [esp + 0x4c], 1
lea edx, [esp + 0x12c]
push edx
lea ecx, [esp + 0x238]
mov byte [esp + 0x304], 0xe
call fcn.004ae170
or dword [esp + 0x4c], 2
push esi
push eax
mov ecx, edi
mov dword [esp + 0x308], 0xf
call fcn.004ac780
mov ebx, eax
jmp 0x46777e
xor ebx, ebx
mov eax, dword [esp + 0x4c]
test al, 2
je 0x467798
and eax, 0xfffffffd
mov dword [esp + 0x4c], eax
mov dword [esp + method.CGeom2d_Abs.virtual_0], vtable.CGeom2d_Abs.0
mov dword [esp + 0x300], 1
test al, 1
je 0x4677b9
and eax, 0xfffffffe
mov dword [esp + 0x4c], eax
mov dword [esp + 0xfc], vtable.CGeom2d_Abs.0
push 0x48
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0x12
test eax, eax
je 0x4677de
mov ecx, eax
call fcn.004372c0
mov edi, eax
jmp 0x4677e0
xor edi, edi
or dword [edi + 8], 0x13
push ebx
mov ecx, edi
mov byte [esp + 0x304], 1
call fcn.00425010
mov ecx, dword [esp + 0x20]
push 1
push edi
push 0
call fcn.00434af0
xorps xmm0, xmm0
push 0x60
movsd qword [esp + 0x60], xmm0
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0x13
test eax, eax
je 0x467830
mov ecx, eax
call fcn.00445e40
mov esi, eax
jmp 0x467832
xor esi, esi
mov ecx, dword [esp + 0x34]
or dword [esi + 8], 7
push esi
mov byte [esp + 0x304], 1
call fcn.0042eff0
cmp dword [esp + 0x90], 0
jne 0x467859
mov dword [esp + 0x90], esi
push esi
mov ecx, edi
call fcn.00437290
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x64]
mov dword [esi + 0x20], eax
fld qword [0x5fdfa8]
mov edx, dword [ecx]
sub esp, 8
fstp qword [esp]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 0x98]
push ebx
call eax
mov edi, eax
push edi
mov ecx, esi
call fcn.004440c0
test edi, edi
je 0x4678b6
fld qword [0x5ff790]
sub esp, 8
mov ecx, edi
fstp qword [esp]
call fcn.004f0b50
fstp qword [esp + 0xcc]
movsd xmm0, qword [esp + 0xcc]
comisd xmm0, xmmword [0x616410]
jbe 0x4678d4
mov eax, dword [esp + 0x20]
or dword [eax + 8], 0x80
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x50]
mov eax, 1
add dword [esp + 0x24], eax
add dword [esp + 0x48], eax
jmp 0x467b22
mov esi, dword [esp + 0x2c]
push esi
mov ecx, edi
call fcn.0043ce60
mov ecx, dword [esi + 0x1c]
add ecx, 0x10
push ecx
mov ecx, edi
call fcn.00441df0
jmp 0x467b22
movsd xmm0, qword [esp + 0x5c]
comisd xmm0, xmmword [0x5fc898]
jbe 0x467ae1
cmp byte [esp + 0x2b], 0
jne 0x467ad3
cmp byte [esp + 0x19], 0
jne 0x467ad3
fld qword [0x5fc898]
mov ecx, dword [esp + 0x1c]
sub esp, 8
lea edx, [esp + 0x134]
fstp qword [esp]
push edx
call fcn.00472e00
test eax, eax
jne 0x467ad3
fld qword [0x5fc898]
mov ecx, dword [esp + 0x1c]
sub esp, 8
lea eax, [esp + 0x18c]
fstp qword [esp]
push eax
call fcn.00434a10
test al, al
jne 0x467ad3
movsd xmm0, qword [esp + 0x12c]
subsd xmm0, qword [esp + 0x184]
mov edx, dword [ebx]
mov edx, dword [edx + 0xc]
movsd qword [esp + 0x16c], xmm0
movsd xmm0, qword [esp + 0x134]
subsd xmm0, qword [esp + 0x18c]
lea eax, [esp + 0x16c]
push eax
mov ecx, ebx
movsd qword [esp + 0x178], xmm0
call edx
mov eax, dword [esp + 0x1c]
push 3
push esi
push eax
push ebx
call fcn.0051e920
fstp qword [esp + 0x1fc]
movsd xmm0, qword [esp + 0x134]
add esp, 0x10
comisd xmm0, xmmword [0x5fcc40]
ja 0x467a0b
movsd xmm1, qword [0x5ff758]
comisd xmm1, xmm0
ja 0x467a0b
mulsd xmm0, qword [0x5fb9c8]
jmp 0x467a13
movsd xmm0, qword [0x5fb9c8]
comisd xmm0, xmmword [esp + 0x1ec]
jbe 0x467a89
movsd xmm0, qword [esp + 0x16c]
movapd xmm1, xmm0
addsd xmm0, qword [esp + 0x15c]
addsd xmm1, qword [esp + 0x184]
movsd qword [esp + 0x15c], xmm0
movsd xmm0, qword [esp + 0x164]
movsd qword [esp + 0x184], xmm1
movsd xmm1, qword [esp + 0x174]
addsd xmm0, xmm1
movapd xmm2, xmm1
addsd xmm2, qword [esp + 0x18c]
movsd qword [esp + 0x164], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x18c], xmm2
jmp 0x467adb
movsd xmm1, qword [esp + 0x16c]
movsd xmm0, qword [0x5fc740]
mov edx, dword [ebx]
mov edx, dword [edx + 0xc]
xorpd xmm1, xmm0
movsd qword [esp + 0x16c], xmm1
movsd xmm1, qword [esp + 0x174]
lea eax, [esp + 0x16c]
xorpd xmm1, xmm0
push eax
mov ecx, ebx
movsd qword [esp + 0x178], xmm1
call edx
xorps xmm0, xmm0
jmp 0x467adb
movsd xmm0, qword [0x5fb9c8]
movsd qword [esp + 0x5c], xmm0
test edi, edi
je 0x467b1e
mov esi, dword [esp + 0x2c]
push esi
mov ecx, edi
call fcn.0043ce60
cmp edi, esi
je 0x467b26
mov eax, dword [esi + 0x1c]
mov ecx, dword [edi + 0x1c]
movq xmm0, qword [eax + 0x10]
add eax, 0x10
movq qword [ecx + 0x10], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 0x18], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ecx + 0x20], xmm0
jmp 0x467b26
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x2c]
movsd xmm0, qword [esp + 0x6c]
subsd xmm0, qword [esp + 0xd4]
movsd qword [esp + 0xfc], xmm0
movsd xmm0, qword [esp + 0x74]
subsd xmm0, qword [esp + 0xdc]
movsd qword [esp + 0x104], xmm0
movsd xmm0, qword [esp + 0x7c]
subsd xmm0, qword [esp + 0xe4]
lea ecx, [esp + 0xfc]
movsd qword [esp + 0x10c], xmm0
call fcn.004a88b0
fld qword [0x5fa920]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x467bd4
cmp dword [esp + 0x38], 0
jne 0x467bfe
push 0x38
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0x14
test eax, eax
je 0x467bba
lea ecx, [esp + 0xd4]
push ecx
mov ecx, eax
call fcn.0043cf90
jmp 0x467bbc
xor eax, eax
mov ecx, dword [esp + 0x34]
push eax
mov byte [esp + 0x304], 1
mov dword [esp + 0x3c], eax
call fcn.0042f080
jmp 0x467bfe
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x467bfa
push esi
call fcn.0043ce60
cmp dword [esp + 0x38], esi
je 0x467bfe
mov edx, dword [esi + 0x1c]
mov ecx, dword [esp + 0x38]
add edx, 0x10
push edx
call fcn.00441df0
jmp 0x467bfe
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
movsd xmm0, qword [esp + 0x5c]
comisd xmm0, xmmword [0x5fc870]
mov dword [eax + 0x20], ecx
jbe 0x467c1e
mov byte [esp + 0x1b], 0
mov dword [eax + 0x1c], edi
mov ecx, 1
cmp byte [esp + 0x1a], 0
je 0x467c8e
push 0x48
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0x15
test eax, eax
je 0x467c52
mov ecx, eax
call fcn.004372c0
mov esi, eax
jmp 0x467c54
xor esi, esi
or dword [esi + 8], 0x12
push ebx
mov ecx, esi
mov byte [esp + 0x304], 1
mov dword [esp + 0xcc], esi
call fcn.00425010
mov ecx, dword [esp + 0x20]
push 1
push esi
push 0
call fcn.00434af0
mov edx, dword [esp + 0x30]
push edx
mov ecx, esi
call fcn.00437290
mov ecx, 1
mov eax, dword [esp + 0xc8]
add dword [esp + 0x24], ecx
add dword [esp + 0x48], ecx
or dword [eax + 8], ecx
movq xmm0, qword [esp + 0xd4]
mov eax, dword [esp + 0x38]
movq xmm1, qword [esp + 0x15c]
movsd qword [esp + 0x6c], xmm0
movq xmm0, qword [esp + 0xdc]
movsd qword [esp + 0x74], xmm0
movq xmm0, qword [esp + 0xe4]
movsd qword [esp + 0x7c], xmm0
movq xmm0, qword [esp + 0x164]
mov dword [esp + 0x2c], eax
movsd qword [esp + 0x12c], xmm1
movsd qword [esp + 0x134], xmm0
jmp 0x467d0d
movsd xmm0, qword [esp + 0x134]
movsd xmm1, qword [esp + 0x12c]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x5c]
mov dword [esp + 0x30], eax
cmp eax, dword [esp + 0x90]
je 0x467d79
cmp dword [esp + 0x48], 1
jle 0x4671a0
subsd xmm1, qword [esp + 0xec]
subsd xmm0, qword [esp + 0xf4]
lea ecx, [esp + 0x1f4]
movsd qword [esp + 0x1f4], xmm1
movsd qword [esp + 0x1fc], xmm0
call fcn.004a7500
fld qword [0x5fa920]
fcompi st(1)
fstp st(0)
jbe 0x4671a0
mov dword [esp + 0x48], 0
jmp 0x4671a0
cmp dword [esp + 0x24], 0
jne 0x467dd2
mov eax, dword [ebp + 8]
cmp byte [eax + 0x383], 0
jne 0x467dc2
mov edx, dword [sym.imp.MSVCP90.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
mov ecx, dword [esp + 0x58]
push edx
push 0x5fcfd8
push ecx
push 0x5fd4c8
lea ecx, [eax + 0x2e8]
call fcn.0042f6f0
mov ecx, eax
call fcn.00432040
mov ecx, eax
call fcn.0042f6f0
mov ecx, eax
call fcn.0042e970
mov eax, dword [esp + 0x20]
or dword [eax + 8], 0x80
jmp 0x468144
subsd xmm1, qword [esp + 0xec]
subsd xmm0, qword [esp + 0xf4]
lea ecx, [esp + 0x1f4]
movsd qword [esp + 0x1f4], xmm1
movsd qword [esp + 0x1fc], xmm0
call fcn.004a7500
fstp qword [esp + 0x5c]
xorps xmm0, xmm0
mov esi, dword [esp + 0x54]
mov eax, dword [esi + 0x1c]
movsd qword [esp + 0x1a4], xmm0
movsd qword [esp + 0x19c], xmm0
movsd qword [esp + 0x194], xmm0
movsd xmm0, qword [esp + 0x6c]
subsd xmm0, qword [eax + 0x10]
add eax, 0x10
movsd qword [esp + 0x194], xmm0
movsd xmm0, qword [esp + 0x74]
subsd xmm0, qword [eax + 8]
movsd qword [esp + 0x19c], xmm0
movsd xmm0, qword [esp + 0x7c]
subsd xmm0, qword [eax + 0x10]
lea ecx, [esp + 0x194]
movsd qword [esp + 0x1a4], xmm0
call fcn.004a88b0
fstp qword [esp + 0xcc]
cmp byte [esp + 0x3f], 0
jne 0x46806e
movsd xmm0, qword [0x5fc898]
comisd xmm0, xmmword [esp + 0xcc]
ja 0x46806e
movsd xmm0, qword [esp + 0x5c]
comisd xmm0, xmmword [esp + 0x11c]
jbe 0x4680ff
comisd xmm0, xmmword [esp + 0x84]
ja 0x4680ff
push 0x88
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov edi, eax
add esp, 4
mov dword [esp + 0x40], edi
mov byte [esp + 0x300], 0x16
test edi, edi
je 0x467f36
lea edx, [esp + 0xec]
push edx
lea ecx, [esp + 0x100]
call fcn.004ae170
mov esi, eax
or dword [esp + 0x4c], 4
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x238]
mov byte [esp + 0x304], 0x17
call fcn.004ae170
or dword [esp + 0x4c], 8
push esi
push eax
mov ecx, edi
mov dword [esp + 0x308], 0x18
call fcn.004ac780
mov ebx, eax
jmp 0x467f38
xor ebx, ebx
mov eax, dword [esp + 0x4c]
test al, 8
je 0x467f4e
and eax, 0xfffffff7
mov dword [esp + method.CGeom2d_Abs.virtual_0], vtable.CGeom2d_Abs.0
mov dword [esp + 0x300], 1
test al, 4
je 0x467f68
mov dword [esp + 0xfc], vtable.CGeom2d_Abs.0
push 0x48
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0x1b
test eax, eax
je 0x467f8d
mov ecx, eax
call fcn.004372c0
mov edi, eax
jmp 0x467f8f
xor edi, edi
or dword [edi + 8], 0x13
push ebx
mov ecx, edi
mov byte [esp + 0x304], 1
call fcn.00425010
mov ecx, dword [esp + 0x20]
push 1
push edi
push 0
call fcn.00434af0
push 0x60
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0x300], 0x1c
test eax, eax
je 0x467fd6
mov ecx, eax
call fcn.00445e40
mov esi, eax
jmp 0x467fd8
xor esi, esi
mov ecx, dword [esp + 0x34]
or dword [esi + 8], 7
push esi
mov byte [esp + 0x304], 1
call fcn.0042eff0
push esi
mov ecx, edi
call fcn.00437290
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x54]
mov dword [esi + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0x20], edx
fld qword [0x5fdfa8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x98]
sub esp, 8
fstp qword [esp]
push ebx
call edx
mov edi, eax
push edi
mov ecx, esi
call fcn.004440c0
test edi, edi
je 0x468047
fld qword [0x5ff790]
sub esp, 8
mov ecx, edi
fstp qword [esp]
call fcn.004f0b50
fstp qword [esp + 0xcc]
movsd xmm0, qword [esp + 0xcc]
comisd xmm0, xmmword [0x616410]
jbe 0x468065
mov eax, dword [esp + 0x20]
or dword [eax + 8], 0x80
inc dword [esp + 0x24]
jmp 0x468114
movsd xmm0, qword [esp + 0x5c]
comisd xmm0, xmmword [0x5fc898]
jbe 0x4680e1
cmp byte [esp + 0x2b], 0
jne 0x4680d3
cmp byte [esp + 0x19], 0
jne 0x4680d3
fld qword [0x5fc898]
mov edi, dword [esp + 0x1c]
sub esp, 8
lea eax, [esp + 0x134]
fstp qword [esp]
push eax
mov ecx, edi
call fcn.00434a10
test al, al
jne 0x4680d3
fld qword [0x5fc898]
sub esp, 8
lea ecx, [esp + 0xf4]
fstp qword [esp]
push ecx
mov ecx, edi
call fcn.00434a10
test al, al
jne 0x4680d3
xorps xmm0, xmm0
jmp 0x4680db
movsd xmm0, qword [0x5fb9c8]
movsd qword [esp + 0x5c], xmm0
mov edi, dword [esp + 0x2c]
push esi
mov ecx, edi
call fcn.0043ce60
cmp edi, esi
je 0x4680ff
mov edx, dword [esi + 0x1c]
add edx, 0x10
push edx
mov ecx, edi
call fcn.00441df0
movsd xmm0, qword [esp + 0x5c]
comisd xmm0, xmmword [0x5fc870]
jbe 0x468114
mov byte [esp + 0x1b], 0
cmp dword [esp + 0x24], 0
mov eax, dword [esp + 0x20]
je 0x468126
and dword [eax + 8], 0xf7ffffff
or dword [eax + 8], 0x10
cmp byte [esp + 0x1b], 0
mov ecx, dword [eax + 8]
je 0x46813b
cmp dword [esp + 0x44], 1
jle 0x468144
or ecx, 0x1000000
mov dword [eax + 8], ecx
mov eax, dword [esp + 0xac]
mov esi, dword [sym.imp.MSVCR90.dll_free]
test eax, eax
je 0x46815b
push eax
call esi
add esp, 4
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x46816c
push eax
call esi
add esp, 4
mov ecx, dword [esp + 0x2f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4