50b480:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
50b484:	74 11                	je     0x50b497
50b486:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
50b489:	51                   	push   %ecx
50b48a:	6a f7                	push   $0xfffffff7
50b48c:	50                   	push   %eax
50b48d:	e8 1e 88 ff ff       	call   0x503cb0
50b492:	83 c4 0c             	add    $0xc,%esp
50b495:	eb 35                	jmp    0x50b4cc
50b497:	85 d2                	test   %edx,%edx
50b499:	79 04                	jns    0x50b49f
50b49b:	8b 53 6c             	mov    0x6c(%ebx),%edx
50b49e:	4a                   	dec    %edx
50b49f:	8b 43 68             	mov    0x68(%ebx),%eax
50b4a2:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
50b4a5:	80 7c 88 01 00       	cmpb   $0x0,0x1(%eax,%ecx,4)
50b4aa:	8d 04 88             	lea    (%eax,%ecx,4),%eax
50b4ad:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
50b4b0:	74 0f                	je     0x50b4c1
50b4b2:	6a f7                	push   $0xfffffff7
50b4b4:	51                   	push   %ecx
50b4b5:	50                   	push   %eax
50b4b6:	53                   	push   %ebx
50b4b7:	e8 84 e7 04 00       	call   0x559c40
50b4bc:	83 c4 10             	add    $0x10,%esp
50b4bf:	eb 0b                	jmp    0x50b4cc
50b4c1:	85 c9                	test   %ecx,%ecx
50b4c3:	74 07                	je     0x50b4cc
50b4c5:	89 48 10             	mov    %ecx,0x10(%eax)
50b4c8:	c6 40 01 f7          	movb   $0xf7,0x1(%eax)
50b4cc:	8b 43 6c             	mov    0x6c(%ebx),%eax
50b4cf:	85 c0                	test   %eax,%eax
50b4d1:	7e 10                	jle    0x50b4e3
50b4d3:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
50b4d6:	ba 01 00 00 00       	mov    $0x1,%edx
50b4db:	8b 43 68             	mov    0x68(%ebx),%eax
50b4de:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
50b4e3:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
50b4e6:	39 4b 70             	cmp    %ecx,0x70(%ebx)
50b4e9:	7f 18                	jg     0x50b503
50b4eb:	8b 55 84             	mov    -0x7c(%ebp),%edx
50b4ee:	52                   	push   %edx
50b4ef:	8b 55 bc             	mov    -0x44(%ebp),%edx
50b4f2:	52                   	push   %edx
50b4f3:	ff 75 b4             	push   -0x4c(%ebp)
50b4f6:	6a 10                	push   $0x10
50b4f8:	53                   	push   %ebx
50b4f9:	e8 02 b0 ff ff       	call   0x506500
50b4fe:	83 c4 14             	add    $0x14,%esp
50b501:	eb 30                	jmp    0x50b533
50b503:	8b 55 b4             	mov    -0x4c(%ebp),%edx
50b506:	8d 41 01             	lea    0x1(%ecx),%eax
50b509:	89 43 6c             	mov    %eax,0x6c(%ebx)
50b50c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
50b50f:	8b 43 68             	mov    0x68(%ebx),%eax
50b512:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
50b516:	8b 55 bc             	mov    -0x44(%ebp),%edx
50b519:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
50b51d:	8b 55 84             	mov    -0x7c(%ebp),%edx
50b520:	c7 04 88 10 00 00 00 	movl   $0x10,(%eax,%ecx,4)
50b527:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
50b52b:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
50b532:	00
50b533:	8b 4b 0c             	mov    0xc(%ebx),%ecx
50b536:	8b 55 a4             	mov    -0x5c(%ebp),%edx
50b539:	f7 d2                	not    %edx
50b53b:	8b 41 3c             	mov    0x3c(%ecx),%eax
50b53e:	03 41 38             	add    0x38(%ecx),%eax
50b541:	79 0d                	jns    0x50b550
50b543:	52                   	push   %edx
50b544:	53                   	push   %ebx
50b545:	51                   	push   %ecx
50b546:	e8 55 82 00 00       	call   0x5137a0
50b54b:	83 c4 0c             	add    $0xc,%esp
50b54e:	eb 09                	jmp    0x50b559
50b550:	8b 49 40             	mov    0x40(%ecx),%ecx
50b553:	8b 43 6c             	mov    0x6c(%ebx),%eax
50b556:	89 04 91             	mov    %eax,(%ecx,%edx,4)
50b559:	8b 5d c8             	mov    -0x38(%ebp),%ebx
50b55c:	8b 43 34             	mov    0x34(%ebx),%eax
50b55f:	85 c0                	test   %eax,%eax
50b561:	74 0e                	je     0x50b571
50b563:	6a 01                	push   $0x1
50b565:	50                   	push   %eax
50b566:	ff 75 88             	push   -0x78(%ebp)
50b569:	e8 82 d8 fe ff       	call   0x4f8df0
50b56e:	83 c4 0c             	add    $0xc,%esp
50b571:	8b 45 9c             	mov    -0x64(%ebp),%eax
50b574:	89 43 34             	mov    %eax,0x34(%ebx)
50b577:	89 58 38             	mov    %ebx,0x38(%eax)
50b57a:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
50b57d:	8b 8b d4 00 00 00    	mov    0xd4(%ebx),%ecx
50b583:	85 c9                	test   %ecx,%ecx
50b585:	75 04                	jne    0x50b58b
50b587:	33 c0                	xor    %eax,%eax
50b589:	eb 26                	jmp    0x50b5b1
50b58b:	8b 53 08             	mov    0x8(%ebx),%edx
50b58e:	85 c9                	test   %ecx,%ecx
50b590:	79 04                	jns    0x50b596
50b592:	8b 4a 6c             	mov    0x6c(%edx),%ecx
50b595:	49                   	dec    %ecx
50b596:	8b 02                	mov    (%edx),%eax
50b598:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
50b59c:	74 07                	je     0x50b5a5
50b59e:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
50b5a3:	eb 09                	jmp    0x50b5ae
50b5a5:	8b 42 68             	mov    0x68(%edx),%eax
50b5a8:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
50b5ab:	8d 04 88             	lea    (%eax,%ecx,4),%eax
50b5ae:	8b 40 08             	mov    0x8(%eax),%eax
50b5b1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50b5b4:	89 83 d4 00 00 00    	mov    %eax,0xd4(%ebx)
50b5ba:	33 c0                	xor    %eax,%eax
50b5bc:	39 43 24             	cmp    %eax,0x24(%ebx)
50b5bf:	5f                   	pop    %edi
50b5c0:	0f 95 c0             	setne  %al
50b5c3:	33 cd                	xor    %ebp,%ecx
50b5c5:	5e                   	pop    %esi
50b5c6:	5b                   	pop    %ebx
50b5c7:	e8 0e 5f 0d 00       	call   0x5e14da
50b5cc:	8b e5                	mov    %ebp,%esp
50b5ce:	5d                   	pop    %ebp
50b5cf:	c3                   	ret
50b5d0:	55                   	push   %ebp
50b5d1:	8b ec                	mov    %esp,%ebp
50b5d3:	83 ec 1c             	sub    $0x1c,%esp
50b5d6:	8b 45 08             	mov    0x8(%ebp),%eax
50b5d9:	53                   	push   %ebx
50b5da:	56                   	push   %esi
50b5db:	8b 75 0c             	mov    0xc(%ebp),%esi
50b5de:	8b 08                	mov    (%eax),%ecx
50b5e0:	8b 45 10             	mov    0x10(%ebp),%eax
50b5e3:	6a 01                	push   $0x1
50b5e5:	8b 76 30             	mov    0x30(%esi),%esi
50b5e8:	89 4d f4             	mov    %ecx,-0xc(%ebp)
50b5eb:	8b 1e                	mov    (%esi),%ebx
50b5ed:	03 c3                	add    %ebx,%eax
50b5ef:	50                   	push   %eax
50b5f0:	51                   	push   %ecx
50b5f1:	89 5d ec             	mov    %ebx,-0x14(%ebp)
50b5f4:	e8 b7 45 02 00       	call   0x52fbb0
50b5f9:	83 c4 0c             	add    $0xc,%esp
50b5fc:	89 45 f0             	mov    %eax,-0x10(%ebp)
50b5ff:	85 c0                	test   %eax,%eax
50b601:	0f 84 06 01 00 00    	je     0x50b70d
50b607:	57                   	push   %edi
50b608:	33 ff                	xor    %edi,%edi
50b60a:	89 7d f8             	mov    %edi,-0x8(%ebp)
50b60d:	85 db                	test   %ebx,%ebx
50b60f:	0f 8e f7 00 00 00    	jle    0x50b70c
50b615:	83 c0 14             	add    $0x14,%eax
50b618:	8d 56 04             	lea    0x4(%esi),%edx
50b61b:	89 45 10             	mov    %eax,0x10(%ebp)
50b61e:	89 55 fc             	mov    %edx,-0x4(%ebp)
50b621:	8b 1a                	mov    (%edx),%ebx
50b623:	f7 43 04 00 01 00 00 	testl  $0x100,0x4(%ebx)
50b62a:	74 16                	je     0x50b642
50b62c:	53                   	push   %ebx
50b62d:	ff 75 08             	push   0x8(%ebp)
50b630:	e8 ab ac 01 00       	call   0x5262e0
50b635:	8b 55 fc             	mov    -0x4(%ebp),%edx
50b638:	83 c4 08             	add    $0x8,%esp
50b63b:	8b f0                	mov    %eax,%esi
50b63d:	e9 a0 00 00 00       	jmp    0x50b6e2
50b642:	8b 45 0c             	mov    0xc(%ebp),%eax
50b645:	0f b7 7a 10          	movzwl 0x10(%edx),%edi
50b649:	4f                   	dec    %edi
50b64a:	8b 40 34             	mov    0x34(%eax),%eax
50b64d:	85 c0                	test   %eax,%eax
50b64f:	74 2e                	je     0x50b67f
50b651:	57                   	push   %edi
50b652:	50                   	push   %eax
50b653:	ff 75 08             	push   0x8(%ebp)
50b656:	e8 d5 ee ff ff       	call   0x50a530
50b65b:	8b f0                	mov    %eax,%esi
50b65d:	83 c4 0c             	add    $0xc,%esp
50b660:	85 f6                	test   %esi,%esi
50b662:	74 1d                	je     0x50b681
50b664:	8b 7d 08             	mov    0x8(%ebp),%edi
50b667:	85 f6                	test   %esi,%esi
50b669:	75 06                	jne    0x50b671
50b66b:	8b 45 f4             	mov    -0xc(%ebp),%eax
50b66e:	8b 70 08             	mov    0x8(%eax),%esi
50b671:	8b 06                	mov    (%esi),%eax
50b673:	89 45 e4             	mov    %eax,-0x1c(%ebp)
50b676:	85 c0                	test   %eax,%eax
50b678:	75 28                	jne    0x50b6a2
50b67a:	89 45 e8             	mov    %eax,-0x18(%ebp)
50b67d:	eb 5b                	jmp    0x50b6da
50b67f:	33 f6                	xor    %esi,%esi
50b681:	8b 45 0c             	mov    0xc(%ebp),%eax
50b684:	8b 48 1c             	mov    0x1c(%eax),%ecx
50b687:	3b 39                	cmp    (%ecx),%edi
50b689:	7d d9                	jge    0x50b664
50b68b:	8d 04 bf             	lea    (%edi,%edi,4),%eax
50b68e:	8b 7d 08             	mov    0x8(%ebp),%edi
50b691:	ff 74 81 04          	push   0x4(%ecx,%eax,4)
50b695:	57                   	push   %edi
50b696:	e8 45 ac 01 00       	call   0x5262e0
50b69b:	83 c4 08             	add    $0x8,%esp
50b69e:	8b f0                	mov    %eax,%esi
50b6a0:	eb c5                	jmp    0x50b667
50b6a2:	8d 50 01             	lea    0x1(%eax),%edx
50b6a5:	8a 08                	mov    (%eax),%cl
50b6a7:	40                   	inc    %eax
50b6a8:	84 c9                	test   %cl,%cl
50b6aa:	75 f9                	jne    0x50b6a5
50b6ac:	2b c2                	sub    %edx,%eax
50b6ae:	25 ff ff ff 3f       	and    $0x3fffffff,%eax
50b6b3:	89 45 e8             	mov    %eax,-0x18(%ebp)
50b6b6:	76 22                	jbe    0x50b6da
50b6b8:	6a 00                	push   $0x0
50b6ba:	8d 45 e4             	lea    -0x1c(%ebp),%eax
50b6bd:	50                   	push   %eax
50b6be:	6a 6f                	push   $0x6f
50b6c0:	ff 37                	push   (%edi)
50b6c2:	e8 a9 7f 01 00       	call   0x523670
50b6c7:	83 c4 10             	add    $0x10,%esp
50b6ca:	85 c0                	test   %eax,%eax
50b6cc:	74 0c                	je     0x50b6da
50b6ce:	81 48 04 00 11 00 00 	orl    $0x1100,0x4(%eax)
50b6d5:	89 58 0c             	mov    %ebx,0xc(%eax)
50b6d8:	8b d8                	mov    %eax,%ebx
50b6da:	8b 55 fc             	mov    -0x4(%ebp),%edx
50b6dd:	8b 7d f8             	mov    -0x8(%ebp),%edi
50b6e0:	89 1a                	mov    %ebx,(%edx)
50b6e2:	8b 45 10             	mov    0x10(%ebp),%eax
50b6e5:	8b 5d f0             	mov    -0x10(%ebp),%ebx
50b6e8:	83 45 10 04          	addl   $0x4,0x10(%ebp)
50b6ec:	89 30                	mov    %esi,(%eax)
50b6ee:	8b 4b 10             	mov    0x10(%ebx),%ecx
50b6f1:	8a 42 08             	mov    0x8(%edx),%al
50b6f4:	83 c2 14             	add    $0x14,%edx
50b6f7:	89 55 fc             	mov    %edx,-0x4(%ebp)
50b6fa:	88 04 0f             	mov    %al,(%edi,%ecx,1)
50b6fd:	47                   	inc    %edi
50b6fe:	89 7d f8             	mov    %edi,-0x8(%ebp)
50b701:	3b 7d ec             	cmp    -0x14(%ebp),%edi
50b704:	0f 8c 17 ff ff ff    	jl     0x50b621
50b70a:	8b c3                	mov    %ebx,%eax
50b70c:	5f                   	pop    %edi
50b70d:	5e                   	pop    %esi
50b70e:	5b                   	pop    %ebx
50b70f:	8b e5                	mov    %ebp,%esp
50b711:	5d                   	pop    %ebp
50b712:	c3                   	ret
50b713:	cc                   	int3
50b714:	cc                   	int3
50b715:	cc                   	int3
50b716:	cc                   	int3
50b717:	cc                   	int3
50b718:	cc                   	int3
50b719:	cc                   	int3
50b71a:	cc                   	int3
50b71b:	cc                   	int3
50b71c:	cc                   	int3
50b71d:	cc                   	int3
50b71e:	cc                   	int3
50b71f:	cc                   	int3
50b720:	55                   	push   %ebp
50b721:	8b ec                	mov    %esp,%ebp
50b723:	56                   	push   %esi
50b724:	8b 75 0c             	mov    0xc(%ebp),%esi
50b727:	33 c9                	xor    %ecx,%ecx
50b729:	57                   	push   %edi
50b72a:	bf 01 00 00 00       	mov    $0x1,%edi
50b72f:	8b 46 3c             	mov    0x3c(%esi),%eax
50b732:	85 c0                	test   %eax,%eax
50b734:	89 45 0c             	mov    %eax,0xc(%ebp)
50b737:	0f 94 c1             	sete   %cl
50b73a:	83 7e 44 00          	cmpl   $0x0,0x44(%esi)
50b73e:	75 11                	jne    0x50b751
50b740:	8b 46 34             	mov    0x34(%esi),%eax
50b743:	85 c0                	test   %eax,%eax
50b745:	74 11                	je     0x50b758
50b747:	8b f0                	mov    %eax,%esi
50b749:	03 f9                	add    %ecx,%edi
50b74b:	83 7e 44 00          	cmpl   $0x0,0x44(%esi)
50b74f:	74 ef                	je     0x50b740
50b751:	5f                   	pop    %edi
50b752:	83 c8 ff             	or     $0xffffffff,%eax
50b755:	5e                   	pop    %esi
50b756:	5d                   	pop    %ebp
50b757:	c3                   	ret
50b758:	53                   	push   %ebx
50b759:	8b 5d 08             	mov    0x8(%ebp),%ebx
50b75c:	b9 b4 af 6b 00       	mov    $0x6bafb4,%ecx
50b761:	83 ff 01             	cmp    $0x1,%edi
50b764:	b8 ad 57 6e 00       	mov    $0x6e57ad,%eax
50b769:	0f 45 c1             	cmovne %ecx,%eax
50b76c:	50                   	push   %eax
50b76d:	57                   	push   %edi
50b76e:	68 b8 af 6b 00       	push   $0x6bafb8
50b773:	6a 00                	push   $0x0
50b775:	53                   	push   %ebx
50b776:	e8 65 e4 03 00       	call   0x549be0
50b77b:	83 c4 14             	add    $0x14,%esp
50b77e:	66 90                	xchg   %ax,%ax
50b780:	6a 01                	push   $0x1
50b782:	6a 01                	push   $0x1
50b784:	ff 75 10             	push   0x10(%ebp)
50b787:	6a 00                	push   $0x0
50b789:	6a 00                	push   $0x0
50b78b:	6a ff                	push   $0xffffffff
50b78d:	56                   	push   %esi
50b78e:	53                   	push   %ebx
50b78f:	e8 ac a7 00 00       	call   0x515f40
50b794:	83 c4 20             	add    $0x20,%esp
50b797:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
50b79b:	75 0b                	jne    0x50b7a8
50b79d:	66 89 7e 02          	mov    %di,0x2(%esi)
50b7a1:	8b 76 38             	mov    0x38(%esi),%esi
50b7a4:	85 f6                	test   %esi,%esi
50b7a6:	75 d8                	jne    0x50b780
50b7a8:	5b                   	pop    %ebx
50b7a9:	5f                   	pop    %edi
50b7aa:	33 c0                	xor    %eax,%eax
50b7ac:	5e                   	pop    %esi
50b7ad:	5d                   	pop    %ebp
50b7ae:	c3                   	ret
50b7af:	cc                   	int3
50b7b0:	55                   	push   %ebp
50b7b1:	8b ec                	mov    %esp,%ebp
50b7b3:	51                   	push   %ecx
50b7b4:	8b 45 08             	mov    0x8(%ebp),%eax
50b7b7:	53                   	push   %ebx
50b7b8:	56                   	push   %esi
50b7b9:	57                   	push   %edi
50b7ba:	85 c0                	test   %eax,%eax
50b7bc:	74 50                	je     0x50b80e
50b7be:	8b 48 04             	mov    0x4(%eax),%ecx
50b7c1:	33 ff                	xor    %edi,%edi
50b7c3:	89 4d 08             	mov    %ecx,0x8(%ebp)
50b7c6:	85 c9                	test   %ecx,%ecx
50b7c8:	7e 44                	jle    0x50b80e
50b7ca:	8b 18                	mov    (%eax),%ebx
50b7cc:	0f 1f 40 00          	nopl   0x0(%eax)
50b7d0:	8b 75 0c             	mov    0xc(%ebp),%esi
50b7d3:	8b 03                	mov    (%ebx),%eax
50b7d5:	2b f0                	sub    %eax,%esi
50b7d7:	0f b6 10             	movzbl (%eax),%edx
50b7da:	0f b6 0c 06          	movzbl (%esi,%eax,1),%ecx
50b7de:	3b d1                	cmp    %ecx,%edx
50b7e0:	75 0e                	jne    0x50b7f0
50b7e2:	85 d2                	test   %edx,%edx
50b7e4:	75 1c                	jne    0x50b802
50b7e6:	5f                   	pop    %edi
50b7e7:	5e                   	pop    %esi
50b7e8:	8d 42 01             	lea    0x1(%edx),%eax
50b7eb:	5b                   	pop    %ebx