4065b4:	d9 ee                	fldz
4065b6:	dd 5d f4             	fstpl  -0xc(%ebp)
4065b9:	0f 86 9e 00 00 00    	jbe    0x40665d
4065bf:	57                   	push   %edi
4065c0:	68 e8 03 00 00       	push   $0x3e8
4065c5:	ff 75 e4             	push   -0x1c(%ebp)
4065c8:	ff 75 e0             	push   -0x20(%ebp)
4065cb:	e8 d0 2a 00 00       	call   0x4090a0
4065d0:	89 45 e8             	mov    %eax,-0x18(%ebp)
4065d3:	89 55 ec             	mov    %edx,-0x14(%ebp)
4065d6:	8b 45 e8             	mov    -0x18(%ebp),%eax
4065d9:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4065dc:	8b d0                	mov    %eax,%edx
4065de:	0b d1                	or     %ecx,%edx
4065e0:	75 05                	jne    0x4065e7
4065e2:	6a 01                	push   $0x1
4065e4:	33 c9                	xor    %ecx,%ecx
4065e6:	58                   	pop    %eax
4065e7:	8b 56 18             	mov    0x18(%esi),%edx
4065ea:	51                   	push   %ecx
4065eb:	50                   	push   %eax
4065ec:	8b 1c ba             	mov    (%edx,%edi,4),%ebx
4065ef:	ff b3 34 02 00 00    	push   0x234(%ebx)
4065f5:	ff b3 30 02 00 00    	push   0x230(%ebx)
4065fb:	e8 a0 2a 00 00       	call   0x4090a0
406600:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406603:	89 55 d8             	mov    %edx,-0x28(%ebp)
406606:	df 6d d4             	fildll -0x2c(%ebp)
406609:	dc 0d 30 a3 40 00    	fmull  0x40a330
40660f:	dc 15 28 a3 40 00    	fcoml  0x40a328
406615:	df e0                	fnstsw %ax
406617:	9e                   	sahf
406618:	76 08                	jbe    0x406622
40661a:	dd d8                	fstp   %st(0)
40661c:	dd 05 28 a3 40 00    	fldl   0x40a328
406622:	83 3b 00             	cmpl   $0x0,(%ebx)
406625:	74 08                	je     0x40662f
406627:	d9 c0                	fld    %st(0)
406629:	dc 45 f4             	faddl  -0xc(%ebp)
40662c:	dd 5d f4             	fstpl  -0xc(%ebp)
40662f:	dc 93 18 02 00 00    	fcoml  0x218(%ebx)
406635:	81 c3 18 02 00 00    	add    $0x218,%ebx
40663b:	df e0                	fnstsw %ax
40663d:	9e                   	sahf
40663e:	74 11                	je     0x406651
406640:	dd 1b                	fstpl  (%ebx)
406642:	8b 46 18             	mov    0x18(%esi),%eax
406645:	8b 04 b8             	mov    (%eax,%edi,4),%eax
406648:	80 88 4c 02 00 00 04 	orb    $0x4,0x24c(%eax)
40664f:	eb 02                	jmp    0x406653
406651:	dd d8                	fstp   %st(0)
406653:	47                   	inc    %edi
406654:	3b 7e 1c             	cmp    0x1c(%esi),%edi
406657:	0f 82 79 ff ff ff    	jb     0x4065d6
40665d:	8b 7d 08             	mov    0x8(%ebp),%edi
406660:	8b ce                	mov    %esi,%ecx
406662:	ff b7 ec 01 00 00    	push   0x1ec(%edi)
406668:	e8 24 01 00 00       	call   0x406791
40666d:	ff 75 fc             	push   -0x4(%ebp)
406670:	8b 1d 58 a1 40 00    	mov    0x40a158,%ebx
406676:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
40667c:	68 fc cb 40 00       	push   $0x40cbfc
406681:	50                   	push   %eax
406682:	ff d3                	call   *%ebx
406684:	83 c4 0c             	add    $0xc,%esp
406687:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
40668d:	50                   	push   %eax
40668e:	6a 00                	push   $0x0
406690:	68 01 04 00 00       	push   $0x401
406695:	ff b7 f4 01 00 00    	push   0x1f4(%edi)
40669b:	8b 3d dc a2 40 00    	mov    0x40a2dc,%edi
4066a1:	ff d7                	call   *%edi
4066a3:	dd 46 10             	fldl   0x10(%esi)
4066a6:	dc 5d f4             	fcompl -0xc(%ebp)
4066a9:	df e0                	fnstsw %ax
4066ab:	9e                   	sahf
4066ac:	0f 84 82 00 00 00    	je     0x406734
4066b2:	dd 45 f4             	fldl   -0xc(%ebp)
4066b5:	51                   	push   %ecx
4066b6:	51                   	push   %ecx
4066b7:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
4066bd:	dd 1c 24             	fstpl  (%esp)
4066c0:	68 e8 cb 40 00       	push   $0x40cbe8
4066c5:	50                   	push   %eax
4066c6:	ff d3                	call   *%ebx
4066c8:	83 c4 10             	add    $0x10,%esp
4066cb:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
4066d1:	50                   	push   %eax
4066d2:	8b 45 08             	mov    0x8(%ebp),%eax
4066d5:	6a 01                	push   $0x1
4066d7:	68 01 04 00 00       	push   $0x401
4066dc:	ff b0 f4 01 00 00    	push   0x1f4(%eax)
4066e2:	ff d7                	call   *%edi
4066e4:	8b 06                	mov    (%esi),%eax
4066e6:	c7 85 54 ff ff ff 58 	movl   $0x58,-0xac(%ebp)
4066ed:	00 00 00
4066f0:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
4066f6:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
4066fc:	50                   	push   %eax
4066fd:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
406703:	50                   	push   %eax
406704:	c7 85 5c ff ff ff 16 	movl   $0x16,-0xa4(%ebp)
40670b:	00 00 00
40670e:	c7 85 60 ff ff ff 04 	movl   $0x4,-0xa0(%ebp)
406715:	00 00 00
406718:	e8 2b 29 00 00       	call   0x409048
40671d:	59                   	pop    %ecx
40671e:	8d 85 54 ff ff ff    	lea    -0xac(%ebp),%eax
406724:	59                   	pop    %ecx
406725:	50                   	push   %eax
406726:	6a 01                	push   $0x1
406728:	ff 15 d4 a1 40 00    	call   *0x40a1d4
40672e:	dd 45 f4             	fldl   -0xc(%ebp)
406731:	dd 5e 10             	fstpl  0x10(%esi)
406734:	8d 45 ac             	lea    -0x54(%ebp),%eax
406737:	c7 45 ac 20 00 00 00 	movl   $0x20,-0x54(%ebp)
40673e:	50                   	push   %eax
40673f:	ff 15 9c a0 40 00    	call   *0x40a09c
406745:	8b 45 bc             	mov    -0x44(%ebp),%eax
406748:	8b c8                	mov    %eax,%ecx
40674a:	2b 45 c0             	sub    -0x40(%ebp),%eax
40674d:	c1 e9 14             	shr    $0x14,%ecx
406750:	c1 e8 14             	shr    $0x14,%eax
406753:	51                   	push   %ecx
406754:	50                   	push   %eax
406755:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
40675b:	68 d0 cb 40 00       	push   $0x40cbd0
406760:	50                   	push   %eax
406761:	ff d3                	call   *%ebx
406763:	83 c4 10             	add    $0x10,%esp
406766:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
40676c:	50                   	push   %eax
40676d:	8b 45 08             	mov    0x8(%ebp),%eax
406770:	6a 02                	push   $0x2
406772:	68 01 04 00 00       	push   $0x401
406777:	ff b0 f4 01 00 00    	push   0x1f4(%eax)
40677d:	ff d7                	call   *%edi
40677f:	80 66 04 00          	andb   $0x0,0x4(%esi)
406783:	6a 01                	push   $0x1
406785:	eb 02                	jmp    0x406789
406787:	6a fc                	push   $0xfffffffc
406789:	58                   	pop    %eax
40678a:	5f                   	pop    %edi
40678b:	5e                   	pop    %esi
40678c:	5b                   	pop    %ebx
40678d:	c9                   	leave
40678e:	c2 04 00             	ret    $0x4
406791:	55                   	push   %ebp
406792:	8b ec                	mov    %esp,%ebp
406794:	81 ec 60 03 00 00    	sub    $0x360,%esp
40679a:	53                   	push   %ebx
40679b:	56                   	push   %esi
40679c:	8b 35 dc a2 40 00    	mov    0x40a2dc,%esi
4067a2:	80 65 ff 00          	andb   $0x0,-0x1(%ebp)
4067a6:	33 db                	xor    %ebx,%ebx
4067a8:	57                   	push   %edi
4067a9:	53                   	push   %ebx
4067aa:	53                   	push   %ebx
4067ab:	6a 0b                	push   $0xb
4067ad:	8b f9                	mov    %ecx,%edi
4067af:	ff 75 08             	push   0x8(%ebp)
4067b2:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
4067b9:	89 5d d8             	mov    %ebx,-0x28(%ebp)
4067bc:	ff d6                	call   *%esi
4067be:	8b 45 d8             	mov    -0x28(%ebp),%eax
4067c1:	3b 47 1c             	cmp    0x1c(%edi),%eax
4067c4:	0f 83 9f 02 00 00    	jae    0x406a69
4067ca:	bb 06 10 00 00       	mov    $0x1006,%ebx
4067cf:	f6 45 ff 02          	testb  $0x2,-0x1(%ebp)
4067d3:	74 06                	je     0x4067db
4067d5:	80 4d ff ff          	orb    $0xff,-0x1(%ebp)
4067d9:	eb 0f                	jmp    0x4067ea
4067db:	8b 4f 18             	mov    0x18(%edi),%ecx
4067de:	8b 0c 81             	mov    (%ecx,%eax,4),%ecx
4067e1:	8a 89 4c 02 00 00    	mov    0x24c(%ecx),%cl
4067e7:	88 4d ff             	mov    %cl,-0x1(%ebp)
4067ea:	f6 45 ff 02          	testb  $0x2,-0x1(%ebp)
4067ee:	0f 84 d2 01 00 00    	je     0x4069c6
4067f4:	8b 4f 18             	mov    0x18(%edi),%ecx
4067f7:	8b 0c 81             	mov    (%ecx,%eax,4),%ecx
4067fa:	83 c1 08             	add    $0x8,%ecx
4067fd:	89 4d e8             	mov    %ecx,-0x18(%ebp)
406800:	33 c9                	xor    %ecx,%ecx
406802:	3b 47 20             	cmp    0x20(%edi),%eax
406805:	8d 45 d4             	lea    -0x2c(%ebp),%eax
406808:	50                   	push   %eax
406809:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40680c:	51                   	push   %ecx
40680d:	7c 07                	jl     0x406816
40680f:	68 07 10 00 00       	push   $0x1007
406814:	eb 01                	jmp    0x406817
406816:	53                   	push   %ebx
406817:	ff 75 08             	push   0x8(%ebp)
40681a:	ff d6                	call   *%esi
40681c:	8b 47 18             	mov    0x18(%edi),%eax
40681f:	8b 4d d8             	mov    -0x28(%ebp),%ecx
406822:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
406829:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40682c:	05 0c 01 00 00       	add    $0x10c,%eax
406831:	89 45 e8             	mov    %eax,-0x18(%ebp)
406834:	8d 45 d4             	lea    -0x2c(%ebp),%eax
406837:	50                   	push   %eax
406838:	6a 00                	push   $0x0
40683a:	53                   	push   %ebx
40683b:	ff 75 08             	push   0x8(%ebp)
40683e:	ff d6                	call   *%esi
406840:	8b 47 18             	mov    0x18(%edi),%eax
406843:	8b 4d d8             	mov    -0x28(%ebp),%ecx
406846:	68 04 01 00 00       	push   $0x104
40684b:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40684e:	ff 30                	push   (%eax)
406850:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
406856:	50                   	push   %eax
406857:	e8 6a 20 00 00       	call   0x4088c6
40685c:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
406862:	83 c4 0c             	add    $0xc,%esp
406865:	89 45 e8             	mov    %eax,-0x18(%ebp)
406868:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40686b:	50                   	push   %eax
40686c:	6a 00                	push   $0x0
40686e:	53                   	push   %ebx
40686f:	c7 45 dc 03 00 00 00 	movl   $0x3,-0x24(%ebp)
406876:	ff 75 08             	push   0x8(%ebp)
406879:	ff d6                	call   *%esi
40687b:	8b 47 18             	mov    0x18(%edi),%eax
40687e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
406881:	8b 04 88             	mov    (%eax,%ecx,4),%eax
406884:	83 c0 08             	add    $0x8,%eax
406887:	50                   	push   %eax
406888:	8d 85 a0 fc ff ff    	lea    -0x360(%ebp),%eax
40688e:	50                   	push   %eax
40688f:	e8 b4 27 00 00       	call   0x409048
406894:	8b 47 18             	mov    0x18(%edi),%eax
406897:	59                   	pop    %ecx
406898:	59                   	pop    %ecx
406899:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40689c:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40689f:	ff 30                	push   (%eax)
4068a1:	6a 00                	push   $0x0
4068a3:	68 10 04 00 00       	push   $0x410
4068a8:	ff 15 0c a1 40 00    	call   *0x40a10c
4068ae:	85 c0                	test   %eax,%eax
4068b0:	89 45 d0             	mov    %eax,-0x30(%ebp)
4068b3:	74 18                	je     0x4068cd
4068b5:	8d 8d a0 fc ff ff    	lea    -0x360(%ebp),%ecx
4068bb:	51                   	push   %ecx
4068bc:	50                   	push   %eax
4068bd:	e8 5d 23 00 00       	call   0x408c1f
4068c2:	59                   	pop    %ecx
4068c3:	59                   	pop    %ecx
4068c4:	ff 75 d0             	push   -0x30(%ebp)
4068c7:	ff 15 dc a0 40 00    	call   *0x40a0dc
4068cd:	6a 02                	push   $0x2
4068cf:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
4068d5:	68 80 00 00 00       	push   $0x80
4068da:	50                   	push   %eax
4068db:	8d 85 a0 fc ff ff    	lea    -0x360(%ebp),%eax
4068e1:	50                   	push   %eax
4068e2:	e8 37 21 00 00       	call   0x408a1e
4068e7:	59                   	pop    %ecx
4068e8:	50                   	push   %eax
4068e9:	e8 fa 21 00 00       	call   0x408ae8
4068ee:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
4068f4:	83 c4 10             	add    $0x10,%esp
4068f7:	89 45 e8             	mov    %eax,-0x18(%ebp)
4068fa:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4068fd:	50                   	push   %eax
4068fe:	6a 00                	push   $0x0
406900:	53                   	push   %ebx
406901:	c7 45 dc 05 00 00 00 	movl   $0x5,-0x24(%ebp)
406908:	ff 75 08             	push   0x8(%ebp)
40690b:	ff d6                	call   *%esi
40690d:	8d 85 24 fe ff ff    	lea    -0x1dc(%ebp),%eax
406913:	c7 45 dc 06 00 00 00 	movl   $0x6,-0x24(%ebp)
40691a:	89 45 e8             	mov    %eax,-0x18(%ebp)
40691d:	8d 45 d4             	lea    -0x2c(%ebp),%eax
406920:	50                   	push   %eax
406921:	6a 00                	push   $0x0
406923:	53                   	push   %ebx
406924:	ff 75 08             	push   0x8(%ebp)
406927:	ff d6                	call   *%esi
406929:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
40692f:	68 88 ca 40 00       	push   $0x40ca88
406934:	50                   	push   %eax
406935:	e8 0e 27 00 00       	call   0x409048
40693a:	8b 47 18             	mov    0x18(%edi),%eax
40693d:	59                   	pop    %ecx
40693e:	59                   	pop    %ecx
40693f:	8b 4d d8             	mov    -0x28(%ebp),%ecx
406942:	8b 0c 88             	mov    (%eax,%ecx,4),%ecx
406945:	8b 81 20 02 00 00    	mov    0x220(%ecx),%eax
40694b:	89 45 c8             	mov    %eax,-0x38(%ebp)
40694e:	8b 89 24 02 00 00    	mov    0x224(%ecx),%ecx
406954:	85 c0                	test   %eax,%eax
406956:	89 4d cc             	mov    %ecx,-0x34(%ebp)
406959:	74 4c                	je     0x4069a7
40695b:	8d 45 a8             	lea    -0x58(%ebp),%eax
40695e:	50                   	push   %eax
40695f:	8d 45 c8             	lea    -0x38(%ebp),%eax
406962:	50                   	push   %eax
406963:	ff 15 78 a0 40 00    	call   *0x40a078
406969:	8d 45 b8             	lea    -0x48(%ebp),%eax
40696c:	50                   	push   %eax
40696d:	8d 45 a8             	lea    -0x58(%ebp),%eax
406970:	50                   	push   %eax
406971:	6a 00                	push   $0x0
406973:	ff 15 74 a0 40 00    	call   *0x40a074
406979:	0f b7 45 ba          	movzwl -0x46(%ebp),%eax
40697d:	50                   	push   %eax
40697e:	0f b7 45 be          	movzwl -0x42(%ebp),%eax
406982:	50                   	push   %eax
406983:	0f b7 45 c4          	movzwl -0x3c(%ebp),%eax
406987:	50                   	push   %eax
406988:	0f b7 45 c2          	movzwl -0x3e(%ebp),%eax
40698c:	50                   	push   %eax
40698d:	0f b7 45 c0          	movzwl -0x40(%ebp),%eax
406991:	50                   	push   %eax
406992:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
406998:	68 8c ca 40 00       	push   $0x40ca8c
40699d:	50                   	push   %eax
40699e:	ff 15 58 a1 40 00    	call   *0x40a158
4069a4:	83 c4 1c             	add    $0x1c,%esp
4069a7:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
4069ad:	c7 45 dc 07 00 00 00 	movl   $0x7,-0x24(%ebp)
4069b4:	89 45 e8             	mov    %eax,-0x18(%ebp)
4069b7:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4069ba:	50                   	push   %eax
4069bb:	6a 00                	push   $0x0
4069bd:	53                   	push   %ebx
4069be:	ff 75 08             	push   0x8(%ebp)
4069c1:	ff d6                	call   *%esi
4069c3:	8b 45 d8             	mov    -0x28(%ebp),%eax
4069c6:	f6 45 ff 04          	testb  $0x4,-0x1(%ebp)
4069ca:	74 45                	je     0x406a11
4069cc:	8b 4f 18             	mov    0x18(%edi),%ecx
4069cf:	51                   	push   %ecx
4069d0:	51                   	push   %ecx
4069d1:	8b 04 81             	mov    (%ecx,%eax,4),%eax
4069d4:	dd 80 18 02 00 00    	fldl   0x218(%eax)
4069da:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
4069e0:	dd 1c 24             	fstpl  (%esp)
4069e3:	68 28 cc 40 00       	push   $0x40cc28
4069e8:	50                   	push   %eax
4069e9:	ff 15 58 a1 40 00    	call   *0x40a158
4069ef:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
4069f5:	83 c4 10             	add    $0x10,%esp
4069f8:	89 45 e8             	mov    %eax,-0x18(%ebp)
4069fb:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4069fe:	50                   	push   %eax
4069ff:	6a 00                	push   $0x0