50a3b9:	33 c0                	xor    %eax,%eax
50a3bb:	89 45 ac             	mov    %eax,-0x54(%ebp)
50a3be:	39 45 a0             	cmp    %eax,-0x60(%ebp)
50a3c1:	7e 2e                	jle    0x50a3f1
50a3c3:	8b 75 a4             	mov    -0x5c(%ebp),%esi
50a3c6:	50                   	push   %eax
50a3c7:	57                   	push   %edi
50a3c8:	53                   	push   %ebx
50a3c9:	e8 62 01 00 00       	call   0x50a530
50a3ce:	83 c4 0c             	add    $0xc,%esp
50a3d1:	89 06                	mov    %eax,(%esi)
50a3d3:	85 c0                	test   %eax,%eax
50a3d5:	75 08                	jne    0x50a3df
50a3d7:	8b 45 98             	mov    -0x68(%ebp),%eax
50a3da:	8b 40 08             	mov    0x8(%eax),%eax
50a3dd:	89 06                	mov    %eax,(%esi)
50a3df:	8b 45 ac             	mov    -0x54(%ebp),%eax
50a3e2:	83 c6 04             	add    $0x4,%esi
50a3e5:	40                   	inc    %eax
50a3e6:	89 45 ac             	mov    %eax,-0x54(%ebp)
50a3e9:	3b 45 a0             	cmp    -0x60(%ebp),%eax
50a3ec:	7c d8                	jl     0x50a3c6
50a3ee:	8b 75 88             	mov    -0x78(%ebp),%esi
50a3f1:	8b 5d 94             	mov    -0x6c(%ebp),%ebx
50a3f4:	83 c7 14             	add    $0x14,%edi
50a3f7:	c7 45 ac 00 00 00 00 	movl   $0x0,-0x54(%ebp)
50a3fe:	66 90                	xchg   %ax,%ax
50a400:	8b 17                	mov    (%edi),%edx
50a402:	85 d2                	test   %edx,%edx
50a404:	78 71                	js     0x50a477
50a406:	8b 03                	mov    (%ebx),%eax
50a408:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
50a40c:	74 07                	je     0x50a415
50a40e:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
50a413:	eb 09                	jmp    0x50a41e
50a415:	8b 43 68             	mov    0x68(%ebx),%eax
50a418:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
50a41b:	8d 04 88             	lea    (%eax,%ecx,4),%eax
50a41e:	8b 4d a0             	mov    -0x60(%ebp),%ecx
50a421:	89 48 08             	mov    %ecx,0x8(%eax)
50a424:	ff 06                	incl   (%esi)
50a426:	8b 03                	mov    (%ebx),%eax
50a428:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
50a42c:	74 0e                	je     0x50a43c
50a42e:	56                   	push   %esi
50a42f:	6a f7                	push   $0xfffffff7
50a431:	50                   	push   %eax
50a432:	e8 79 98 ff ff       	call   0x503cb0
50a437:	83 c4 0c             	add    $0xc,%esp
50a43a:	eb 26                	jmp    0x50a462
50a43c:	8b 43 68             	mov    0x68(%ebx),%eax
50a43f:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
50a442:	80 7c 88 01 00       	cmpb   $0x0,0x1(%eax,%ecx,4)
50a447:	8d 04 88             	lea    (%eax,%ecx,4),%eax
50a44a:	74 0f                	je     0x50a45b
50a44c:	6a f7                	push   $0xfffffff7
50a44e:	56                   	push   %esi
50a44f:	50                   	push   %eax
50a450:	53                   	push   %ebx
50a451:	e8 ea f7 04 00       	call   0x559c40
50a456:	83 c4 10             	add    $0x10,%esp
50a459:	eb 07                	jmp    0x50a462
50a45b:	89 70 10             	mov    %esi,0x10(%eax)
50a45e:	c6 40 01 f7          	movb   $0xf7,0x1(%eax)
50a462:	8b 45 ac             	mov    -0x54(%ebp),%eax
50a465:	40                   	inc    %eax
50a466:	c7 07 ff ff ff ff    	movl   $0xffffffff,(%edi)
50a46c:	83 c7 04             	add    $0x4,%edi
50a46f:	89 45 ac             	mov    %eax,-0x54(%ebp)
50a472:	83 f8 02             	cmp    $0x2,%eax
50a475:	7c 89                	jl     0x50a400
50a477:	8b 7d 9c             	mov    -0x64(%ebp),%edi
50a47a:	8b 7f 34             	mov    0x34(%edi),%edi
50a47d:	89 7d 9c             	mov    %edi,-0x64(%ebp)
50a480:	85 ff                	test   %edi,%edi
50a482:	0f 85 69 ff ff ff    	jne    0x50a3f1
50a488:	83 06 ff             	addl   $0xffffffff,(%esi)
50a48b:	75 0c                	jne    0x50a499
50a48d:	56                   	push   %esi
50a48e:	ff 76 0c             	push   0xc(%esi)
50a491:	e8 da 6e 01 00       	call   0x521370
50a496:	83 c4 08             	add    $0x8,%esp
50a499:	8b 5d a8             	mov    -0x58(%ebp),%ebx
50a49c:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
50a49f:	8b 45 e8             	mov    -0x18(%ebp),%eax
50a4a2:	89 41 08             	mov    %eax,0x8(%ecx)
50a4a5:	8b 45 ec             	mov    -0x14(%ebp),%eax
50a4a8:	89 41 0c             	mov    %eax,0xc(%ecx)
50a4ab:	8b 45 90             	mov    -0x70(%ebp),%eax
50a4ae:	85 c0                	test   %eax,%eax
50a4b0:	74 0e                	je     0x50a4c0
50a4b2:	6a 01                	push   $0x1
50a4b4:	50                   	push   %eax
50a4b5:	ff 75 98             	push   -0x68(%ebp)
50a4b8:	e8 33 e9 fe ff       	call   0x4f8df0
50a4bd:	83 c4 0c             	add    $0xc,%esp
50a4c0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50a4c3:	8b c3                	mov    %ebx,%eax
50a4c5:	5f                   	pop    %edi
50a4c6:	5e                   	pop    %esi
50a4c7:	33 cd                	xor    %ebp,%ecx
50a4c9:	5b                   	pop    %ebx
50a4ca:	e8 0b 70 0d 00       	call   0x5e14da
50a4cf:	8b e5                	mov    %ebp,%esp
50a4d1:	5d                   	pop    %ebp
50a4d2:	c3                   	ret
50a4d3:	0f b6 07             	movzbl (%edi),%eax
50a4d6:	2d 85 00 00 00       	sub    $0x85,%eax
50a4db:	74 1f                	je     0x50a4fc
50a4dd:	83 e8 01             	sub    $0x1,%eax
50a4e0:	74 13                	je     0x50a4f5
50a4e2:	83 e8 01             	sub    $0x1,%eax
50a4e5:	74 07                	je     0x50a4ee
50a4e7:	b8 08 af 6b 00       	mov    $0x6baf08,%eax
50a4ec:	eb 13                	jmp    0x50a501
50a4ee:	b8 f4 ae 6b 00       	mov    $0x6baef4,%eax
50a4f3:	eb 0c                	jmp    0x50a501
50a4f5:	b8 00 af 6b 00       	mov    $0x6baf00,%eax
50a4fa:	eb 05                	jmp    0x50a501
50a4fc:	b8 e8 ae 6b 00       	mov    $0x6baee8,%eax
50a501:	50                   	push   %eax
50a502:	85 c9                	test   %ecx,%ecx
50a504:	ba dc af 6b 00       	mov    $0x6bafdc,%edx
50a509:	b8 d0 af 6b 00       	mov    $0x6bafd0,%eax
50a50e:	0f 44 c2             	cmove  %edx,%eax
50a511:	50                   	push   %eax
50a512:	68 e4 af 6b 00       	push   $0x6bafe4
50a517:	53                   	push   %ebx
50a518:	e8 43 8d 01 00       	call   0x523260
50a51d:	83 c4 10             	add    $0x10,%esp
50a520:	bb 01 00 00 00       	mov    $0x1,%ebx
50a525:	e9 72 ff ff ff       	jmp    0x50a49c
50a52a:	cc                   	int3
50a52b:	cc                   	int3
50a52c:	cc                   	int3
50a52d:	cc                   	int3
50a52e:	cc                   	int3
50a52f:	cc                   	int3
50a530:	55                   	push   %ebp
50a531:	8b ec                	mov    %esp,%ebp
50a533:	56                   	push   %esi
50a534:	8b 75 10             	mov    0x10(%ebp),%esi
50a537:	57                   	push   %edi
50a538:	8b 7d 0c             	mov    0xc(%ebp),%edi
50a53b:	8b 47 34             	mov    0x34(%edi),%eax
50a53e:	85 c0                	test   %eax,%eax
50a540:	74 15                	je     0x50a557
50a542:	56                   	push   %esi
50a543:	50                   	push   %eax
50a544:	ff 75 08             	push   0x8(%ebp)
50a547:	e8 e4 ff ff ff       	call   0x50a530
50a54c:	83 c4 0c             	add    $0xc,%esp
50a54f:	85 c0                	test   %eax,%eax
50a551:	74 06                	je     0x50a559
50a553:	5f                   	pop    %edi
50a554:	5e                   	pop    %esi
50a555:	5d                   	pop    %ebp
50a556:	c3                   	ret
50a557:	33 c0                	xor    %eax,%eax
50a559:	8b 4f 1c             	mov    0x1c(%edi),%ecx
50a55c:	3b 31                	cmp    (%ecx),%esi
50a55e:	7d 12                	jge    0x50a572
50a560:	8d 04 b6             	lea    (%esi,%esi,4),%eax
50a563:	ff 74 81 04          	push   0x4(%ecx,%eax,4)
50a567:	ff 75 08             	push   0x8(%ebp)
50a56a:	e8 71 bd 01 00       	call   0x5262e0
50a56f:	83 c4 08             	add    $0x8,%esp
50a572:	5f                   	pop    %edi
50a573:	5e                   	pop    %esi
50a574:	5d                   	pop    %ebp
50a575:	c3                   	ret
50a576:	cc                   	int3
50a577:	cc                   	int3
50a578:	cc                   	int3
50a579:	cc                   	int3
50a57a:	cc                   	int3
50a57b:	cc                   	int3
50a57c:	cc                   	int3
50a57d:	cc                   	int3
50a57e:	cc                   	int3
50a57f:	cc                   	int3
50a580:	55                   	push   %ebp
50a581:	8b ec                	mov    %esp,%ebp
50a583:	81 ec 88 00 00 00    	sub    $0x88,%esp
50a589:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50a58e:	33 c5                	xor    %ebp,%eax
50a590:	89 45 fc             	mov    %eax,-0x4(%ebp)
50a593:	8b 4d 08             	mov    0x8(%ebp),%ecx
50a596:	8b 45 10             	mov    0x10(%ebp),%eax
50a599:	89 45 84             	mov    %eax,-0x7c(%ebp)
50a59c:	53                   	push   %ebx
50a59d:	8b 41 38             	mov    0x38(%ecx),%eax
50a5a0:	8b 11                	mov    (%ecx),%edx
50a5a2:	48                   	dec    %eax
50a5a3:	8b 59 08             	mov    0x8(%ecx),%ebx
50a5a6:	56                   	push   %esi
50a5a7:	8b 75 0c             	mov    0xc(%ebp),%esi
50a5aa:	89 45 a4             	mov    %eax,-0x5c(%ebp)
50a5ad:	48                   	dec    %eax
50a5ae:	89 41 38             	mov    %eax,0x38(%ecx)
50a5b1:	57                   	push   %edi
50a5b2:	8b 7e 30             	mov    0x30(%esi),%edi
50a5b5:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
50a5b8:	8b 4e 34             	mov    0x34(%esi),%ecx
50a5bb:	89 45 98             	mov    %eax,-0x68(%ebp)
50a5be:	0f b6 06             	movzbl (%esi),%eax
50a5c1:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
50a5c4:	8b 0f                	mov    (%edi),%ecx
50a5c6:	89 75 c8             	mov    %esi,-0x38(%ebp)
50a5c9:	c7 45 8c 00 00 00 00 	movl   $0x0,-0x74(%ebp)
50a5d0:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
50a5d7:	89 55 88             	mov    %edx,-0x78(%ebp)
50a5da:	89 5d a0             	mov    %ebx,-0x60(%ebp)
50a5dd:	89 45 ac             	mov    %eax,-0x54(%ebp)
50a5e0:	89 4d a8             	mov    %ecx,-0x58(%ebp)
50a5e3:	3d 85 00 00 00       	cmp    $0x85,%eax
50a5e8:	0f 84 d4 00 00 00    	je     0x50a6c2
50a5ee:	80 7a 51 00          	cmpb   $0x0,0x51(%edx)
50a5f2:	be 01 00 00 00       	mov    $0x1,%esi
50a5f7:	0f 85 c2 00 00 00    	jne    0x50a6bf
50a5fd:	8d 04 89             	lea    (%ecx,%ecx,4),%eax
50a600:	c1 e0 02             	shl    $0x2,%eax
50a603:	89 45 94             	mov    %eax,-0x6c(%ebp)
50a606:	8b 45 c8             	mov    -0x38(%ebp),%eax
50a609:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
50a610:	8b 40 1c             	mov    0x1c(%eax),%eax
50a613:	3b 30                	cmp    (%eax),%esi
50a615:	0f 8f a4 00 00 00    	jg     0x50a6bf
50a61b:	33 d2                	xor    %edx,%edx
50a61d:	85 c9                	test   %ecx,%ecx
50a61f:	7e 1b                	jle    0x50a63c
50a621:	8b 5d a8             	mov    -0x58(%ebp),%ebx
50a624:	8d 4f 14             	lea    0x14(%edi),%ecx
50a627:	0f b7 01             	movzwl (%ecx),%eax
50a62a:	3b c6                	cmp    %esi,%eax
50a62c:	74 08                	je     0x50a636
50a62e:	42                   	inc    %edx
50a62f:	83 c1 14             	add    $0x14,%ecx
50a632:	3b d3                	cmp    %ebx,%edx
50a634:	7c f1                	jl     0x50a627
50a636:	8b 5d a0             	mov    -0x60(%ebp),%ebx
50a639:	8b 4d a8             	mov    -0x58(%ebp),%ecx
50a63c:	3b d1                	cmp    %ecx,%edx
50a63e:	75 6e                	jne    0x50a6ae
50a640:	6a 00                	push   $0x0
50a642:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
50a648:	c7 85 78 ff ff ff 00 	movl   $0x0,-0x88(%ebp)
50a64f:	00 00 00
50a652:	50                   	push   %eax
50a653:	68 98 00 00 00       	push   $0x98
50a658:	ff 75 88             	push   -0x78(%ebp)
50a65b:	c7 85 7c ff ff ff 00 	movl   $0x0,-0x84(%ebp)
50a662:	00 00 00
50a665:	e8 06 90 01 00       	call   0x523670
50a66a:	83 c4 10             	add    $0x10,%esp
50a66d:	85 c0                	test   %eax,%eax
50a66f:	0f 84 a3 00 00 00    	je     0x50a718
50a675:	81 48 04 00 04 00 00 	orl    $0x400,0x4(%eax)
50a67c:	50                   	push   %eax
50a67d:	57                   	push   %edi
50a67e:	ff 75 c4             	push   -0x3c(%ebp)
50a681:	89 70 08             	mov    %esi,0x8(%eax)
50a684:	e8 f7 ce 01 00       	call   0x527580
50a689:	8b f8                	mov    %eax,%edi
50a68b:	83 c4 0c             	add    $0xc,%esp
50a68e:	8b 45 c8             	mov    -0x38(%ebp),%eax
50a691:	89 78 30             	mov    %edi,0x30(%eax)
50a694:	85 ff                	test   %edi,%edi
50a696:	74 11                	je     0x50a6a9
50a698:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
50a69b:	ff 45 a8             	incl   -0x58(%ebp)
50a69e:	66 89 74 39 14       	mov    %si,0x14(%ecx,%edi,1)
50a6a3:	83 c1 14             	add    $0x14,%ecx
50a6a6:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
50a6a9:	8b 4d a8             	mov    -0x58(%ebp),%ecx
50a6ac:	eb 03                	jmp    0x50a6b1
50a6ae:	8b 45 c8             	mov    -0x38(%ebp),%eax
50a6b1:	8b 55 88             	mov    -0x78(%ebp),%edx
50a6b4:	46                   	inc    %esi
50a6b5:	80 7a 51 00          	cmpb   $0x0,0x51(%edx)
50a6b9:	0f 84 51 ff ff ff    	je     0x50a610
50a6bf:	8b 75 c8             	mov    -0x38(%ebp),%esi
50a6c2:	8d 04 8d 04 00 00 00 	lea    0x4(,%ecx,4),%eax
50a6c9:	6a 00                	push   $0x0
50a6cb:	50                   	push   %eax
50a6cc:	52                   	push   %edx
50a6cd:	e8 0e 6d 01 00       	call   0x5213e0
50a6d2:	83 c4 0c             	add    $0xc,%esp
50a6d5:	89 45 80             	mov    %eax,-0x80(%ebp)
50a6d8:	85 c0                	test   %eax,%eax
50a6da:	74 52                	je     0x50a72e
50a6dc:	8b 75 a8             	mov    -0x58(%ebp),%esi
50a6df:	b9 01 00 00 00       	mov    $0x1,%ecx
50a6e4:	89 30                	mov    %esi,(%eax)
50a6e6:	3b f1                	cmp    %ecx,%esi
50a6e8:	7c 18                	jl     0x50a702
50a6ea:	8d 57 14             	lea    0x14(%edi),%edx
50a6ed:	8b d8                	mov    %eax,%ebx
50a6ef:	90                   	nop
50a6f0:	0f b7 02             	movzwl (%edx),%eax
50a6f3:	8d 52 14             	lea    0x14(%edx),%edx
50a6f6:	48                   	dec    %eax
50a6f7:	89 04 8b             	mov    %eax,(%ebx,%ecx,4)
50a6fa:	41                   	inc    %ecx
50a6fb:	3b ce                	cmp    %esi,%ecx
50a6fd:	7e f1                	jle    0x50a6f0
50a6ff:	8b 5d a0             	mov    -0x60(%ebp),%ebx
50a702:	8b 75 c8             	mov    -0x38(%ebp),%esi
50a705:	6a 01                	push   $0x1
50a707:	56                   	push   %esi
50a708:	ff 75 c4             	push   -0x3c(%ebp)
50a70b:	e8 c0 0e 00 00       	call   0x50b5d0
50a710:	83 c4 0c             	add    $0xc,%esp
50a713:	89 45 94             	mov    %eax,-0x6c(%ebp)
50a716:	eb 1d                	jmp    0x50a735
50a718:	5f                   	pop    %edi
50a719:	5e                   	pop    %esi
50a71a:	b8 07 00 00 00       	mov    $0x7,%eax
50a71f:	5b                   	pop    %ebx
50a720:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50a723:	33 cd                	xor    %ebp,%ecx
50a725:	e8 b0 6d 0d 00       	call   0x5e14da
50a72a:	8b e5                	mov    %ebp,%esp
50a72c:	5d                   	pop    %ebp
50a72d:	c3                   	ret
50a72e:	c7 45 94 00 00 00 00 	movl   $0x0,-0x6c(%ebp)
50a735:	8b 45 c4             	mov    -0x3c(%ebp),%eax
50a738:	6a 00                	push   $0x0
50a73a:	89 7e 30             	mov    %edi,0x30(%esi)
50a73d:	57                   	push   %edi
50a73e:	ff 30                	push   (%eax)
50a740:	e8 7b d1 01 00       	call   0x5278c0
50a745:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
50a748:	83 c4 0c             	add    $0xc,%esp
50a74b:	8b 7d ac             	mov    -0x54(%ebp),%edi
50a74e:	89 41 30             	mov    %eax,0x30(%ecx)
50a751:	81 ff 85 00 00 00    	cmp    $0x85,%edi
50a757:	75 0c                	jne    0x50a765
50a759:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
50a760:	e9 f0 00 00 00       	jmp    0x50a855
50a765:	8b 46 1c             	mov    0x1c(%esi),%eax
50a768:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
50a76b:	8b 38                	mov    (%eax),%edi
50a76d:	8b 41 2c             	mov    0x2c(%ecx),%eax
50a770:	89 bd 7c ff ff ff    	mov    %edi,-0x84(%ebp)
50a776:	8d 50 01             	lea    0x1(%eax),%edx
50a779:	40                   	inc    %eax
50a77a:	03 c7                	add    %edi,%eax
50a77c:	89 55 bc             	mov    %edx,-0x44(%ebp)
50a77f:	89 41 2c             	mov    %eax,0x2c(%ecx)