40e2f4:	eb 58                	jmp    0x40e34e
40e2f6:	3b c5                	cmp    %ebp,%eax
40e2f8:	74 04                	je     0x40e2fe
40e2fa:	3b c3                	cmp    %ebx,%eax
40e2fc:	75 80                	jne    0x40e27e
40e2fe:	ff 15 2c 71 41 00    	call   *0x41712c
40e304:	8b f0                	mov    %eax,%esi
40e306:	3b f3                	cmp    %ebx,%esi
40e308:	0f 84 70 ff ff ff    	je     0x40e27e
40e30e:	38 1e                	cmp    %bl,(%esi)
40e310:	74 0a                	je     0x40e31c
40e312:	40                   	inc    %eax
40e313:	38 18                	cmp    %bl,(%eax)
40e315:	75 fb                	jne    0x40e312
40e317:	40                   	inc    %eax
40e318:	38 18                	cmp    %bl,(%eax)
40e31a:	75 f6                	jne    0x40e312
40e31c:	2b c6                	sub    %esi,%eax
40e31e:	40                   	inc    %eax
40e31f:	8b e8                	mov    %eax,%ebp
40e321:	55                   	push   %ebp
40e322:	e8 c5 af ff ff       	call   0x4092ec
40e327:	8b f8                	mov    %eax,%edi
40e329:	3b fb                	cmp    %ebx,%edi
40e32b:	59                   	pop    %ecx
40e32c:	75 0c                	jne    0x40e33a
40e32e:	56                   	push   %esi
40e32f:	ff 15 28 71 41 00    	call   *0x417128
40e335:	e9 44 ff ff ff       	jmp    0x40e27e
40e33a:	55                   	push   %ebp
40e33b:	56                   	push   %esi
40e33c:	57                   	push   %edi
40e33d:	e8 8e 78 ff ff       	call   0x405bd0
40e342:	83 c4 0c             	add    $0xc,%esp
40e345:	56                   	push   %esi
40e346:	ff 15 28 71 41 00    	call   *0x417128
40e34c:	8b c7                	mov    %edi,%eax
40e34e:	5f                   	pop    %edi
40e34f:	5e                   	pop    %esi
40e350:	5d                   	pop    %ebp
40e351:	5b                   	pop    %ebx
40e352:	59                   	pop    %ecx
40e353:	59                   	pop    %ecx
40e354:	c3                   	ret
40e355:	6a 54                	push   $0x54
40e357:	68 d8 ac 41 00       	push   $0x41acd8
40e35c:	e8 e7 f2 ff ff       	call   0x40d648
40e361:	33 ff                	xor    %edi,%edi
40e363:	89 7d fc             	mov    %edi,-0x4(%ebp)
40e366:	8d 45 9c             	lea    -0x64(%ebp),%eax
40e369:	50                   	push   %eax
40e36a:	ff 15 c8 70 41 00    	call   *0x4170c8
40e370:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e377:	6a 28                	push   $0x28
40e379:	6a 20                	push   $0x20
40e37b:	5e                   	pop    %esi
40e37c:	56                   	push   %esi
40e37d:	e8 aa af ff ff       	call   0x40932c
40e382:	59                   	pop    %ecx
40e383:	59                   	pop    %ecx
40e384:	3b c7                	cmp    %edi,%eax
40e386:	0f 84 00 02 00 00    	je     0x40e58c
40e38c:	a3 c0 e4 41 00       	mov    %eax,0x41e4c0
40e391:	89 35 b4 e4 41 00    	mov    %esi,0x41e4b4
40e397:	8d 88 00 05 00 00    	lea    0x500(%eax),%ecx
40e39d:	eb 29                	jmp    0x40e3c8
40e39f:	c6 40 04 00          	movb   $0x0,0x4(%eax)
40e3a3:	83 08 ff             	orl    $0xffffffff,(%eax)
40e3a6:	c6 40 05 0a          	movb   $0xa,0x5(%eax)
40e3aa:	89 78 08             	mov    %edi,0x8(%eax)
40e3ad:	c6 40 24 00          	movb   $0x0,0x24(%eax)
40e3b1:	c6 40 25 0a          	movb   $0xa,0x25(%eax)
40e3b5:	c6 40 26 0a          	movb   $0xa,0x26(%eax)
40e3b9:	83 c0 28             	add    $0x28,%eax
40e3bc:	8b 0d c0 e4 41 00    	mov    0x41e4c0,%ecx
40e3c2:	81 c1 00 05 00 00    	add    $0x500,%ecx
40e3c8:	3b c1                	cmp    %ecx,%eax
40e3ca:	72 d3                	jb     0x40e39f
40e3cc:	66 39 7d ce          	cmp    %di,-0x32(%ebp)
40e3d0:	0f 84 fd 00 00 00    	je     0x40e4d3
40e3d6:	8b 45 d0             	mov    -0x30(%ebp),%eax
40e3d9:	3b c7                	cmp    %edi,%eax
40e3db:	0f 84 f2 00 00 00    	je     0x40e4d3
40e3e1:	8b 38                	mov    (%eax),%edi
40e3e3:	8d 58 04             	lea    0x4(%eax),%ebx
40e3e6:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
40e3e9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40e3ec:	b8 00 08 00 00       	mov    $0x800,%eax
40e3f1:	3b f8                	cmp    %eax,%edi
40e3f3:	7c 02                	jl     0x40e3f7
40e3f5:	8b f8                	mov    %eax,%edi
40e3f7:	33 f6                	xor    %esi,%esi
40e3f9:	46                   	inc    %esi
40e3fa:	eb 52                	jmp    0x40e44e
40e3fc:	6a 28                	push   $0x28
40e3fe:	6a 20                	push   $0x20
40e400:	e8 27 af ff ff       	call   0x40932c
40e405:	59                   	pop    %ecx
40e406:	59                   	pop    %ecx
40e407:	85 c0                	test   %eax,%eax
40e409:	74 4d                	je     0x40e458
40e40b:	8d 0c b5 c0 e4 41 00 	lea    0x41e4c0(,%esi,4),%ecx
40e412:	89 01                	mov    %eax,(%ecx)
40e414:	83 05 b4 e4 41 00 20 	addl   $0x20,0x41e4b4
40e41b:	8d 90 00 05 00 00    	lea    0x500(%eax),%edx
40e421:	eb 26                	jmp    0x40e449
40e423:	c6 40 04 00          	movb   $0x0,0x4(%eax)
40e427:	83 08 ff             	orl    $0xffffffff,(%eax)
40e42a:	c6 40 05 0a          	movb   $0xa,0x5(%eax)
40e42e:	83 60 08 00          	andl   $0x0,0x8(%eax)
40e432:	80 60 24 80          	andb   $0x80,0x24(%eax)
40e436:	c6 40 25 0a          	movb   $0xa,0x25(%eax)
40e43a:	c6 40 26 0a          	movb   $0xa,0x26(%eax)
40e43e:	83 c0 28             	add    $0x28,%eax
40e441:	8b 11                	mov    (%ecx),%edx
40e443:	81 c2 00 05 00 00    	add    $0x500,%edx
40e449:	3b c2                	cmp    %edx,%eax
40e44b:	72 d6                	jb     0x40e423
40e44d:	46                   	inc    %esi
40e44e:	39 3d b4 e4 41 00    	cmp    %edi,0x41e4b4
40e454:	7c a6                	jl     0x40e3fc
40e456:	eb 06                	jmp    0x40e45e
40e458:	8b 3d b4 e4 41 00    	mov    0x41e4b4,%edi
40e45e:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
40e462:	85 ff                	test   %edi,%edi
40e464:	7e 6d                	jle    0x40e4d3
40e466:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e469:	8b 08                	mov    (%eax),%ecx
40e46b:	83 f9 ff             	cmp    $0xffffffff,%ecx
40e46e:	74 56                	je     0x40e4c6
40e470:	83 f9 fe             	cmp    $0xfffffffe,%ecx
40e473:	74 51                	je     0x40e4c6
40e475:	8a 03                	mov    (%ebx),%al
40e477:	a8 01                	test   $0x1,%al
40e479:	74 4b                	je     0x40e4c6
40e47b:	a8 08                	test   $0x8,%al
40e47d:	75 0b                	jne    0x40e48a
40e47f:	51                   	push   %ecx
40e480:	ff 15 3c 71 41 00    	call   *0x41713c
40e486:	85 c0                	test   %eax,%eax
40e488:	74 3c                	je     0x40e4c6
40e48a:	8b 75 e0             	mov    -0x20(%ebp),%esi
40e48d:	8b c6                	mov    %esi,%eax
40e48f:	c1 f8 05             	sar    $0x5,%eax
40e492:	83 e6 1f             	and    $0x1f,%esi
40e495:	6b f6 28             	imul   $0x28,%esi,%esi
40e498:	03 34 85 c0 e4 41 00 	add    0x41e4c0(,%eax,4),%esi
40e49f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e4a2:	8b 00                	mov    (%eax),%eax
40e4a4:	89 06                	mov    %eax,(%esi)
40e4a6:	8a 03                	mov    (%ebx),%al
40e4a8:	88 46 04             	mov    %al,0x4(%esi)
40e4ab:	68 a0 0f 00 00       	push   $0xfa0
40e4b0:	8d 46 0c             	lea    0xc(%esi),%eax
40e4b3:	50                   	push   %eax
40e4b4:	e8 bc 5b 00 00       	call   0x414075
40e4b9:	59                   	pop    %ecx
40e4ba:	59                   	pop    %ecx
40e4bb:	85 c0                	test   %eax,%eax
40e4bd:	0f 84 c9 00 00 00    	je     0x40e58c
40e4c3:	ff 46 08             	incl   0x8(%esi)
40e4c6:	ff 45 e0             	incl   -0x20(%ebp)
40e4c9:	43                   	inc    %ebx
40e4ca:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
40e4ce:	39 7d e0             	cmp    %edi,-0x20(%ebp)
40e4d1:	7c 93                	jl     0x40e466
40e4d3:	33 db                	xor    %ebx,%ebx
40e4d5:	8b f3                	mov    %ebx,%esi
40e4d7:	6b f6 28             	imul   $0x28,%esi,%esi
40e4da:	03 35 c0 e4 41 00    	add    0x41e4c0,%esi
40e4e0:	8b 06                	mov    (%esi),%eax
40e4e2:	83 f8 ff             	cmp    $0xffffffff,%eax
40e4e5:	74 0b                	je     0x40e4f2
40e4e7:	83 f8 fe             	cmp    $0xfffffffe,%eax
40e4ea:	74 06                	je     0x40e4f2
40e4ec:	80 4e 04 80          	orb    $0x80,0x4(%esi)
40e4f0:	eb 72                	jmp    0x40e564
40e4f2:	c6 46 04 81          	movb   $0x81,0x4(%esi)
40e4f6:	85 db                	test   %ebx,%ebx
40e4f8:	75 05                	jne    0x40e4ff
40e4fa:	6a f6                	push   $0xfffffff6
40e4fc:	58                   	pop    %eax
40e4fd:	eb 0a                	jmp    0x40e509
40e4ff:	8b c3                	mov    %ebx,%eax
40e501:	48                   	dec    %eax
40e502:	f7 d8                	neg    %eax
40e504:	1b c0                	sbb    %eax,%eax
40e506:	83 c0 f5             	add    $0xfffffff5,%eax
40e509:	50                   	push   %eax
40e50a:	ff 15 20 71 41 00    	call   *0x417120
40e510:	8b f8                	mov    %eax,%edi
40e512:	83 ff ff             	cmp    $0xffffffff,%edi
40e515:	74 43                	je     0x40e55a
40e517:	85 ff                	test   %edi,%edi
40e519:	74 3f                	je     0x40e55a
40e51b:	57                   	push   %edi
40e51c:	ff 15 3c 71 41 00    	call   *0x41713c
40e522:	85 c0                	test   %eax,%eax
40e524:	74 34                	je     0x40e55a
40e526:	89 3e                	mov    %edi,(%esi)
40e528:	25 ff 00 00 00       	and    $0xff,%eax
40e52d:	83 f8 02             	cmp    $0x2,%eax
40e530:	75 06                	jne    0x40e538
40e532:	80 4e 04 40          	orb    $0x40,0x4(%esi)
40e536:	eb 09                	jmp    0x40e541
40e538:	83 f8 03             	cmp    $0x3,%eax
40e53b:	75 04                	jne    0x40e541
40e53d:	80 4e 04 08          	orb    $0x8,0x4(%esi)
40e541:	68 a0 0f 00 00       	push   $0xfa0
40e546:	8d 46 0c             	lea    0xc(%esi),%eax
40e549:	50                   	push   %eax
40e54a:	e8 26 5b 00 00       	call   0x414075
40e54f:	59                   	pop    %ecx
40e550:	59                   	pop    %ecx
40e551:	85 c0                	test   %eax,%eax
40e553:	74 37                	je     0x40e58c
40e555:	ff 46 08             	incl   0x8(%esi)
40e558:	eb 0a                	jmp    0x40e564
40e55a:	80 4e 04 40          	orb    $0x40,0x4(%esi)
40e55e:	c7 06 fe ff ff ff    	movl   $0xfffffffe,(%esi)
40e564:	43                   	inc    %ebx
40e565:	83 fb 03             	cmp    $0x3,%ebx
40e568:	0f 8c 67 ff ff ff    	jl     0x40e4d5
40e56e:	ff 35 b4 e4 41 00    	push   0x41e4b4
40e574:	ff 15 38 71 41 00    	call   *0x417138
40e57a:	33 c0                	xor    %eax,%eax
40e57c:	eb 11                	jmp    0x40e58f
40e57e:	33 c0                	xor    %eax,%eax
40e580:	40                   	inc    %eax
40e581:	c3                   	ret
40e582:	8b 65 e8             	mov    -0x18(%ebp),%esp
40e585:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e58c:	83 c8 ff             	or     $0xffffffff,%eax
40e58f:	e8 f9 f0 ff ff       	call   0x40d68d
40e594:	c3                   	ret
40e595:	56                   	push   %esi
40e596:	57                   	push   %edi
40e597:	b8 9c 9f 41 00       	mov    $0x419f9c,%eax
40e59c:	bf 9c 9f 41 00       	mov    $0x419f9c,%edi
40e5a1:	3b c7                	cmp    %edi,%eax
40e5a3:	8b f0                	mov    %eax,%esi
40e5a5:	73 0f                	jae    0x40e5b6
40e5a7:	8b 06                	mov    (%esi),%eax
40e5a9:	85 c0                	test   %eax,%eax
40e5ab:	74 02                	je     0x40e5af
40e5ad:	ff d0                	call   *%eax
40e5af:	83 c6 04             	add    $0x4,%esi
40e5b2:	3b f7                	cmp    %edi,%esi
40e5b4:	72 f1                	jb     0x40e5a7
40e5b6:	5f                   	pop    %edi
40e5b7:	5e                   	pop    %esi
40e5b8:	c3                   	ret
40e5b9:	56                   	push   %esi
40e5ba:	57                   	push   %edi
40e5bb:	b8 a4 9f 41 00       	mov    $0x419fa4,%eax
40e5c0:	bf a4 9f 41 00       	mov    $0x419fa4,%edi
40e5c5:	3b c7                	cmp    %edi,%eax
40e5c7:	8b f0                	mov    %eax,%esi
40e5c9:	73 0f                	jae    0x40e5da
40e5cb:	8b 06                	mov    (%esi),%eax
40e5cd:	85 c0                	test   %eax,%eax
40e5cf:	74 02                	je     0x40e5d3
40e5d1:	ff d0                	call   *%eax
40e5d3:	83 c6 04             	add    $0x4,%esi
40e5d6:	3b f7                	cmp    %edi,%esi
40e5d8:	72 f1                	jb     0x40e5cb
40e5da:	5f                   	pop    %edi
40e5db:	5e                   	pop    %esi
40e5dc:	c3                   	ret
40e5dd:	55                   	push   %ebp
40e5de:	8b ec                	mov    %esp,%ebp
40e5e0:	83 ec 10             	sub    $0x10,%esp
40e5e3:	a1 20 c5 41 00       	mov    0x41c520,%eax
40e5e8:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40e5ec:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e5f0:	53                   	push   %ebx
40e5f1:	57                   	push   %edi
40e5f2:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
40e5f7:	3b c7                	cmp    %edi,%eax
40e5f9:	bb 00 00 ff ff       	mov    $0xffff0000,%ebx
40e5fe:	74 0d                	je     0x40e60d
40e600:	85 c3                	test   %eax,%ebx
40e602:	74 09                	je     0x40e60d
40e604:	f7 d0                	not    %eax
40e606:	a3 24 c5 41 00       	mov    %eax,0x41c524
40e60b:	eb 60                	jmp    0x40e66d
40e60d:	56                   	push   %esi
40e60e:	8d 45 f8             	lea    -0x8(%ebp),%eax
40e611:	50                   	push   %eax
40e612:	ff 15 a4 70 41 00    	call   *0x4170a4
40e618:	8b 75 fc             	mov    -0x4(%ebp),%esi
40e61b:	33 75 f8             	xor    -0x8(%ebp),%esi
40e61e:	ff 15 48 71 41 00    	call   *0x417148
40e624:	33 f0                	xor    %eax,%esi
40e626:	ff 15 04 71 41 00    	call   *0x417104
40e62c:	33 f0                	xor    %eax,%esi
40e62e:	ff 15 44 71 41 00    	call   *0x417144
40e634:	33 f0                	xor    %eax,%esi
40e636:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e639:	50                   	push   %eax
40e63a:	ff 15 40 71 41 00    	call   *0x417140
40e640:	8b 45 f4             	mov    -0xc(%ebp),%eax
40e643:	33 45 f0             	xor    -0x10(%ebp),%eax
40e646:	33 f0                	xor    %eax,%esi
40e648:	3b f7                	cmp    %edi,%esi
40e64a:	75 07                	jne    0x40e653
40e64c:	be 4f e6 40 bb       	mov    $0xbb40e64f,%esi
40e651:	eb 0b                	jmp    0x40e65e
40e653:	85 f3                	test   %esi,%ebx
40e655:	75 07                	jne    0x40e65e
40e657:	8b c6                	mov    %esi,%eax
40e659:	c1 e0 10             	shl    $0x10,%eax
40e65c:	0b f0                	or     %eax,%esi
40e65e:	89 35 20 c5 41 00    	mov    %esi,0x41c520
40e664:	f7 d6                	not    %esi
40e666:	89 35 24 c5 41 00    	mov    %esi,0x41c524
40e66c:	5e                   	pop    %esi
40e66d:	5f                   	pop    %edi
40e66e:	5b                   	pop    %ebx
40e66f:	c9                   	leave
40e670:	c3                   	ret
40e671:	33 c0                	xor    %eax,%eax
40e673:	40                   	inc    %eax
40e674:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
40e679:	75 02                	jne    0x40e67d
40e67b:	33 c0                	xor    %eax,%eax
40e67d:	c3                   	ret
40e67e:	83 25 b0 e4 41 00 00 	andl   $0x0,0x41e4b0
40e685:	c3                   	ret
40e686:	56                   	push   %esi
40e687:	8b 74 24 08          	mov    0x8(%esp),%esi
40e68b:	57                   	push   %edi
40e68c:	33 ff                	xor    %edi,%edi
40e68e:	3b f7                	cmp    %edi,%esi
40e690:	75 1d                	jne    0x40e6af
40e692:	e8 63 ad ff ff       	call   0x4093fa
40e697:	57                   	push   %edi
40e698:	57                   	push   %edi
40e699:	57                   	push   %edi
40e69a:	57                   	push   %edi
40e69b:	57                   	push   %edi
40e69c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40e6a2:	e8 a9 8f ff ff       	call   0x407650
40e6a7:	83 c4 14             	add    $0x14,%esp
40e6aa:	e9 01 01 00 00       	jmp    0x40e7b0
40e6af:	8b 46 0c             	mov    0xc(%esi),%eax
40e6b2:	a8 83                	test   $0x83,%al
40e6b4:	0f 84 f6 00 00 00    	je     0x40e7b0
40e6ba:	a8 40                	test   $0x40,%al
40e6bc:	0f 85 ee 00 00 00    	jne    0x40e7b0