5084ed:	89 75 f0             	mov    %esi,-0x10(%ebp)
5084f0:	8b 47 04             	mov    0x4(%edi),%eax
5084f3:	8b 40 20             	mov    0x20(%eax),%eax
5084f6:	25 00 00 00 02       	and    $0x2000000,%eax
5084fb:	83 c8 00             	or     $0x0,%eax
5084fe:	74 63                	je     0x508563
508500:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
508507:	8b 77 24             	mov    0x24(%edi),%esi
50850a:	b8 81 80 80 80       	mov    $0x80808081,%eax
50850f:	8b ce                	mov    %esi,%ecx
508511:	c1 e6 05             	shl    $0x5,%esi
508514:	c1 e1 06             	shl    $0x6,%ecx
508517:	81 ee 80 01 00 00    	sub    $0x180,%esi
50851d:	81 e9 00 03 00 00    	sub    $0x300,%ecx
508523:	f7 e1                	mul    %ecx
508525:	b8 81 80 80 80       	mov    $0x80808081,%eax
50852a:	c1 ea 07             	shr    $0x7,%edx
50852d:	8d 4a e9             	lea    -0x17(%edx),%ecx
508530:	f7 e6                	mul    %esi
508532:	66 8b 47 24          	mov    0x24(%edi),%ax
508536:	c1 ea 07             	shr    $0x7,%edx
508539:	66 83 e8 23          	sub    $0x23,%ax
50853d:	83 c2 e9             	add    $0xffffffe9,%edx
508540:	66 89 4f 18          	mov    %cx,0x18(%edi)
508544:	66 89 57 1a          	mov    %dx,0x1a(%edi)
508548:	66 89 47 1c          	mov    %ax,0x1c(%edi)
50854c:	66 89 57 1e          	mov    %dx,0x1e(%edi)
508550:	66 83 f9 7f          	cmp    $0x7f,%cx
508554:	0f 86 d7 01 00 00    	jbe    0x508731
50855a:	c6 47 15 7f          	movb   $0x7f,0x15(%edi)
50855e:	e9 d3 01 00 00       	jmp    0x508736
508563:	85 c9                	test   %ecx,%ecx
508565:	74 a0                	je     0x508507
508567:	8b ca                	mov    %edx,%ecx
508569:	c7 45 f4 0c 00 00 00 	movl   $0xc,-0xc(%ebp)
508570:	be 64 1e 6b 00       	mov    $0x6b1e64,%esi
508575:	8b 01                	mov    (%ecx),%eax
508577:	3b 06                	cmp    (%esi),%eax
508579:	0f 85 6f 01 00 00    	jne    0x5086ee
50857f:	83 c1 04             	add    $0x4,%ecx
508582:	83 c6 04             	add    $0x4,%esi
508585:	83 6d f4 04          	subl   $0x4,-0xc(%ebp)
508589:	73 ea                	jae    0x508575
50858b:	80 7a 12 02          	cmpb   $0x2,0x12(%edx)
50858f:	76 05                	jbe    0x508596
508591:	66 83 4f 16 01       	orw    $0x1,0x16(%edi)
508596:	8a 42 13             	mov    0x13(%edx),%al
508599:	3c 02                	cmp    $0x2,%al
50859b:	0f 87 4d 01 00 00    	ja     0x5086ee
5085a1:	75 49                	jne    0x5085ec
5085a3:	f6 47 16 20          	testb  $0x20,0x16(%edi)
5085a7:	75 43                	jne    0x5085ec
5085a9:	8d 45 f4             	lea    -0xc(%ebp),%eax
5085ac:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
5085b3:	50                   	push   %eax
5085b4:	ff 37                	push   (%edi)
5085b6:	e8 c5 aa 02 00       	call   0x533080
5085bb:	8b f0                	mov    %eax,%esi
5085bd:	83 c4 08             	add    $0x8,%esp
5085c0:	85 f6                	test   %esi,%esi
5085c2:	0f 85 2b 01 00 00    	jne    0x5086f3
5085c8:	39 45 f4             	cmp    %eax,-0xc(%ebp)
5085cb:	75 1c                	jne    0x5085e9
5085cd:	53                   	push   %ebx
5085ce:	e8 4d 9b 00 00       	call   0x512120
5085d3:	83 c4 04             	add    $0x4,%esp
5085d6:	33 c0                	xor    %eax,%eax
5085d8:	5e                   	pop    %esi
5085d9:	5b                   	pop    %ebx
5085da:	5f                   	pop    %edi
5085db:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5085de:	33 cd                	xor    %ebp,%ecx
5085e0:	e8 f5 8e 0d 00       	call   0x5e14da
5085e5:	8b e5                	mov    %ebp,%esp
5085e7:	5d                   	pop    %ebp
5085e8:	c3                   	ret
5085e9:	8b 55 ec             	mov    -0x14(%ebp),%edx
5085ec:	0f b6 42 15          	movzbl 0x15(%edx),%eax
5085f0:	3c 40                	cmp    $0x40,%al
5085f2:	75 10                	jne    0x508604
5085f4:	80 7a 16 20          	cmpb   $0x20,0x16(%edx)
5085f8:	75 0a                	jne    0x508604
5085fa:	80 7a 17 20          	cmpb   $0x20,0x17(%edx)
5085fe:	75 04                	jne    0x508604
508600:	33 c0                	xor    %eax,%eax
508602:	eb 05                	jmp    0x508609
508604:	1b c0                	sbb    %eax,%eax
508606:	83 c8 01             	or     $0x1,%eax
508609:	be 1a 00 00 00       	mov    $0x1a,%esi
50860e:	85 c0                	test   %eax,%eax
508610:	0f 85 dd 00 00 00    	jne    0x5086f3
508616:	0f b6 72 11          	movzbl 0x11(%edx),%esi
50861a:	0f b6 42 10          	movzbl 0x10(%edx),%eax
50861e:	c1 e6 08             	shl    $0x8,%esi
508621:	0b f0                	or     %eax,%esi
508623:	c1 e6 08             	shl    $0x8,%esi
508626:	8d 46 ff             	lea    -0x1(%esi),%eax
508629:	85 c6                	test   %eax,%esi
50862b:	0f 85 bd 00 00 00    	jne    0x5086ee
508631:	81 fe 00 00 01 00    	cmp    $0x10000,%esi
508637:	0f 87 b1 00 00 00    	ja     0x5086ee
50863d:	81 fe 00 01 00 00    	cmp    $0x100,%esi
508643:	0f 86 a5 00 00 00    	jbe    0x5086ee
508649:	66 83 4f 16 02       	orw    $0x2,0x16(%edi)
50864e:	8b c6                	mov    %esi,%eax
508650:	0f b6 4a 14          	movzbl 0x14(%edx),%ecx
508654:	2b c1                	sub    %ecx,%eax
508656:	89 4d ec             	mov    %ecx,-0x14(%ebp)
508659:	89 45 f4             	mov    %eax,-0xc(%ebp)
50865c:	3b 77 20             	cmp    0x20(%edi),%esi
50865f:	74 36                	je     0x508697
508661:	53                   	push   %ebx
508662:	e8 b9 9a 00 00       	call   0x512120
508667:	8b 45 f4             	mov    -0xc(%ebp),%eax
50866a:	8d 5f 20             	lea    0x20(%edi),%ebx
50866d:	57                   	push   %edi
50866e:	89 47 24             	mov    %eax,0x24(%edi)
508671:	89 33                	mov    %esi,(%ebx)
508673:	e8 38 bd ff ff       	call   0x5043b0
508678:	ff 75 ec             	push   -0x14(%ebp)
50867b:	53                   	push   %ebx
50867c:	ff 37                	push   (%edi)
50867e:	e8 2d ae 02 00       	call   0x5334b0
508683:	83 c4 14             	add    $0x14,%esp
508686:	5e                   	pop    %esi
508687:	5b                   	pop    %ebx
508688:	5f                   	pop    %edi
508689:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50868c:	33 cd                	xor    %ebp,%ecx
50868e:	e8 47 8e 0d 00       	call   0x5e14da
508693:	8b e5                	mov    %ebp,%esp
508695:	5d                   	pop    %ebp
508696:	c3                   	ret
508697:	ff 77 04             	push   0x4(%edi)
50869a:	e8 b1 e4 04 00       	call   0x556b50
50869f:	83 c4 04             	add    $0x4,%esp
5086a2:	85 c0                	test   %eax,%eax
5086a4:	75 19                	jne    0x5086bf
5086a6:	8b 45 e8             	mov    -0x18(%ebp),%eax
5086a9:	39 45 f0             	cmp    %eax,-0x10(%ebp)
5086ac:	76 11                	jbe    0x5086bf
5086ae:	68 d6 06 01 00       	push   $0x106d6
5086b3:	e8 f8 76 01 00       	call   0x51fdb0
5086b8:	83 c4 04             	add    $0x4,%esp
5086bb:	8b f0                	mov    %eax,%esi
5086bd:	eb 34                	jmp    0x5086f3
5086bf:	8b 45 f4             	mov    -0xc(%ebp),%eax
5086c2:	3d e0 01 00 00       	cmp    $0x1e0,%eax
5086c7:	72 25                	jb     0x5086ee
5086c9:	89 47 24             	mov    %eax,0x24(%edi)
5086cc:	89 77 20             	mov    %esi,0x20(%edi)
5086cf:	8b 42 34             	mov    0x34(%edx),%eax
5086d2:	0f c8                	bswap  %eax
5086d4:	85 c0                	test   %eax,%eax
5086d6:	0f 95 c0             	setne  %al
5086d9:	88 47 11             	mov    %al,0x11(%edi)
5086dc:	8b 42 40             	mov    0x40(%edx),%eax
5086df:	0f c8                	bswap  %eax
5086e1:	85 c0                	test   %eax,%eax
5086e3:	0f 95 c0             	setne  %al
5086e6:	88 47 12             	mov    %al,0x12(%edi)
5086e9:	e9 19 fe ff ff       	jmp    0x508507
5086ee:	be 1a 00 00 00       	mov    $0x1a,%esi
5086f3:	8b 43 48             	mov    0x48(%ebx),%eax
5086f6:	50                   	push   %eax
5086f7:	8b 58 14             	mov    0x14(%eax),%ebx
5086fa:	e8 f1 be 02 00       	call   0x5345f0
5086ff:	8b 83 d4 00 00 00    	mov    0xd4(%ebx),%eax
508705:	83 c4 04             	add    $0x4,%esp
508708:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
50870c:	75 09                	jne    0x508717
50870e:	53                   	push   %ebx
50870f:	e8 dc 4c 00 00       	call   0x50d3f0
508714:	83 c4 04             	add    $0x4,%esp
508717:	8b c6                	mov    %esi,%eax
508719:	c7 47 0c 00 00 00 00 	movl   $0x0,0xc(%edi)
508720:	5e                   	pop    %esi
508721:	5b                   	pop    %ebx
508722:	5f                   	pop    %edi
508723:	8b 4d fc             	mov    -0x4(%ebp),%ecx
508726:	33 cd                	xor    %ebp,%ecx
508728:	e8 ad 8d 0d 00       	call   0x5e14da
50872d:	8b e5                	mov    %ebp,%esp
50872f:	5d                   	pop    %ebp
508730:	c3                   	ret
508731:	8a c1                	mov    %cl,%al
508733:	88 47 15             	mov    %al,0x15(%edi)
508736:	8b 45 f0             	mov    -0x10(%ebp),%eax
508739:	5e                   	pop    %esi
50873a:	89 5f 0c             	mov    %ebx,0xc(%edi)
50873d:	89 47 2c             	mov    %eax,0x2c(%edi)
508740:	33 c0                	xor    %eax,%eax
508742:	5b                   	pop    %ebx
508743:	8b 4d fc             	mov    -0x4(%ebp),%ecx
508746:	33 cd                	xor    %ebp,%ecx
508748:	5f                   	pop    %edi
508749:	e8 8c 8d 0d 00       	call   0x5e14da
50874e:	8b e5                	mov    %ebp,%esp
508750:	5d                   	pop    %ebp
508751:	c3                   	ret
508752:	cc                   	int3
508753:	cc                   	int3
508754:	cc                   	int3
508755:	cc                   	int3
508756:	cc                   	int3
508757:	cc                   	int3
508758:	cc                   	int3
508759:	cc                   	int3
50875a:	cc                   	int3
50875b:	cc                   	int3
50875c:	cc                   	int3
50875d:	cc                   	int3
50875e:	cc                   	int3
50875f:	cc                   	int3
508760:	55                   	push   %ebp
508761:	8b ec                	mov    %esp,%ebp
508763:	83 ec 38             	sub    $0x38,%esp
508766:	8b 55 1c             	mov    0x1c(%ebp),%edx
508769:	33 c0                	xor    %eax,%eax
50876b:	53                   	push   %ebx
50876c:	8b 5d 08             	mov    0x8(%ebp),%ebx
50876f:	b9 a4 00 00 00       	mov    $0xa4,%ecx
508774:	56                   	push   %esi
508775:	8b 75 0c             	mov    0xc(%ebp),%esi
508778:	89 45 d4             	mov    %eax,-0x2c(%ebp)
50877b:	8b 03                	mov    (%ebx),%eax
50877d:	57                   	push   %edi
50877e:	33 ff                	xor    %edi,%edi
508780:	89 45 e8             	mov    %eax,-0x18(%ebp)
508783:	8b 45 18             	mov    0x18(%ebp),%eax
508786:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
50878d:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
508794:	89 7d fc             	mov    %edi,-0x4(%ebp)
508797:	89 45 d8             	mov    %eax,-0x28(%ebp)
50879a:	89 7d e4             	mov    %edi,-0x1c(%ebp)
50879d:	89 4d dc             	mov    %ecx,-0x24(%ebp)
5087a0:	c7 42 1c ff ff ff ff 	movl   $0xffffffff,0x1c(%edx)
5087a7:	85 f6                	test   %esi,%esi
5087a9:	74 53                	je     0x5087fe
5087ab:	f6 40 18 06          	testb  $0x6,0x18(%eax)
5087af:	74 05                	je     0x5087b6
5087b1:	89 7d 0c             	mov    %edi,0xc(%ebp)
5087b4:	eb 48                	jmp    0x5087fe
5087b6:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5087b9:	33 db                	xor    %ebx,%ebx
5087bb:	39 59 14             	cmp    %ebx,0x14(%ecx)
5087be:	7e 3e                	jle    0x5087fe
5087c0:	8b 49 10             	mov    0x10(%ecx),%ecx
5087c3:	8b c1                	mov    %ecx,%eax
5087c5:	89 4d e0             	mov    %ecx,-0x20(%ebp)
5087c8:	8b 10                	mov    (%eax),%edx
5087ca:	8b fe                	mov    %esi,%edi
5087cc:	2b fa                	sub    %edx,%edi
5087ce:	66 90                	xchg   %ax,%ax
5087d0:	0f b6 02             	movzbl (%edx),%eax
5087d3:	0f b6 34 17          	movzbl (%edi,%edx,1),%esi
5087d7:	3b c6                	cmp    %esi,%eax
5087d9:	0f 85 af 00 00 00    	jne    0x50888e
5087df:	85 c0                	test   %eax,%eax
5087e1:	0f 85 b9 00 00 00    	jne    0x5088a0
5087e7:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5087ea:	03 db                	add    %ebx,%ebx
5087ec:	8b 41 10             	mov    0x10(%ecx),%eax
5087ef:	8b 44 d8 0c          	mov    0xc(%eax,%ebx,8),%eax
5087f3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5087f6:	8b 45 18             	mov    0x18(%ebp),%eax
5087f9:	33 ff                	xor    %edi,%edi
5087fb:	8b 55 1c             	mov    0x1c(%ebp),%edx
5087fe:	8b 4d 10             	mov    0x10(%ebp),%ecx
508801:	8b 40 04             	mov    0x4(%eax),%eax
508804:	89 45 cc             	mov    %eax,-0x34(%ebp)
508807:	85 c0                	test   %eax,%eax
508809:	0f 84 31 02 00 00    	je     0x508a40
50880f:	33 c9                	xor    %ecx,%ecx
508811:	8d 70 08             	lea    0x8(%eax),%esi
508814:	89 4d ec             	mov    %ecx,-0x14(%ebp)
508817:	89 75 f8             	mov    %esi,-0x8(%ebp)
50881a:	39 08                	cmp    %ecx,(%eax)
50881c:	0f 8e f8 01 00 00    	jle    0x508a1a
508822:	8b 46 14             	mov    0x14(%esi),%eax
508825:	8b 5e 10             	mov    0x10(%esi),%ebx
508828:	89 5d e0             	mov    %ebx,-0x20(%ebp)
50882b:	85 c0                	test   %eax,%eax
50882d:	0f 84 ba 00 00 00    	je     0x5088ed
508833:	f7 40 04 00 08 00 00 	testl  $0x800,0x4(%eax)
50883a:	0f 84 ad 00 00 00    	je     0x5088ed
508840:	8b 58 1c             	mov    0x1c(%eax),%ebx
508843:	33 f6                	xor    %esi,%esi
508845:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
50884c:	39 33                	cmp    %esi,(%ebx)
50884e:	0f 8e 86 00 00 00    	jle    0x5088da
508854:	8d 7b 04             	lea    0x4(%ebx),%edi
508857:	ff 75 0c             	push   0xc(%ebp)
50885a:	ff 75 10             	push   0x10(%ebp)
50885d:	ff 75 14             	push   0x14(%ebp)
508860:	57                   	push   %edi
508861:	e8 6a 88 02 00       	call   0x5310d0
508866:	83 c4 10             	add    $0x10,%esp
508869:	85 c0                	test   %eax,%eax
50886b:	74 57                	je     0x5088c4
50886d:	8b 45 f8             	mov    -0x8(%ebp),%eax
508870:	ff 45 f4             	incl   -0xc(%ebp)
508873:	89 45 fc             	mov    %eax,-0x4(%ebp)
508876:	8b 45 1c             	mov    0x1c(%ebp),%eax
508879:	c7 45 f0 02 00 00 00 	movl   $0x2,-0x10(%ebp)
508880:	66 89 70 20          	mov    %si,0x20(%eax)
508884:	b8 01 00 00 00       	mov    $0x1,%eax
508889:	89 45 d0             	mov    %eax,-0x30(%ebp)
50888c:	eb 39                	jmp    0x5088c7
50888e:	0f b6 88 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%ecx
508895:	0f b6 86 20 2a 6b 00 	movzbl 0x6b2a20(%esi),%eax
50889c:	2b c8                	sub    %eax,%ecx
50889e:	75 06                	jne    0x5088a6
5088a0:	42                   	inc    %edx
5088a1:	e9 2a ff ff ff       	jmp    0x5087d0
5088a6:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5088a9:	43                   	inc    %ebx
5088aa:	8b 45 e0             	mov    -0x20(%ebp),%eax
5088ad:	83 c0 10             	add    $0x10,%eax
5088b0:	89 45 e0             	mov    %eax,-0x20(%ebp)
5088b3:	3b 59 14             	cmp    0x14(%ecx),%ebx
5088b6:	0f 8d 3a ff ff ff    	jge    0x5087f6
5088bc:	8b 75 0c             	mov    0xc(%ebp),%esi
5088bf:	e9 04 ff ff ff       	jmp    0x5087c8
5088c4:	8b 45 d0             	mov    -0x30(%ebp),%eax
5088c7:	46                   	inc    %esi
5088c8:	83 c7 14             	add    $0x14,%edi
5088cb:	3b 33                	cmp    (%ebx),%esi
5088cd:	7c 88                	jl     0x508857
5088cf:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5088d2:	85 c0                	test   %eax,%eax
5088d4:	0f 85 22 01 00 00    	jne    0x5089fc
5088da:	8b 45 10             	mov    0x10(%ebp),%eax
5088dd:	8b 75 f8             	mov    -0x8(%ebp),%esi
5088e0:	85 c0                	test   %eax,%eax
5088e2:	0f 84 17 01 00 00    	je     0x5089ff
5088e8:	8b 5d e0             	mov    -0x20(%ebp),%ebx
5088eb:	eb 03                	jmp    0x5088f0
5088ed:	8b 45 10             	mov    0x10(%ebp),%eax
5088f0:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
5088f4:	74 0c                	je     0x508902
5088f6:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5088f9:	39 53 48             	cmp    %edx,0x48(%ebx)
5088fc:	0f 85 fd 00 00 00    	jne    0x5089ff
508902:	85 c0                	test   %eax,%eax
508904:	0f 84 72 00 00 00    	je     0x50897c
50890a:	8b 7e 0c             	mov    0xc(%esi),%edi
50890d:	8b d7                	mov    %edi,%edx
50890f:	85 ff                	test   %edi,%edi
508911:	75 02                	jne    0x508915