Function at 0x52a8ff
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x8b4
mov eax, dword [0x59ad00]
xor eax, esp
mov dword [esp + 0x8b0], eax
fldz
mov eax, dword [ebp + 8]
fst qword [esp + 0x44]
push ebx
fst qword [esp + 0x50]
push esi
mov esi, dword [ebp + 0xc]
fst qword [esp + 0x94]
fst qword [esp + 0x8c]
mov byte [esi], 0
fst qword [esp + 0x6c]
push edi
fst qword [esp + 0x80]
push 0x596120
fst qword [esp + 0x7c]
push eax
fstp qword [esp + 0x90]
mov dword [esp + 0x74], esi
fld qword [0x57b628]
mov byte [esp + 0x4d], 0
fst qword [0x77aed8]
mov byte [esp + 0x4e], 0
fstp qword [0x77aed0]
mov byte [0x5f42b8], 0
fld qword [0x57b620]
fst qword [0x77af18]
fstp qword [0x77af10]
call fcn.0051c620
push 0
mov edi, eax
push 0x400
lea eax, [esp + 0x4c0]
push eax
push edi
call fcn.0052a540
add esp, 0x18
test al, al
je 0x52bd2f
push 1
push 0x400
lea ecx, [esp + 0xb0]
push ecx
push edi
call fcn.0052a540
add esp, 0x10
test al, al
je 0x52bd2f
mov ecx, 0x596124
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52a736
test dl, dl
je 0x52a732
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52a736
add eax, 2
add ecx, 2
test dl, dl
jne 0x52a716
xor eax, eax
jmp 0x52a73b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x52bd25
mov ebx, dword [sym.imp.MSVCR100.dll_atoi]
mov ecx, 0x596128
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52a775
test dl, dl
je 0x52a771
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52a775
add eax, 2
add ecx, 2
test dl, dl
jne 0x52a755
xor eax, eax
jmp 0x52a77a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x52b42a
mov ecx, 0x596130
lea eax, [esp + 0xa8]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52a7b0
test dl, dl
je 0x52a7ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52a7b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x52a790
xor eax, eax
jmp 0x52a7b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x52b42a
mov ecx, 0x596138
lea eax, [esp + 0xa8]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52a7f0
test dl, dl
je 0x52a7ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52a7f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x52a7d0
xor eax, eax
jmp 0x52a7f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x52b42a
mov ecx, 0x596140
lea eax, [esp + 0xa8]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52a830
test dl, dl
je 0x52a82c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52a830
add eax, 2
add ecx, 2
test dl, dl
jne 0x52a810
xor eax, eax
jmp 0x52a835
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x52b42a
mov ecx, str.LWPOLYLINE
lea eax, [esp + 0xa8]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52a870
test dl, dl
je 0x52a86c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52a870
add eax, 2
add ecx, 2
test dl, dl
jne 0x52a850
xor eax, eax
jmp 0x52a875
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52a9d5
call fcn.005117b0
fldz
xor bl, bl
fstp qword [esp + 0x60]
mov byte [esp + 0x44], bl
mov byte [esp + 0x45], bl
push 0
push 0x400
lea edx, [esp + 0x4b8]
push edx
push edi
call fcn.0052a540
add esp, 0x10
test al, al
je 0x52b8fc
push 1
push 0x400
lea eax, [esp + 0xb0]
push eax
push edi
call fcn.0052a540
add esp, 0x10
test al, al
je 0x52b8fc
lea ecx, [esp + 0x4b0]
push ecx
call dword [sym.imp.MSVCR100.dll_atoi]
mov esi, eax
lea eax, [esi - 0xa]
add esp, 4
cmp eax, 0x3c
ja case.0x52a8f8.11
movzx edx, byte [eax + 0x52bd54]
jmp dword [edx*4 + 0x52bd44]
cmp esi, 0xa
jne 0x52a95d
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.MSVCR100.dll_atof]
fstp qword [esp + 0x54]
add esp, 4
cmp byte [esp + 0x44], 0
mov bl, 1
je 0x52a892
fld qword [esp + 0x60]
mov edx, dword [esp + 0x6c]
sub esp, 0x18
fstp qword [esp + 0x10]
mov byte [edx], 1
fld qword [esp + 0x70]
fstp qword [esp + 8]
fld qword [esp + 0x68]
fstp qword [esp]
call fcn.005118e0
fldz
add esp, 0x18
xor bl, bl
fstp qword [esp + 0x60]
mov byte [esp + 0x44], bl
jmp case.0x52a8f8.11
lea ecx, [esp + 0xa8]
push ecx
call dword [sym.imp.MSVCR100.dll_atof]
fstp qword [esp + 0x5c]
add esp, 4
mov byte [esp + 0x44], 1
test bl, bl
je case.0x52a8f8.11
jmp 0x52a926
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.MSVCR100.dll_atof]
fstp qword [esp + 0x64]
add esp, 4
jmp case.0x52a8f8.11
lea ecx, [esp + 0xa8]
push ecx
call dword [sym.imp.MSVCR100.dll_atoi]
add esp, 4
and al, 1
mov byte [esp + 0x45], al
test esi, esi
jne 0x52a892
cmp byte [esp + 0x45], 0
je 0x52b8ba
fld qword [esp + 0x60]
sub esp, 8
fstp qword [esp]
call fcn.005117d0
add esp, 8
jmp 0x52b8ba
mov ecx, str.POLYLINE
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52aa01
test dl, dl
je 0x52a9fd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52aa01
add eax, 2
add ecx, 2
test dl, dl
jne 0x52a9e1
xor eax, eax
jmp 0x52aa06
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52ab77
mov byte [esp + 0x45], al
push 0
push 0x400
lea edx, [esp + 0x4b8]
push edx
push edi
call fcn.0052a540
add esp, 0x10
test al, al
je 0x52b943
push 1
push 0x400
lea eax, [esp + 0xb0]
push eax
push edi
call fcn.0052a540
add esp, 0x10
test al, al
je 0x52b943
lea ecx, [esp + 0x4b0]
push ecx
call ebx
add esp, 4
cmp eax, 0x46
jne 0x52aa79
lea edx, [esp + 0xa8]
push edx
call ebx
add esp, 4
and al, 1
mov byte [esp + 0x45], al
jmp 0x52aa12
test eax, eax
jne 0x52aa12
mov ecx, 0x596220
lea eax, [esp + 0xa8]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52aab0
test dl, dl
je 0x52aaac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52aab0
add eax, 2
add ecx, 2
test dl, dl
jne 0x52aa90
xor eax, eax
jmp 0x52aab5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x52ab5f
lea ecx, [ecx]
push 0
push 0x400
lea eax, [esp + 0x4b8]
push eax
push edi
call fcn.0052a540
add esp, 0x10
test al, al
je 0x52b98a
push 1
push 0x400
lea ecx, [esp + 0xb0]
push ecx
push edi
call fcn.0052a540
add esp, 0x10
test al, al
je 0x52b98a
mov ecx, 0x596260
lea eax, [esp + 0xa8]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52ab30
test dl, dl
je 0x52ab2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52ab30
add eax, 2
add ecx, 2
test dl, dl
jne 0x52ab10
xor eax, eax
jmp 0x52ab35
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52aac0
push 0x400
lea edx, [esp + 0xac]
push edx
lea eax, [esp + 0x4b8]
push eax
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
je 0x52b9d1
call fcn.005117b0
fldz
fstp qword [esp + 0x80]
mov byte [esp + 0x46], 1
jmp 0x52b8ba
mov ecx, str.VERTEX
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52aba3
test dl, dl
je 0x52ab9f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52aba3
add eax, 2
add ecx, 2
test dl, dl
jne 0x52ab83
xor eax, eax
jmp 0x52aba8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52acca
fldz
xor bl, bl
mov byte [esp + 0x44], bl
fstp qword [esp + 0x60]
lea esp, [esp]
push 0
push 0x400
lea ecx, [esp + 0x4b8]
push ecx
push edi
call fcn.0052a540
add esp, 0x10
test al, al
je 0x52ba18
push 1
push 0x400
lea edx, [esp + 0xb0]
push edx
push edi
call fcn.0052a540
add esp, 0x10
test al, al
je 0x52ba18
lea eax, [esp + 0x4b0]
push eax
call dword [sym.imp.MSVCR100.dll_atoi]
add esp, 4
cmp eax, 0xa
je 0x52ac52
cmp eax, 0x14
je 0x52ac33
cmp eax, 0x2a
jne 0x52ac6e
lea ecx, [esp + 0xa8]
push ecx
call dword [sym.imp.MSVCR100.dll_atof]
add esp, 4
jmp 0x52abb8
lea edx, [esp + 0xa8]
push edx
call dword [sym.imp.MSVCR100.dll_atof]
fstp qword [esp + 0x5c]
add esp, 4
mov byte [esp + 0x44], 1
jmp 0x52abc0
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.MSVCR100.dll_atof]
fstp qword [esp + 0x54]
add esp, 4
mov bl, 1
jmp 0x52abc0
test eax, eax
jne 0x52abc0
cmp byte [esp + 0x46], al
je 0x52b8ba
test bl, bl
je 0x52b8ba
cmp byte [esp + 0x44], al
je 0x52b8ba
fld qword [esp + 0x80]
sub esp, 0x18
fstp qword [esp + 0x10]
mov byte [esi], 1
fld qword [esp + 0x70]
fstp qword [esp + 8]
fld qword [esp + 0x68]
fstp qword [esp]
call fcn.005118e0
fld qword [esp + 0x78]
add esp, 0x18
fstp qword [esp + 0x80]
jmp 0x52b8ba
mov ecx, str.SEQEND
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52acf6
test dl, dl
je 0x52acf2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52acf6
add eax, 2
add ecx, 2
test dl, dl
jne 0x52acd6
xor eax, eax
jmp 0x52acfb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52ad90
cmp byte [esp + 0x45], al
je 0x52ad1e
fld qword [esp + 0x80]
sub esp, 8
fstp qword [esp]
call fcn.005117d0
add esp, 8
push 0x400
lea ecx, [esp + 0xac]
push ecx
lea edx, [esp + 0x4b8]
push edx
push edi
mov byte [esp + 0x56], 0
call fcn.0052a5f0
add esp, 0x10
test al, al
jne 0x52b8ba
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x5962e8
push 0x596310
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov al, byte [esp + 0xa8]
cmp al, 0x24
jne 0x52ae08
push 0x400
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x4b8]
push ecx
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
jne 0x52b8ba
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x596320
push 0x596348
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
cmp al, 0x7b
lea eax, [esp + 0xa8]
jne 0x52af75
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x52ae20
sub eax, edx
cmp byte [esp + eax + 0xa7], 0x7d
je 0x52af08
jmp 0x52ae40
push 0x400
lea edx, [esp + 0xac]
push edx
lea eax, [esp + 0x4b8]
push eax
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
je 0x52ba5f
mov ecx, 0x596390
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52ae92
test dl, dl
je 0x52ae8e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52ae92
add eax, 2
add ecx, 2
test dl, dl
jne 0x52ae72
xor eax, eax
jmp 0x52ae97
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52ae40
push 0x400
lea ecx, [esp + 0xac]
push ecx
lea edx, [esp + 0x4b8]
push edx
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
jne 0x52b8ba
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x596394
push 0x5963bc
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
push 0x400
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x4b8]
push ecx
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
jne 0x52b8ba
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x5963cc
push 0x5963f4
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov ecx, str.LAYER
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52afa0
test dl, dl
je 0x52af9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52afa0
add eax, 2
add ecx, 2
test dl, dl
jne 0x52af80
xor eax, eax
jmp 0x52afa5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52afec
lea esp, [esp]
push 0x400
lea edx, [esp + 0xac]
push edx
lea eax, [esp + 0x4b8]
push eax
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
je 0x52baa6
lea ecx, [esp + 0x4b0]
push ecx
call ebx
add esp, 4
test eax, eax
jne 0x52afb0
jmp 0x52b8ba
mov ecx, str.BLOCK
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b018
test dl, dl
je 0x52b014
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b018
add eax, 2
add ecx, 2
test dl, dl
jne 0x52aff8
xor eax, eax
jmp 0x52b01d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52b0f8
jmp 0x52b030
push 0x400
lea edx, [esp + 0xac]
push edx
lea eax, [esp + 0x4b8]
push eax
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
je 0x52baed
mov ecx, str.ENDBLK
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b082
test dl, dl
je 0x52b07e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b082
add eax, 2
add ecx, 2
test dl, dl
jne 0x52b062
xor eax, eax
jmp 0x52b087
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52b030
push 0x400
lea ecx, [esp + 0xac]
push ecx
lea edx, [esp + 0x4b8]
push edx
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
jne 0x52b8ba
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x59648c
push 0x5964b4
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov ecx, str.INSERT
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b124
test dl, dl
je 0x52b120
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b124
add eax, 2
add ecx, 2
test dl, dl
jne 0x52b104
xor eax, eax
jmp 0x52b129
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52b16c
lea ecx, [ecx]
push 0x400
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x4b8]
push ecx
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
je 0x52bb34
lea edx, [esp + 0x4b0]
push edx
call ebx
add esp, 4
test eax, eax
jne 0x52b130
jmp 0x52b8ba
mov ecx, str.SPLINE
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b198
test dl, dl
je 0x52b194
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b198
add eax, 2
add ecx, 2
test dl, dl
jne 0x52b178
xor eax, eax
jmp 0x52b19d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52b1dd
push 0x400
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x4b8]
push ecx
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
je 0x52bb7b
lea edx, [esp + 0x4b0]
push edx
call ebx
add esp, 4
test eax, eax
jne 0x52b1a1
jmp 0x52b8ba
mov ecx, str.ELLIPSE
lea eax, [esp + 0xa8]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b210
test dl, dl
je 0x52b20c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b210
add eax, 2
add ecx, 2
test dl, dl
jne 0x52b1f0
xor eax, eax
jmp 0x52b215
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52b25c
lea esp, [esp]
push 0x400
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x4b8]
push ecx
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
je 0x52bbc2
lea edx, [esp + 0x4b0]
push edx
call ebx
add esp, 4
test eax, eax
jne 0x52b220
jmp 0x52b8ba
mov ecx, str.TEXT
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b288
test dl, dl
je 0x52b284
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b288
add eax, 2
add ecx, 2
test dl, dl
jne 0x52b268
xor eax, eax
jmp 0x52b28d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52b2cd
push 0x400
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x4b8]
push ecx
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
je 0x52bc09
lea edx, [esp + 0x4b0]
push edx
call ebx
add esp, 4
test eax, eax
jne 0x52b291
jmp 0x52b8ba
mov ecx, str.DIMENSION
lea eax, [esp + 0xa8]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b300
test dl, dl
je 0x52b2fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b300
add eax, 2
add ecx, 2
test dl, dl
jne 0x52b2e0
xor eax, eax
jmp 0x52b305
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52b34c
lea esp, [esp]
push 0x400
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x4b8]
push ecx
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
je 0x52bc50
lea edx, [esp + 0x4b0]
push edx
call ebx
add esp, 4
test eax, eax
jne 0x52b310
jmp 0x52b8ba
mov ecx, str.HATCH
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b378
test dl, dl
je 0x52b374
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b378
add eax, 2
add ecx, 2
test dl, dl
jne 0x52b358
xor eax, eax
jmp 0x52b37d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52b3bd
push 0x400
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x4b8]
push ecx
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
je 0x52bc97
lea edx, [esp + 0x4b0]
push edx
call ebx
add esp, 4
test eax, eax
jne 0x52b381
jmp 0x52b8ba
push 0x400
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x4b8]
push ecx
push edi
call fcn.0052a5f0
add esp, 0x10
test al, al
jne 0x52b8ba
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push str.ReadDXFFile_____premature_end_of_file__n
push 0x596670
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
xor bl, bl
mov byte [esp + 0x44], 0
mov byte [esp + 0x4b], bl
mov byte [esp + 0x4f], bl
mov byte [esp + 0x49], bl
mov byte [esp + 0x4d], bl
mov byte [esp + 0x47], bl
mov byte [esp + 0x4a], bl
mov byte [esp + 0x48], bl
mov byte [esp + 0x4e], bl
mov byte [esp + 0x4c], bl
mov ecx, str.POINT
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b481
test dl, dl
je 0x52b47d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b481
add eax, 2
add ecx, 2
test dl, dl
jne 0x52b461
xor eax, eax
jmp 0x52b486
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52b48f
mov byte [esp + 0x4c], 1
mov ecx, str.LINE
lea eax, [esp + 0xa8]
jmp 0x52b4a0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b4c0
test dl, dl
je 0x52b4bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b4c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x52b4a0
xor eax, eax
jmp 0x52b4c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52b4ce
mov byte [esp + 0x4e], 1
mov ecx, 0x596154
lea eax, [esp + 0xa8]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b500
test dl, dl
je 0x52b4fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b500
add eax, 2
add ecx, 2
test dl, dl
jne 0x52b4e0
xor eax, eax
jmp 0x52b505
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52b50e
mov byte [esp + 0x48], 1
mov ecx, str.CIRCLE
lea eax, [esp + 0xa8]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b540
test dl, dl
je 0x52b53c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b540
add eax, 2
add ecx, 2
test dl, dl
jne 0x52b520
xor eax, eax
jmp 0x52b545
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x52b550
mov byte [esp + 0x4a], 1
mov edi, edi
push 0
push 0x400
lea edx, [esp + 0x4b8]
push edx
push edi
call fcn.0052a540
add esp, 0x10
test al, al
je 0x52bcde
push 1
push 0x400
lea eax, [esp + 0xb0]
push eax
push edi
call fcn.0052a540
add esp, 0x10
test al, al
je 0x52bcde
lea ecx, [esp + 0x4b0]
push ecx
call dword [sym.imp.MSVCR100.dll_atoi]
mov esi, eax
lea eax, [esi - 0xa]
add esp, 4
cmp eax, 0x29
ja case.0x52b5b6.12
movzx edx, byte [eax + 0x52bdb4]
jmp dword [edx*4 + 0x52bd94]
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.MSVCR100.dll_atof]
fstp qword [esp + 0x54]
mov bl, 1
jmp 0x52b676
lea ecx, [esp + 0xa8]
push ecx
call dword [sym.imp.MSVCR100.dll_atof]
fstp qword [esp + 0x5c]
mov byte [esp + 0x48], 1
jmp 0x52b676
lea edx, [esp + 0xa8]
push edx
call dword [sym.imp.MSVCR100.dll_atof]
fstp qword [esp + 0x9c]
mov byte [esp + 0x53], 1
jmp 0x52b676
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.MSVCR100.dll_atof]
fstp qword [esp + 0x94]
mov byte [esp + 0x4f], 1
jmp 0x52b676
lea ecx, [esp + 0xa8]
push ecx
call dword [sym.imp.MSVCR100.dll_atof]
fstp qword [esp + 0x74]
mov byte [esp + 0x4b], 1
jmp 0x52b676
lea edx, [esp + 0xa8]
push edx
call dword [sym.imp.MSVCR100.dll_atof]
fstp qword [esp + 0x7c]
mov byte [esp + 0x51], 1
jmp 0x52b676
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.MSVCR100.dll_atof]
fstp qword [esp + 0x8c]
mov byte [esp + 0x4d], 1
add esp, 4
test esi, esi
jne 0x52b550
test bl, bl
je 0x52b8ba
cmp byte [esp + 0x44], 0
je 0x52b8ba
cmp byte [esp + 0x4e], 0
mov ecx, dword [esp + 0x6c]
mov byte [ecx], 1
je 0x52b6ec
cmp byte [esp + 0x4f], 0
je 0x52b6ec
cmp byte [esp + 0x4b], 0
je 0x52b6ec
mov edx, dword [0x583f70]
fld qword [esp + 0x90]
push edx
sub esp, 0x20
fstp qword [esp + 0x18]
fld qword [esp + 0xbc]
fstp qword [esp + 0x10]
fld qword [esp + 0x7c]
fstp qword [esp + 8]
fld qword [esp + 0x74]
fstp qword [esp]
call fcn.00510dc0
add esp, 0x24
jmp 0x52b8ba
cmp byte [esp + 0x48], 0
je 0x52b7d5
cmp byte [esp + 0x47], 0
je 0x52b7d5
cmp byte [esp + 0x4d], 0
je 0x52b7d5
cmp byte [esp + 0x49], 0
je 0x52b7d5
fld qword [esp + 0x78]
mov eax, dword [0x583f70]
fld qword [0x584040]
push eax
fmul st(1), st(0)
push 1
fxch st(1)
sub esp, 0x10
fstp qword [esp + 0x90]
fmul qword [esp + 0xa0]
fst qword [esp + 0xa0]
fld qword [esp + 0x70]
fstp qword [esp + 8]
fld qword [esp + 0x68]
fstp qword [esp]
call sub.MSVCR100.dll__CIsin
fmul qword [esp + 0x88]
sub esp, 8
fadd qword [esp + 0x78]
fstp qword [esp]
fld qword [esp + 0xa8]
call sub.MSVCR100.dll__CIcos
fmul qword [esp + 0x90]
sub esp, 8
fadd qword [esp + 0x78]
fstp qword [esp]
fld qword [esp + 0xa0]
call sub.MSVCR100.dll__CIsin
fmul qword [esp + 0x98]
sub esp, 8
fadd qword [esp + 0x88]
fstp qword [esp]
fld qword [esp + 0xa8]
call sub.MSVCR100.dll__CIcos
fmul qword [esp + 0xa0]
sub esp, 8
fadd qword [esp + 0x88]
fstp qword [esp]
call fcn.00510ee0
add esp, 0x38
jmp 0x52b8ba
cmp byte [esp + 0x4a], 0
je 0x52b88c
cmp byte [esp + 0x47], 0
je 0x52b88c
fld qword [esp + 0x50]
mov ecx, dword [0x583f70]
fld st(0)
push ecx
fld qword [esp + 0x74]
push 1
fsub st(1), st(0)
sub esp, 0x30
fxch st(1)
fst qword [esp + 0xd8]
fxch st(1)
fadd st(2)
fst qword [esp + 0x98]
fld qword [esp + 0x90]
fst qword [esp + 0x28]
fxch st(3)
fstp qword [esp + 0x20]
fxch st(2)
fst qword [esp + 0x18]
fxch st(1)
fstp qword [esp + 0x10]
fstp qword [esp + 8]
fstp qword [esp]
call fcn.00510ee0
mov edx, dword [0x583f70]
fld qword [esp + 0x90]
add esp, 0x38
push edx
push 1
sub esp, 0x30
fst qword [esp + 0x28]
fld qword [esp + 0x88]
fstp qword [esp + 0x20]
fst qword [esp + 0x18]
fld qword [esp + 0x98]
fstp qword [esp + 0x10]
fstp qword [esp + 8]
fld qword [esp + 0xd8]
fstp qword [esp]
call fcn.00510ee0
add esp, 0x38
jmp 0x52b8ba
cmp byte [esp + 0x4c], 0
je 0x52b8ba
mov eax, dword [0x583f6c]
fld qword [esp + 0x58]
push eax
sub esp, 0x10
fstp qword [esp + 8]
fld qword [esp + 0x64]
fstp qword [esp]
call fcn.00510da0
add esp, 0x14
mov byte [0x5f42b8], 1
mov ecx, 0x596124
lea eax, [esp + 0xa8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x52b8e6
test dl, dl
je 0x52b8e2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x52b8e6
add eax, 2
add ecx, 2
test dl, dl
jne 0x52b8c6
xor eax, eax
jmp 0x52b8eb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x52bd25
mov esi, dword [esp + 0x6c]
jmp 0x52a743
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x5961a4
push 0x5961cc
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x5961e8
push 0x596210
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x596228
push 0x596250
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x596268
push 0x596290
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x5962a8
push 0x5962d0
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x596358
push 0x596380
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x59640c
push 0x596434
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x59644c
push 0x596474
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x5964cc
push 0x5964f4
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x59650c
push 0x596534
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x59654c
push 0x596574
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x59658c
push 0x5965b4
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x5965d0
push 0x5965f8
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x596610
push 0x596638
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll___iob_func]
mov byte [0x77af32], 1
call esi
mov edi, dword [sym.imp.MSVCR100.dll_fflush]
add eax, 0x20
push eax
call edi
add esp, 4
push 0x596160
push 0x596188
call esi
add eax, 0x40
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
call esi
add eax, 0x40
push eax
call edi
add esp, 0x10
push 2
call dword [sym.imp.MSVCR100.dll_exit]
push edi
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
mov ecx, dword [esp + 0x8bc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00551a8e
mov esp, ebp
pop ebp
ret