50d250:	e9 8c 04 00 00       	jmp    0x50d6e1
50d255:	8b 45 c0             	mov    -0x40(%ebp),%eax
50d258:	83 f8 02             	cmp    $0x2,%eax
50d25b:	74 0e                	je     0x50d26b
50d25d:	83 f8 10             	cmp    $0x10,%eax
50d260:	74 09                	je     0x50d26b
50d262:	83 f8 19             	cmp    $0x19,%eax
50d265:	0f 85 76 04 00 00    	jne    0x50d6e1
50d26b:	8b 75 d8             	mov    -0x28(%ebp),%esi
50d26e:	8b ce                	mov    %esi,%ecx
50d270:	6a 01                	push   $0x1
50d272:	68 a0 c7 bd 00       	push   $0xbdc7a0
50d277:	68 bc c7 bd 00       	push   $0xbdc7bc
50d27c:	8b 06                	mov    (%esi),%eax
50d27e:	8b 40 64             	mov    0x64(%eax),%eax
50d281:	ff d0                	call   *%eax
50d283:	84 c0                	test   %al,%al
50d285:	0f 84 56 04 00 00    	je     0x50d6e1
50d28b:	68 c4 c7 bd 00       	push   $0xbdc7c4
50d290:	8d 85 54 05 00 00    	lea    0x554(%ebp),%eax
50d296:	c7 85 50 05 00 00 f8 	movl   $0xbd1cf8,0x550(%ebp)
50d29d:	1c bd 00
50d2a0:	68 04 01 00 00       	push   $0x104
50d2a5:	50                   	push   %eax
50d2a6:	89 85 58 06 00 00    	mov    %eax,0x658(%ebp)
50d2ac:	c7 85 5c 06 00 00 04 	movl   $0x104,0x65c(%ebp)
50d2b3:	01 00 00
50d2b6:	e8 d6 25 f3 ff       	call   0x43f891
50d2bb:	83 c4 0c             	add    $0xc,%esp
50d2be:	c7 85 50 05 00 00 04 	movl   $0xbd1d04,0x550(%ebp)
50d2c5:	1d bd 00
50d2c8:	8d 85 7c 08 00 00    	lea    0x87c(%ebp),%eax
50d2ce:	c7 85 84 09 00 00 04 	movl   $0x104,0x984(%ebp)
50d2d5:	01 00 00
50d2d8:	89 85 80 09 00 00    	mov    %eax,0x980(%ebp)
50d2de:	c6 85 7c 08 00 00 00 	movb   $0x0,0x87c(%ebp)
50d2e5:	c7 85 78 08 00 00 04 	movl   $0xbd1d04,0x878(%ebp)
50d2ec:	1d bd 00
50d2ef:	8b 06                	mov    (%esi),%eax
50d2f1:	8d 4d 00             	lea    0x0(%ebp),%ecx
50d2f4:	6a 00                	push   $0x0
50d2f6:	51                   	push   %ecx
50d2f7:	8b ce                	mov    %esi,%ecx
50d2f9:	c6 45 fc 0f          	movb   $0xf,-0x4(%ebp)
50d2fd:	ff 50 10             	call   *0x10(%eax)
50d300:	8d 8d 34 03 00 00    	lea    0x334(%ebp),%ecx
50d306:	c7 85 3c 04 00 00 04 	movl   $0x104,0x43c(%ebp)
50d30d:	01 00 00
50d310:	89 8d 38 04 00 00    	mov    %ecx,0x438(%ebp)
50d316:	c6 85 34 03 00 00 00 	movb   $0x0,0x334(%ebp)
50d31d:	ff b5 80 09 00 00    	push   0x980(%ebp)
50d323:	c7 85 30 03 00 00 04 	movl   $0xbd1d04,0x330(%ebp)
50d32a:	1d bd 00
50d32d:	ff b5 58 06 00 00    	push   0x658(%ebp)
50d333:	c6 45 fc 11          	movb   $0x11,-0x4(%ebp)
50d337:	ff b0 08 01 00 00    	push   0x108(%eax)
50d33d:	8b c1                	mov    %ecx,%eax
50d33f:	68 04 01 00 00       	push   $0x104
50d344:	50                   	push   %eax
50d345:	e8 02 07 f2 ff       	call   0x42da4c
50d34a:	83 c4 14             	add    $0x14,%esp
50d34d:	8d 4d 00             	lea    0x0(%ebp),%ecx
50d350:	e8 a3 11 f0 ff       	call   0x40e4f8
50d355:	8d 8d 78 08 00 00    	lea    0x878(%ebp),%ecx
50d35b:	e8 98 11 f0 ff       	call   0x40e4f8
50d360:	8d 8d 50 05 00 00    	lea    0x550(%ebp),%ecx
50d366:	c6 45 fc 15          	movb   $0x15,-0x4(%ebp)
50d36a:	e8 89 11 f0 ff       	call   0x40e4f8
50d36f:	68 c4 c7 bd 00       	push   $0xbdc7c4
50d374:	8d 85 24 02 00 00    	lea    0x224(%ebp),%eax
50d37a:	c7 85 20 02 00 00 f8 	movl   $0xbd1cf8,0x220(%ebp)
50d381:	1c bd 00
50d384:	68 04 01 00 00       	push   $0x104
50d389:	50                   	push   %eax
50d38a:	89 85 28 03 00 00    	mov    %eax,0x328(%ebp)
50d390:	c7 85 2c 03 00 00 04 	movl   $0x104,0x32c(%ebp)
50d397:	01 00 00
50d39a:	e8 f2 24 f3 ff       	call   0x43f891
50d39f:	83 c4 0c             	add    $0xc,%esp
50d3a2:	c7 85 20 02 00 00 04 	movl   $0xbd1d04,0x220(%ebp)
50d3a9:	1d bd 00
50d3ac:	8d 85 14 01 00 00    	lea    0x114(%ebp),%eax
50d3b2:	c7 85 1c 02 00 00 04 	movl   $0x104,0x21c(%ebp)
50d3b9:	01 00 00
50d3bc:	89 85 18 02 00 00    	mov    %eax,0x218(%ebp)
50d3c2:	c6 85 14 01 00 00 00 	movb   $0x0,0x114(%ebp)
50d3c9:	c7 85 10 01 00 00 04 	movl   $0xbd1d04,0x110(%ebp)
50d3d0:	1d bd 00
50d3d3:	8b 06                	mov    (%esi),%eax
50d3d5:	8d 8d 68 07 00 00    	lea    0x768(%ebp),%ecx
50d3db:	6a 01                	push   $0x1
50d3dd:	51                   	push   %ecx
50d3de:	8b ce                	mov    %esi,%ecx
50d3e0:	c6 45 fc 17          	movb   $0x17,-0x4(%ebp)
50d3e4:	ff 50 10             	call   *0x10(%eax)
50d3e7:	8d 8d 44 04 00 00    	lea    0x444(%ebp),%ecx
50d3ed:	c7 85 4c 05 00 00 04 	movl   $0x104,0x54c(%ebp)
50d3f4:	01 00 00
50d3f7:	89 8d 48 05 00 00    	mov    %ecx,0x548(%ebp)
50d3fd:	c6 85 44 04 00 00 00 	movb   $0x0,0x444(%ebp)
50d404:	ff b5 18 02 00 00    	push   0x218(%ebp)
50d40a:	c7 85 40 04 00 00 04 	movl   $0xbd1d04,0x440(%ebp)
50d411:	1d bd 00
50d414:	ff b5 28 03 00 00    	push   0x328(%ebp)
50d41a:	c6 45 fc 19          	movb   $0x19,-0x4(%ebp)
50d41e:	ff b0 08 01 00 00    	push   0x108(%eax)
50d424:	8b c1                	mov    %ecx,%eax
50d426:	68 04 01 00 00       	push   $0x104
50d42b:	50                   	push   %eax
50d42c:	e8 1b 06 f2 ff       	call   0x42da4c
50d431:	83 c4 14             	add    $0x14,%esp
50d434:	8d 8d 68 07 00 00    	lea    0x768(%ebp),%ecx
50d43a:	e8 b9 10 f0 ff       	call   0x40e4f8
50d43f:	8d 8d 10 01 00 00    	lea    0x110(%ebp),%ecx
50d445:	e8 ae 10 f0 ff       	call   0x40e4f8
50d44a:	8d 8d 20 02 00 00    	lea    0x220(%ebp),%ecx
50d450:	c6 45 fc 1d          	movb   $0x1d,-0x4(%ebp)
50d454:	e8 9f 10 f0 ff       	call   0x40e4f8
50d459:	8b 75 e4             	mov    -0x1c(%ebp),%esi
50d45c:	8b 06                	mov    (%esi),%eax
50d45e:	89 45 ec             	mov    %eax,-0x14(%ebp)
50d461:	8d 85 30 03 00 00    	lea    0x330(%ebp),%eax
50d467:	50                   	push   %eax
50d468:	e8 90 9d ef ff       	call   0x4071fd
50d46d:	83 c4 04             	add    $0x4,%esp
50d470:	84 c0                	test   %al,%al
50d472:	74 61                	je     0x50d4d5
50d474:	ff 75 ec             	push   -0x14(%ebp)
50d477:	e8 81 9d ef ff       	call   0x4071fd
50d47c:	83 c4 04             	add    $0x4,%esp
50d47f:	84 c0                	test   %al,%al
50d481:	74 52                	je     0x50d4d5
50d483:	8d 45 b8             	lea    -0x48(%ebp),%eax
50d486:	50                   	push   %eax
50d487:	8d 45 9c             	lea    -0x64(%ebp),%eax
50d48a:	50                   	push   %eax
50d48b:	8d 45 94             	lea    -0x6c(%ebp),%eax
50d48e:	50                   	push   %eax
50d48f:	8d 85 30 03 00 00    	lea    0x330(%ebp),%eax
50d495:	50                   	push   %eax
50d496:	e8 da 5c ef ff       	call   0x403175
50d49b:	8b 45 b8             	mov    -0x48(%ebp),%eax
50d49e:	8b 75 bc             	mov    -0x44(%ebp),%esi
50d4a1:	89 45 e8             	mov    %eax,-0x18(%ebp)
50d4a4:	8d 45 a4             	lea    -0x5c(%ebp),%eax
50d4a7:	50                   	push   %eax
50d4a8:	8d 45 8c             	lea    -0x74(%ebp),%eax
50d4ab:	50                   	push   %eax
50d4ac:	8d 45 84             	lea    -0x7c(%ebp),%eax
50d4af:	50                   	push   %eax
50d4b0:	ff 75 ec             	push   -0x14(%ebp)
50d4b3:	e8 bd 5c ef ff       	call   0x403175
50d4b8:	83 c4 20             	add    $0x20,%esp
50d4bb:	3b 75 a8             	cmp    -0x58(%ebp),%esi
50d4be:	0f 8f a9 00 00 00    	jg     0x50d56d
50d4c4:	7c 0c                	jl     0x50d4d2
50d4c6:	8b 45 e8             	mov    -0x18(%ebp),%eax
50d4c9:	3b 45 a4             	cmp    -0x5c(%ebp),%eax
50d4cc:	0f 87 9b 00 00 00    	ja     0x50d56d
50d4d2:	8b 75 e4             	mov    -0x1c(%ebp),%esi
50d4d5:	ff b5 38 04 00 00    	push   0x438(%ebp)
50d4db:	ff b5 48 05 00 00    	push   0x548(%ebp)
50d4e1:	e8 f5 5f ef ff       	call   0x4034db
50d4e6:	83 c4 08             	add    $0x8,%esp
50d4e9:	85 c0                	test   %eax,%eax
50d4eb:	0f 84 da 01 00 00    	je     0x50d6cb
50d4f1:	8b 36                	mov    (%esi),%esi
50d4f3:	8d 85 40 04 00 00    	lea    0x440(%ebp),%eax
50d4f9:	50                   	push   %eax
50d4fa:	89 75 ec             	mov    %esi,-0x14(%ebp)
50d4fd:	e8 fb 9c ef ff       	call   0x4071fd
50d502:	83 c4 04             	add    $0x4,%esp
50d505:	84 c0                	test   %al,%al
50d507:	0f 84 be 01 00 00    	je     0x50d6cb
50d50d:	56                   	push   %esi
50d50e:	e8 ea 9c ef ff       	call   0x4071fd
50d513:	83 c4 04             	add    $0x4,%esp
50d516:	84 c0                	test   %al,%al
50d518:	0f 84 ad 01 00 00    	je     0x50d6cb
50d51e:	8d 45 a4             	lea    -0x5c(%ebp),%eax
50d521:	50                   	push   %eax
50d522:	8d 45 84             	lea    -0x7c(%ebp),%eax
50d525:	50                   	push   %eax
50d526:	8d 45 8c             	lea    -0x74(%ebp),%eax
50d529:	50                   	push   %eax
50d52a:	8d 85 40 04 00 00    	lea    0x440(%ebp),%eax
50d530:	50                   	push   %eax
50d531:	e8 3f 5c ef ff       	call   0x403175
50d536:	8b 45 a4             	mov    -0x5c(%ebp),%eax
50d539:	8b 75 a8             	mov    -0x58(%ebp),%esi
50d53c:	89 45 e8             	mov    %eax,-0x18(%ebp)
50d53f:	8d 45 b8             	lea    -0x48(%ebp),%eax
50d542:	50                   	push   %eax
50d543:	8d 45 94             	lea    -0x6c(%ebp),%eax
50d546:	50                   	push   %eax
50d547:	8d 45 9c             	lea    -0x64(%ebp),%eax
50d54a:	50                   	push   %eax
50d54b:	ff 75 ec             	push   -0x14(%ebp)
50d54e:	e8 22 5c ef ff       	call   0x403175
50d553:	83 c4 20             	add    $0x20,%esp
50d556:	3b 75 bc             	cmp    -0x44(%ebp),%esi
50d559:	0f 8c 6c 01 00 00    	jl     0x50d6cb
50d55f:	7f 0c                	jg     0x50d56d
50d561:	8b 45 e8             	mov    -0x18(%ebp),%eax
50d564:	3b 45 b8             	cmp    -0x48(%ebp),%eax
50d567:	0f 86 5e 01 00 00    	jbe    0x50d6cb
50d56d:	8b 45 d8             	mov    -0x28(%ebp),%eax
50d570:	83 b8 14 05 00 00 00 	cmpl   $0x0,0x514(%eax)
50d577:	0f 84 e6 00 00 00    	je     0x50d663
50d57d:	8b 75 dc             	mov    -0x24(%ebp),%esi
50d580:	8d 95 7c 08 00 00    	lea    0x87c(%ebp),%edx
50d586:	c7 85 78 08 00 00 f8 	movl   $0xbd1cf8,0x878(%ebp)
50d58d:	1c bd 00
50d590:	89 95 80 09 00 00    	mov    %edx,0x980(%ebp)
50d596:	c7 85 84 09 00 00 04 	movl   $0x104,0x984(%ebp)
50d59d:	01 00 00
50d5a0:	85 f6                	test   %esi,%esi
50d5a2:	75 09                	jne    0x50d5ad
50d5a4:	c6 85 7c 08 00 00 00 	movb   $0x0,0x87c(%ebp)
50d5ab:	eb 7d                	jmp    0x50d62a
50d5ad:	8b ce                	mov    %esi,%ecx
50d5af:	8d 41 01             	lea    0x1(%ecx),%eax
50d5b2:	89 45 ec             	mov    %eax,-0x14(%ebp)
50d5b5:	8a 01                	mov    (%ecx),%al
50d5b7:	41                   	inc    %ecx
50d5b8:	84 c0                	test   %al,%al
50d5ba:	75 f9                	jne    0x50d5b5
50d5bc:	2b 4d ec             	sub    -0x14(%ebp),%ecx
50d5bf:	8d 41 01             	lea    0x1(%ecx),%eax
50d5c2:	89 45 e8             	mov    %eax,-0x18(%ebp)
50d5c5:	3d 04 01 00 00       	cmp    $0x104,%eax
50d5ca:	76 4b                	jbe    0x50d617
50d5cc:	50                   	push   %eax
50d5cd:	e8 c5 81 f2 ff       	call   0x435797
50d5d2:	ff b5 84 09 00 00    	push   0x984(%ebp)
50d5d8:	89 45 ec             	mov    %eax,-0x14(%ebp)
50d5db:	ff b5 80 09 00 00    	push   0x980(%ebp)
50d5e1:	50                   	push   %eax
50d5e2:	e8 9b 70 f0 ff       	call   0x414682
50d5e7:	8b 85 80 09 00 00    	mov    0x980(%ebp),%eax
50d5ed:	8d 8d 7c 08 00 00    	lea    0x87c(%ebp),%ecx
50d5f3:	83 c4 10             	add    $0x10,%esp
50d5f6:	3b c1                	cmp    %ecx,%eax
50d5f8:	74 09                	je     0x50d603
50d5fa:	50                   	push   %eax
50d5fb:	e8 12 10 f3 ff       	call   0x43e612
50d600:	83 c4 04             	add    $0x4,%esp
50d603:	8b 55 ec             	mov    -0x14(%ebp),%edx
50d606:	8b 45 e8             	mov    -0x18(%ebp),%eax
50d609:	89 95 80 09 00 00    	mov    %edx,0x980(%ebp)
50d60f:	89 85 84 09 00 00    	mov    %eax,0x984(%ebp)
50d615:	eb 05                	jmp    0x50d61c
50d617:	b8 04 01 00 00       	mov    $0x104,%eax
50d61c:	56                   	push   %esi
50d61d:	50                   	push   %eax
50d61e:	52                   	push   %edx
50d61f:	e8 6d 22 f3 ff       	call   0x43f891
50d624:	8b 45 d8             	mov    -0x28(%ebp),%eax
50d627:	83 c4 0c             	add    $0xc,%esp
50d62a:	c7 85 78 08 00 00 04 	movl   $0xbd1d04,0x878(%ebp)
50d631:	1d bd 00
50d634:	8b 4d e0             	mov    -0x20(%ebp),%ecx
50d637:	8d 95 78 08 00 00    	lea    0x878(%ebp),%edx
50d63d:	ff 75 c0             	push   -0x40(%ebp)
50d640:	83 c9 04             	or     $0x4,%ecx
50d643:	c6 45 fc 1e          	movb   $0x1e,-0x4(%ebp)
50d647:	89 4d e0             	mov    %ecx,-0x20(%ebp)
50d64a:	89 4d ec             	mov    %ecx,-0x14(%ebp)
50d64d:	8b 88 14 05 00 00    	mov    0x514(%eax),%ecx
50d653:	52                   	push   %edx
50d654:	8b 01                	mov    (%ecx),%eax
50d656:	8b 40 04             	mov    0x4(%eax),%eax
50d659:	ff d0                	call   *%eax
50d65b:	c6 45 f3 01          	movb   $0x1,-0xd(%ebp)
50d65f:	84 c0                	test   %al,%al
50d661:	75 04                	jne    0x50d667
50d663:	c6 45 f3 00          	movb   $0x0,-0xd(%ebp)
50d667:	f6 45 e0 04          	testb  $0x4,-0x20(%ebp)
50d66b:	c7 45 fc 1d 00 00 00 	movl   $0x1d,-0x4(%ebp)
50d672:	74 0b                	je     0x50d67f
50d674:	8d 8d 78 08 00 00    	lea    0x878(%ebp),%ecx
50d67a:	e8 79 0e f0 ff       	call   0x40e4f8
50d67f:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
50d683:	74 46                	je     0x50d6cb
50d685:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
50d688:	8b 41 04             	mov    0x4(%ecx),%eax
50d68b:	8b 31                	mov    (%ecx),%esi
50d68d:	3b f0                	cmp    %eax,%esi
50d68f:	74 1a                	je     0x50d6ab
50d691:	8b d8                	mov    %eax,%ebx
50d693:	8b 06                	mov    (%esi),%eax
50d695:	8b ce                	mov    %esi,%ecx
50d697:	6a 00                	push   $0x0
50d699:	ff 10                	call   *(%eax)
50d69b:	81 c6 10 01 00 00    	add    $0x110,%esi
50d6a1:	3b f3                	cmp    %ebx,%esi
50d6a3:	75 ee                	jne    0x50d693
50d6a5:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
50d6a8:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
50d6ab:	8b 01                	mov    (%ecx),%eax
50d6ad:	51                   	push   %ecx
50d6ae:	6a 00                	push   $0x0
50d6b0:	89 41 04             	mov    %eax,0x4(%ecx)
50d6b3:	8b 85 9c 09 00 00    	mov    0x99c(%ebp),%eax
50d6b9:	8b 4d d8             	mov    -0x28(%ebp),%ecx
50d6bc:	6a 01                	push   $0x1
50d6be:	50                   	push   %eax
50d6bf:	8d 45 ac             	lea    -0x54(%ebp),%eax
50d6c2:	50                   	push   %eax
50d6c3:	ff 75 dc             	push   -0x24(%ebp)
50d6c6:	e8 1c ff f1 ff       	call   0x42d5e7
50d6cb:	8d 8d 40 04 00 00    	lea    0x440(%ebp),%ecx
50d6d1:	e8 22 0e f0 ff       	call   0x40e4f8
50d6d6:	8d 8d 30 03 00 00    	lea    0x330(%ebp),%ecx
50d6dc:	e8 17 0e f0 ff       	call   0x40e4f8
50d6e1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
50d6e4:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
50d6e7:	8b 00                	mov    (%eax),%eax
50d6e9:	3b 41 04             	cmp    0x4(%ecx),%eax
50d6ec:	0f 95 45 f3          	setne  -0xd(%ebp)
50d6f0:	85 db                	test   %ebx,%ebx
50d6f2:	0f 84 80 00 00 00    	je     0x50d778
50d6f8:	8b f3                	mov    %ebx,%esi
50d6fa:	3b df                	cmp    %edi,%ebx
50d6fc:	74 14                	je     0x50d712
50d6fe:	66 90                	xchg   %ax,%ax
50d700:	8b 06                	mov    (%esi),%eax
50d702:	8b ce                	mov    %esi,%ecx
50d704:	6a 00                	push   $0x0
50d706:	ff 10                	call   *(%eax)
50d708:	81 c6 10 01 00 00    	add    $0x110,%esi
50d70e:	3b f7                	cmp    %edi,%esi
50d710:	75 ee                	jne    0x50d700
50d712:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
50d715:	b8 79 78 78 78       	mov    $0x78787879,%eax
50d71a:	2b cb                	sub    %ebx,%ecx
50d71c:	f7 e9                	imul   %ecx
50d71e:	c1 fa 07             	sar    $0x7,%edx
50d721:	8b c2                	mov    %edx,%eax
50d723:	c1 e8 1f             	shr    $0x1f,%eax
50d726:	03 c2                	add    %edx,%eax
50d728:	3d f0 f0 f0 00       	cmp    $0xf0f0f0,%eax
50d72d:	76 05                	jbe    0x50d734
50d72f:	e8 59 02 f3 ff       	call   0x43d98d
50d734:	69 c0 10 01 00 00    	imul   $0x110,%eax,%eax
50d73a:	3d 00 10 00 00       	cmp    $0x1000,%eax
50d73f:	72 2e                	jb     0x50d76f
50d741:	f6 c3 1f             	test   $0x1f,%bl
50d744:	74 05                	je     0x50d74b
50d746:	e8 42 02 f3 ff       	call   0x43d98d