519579:	b8 03 00 00 00       	mov    $0x3,%eax
51957e:	2b c6                	sub    %esi,%eax
519580:	3b c2                	cmp    %edx,%eax
519582:	7d 0d                	jge    0x519591
519584:	80 3c 08 00          	cmpb   $0x0,(%eax,%ecx,1)
519588:	75 07                	jne    0x519591
51958a:	83 c0 02             	add    $0x2,%eax
51958d:	3b c2                	cmp    %edx,%eax
51958f:	7c f3                	jl     0x519584
519591:	33 db                	xor    %ebx,%ebx
519593:	3b c2                	cmp    %edx,%eax
519595:	0f 9c c3             	setl   %bl
519598:	83 e6 01             	and    $0x1,%esi
51959b:	03 ce                	add    %esi,%ecx
51959d:	89 5d f4             	mov    %ebx,-0xc(%ebp)
5195a0:	83 f0 01             	xor    $0x1,%eax
5195a3:	89 4d 08             	mov    %ecx,0x8(%ebp)
5195a6:	33 d2                	xor    %edx,%edx
5195a8:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5195ab:	03 d8                	add    %eax,%ebx
5195ad:	3b cb                	cmp    %ebx,%ecx
5195af:	73 34                	jae    0x5195e5
5195b1:	0f b6 01             	movzbl (%ecx),%eax
5195b4:	f6 80 40 1b 6b 00 01 	testb  $0x1,0x6b1b40(%eax)
5195bb:	74 0b                	je     0x5195c8
5195bd:	03 cf                	add    %edi,%ecx
5195bf:	89 4d 08             	mov    %ecx,0x8(%ebp)
5195c2:	3b cb                	cmp    %ebx,%ecx
5195c4:	72 eb                	jb     0x5195b1
5195c6:	eb 1d                	jmp    0x5195e5
5195c8:	3b cb                	cmp    %ebx,%ecx
5195ca:	73 19                	jae    0x5195e5
5195cc:	8a 01                	mov    (%ecx),%al
5195ce:	3c 2d                	cmp    $0x2d,%al
5195d0:	75 0a                	jne    0x5195dc
5195d2:	ba 01 00 00 00       	mov    $0x1,%edx
5195d7:	89 55 fc             	mov    %edx,-0x4(%ebp)
5195da:	eb 04                	jmp    0x5195e0
5195dc:	3c 2b                	cmp    $0x2b,%al
5195de:	75 05                	jne    0x5195e5
5195e0:	03 cf                	add    %edi,%ecx
5195e2:	89 4d 08             	mov    %ecx,0x8(%ebp)
5195e5:	89 4d e8             	mov    %ecx,-0x18(%ebp)
5195e8:	3b cb                	cmp    %ebx,%ecx
5195ea:	73 12                	jae    0x5195fe
5195ec:	0f 1f 40 00          	nopl   0x0(%eax)
5195f0:	80 39 30             	cmpb   $0x30,(%ecx)
5195f3:	75 06                	jne    0x5195fb
5195f5:	03 cf                	add    %edi,%ecx
5195f7:	3b cb                	cmp    %ebx,%ecx
5195f9:	72 f5                	jb     0x5195f0
5195fb:	89 4d 08             	mov    %ecx,0x8(%ebp)
5195fe:	8b 75 ec             	mov    -0x14(%ebp),%esi
519601:	c7 45 10 00 00 00 00 	movl   $0x0,0x10(%ebp)
519608:	3b cb                	cmp    %ebx,%ecx
51960a:	0f 83 95 00 00 00    	jae    0x5196a5
519610:	8b c1                	mov    %ecx,%eax
519612:	8b 4d f0             	mov    -0x10(%ebp),%ecx
519615:	89 45 f8             	mov    %eax,-0x8(%ebp)
519618:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
51961f:	00
519620:	0f be 00             	movsbl (%eax),%eax
519623:	89 45 f0             	mov    %eax,-0x10(%ebp)
519626:	83 c0 d0             	add    $0xffffffd0,%eax
519629:	83 f8 09             	cmp    $0x9,%eax
51962c:	77 39                	ja     0x519667
51962e:	8b 45 f0             	mov    -0x10(%ebp),%eax
519631:	8b d6                	mov    %esi,%edx
519633:	89 75 14             	mov    %esi,0x14(%ebp)
519636:	8b f1                	mov    %ecx,%esi
519638:	0f a4 d6 02          	shld   $0x2,%edx,%esi
51963c:	c1 e2 02             	shl    $0x2,%edx
51963f:	01 55 14             	add    %edx,0x14(%ebp)
519642:	99                   	cltd
519643:	13 ce                	adc    %esi,%ecx
519645:	8b 75 14             	mov    0x14(%ebp),%esi
519648:	0f a4 f1 01          	shld   $0x1,%esi,%ecx
51964c:	03 f6                	add    %esi,%esi
51964e:	03 f0                	add    %eax,%esi
519650:	8b 45 f8             	mov    -0x8(%ebp),%eax
519653:	13 ca                	adc    %edx,%ecx
519655:	83 c6 d0             	add    $0xffffffd0,%esi
519658:	83 d1 ff             	adc    $0xffffffff,%ecx
51965b:	01 7d 10             	add    %edi,0x10(%ebp)
51965e:	03 c7                	add    %edi,%eax
519660:	89 45 f8             	mov    %eax,-0x8(%ebp)
519663:	3b c3                	cmp    %ebx,%eax
519665:	72 b9                	jb     0x519620
519667:	89 4d 14             	mov    %ecx,0x14(%ebp)
51966a:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
519670:	8b 4d 08             	mov    0x8(%ebp),%ecx
519673:	72 35                	jb     0x5196aa
519675:	77 05                	ja     0x51967c
519677:	83 fe ff             	cmp    $0xffffffff,%esi
51967a:	76 2e                	jbe    0x5196aa
51967c:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
519680:	74 11                	je     0x519693
519682:	8b 55 0c             	mov    0xc(%ebp),%edx
519685:	33 c0                	xor    %eax,%eax
519687:	be 00 00 00 80       	mov    $0x80000000,%esi
51968c:	89 02                	mov    %eax,(%edx)
51968e:	89 72 04             	mov    %esi,0x4(%edx)
519691:	eb 30                	jmp    0x5196c3
519693:	8b 55 0c             	mov    0xc(%ebp),%edx
519696:	83 c8 ff             	or     $0xffffffff,%eax
519699:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
51969e:	89 02                	mov    %eax,(%edx)
5196a0:	89 72 04             	mov    %esi,0x4(%edx)
5196a3:	eb 1e                	jmp    0x5196c3
5196a5:	8b 45 f0             	mov    -0x10(%ebp),%eax
5196a8:	eb 06                	jmp    0x5196b0
5196aa:	8b 55 fc             	mov    -0x4(%ebp),%edx
5196ad:	8b 45 14             	mov    0x14(%ebp),%eax
5196b0:	85 d2                	test   %edx,%edx
5196b2:	8b 55 0c             	mov    0xc(%ebp),%edx
5196b5:	74 07                	je     0x5196be
5196b7:	f7 de                	neg    %esi
5196b9:	83 d0 00             	adc    $0x0,%eax
5196bc:	f7 d8                	neg    %eax
5196be:	89 42 04             	mov    %eax,0x4(%edx)
5196c1:	89 32                	mov    %esi,(%edx)
5196c3:	8b 75 10             	mov    0x10(%ebp),%esi
5196c6:	33 c0                	xor    %eax,%eax
5196c8:	89 45 14             	mov    %eax,0x14(%ebp)
5196cb:	85 f6                	test   %esi,%esi
5196cd:	75 0d                	jne    0x5196dc
5196cf:	39 4d e8             	cmp    %ecx,-0x18(%ebp)
5196d2:	75 08                	jne    0x5196dc
5196d4:	83 c8 ff             	or     $0xffffffff,%eax
5196d7:	89 45 14             	mov    %eax,0x14(%ebp)
5196da:	eb 2a                	jmp    0x519706
5196dc:	39 45 f4             	cmp    %eax,-0xc(%ebp)
5196df:	74 0a                	je     0x5196eb
5196e1:	b8 01 00 00 00       	mov    $0x1,%eax
5196e6:	89 45 14             	mov    %eax,0x14(%ebp)
5196e9:	eb 1b                	jmp    0x519706
5196eb:	8d 14 0e             	lea    (%esi,%ecx,1),%edx
5196ee:	3b d3                	cmp    %ebx,%edx
5196f0:	73 14                	jae    0x519706
5196f2:	0f b6 02             	movzbl (%edx),%eax
5196f5:	f6 80 40 1b 6b 00 01 	testb  $0x1,0x6b1b40(%eax)
5196fc:	74 e3                	je     0x5196e1
5196fe:	03 d7                	add    %edi,%edx
519700:	3b d3                	cmp    %ebx,%edx
519702:	72 ee                	jb     0x5196f2
519704:	33 c0                	xor    %eax,%eax
519706:	6b d7 13             	imul   $0x13,%edi,%edx
519709:	3b f2                	cmp    %edx,%esi
51970b:	0f 8c 83 00 00 00    	jl     0x519794
519711:	7e 15                	jle    0x519728
519713:	b8 01 00 00 00       	mov    $0x1,%eax
519718:	8b 5d fc             	mov    -0x4(%ebp),%ebx
51971b:	85 db                	test   %ebx,%ebx
51971d:	74 4a                	je     0x519769
51971f:	33 d2                	xor    %edx,%edx
519721:	be 00 00 00 80       	mov    $0x80000000,%esi
519726:	eb 49                	jmp    0x519771
519728:	33 c0                	xor    %eax,%eax
51972a:	8b d9                	mov    %ecx,%ebx
51972c:	33 f6                	xor    %esi,%esi
51972e:	66 90                	xchg   %ax,%ax
519730:	83 fe 12             	cmp    $0x12,%esi
519733:	7d 18                	jge    0x51974d
519735:	0f be 86 f0 79 6b 00 	movsbl 0x6b79f0(%esi),%eax
51973c:	46                   	inc    %esi
51973d:	0f be 13             	movsbl (%ebx),%edx
519740:	03 df                	add    %edi,%ebx
519742:	2b d0                	sub    %eax,%edx
519744:	8d 04 92             	lea    (%edx,%edx,4),%eax
519747:	03 c0                	add    %eax,%eax
519749:	74 e5                	je     0x519730
51974b:	eb 0e                	jmp    0x51975b
51974d:	85 c0                	test   %eax,%eax
51974f:	75 0c                	jne    0x51975d
519751:	8d 04 ff             	lea    (%edi,%edi,8),%eax
519754:	0f be 04 41          	movsbl (%ecx,%eax,2),%eax
519758:	83 e8 38             	sub    $0x38,%eax
51975b:	85 c0                	test   %eax,%eax
51975d:	79 b9                	jns    0x519718
51975f:	8b 45 14             	mov    0x14(%ebp),%eax
519762:	5f                   	pop    %edi
519763:	5e                   	pop    %esi
519764:	5b                   	pop    %ebx
519765:	8b e5                	mov    %ebp,%esp
519767:	5d                   	pop    %ebp
519768:	c3                   	ret
519769:	83 ca ff             	or     $0xffffffff,%edx
51976c:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
519771:	8b 4d 0c             	mov    0xc(%ebp),%ecx
519774:	89 11                	mov    %edx,(%ecx)
519776:	89 71 04             	mov    %esi,0x4(%ecx)
519779:	85 c0                	test   %eax,%eax
51977b:	7e 0c                	jle    0x519789
51977d:	5f                   	pop    %edi
51977e:	5e                   	pop    %esi
51977f:	b8 02 00 00 00       	mov    $0x2,%eax
519784:	5b                   	pop    %ebx
519785:	8b e5                	mov    %ebp,%esp
519787:	5d                   	pop    %ebp
519788:	c3                   	ret
519789:	85 db                	test   %ebx,%ebx
51978b:	b8 03 00 00 00       	mov    $0x3,%eax
519790:	0f 45 45 14          	cmovne 0x14(%ebp),%eax
519794:	5f                   	pop    %edi
519795:	5e                   	pop    %esi
519796:	5b                   	pop    %ebx
519797:	8b e5                	mov    %ebp,%esp
519799:	5d                   	pop    %ebp
51979a:	c3                   	ret
51979b:	cc                   	int3
51979c:	cc                   	int3
51979d:	cc                   	int3
51979e:	cc                   	int3
51979f:	cc                   	int3
5197a0:	55                   	push   %ebp
5197a1:	8b ec                	mov    %esp,%ebp
5197a3:	56                   	push   %esi
5197a4:	8b 75 08             	mov    0x8(%ebp),%esi
5197a7:	8b 06                	mov    (%esi),%eax
5197a9:	80 b8 a5 00 00 00 00 	cmpb   $0x0,0xa5(%eax)
5197b0:	75 70                	jne    0x519822
5197b2:	80 be c8 00 00 00 00 	cmpb   $0x0,0xc8(%esi)
5197b9:	75 67                	jne    0x519822
5197bb:	8b 88 50 01 00 00    	mov    0x150(%eax),%ecx
5197c1:	85 c9                	test   %ecx,%ecx
5197c3:	74 5d                	je     0x519822
5197c5:	57                   	push   %edi
5197c6:	ff b6 f0 00 00 00    	push   0xf0(%esi)
5197cc:	ff 75 18             	push   0x18(%ebp)
5197cf:	ff 75 14             	push   0x14(%ebp)
5197d2:	ff 75 10             	push   0x10(%ebp)
5197d5:	ff 75 0c             	push   0xc(%ebp)
5197d8:	ff b0 54 01 00 00    	push   0x154(%eax)
5197de:	ff d1                	call   *%ecx
5197e0:	8b f8                	mov    %eax,%edi
5197e2:	83 c4 18             	add    $0x18,%esp
5197e5:	83 ff 01             	cmp    $0x1,%edi
5197e8:	75 1b                	jne    0x519805
5197ea:	68 50 9d 6b 00       	push   $0x6b9d50
5197ef:	56                   	push   %esi
5197f0:	e8 6b 9a 00 00       	call   0x523260
5197f5:	83 c4 08             	add    $0x8,%esp
5197f8:	c7 46 0c 17 00 00 00 	movl   $0x17,0xc(%esi)
5197ff:	8b c7                	mov    %edi,%eax
519801:	5f                   	pop    %edi
519802:	5e                   	pop    %esi
519803:	5d                   	pop    %ebp
519804:	c3                   	ret
519805:	85 ff                	test   %edi,%edi
519807:	74 13                	je     0x51981c
519809:	83 ff 02             	cmp    $0x2,%edi
51980c:	74 0e                	je     0x51981c
51980e:	56                   	push   %esi
51980f:	bf 01 00 00 00       	mov    $0x1,%edi
519814:	e8 47 dc 03 00       	call   0x557460
519819:	83 c4 04             	add    $0x4,%esp
51981c:	8b c7                	mov    %edi,%eax
51981e:	5f                   	pop    %edi
51981f:	5e                   	pop    %esi
519820:	5d                   	pop    %ebp
519821:	c3                   	ret
519822:	33 c0                	xor    %eax,%eax
519824:	5e                   	pop    %esi
519825:	5d                   	pop    %ebp
519826:	c3                   	ret
519827:	cc                   	int3
519828:	cc                   	int3
519829:	cc                   	int3
51982a:	cc                   	int3
51982b:	cc                   	int3
51982c:	cc                   	int3
51982d:	cc                   	int3
51982e:	cc                   	int3
51982f:	cc                   	int3
519830:	55                   	push   %ebp
519831:	8b ec                	mov    %esp,%ebp
519833:	51                   	push   %ecx
519834:	56                   	push   %esi
519835:	57                   	push   %edi
519836:	8b 7d 08             	mov    0x8(%ebp),%edi
519839:	33 f6                	xor    %esi,%esi
51983b:	8b 07                	mov    (%edi),%eax
51983d:	39 b0 50 01 00 00    	cmp    %esi,0x150(%eax)
519843:	0f 84 b4 00 00 00    	je     0x5198fd
519849:	8b 4d 10             	mov    0x10(%ebp),%ecx
51984c:	85 c9                	test   %ecx,%ecx
51984e:	0f 84 a9 00 00 00    	je     0x5198fd
519854:	8b 40 10             	mov    0x10(%eax),%eax
519857:	33 d2                	xor    %edx,%edx
519859:	83 c0 0c             	add    $0xc,%eax
51985c:	39 08                	cmp    %ecx,(%eax)
51985e:	74 10                	je     0x519870
519860:	8d 40 10             	lea    0x10(%eax),%eax
519863:	42                   	inc    %edx
519864:	39 08                	cmp    %ecx,(%eax)
519866:	75 f8                	jne    0x519860
519868:	85 d2                	test   %edx,%edx
51986a:	0f 88 8d 00 00 00    	js     0x5198fd
519870:	53                   	push   %ebx
519871:	8b 5d 0c             	mov    0xc(%ebp),%ebx
519874:	80 3b 4d             	cmpb   $0x4d,(%ebx)
519877:	75 05                	jne    0x51987e
519879:	8b 77 78             	mov    0x78(%edi),%esi
51987c:	eb 38                	jmp    0x5198b6
51987e:	8b 7d 14             	mov    0x14(%ebp),%edi
519881:	33 c0                	xor    %eax,%eax
519883:	8b 3f                	mov    (%edi),%edi
519885:	85 ff                	test   %edi,%edi
519887:	7e 2a                	jle    0x5198b3
519889:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
51988c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
51988f:	8b 4d 14             	mov    0x14(%ebp),%ecx
519892:	83 c1 34             	add    $0x34,%ecx
519895:	8b 5d fc             	mov    -0x4(%ebp),%ebx
519898:	3b 19                	cmp    (%ecx),%ebx
51989a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
51989d:	74 0a                	je     0x5198a9
51989f:	40                   	inc    %eax
5198a0:	83 c1 48             	add    $0x48,%ecx
5198a3:	3b c7                	cmp    %edi,%eax
5198a5:	7c ee                	jl     0x519895
5198a7:	eb 0a                	jmp    0x5198b3
5198a9:	8b 4d 14             	mov    0x14(%ebp),%ecx
5198ac:	8d 04 c0             	lea    (%eax,%eax,8),%eax
5198af:	8b 74 c1 18          	mov    0x18(%ecx,%eax,8),%esi
5198b3:	8b 7d 08             	mov    0x8(%ebp),%edi
5198b6:	0f bf 43 20          	movswl 0x20(%ebx),%eax
5198ba:	85 f6                	test   %esi,%esi
5198bc:	74 3e                	je     0x5198fc
5198be:	85 c0                	test   %eax,%eax
5198c0:	78 0b                	js     0x5198cd
5198c2:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5198c5:	8b 46 04             	mov    0x4(%esi),%eax
5198c8:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5198cb:	eb 1a                	jmp    0x5198e7
5198cd:	0f b7 46 28          	movzwl 0x28(%esi),%eax
5198d1:	66 85 c0             	test   %ax,%ax
5198d4:	78 0c                	js     0x5198e2
5198d6:	98                   	cwtl
5198d7:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5198da:	8b 46 04             	mov    0x4(%esi),%eax
5198dd:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5198e0:	eb 05                	jmp    0x5198e7
5198e2:	b8 1c 91 6b 00       	mov    $0x6b911c,%eax
5198e7:	52                   	push   %edx
5198e8:	50                   	push   %eax
5198e9:	ff 36                	push   (%esi)
5198eb:	57                   	push   %edi
5198ec:	e8 1f 00 00 00       	call   0x519910
5198f1:	83 c4 10             	add    $0x10,%esp