40e2c3:	8b 46 14             	mov    0x14(%esi),%eax
40e2c6:	3b c3                	cmp    %ebx,%eax
40e2c8:	74 12                	je     0x40e2dc
40e2ca:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40e2cf:	74 0b                	je     0x40e2dc
40e2d1:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40e2d6:	0f 85 65 01 00 00    	jne    0x40e441
40e2dc:	8b 7d 18             	mov    0x18(%ebp),%edi
40e2df:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
40e2e3:	0f 86 bf 00 00 00    	jbe    0x40e3a8
40e2e9:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40e2ec:	50                   	push   %eax
40e2ed:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e2f0:	50                   	push   %eax
40e2f1:	ff 75 f8             	push   -0x8(%ebp)
40e2f4:	ff 75 20             	push   0x20(%ebp)
40e2f7:	57                   	push   %edi
40e2f8:	e8 af 81 ff ff       	call   0x4064ac
40e2fd:	83 c4 14             	add    $0x14,%esp
40e300:	8b f8                	mov    %eax,%edi
40e302:	8b 45 f0             	mov    -0x10(%ebp),%eax
40e305:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
40e308:	0f 83 97 00 00 00    	jae    0x40e3a5
40e30e:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e311:	39 07                	cmp    %eax,(%edi)
40e313:	0f 8f 81 00 00 00    	jg     0x40e39a
40e319:	3b 47 04             	cmp    0x4(%edi),%eax
40e31c:	7f 7c                	jg     0x40e39a
40e31e:	8b 47 10             	mov    0x10(%edi),%eax
40e321:	89 45 f4             	mov    %eax,-0xc(%ebp)
40e324:	8b 47 0c             	mov    0xc(%edi),%eax
40e327:	89 45 e8             	mov    %eax,-0x18(%ebp)
40e32a:	85 c0                	test   %eax,%eax
40e32c:	7e 6c                	jle    0x40e39a
40e32e:	8b 46 1c             	mov    0x1c(%esi),%eax
40e331:	8b 40 0c             	mov    0xc(%eax),%eax
40e334:	8d 58 04             	lea    0x4(%eax),%ebx
40e337:	8b 00                	mov    (%eax),%eax
40e339:	89 45 ec             	mov    %eax,-0x14(%ebp)
40e33c:	85 c0                	test   %eax,%eax
40e33e:	7e 23                	jle    0x40e363
40e340:	ff 76 1c             	push   0x1c(%esi)
40e343:	8b 03                	mov    (%ebx),%eax
40e345:	50                   	push   %eax
40e346:	ff 75 f4             	push   -0xc(%ebp)
40e349:	89 45 e0             	mov    %eax,-0x20(%ebp)
40e34c:	e8 d1 f5 ff ff       	call   0x40d922
40e351:	83 c4 0c             	add    $0xc,%esp
40e354:	85 c0                	test   %eax,%eax
40e356:	75 1a                	jne    0x40e372
40e358:	ff 4d ec             	decl   -0x14(%ebp)
40e35b:	83 c3 04             	add    $0x4,%ebx
40e35e:	39 45 ec             	cmp    %eax,-0x14(%ebp)
40e361:	7f dd                	jg     0x40e340
40e363:	ff 4d e8             	decl   -0x18(%ebp)
40e366:	83 45 f4 10          	addl   $0x10,-0xc(%ebp)
40e36a:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40e36e:	7f be                	jg     0x40e32e
40e370:	eb 28                	jmp    0x40e39a
40e372:	ff 75 24             	push   0x24(%ebp)
40e375:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40e378:	ff 75 20             	push   0x20(%ebp)
40e37b:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40e37f:	ff 75 e0             	push   -0x20(%ebp)
40e382:	ff 75 18             	push   0x18(%ebp)
40e385:	ff 75 14             	push   0x14(%ebp)
40e388:	ff 75 10             	push   0x10(%ebp)
40e38b:	56                   	push   %esi
40e38c:	8b 75 0c             	mov    0xc(%ebp),%esi
40e38f:	e8 4b fc ff ff       	call   0x40dfdf
40e394:	8b 75 08             	mov    0x8(%ebp),%esi
40e397:	83 c4 1c             	add    $0x1c,%esp
40e39a:	ff 45 f0             	incl   -0x10(%ebp)
40e39d:	83 c7 14             	add    $0x14,%edi
40e3a0:	e9 5d ff ff ff       	jmp    0x40e302
40e3a5:	8b 7d 18             	mov    0x18(%ebp),%edi
40e3a8:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
40e3ac:	74 0a                	je     0x40e3b8
40e3ae:	6a 01                	push   $0x1
40e3b0:	56                   	push   %esi
40e3b1:	e8 3a f7 ff ff       	call   0x40daf0
40e3b6:	59                   	pop    %ecx
40e3b7:	59                   	pop    %ecx
40e3b8:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40e3bc:	0f 85 ae 00 00 00    	jne    0x40e470
40e3c2:	8b 07                	mov    (%edi),%eax
40e3c4:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
40e3c9:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40e3ce:	0f 82 9c 00 00 00    	jb     0x40e470
40e3d4:	8b 7f 1c             	mov    0x1c(%edi),%edi
40e3d7:	85 ff                	test   %edi,%edi
40e3d9:	0f 84 91 00 00 00    	je     0x40e470
40e3df:	56                   	push   %esi
40e3e0:	e8 89 f7 ff ff       	call   0x40db6e
40e3e5:	59                   	pop    %ecx
40e3e6:	84 c0                	test   %al,%al
40e3e8:	0f 85 82 00 00 00    	jne    0x40e470
40e3ee:	e8 4e c6 ff ff       	call   0x40aa41
40e3f3:	e8 49 c6 ff ff       	call   0x40aa41
40e3f8:	e8 44 c6 ff ff       	call   0x40aa41
40e3fd:	89 b0 88 00 00 00    	mov    %esi,0x88(%eax)
40e403:	e8 39 c6 ff ff       	call   0x40aa41
40e408:	83 7d 24 00          	cmpl   $0x0,0x24(%ebp)
40e40c:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e40f:	89 88 8c 00 00 00    	mov    %ecx,0x8c(%eax)
40e415:	56                   	push   %esi
40e416:	75 05                	jne    0x40e41d
40e418:	ff 75 0c             	push   0xc(%ebp)
40e41b:	eb 03                	jmp    0x40e420
40e41d:	ff 75 24             	push   0x24(%ebp)
40e420:	e8 54 7e ff ff       	call   0x406279
40e425:	8b 75 18             	mov    0x18(%ebp),%esi
40e428:	6a ff                	push   $0xffffffff
40e42a:	56                   	push   %esi
40e42b:	ff 75 14             	push   0x14(%ebp)
40e42e:	ff 75 0c             	push   0xc(%ebp)
40e431:	e8 94 f5 ff ff       	call   0x40d9ca
40e436:	83 c4 10             	add    $0x10,%esp
40e439:	ff 76 1c             	push   0x1c(%esi)
40e43c:	e8 a8 f7 ff ff       	call   0x40dbe9
40e441:	8b 5d 18             	mov    0x18(%ebp),%ebx
40e444:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
40e448:	76 26                	jbe    0x40e470
40e44a:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
40e44e:	0f 85 29 fe ff ff    	jne    0x40e27d
40e454:	ff 75 24             	push   0x24(%ebp)
40e457:	ff 75 20             	push   0x20(%ebp)
40e45a:	ff 75 f8             	push   -0x8(%ebp)
40e45d:	53                   	push   %ebx
40e45e:	ff 75 14             	push   0x14(%ebp)
40e461:	ff 75 10             	push   0x10(%ebp)
40e464:	ff 75 0c             	push   0xc(%ebp)
40e467:	56                   	push   %esi
40e468:	e8 e0 fb ff ff       	call   0x40e04d
40e46d:	83 c4 20             	add    $0x20,%esp
40e470:	e8 cc c5 ff ff       	call   0x40aa41
40e475:	83 b8 94 00 00 00 00 	cmpl   $0x0,0x94(%eax)
40e47c:	74 05                	je     0x40e483
40e47e:	e8 54 01 00 00       	call   0x40e5d7
40e483:	5f                   	pop    %edi
40e484:	5e                   	pop    %esi
40e485:	5b                   	pop    %ebx
40e486:	c9                   	leave
40e487:	c3                   	ret
40e488:	8b ff                	mov    %edi,%edi
40e48a:	55                   	push   %ebp
40e48b:	8b ec                	mov    %esp,%ebp
40e48d:	56                   	push   %esi
40e48e:	ff 75 08             	push   0x8(%ebp)
40e491:	8b f1                	mov    %ecx,%esi
40e493:	e8 7a 6a ff ff       	call   0x404f12
40e498:	c7 06 e0 cb 41 00    	movl   $0x41cbe0,(%esi)
40e49e:	8b c6                	mov    %esi,%eax
40e4a0:	5e                   	pop    %esi
40e4a1:	5d                   	pop    %ebp
40e4a2:	c2 04 00             	ret    $0x4
40e4a5:	8b ff                	mov    %edi,%edi
40e4a7:	55                   	push   %ebp
40e4a8:	8b ec                	mov    %esp,%ebp
40e4aa:	53                   	push   %ebx
40e4ab:	56                   	push   %esi
40e4ac:	57                   	push   %edi
40e4ad:	e8 8f c5 ff ff       	call   0x40aa41
40e4b2:	83 b8 0c 02 00 00 00 	cmpl   $0x0,0x20c(%eax)
40e4b9:	8b 45 18             	mov    0x18(%ebp),%eax
40e4bc:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e4bf:	bf 63 73 6d e0       	mov    $0xe06d7363,%edi
40e4c4:	be ff ff ff 1f       	mov    $0x1fffffff,%esi
40e4c9:	bb 22 05 93 19       	mov    $0x19930522,%ebx
40e4ce:	75 20                	jne    0x40e4f0
40e4d0:	8b 11                	mov    (%ecx),%edx
40e4d2:	3b d7                	cmp    %edi,%edx
40e4d4:	74 1a                	je     0x40e4f0
40e4d6:	81 fa 26 00 00 80    	cmp    $0x80000026,%edx
40e4dc:	74 12                	je     0x40e4f0
40e4de:	8b 10                	mov    (%eax),%edx
40e4e0:	23 d6                	and    %esi,%edx
40e4e2:	3b d3                	cmp    %ebx,%edx
40e4e4:	72 0a                	jb     0x40e4f0
40e4e6:	f6 40 20 01          	testb  $0x1,0x20(%eax)
40e4ea:	0f 85 93 00 00 00    	jne    0x40e583
40e4f0:	f6 41 04 66          	testb  $0x66,0x4(%ecx)
40e4f4:	74 23                	je     0x40e519
40e4f6:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
40e4fa:	0f 84 83 00 00 00    	je     0x40e583
40e500:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
40e504:	75 7d                	jne    0x40e583
40e506:	6a ff                	push   $0xffffffff
40e508:	50                   	push   %eax
40e509:	ff 75 14             	push   0x14(%ebp)
40e50c:	ff 75 0c             	push   0xc(%ebp)
40e50f:	e8 b6 f4 ff ff       	call   0x40d9ca
40e514:	83 c4 10             	add    $0x10,%esp
40e517:	eb 6a                	jmp    0x40e583
40e519:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40e51d:	75 12                	jne    0x40e531
40e51f:	8b 10                	mov    (%eax),%edx
40e521:	23 d6                	and    %esi,%edx
40e523:	81 fa 21 05 93 19    	cmp    $0x19930521,%edx
40e529:	72 58                	jb     0x40e583
40e52b:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40e52f:	74 52                	je     0x40e583
40e531:	39 39                	cmp    %edi,(%ecx)
40e533:	75 32                	jne    0x40e567
40e535:	83 79 10 03          	cmpl   $0x3,0x10(%ecx)
40e539:	72 2c                	jb     0x40e567
40e53b:	39 59 14             	cmp    %ebx,0x14(%ecx)
40e53e:	76 27                	jbe    0x40e567
40e540:	8b 51 1c             	mov    0x1c(%ecx),%edx
40e543:	8b 52 08             	mov    0x8(%edx),%edx
40e546:	85 d2                	test   %edx,%edx
40e548:	74 1d                	je     0x40e567
40e54a:	0f b6 75 24          	movzbl 0x24(%ebp),%esi
40e54e:	56                   	push   %esi
40e54f:	ff 75 20             	push   0x20(%ebp)
40e552:	ff 75 1c             	push   0x1c(%ebp)
40e555:	50                   	push   %eax
40e556:	ff 75 14             	push   0x14(%ebp)
40e559:	ff 75 10             	push   0x10(%ebp)
40e55c:	ff 75 0c             	push   0xc(%ebp)
40e55f:	51                   	push   %ecx
40e560:	ff d2                	call   *%edx
40e562:	83 c4 20             	add    $0x20,%esp
40e565:	eb 1f                	jmp    0x40e586
40e567:	ff 75 20             	push   0x20(%ebp)
40e56a:	ff 75 1c             	push   0x1c(%ebp)
40e56d:	ff 75 24             	push   0x24(%ebp)
40e570:	50                   	push   %eax
40e571:	ff 75 14             	push   0x14(%ebp)
40e574:	ff 75 10             	push   0x10(%ebp)
40e577:	ff 75 0c             	push   0xc(%ebp)
40e57a:	51                   	push   %ecx
40e57b:	e8 c1 fb ff ff       	call   0x40e141
40e580:	83 c4 20             	add    $0x20,%esp
40e583:	33 c0                	xor    %eax,%eax
40e585:	40                   	inc    %eax
40e586:	5f                   	pop    %edi
40e587:	5e                   	pop    %esi
40e588:	5b                   	pop    %ebx
40e589:	5d                   	pop    %ebp
40e58a:	c3                   	ret
40e58b:	6a 08                	push   $0x8
40e58d:	68 50 99 42 00       	push   $0x429950
40e592:	e8 45 be ff ff       	call   0x40a3dc
40e597:	e8 a5 c4 ff ff       	call   0x40aa41
40e59c:	8b 40 78             	mov    0x78(%eax),%eax
40e59f:	85 c0                	test   %eax,%eax
40e5a1:	74 16                	je     0x40e5b9
40e5a3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e5a7:	ff d0                	call   *%eax
40e5a9:	eb 07                	jmp    0x40e5b2
40e5ab:	33 c0                	xor    %eax,%eax
40e5ad:	40                   	inc    %eax
40e5ae:	c3                   	ret
40e5af:	8b 65 e8             	mov    -0x18(%ebp),%esp
40e5b2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e5b9:	e8 2d 7a ff ff       	call   0x405feb
40e5be:	e8 5e be ff ff       	call   0x40a421
40e5c3:	c3                   	ret
40e5c4:	e8 78 c4 ff ff       	call   0x40aa41
40e5c9:	8b 40 7c             	mov    0x7c(%eax),%eax
40e5cc:	85 c0                	test   %eax,%eax
40e5ce:	74 02                	je     0x40e5d2
40e5d0:	ff d0                	call   *%eax
40e5d2:	e9 b4 ff ff ff       	jmp    0x40e58b
40e5d7:	6a 08                	push   $0x8
40e5d9:	68 70 99 42 00       	push   $0x429970
40e5de:	e8 f9 bd ff ff       	call   0x40a3dc
40e5e3:	ff 35 28 0e 43 00    	push   0x430e28
40e5e9:	e8 07 c2 ff ff       	call   0x40a7f5
40e5ee:	59                   	pop    %ecx
40e5ef:	85 c0                	test   %eax,%eax
40e5f1:	74 16                	je     0x40e609
40e5f3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e5f7:	ff d0                	call   *%eax
40e5f9:	eb 07                	jmp    0x40e602
40e5fb:	33 c0                	xor    %eax,%eax
40e5fd:	40                   	inc    %eax
40e5fe:	c3                   	ret
40e5ff:	8b 65 e8             	mov    -0x18(%ebp),%esp
40e602:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e609:	e8 7d ff ff ff       	call   0x40e58b
40e60e:	cc                   	int3
40e60f:	68 8b e5 40 00       	push   $0x40e58b
40e614:	e8 61 c1 ff ff       	call   0x40a77a
40e619:	59                   	pop    %ecx
40e61a:	a3 28 0e 43 00       	mov    %eax,0x430e28
40e61f:	c3                   	ret
40e620:	55                   	push   %ebp
40e621:	8b ec                	mov    %esp,%ebp
40e623:	83 ec 04             	sub    $0x4,%esp
40e626:	53                   	push   %ebx
40e627:	51                   	push   %ecx
40e628:	8b 45 0c             	mov    0xc(%ebp),%eax
40e62b:	83 c0 0c             	add    $0xc,%eax
40e62e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e631:	8b 45 08             	mov    0x8(%ebp),%eax
40e634:	55                   	push   %ebp
40e635:	ff 75 10             	push   0x10(%ebp)
40e638:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e63b:	8b 6d fc             	mov    -0x4(%ebp),%ebp
40e63e:	e8 31 5a 00 00       	call   0x414074
40e643:	56                   	push   %esi
40e644:	57                   	push   %edi
40e645:	ff d0                	call   *%eax
40e647:	5f                   	pop    %edi
40e648:	5e                   	pop    %esi
40e649:	8b dd                	mov    %ebp,%ebx
40e64b:	5d                   	pop    %ebp
40e64c:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e64f:	55                   	push   %ebp
40e650:	8b eb                	mov    %ebx,%ebp
40e652:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
40e658:	75 05                	jne    0x40e65f
40e65a:	b9 02 00 00 00       	mov    $0x2,%ecx
40e65f:	51                   	push   %ecx
40e660:	e8 0f 5a 00 00       	call   0x414074
40e665:	5d                   	pop    %ebp
40e666:	59                   	pop    %ecx
40e667:	5b                   	pop    %ebx
40e668:	c9                   	leave
40e669:	c2 0c 00             	ret    $0xc
40e66c:	8b ff                	mov    %edi,%edi
40e66e:	55                   	push   %ebp
40e66f:	8b ec                	mov    %esp,%ebp
40e671:	81 ec 28 03 00 00    	sub    $0x328,%esp
40e677:	a3 38 0f 43 00       	mov    %eax,0x430f38
40e67c:	89 0d 34 0f 43 00    	mov    %ecx,0x430f34
40e682:	89 15 30 0f 43 00    	mov    %edx,0x430f30
40e688:	89 1d 2c 0f 43 00    	mov    %ebx,0x430f2c
40e68e:	89 35 28 0f 43 00    	mov    %esi,0x430f28
40e694:	89 3d 24 0f 43 00    	mov    %edi,0x430f24
40e69a:	66 8c 15 50 0f 43 00 	data16 mov %ss,0x430f50
40e6a1:	66 8c 0d 44 0f 43 00 	data16 mov %cs,0x430f44
40e6a8:	66 8c 1d 20 0f 43 00 	data16 mov %ds,0x430f20
40e6af:	66 8c 05 1c 0f 43 00 	data16 mov %es,0x430f1c
40e6b6:	66 8c 25 18 0f 43 00 	data16 mov %fs,0x430f18
40e6bd:	66 8c 2d 14 0f 43 00 	data16 mov %gs,0x430f14
40e6c4:	9c                   	pushf
40e6c5:	8f 05 48 0f 43 00    	pop    0x430f48
40e6cb:	8b 45 00             	mov    0x0(%ebp),%eax
40e6ce:	a3 3c 0f 43 00       	mov    %eax,0x430f3c
40e6d3:	8b 45 04             	mov    0x4(%ebp),%eax
40e6d6:	a3 40 0f 43 00       	mov    %eax,0x430f40
40e6db:	8d 45 08             	lea    0x8(%ebp),%eax
40e6de:	a3 4c 0f 43 00       	mov    %eax,0x430f4c
40e6e3:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40e6e9:	c7 05 88 0e 43 00 01 	movl   $0x10001,0x430e88
40e6f0:	00 01 00
40e6f3:	a1 40 0f 43 00       	mov    0x430f40,%eax