4062fa:	8b 77 0c             	mov    0xc(%edi),%esi
4062fd:	89 45 fc             	mov    %eax,-0x4(%ebp)
406300:	8b de                	mov    %esi,%ebx
406302:	eb 2d                	jmp    0x406331
406304:	83 fe ff             	cmp    $0xffffffff,%esi
406307:	75 05                	jne    0x40630e
406309:	e8 47 65 00 00       	call   0x40c855
40630e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406311:	4e                   	dec    %esi
406312:	8b c6                	mov    %esi,%eax
406314:	6b c0 14             	imul   $0x14,%eax,%eax
406317:	03 c1                	add    %ecx,%eax
406319:	8b 4d 10             	mov    0x10(%ebp),%ecx
40631c:	39 48 04             	cmp    %ecx,0x4(%eax)
40631f:	7d 05                	jge    0x406326
406321:	3b 48 08             	cmp    0x8(%eax),%ecx
406324:	7e 05                	jle    0x40632b
406326:	83 fe ff             	cmp    $0xffffffff,%esi
406329:	75 09                	jne    0x406334
40632b:	ff 4d 0c             	decl   0xc(%ebp)
40632e:	8b 5d 08             	mov    0x8(%ebp),%ebx
406331:	89 75 08             	mov    %esi,0x8(%ebp)
406334:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
406338:	7d ca                	jge    0x406304
40633a:	8b 45 14             	mov    0x14(%ebp),%eax
40633d:	46                   	inc    %esi
40633e:	89 30                	mov    %esi,(%eax)
406340:	8b 45 18             	mov    0x18(%ebp),%eax
406343:	89 18                	mov    %ebx,(%eax)
406345:	3b 5f 0c             	cmp    0xc(%edi),%ebx
406348:	77 04                	ja     0x40634e
40634a:	3b f3                	cmp    %ebx,%esi
40634c:	76 05                	jbe    0x406353
40634e:	e8 02 65 00 00       	call   0x40c855
406353:	8b c6                	mov    %esi,%eax
406355:	6b c0 14             	imul   $0x14,%eax,%eax
406358:	03 45 fc             	add    -0x4(%ebp),%eax
40635b:	5f                   	pop    %edi
40635c:	5e                   	pop    %esi
40635d:	5b                   	pop    %ebx
40635e:	c9                   	leave
40635f:	c3                   	ret
406360:	8b 44 24 08          	mov    0x8(%esp),%eax
406364:	56                   	push   %esi
406365:	8b 74 24 08          	mov    0x8(%esp),%esi
406369:	89 06                	mov    %eax,(%esi)
40636b:	e8 dc 61 00 00       	call   0x40c54c
406370:	8b 80 98 00 00 00    	mov    0x98(%eax),%eax
406376:	89 46 04             	mov    %eax,0x4(%esi)
406379:	e8 ce 61 00 00       	call   0x40c54c
40637e:	89 b0 98 00 00 00    	mov    %esi,0x98(%eax)
406384:	8b c6                	mov    %esi,%eax
406386:	5e                   	pop    %esi
406387:	c3                   	ret
406388:	e8 bf 61 00 00       	call   0x40c54c
40638d:	8b 80 98 00 00 00    	mov    0x98(%eax),%eax
406393:	eb 0b                	jmp    0x4063a0
406395:	8b 08                	mov    (%eax),%ecx
406397:	3b 4c 24 04          	cmp    0x4(%esp),%ecx
40639b:	74 09                	je     0x4063a6
40639d:	8b 40 04             	mov    0x4(%eax),%eax
4063a0:	85 c0                	test   %eax,%eax
4063a2:	75 f1                	jne    0x406395
4063a4:	40                   	inc    %eax
4063a5:	c3                   	ret
4063a6:	33 c0                	xor    %eax,%eax
4063a8:	c3                   	ret
4063a9:	56                   	push   %esi
4063aa:	e8 9d 61 00 00       	call   0x40c54c
4063af:	8b 74 24 08          	mov    0x8(%esp),%esi
4063b3:	3b b0 98 00 00 00    	cmp    0x98(%eax),%esi
4063b9:	75 10                	jne    0x4063cb
4063bb:	e8 8c 61 00 00       	call   0x40c54c
4063c0:	8b 4e 04             	mov    0x4(%esi),%ecx
4063c3:	89 88 98 00 00 00    	mov    %ecx,0x98(%eax)
4063c9:	5e                   	pop    %esi
4063ca:	c3                   	ret
4063cb:	e8 7c 61 00 00       	call   0x40c54c
4063d0:	8b 80 98 00 00 00    	mov    0x98(%eax),%eax
4063d6:	eb 09                	jmp    0x4063e1
4063d8:	8b 48 04             	mov    0x4(%eax),%ecx
4063db:	3b f1                	cmp    %ecx,%esi
4063dd:	74 0e                	je     0x4063ed
4063df:	8b c1                	mov    %ecx,%eax
4063e1:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4063e5:	75 f1                	jne    0x4063d8
4063e7:	5e                   	pop    %esi
4063e8:	e9 68 64 00 00       	jmp    0x40c855
4063ed:	8b 4e 04             	mov    0x4(%esi),%ecx
4063f0:	89 48 04             	mov    %ecx,0x4(%eax)
4063f3:	5e                   	pop    %esi
4063f4:	c3                   	ret
4063f5:	55                   	push   %ebp
4063f6:	8b ec                	mov    %esp,%ebp
4063f8:	83 ec 18             	sub    $0x18,%esp
4063fb:	a1 20 c5 41 00       	mov    0x41c520,%eax
406400:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
406404:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406407:	33 c1                	xor    %ecx,%eax
406409:	8b 4d 08             	mov    0x8(%ebp),%ecx
40640c:	89 45 f0             	mov    %eax,-0x10(%ebp)
40640f:	8b 45 0c             	mov    0xc(%ebp),%eax
406412:	89 45 f4             	mov    %eax,-0xc(%ebp)
406415:	8b 45 14             	mov    0x14(%ebp),%eax
406418:	40                   	inc    %eax
406419:	c7 45 ec 4b 61 40 00 	movl   $0x40614b,-0x14(%ebp)
406420:	89 4d f8             	mov    %ecx,-0x8(%ebp)
406423:	89 45 fc             	mov    %eax,-0x4(%ebp)
406426:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40642c:	89 45 e8             	mov    %eax,-0x18(%ebp)
40642f:	8d 45 e8             	lea    -0x18(%ebp),%eax
406432:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
406438:	ff 75 18             	push   0x18(%ebp)
40643b:	51                   	push   %ecx
40643c:	ff 75 10             	push   0x10(%ebp)
40643f:	e8 5c 64 00 00       	call   0x40c8a0
406444:	8b c8                	mov    %eax,%ecx
406446:	8b 45 e8             	mov    -0x18(%ebp),%eax
406449:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40644f:	8b c1                	mov    %ecx,%eax
406451:	c9                   	leave
406452:	c3                   	ret
406453:	6a 0c                	push   $0xc
406455:	68 48 a8 41 00       	push   $0x41a848
40645a:	e8 e9 71 00 00       	call   0x40d648
40645f:	8b 75 08             	mov    0x8(%ebp),%esi
406462:	85 f6                	test   %esi,%esi
406464:	74 75                	je     0x4064db
406466:	83 3d f0 e5 41 00 03 	cmpl   $0x3,0x41e5f0
40646d:	75 43                	jne    0x4064b2
40646f:	6a 04                	push   $0x4
406471:	e8 a1 66 00 00       	call   0x40cb17
406476:	59                   	pop    %ecx
406477:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40647b:	56                   	push   %esi
40647c:	e8 0f 67 00 00       	call   0x40cb90
406481:	59                   	pop    %ecx
406482:	89 45 e4             	mov    %eax,-0x1c(%ebp)
406485:	85 c0                	test   %eax,%eax
406487:	74 09                	je     0x406492
406489:	56                   	push   %esi
40648a:	50                   	push   %eax
40648b:	e8 2b 67 00 00       	call   0x40cbbb
406490:	59                   	pop    %ecx
406491:	59                   	pop    %ecx
406492:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406499:	e8 0b 00 00 00       	call   0x4064a9
40649e:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
4064a2:	75 37                	jne    0x4064db
4064a4:	ff 75 08             	push   0x8(%ebp)
4064a7:	eb 0a                	jmp    0x4064b3
4064a9:	6a 04                	push   $0x4
4064ab:	e8 8f 65 00 00       	call   0x40ca3f
4064b0:	59                   	pop    %ecx
4064b1:	c3                   	ret
4064b2:	56                   	push   %esi
4064b3:	6a 00                	push   $0x0
4064b5:	ff 35 5c dd 41 00    	push   0x41dd5c
4064bb:	ff 15 b4 70 41 00    	call   *0x4170b4
4064c1:	85 c0                	test   %eax,%eax
4064c3:	75 16                	jne    0x4064db
4064c5:	e8 30 2f 00 00       	call   0x4093fa
4064ca:	8b f0                	mov    %eax,%esi
4064cc:	ff 15 b0 70 41 00    	call   *0x4170b0
4064d2:	50                   	push   %eax
4064d3:	e8 e7 2e 00 00       	call   0x4093bf
4064d8:	89 06                	mov    %eax,(%esi)
4064da:	59                   	pop    %ecx
4064db:	e8 ad 71 00 00       	call   0x40d68d
4064e0:	c3                   	ret
4064e1:	e8 66 60 00 00       	call   0x40c54c
4064e6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4064ea:	89 48 14             	mov    %ecx,0x14(%eax)
4064ed:	c3                   	ret
4064ee:	e8 59 60 00 00       	call   0x40c54c
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