40d336:	ff 75 18             	push   0x18(%ebp)
40d339:	ff d6                	call   *%esi
40d33b:	8b f8                	mov    %eax,%edi
40d33d:	3b fb                	cmp    %ebx,%edi
40d33f:	0f 84 ab 00 00 00    	je     0x40d3f0
40d345:	7e 3c                	jle    0x40d383
40d347:	81 ff f0 ff ff 7f    	cmp    $0x7ffffff0,%edi
40d34d:	77 34                	ja     0x40d383
40d34f:	8d 44 3f 08          	lea    0x8(%edi,%edi,1),%eax
40d353:	3d 00 04 00 00       	cmp    $0x400,%eax
40d358:	77 13                	ja     0x40d36d
40d35a:	e8 e1 4b 00 00       	call   0x411f40
40d35f:	8b c4                	mov    %esp,%eax
40d361:	3b c3                	cmp    %ebx,%eax
40d363:	74 1c                	je     0x40d381
40d365:	c7 00 cc cc 00 00    	movl   $0xcccc,(%eax)
40d36b:	eb 11                	jmp    0x40d37e
40d36d:	50                   	push   %eax
40d36e:	e8 fb c2 ff ff       	call   0x40966e
40d373:	59                   	pop    %ecx
40d374:	3b c3                	cmp    %ebx,%eax
40d376:	74 09                	je     0x40d381
40d378:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
40d37e:	83 c0 08             	add    $0x8,%eax
40d381:	8b d8                	mov    %eax,%ebx
40d383:	85 db                	test   %ebx,%ebx
40d385:	74 69                	je     0x40d3f0
40d387:	8d 04 3f             	lea    (%edi,%edi,1),%eax
40d38a:	50                   	push   %eax
40d38b:	6a 00                	push   $0x0
40d38d:	53                   	push   %ebx
40d38e:	e8 6d d3 ff ff       	call   0x40a700
40d393:	83 c4 0c             	add    $0xc,%esp
40d396:	57                   	push   %edi
40d397:	53                   	push   %ebx
40d398:	ff 75 10             	push   0x10(%ebp)
40d39b:	ff 75 0c             	push   0xc(%ebp)
40d39e:	6a 01                	push   $0x1
40d3a0:	ff 75 18             	push   0x18(%ebp)
40d3a3:	ff d6                	call   *%esi
40d3a5:	85 c0                	test   %eax,%eax
40d3a7:	74 11                	je     0x40d3ba
40d3a9:	ff 75 14             	push   0x14(%ebp)
40d3ac:	50                   	push   %eax
40d3ad:	53                   	push   %ebx
40d3ae:	ff 75 08             	push   0x8(%ebp)
40d3b1:	ff 15 d0 a0 41 00    	call   *0x41a0d0
40d3b7:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d3ba:	53                   	push   %ebx
40d3bb:	e8 a8 a8 ff ff       	call   0x407c68
40d3c0:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d3c3:	59                   	pop    %ecx
40d3c4:	eb 75                	jmp    0x40d43b
40d3c6:	33 f6                	xor    %esi,%esi
40d3c8:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
40d3cb:	75 08                	jne    0x40d3d5
40d3cd:	8b 07                	mov    (%edi),%eax
40d3cf:	8b 40 14             	mov    0x14(%eax),%eax
40d3d2:	89 45 1c             	mov    %eax,0x1c(%ebp)
40d3d5:	39 5d 18             	cmp    %ebx,0x18(%ebp)
40d3d8:	75 08                	jne    0x40d3e2
40d3da:	8b 07                	mov    (%edi),%eax
40d3dc:	8b 40 04             	mov    0x4(%eax),%eax
40d3df:	89 45 18             	mov    %eax,0x18(%ebp)
40d3e2:	ff 75 1c             	push   0x1c(%ebp)
40d3e5:	e8 56 49 00 00       	call   0x411d40
40d3ea:	59                   	pop    %ecx
40d3eb:	83 f8 ff             	cmp    $0xffffffff,%eax
40d3ee:	75 04                	jne    0x40d3f4
40d3f0:	33 c0                	xor    %eax,%eax
40d3f2:	eb 47                	jmp    0x40d43b
40d3f4:	3b 45 18             	cmp    0x18(%ebp),%eax
40d3f7:	74 1e                	je     0x40d417
40d3f9:	53                   	push   %ebx
40d3fa:	53                   	push   %ebx
40d3fb:	8d 4d 10             	lea    0x10(%ebp),%ecx
40d3fe:	51                   	push   %ecx
40d3ff:	ff 75 0c             	push   0xc(%ebp)
40d402:	50                   	push   %eax
40d403:	ff 75 18             	push   0x18(%ebp)
40d406:	e8 7e 49 00 00       	call   0x411d89
40d40b:	8b f0                	mov    %eax,%esi
40d40d:	83 c4 18             	add    $0x18,%esp
40d410:	3b f3                	cmp    %ebx,%esi
40d412:	74 dc                	je     0x40d3f0
40d414:	89 75 0c             	mov    %esi,0xc(%ebp)
40d417:	ff 75 14             	push   0x14(%ebp)
40d41a:	ff 75 10             	push   0x10(%ebp)
40d41d:	ff 75 0c             	push   0xc(%ebp)
40d420:	ff 75 08             	push   0x8(%ebp)
40d423:	ff 75 1c             	push   0x1c(%ebp)
40d426:	ff 15 3c a1 41 00    	call   *0x41a13c
40d42c:	8b f8                	mov    %eax,%edi
40d42e:	3b f3                	cmp    %ebx,%esi
40d430:	74 07                	je     0x40d439
40d432:	56                   	push   %esi
40d433:	e8 e8 7b ff ff       	call   0x405020
40d438:	59                   	pop    %ecx
40d439:	8b c7                	mov    %edi,%eax
40d43b:	8d 65 ec             	lea    -0x14(%ebp),%esp
40d43e:	5f                   	pop    %edi
40d43f:	5e                   	pop    %esi
40d440:	5b                   	pop    %ebx
40d441:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d444:	33 cd                	xor    %ebp,%ecx
40d446:	e8 db 91 ff ff       	call   0x406626
40d44b:	c9                   	leave
40d44c:	c3                   	ret
40d44d:	8b ff                	mov    %edi,%edi
40d44f:	55                   	push   %ebp
40d450:	8b ec                	mov    %esp,%ebp
40d452:	83 ec 10             	sub    $0x10,%esp
40d455:	ff 75 08             	push   0x8(%ebp)
40d458:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40d45b:	e8 04 a4 ff ff       	call   0x407864
40d460:	ff 75 24             	push   0x24(%ebp)
40d463:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40d466:	ff 75 20             	push   0x20(%ebp)
40d469:	ff 75 1c             	push   0x1c(%ebp)
40d46c:	ff 75 18             	push   0x18(%ebp)
40d46f:	ff 75 14             	push   0x14(%ebp)
40d472:	ff 75 10             	push   0x10(%ebp)
40d475:	ff 75 0c             	push   0xc(%ebp)
40d478:	e8 16 fe ff ff       	call   0x40d293
40d47d:	83 c4 1c             	add    $0x1c,%esp
40d480:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40d484:	74 07                	je     0x40d48d
40d486:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40d489:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40d48d:	c9                   	leave
40d48e:	c3                   	ret
40d48f:	8b ff                	mov    %edi,%edi
40d491:	55                   	push   %ebp
40d492:	8b ec                	mov    %esp,%ebp
40d494:	81 ec 94 00 00 00    	sub    $0x94,%esp
40d49a:	a1 68 b2 42 00       	mov    0x42b268,%eax
40d49f:	33 c5                	xor    %ebp,%eax
40d4a1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d4a4:	8b 45 08             	mov    0x8(%ebp),%eax
40d4a7:	53                   	push   %ebx
40d4a8:	56                   	push   %esi
40d4a9:	8b 75 18             	mov    0x18(%ebp),%esi
40d4ac:	33 db                	xor    %ebx,%ebx
40d4ae:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
40d4b2:	57                   	push   %edi
40d4b3:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
40d4b9:	89 b5 6c ff ff ff    	mov    %esi,-0x94(%ebp)
40d4bf:	0f 85 fe 00 00 00    	jne    0x40d5c3
40d4c5:	53                   	push   %ebx
40d4c6:	68 80 00 00 00       	push   $0x80
40d4cb:	8d bd 7c ff ff ff    	lea    -0x84(%ebp),%edi
40d4d1:	8b cf                	mov    %edi,%ecx
40d4d3:	51                   	push   %ecx
40d4d4:	ff 75 14             	push   0x14(%ebp)
40d4d7:	89 9d 78 ff ff ff    	mov    %ebx,-0x88(%ebp)
40d4dd:	ff 75 10             	push   0x10(%ebp)
40d4e0:	50                   	push   %eax
40d4e1:	e8 35 84 00 00       	call   0x41591b
40d4e6:	8b f0                	mov    %eax,%esi
40d4e8:	83 c4 18             	add    $0x18,%esp
40d4eb:	3b f3                	cmp    %ebx,%esi
40d4ed:	75 6a                	jne    0x40d559
40d4ef:	ff 15 98 a0 41 00    	call   *0x41a098
40d4f5:	83 f8 7a             	cmp    $0x7a,%eax
40d4f8:	0f 85 80 00 00 00    	jne    0x40d57e
40d4fe:	53                   	push   %ebx
40d4ff:	53                   	push   %ebx
40d500:	53                   	push   %ebx
40d501:	ff 75 14             	push   0x14(%ebp)
40d504:	ff 75 10             	push   0x10(%ebp)
40d507:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
40d50d:	e8 09 84 00 00       	call   0x41591b
40d512:	83 c4 18             	add    $0x18,%esp
40d515:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
40d51b:	3b c3                	cmp    %ebx,%eax
40d51d:	74 5f                	je     0x40d57e
40d51f:	33 f6                	xor    %esi,%esi
40d521:	46                   	inc    %esi
40d522:	56                   	push   %esi
40d523:	50                   	push   %eax
40d524:	e8 7c a6 ff ff       	call   0x407ba5
40d529:	8b f8                	mov    %eax,%edi
40d52b:	59                   	pop    %ecx
40d52c:	59                   	pop    %ecx
40d52d:	3b fb                	cmp    %ebx,%edi
40d52f:	74 4d                	je     0x40d57e
40d531:	53                   	push   %ebx
40d532:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
40d538:	89 b5 78 ff ff ff    	mov    %esi,-0x88(%ebp)
40d53e:	57                   	push   %edi
40d53f:	ff 75 14             	push   0x14(%ebp)
40d542:	ff 75 10             	push   0x10(%ebp)
40d545:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
40d54b:	e8 cb 83 00 00       	call   0x41591b
40d550:	8b f0                	mov    %eax,%esi
40d552:	83 c4 18             	add    $0x18,%esp
40d555:	3b f3                	cmp    %ebx,%esi
40d557:	74 1e                	je     0x40d577
40d559:	6a 01                	push   $0x1
40d55b:	56                   	push   %esi
40d55c:	e8 44 a6 ff ff       	call   0x407ba5
40d561:	59                   	pop    %ecx
40d562:	59                   	pop    %ecx
40d563:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
40d569:	89 01                	mov    %eax,(%ecx)
40d56b:	3b c3                	cmp    %ebx,%eax
40d56d:	75 21                	jne    0x40d590
40d56f:	39 9d 78 ff ff ff    	cmp    %ebx,-0x88(%ebp)
40d575:	74 07                	je     0x40d57e
40d577:	57                   	push   %edi
40d578:	e8 a3 7a ff ff       	call   0x405020
40d57d:	59                   	pop    %ecx
40d57e:	83 c8 ff             	or     $0xffffffff,%eax
40d581:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d584:	5f                   	pop    %edi
40d585:	5e                   	pop    %esi
40d586:	33 cd                	xor    %ebp,%ecx
40d588:	5b                   	pop    %ebx
40d589:	e8 98 90 ff ff       	call   0x406626
40d58e:	c9                   	leave
40d58f:	c3                   	ret
40d590:	8d 4e ff             	lea    -0x1(%esi),%ecx
40d593:	51                   	push   %ecx
40d594:	57                   	push   %edi
40d595:	56                   	push   %esi
40d596:	50                   	push   %eax
40d597:	e8 0a 25 00 00       	call   0x40faa6
40d59c:	83 c4 10             	add    $0x10,%esp
40d59f:	85 c0                	test   %eax,%eax
40d5a1:	74 0d                	je     0x40d5b0
40d5a3:	53                   	push   %ebx
40d5a4:	53                   	push   %ebx
40d5a5:	53                   	push   %ebx
40d5a6:	53                   	push   %ebx
40d5a7:	53                   	push   %ebx
40d5a8:	e8 50 7b ff ff       	call   0x4050fd
40d5ad:	83 c4 14             	add    $0x14,%esp
40d5b0:	39 9d 78 ff ff ff    	cmp    %ebx,-0x88(%ebp)
40d5b6:	74 07                	je     0x40d5bf
40d5b8:	57                   	push   %edi
40d5b9:	e8 62 7a ff ff       	call   0x405020
40d5be:	59                   	pop    %ecx
40d5bf:	33 c0                	xor    %eax,%eax
40d5c1:	eb be                	jmp    0x40d581
40d5c3:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
40d5c6:	75 b6                	jne    0x40d57e
40d5c8:	53                   	push   %ebx
40d5c9:	6a 04                	push   $0x4
40d5cb:	bf e8 0d 43 00       	mov    $0x430de8,%edi
40d5d0:	57                   	push   %edi
40d5d1:	ff 75 14             	push   0x14(%ebp)
40d5d4:	ff 75 10             	push   0x10(%ebp)
40d5d7:	50                   	push   %eax
40d5d8:	e8 cb 81 00 00       	call   0x4157a8
40d5dd:	83 c4 18             	add    $0x18,%esp
40d5e0:	85 c0                	test   %eax,%eax
40d5e2:	74 9a                	je     0x40d57e
40d5e4:	88 1e                	mov    %bl,(%esi)
40d5e6:	8a 1f                	mov    (%edi),%bl
40d5e8:	0f b6 c3             	movzbl %bl,%eax
40d5eb:	50                   	push   %eax
40d5ec:	e8 d2 aa ff ff       	call   0x4080c3
40d5f1:	59                   	pop    %ecx
40d5f2:	85 c0                	test   %eax,%eax
40d5f4:	74 c9                	je     0x40d5bf
40d5f6:	8a 06                	mov    (%esi),%al
40d5f8:	b1 0a                	mov    $0xa,%cl
40d5fa:	f6 e9                	imul   %cl
40d5fc:	02 c3                	add    %bl,%al
40d5fe:	2c 30                	sub    $0x30,%al
40d600:	47                   	inc    %edi
40d601:	47                   	inc    %edi
40d602:	81 ff f0 0d 43 00    	cmp    $0x430df0,%edi
40d608:	88 06                	mov    %al,(%esi)
40d60a:	7c da                	jl     0x40d5e6
40d60c:	eb b1                	jmp    0x40d5bf
40d60e:	8b ff                	mov    %edi,%edi
40d610:	55                   	push   %ebp
40d611:	8b ec                	mov    %esp,%ebp
40d613:	8b 45 08             	mov    0x8(%ebp),%eax
40d616:	a3 f0 0d 43 00       	mov    %eax,0x430df0
40d61b:	5d                   	pop    %ebp
40d61c:	c3                   	ret
40d61d:	8b ff                	mov    %edi,%edi
40d61f:	55                   	push   %ebp
40d620:	8b ec                	mov    %esp,%ebp
40d622:	8b 45 08             	mov    0x8(%ebp),%eax
40d625:	a3 14 0e 43 00       	mov    %eax,0x430e14
40d62a:	a3 18 0e 43 00       	mov    %eax,0x430e18
40d62f:	a3 1c 0e 43 00       	mov    %eax,0x430e1c
40d634:	a3 20 0e 43 00       	mov    %eax,0x430e20
40d639:	5d                   	pop    %ebp
40d63a:	c3                   	ret
40d63b:	8b ff                	mov    %edi,%edi
40d63d:	55                   	push   %ebp
40d63e:	8b ec                	mov    %esp,%ebp
40d640:	8b 45 08             	mov    0x8(%ebp),%eax
40d643:	8b 0d 9c b7 42 00    	mov    0x42b79c,%ecx
40d649:	56                   	push   %esi
40d64a:	39 50 04             	cmp    %edx,0x4(%eax)
40d64d:	74 0f                	je     0x40d65e
40d64f:	8b f1                	mov    %ecx,%esi
40d651:	6b f6 0c             	imul   $0xc,%esi,%esi
40d654:	03 75 08             	add    0x8(%ebp),%esi
40d657:	83 c0 0c             	add    $0xc,%eax
40d65a:	3b c6                	cmp    %esi,%eax
40d65c:	72 ec                	jb     0x40d64a
40d65e:	6b c9 0c             	imul   $0xc,%ecx,%ecx
40d661:	03 4d 08             	add    0x8(%ebp),%ecx
40d664:	5e                   	pop    %esi
40d665:	3b c1                	cmp    %ecx,%eax
40d667:	73 05                	jae    0x40d66e
40d669:	39 50 04             	cmp    %edx,0x4(%eax)
40d66c:	74 02                	je     0x40d670
40d66e:	33 c0                	xor    %eax,%eax
40d670:	5d                   	pop    %ebp
40d671:	c3                   	ret
40d672:	ff 35 1c 0e 43 00    	push   0x430e1c
40d678:	e8 78 d1 ff ff       	call   0x40a7f5
40d67d:	59                   	pop    %ecx
40d67e:	c3                   	ret
40d67f:	6a 20                	push   $0x20
40d681:	68 d0 97 42 00       	push   $0x4297d0
40d686:	e8 51 cd ff ff       	call   0x40a3dc
40d68b:	33 ff                	xor    %edi,%edi
40d68d:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40d690:	89 7d d8             	mov    %edi,-0x28(%ebp)
40d693:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d696:	83 fb 0b             	cmp    $0xb,%ebx
40d699:	7f 4c                	jg     0x40d6e7
40d69b:	74 15                	je     0x40d6b2
40d69d:	8b c3                	mov    %ebx,%eax
40d69f:	6a 02                	push   $0x2
40d6a1:	59                   	pop    %ecx
40d6a2:	2b c1                	sub    %ecx,%eax
40d6a4:	74 22                	je     0x40d6c8
40d6a6:	2b c1                	sub    %ecx,%eax
40d6a8:	74 08                	je     0x40d6b2
40d6aa:	2b c1                	sub    %ecx,%eax
40d6ac:	74 64                	je     0x40d712
40d6ae:	2b c1                	sub    %ecx,%eax
40d6b0:	75 44                	jne    0x40d6f6
40d6b2:	e8 11 d3 ff ff       	call   0x40a9c8
40d6b7:	8b f8                	mov    %eax,%edi
40d6b9:	89 7d d8             	mov    %edi,-0x28(%ebp)
40d6bc:	85 ff                	test   %edi,%edi
40d6be:	75 14                	jne    0x40d6d4
40d6c0:	83 c8 ff             	or     $0xffffffff,%eax
40d6c3:	e9 61 01 00 00       	jmp    0x40d829
40d6c8:	be 14 0e 43 00       	mov    $0x430e14,%esi