Function at 0x599187
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x65fe05
push eax
mov eax, 0x2a24
mov dword fs:[0], esp
call fcn.0063e680
push ebx
push esi
push edi
call fcn.0041093d
lea ecx, [esp + 0xfc]
mov esi, eax
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZData::constructor_void_]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x2a38], 0
mov eax, dword [edi + 0xe]
test eax, eax
je 0x597500
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x2a38], 0xffffffff
test ecx, ecx
je 0x599aa1
jmp 0x599a9b
lea ecx, [edi + 0x46]
push ecx
call dword [sym.imp.MSVCRT.dll_atoi]
mov ebx, eax
xor eax, eax
mov ax, word [edi]
add esp, 4
dec eax
mov dword [esp + 0x24], ebx
cmp eax, 0x16
ja case.0x59752a.10
xor edx, edx
mov dl, byte [eax + 0x599ae0]
jmp dword [edx*4 + 0x599ab8]
call fcn.0041093d
mov eax, dword [eax + 0x386]
mov edi, dword [ebp + 0x14]
fld dword [eax + 8]
fld qword [ebp + 0x1c]
fadd qword [edi]
fmulp st(1)
fstp qword [esp + 0x34]
call fcn.0041093d
mov ecx, dword [eax + 0x386]
fld dword [ecx + 8]
fld qword [ebp + 0x24]
fadd qword [edi + 8]
fsubr qword [esi + 0x1aed]
fmulp st(1)
fstp qword [esp + 0x2c]
call fcn.0041093d
mov edx, dword [eax + 0x386]
fld dword [edx + 8]
fld qword [ebp + 0x1c]
fadd qword [edi + 0x18]
fmulp st(1)
fstp qword [esp + 0x14]
call fcn.0041093d
mov eax, dword [eax + 0x386]
cmp ebx, 7
fld dword [eax + 8]
fld qword [ebp + 0x24]
fadd qword [edi + 0x20]
fsubr qword [esi + 0x1aed]
fmulp st(1)
fstp qword [esp + 0xc]
jne 0x5975f1
fld qword [esp + 0x34]
call sub.MSVCRT.dll__ftol
fld qword [esp + 0x2c]
mov edi, eax
call sub.MSVCRT.dll__ftol
mov ecx, dword [esi + 0x4b2]
fld qword [esp + 0x14]
mov dword [ecx + 0x1c], edi
mov dword [ecx + 0x20], eax
call sub.MSVCRT.dll__ftol
fld qword [esp + 0xc]
mov edi, eax
call sub.MSVCRT.dll__ftol
mov edx, dword [esi + 0x4b2]
mov dword [edx + 0x24], edi
mov dword [edx + 0x28], eax
jmp case.0x59752a.10
cmp ebx, 1
je 0x59760e
cmp ebx, 4
je 0x59760e
cmp ebx, 6
je 0x59760e
cmp ebx, 8
je 0x59760e
cmp ebx, 0xe
jne case.0x59752a.10
push 0x34
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x1c], edi
xor ebx, ebx
mov byte [esp + 0x2a38], 1
cmp edi, ebx
je 0x597656
push 2
lea ecx, [edi + 4]
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZPointArray::constructor_int_]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], ebx
mov dword [edi + 0x1c], ebx
mov dword [edi + 0x20], ebx
mov eax, dword [sym.imp.zmathdll.dll_const_ZPolyline::vftable]
mov dword [edi + 0x30], ebx
mov dword [edi], eax
mov dword [edi + 0x24], 1
jmp 0x597658
xor edi, edi
fld qword [esp + 0x34]
mov byte [esp + 0x2a38], 0
call sub.MSVCRT.dll__ftol
fld qword [esp + 0x2c]
mov dword [esp + 0xcc], eax
call sub.MSVCRT.dll__ftol
mov ebx, dword [sym.imp.zmathdll.dll_public:_int___thiscall_ZPolyline::AddPoint_class_CPoint_const__]
lea ecx, [esp + 0xcc]
push ecx
mov ecx, edi
mov dword [esp + 0xd4], eax
call ebx
fld qword [esp + 0x14]
call sub.MSVCRT.dll__ftol
fld qword [esp + 0xc]
mov dword [esp + 0xe4], eax
call sub.MSVCRT.dll__ftol
lea edx, [esp + 0xe4]
mov ecx, edi
push edx
mov dword [esp + 0xec], eax
call ebx
mov eax, dword [esp + 0x24]
mov ecx, dword [edi + 0x10]
mov dword [edi + 0x24], eax
push edi
mov dword [ecx], 1
mov edx, dword [edi + 0x10]
mov dword [edx + 4], 1
mov esi, dword [esi + 0x4b2]
add esi, 0x40
mov ecx, esi
mov eax, dword [esi + 8]
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
jmp case.0x59752a.10
call fcn.0041093d
mov eax, dword [eax + 0x386]
mov edi, dword [ebp + 0x14]
fld dword [eax + 8]
fld qword [ebp + 0x1c]
fadd qword [edi]
fmulp st(1)
fstp qword [esp + 0x34]
call fcn.0041093d
mov ecx, dword [eax + 0x386]
cmp ebx, 4
fld dword [ecx + 8]
fld qword [ebp + 0x24]
fadd qword [edi + 8]
fsubr qword [esi + 0x1aed]
fmulp st(1)
fstp qword [esp + 0xc]
je 0x5978bf
cmp ebx, 0xd
je 0x5978bf
cmp ebx, 0x50
je 0x5978bf
cmp ebx, 0x51
je 0x5978bf
cmp ebx, 0x52
je 0x5978bf
cmp ebx, 0x53
je 0x5978bf
fld qword [esp + 0x34]
call sub.MSVCRT.dll__ftol
fld qword [esp + 0xc]
mov edi, eax
mov dword [esp + 0x14], edi
call sub.MSVCRT.dll__ftol
push 0xffffffffffffff9c
push eax
push edi
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.00403071
mov edi, eax
test edi, edi
jne 0x5978ae
push 0xbb8
call sub.MFC42.DLL_operatornew
mov ebx, eax
add esp, 4
mov dword [esp + 0x2c], ebx
test ebx, ebx
mov byte [esp + 0x2a38], 4
je 0x5977d8
mov edi, ebx
mov dword [esp + 0x1c], 0x32
mov ecx, edi
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZGradData::constructor_void_]
mov eax, dword [esp + 0x1c]
add edi, 0x3c
dec eax
mov dword [esp + 0x1c], eax
jne 0x5977be
mov eax, ebx
jmp 0x5977da
xor eax, eax
mov dword [esp + 0x34], eax
add eax, 0xc
mov byte [esp + 0x2a38], 0
mov ecx, 0x32
xor edx, edx
mov dword [eax - 8], edx
mov dword [eax - 4], edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax - 0xc], edx
add eax, 0x3c
dec ecx
jne 0x5977f0
mov edx, dword [esp + 0x34]
mov eax, dword [esi + 0x2ae]
lea ecx, [esi + 0x2a6]
push edx
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
push 0x441
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov byte [esp + 0x2a38], 5
je 0x597886
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esi + 0x53e]
mov dword [esp + 0xf4], eax
mov eax, dword [esi + 0x53a]
mov dword [esp + 0xf8], ecx
push edx
mov edx, dword [esi + 0x342]
lea ecx, [esp + 0x38]
push eax
push ecx
push 0x1b
push edx
lea eax, [esp + 0x108]
push 0x1f
push eax
mov ecx, edi
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZPoint::constructor_class_CPoint___int__struct_ZUnit___int__struct_ZGradData____int___int__]
mov dword [edi], 0x6701d4
jmp 0x597888
xor edi, edi
mov esi, dword [esi + 0x4b2]
push edi
add esi, 0x68
mov byte [esp + 0x2a3c], 0
mov ecx, esi
mov eax, dword [esi + 8]
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
mov ecx, dword [esp + 0x24]
mov dword [edi + 0x7d], ecx
mov ebx, ecx
cmp ebx, 2
jne case.0x59752a.10
mov dword [edi + 0x7d], ebx
jmp case.0x59752a.10
push 0xbb8
call sub.MFC42.DLL_operatornew
mov ebx, eax
add esp, 4
mov dword [esp + 0x2c], ebx
test ebx, ebx
mov byte [esp + 0x2a38], 2
je 0x597902
mov edi, ebx
mov dword [esp + 0x1c], 0x32
mov ecx, edi
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZGradData::constructor_void_]
mov eax, dword [esp + 0x1c]
add edi, 0x3c
dec eax
mov dword [esp + 0x1c], eax
jne 0x5978e8
mov eax, ebx
jmp 0x597904
xor eax, eax
mov dword [esp + 0x14], eax
add eax, 0xc
mov byte [esp + 0x2a38], 0
mov ecx, 0x32
xor edx, edx
mov dword [eax - 8], edx
mov dword [eax - 4], edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax - 0xc], edx
add eax, 0x3c
dec ecx
jne 0x59791a
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 0x2ae]
lea ecx, [esi + 0x2a6]
push edx
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
push 0x441
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov byte [esp + 0x2a38], 3
je 0x5979ba
fld qword [esp + 0x34]
call sub.MSVCRT.dll__ftol
fld qword [esp + 0xc]
mov dword [esp + 0xdc], eax
call sub.MSVCRT.dll__ftol
mov ecx, dword [esi + 0x53a]
mov dword [esp + 0xe0], eax
mov eax, dword [esi + 0x53e]
lea edx, [esp + 0x14]
push eax
mov eax, dword [esi + 0x342]
push ecx
push edx
push 0x1b
push eax
lea ecx, [esp + 0xf0]
push 0x1f
push ecx
mov ecx, edi
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZPoint::constructor_class_CPoint___int__struct_ZUnit___int__struct_ZGradData____int___int__]
mov dword [edi], 0x6701d4
jmp 0x5979bc
xor edi, edi
mov esi, dword [esi + 0x4b2]
push edi
add esi, 0x7c
mov byte [esp + 0x2a3c], 0
mov ecx, esi
mov eax, dword [esi + 8]
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
mov edx, dword [esp + 0x24]
mov dword [edi + 0x7d], edx
jmp case.0x59752a.10
call fcn.0041093d
mov eax, dword [eax + 0x386]
mov edi, dword [ebp + 0x14]
fld dword [eax + 8]
fld qword [ebp + 0x1c]
fadd qword [edi]
fmulp st(1)
fstp qword [esp + 0x3c]
call fcn.0041093d
mov ecx, dword [eax + 0x386]
fld dword [ecx + 8]
fld qword [ebp + 0x24]
fadd qword [edi + 8]
fsubr qword [esi + 0x1aed]
fmulp st(1)
fstp qword [esp + 0x24]
call fcn.0041093d
mov edx, dword [eax + 0x386]
push 0x68
fld dword [edx + 8]
fmul qword [edi + 0x18]
fstp qword [esp + 0x38]
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov byte [esp + 0x2a38], 6
je 0x598e2e
fld qword [esp + 0x3c]
call sub.MSVCRT.dll__ftol
fld qword [esp + 0x24]
mov dword [esp + 0xec], eax
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0x34]
push 0x401921fb
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x3c]
push 0x54442d18
push 0
push 0
push eax
lea edx, [esp + 0x100]
push ecx
push edx
mov ecx, edi
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZArc::constructor_class_CPoint___double__double__double_]
jmp 0x598e30
mov ebx, dword [ebp + 0x14]
lea ecx, [esp + 0xc]
lea eax, [ebx + 0x57]
push eax
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0xc]
mov byte [esp + 0x2a38], 7
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a38], 8
call sub.MFC42.DLL_CString::MakeLower
call fcn.0041093d
mov edx, dword [eax + 0x386]
fld dword [edx + 8]
fld qword [ebp + 0x1c]
fadd qword [ebx]
fmulp st(1)
fstp qword [esp + 0x34]
call fcn.0041093d
mov eax, dword [eax + 0x386]
push str.piece_name:
lea ecx, [esp + 0x18]
fld dword [eax + 8]
fld qword [ebp + 0x24]
fadd qword [ebx + 8]
fsubr qword [esi + 0x1aed]
fmulp st(1)
fstp qword [esp + 0x30]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jge 0x598bd1
push str.piece:
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jge 0x598bd1
push str.size:
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jl 0x597bde
push 0x3a
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_1
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0xc4]
mov ecx, dword [ecx - 8]
sub ecx, eax
dec ecx
push ecx
push edx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Right
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0xc
mov byte [esp + 0x2a3c], 0xc
call fcn.0063d800
lea ecx, [esp + 0xc4]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0xc
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0xc
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esi + 0x4b2]
push 0x5f
push 0x20
add ecx, 0xc
call sub.MFC42.DLL_CString::Replace
jmp 0x598d30
push str.material:
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jge 0x598b65
push str.fabric:
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jge 0x598b65
push str.quantity:
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jl 0x597cb6
cmp dword [esi + 0x9e], 1
je 0x598803
mov eax, dword [esi + 0x4b2]
cmp dword [eax + 0x14], 0xffffffff
jne 0x598803
push 0x3a
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_1
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x5c]
mov ecx, dword [ecx - 8]
sub ecx, eax
dec ecx
push ecx
push edx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x2a3c], 0xe
call fcn.0063d800
lea ecx, [esp + 0x5c]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
push 0x20
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimLeft_2
push 0x20
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimRight_2
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
mov ecx, dword [esi + 0x4b2]
add esp, 4
mov dword [ecx + 0x14], eax
jmp 0x598d30
push 0x6a097c
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
je 0x598803
cmp dword [esi + 0x9e], 2
jne 0x598019
push str.annotation:
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jl 0x598019
push 0x6bdc68
lea ecx, [esp + 0x18]
call fcn.0063d7e2
mov edx, dword [esp + 0xc]
mov ecx, dword [edx - 8]
lea edi, [ecx - 1]
test edi, edi
jle 0x597db4
mov al, byte [edi + edx]
cmp al, 0x30
jb 0x597d1a
cmp al, 0x39
jbe 0x597d26
cmp al, 0x58
je 0x597d30
cmp al, 0x78
je 0x597d30
cmp al, 0x2a
je 0x597d30
dec edi
test edi, edi
jg 0x597d0f
jmp 0x597db4
sub ecx, edi
lea edx, [esp + 0x64]
dec ecx
push ecx
push edx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a3c], 0xf
call fcn.0063d800
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
mov ecx, dword [esi + 0x4b2]
add esp, 4
lea edx, [esp + 0xc8]
mov dword [ecx + 0x18], eax
push edi
push edx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x2a3c], 0x10
call fcn.0063d800
lea ecx, [esp + 0xc8]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
push 0x3a
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_1
test eax, eax
jl 0x597dff
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x50]
mov ecx, dword [ecx - 8]
sub ecx, eax
dec ecx
push ecx
push edx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x2a3c], 0x11
call fcn.0063d800
lea ecx, [esp + 0x50]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
push 0x20
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimLeft_2
push 0x20
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimRight_2
mov eax, dword [esp + 0xc]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x598803
push 0x6ac294
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
mov edi, eax
test edi, edi
jl 0x597f29
lea ecx, [esp + 0xa0]
push edi
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 8
mov byte [esp + 0x2a3c], 0x12
call fcn.0063d800
lea ecx, [esp + 0xa0]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 8
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esi + 0x4b2]
push 0x6ac294
add ecx, 8
call sub.MFC42.DLL_CString::TrimRight_1
mov eax, dword [esi + 0x4b2]
push 0x6bdc68
add eax, 0x10
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x598803
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0xc]
mov eax, dword [edx - 8]
sub eax, edi
sub eax, 2
push eax
lea eax, [esp + 0x5c]
push eax
call sub.MFC42.DLL_CString::Right
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
mov byte [esp + 0x2a3c], 0x13
call fcn.0063d800
mov byte [esp + 0x2a38], 8
lea ecx, [esp + 0x58]
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 0x6ac294
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_1
jmp 0x598803
push 0x20
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_1
mov edi, eax
test edi, edi
jl 0x598001
lea ecx, [esp + 0xa8]
push edi
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 8
mov byte [esp + 0x2a3c], 0x14
call fcn.0063d800
lea ecx, [esp + 0xa8]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 8
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esi + 0x4b2]
push 0x6ac294
add ecx, 8
call sub.MFC42.DLL_CString::TrimRight_1
mov eax, dword [esi + 0x4b2]
push 0x6bdc68
add eax, 0x10
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x598803
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0xc]
mov eax, dword [edx - 8]
sub eax, edi
dec eax
push eax
lea eax, [esp + 0x64]
push eax
call sub.MFC42.DLL_CString::Right
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
mov byte [esp + 0x2a3c], 0x15
call fcn.0063d800
mov byte [esp + 0x2a38], 8
lea ecx, [esp + 0x60]
jmp 0x597efc
lea ecx, [esp + 0xc]
push ecx
mov ecx, dword [esi + 0x4b2]
add ecx, 8
call fcn.0063d800
jmp 0x598d30
cmp dword [esi + 0x9e], 1
jne 0x598850
mov eax, dword [esi + 0x4b2]
push 0x6bdc68
add eax, 0x10
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x598850
push str.annotation:
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jl 0x598850
push 0x3a
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_1
mov edx, dword [esp + 0xc]
mov ecx, dword [edx - 8]
sub ecx, eax
lea eax, [esp + 0xb0]
dec ecx
push ecx
push eax
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x2a3c], 0x16
call fcn.0063d800
lea ecx, [esp + 0xb0]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
push 0x20
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimLeft_2
push 0x20
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx - 8]
test eax, eax
je 0x598803
push 0x6ac290
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
mov edi, eax
test edi, edi
jge 0x5980f4
push 0x6ac28c
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
mov edi, eax
push 1
push 0x1b
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::CString_4
mov bl, 0x17
push 0x24
lea ecx, [esp + 0x28]
mov byte [esp + 0x2a3c], bl
call sub.MFC42.DLL_CString::operator_2
push 0x41
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::operator_2
push 1
push 0x1b
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::CString_4
push 0x28
lea ecx, [esp + 0x20]
mov byte [esp + 0x2a3c], 0x18
call sub.MFC42.DLL_CString::operator_2
push 0x4a
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::operator_2
test edi, edi
jle 0x598202
lea edx, [esp + 0x68]
push edi
push edx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
mov byte [esp + 0x2a3c], 0x19
call fcn.0063d800
lea ecx, [esp + 0x68]
mov byte [esp + 0x2a38], 0x18
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_1
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi + 0x4b2]
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_1
mov edx, dword [esi + 0x4b2]
mov dword [edx + 0x14], 1
jmp 0x5987e2
push 0x6ac288
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jge 0x598224
push 0x6ac284
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jle 0x5982df
push eax
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
mov byte [esp + 0x2a3c], 0x1a
call fcn.0063d800
lea ecx, [esp + 0xb8]
mov byte [esp + 0x2a38], 0x18
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, dword [esi + 0x4b2]
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_1
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x4b2]
push edx
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_1
mov eax, dword [esi + 0x4b2]
mov dword [eax + 0x14], 2
jmp 0x5987e2
push 0x6ac280
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jge 0x598301
push 0x6ac27c
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jle 0x5983bc
lea ecx, [esp + 0xc0]
push eax
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
mov byte [esp + 0x2a3c], 0x1b
call fcn.0063d800
lea ecx, [esp + 0xc0]
mov byte [esp + 0x2a38], 0x18
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 0x4b2]
push edx
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_1
mov ecx, dword [esi + 0x4b2]
mov dword [ecx + 0x14], 3
jmp 0x5987e2
push 0x6ac278
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jge 0x5983de
push 0x6ac274
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jle 0x598499
lea edx, [esp + 0xac]
push eax
push edx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
mov byte [esp + 0x2a3c], 0x1c
call fcn.0063d800
lea ecx, [esp + 0xac]
mov byte [esp + 0x2a38], 0x18
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_1
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi + 0x4b2]
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_1
mov edx, dword [esi + 0x4b2]
mov dword [edx + 0x14], 4
jmp 0x5987e2
push 0x6ac270
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jge 0x5984bb
push 0x6ac26c
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jle 0x598576
push eax
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
mov byte [esp + 0x2a3c], 0x1d
call fcn.0063d800
lea ecx, [esp + 0x94]
mov byte [esp + 0x2a38], 0x18
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, dword [esi + 0x4b2]
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_1
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x4b2]
push edx
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_1
mov eax, dword [esi + 0x4b2]
mov dword [eax + 0x14], 5
jmp 0x5987e2
push 0x6ac268
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jge 0x598598
push 0x6ac264
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jle 0x598653
lea ecx, [esp + 0xbc]
push eax
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
mov byte [esp + 0x2a3c], 0x1e
call fcn.0063d800
lea ecx, [esp + 0xbc]
mov byte [esp + 0x2a38], 0x18
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 0x4b2]
push edx
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_1
mov ecx, dword [esi + 0x4b2]
mov dword [ecx + 0x14], 6
jmp 0x5987e2
push 0x6ac260
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jge 0x598675
push 0x6ac25c
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jle 0x598730
lea edx, [esp + 0x9c]
push eax
push edx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
mov byte [esp + 0x2a3c], 0x1f
call fcn.0063d800
lea ecx, [esp + 0x9c]
mov byte [esp + 0x2a38], 0x18
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_1
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi + 0x4b2]
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_1
mov edx, dword [esi + 0x4b2]
mov dword [edx + 0x14], 7
jmp 0x5987e2
push 0x6ac258
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jge 0x598752
push 0x6ac254
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
jle 0x59882a
push eax
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
mov byte [esp + 0x2a3c], 0x20
call fcn.0063d800
lea ecx, [esp + 0xb4]
mov byte [esp + 0x2a38], 0x18
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 1
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimRight_2
mov ecx, dword [esi + 0x4b2]
mov dword [ecx + 0x14], 8
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2a38], bl
call fcn.0063d7fa
lea ecx, [esp + 0x24]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a38], 7
call fcn.0063d7fa
lea ecx, [esp + 0xc]
mov byte [esp + 0x2a38], 0
call fcn.0063d7fa
jmp case.0x59752a.10
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2a38], bl
call fcn.0063d7fa
lea ecx, [esp + 0x24]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
jmp 0x598d30
push str.comment:
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
je 0x5989c5
push str.annotation:
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
je 0x5989c5
push str.category:
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
test eax, eax
je 0x5989c5
mov eax, dword [esi + 0x99]
test eax, eax
je 0x598d30
push 0x20
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimLeft_2
push 0x20
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimRight_2
fld qword [esp + 0x34]
call sub.MSVCRT.dll__ftol
fld qword [esp + 0x2c]
mov edi, eax
call sub.MSVCRT.dll__ftol
push 0xffffff38
push eax
push edi
mov ecx, esi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], eax
call fcn.00403071
mov edi, eax
test edi, edi
jne 0x598943
push 0x441
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov byte [esp + 0x2a38], 0x24
je 0x598926
push 0
push 0
push 0
push 0x1b
push 0
lea edx, [esp + 0x30]
push 0
push edx
mov ecx, edi
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZPoint::constructor_class_CPoint___int__struct_ZUnit___int__struct_ZGradData____int___int__]
mov dword [edi], 0x6701d4
jmp 0x598928
xor edi, edi
mov ecx, dword [esi + 0x4b2]
push edi
add ecx, 0x68
mov byte [esp + 0x2a3c], 8
mov eax, dword [ecx + 8]
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
push 0x169
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
call sub.MFC42.DLL_operatornew
mov ebx, eax
add esp, 4
mov dword [esp + 0x2c], ebx
test ebx, ebx
mov byte [esp + 0x2a38], 0x25
je 0x598999
push 0
push 0
push 0x40000000
push 0
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call sub.MFC42.DLL_CString::CString_1
push edi
mov ecx, ebx
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZInfo::constructor_class_ZObject___class_CString__double__double_]
mov edi, eax
jmp 0x59899b
xor edi, edi
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov dword [edi + 0x91], 0
mov byte [esp + 0x2a38], 8
mov dword [edi + 0x95], 0x3ff00000
push eax
jmp 0x598b32
push 0x3a
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_1
mov edx, dword [esp + 0xc]
mov ecx, dword [edx - 8]
sub ecx, eax
lea eax, [esp + 0xa4]
dec ecx
push ecx
push eax
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x2a3c], 0x21
call fcn.0063d800
lea ecx, [esp + 0xa4]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
push 0x20
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimLeft_2
push 0x20
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::TrimRight_2
fld qword [esp + 0x34]
call sub.MSVCRT.dll__ftol
fld qword [esp + 0x2c]
mov edi, eax
call sub.MSVCRT.dll__ftol
push 0xffffff38
push eax
push edi
mov ecx, esi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], eax
call fcn.00403071
mov edi, eax
test edi, edi
jne 0x598ab5
push 0x441
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov byte [esp + 0x2a38], 0x22
je 0x598a98
push 0
push 0
push 0
push 0x1b
push 0
lea ecx, [esp + 0x30]
push 0
push ecx
mov ecx, edi
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZPoint::constructor_class_CPoint___int__struct_ZUnit___int__struct_ZGradData____int___int__]
mov dword [edi], 0x6701d4
jmp 0x598a9a
xor edi, edi
mov ecx, dword [esi + 0x4b2]
push edi
add ecx, 0x68
mov byte [esp + 0x2a3c], 8
mov eax, dword [ecx + 8]
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
mov edx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
push 0x169
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
call sub.MFC42.DLL_operatornew
mov ebx, eax
add esp, 4
mov dword [esp + 0x2c], ebx
test ebx, ebx
mov byte [esp + 0x2a38], 0x23
je 0x598b0b
push 0
push 0
push 0x40000000
push 0
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call sub.MFC42.DLL_CString::CString_1
push edi
mov ecx, ebx
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZInfo::constructor_class_ZObject___class_CString__double__double_]
mov edi, eax
jmp 0x598b0d
xor edi, edi
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov dword [edi + 0x91], 0
mov byte [esp + 0x2a38], 8
mov dword [edi + 0x95], 0x3ff00000
push eax
push ecx
lea ecx, [esp + 0x104]
call dword [sym.imp.zmathdll.dll_public:_double___thiscall_ZData::M_Radian_double_]
fchs
fstp qword [edi + 0x99]
mov esi, dword [esi + 0x4b2]
push edi
add esi, 0x90
mov ecx, esi
mov eax, dword [esi + 8]
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
jmp 0x598d30
push 0x3a
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_1
mov edx, dword [esp + 0xc]
mov ecx, dword [edx - 8]
sub ecx, eax
lea eax, [esp + 0x48]
dec ecx
push ecx
push eax
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Right
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0x10
mov byte [esp + 0x2a3c], 0xd
call fcn.0063d800
lea ecx, [esp + 0x48]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 0x10
jmp 0x598d2b
push 0x6bdc68
lea ecx, [esp + 0x18]
call fcn.0063d7e2
mov edx, dword [esp + 0xc]
mov ecx, dword [edx - 8]
lea edi, [ecx - 1]
test edi, edi
jle 0x598cbe
mov al, byte [edi + edx]
cmp al, 0x30
jb 0x598bfc
cmp al, 0x39
jbe 0x598c08
cmp al, 0x58
je 0x598c12
cmp al, 0x78
je 0x598c12
cmp al, 0x2a
je 0x598c12
dec edi
test edi, edi
jg 0x598bf1
jmp 0x598cbe
sub ecx, edi
dec ecx
push ecx
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x2a3c], 9
call fcn.0063d800
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.MSVCRT.dll_atoi]
mov ecx, dword [esi + 0x4b2]
add esp, 4
mov dword [ecx + 0x18], eax
mov eax, dword [esi + 0x4b2]
mov edx, dword [eax + 0x18]
and edx, 0x80000001
jns 0x598c74
dec edx
or edx, 0xfffffffe
inc edx
jne 0x598c7f
mov dword [eax + 0x14], 0
jmp 0x598c86
mov dword [eax + 0x14], 1
lea eax, [esp + 0x90]
push edi
push eax
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x2a3c], 0xa
call fcn.0063d800
lea ecx, [esp + 0x90]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
push 0x3a
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_1
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x98]
mov ecx, dword [ecx - 8]
sub ecx, eax
dec ecx
push ecx
push edx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Right
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 8
mov byte [esp + 0x2a3c], 0xb
call fcn.0063d800
lea ecx, [esp + 0x98]
mov byte [esp + 0x2a38], 8
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 8
call sub.MFC42.DLL_CString::TrimLeft_2
mov ecx, dword [esi + 0x4b2]
push 0x20
add ecx, 8
call sub.MFC42.DLL_CString::TrimRight_2
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a38], 7
call fcn.0063d7fa
lea ecx, [esp + 0xc]
mov byte [esp + 0x2a38], 0
call fcn.0063d7fa
jmp case.0x59752a.10
call fcn.0041093d
mov eax, dword [eax + 0x386]
mov edi, dword [ebp + 0x14]
fld dword [eax + 8]
fld qword [ebp + 0x1c]
fadd qword [edi]
fmulp st(1)
fstp qword [esp + 0x3c]
call fcn.0041093d
mov ecx, dword [eax + 0x386]
fld dword [ecx + 8]
fld qword [ebp + 0x24]
fadd qword [edi + 8]
fsubr qword [esi + 0x1aed]
fmulp st(1)
fstp qword [esp + 0x14]
call fcn.0041093d
mov edx, dword [eax + 0x386]
push 0x68
fld dword [edx + 8]
fmul qword [edi + 0x18]
fstp qword [esp + 0x20]
fld qword [edi + 0x20]
fmul qword [0x670248]
fstp qword [esp + 0x38]
fld qword [edi + 0x28]
fmul qword [0x670248]
fstp qword [esp + 0x28]
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov byte [esp + 0x2a38], 0x26
je 0x598e2e
fld qword [esp + 0x3c]
call sub.MSVCRT.dll__ftol
fld qword [esp + 0x14]
mov dword [esp + 0xd4], eax
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x28]
push eax
push ecx
lea eax, [esp + 0xe8]
push edx
push eax
mov ecx, edi
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZArc::constructor_class_CPoint___double__double__double_]
jmp 0x598e30
xor eax, eax
mov dword [eax + 0x24], ebx
mov esi, dword [esi + 0x4b2]
add esi, 0x54
push eax
mov byte [esp + 0x2a3c], 0
mov ecx, dword [esi + 8]
push ecx
mov ecx, esi
call sub.MFC42.DLL_CPtrArray::SetAtGrow
jmp case.0x59752a.10
call fcn.0041093d
mov ecx, dword [eax + 0x386]
mov edi, dword [ebp + 0x14]
fld dword [ecx + 8]
fld qword [ebp + 0x1c]
fadd qword [edi]
fmulp st(1)
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x70], eax
call fcn.0041093d
mov edx, dword [eax + 0x386]
fld dword [edx + 8]
fld qword [ebp + 0x24]
fadd qword [edi + 8]
fsubr qword [esi + 0x1aed]
fmulp st(1)
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x74], eax
call fcn.0041093d
mov eax, dword [eax + 0x386]
fld dword [eax + 8]
fld qword [ebp + 0x1c]
fadd qword [edi + 0x18]
fmulp st(1)
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x78], eax
call fcn.0041093d
mov ecx, dword [eax + 0x386]
fld dword [ecx + 8]
fld qword [ebp + 0x24]
fadd qword [edi + 0x20]
fsubr qword [esi + 0x1aed]
fmulp st(1)
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x7c], eax
call fcn.0041093d
mov edx, dword [eax + 0x386]
fld dword [edx + 8]
fld qword [ebp + 0x1c]
fadd qword [edi + 0x30]
fmulp st(1)
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x80], eax
call fcn.0041093d
mov eax, dword [eax + 0x386]
fld dword [eax + 8]
fld qword [ebp + 0x24]
fadd qword [edi + 0x38]
fsubr qword [esi + 0x1aed]
fmulp st(1)
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x84], eax
call fcn.0041093d
mov ecx, dword [eax + 0x386]
fld dword [ecx + 8]
fld qword [ebp + 0x1c]
fadd qword [edi + 0x48]
fmulp st(1)
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x88], eax
call fcn.0041093d
mov edx, dword [eax + 0x386]
fld dword [edx + 8]
fld qword [ebp + 0x24]
fadd qword [edi + 0x50]
fsubr qword [esi + 0x1aed]
fmulp st(1)
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x8c], eax
push 0x34
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
xor ebx, ebx
mov byte [esp + 0x2a38], 0x27
cmp edi, ebx
je 0x598fbb
push 2
lea ecx, [edi + 4]
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZPointArray::constructor_int_]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], ebx
mov dword [edi + 0x1c], ebx
mov dword [edi + 0x20], ebx
mov eax, dword [sym.imp.zmathdll.dll_const_ZPolyline::vftable]
mov dword [edi + 0x30], ebx
mov dword [edi], eax
mov dword [edi + 0x24], 1
jmp 0x598fbd
xor edi, edi
mov ebx, dword [sym.imp.zmathdll.dll_public:_int___thiscall_ZPolyline::AddPoint_class_CPoint_const__]
lea ecx, [esp + 0x70]
push ecx
mov ecx, edi
mov byte [esp + 0x2a3c], 0
call ebx
lea edx, [esp + 0x78]
mov ecx, edi
push edx
call ebx
mov eax, dword [esp + 0x24]
push edi
mov dword [edi + 0x24], eax
mov ecx, dword [esi + 0x4b2]
add ecx, 0x2c
mov eax, dword [ecx + 8]
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
push 0x34
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov byte [esp + 0x2a38], 0x28
je 0x599040
push 2
lea ecx, [edi + 4]
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZPointArray::constructor_int_]
xor eax, eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
mov ecx, dword [sym.imp.zmathdll.dll_const_ZPolyline::vftable]
mov dword [edi + 0x30], eax
mov dword [edi], ecx
mov dword [edi + 0x24], 1
jmp 0x599042
xor edi, edi
lea edx, [esp + 0x78]
mov ecx, edi
push edx
mov byte [esp + 0x2a3c], 0
call ebx
lea eax, [esp + 0x80]
mov ecx, edi
push eax
call ebx
mov ecx, dword [esp + 0x24]
push edi
mov dword [edi + 0x24], ecx
mov ecx, dword [esi + 0x4b2]
add ecx, 0x2c
mov eax, dword [ecx + 8]
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
push 0x34
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov byte [esp + 0x2a38], 0x29
je 0x5990c2
push 2
lea ecx, [edi + 4]
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZPointArray::constructor_int_]
xor eax, eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
mov edx, dword [sym.imp.zmathdll.dll_const_ZPolyline::vftable]
mov dword [edi + 0x30], eax
mov dword [edi], edx
mov dword [edi + 0x24], 1
jmp 0x5990c4
xor edi, edi
lea eax, [esp + 0x80]
mov ecx, edi
push eax
mov byte [esp + 0x2a3c], 0
call ebx
lea ecx, [esp + 0x88]
push ecx
mov ecx, edi
call ebx
mov edx, dword [esp + 0x24]
push edi
mov dword [edi + 0x24], edx
mov ecx, dword [esi + 0x4b2]
add ecx, 0x2c
mov eax, dword [ecx + 8]
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
push 0x34
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov byte [esp + 0x2a38], 0x2a
je 0x599147
push 2
lea ecx, [edi + 4]
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZPointArray::constructor_int_]
xor eax, eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
mov ecx, dword [sym.imp.zmathdll.dll_const_ZPolyline::vftable]
mov dword [edi + 0x30], eax
mov dword [edi], ecx
mov dword [edi + 0x24], 1
jmp 0x599149
xor edi, edi
lea edx, [esp + 0x88]
mov ecx, edi
push edx
mov byte [esp + 0x2a3c], 0
call ebx
lea eax, [esp + 0x70]
mov ecx, edi
push eax
call ebx
mov ecx, dword [esp + 0x24]
push edi
mov dword [edi + 0x24], ecx
mov esi, dword [esi + 0x4b2]
add esi, 0x2c
mov ecx, esi
mov eax, dword [esi + 8]
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
jmp case.0x59752a.10
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0x128]
mov eax, dword [edx + 0x38]
push ecx
push 0x400
push ebx
mov dword [esp + 0x134], eax
call fcn.00410d61
add esp, 0xc
test eax, eax
jbe case.0x59752a.10
push 0xa4
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov byte [esp + 0x2a38], 0x2b
je 0x5992a2
lea ecx, [edi + 4]
call sub.MFC42.DLL_CString::CString
lea ecx, [edi + 8]
mov byte [esp + 0x2a38], 0x2c
call sub.MFC42.DLL_CString::CString
lea ecx, [edi + 0xc]
mov byte [esp + 0x2a38], 0x2d
call sub.MFC42.DLL_CString::CString
lea ecx, [edi + 0x10]
mov byte [esp + 0x2a38], 0x2e
call sub.MFC42.DLL_CString::CString
lea ecx, [edi + 0x2c]
mov byte [esp + 0x2a38], 0x2f
call fcn.0063d896
mov dword [edi + 0x2c], 0x6701bc
lea ecx, [edi + 0x40]
mov byte [esp + 0x2a38], 0x30
call fcn.0063d896
mov dword [edi + 0x40], 0x6701bc
lea ecx, [edi + 0x54]
mov byte [esp + 0x2a38], 0x31
call fcn.0063d896
mov dword [edi + 0x54], 0x67018c
lea ecx, [edi + 0x68]
mov byte [esp + 0x2a38], 0x32
call fcn.0063d896
mov dword [edi + 0x68], 0x6701a4
lea ecx, [edi + 0x7c]
mov byte [esp + 0x2a38], 0x33
call fcn.0063d896
mov dword [edi + 0x7c], 0x6701a4
lea ecx, [edi + 0x90]
mov byte [esp + 0x2a38], 0x34
call fcn.0063d896
mov dword [edi + 0x90], 0x66e944
jmp 0x5992a4
xor edi, edi
lea edx, [esp + 0x12c]
lea ecx, [edi + 4]
push edx
mov byte [esp + 0x2a3c], 0
mov dword [esi + 0x4b2], edi
call fcn.0063d7e2
mov edx, dword [esi + 0x4b2]
mov eax, 0x7fffffff
mov ecx, eax
push 0xffffffffffffffff
mov dword [edx + 0x1c], eax
push 0
mov dword [edx + 0x20], ecx
mov edx, dword [esi + 0x4b2]
mov dword [edx + 0x24], eax
mov dword [edx + 0x28], ecx
mov eax, dword [esi + 0x4b2]
mov dword [eax], 0
mov ecx, dword [esi + 0x4b2]
mov dword [ecx + 0x14], 0xffffffff
mov edx, dword [esi + 0x4b2]
mov dword [edx + 0x18], 2
mov ecx, dword [esi + 0x4b2]
add ecx, 0x2c
call sub.MFC42.DLL_CPtrArray::SetSize
mov ecx, dword [esi + 0x4b2]
push 0xffffffffffffffff
add ecx, 0x54
push 0
call sub.MFC42.DLL_CPtrArray::SetSize
mov ecx, dword [esi + 0x4b2]
push 0xffffffffffffffff
add ecx, 0x68
push 0
call sub.MFC42.DLL_CPtrArray::SetSize
mov ecx, dword [esi + 0x4b2]
push 0xffffffffffffffff
add ecx, 0x7c
push 0
call sub.MFC42.DLL_CPtrArray::SetSize
push 0
lea eax, [esp + 0xa34]
push 1
lea ecx, [esp + 0x5a8]
push eax
lea edx, [esp + 0x138]
push ecx
push edx
push ebx
call fcn.0040e9f3
add esp, 0x18
test eax, eax
jbe 0x5993dd
mov edi, dword [ebp + 0x14]
fld qword [ebp + 0x24]
fadd qword [edi + 8]
push 0
push 0
sub esp, 8
mov eax, dword [ebp + 0x18]
lea ecx, [esp + 0xa40]
lea edx, [esp + 0x5b0]
fstp qword [esp]
fld qword [ebp + 0x1c]
fadd qword [edi]
sub esp, 8
fstp qword [esp]
push eax
mov eax, dword [ebp + 0xc]
push ecx
push edx
push eax
push ebx
call fcn.00401a78
push 0
lea ecx, [esp + 0xa60]
push 4
lea edx, [esp + 0x5d4]
push ecx
lea eax, [esp + 0x164]
push edx
push eax
push ebx
call fcn.0040e9f3
add esp, 0x44
test eax, eax
ja 0x59937b
mov ecx, dword [esi + 0x4b2]
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], edi
mov eax, dword [ecx + 0x34]
cmp eax, edi
mov dword [esp + 0x24], eax
jle 0x5995c9
mov eax, dword [esi + 0x4b2]
mov edx, dword [eax + 0x30]
mov ecx, dword [edx + edi*4]
cmp dword [ecx + 0x24], 1
jne 0x59959d
mov edx, dword [eax + 0x30]
push 0
mov ecx, dword [edx + edi*4]
add ecx, 4
call dword [sym.imp.zmathdll.dll_public:_class_CPoint____thiscall_ZPointArray::operator___int_]
mov ecx, eax
mov eax, dword [ecx]
mov dword [esp + 0xc], eax
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
mov dword [esp + 0x10], edx
jne 0x59947e
mov eax, dword [esi + 0x4b2]
mov ecx, dword [eax + 0x30]
lea ebx, [ecx + edi*4]
mov ecx, dword [ecx + edi*4]
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x5995c9
call dword [sym.imp.zmathdll.dll_public:_int___thiscall_ZPolyline::GetPointNum_void_const]
mov ecx, dword [ebx]
dec eax
push eax
add ecx, 4
call dword [sym.imp.zmathdll.dll_public:_class_CPoint____thiscall_ZPointArray::operator___int_]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0xc]
cmp eax, ecx
jne 0x59947e
cmp dword [esp + 0x10], edx
je 0x5995c9
mov edx, dword [esp + 0x1c]
push 0xffffffffffffffff
inc edx
mov ecx, esi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x14]
push edx
push eax
call fcn.00403071
mov ebx, eax
test ebx, ebx
jne 0x5994f9
push 0x441
call sub.MFC42.DLL_operatornew
mov ebx, eax
add esp, 4
mov dword [esp + 0x2c], ebx
test ebx, ebx
mov byte [esp + 0x2a38], 0x35
je 0x5994dc
push 0
push 0
push 0
push 0x1b
push 0
lea eax, [esp + 0x20]
push 0
push eax
mov ecx, ebx
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZPoint::constructor_class_CPoint___int__struct_ZUnit___int__struct_ZGradData____int___int__]
mov dword [ebx], 0x6701d4
jmp 0x5994de
xor ebx, ebx
mov ecx, dword [esi + 0x4b2]
push ebx
add ecx, 0x68
mov byte [esp + 0x2a3c], 0
mov eax, dword [ecx + 8]
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x439], 0
mov dword [ebx + 0x7d], 2
test eax, eax
mov eax, dword [esi + 0x4b2]
mov ecx, dword [eax + 0x30]
jne 0x59952a
mov edx, dword [ecx + edi*4]
push 1
mov dword [esp + 0x18], edx
push edi
lea ecx, [eax + 0x2c]
jmp 0x59958e
mov ecx, dword [ecx + edi*4]
call dword [sym.imp.zmathdll.dll_public:_int___thiscall_ZPolyline::GetPointNum_void_const]
lea ebx, [eax - 1]
test ebx, ebx
jl 0x599560
mov edx, dword [esi + 0x4b2]
push 0
push ebx
mov eax, dword [edx + 0x30]
mov ecx, dword [eax + edi*4]
add ecx, 4
call dword [sym.imp.zmathdll.dll_public:_class_CPoint____thiscall_ZPointArray::operator___int_]
mov ecx, dword [esp + 0x18]
push eax
call dword [sym.imp.zmathdll.dll_public:_int___thiscall_ZPolyline::AddPointAt_class_CPoint_const___int_]
dec ebx
jns 0x59953a
mov ecx, dword [esi + 0x4b2]
mov edx, dword [ecx + 0x30]
mov ebx, dword [edx + edi*4]
test ebx, ebx
je 0x599582
lea ecx, [ebx + 4]
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZPointArray::destructor_void_]
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esi + 0x4b2]
push 1
push edi
add ecx, 0x2c
call sub.MFC42.DLL_CPtrArray::RemoveAt
mov eax, dword [esp + 0x24]
dec edi
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
inc edi
cmp edi, eax
jl 0x5993fc
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x5995c9
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x4b2]
push 1
push eax
add ecx, 0x2c
push 0
call sub.MFC42.DLL_CPtrArray::InsertAt
mov eax, dword [esi + 0x4b2]
mov edi, dword [sym.imp.MSVCRT.dll__mbscmp]
add eax, 4
push 0x6bdc68
mov eax, dword [eax]
push eax
call edi
add esp, 8
test eax, eax
je 0x5996c3
mov eax, dword [esi + 0x4b2]
push 0x6bdc68
add eax, 8
mov eax, dword [eax]
push eax
call edi
add esp, 8
test eax, eax
jne 0x5996c3
mov eax, dword [esi + 0x4b2]
push 0x6bdc68
add eax, 0xc
mov eax, dword [eax]
push eax
call edi
add esp, 8
test eax, eax
jne 0x5996c3
mov ecx, dword [esi + 0x4b2]
push 0x5f
add ecx, 4
call sub.MFC42.DLL_CString::ReverseFind
mov edi, eax
test edi, edi
jle 0x5996c3
lea ecx, [esp + 0x4c]
push edi
push ecx
mov ecx, dword [esi + 0x4b2]
add ecx, 4
call sub.MFC42.DLL_CString::Left
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 8
mov byte [esp + 0x2a3c], 0x36
call fcn.0063d800
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a38], 0
call fcn.0063d7fa
mov ecx, dword [esi + 0x4b2]
add ecx, 4
mov edx, dword [ecx]
mov eax, dword [edx - 8]
sub eax, edi
dec eax
push eax
lea eax, [esp + 0x58]
push eax
call sub.MFC42.DLL_CString::Right
mov ecx, dword [esi + 0x4b2]
push eax
add ecx, 0xc
mov byte [esp + 0x2a3c], 0x37
call fcn.0063d800
lea ecx, [esp + 0x54]
mov byte [esp + 0x2a38], 0
call fcn.0063d7fa
call fcn.00410ea6
jmp case.0x59752a.10
push 0x34
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
mov byte [esp + 0x2a38], 0x38
je 0x599718
push 2
lea ecx, [edi + 4]
call dword [sym.imp.zmathdll.dll_public:_void___thiscall_ZPointArray::constructor_int_]
xor eax, eax
mov ebx, edi
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
mov ecx, dword [sym.imp.zmathdll.dll_const_ZPolyline::vftable]
mov dword [edi + 0x30], eax
mov dword [edi], ecx
mov dword [edi + 0x24], 1
jmp 0x59971a
xor ebx, ebx
mov byte [esp + 0x2a38], 0
call fcn.0041093d
mov edx, dword [eax + 0x386]
mov edi, dword [ebp + 0x14]
fld dword [edx + 8]
mov eax, dword [edi]
fld qword [ebp + 0x1c]
fadd qword [eax]
fmulp st(1)
fstp qword [esp + 0x3c]
call fcn.0041093d
mov ecx, dword [eax + 0x386]
mov edx, dword [edi]
fld dword [ecx + 8]
fld qword [ebp + 0x24]
fadd qword [edx + 8]
fsubr qword [esi + 0x1aed]
fmulp st(1)
fld qword [esp + 0x3c]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x3c], eax
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0xc]
mov dword [esp + 0xc], ecx
push edx
mov ecx, ebx
mov dword [esp + 0x14], eax
call dword [sym.imp.zmathdll.dll_public:_int___thiscall_ZPolyline::AddPoint_class_CPoint_const__]
test eax, eax
je 0x59979b
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x10]
mov dword [ecx + eax*4 - 4], 1
mov ecx, dword [edi + 4]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x14], eax
jle 0x5999a9
mov dword [esp + 0x1c], eax
call fcn.0041093d
mov edx, dword [eax + 0x386]
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi]
fld dword [edx + 8]
fld qword [ebp + 0x1c]
fadd qword [eax + ecx]
add eax, ecx
fmulp st(1)
fstp qword [esp + 0x3c]
call fcn.0041093d
mov ecx, dword [eax + 0x386]
mov edx, dword [edi]
mov eax, dword [esp + 0x1c]
fld dword [ecx + 8]
fld qword [ebp + 0x24]
fadd qword [eax + edx + 8]
fsubr qword [esi + 0x1aed]
fmulp st(1)
fld qword [esp + 0x3c]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x120], eax
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0xc]
cmp ecx, edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
jne 0x59982b
cmp eax, dword [esp + 0x10]
je 0x59998a
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebx
call dword [sym.imp.zmathdll.dll_public:_int___thiscall_ZPolyline::AddPoint_class_CPoint_const__]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x14]
dec edx
cmp eax, edx
jne 0x599881
test byte [edi + 8], 1
je 0x59996c
call fcn.0041093d
mov eax, dword [eax + 0x386]
mov ecx, dword [edi]
fld dword [eax + 8]
fld qword [ebp + 0x1c]
fadd qword [ecx]
fmulp st(1)
fstp qword [esp + 0x3c]
call fcn.0041093d
mov edx, dword [eax + 0x386]
mov eax, dword [edi]
fld dword [edx + 8]
fld qword [ebp + 0x24]
fadd qword [eax + 8]
jmp 0x5998bd
call fcn.0041093d
mov ecx, dword [eax + 0x386]
mov edx, dword [edi]
mov eax, dword [esp + 0x1c]
fld dword [ecx + 8]
fld qword [ebp + 0x1c]
fadd qword [eax + edx + 0x3c]
fmulp st(1)
fstp qword [esp + 0x3c]
call fcn.0041093d
mov ecx, dword [eax + 0x386]
mov edx, dword [edi]
mov eax, dword [esp + 0x1c]
fld dword [ecx + 8]
fld qword [ebp + 0x24]
fadd qword [eax + edx + 0x44]
fsubr qword [esi + 0x1aed]
fmulp st(1)
fld qword [esp + 0x3c]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x34], eax
call sub.MSVCRT.dll__ftol
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
cmp ecx, eax
mov ecx, dword [esp + 0x30]
jne 0x5998f5
cmp dword [esp + 0x38], ecx
je 0x59998a
mov edx, dword [esp + 0xc]
push ecx
mov ecx, dword [esp + 0x14]
push eax
push ecx
push edx
lea ecx, [esp + 0x10c]
call dword [sym.imp.zmathdll.dll_public:_double___thiscall_ZData::M_Angle_class_CPoint__class_CPoint_]
sub esp, 8
lea ecx, [esp + 0x104]
fstp qword [esp]
call dword [sym.imp.zmathdll.dll_public:_double___thiscall_ZData::M_Degrees_double_]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push ecx
fstp qword [esp + 0x44]
push edx
push eax
lea ecx, [esp + 0x10c]
call dword [sym.imp.zmathdll.dll_public:_double___thiscall_ZData::M_Angle_class_CPoint__class_CPoint_]
sub esp, 8
lea ecx, [esp + 0x104]
fstp qword [esp]
call dword [sym.imp.zmathdll.dll_public:_double___thiscall_ZData::M_Degrees_double_]
fsub qword [esp + 0x3c]
fabs
fcomp qword [0x679000]
fnstsw ax
test ah, 0x41
jne 0x59997a
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x10]
mov dword [ecx + eax*4 - 4], 1
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, dword [edi + 4]
inc eax
add edx, 0x3c
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
jl 0x5997b0
mov ecx, dword [esp + 0x24]
push ebx
mov dword [ebx + 0x24], ecx
mov dl, byte [edi + 8]
and edx, 1
mov dword [ebx + 0x30], edx
mov esi, dword [esi + 0x4b2]
add esi, 0x2c
mov ecx, esi
mov eax, dword [esi + 8]
push eax
call sub.MFC42.DLL_CPtrArray::SetAtGrow
jmp case.0x59752a.10
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
lea edx, [esp + 0x364]
mov ecx, dword [eax + 0x50]
push edx
push 0x400
push esi
mov dword [esp + 0x370], ecx
call fcn.00410d61
add esp, 0xc
test eax, eax
jbe case.0x59752a.10
push 0
lea eax, [esp + 0x1a34]
push 1
lea ecx, [esp + 0x7f0]
push eax
lea edx, [esp + 0x374]
push ecx
push edx
push esi
call fcn.0040e9f3
add esp, 0x18
test eax, eax
jbe case.0x59752a.10
mov edi, dword [ebp + 0x28]
mov ebx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
push 0
push 0
push edi
push ebx
push eax
push ecx
lea eax, [esp + 0x1a48]
push edx
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x804]
push eax
push ecx
push edx
push esi
call fcn.00401a78
push 0
lea eax, [esp + 0x1a60]
push 4
lea ecx, [esp + 0x81c]
push eax
lea edx, [esp + 0x3a0]
push ecx
push edx
push esi
call fcn.0040e9f3
add esp, 0x44
test eax, eax
ja 0x599a30
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x2a38], 0xffffffff
test ecx, ecx
je 0x599aa1
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x2a30]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret