4064f3:	8b 48 14             	mov    0x14(%eax),%ecx
4064f6:	69 c9 fd 43 03 00    	imul   $0x343fd,%ecx,%ecx
4064fc:	81 c1 c3 9e 26 00    	add    $0x269ec3,%ecx
406502:	89 48 14             	mov    %ecx,0x14(%eax)
406505:	8b c1                	mov    %ecx,%eax
406507:	c1 e8 10             	shr    $0x10,%eax
40650a:	25 ff 7f 00 00       	and    $0x7fff,%eax
40650f:	c3                   	ret
406510:	83 3d f0 d9 41 00 01 	cmpl   $0x1,0x41d9f0
406517:	75 05                	jne    0x40651e
406519:	e8 d0 77 00 00       	call   0x40dcee
40651e:	ff 74 24 04          	push   0x4(%esp)
406522:	e8 27 76 00 00       	call   0x40db4e
406527:	68 ff 00 00 00       	push   $0xff
40652c:	e8 5f 73 00 00       	call   0x40d890
406531:	59                   	pop    %ecx
406532:	59                   	pop    %ecx
406533:	c3                   	ret
406534:	66 81 3d 00 00 40 00 	cmpw   $0x5a4d,0x400000
40653b:	4d 5a
40653d:	75 33                	jne    0x406572
40653f:	a1 3c 00 40 00       	mov    0x40003c,%eax
406544:	81 b8 00 00 40 00 50 	cmpl   $0x4550,0x400000(%eax)
40654b:	45 00 00
40654e:	75 22                	jne    0x406572
406550:	66 81 b8 18 00 40 00 	cmpw   $0x10b,0x400018(%eax)
406557:	0b 01
406559:	75 17                	jne    0x406572
40655b:	83 b8 74 00 40 00 0e 	cmpl   $0xe,0x400074(%eax)
406562:	76 0e                	jbe    0x406572
406564:	33 c9                	xor    %ecx,%ecx
406566:	39 88 e8 00 40 00    	cmp    %ecx,0x4000e8(%eax)
40656c:	0f 95 c1             	setne  %cl
40656f:	8b c1                	mov    %ecx,%eax
406571:	c3                   	ret
406572:	33 c0                	xor    %eax,%eax
406574:	c3                   	ret
406575:	6a 60                	push   $0x60
406577:	68 68 a8 41 00       	push   $0x41a868
40657c:	e8 c7 70 00 00       	call   0x40d648
406581:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406585:	8d 45 90             	lea    -0x70(%ebp),%eax
406588:	50                   	push   %eax
406589:	ff 15 c8 70 41 00    	call   *0x4170c8
40658f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406596:	bf 94 00 00 00       	mov    $0x94,%edi
40659b:	57                   	push   %edi
40659c:	6a 00                	push   $0x0
40659e:	8b 1d c4 70 41 00    	mov    0x4170c4,%ebx
4065a4:	ff d3                	call   *%ebx
4065a6:	50                   	push   %eax
4065a7:	ff 15 c0 70 41 00    	call   *0x4170c0
4065ad:	8b f0                	mov    %eax,%esi
4065af:	85 f6                	test   %esi,%esi
4065b1:	75 0d                	jne    0x4065c0
4065b3:	6a 12                	push   $0x12
4065b5:	e8 56 ff ff ff       	call   0x406510
4065ba:	59                   	pop    %ecx
4065bb:	e9 8a 01 00 00       	jmp    0x40674a
4065c0:	89 3e                	mov    %edi,(%esi)
4065c2:	56                   	push   %esi
4065c3:	ff 15 bc 70 41 00    	call   *0x4170bc
4065c9:	56                   	push   %esi
4065ca:	6a 00                	push   $0x0
4065cc:	85 c0                	test   %eax,%eax
4065ce:	75 0e                	jne    0x4065de
4065d0:	ff d3                	call   *%ebx
4065d2:	50                   	push   %eax
4065d3:	ff 15 b4 70 41 00    	call   *0x4170b4
4065d9:	e9 6c 01 00 00       	jmp    0x40674a
4065de:	8b 46 10             	mov    0x10(%esi),%eax
4065e1:	89 45 e0             	mov    %eax,-0x20(%ebp)
4065e4:	8b 46 04             	mov    0x4(%esi),%eax
4065e7:	89 45 dc             	mov    %eax,-0x24(%ebp)
4065ea:	8b 46 08             	mov    0x8(%esi),%eax
4065ed:	89 45 d8             	mov    %eax,-0x28(%ebp)
4065f0:	8b 7e 0c             	mov    0xc(%esi),%edi
4065f3:	81 e7 ff 7f 00 00    	and    $0x7fff,%edi
4065f9:	ff d3                	call   *%ebx
4065fb:	50                   	push   %eax
4065fc:	ff 15 b4 70 41 00    	call   *0x4170b4
406602:	8b 75 e0             	mov    -0x20(%ebp),%esi
406605:	83 fe 02             	cmp    $0x2,%esi
406608:	74 06                	je     0x406610
40660a:	81 cf 00 80 00 00    	or     $0x8000,%edi
406610:	8b 4d dc             	mov    -0x24(%ebp),%ecx
406613:	8b c1                	mov    %ecx,%eax
406615:	c1 e0 08             	shl    $0x8,%eax
406618:	8b 55 d8             	mov    -0x28(%ebp),%edx
40661b:	03 c2                	add    %edx,%eax
40661d:	89 35 b8 de 41 00    	mov    %esi,0x41deb8
406623:	a3 c0 de 41 00       	mov    %eax,0x41dec0
406628:	89 0d c4 de 41 00    	mov    %ecx,0x41dec4
40662e:	89 15 c8 de 41 00    	mov    %edx,0x41dec8
406634:	89 3d bc de 41 00    	mov    %edi,0x41debc
40663a:	e8 f5 fe ff ff       	call   0x406534
40663f:	89 45 e0             	mov    %eax,-0x20(%ebp)
406642:	33 db                	xor    %ebx,%ebx
406644:	43                   	inc    %ebx
406645:	53                   	push   %ebx
406646:	e8 fc 62 00 00       	call   0x40c947
40664b:	59                   	pop    %ecx
40664c:	85 c0                	test   %eax,%eax
40664e:	75 08                	jne    0x406658
406650:	6a 1c                	push   $0x1c
406652:	e8 b9 fe ff ff       	call   0x406510
406657:	59                   	pop    %ecx
406658:	e8 28 60 00 00       	call   0x40c685
40665d:	85 c0                	test   %eax,%eax
40665f:	75 08                	jne    0x406669
406661:	6a 10                	push   $0x10
406663:	e8 a8 fe ff ff       	call   0x406510
406668:	59                   	pop    %ecx
406669:	e8 27 7f 00 00       	call   0x40e595
40666e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406671:	e8 df 7c 00 00       	call   0x40e355
406676:	85 c0                	test   %eax,%eax
406678:	7d 08                	jge    0x406682
40667a:	6a 1b                	push   $0x1b
40667c:	e8 c5 71 00 00       	call   0x40d846
406681:	59                   	pop    %ecx
406682:	ff 15 b8 70 41 00    	call   *0x4170b8
406688:	a3 04 f6 41 00       	mov    %eax,0x41f604
40668d:	e8 8e 7b 00 00       	call   0x40e220
406692:	a3 e8 d9 41 00       	mov    %eax,0x41d9e8
406697:	e8 cb 7a 00 00       	call   0x40e167
40669c:	85 c0                	test   %eax,%eax
40669e:	7d 08                	jge    0x4066a8
4066a0:	6a 08                	push   $0x8
4066a2:	e8 9f 71 00 00       	call   0x40d846
4066a7:	59                   	pop    %ecx
4066a8:	e8 47 78 00 00       	call   0x40def4
4066ad:	85 c0                	test   %eax,%eax
4066af:	7d 08                	jge    0x4066b9
4066b1:	6a 09                	push   $0x9
4066b3:	e8 8e 71 00 00       	call   0x40d846
4066b8:	59                   	pop    %ecx
4066b9:	53                   	push   %ebx
4066ba:	e8 a3 72 00 00       	call   0x40d962
4066bf:	59                   	pop    %ecx
4066c0:	85 c0                	test   %eax,%eax
4066c2:	74 07                	je     0x4066cb
4066c4:	50                   	push   %eax
4066c5:	e8 7c 71 00 00       	call   0x40d846
4066ca:	59                   	pop    %ecx
4066cb:	e8 c7 77 00 00       	call   0x40de97
4066d0:	84 5d bc             	test   %bl,-0x44(%ebp)
4066d3:	74 06                	je     0x4066db
4066d5:	0f b7 4d c0          	movzwl -0x40(%ebp),%ecx
4066d9:	eb 03                	jmp    0x4066de
4066db:	6a 0a                	push   $0xa
4066dd:	59                   	pop    %ecx
4066de:	51                   	push   %ecx
4066df:	50                   	push   %eax
4066e0:	6a 00                	push   $0x0
4066e2:	68 00 00 40 00       	push   $0x400000
4066e7:	e8 c4 c6 ff ff       	call   0x402db0
4066ec:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4066ef:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
4066f3:	75 06                	jne    0x4066fb
4066f5:	50                   	push   %eax
4066f6:	e8 c7 73 00 00       	call   0x40dac2
4066fb:	e8 e4 73 00 00       	call   0x40dae4
406700:	eb 2e                	jmp    0x406730
406702:	8b 45 ec             	mov    -0x14(%ebp),%eax
406705:	8b 08                	mov    (%eax),%ecx
406707:	8b 09                	mov    (%ecx),%ecx
406709:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40670c:	50                   	push   %eax
40670d:	51                   	push   %ecx
40670e:	e8 15 76 00 00       	call   0x40dd28
406713:	59                   	pop    %ecx
406714:	59                   	pop    %ecx
406715:	c3                   	ret
406716:	8b 65 e8             	mov    -0x18(%ebp),%esp
406719:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40671c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40671f:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
406723:	75 06                	jne    0x40672b
406725:	50                   	push   %eax
406726:	e8 a8 73 00 00       	call   0x40dad3
40672b:	e8 c3 73 00 00       	call   0x40daf3
406730:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406737:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40673a:	eb 13                	jmp    0x40674f
40673c:	33 c0                	xor    %eax,%eax
40673e:	40                   	inc    %eax
40673f:	c3                   	ret
406740:	8b 65 e8             	mov    -0x18(%ebp),%esp
406743:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40674a:	b8 ff 00 00 00       	mov    $0xff,%eax
40674f:	e8 39 6f 00 00       	call   0x40d68d
406754:	c3                   	ret
406755:	e8 83 7e 00 00       	call   0x40e5dd
40675a:	e9 16 fe ff ff       	jmp    0x406575
40675f:	cc                   	int3
406760:	8b 4c 24 04          	mov    0x4(%esp),%ecx
406764:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40676a:	74 24                	je     0x406790
40676c:	8a 01                	mov    (%ecx),%al
40676e:	83 c1 01             	add    $0x1,%ecx
406771:	84 c0                	test   %al,%al
406773:	74 4e                	je     0x4067c3
406775:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40677b:	75 ef                	jne    0x40676c
40677d:	05 00 00 00 00       	add    $0x0,%eax
406782:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
406789:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
406790:	8b 01                	mov    (%ecx),%eax
406792:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
406797:	03 d0                	add    %eax,%edx
406799:	83 f0 ff             	xor    $0xffffffff,%eax
40679c:	33 c2                	xor    %edx,%eax
40679e:	83 c1 04             	add    $0x4,%ecx
4067a1:	a9 00 01 01 81       	test   $0x81010100,%eax
4067a6:	74 e8                	je     0x406790
4067a8:	8b 41 fc             	mov    -0x4(%ecx),%eax
4067ab:	84 c0                	test   %al,%al
4067ad:	74 32                	je     0x4067e1
4067af:	84 e4                	test   %ah,%ah
4067b1:	74 24                	je     0x4067d7
4067b3:	a9 00 00 ff 00       	test   $0xff0000,%eax
4067b8:	74 13                	je     0x4067cd
4067ba:	a9 00 00 00 ff       	test   $0xff000000,%eax
4067bf:	74 02                	je     0x4067c3
4067c1:	eb cd                	jmp    0x406790
4067c3:	8d 41 ff             	lea    -0x1(%ecx),%eax
4067c6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4067ca:	2b c1                	sub    %ecx,%eax
4067cc:	c3                   	ret
4067cd:	8d 41 fe             	lea    -0x2(%ecx),%eax
4067d0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4067d4:	2b c1                	sub    %ecx,%eax
4067d6:	c3                   	ret
4067d7:	8d 41 fd             	lea    -0x3(%ecx),%eax
4067da:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4067de:	2b c1                	sub    %ecx,%eax
4067e0:	c3                   	ret
4067e1:	8d 41 fc             	lea    -0x4(%ecx),%eax
4067e4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4067e8:	2b c1                	sub    %ecx,%eax
4067ea:	c3                   	ret
4067eb:	50                   	push   %eax
4067ec:	64 ff 35 00 00 00 00 	push   %fs:0x0
4067f3:	8d 44 24 0c          	lea    0xc(%esp),%eax
4067f7:	2b 64 24 0c          	sub    0xc(%esp),%esp
4067fb:	53                   	push   %ebx
4067fc:	56                   	push   %esi
4067fd:	57                   	push   %edi
4067fe:	89 28                	mov    %ebp,(%eax)
406800:	8b e8                	mov    %eax,%ebp
406802:	a1 20 c5 41 00       	mov    0x41c520,%eax
406807:	33 c5                	xor    %ebp,%eax
406809:	50                   	push   %eax
40680a:	ff 75 fc             	push   -0x4(%ebp)
40680d:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
406814:	8d 45 f4             	lea    -0xc(%ebp),%eax
406817:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40681d:	c3                   	ret
40681e:	50                   	push   %eax
40681f:	64 ff 35 00 00 00 00 	push   %fs:0x0
406826:	8d 44 24 0c          	lea    0xc(%esp),%eax
40682a:	2b 64 24 0c          	sub    0xc(%esp),%esp
40682e:	53                   	push   %ebx
40682f:	56                   	push   %esi
406830:	57                   	push   %edi
406831:	89 28                	mov    %ebp,(%eax)
406833:	8b e8                	mov    %eax,%ebp
406835:	a1 20 c5 41 00       	mov    0x41c520,%eax
40683a:	33 c5                	xor    %ebp,%eax
40683c:	50                   	push   %eax
40683d:	89 65 f0             	mov    %esp,-0x10(%ebp)
406840:	ff 75 fc             	push   -0x4(%ebp)
406843:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40684a:	8d 45 f4             	lea    -0xc(%ebp),%eax
40684d:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
406853:	c3                   	ret
406854:	50                   	push   %eax
406855:	64 ff 35 00 00 00 00 	push   %fs:0x0
40685c:	8d 44 24 0c          	lea    0xc(%esp),%eax
406860:	2b 64 24 0c          	sub    0xc(%esp),%esp
406864:	53                   	push   %ebx
406865:	56                   	push   %esi
406866:	57                   	push   %edi
406867:	89 28                	mov    %ebp,(%eax)
406869:	8b e8                	mov    %eax,%ebp
40686b:	a1 20 c5 41 00       	mov    0x41c520,%eax
406870:	33 c5                	xor    %ebp,%eax
406872:	50                   	push   %eax
406873:	89 45 f0             	mov    %eax,-0x10(%ebp)
406876:	ff 75 fc             	push   -0x4(%ebp)
406879:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
406880:	8d 45 f4             	lea    -0xc(%ebp),%eax
406883:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
406889:	c3                   	ret
40688a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40688d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406894:	59                   	pop    %ecx
406895:	5f                   	pop    %edi
406896:	5f                   	pop    %edi
406897:	5e                   	pop    %esi
406898:	5b                   	pop    %ebx
406899:	8b e5                	mov    %ebp,%esp
40689b:	5d                   	pop    %ebp
40689c:	51                   	push   %ecx
40689d:	c3                   	ret
40689e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4068a1:	33 cd                	xor    %ebp,%ecx
4068a3:	e8 8d f6 ff ff       	call   0x405f35
4068a8:	e9 dd ff ff ff       	jmp    0x40688a
4068ad:	c7 01 70 76 41 00    	movl   $0x417670,(%ecx)
4068b3:	e9 95 f0 ff ff       	jmp    0x40594d
4068b8:	56                   	push   %esi
4068b9:	8b f1                	mov    %ecx,%esi
4068bb:	c7 06 70 76 41 00    	movl   $0x417670,(%esi)
4068c1:	e8 87 f0 ff ff       	call   0x40594d
4068c6:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4068cb:	74 07                	je     0x4068d4
4068cd:	56                   	push   %esi
4068ce:	e8 5c f1 ff ff       	call   0x405a2f
4068d3:	59                   	pop    %ecx
4068d4:	8b c6                	mov    %esi,%eax
4068d6:	5e                   	pop    %esi
4068d7:	c2 04 00             	ret    $0x4
4068da:	56                   	push   %esi
4068db:	57                   	push   %edi
4068dc:	8b 7c 24 0c          	mov    0xc(%esp),%edi
4068e0:	8b 47 04             	mov    0x4(%edi),%eax
4068e3:	85 c0                	test   %eax,%eax
4068e5:	74 49                	je     0x406930
4068e7:	8d 50 08             	lea    0x8(%eax),%edx
4068ea:	80 3a 00             	cmpb   $0x0,(%edx)
4068ed:	74 41                	je     0x406930
4068ef:	8b 74 24 10          	mov    0x10(%esp),%esi
4068f3:	8b 4e 04             	mov    0x4(%esi),%ecx
4068f6:	3b c1                	cmp    %ecx,%eax
4068f8:	74 14                	je     0x40690e
4068fa:	83 c1 08             	add    $0x8,%ecx
4068fd:	51                   	push   %ecx
4068fe:	52                   	push   %edx
4068ff:	e8 8c 45 00 00       	call   0x40ae90
406904:	85 c0                	test   %eax,%eax
406906:	59                   	pop    %ecx
406907:	59                   	pop    %ecx
406908:	74 04                	je     0x40690e
40690a:	33 c0                	xor    %eax,%eax
40690c:	eb 25                	jmp    0x406933
40690e:	f6 06 02             	testb  $0x2,(%esi)
406911:	74 05                	je     0x406918
406913:	f6 07 08             	testb  $0x8,(%edi)