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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x144
mov eax, dword [0x43a010]
xor eax, esp
mov dword [esp + 0x140], eax
mov eax, dword [ebp + 8]
fld qword [0x429950]
mov ecx, dword [ebp + 0xc]
fstp qword [esp + 0x5c]
mov edx, dword [ebp + 0x10]
push ebx
push esi
push edi
xor edi, edi
cmp dword [0x43cec8], edi
mov dword [esp + 0x38], eax
mov eax, 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x5c], edi
je 0x40f807
cmp dword [0x43d020], edi
mov dword [esp + 0x2c], eax
je 0x40f80b
mov dword [esp + 0x2c], edi
cmp dword [0x43cea8], edi
je 0x40fa93
mov eax, dword [0x43d688]
push eax
lea ecx, [esp + 0x7c]
push 0xc8
push ecx
call sub.MSVCR80.dll_fgets
add esp, 0xc
test eax, eax
mov dword [esp + 0xc], eax
je 0x40fa6f
jmp 0x40f840
add edi, 1
cmp dword [0x43ceec], 0
mov dword [esp + 0x18], edi
je 0x40f8fb
cmp edi, 1
jne 0x40f8fb
movsx edx, byte [eax]
push edx
call sub.MSVCR80.dll_isdigit
add esp, 4
test eax, eax
je 0x40f8f7
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0xc]
push eax
push ecx
call fcn.004171d0
mov edx, dword [esp + 0x14]
mov esi, eax
movsx eax, byte [edx]
push eax
mov dword [esp + 0x30], esi
call sub.MSVCR80.dll_isspace
add esp, 0xc
test eax, eax
je 0x40f8bb
lea ebx, [ebx]
mov eax, dword [esp + 0xc]
add eax, 1
mov dword [esp + 0xc], eax
movsx ecx, byte [eax]
push ecx
call sub.MSVCR80.dll_isspace
add esp, 4
test eax, eax
jne 0x40f8a0
mov eax, dword [esp + 0xc]
lea edx, [esp + 0xc]
push edx
push eax
call fcn.004171d0
add esp, 8
cmp eax, 1
jne 0x40f8ea
mov ecx, dword [esp + 0xc]
push ecx
push esi
call fcn.0040d310
mov edi, eax
add esp, 8
add edi, 1
jmp 0x40fa44
mov dword [esp + 0x24], 0
jmp 0x40fa44
mov eax, dword [esp + 0xc]
mov ecx, 5
mov edx, str.begin
lea esi, [esp + 0x78]
lea esp, [esp]
mov ebx, dword [esi]
cmp ebx, dword [edx]
jne 0x40f928
sub ecx, 4
add edx, 4
add esi, 4
cmp ecx, 4
jae 0x40f910
test ecx, ecx
je 0x40f98d
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x40f977
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x40f989
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x40f977
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x40f989
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x40f977
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x40f989
movzx edi, byte [esi]
movzx edx, byte [edx]
sub edi, edx
je 0x40f989
test edi, edi
mov edi, dword [esp + 0x18]
mov ecx, 1
jg 0x40f98f
or ecx, 0xffffffff
jmp 0x40f98f
mov edi, dword [esp + 0x18]
xor ecx, ecx
test ecx, ecx
je 0x40fa6b
mov ecx, 5
mov edx, str.BEGIN
lea esi, [esp + 0x78]
mov ebx, dword [esi]
cmp ebx, dword [edx]
jne 0x40f9bd
sub ecx, 4
add edx, 4
add esi, 4
cmp ecx, 4
jae 0x40f9a5
test ecx, ecx
je 0x40fa22
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x40fa0c
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x40fa1e
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x40fa0c
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x40fa1e
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x40fa0c
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x40fa1e
movzx edi, byte [esi]
movzx ecx, byte [edx]
sub edi, ecx
je 0x40fa1e
test edi, edi
mov edi, dword [esp + 0x18]
mov ecx, 1
jg 0x40fa24
or ecx, 0xffffffff
jmp 0x40fa24
mov edi, dword [esp + 0x18]
xor ecx, ecx
test ecx, ecx
je 0x40fa6b
cmp byte [0x43d1f4], 0
jne 0x40fa44
push 0xff
push eax
push 0x43d1f4
call sub.MSVCR80.dll_strncat
add esp, 0xc
mov edx, dword [0x43d688]
push edx
lea eax, [esp + 0x7c]
push 0xc8
push eax
call sub.MSVCR80.dll_fgets
add esp, 0xc
test eax, eax
mov dword [esp + 0xc], eax
jne 0x40f840
jmp 0x40fa6f
test eax, eax
jne 0x40fa93
mov ecx, dword [0x43d690]
push str.qhull_input_error:_missing__begin__for_cdd_formated_input_n
push 0x17ba
push ecx
call fcn.00416e30
push 0
push 0
push 1
call fcn.00416b80
add esp, 0x18
mov edx, dword [0x43d688]
push edx
lea eax, [esp + 0x7c]
push 0xc8
push eax
call sub.MSVCR80.dll_fgets
add esp, 0xc
test eax, eax
mov dword [esp + 0xc], eax
je 0x40fd09
add edi, 1
mov dword [esp + 0x18], edi
mov ecx, 5
mov edx, str.begin
mov esi, eax
jmp 0x40fad0
mov ebx, dword [esi]
cmp ebx, dword [edx]
jne 0x40fae8
sub ecx, 4
add edx, 4
add esi, 4
cmp ecx, 4
jae 0x40fad0
test ecx, ecx
je 0x40fb4d
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x40fb37
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x40fb49
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x40fb37
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x40fb49
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x40fb37
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x40fb49
movzx edi, byte [esi]
movzx ecx, byte [edx]
sub edi, ecx
je 0x40fb49
test edi, edi
mov edi, dword [esp + 0x18]
mov ecx, 1
jg 0x40fb4f
or ecx, 0xffffffff
jmp 0x40fb4f
mov edi, dword [esp + 0x18]
xor ecx, ecx
test ecx, ecx
je 0x40fbe6
mov ecx, 5
mov edx, str.BEGIN
mov esi, eax
mov ebx, dword [esi]
cmp ebx, dword [edx]
jne 0x40fb7b
sub ecx, 4
add edx, 4
add esi, 4
cmp ecx, 4
jae 0x40fb63
test ecx, ecx
je 0x40fbe0
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x40fbca
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x40fbdc
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x40fbca
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x40fbdc
movzx edi, byte [esi]
movzx ebx, byte [edx]
sub edi, ebx
jne 0x40fbca
sub ecx, 1
add edx, 1
add esi, 1
test ecx, ecx
je 0x40fbdc
movzx edi, byte [esi]
movzx edx, byte [edx]
sub edi, edx
je 0x40fbdc
test edi, edi
mov edi, dword [esp + 0x18]
mov ecx, 1
jg 0x40fbe2
or ecx, 0xffffffff
jmp 0x40fbe2
mov edi, dword [esp + 0x18]
xor ecx, ecx
test ecx, ecx
jne 0x40fbee
mov dword [esp + 0x5c], 1
mov cl, byte [eax]
test cl, cl
mov ebx, dword [esp + 0x14]
je 0x40fcf7
mov esi, dword [esp + 0x1c]
movsx eax, cl
push eax
call sub.MSVCR80.dll_isspace
add esp, 4
test eax, eax
je 0x40fc2b
mov eax, dword [esp + 0xc]
add eax, 1
mov dword [esp + 0xc], eax
movsx ecx, byte [eax]
push ecx
call sub.MSVCR80.dll_isspace
add esp, 4
test eax, eax
jne 0x40fc10
mov eax, dword [esp + 0xc]
mov cl, byte [eax]
test cl, cl
je 0x40fcf7
movsx edx, cl
push edx
call sub.MSVCR80.dll_isdigit
add esp, 4
test eax, eax
je 0x40fccf
test esi, esi
jne 0x40fc6b
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0xc]
push eax
push ecx
call fcn.004171d0
add esp, 8
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x40fcbf
mov eax, dword [esp + 0xc]
lea edx, [esp + 0xc]
push edx
push eax
call fcn.004171d0
mov ebx, eax
add esp, 8
cmp ebx, 1
mov dword [esp + 0x14], ebx
jne 0x40fcf3
cmp esi, 2
jl 0x40fd01
cmp dword [0x43ceec], 0
je 0x40fd01
cmp dword [0x43cea8], 0
jne 0x40fd01
mov ecx, dword [esp + 0xc]
push ecx
push esi
call fcn.0040d310
xor ebx, ebx
add esp, 8
add edi, eax
mov dword [esp + 0x24], esi
xor esi, esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0xc]
mov cl, byte [eax]
test cl, cl
jne 0x40fc00
jmp 0x40fcf7
cmp byte [0x43d1f4], 0
jne 0x40fcf3
mov edx, dword [esp + 0xc]
push 0xff
push edx
push 0x43d1f4
call sub.MSVCR80.dll_strncat
add esp, 0xc
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0xc]
test ebx, ebx
je 0x40fa93
jmp 0x40fd05
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x40fd2c
mov eax, dword [0x43d690]
push str.qhull_input_error:_short_input_file.__Did_not_find_dimension_and_number_of_points_n
push 0x17bb
push eax
call fcn.00416e30
push 0
push 0
push 1
call fcn.00416b80
add esp, 0x18
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
cmp ebx, ecx
jle 0x40fd44
mov eax, ebx
mov ebx, ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
cmp ebx, 2
jge 0x40fd6e
mov ecx, dword [0x43d690]
push ebx
push str.qhull_input_error:_dimension__d_first_number__should_be_at_least_2_n
push 0x184c
push ecx
call fcn.00416e30
push 0
push 0
push 1
call fcn.00416b80
add esp, 0x1c
cmp dword [esp + 0x2c], 0
mov esi, dword [esp + 0x28]
je 0x40fdb6
cmp dword [0x43cea8], 0
mov dword [0x43d01c], 0
je 0x40fd90
mov dword [esi], ebx
jmp 0x40fd95
lea edx, [ebx + 1]
mov dword [esi], edx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
mov dword [ecx], eax
cmp dword [0x43ce9c], 0
je 0x40fe56
add eax, 1
mov dword [ecx], eax
jmp 0x40fe56
cmp dword [0x43ceec], 0
je 0x40fe3a
cmp ebx, 3
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
lea eax, [ebx - 1]
mov dword [esi], eax
mov dword [edx], ecx
jge 0x40fdf7
mov eax, dword [0x43d690]
push ebx
push str.qhull_input_error:_dimension__d_first_number__includes_offset__should_be_at_least_3_for_halfspaces_n
push 0x184d
push eax
call fcn.00416e30
push 0
push 0
push 1
call fcn.00416b80
add esp, 0x1c
mov eax, dword [esp + 0x24]
test eax, eax
je 0x40fe2d
cmp eax, dword [esi]
je 0x40fe56
mov edx, dword [0x43d690]
push ebx
mov ecx, eax
push ecx
push str.qhull_input_error:_dimension__d_of_feasible_point_is_not_one_less_than_dimension__d_for_halfspaces_n
push 0x184e
push edx
call fcn.00416e30
push 0
push 0
push 1
call fcn.00416b80
add esp, 0x20
jmp 0x40fe56
mov eax, dword [esi]
push eax
call fcn.0040d530
add esp, 4
jmp 0x40fe56
cmp dword [0x43cea8], 0
je 0x40fe4a
lea ecx, [ebx - 1]
mov dword [esi], ecx
jmp 0x40fe4c
mov dword [esi], ebx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
mov dword [eax], edx
mov eax, dword [esi]
add eax, eax
add eax, eax
add eax, eax
cmp dword [0x43ceec], 0
mov dword [0x43d698], eax
je 0x40fea0
add eax, 8
push eax
call fcn.00416e20
add esp, 4
cmp dword [0x43cea8], 0
mov dword [esp + 0x34], eax
mov dword [0x43d7b4], eax
je 0x40fe93
mov dword [esp + 0x58], eax
add eax, 8
jmp 0x40fe9c
mov ecx, dword [esi]
lea edx, [eax + ecx*8]
mov dword [esp + 0x58], edx
mov dword [esp + 0x50], eax
mov eax, ebx
imul eax, eax, 0x15
cmp eax, 0x1f4
mov dword [0x43d7b0], eax
jge 0x40febb
mov eax, 0x1f4
mov dword [0x43d7b0], eax
add eax, 1
push eax
call fcn.00416e20
mov edx, dword [esp + 0x3c]
mov dword [0x43d7ac], eax
mov eax, dword [esp + 0x64]
mov dword [eax], 1
mov ecx, dword [esi]
imul ecx, dword [edx]
add ecx, ecx
add ecx, ecx
add ecx, ecx
push ecx
call fcn.00416e20
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [0x43d7b8], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], ebx
je 0x40ff19
cmp dword [0x43d7ac], 0
je 0x40ff19
cmp dword [0x43ceec], 0
je 0x40ff42
cmp dword [0x43d7b4], 0
jne 0x40ff42
mov eax, dword [esp + 0x14]
mov ecx, dword [0x43d690]
push eax
push str.qhull_error:_insufficient_memory_to_read__d_points_n
push 0x17bc
push ecx
call fcn.00416e30
push 0
push 0
push 4
call fcn.00416b80
add esp, 0x1c
cmp dword [esp + 0x2c], 0
fldz
je 0x40ff71
cmp dword [0x43ce9c], 0
je 0x40ff71
mov eax, dword [esi]
mov edx, eax
imul edx, dword [esp + 0x14]
add eax, 0xffffffff
lea ebx, [ebx + edx*8]
mov dword [esp + 0x30], ebx
je 0x40ff71
sub eax, 1
fst qword [ebx + eax*8]
jne 0x40ff69
mov ebx, dword [esp + 0x14]
fstp qword [esp + 0x60]
imul ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x48]
test esi, esi
jne 0x40ffaa
mov eax, dword [0x43d688]
mov ecx, dword [0x43d7b0]
mov edx, dword [0x43d7ac]
push eax
push ecx
push edx
call sub.MSVCR80.dll_fgets
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
je 0x410392
test esi, esi
jne 0x410065
mov cl, byte [eax]
add edi, 1
cmp cl, 0x65
je 0x40ffcd
cmp cl, 0x45
jne 0x410065
movzx ecx, byte [eax]
sub ecx, 0x65
jne 0x40ffed
movzx ecx, byte [eax + 1]
sub ecx, 0x6e
lea edx, [eax + 1]
jne 0x40ffed
movzx ecx, byte [edx + 1]
add edx, 1
sub ecx, 0x64
je 0x40fffb
test ecx, ecx
mov edx, 1
jg 0x40fffd
or edx, 0xffffffff
jmp 0x40fffd
xor edx, edx
test edx, edx
je 0x410035
movzx ecx, byte [eax]
sub ecx, 0x45
jne 0x410021
movzx ecx, byte [eax + 1]
sub ecx, 0x4e
lea edx, [eax + 1]
jne 0x410021
movzx ecx, byte [edx + 1]
add edx, 1
sub ecx, 0x44
je 0x41002f
test ecx, ecx
mov edx, 1
jg 0x410031
or edx, 0xffffffff
jmp 0x410031
xor edx, edx
test edx, edx
jne 0x410065
cmp dword [0x43cea8], 0
jne 0x410392
cmp dword [esp + 0x5c], 0
je 0x410065
mov eax, dword [0x43d690]
push str.qhull_input_warning:_the_input_appears_to_be_in_cdd_format.__If_so__use_Fd_n
push 0x1b92
push eax
call fcn.00416e30
mov eax, dword [esp + 0x18]
add esp, 0xc
mov cl, byte [eax]
xor esi, esi
test cl, cl
je 0x4102dc
movsx ecx, cl
push ecx
call sub.MSVCR80.dll_isspace
add esp, 4
test eax, eax
je 0x41009c
mov eax, dword [esp + 0xc]
add eax, 1
mov dword [esp + 0xc], eax
movsx edx, byte [eax]
push edx
call sub.MSVCR80.dll_isspace
add esp, 4
test eax, eax
jne 0x410081
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x74]
push eax
push ecx
call fcn.004171a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x7c]
add esp, 8
cmp eax, ecx
je 0x41033b
cmp dword [esp + 0x54], 0
jne 0x4100c9
mov dword [esp + 0x54], edi
mov eax, ecx
mov ecx, dword [esp + 0x40]
add ecx, 1
cmp ecx, ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x40], ecx
jg 0x4102cc
cmp dword [0x43ceec], 0
mov ecx, dword [esp + 0x20]
je 0x41010c
cmp dword [0x43cea8], 0
mov eax, dword [esp + 0x34]
je 0x4100fe
fchs
fstp qword [eax]
add eax, 8
mov dword [esp + 0x34], eax
jmp 0x410196
mov edx, dword [esp + 0x10]
fst qword [edx]
mov eax, dword [0x43cea8]
add dword [esp + 0x10], 8
test eax, eax
je 0x41015e
test ecx, ecx
jne 0x41015e
fld1
fucompp
fnstsw ax
test ah, 0x44
jnp 0x410157
mov eax, dword [0x43d690]
push edi
push str.qhull_input_error:_for_cdd_format__point_at_line__d_does_not_start_with_1_n
push 0x17bd
push eax
call fcn.00416e30
push 0
push 0
push 1
call fcn.00416b80
mov ecx, dword [esp + 0x3c]
add esp, 0x1c
sub dword [esp + 0x10], 8
jmp 0x410196
cmp dword [esp + 0x2c], 0
je 0x410194
cmp dword [0x43ce9c], 0
fld st(0)
fmul st(1)
fadd qword [esp + 0x60]
fstp qword [esp + 0x60]
je 0x410194
test eax, eax
mov eax, dword [esp + 0x30]
je 0x41018c
fadd qword [eax + ecx*8 - 8]
fstp qword [eax + ecx*8 - 8]
jmp 0x410196
fadd qword [eax + ecx*8]
fstp qword [eax + ecx*8]
jmp 0x410196
fstp st(0)
add ecx, 1
cmp ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
jne 0x4102c6
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x20], 0
je 0x4101ec
fld qword [esp + 0x60]
mov ecx, dword [esp + 0x10]
fst qword [ecx]
add dword [esp + 0x10], 8
fcom qword [esp + 0x68]
fnstsw ax
test ah, 0x41
jne 0x4101df
fstp qword [esp + 0x68]
fldz
fstp qword [esp + 0x60]
jmp 0x410278
fstp st(0)
fldz
fstp qword [esp + 0x60]
jmp 0x410278
cmp dword [0x43ceec], 0
je 0x410278
mov edx, dword [0x43d0c8]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
push edx
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x1c]
push edx
mov edx, dword [ecx]
push eax
push edx
call fcn.0041e8a0
add esp, 0x18
test eax, eax
jne 0x41026e
mov eax, dword [0x43d690]
push edi
push str.The_halfspace_was_on_line__d_n
push 0x1f70
push eax
call fcn.00416e30
add esp, 0x10
cmp dword [esp + 0x5c], 0
je 0x410260
mov ecx, dword [0x43d690]
push str.The_input_appears_to_be_in_cdd_format.__If_so__you_should_use_option_Fd_n
push 0x1f71
push ecx
call fcn.00416e30
add esp, 0xc
push 0
push 0
push 1
call fcn.00416b80
add esp, 0xc
mov edx, dword [0x43d7b4]
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0xc]
movsx ecx, byte [eax]
push ecx
call sub.MSVCR80.dll_isspace
add esp, 4
test eax, eax
je 0x4102ab
lea esp, [esp]
mov eax, dword [esp + 0xc]
add eax, 1
mov dword [esp + 0xc], eax
movsx edx, byte [eax]
push edx
call sub.MSVCR80.dll_isspace
add esp, 4
test eax, eax
jne 0x410290
mov eax, dword [esp + 0xc]
cmp byte [eax], 0
je 0x4102d8
cmp dword [esp + 0x4c], 0
mov esi, 1
jne 0x4102ce
mov dword [esp + 0x4c], edi
jmp 0x4102ce
mov eax, dword [esp + 0xc]
jmp 0x4102ce
fstp st(0)
mov cl, byte [eax]
test cl, cl
jne 0x410071
test esi, esi
jne 0x4102ee
cmp dword [esp + 0x3c], 0
jne 0x4102ee
cmp dword [esp + 0x20], 0
je 0x4102ee
mov dword [esp + 0x3c], edi
cmp dword [esp + 0x48], 0
jne 0x41032e
mov ecx, eax
sub ecx, dword [0x43d7ac]
cmp ecx, dword [0x43d7b0]
jl 0x41032e
mov eax, dword [0x43d690]
push ecx
push edi
push str.qhull_input_error:_line__d_contained_more_than__d_characters_n
push 0x17be
push eax
call fcn.00416e30
push 0
push 0
push 1
call fcn.00416b80
mov eax, dword [esp + 0x2c]
add esp, 0x20
mov dword [esp + 0x48], 0
jmp 0x40ff82
cmp byte [0x43d1f4], 0
fstp st(0)
jne 0x41035d
push 0xff
push eax
push 0x43d1f4
call sub.MSVCR80.dll_strncat
mov eax, dword [esp + 0x18]
add esp, 0xc
cmp byte [eax], 0
je 0x41036d
cmp dword [esp + 0x44], 0
jne 0x41036d
mov dword [esp + 0x44], edi
test esi, esi
jne 0x4102ee
cmp dword [esp + 0x3c], esi
jne 0x4102ee
cmp dword [esp + 0x20], esi
je 0x4102ee
mov dword [esp + 0x3c], edi
jmp 0x4102dc
cmp dword [esp + 0x40], ebx
je 0x4104b0
mov eax, dword [esp + 0x40]
cdq
idiv dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
mov esi, edx
mov edi, eax
jg 0x4103b3
mov edi, ecx
mov edx, dword [esp + 0x54]
push edx
push esi
push eax
mov eax, dword [esp + 0x28]
push eax
push ecx
mov ecx, dword [0x43d690]
push str.qhull_warning:_instead_of__d__d_dimensional_points__input_contains_n_d_points_and__d_extra_coordinates.__Line__d_is_the_first_npoint
push 0x1ba1
push ecx
call fcn.00416e30
mov eax, dword [esp + 0x64]
xor ebx, ebx
add esp, 0x20
cmp eax, ebx
je 0x4103fd
mov edx, dword [0x43d690]
push eax
push str.__line__d_is_the_first_comment
push 0x1f73
push edx
call fcn.00416e30
add esp, 0x10
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x41041e
push eax
mov eax, dword [0x43d690]
push str.__line__d_is_the_first_short_nline
push 0x1f74
push eax
call fcn.00416e30
add esp, 0x10
mov eax, dword [esp + 0x4c]
cmp eax, ebx
je 0x410440
mov ecx, dword [0x43d690]
push eax
push str.__line__d_is_the_first_long_line
push 0x1f75
push ecx
call fcn.00416e30
add esp, 0x10
mov edx, dword [0x43d690]
push edi
push 0x42f130
push 0x1f76
push edx
call fcn.00416e30
add esp, 0x10
cmp dword [esp + 0x2c], ebx
mov dword [esp + 0x14], edi
je 0x41049b
cmp dword [0x43ce9c], ebx
je 0x41049b
mov edx, dword [esp + 0x30]
mov eax, esi
cmp eax, ebx
je 0x410490
mov ecx, dword [esp + 0x10]
sub ecx, 8
sub eax, 1
cmp eax, ebx
mov dword [esp + 0x10], ecx
fld qword [edx + eax*8]
fsub qword [ecx]
fstp qword [edx + eax*8]
jne 0x410476
mov eax, dword [esp + 0x38]
add edi, 1
mov dword [eax], edi
jmp 0x4104b6
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
neg esi
lea edx, [ecx + esi*8]
mov dword [esp + 0x10], edx
mov dword [eax], edi
jmp 0x4104b2
xor ebx, ebx
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x2c], ebx
je 0x41052f
cmp dword [0x43ce9c], ebx
je 0x41052f
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
sub eax, 1
je 0x4104e3
fild dword [esp + 0x14]
fld qword [edx + eax*8 - 8]
sub eax, 1
fdiv st(1)
fstp qword [edx + eax*8]
jne 0x4104d3
fstp st(0)
mov esi, dword [esp + 0x10]
cmp esi, edx
jne 0x4104f7
mov ecx, dword [ecx]
lea esi, [esi + ecx*8 - 8]
mov dword [esp + 0x10], esi
jmp 0x41051e
mov edi, dword [ecx]
sub edi, 1
xor eax, eax
test edi, edi
jle 0x41051e
fld qword [edx + eax*8]
add eax, 1
fstp qword [esi]
mov esi, dword [esp + 0x10]
mov edi, dword [ecx]
add esi, 8
sub edi, 1
cmp eax, edi
mov dword [esp + 0x10], esi
jl 0x410502
fld qword [esp + 0x68]
fmul qword [0x42f128]
fstp qword [esi]
add dword [esp + 0x10], 8
cmp byte [0x43d1f4], 0
je 0x41057e
mov eax, 0x43d1f4
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x410540
sub eax, edx
mov byte [eax + 0x43d1f3], cl
mov edi, str.._rbox_D4
mov esi, 0x43d1f4
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x41057e
mov eax, dword [0x43d690]
push str._nThis_is_the_qhull_test_case.__If_any_errors_or_core_dumps_occur__nrecompile_qhull_with_make_new.__If_errors_still_occur__there_is_nan_incompatibility.__You_should_try_a_different_compiler.__You_can_also_nchange_the_choices_in_user.h.__If_you_discover_the_source_of_the_problem__nplease_send_mail_to_qhull_bug_qhull.org._n_nType_qhull_for_a_short_list_of_options._n
push 0x1f77
push eax
call fcn.00416e30
add esp, 0xc
mov ecx, dword [0x43d7ac]
push ecx
call fcn.00416e10
mov eax, dword [0x43d7b4]
add esp, 4
cmp eax, ebx
mov dword [0x43d7ac], ebx
je 0x4105ab
push eax
call fcn.00416e10
add esp, 4
mov dword [0x43d7b4], ebx
cmp dword [0x43cef0], 1
mov dword [0x43d7b8], ebx
jl 0x4105dd
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [0x43d690]
push edx
push eax
push str.qh_readpoints:_read_in__d__d_dimensional_points_n
push 0x3f0
push ecx
call fcn.00416e30
add esp, 0x14
mov ecx, dword [esp + 0x14c]
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00427e50
mov esp, ebp
pop ebp
ret