40634a:	c7 45 e4 80 f1 40 00 	movl   $0x40f180,-0x1c(%ebp)
406351:	81 7d e4 8c f1 40 00 	cmpl   $0x40f18c,-0x1c(%ebp)
406358:	73 11                	jae    0x40636b
40635a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40635d:	8b 00                	mov    (%eax),%eax
40635f:	85 c0                	test   %eax,%eax
406361:	74 02                	je     0x406365
406363:	ff d0                	call   *%eax
406365:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
406369:	eb e6                	jmp    0x406351
40636b:	c7 45 e0 90 f1 40 00 	movl   $0x40f190,-0x20(%ebp)
406372:	81 7d e0 94 f1 40 00 	cmpl   $0x40f194,-0x20(%ebp)
406379:	73 11                	jae    0x40638c
40637b:	8b 45 e0             	mov    -0x20(%ebp),%eax
40637e:	8b 00                	mov    (%eax),%eax
406380:	85 c0                	test   %eax,%eax
406382:	74 02                	je     0x406386
406384:	ff d0                	call   *%eax
406386:	83 45 e0 04          	addl   $0x4,-0x20(%ebp)
40638a:	eb e6                	jmp    0x406372
40638c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406393:	e8 20 00 00 00       	call   0x4063b8
406398:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40639c:	75 29                	jne    0x4063c7
40639e:	c7 05 88 32 41 00 01 	movl   $0x1,0x413288
4063a5:	00 00 00
4063a8:	6a 08                	push   $0x8
4063aa:	e8 11 09 00 00       	call   0x406cc0
4063af:	59                   	pop    %ecx
4063b0:	ff 75 08             	push   0x8(%ebp)
4063b3:	e8 bd fd ff ff       	call   0x406175
4063b8:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4063bc:	74 08                	je     0x4063c6
4063be:	6a 08                	push   $0x8
4063c0:	e8 fb 08 00 00       	call   0x406cc0
4063c5:	59                   	pop    %ecx
4063c6:	c3                   	ret
4063c7:	e8 e9 dd ff ff       	call   0x4041b5
4063cc:	c3                   	ret
4063cd:	8b ff                	mov    %edi,%edi
4063cf:	55                   	push   %ebp
4063d0:	8b ec                	mov    %esp,%ebp
4063d2:	6a 00                	push   $0x0
4063d4:	6a 00                	push   $0x0
4063d6:	ff 75 08             	push   0x8(%ebp)
4063d9:	e8 af fe ff ff       	call   0x40628d
4063de:	83 c4 0c             	add    $0xc,%esp
4063e1:	5d                   	pop    %ebp
4063e2:	c3                   	ret
4063e3:	8b ff                	mov    %edi,%edi
4063e5:	55                   	push   %ebp
4063e6:	8b ec                	mov    %esp,%ebp
4063e8:	6a 00                	push   $0x0
4063ea:	6a 01                	push   $0x1
4063ec:	ff 75 08             	push   0x8(%ebp)
4063ef:	e8 99 fe ff ff       	call   0x40628d
4063f4:	83 c4 0c             	add    $0xc,%esp
4063f7:	5d                   	pop    %ebp
4063f8:	c3                   	ret
4063f9:	6a 01                	push   $0x1
4063fb:	6a 00                	push   $0x0
4063fd:	6a 00                	push   $0x0
4063ff:	e8 89 fe ff ff       	call   0x40628d
406404:	83 c4 0c             	add    $0xc,%esp
406407:	c3                   	ret
406408:	6a 01                	push   $0x1
40640a:	6a 01                	push   $0x1
40640c:	6a 00                	push   $0x0
40640e:	e8 7a fe ff ff       	call   0x40628d
406413:	83 c4 0c             	add    $0xc,%esp
406416:	c3                   	ret
406417:	8b ff                	mov    %edi,%edi
406419:	55                   	push   %ebp
40641a:	8b ec                	mov    %esp,%ebp
40641c:	e8 e9 01 00 00       	call   0x40660a
406421:	ff 75 08             	push   0x8(%ebp)
406424:	e8 32 00 00 00       	call   0x40645b
406429:	59                   	pop    %ecx
40642a:	68 ff 00 00 00       	push   $0xff
40642f:	e8 af ff ff ff       	call   0x4063e3
406434:	cc                   	int3
406435:	8b ff                	mov    %edi,%edi
406437:	55                   	push   %ebp
406438:	8b ec                	mov    %esp,%ebp
40643a:	33 c0                	xor    %eax,%eax
40643c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40643f:	3b 0c c5 c0 fe 40 00 	cmp    0x40fec0(,%eax,8),%ecx
406446:	74 0a                	je     0x406452
406448:	40                   	inc    %eax
406449:	83 f8 16             	cmp    $0x16,%eax
40644c:	72 ee                	jb     0x40643c
40644e:	33 c0                	xor    %eax,%eax
406450:	5d                   	pop    %ebp
406451:	c3                   	ret
406452:	8b 04 c5 c4 fe 40 00 	mov    0x40fec4(,%eax,8),%eax
406459:	5d                   	pop    %ebp
40645a:	c3                   	ret
40645b:	8b ff                	mov    %edi,%edi
40645d:	55                   	push   %ebp
40645e:	8b ec                	mov    %esp,%ebp
406460:	81 ec fc 01 00 00    	sub    $0x1fc,%esp
406466:	a1 84 22 41 00       	mov    0x412284,%eax
40646b:	33 c5                	xor    %ebp,%eax
40646d:	89 45 fc             	mov    %eax,-0x4(%ebp)
406470:	53                   	push   %ebx
406471:	56                   	push   %esi
406472:	8b 75 08             	mov    0x8(%ebp),%esi
406475:	57                   	push   %edi
406476:	56                   	push   %esi
406477:	e8 b9 ff ff ff       	call   0x406435
40647c:	8b f8                	mov    %eax,%edi
40647e:	33 db                	xor    %ebx,%ebx
406480:	59                   	pop    %ecx
406481:	89 bd 04 fe ff ff    	mov    %edi,-0x1fc(%ebp)
406487:	3b fb                	cmp    %ebx,%edi
406489:	0f 84 6c 01 00 00    	je     0x4065fb
40648f:	6a 03                	push   $0x3
406491:	e8 f1 5c 00 00       	call   0x40c187
406496:	59                   	pop    %ecx
406497:	83 f8 01             	cmp    $0x1,%eax
40649a:	0f 84 07 01 00 00    	je     0x4065a7
4064a0:	6a 03                	push   $0x3
4064a2:	e8 e0 5c 00 00       	call   0x40c187
4064a7:	59                   	pop    %ecx
4064a8:	85 c0                	test   %eax,%eax
4064aa:	75 0d                	jne    0x4064b9
4064ac:	83 3d 80 22 41 00 01 	cmpl   $0x1,0x412280
4064b3:	0f 84 ee 00 00 00    	je     0x4065a7
4064b9:	81 fe fc 00 00 00    	cmp    $0xfc,%esi
4064bf:	0f 84 36 01 00 00    	je     0x4065fb
4064c5:	68 fc ff 40 00       	push   $0x40fffc
4064ca:	68 14 03 00 00       	push   $0x314
4064cf:	bf 90 32 41 00       	mov    $0x413290,%edi
4064d4:	57                   	push   %edi
4064d5:	e8 e1 d2 ff ff       	call   0x4037bb
4064da:	83 c4 0c             	add    $0xc,%esp
4064dd:	85 c0                	test   %eax,%eax
4064df:	0f 85 b8 00 00 00    	jne    0x40659d
4064e5:	68 04 01 00 00       	push   $0x104
4064ea:	be c2 32 41 00       	mov    $0x4132c2,%esi
4064ef:	56                   	push   %esi
4064f0:	53                   	push   %ebx
4064f1:	66 a3 ca 34 41 00    	mov    %ax,0x4134ca
4064f7:	ff 15 28 f0 40 00    	call   *0x40f028
4064fd:	bb fb 02 00 00       	mov    $0x2fb,%ebx
406502:	85 c0                	test   %eax,%eax
406504:	75 1f                	jne    0x406525
406506:	68 cc ff 40 00       	push   $0x40ffcc
40650b:	53                   	push   %ebx
40650c:	56                   	push   %esi
40650d:	e8 a9 d2 ff ff       	call   0x4037bb
406512:	83 c4 0c             	add    $0xc,%esp
406515:	85 c0                	test   %eax,%eax
406517:	74 0c                	je     0x406525
406519:	33 c0                	xor    %eax,%eax
40651b:	50                   	push   %eax
40651c:	50                   	push   %eax
40651d:	50                   	push   %eax
40651e:	50                   	push   %eax
40651f:	50                   	push   %eax
406520:	e8 10 c7 ff ff       	call   0x402c35
406525:	56                   	push   %esi
406526:	e8 eb 30 00 00       	call   0x409616
40652b:	40                   	inc    %eax
40652c:	59                   	pop    %ecx
40652d:	83 f8 3c             	cmp    $0x3c,%eax
406530:	76 2a                	jbe    0x40655c
406532:	56                   	push   %esi
406533:	e8 de 30 00 00       	call   0x409616
406538:	8d 04 45 4c 32 41 00 	lea    0x41324c(,%eax,2),%eax
40653f:	8b c8                	mov    %eax,%ecx
406541:	2b ce                	sub    %esi,%ecx
406543:	6a 03                	push   $0x3
406545:	d1 f9                	sar    $1,%ecx
406547:	68 c4 ff 40 00       	push   $0x40ffc4
40654c:	2b d9                	sub    %ecx,%ebx
40654e:	53                   	push   %ebx
40654f:	50                   	push   %eax
406550:	e8 65 5b 00 00       	call   0x40c0ba
406555:	83 c4 14             	add    $0x14,%esp
406558:	85 c0                	test   %eax,%eax
40655a:	75 bd                	jne    0x406519
40655c:	68 bc ff 40 00       	push   $0x40ffbc
406561:	be 14 03 00 00       	mov    $0x314,%esi
406566:	56                   	push   %esi
406567:	57                   	push   %edi
406568:	e8 d8 5a 00 00       	call   0x40c045
40656d:	83 c4 0c             	add    $0xc,%esp
406570:	85 c0                	test   %eax,%eax
406572:	75 a5                	jne    0x406519
406574:	ff b5 04 fe ff ff    	push   -0x1fc(%ebp)
40657a:	56                   	push   %esi
40657b:	57                   	push   %edi
40657c:	e8 c4 5a 00 00       	call   0x40c045
406581:	83 c4 0c             	add    $0xc,%esp
406584:	85 c0                	test   %eax,%eax
406586:	75 91                	jne    0x406519
406588:	68 10 20 01 00       	push   $0x12010
40658d:	68 70 ff 40 00       	push   $0x40ff70
406592:	57                   	push   %edi
406593:	e8 41 59 00 00       	call   0x40bed9
406598:	83 c4 0c             	add    $0xc,%esp
40659b:	eb 5e                	jmp    0x4065fb
40659d:	53                   	push   %ebx
40659e:	53                   	push   %ebx
40659f:	53                   	push   %ebx
4065a0:	53                   	push   %ebx
4065a1:	53                   	push   %ebx
4065a2:	e9 79 ff ff ff       	jmp    0x406520
4065a7:	6a f4                	push   $0xfffffff4
4065a9:	ff 15 40 f0 40 00    	call   *0x40f040
4065af:	8b f0                	mov    %eax,%esi
4065b1:	3b f3                	cmp    %ebx,%esi
4065b3:	74 46                	je     0x4065fb
4065b5:	83 fe ff             	cmp    $0xffffffff,%esi
4065b8:	74 41                	je     0x4065fb
4065ba:	33 c0                	xor    %eax,%eax
4065bc:	8a 0c 47             	mov    (%edi,%eax,2),%cl
4065bf:	88 8c 05 08 fe ff ff 	mov    %cl,-0x1f8(%ebp,%eax,1)
4065c6:	66 39 1c 47          	cmp    %bx,(%edi,%eax,2)
4065ca:	74 08                	je     0x4065d4
4065cc:	40                   	inc    %eax
4065cd:	3d f4 01 00 00       	cmp    $0x1f4,%eax
4065d2:	72 e8                	jb     0x4065bc
4065d4:	53                   	push   %ebx
4065d5:	8d 85 04 fe ff ff    	lea    -0x1fc(%ebp),%eax
4065db:	50                   	push   %eax
4065dc:	8d 85 08 fe ff ff    	lea    -0x1f8(%ebp),%eax
4065e2:	50                   	push   %eax
4065e3:	88 5d fb             	mov    %bl,-0x5(%ebp)
4065e6:	e8 75 45 00 00       	call   0x40ab60
4065eb:	59                   	pop    %ecx
4065ec:	50                   	push   %eax
4065ed:	8d 85 08 fe ff ff    	lea    -0x1f8(%ebp),%eax
4065f3:	50                   	push   %eax
4065f4:	56                   	push   %esi
4065f5:	ff 15 e8 f0 40 00    	call   *0x40f0e8
4065fb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4065fe:	5f                   	pop    %edi
4065ff:	5e                   	pop    %esi
406600:	33 cd                	xor    %ebp,%ecx
406602:	5b                   	pop    %ebx
406603:	e8 9c b7 ff ff       	call   0x401da4
406608:	c9                   	leave
406609:	c3                   	ret
40660a:	6a 03                	push   $0x3
40660c:	e8 76 5b 00 00       	call   0x40c187
406611:	59                   	pop    %ecx
406612:	83 f8 01             	cmp    $0x1,%eax
406615:	74 15                	je     0x40662c
406617:	6a 03                	push   $0x3
406619:	e8 69 5b 00 00       	call   0x40c187
40661e:	59                   	pop    %ecx
40661f:	85 c0                	test   %eax,%eax
406621:	75 1f                	jne    0x406642
406623:	83 3d 80 22 41 00 01 	cmpl   $0x1,0x412280
40662a:	75 16                	jne    0x406642
40662c:	68 fc 00 00 00       	push   $0xfc
406631:	e8 25 fe ff ff       	call   0x40645b
406636:	68 ff 00 00 00       	push   $0xff
40663b:	e8 1b fe ff ff       	call   0x40645b
406640:	59                   	pop    %ecx
406641:	59                   	pop    %ecx
406642:	c3                   	ret
406643:	8b ff                	mov    %edi,%edi
406645:	55                   	push   %ebp
406646:	8b ec                	mov    %esp,%ebp
406648:	8b 45 08             	mov    0x8(%ebp),%eax
40664b:	a3 b8 38 41 00       	mov    %eax,0x4138b8
406650:	5d                   	pop    %ebp
406651:	c3                   	ret
406652:	8b ff                	mov    %edi,%edi
406654:	55                   	push   %ebp
406655:	8b ec                	mov    %esp,%ebp
406657:	ff 35 b8 38 41 00    	push   0x4138b8
40665d:	ff 15 90 f0 40 00    	call   *0x40f090
406663:	85 c0                	test   %eax,%eax
406665:	74 0f                	je     0x406676
406667:	ff 75 08             	push   0x8(%ebp)
40666a:	ff d0                	call   *%eax
40666c:	59                   	pop    %ecx
40666d:	85 c0                	test   %eax,%eax
40666f:	74 05                	je     0x406676
406671:	33 c0                	xor    %eax,%eax
406673:	40                   	inc    %eax
406674:	5d                   	pop    %ebp
406675:	c3                   	ret
406676:	33 c0                	xor    %eax,%eax
406678:	5d                   	pop    %ebp
406679:	c3                   	ret
40667a:	8b ff                	mov    %edi,%edi
40667c:	55                   	push   %ebp
40667d:	8b ec                	mov    %esp,%ebp
40667f:	83 ec 4c             	sub    $0x4c,%esp
406682:	56                   	push   %esi
406683:	8d 45 b4             	lea    -0x4c(%ebp),%eax
406686:	50                   	push   %eax
406687:	ff 15 34 f0 40 00    	call   *0x40f034
40668d:	6a 40                	push   $0x40
40668f:	6a 20                	push   $0x20
406691:	5e                   	pop    %esi
406692:	56                   	push   %esi
406693:	e8 6c 02 00 00       	call   0x406904
406698:	59                   	pop    %ecx
406699:	59                   	pop    %ecx
40669a:	33 c9                	xor    %ecx,%ecx
40669c:	3b c1                	cmp    %ecx,%eax
40669e:	75 08                	jne    0x4066a8
4066a0:	83 c8 ff             	or     $0xffffffff,%eax
4066a3:	e9 0f 02 00 00       	jmp    0x4068b7
4066a8:	8d 90 00 08 00 00    	lea    0x800(%eax),%edx
4066ae:	a3 20 46 41 00       	mov    %eax,0x414620
4066b3:	89 35 00 46 41 00    	mov    %esi,0x414600
4066b9:	3b c2                	cmp    %edx,%eax
4066bb:	73 36                	jae    0x4066f3
4066bd:	83 c0 05             	add    $0x5,%eax
4066c0:	83 48 fb ff          	orl    $0xffffffff,-0x5(%eax)
4066c4:	66 c7 40 ff 00 0a    	movw   $0xa00,-0x1(%eax)
4066ca:	89 48 03             	mov    %ecx,0x3(%eax)
4066cd:	66 c7 40 1f 00 0a    	movw   $0xa00,0x1f(%eax)
4066d3:	c6 40 21 0a          	movb   $0xa,0x21(%eax)
4066d7:	89 48 33             	mov    %ecx,0x33(%eax)
4066da:	88 48 2f             	mov    %cl,0x2f(%eax)
4066dd:	8b 35 20 46 41 00    	mov    0x414620,%esi
4066e3:	83 c0 40             	add    $0x40,%eax
4066e6:	8d 50 fb             	lea    -0x5(%eax),%edx
4066e9:	81 c6 00 08 00 00    	add    $0x800,%esi
4066ef:	3b d6                	cmp    %esi,%edx
4066f1:	72 cd                	jb     0x4066c0
4066f3:	53                   	push   %ebx
4066f4:	57                   	push   %edi
4066f5:	66 39 4d e6          	cmp    %cx,-0x1a(%ebp)
4066f9:	0f 84 0e 01 00 00    	je     0x40680d
4066ff:	8b 45 e8             	mov    -0x18(%ebp),%eax
406702:	3b c1                	cmp    %ecx,%eax
406704:	0f 84 03 01 00 00    	je     0x40680d
40670a:	8b 18                	mov    (%eax),%ebx
40670c:	83 c0 04             	add    $0x4,%eax
40670f:	89 45 fc             	mov    %eax,-0x4(%ebp)
406712:	03 c3                	add    %ebx,%eax
406714:	be 00 08 00 00       	mov    $0x800,%esi
406719:	89 45 f8             	mov    %eax,-0x8(%ebp)
40671c:	3b de                	cmp    %esi,%ebx
40671e:	7c 02                	jl     0x406722
406720:	8b de                	mov    %esi,%ebx
406722:	39 1d 00 46 41 00    	cmp    %ebx,0x414600
406728:	7d 6b                	jge    0x406795
40672a:	bf 24 46 41 00       	mov    $0x414624,%edi
40672f:	6a 40                	push   $0x40
406731:	6a 20                	push   $0x20