40635e:	39 10                	cmp    %edx,(%eax)
406360:	74 0f                	je     0x406371
406362:	89 10                	mov    %edx,(%eax)
406364:	8b 46 18             	mov    0x18(%esi),%eax
406367:	8b 04 07             	mov    (%edi,%eax,1),%eax
40636a:	80 88 4c 02 00 00 10 	orb    $0x10,0x24c(%eax)
406371:	8b 46 18             	mov    0x18(%esi),%eax
406374:	8b 93 a4 00 00 00    	mov    0xa4(%ebx),%edx
40637a:	89 55 d0             	mov    %edx,-0x30(%ebp)
40637d:	8b 04 07             	mov    (%edi,%eax,1),%eax
406380:	89 45 f0             	mov    %eax,-0x10(%ebp)
406383:	8b 80 38 02 00 00    	mov    0x238(%eax),%eax
406389:	3b 83 a0 00 00 00    	cmp    0xa0(%ebx),%eax
40638f:	75 0d                	jne    0x40639e
406391:	8b 45 f0             	mov    -0x10(%ebp),%eax
406394:	8b 80 3c 02 00 00    	mov    0x23c(%eax),%eax
40639a:	3b c2                	cmp    %edx,%eax
40639c:	74 25                	je     0x4063c3
40639e:	8b 45 f0             	mov    -0x10(%ebp),%eax
4063a1:	8b 93 a0 00 00 00    	mov    0xa0(%ebx),%edx
4063a7:	89 90 38 02 00 00    	mov    %edx,0x238(%eax)
4063ad:	8b 55 d0             	mov    -0x30(%ebp),%edx
4063b0:	89 90 3c 02 00 00    	mov    %edx,0x23c(%eax)
4063b6:	8b 46 18             	mov    0x18(%esi),%eax
4063b9:	8b 04 07             	mov    (%edi,%eax,1),%eax
4063bc:	80 88 4c 02 00 00 40 	orb    $0x40,0x24c(%eax)
4063c3:	8b 46 18             	mov    0x18(%esi),%eax
4063c6:	8b 93 ac 00 00 00    	mov    0xac(%ebx),%edx
4063cc:	89 55 d8             	mov    %edx,-0x28(%ebp)
4063cf:	8b 04 07             	mov    (%edi,%eax,1),%eax
4063d2:	89 45 f0             	mov    %eax,-0x10(%ebp)
4063d5:	8b 80 40 02 00 00    	mov    0x240(%eax),%eax
4063db:	3b 83 a8 00 00 00    	cmp    0xa8(%ebx),%eax
4063e1:	75 11                	jne    0x4063f4
4063e3:	8b 45 f0             	mov    -0x10(%ebp),%eax
4063e6:	8b 80 44 02 00 00    	mov    0x244(%eax),%eax
4063ec:	3b c2                	cmp    %edx,%eax
4063ee:	0f 84 43 01 00 00    	je     0x406537
4063f4:	8b 45 f0             	mov    -0x10(%ebp),%eax
4063f7:	8b 93 a8 00 00 00    	mov    0xa8(%ebx),%edx
4063fd:	89 90 40 02 00 00    	mov    %edx,0x240(%eax)
406403:	8b 55 d8             	mov    -0x28(%ebp),%edx
406406:	89 90 44 02 00 00    	mov    %edx,0x244(%eax)
40640c:	8b 46 18             	mov    0x18(%esi),%eax
40640f:	8b 04 07             	mov    (%edi,%eax,1),%eax
406412:	80 88 4c 02 00 00 20 	orb    $0x20,0x24c(%eax)
406419:	e9 19 01 00 00       	jmp    0x406537
40641e:	8b 4b 44             	mov    0x44(%ebx),%ecx
406421:	89 08                	mov    %ecx,(%eax)
406423:	8b 46 18             	mov    0x18(%esi),%eax
406426:	8b 4b 48             	mov    0x48(%ebx),%ecx
406429:	8b 04 07             	mov    (%edi,%eax,1),%eax
40642c:	89 48 04             	mov    %ecx,0x4(%eax)
40642f:	8b 46 18             	mov    0x18(%esi),%eax
406432:	8b 4b 20             	mov    0x20(%ebx),%ecx
406435:	8b 04 07             	mov    (%edi,%eax,1),%eax
406438:	89 88 20 02 00 00    	mov    %ecx,0x220(%eax)
40643e:	8b 4b 24             	mov    0x24(%ebx),%ecx
406441:	89 88 24 02 00 00    	mov    %ecx,0x224(%eax)
406447:	8b 46 18             	mov    0x18(%esi),%eax
40644a:	8b 4b 68             	mov    0x68(%ebx),%ecx
40644d:	8b 04 07             	mov    (%edi,%eax,1),%eax
406450:	89 88 10 02 00 00    	mov    %ecx,0x210(%eax)
406456:	8b 46 18             	mov    0x18(%esi),%eax
406459:	8b 4b 40             	mov    0x40(%ebx),%ecx
40645c:	8b 04 07             	mov    (%edi,%eax,1),%eax
40645f:	89 88 48 02 00 00    	mov    %ecx,0x248(%eax)
406465:	8b 46 18             	mov    0x18(%esi),%eax
406468:	33 c9                	xor    %ecx,%ecx
40646a:	8b 04 07             	mov    (%edi,%eax,1),%eax
40646d:	39 08                	cmp    %ecx,(%eax)
40646f:	75 29                	jne    0x40649a
406471:	83 c0 08             	add    $0x8,%eax
406474:	68 14 cc 40 00       	push   $0x40cc14
406479:	50                   	push   %eax
40647a:	e8 c9 2b 00 00       	call   0x409048
40647f:	8b 46 18             	mov    0x18(%esi),%eax
406482:	68 0c cc 40 00       	push   $0x40cc0c
406487:	8b 04 07             	mov    (%edi,%eax,1),%eax
40648a:	05 0c 01 00 00       	add    $0x10c,%eax
40648f:	50                   	push   %eax
406490:	e8 b3 2b 00 00       	call   0x409048
406495:	83 c4 10             	add    $0x10,%esp
406498:	eb 59                	jmp    0x4064f3
40649a:	51                   	push   %ecx
40649b:	51                   	push   %ecx
40649c:	83 c0 08             	add    $0x8,%eax
40649f:	68 04 01 00 00       	push   $0x104
4064a4:	50                   	push   %eax
4064a5:	6a ff                	push   $0xffffffff
4064a7:	ff 73 3c             	push   0x3c(%ebx)
4064aa:	51                   	push   %ecx
4064ab:	51                   	push   %ecx
4064ac:	ff 15 e4 a0 40 00    	call   *0x40a0e4
4064b2:	85 c0                	test   %eax,%eax
4064b4:	75 16                	jne    0x4064cc
4064b6:	8b 46 18             	mov    0x18(%esi),%eax
4064b9:	68 6c c3 40 00       	push   $0x40c36c
4064be:	8b 04 07             	mov    (%edi,%eax,1),%eax
4064c1:	83 c0 08             	add    $0x8,%eax
4064c4:	50                   	push   %eax
4064c5:	e8 7e 2b 00 00       	call   0x409048
4064ca:	59                   	pop    %ecx
4064cb:	59                   	pop    %ecx
4064cc:	ff 75 fc             	push   -0x4(%ebp)
4064cf:	8b ce                	mov    %esi,%ecx
4064d1:	e8 2c fb ff ff       	call   0x406002
4064d6:	83 f8 01             	cmp    $0x1,%eax
4064d9:	74 18                	je     0x4064f3
4064db:	8b 46 18             	mov    0x18(%esi),%eax
4064de:	68 6c c3 40 00       	push   $0x40c36c
4064e3:	8b 04 07             	mov    (%edi,%eax,1),%eax
4064e6:	05 0c 01 00 00       	add    $0x10c,%eax
4064eb:	50                   	push   %eax
4064ec:	e8 57 2b 00 00       	call   0x409048
4064f1:	59                   	pop    %ecx
4064f2:	59                   	pop    %ecx
4064f3:	8b 46 18             	mov    0x18(%esi),%eax
4064f6:	33 c9                	xor    %ecx,%ecx
4064f8:	d9 ee                	fldz
4064fa:	8b 04 07             	mov    (%edi,%eax,1),%eax
4064fd:	89 4d ec             	mov    %ecx,-0x14(%ebp)
406500:	89 88 30 02 00 00    	mov    %ecx,0x230(%eax)
406506:	89 88 34 02 00 00    	mov    %ecx,0x234(%eax)
40650c:	8b 46 18             	mov    0x18(%esi),%eax
40650f:	8b 04 07             	mov    (%edi,%eax,1),%eax
406512:	89 88 28 02 00 00    	mov    %ecx,0x228(%eax)
406518:	89 88 2c 02 00 00    	mov    %ecx,0x22c(%eax)
40651e:	8b 46 18             	mov    0x18(%esi),%eax
406521:	8b 04 07             	mov    (%edi,%eax,1),%eax
406524:	dd 98 18 02 00 00    	fstpl  0x218(%eax)
40652a:	8b 46 18             	mov    0x18(%esi),%eax
40652d:	8b 04 07             	mov    (%edi,%eax,1),%eax
406530:	80 88 4c 02 00 00 ff 	orb    $0xff,0x24c(%eax)
406537:	01 4d e0             	add    %ecx,-0x20(%ebp)
40653a:	8b 45 ec             	mov    -0x14(%ebp),%eax
40653d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406540:	11 45 e4             	adc    %eax,-0x1c(%ebp)
406543:	8b 46 18             	mov    0x18(%esi),%eax
406546:	ff 45 fc             	incl   -0x4(%ebp)
406549:	8b 04 07             	mov    (%edi,%eax,1),%eax
40654c:	33 ff                	xor    %edi,%edi
40654e:	89 88 28 02 00 00    	mov    %ecx,0x228(%eax)
406554:	8b 4d f8             	mov    -0x8(%ebp),%ecx
406557:	89 88 2c 02 00 00    	mov    %ecx,0x22c(%eax)
40655d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406560:	8b 1b                	mov    (%ebx),%ebx
406562:	01 5d dc             	add    %ebx,-0x24(%ebp)
406565:	3b df                	cmp    %edi,%ebx
406567:	74 0d                	je     0x406576
406569:	e9 b4 fc ff ff       	jmp    0x406222
40656e:	83 c8 ff             	or     $0xffffffff,%eax
406571:	e9 14 02 00 00       	jmp    0x40678a
406576:	8b 46 1c             	mov    0x1c(%esi),%eax
406579:	3b c1                	cmp    %ecx,%eax
40657b:	76 34                	jbe    0x4065b1
40657d:	8b 4e 18             	mov    0x18(%esi),%ecx
406580:	48                   	dec    %eax
406581:	89 46 1c             	mov    %eax,0x1c(%esi)
406584:	ff 34 81             	push   (%ecx,%eax,4)
406587:	ff 15 48 a1 40 00    	call   *0x40a148
40658d:	8b 46 1c             	mov    0x1c(%esi),%eax
406590:	59                   	pop    %ecx
406591:	3b 45 fc             	cmp    -0x4(%ebp),%eax
406594:	77 e7                	ja     0x40657d
406596:	8b 45 fc             	mov    -0x4(%ebp),%eax
406599:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
4065a0:	50                   	push   %eax
4065a1:	ff 76 18             	push   0x18(%esi)
4065a4:	ff 15 30 a1 40 00    	call   *0x40a130
4065aa:	59                   	pop    %ecx
4065ab:	89 46 18             	mov    %eax,0x18(%esi)
4065ae:	59                   	pop    %ecx
4065af:	33 ff                	xor    %edi,%edi
4065b1:	39 7e 1c             	cmp    %edi,0x1c(%esi)
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