5015f9:	0b fa                	or     %edx,%edi
5015fb:	85 c0                	test   %eax,%eax
5015fd:	74 0c                	je     0x50160b
5015ff:	50                   	push   %eax
501600:	53                   	push   %ebx
501601:	e8 9a 25 05 00       	call   0x553ba0
501606:	83 c4 08             	add    $0x8,%esp
501609:	eb 0e                	jmp    0x501619
50160b:	0f 57 c0             	xorps  %xmm0,%xmm0
50160e:	66 0f 13 45 f8       	movlpd %xmm0,-0x8(%ebp)
501613:	8b 55 fc             	mov    -0x4(%ebp),%edx
501616:	8b 45 f8             	mov    -0x8(%ebp),%eax
501619:	0b f0                	or     %eax,%esi
50161b:	0b fa                	or     %edx,%edi
50161d:	8b 45 f4             	mov    -0xc(%ebp),%eax
501620:	85 c0                	test   %eax,%eax
501622:	74 73                	je     0x501697
501624:	83 38 00             	cmpl   $0x0,(%eax)
501627:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
50162e:	7e 67                	jle    0x501697
501630:	8d 58 38             	lea    0x38(%eax),%ebx
501633:	ff 73 e4             	push   -0x1c(%ebx)
501636:	ff 75 08             	push   0x8(%ebp)
501639:	e8 32 ff ff ff       	call   0x501570
50163e:	0b f0                	or     %eax,%esi
501640:	83 c4 08             	add    $0x8,%esp
501643:	8b 03                	mov    (%ebx),%eax
501645:	0b fa                	or     %edx,%edi
501647:	85 c0                	test   %eax,%eax
501649:	74 0e                	je     0x501659
50164b:	50                   	push   %eax
50164c:	ff 75 08             	push   0x8(%ebp)
50164f:	e8 4c 25 05 00       	call   0x553ba0
501654:	83 c4 08             	add    $0x8,%esp
501657:	eb 0e                	jmp    0x501667
501659:	0f 57 c0             	xorps  %xmm0,%xmm0
50165c:	66 0f 13 45 e8       	movlpd %xmm0,-0x18(%ebp)
501661:	8b 55 ec             	mov    -0x14(%ebp),%edx
501664:	8b 45 e8             	mov    -0x18(%ebp),%eax
501667:	0b f0                	or     %eax,%esi
501669:	0b fa                	or     %edx,%edi
50166b:	f6 43 f8 04          	testb  $0x4,-0x8(%ebx)
50166f:	74 12                	je     0x501683
501671:	ff 73 10             	push   0x10(%ebx)
501674:	ff 75 08             	push   0x8(%ebp)
501677:	e8 94 24 05 00       	call   0x553b10
50167c:	83 c4 08             	add    $0x8,%esp
50167f:	0b f0                	or     %eax,%esi
501681:	0b fa                	or     %edx,%edi
501683:	8b 45 fc             	mov    -0x4(%ebp),%eax
501686:	83 c3 48             	add    $0x48,%ebx
501689:	8b 4d f4             	mov    -0xc(%ebp),%ecx
50168c:	40                   	inc    %eax
50168d:	89 45 fc             	mov    %eax,-0x4(%ebp)
501690:	3b 01                	cmp    (%ecx),%eax
501692:	7c 9f                	jl     0x501633
501694:	8b 5d 08             	mov    0x8(%ebp),%ebx
501697:	8b 4d 0c             	mov    0xc(%ebp),%ecx
50169a:	8b 49 34             	mov    0x34(%ecx),%ecx
50169d:	89 4d 0c             	mov    %ecx,0xc(%ebp)
5016a0:	85 c9                	test   %ecx,%ecx
5016a2:	0f 85 ed fe ff ff    	jne    0x501595
5016a8:	8b d7                	mov    %edi,%edx
5016aa:	8b c6                	mov    %esi,%eax
5016ac:	5f                   	pop    %edi
5016ad:	5e                   	pop    %esi
5016ae:	5b                   	pop    %ebx
5016af:	8b e5                	mov    %ebp,%esp
5016b1:	5d                   	pop    %ebp
5016b2:	c3                   	ret
5016b3:	8b 45 f0             	mov    -0x10(%ebp),%eax
5016b6:	8b 55 f4             	mov    -0xc(%ebp),%edx
5016b9:	8b e5                	mov    %ebp,%esp
5016bb:	5d                   	pop    %ebp
5016bc:	c3                   	ret
5016bd:	cc                   	int3
5016be:	cc                   	int3
5016bf:	cc                   	int3
5016c0:	55                   	push   %ebp
5016c1:	8b ec                	mov    %esp,%ebp
5016c3:	51                   	push   %ecx
5016c4:	56                   	push   %esi
5016c5:	8b 75 08             	mov    0x8(%ebp),%esi
5016c8:	33 c9                	xor    %ecx,%ecx
5016ca:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5016cd:	8b 46 0c             	mov    0xc(%esi),%eax
5016d0:	85 c0                	test   %eax,%eax
5016d2:	74 0b                	je     0x5016df
5016d4:	8b 40 18             	mov    0x18(%eax),%eax
5016d7:	85 c0                	test   %eax,%eax
5016d9:	0f 4f c8             	cmovg  %eax,%ecx
5016dc:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5016df:	8b 46 10             	mov    0x10(%esi),%eax
5016e2:	85 c0                	test   %eax,%eax
5016e4:	74 0b                	je     0x5016f1
5016e6:	8b 40 18             	mov    0x18(%eax),%eax
5016e9:	3b c1                	cmp    %ecx,%eax
5016eb:	0f 4f c8             	cmovg  %eax,%ecx
5016ee:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5016f1:	f7 46 04 00 08 00 00 	testl  $0x800,0x4(%esi)
5016f8:	74 1b                	je     0x501715
5016fa:	8d 45 fc             	lea    -0x4(%ebp),%eax
5016fd:	50                   	push   %eax
5016fe:	ff 76 14             	push   0x14(%esi)
501701:	e8 5a 53 00 00       	call   0x506a60
501706:	8b 45 fc             	mov    -0x4(%ebp),%eax
501709:	83 c4 08             	add    $0x8,%esp
50170c:	40                   	inc    %eax
50170d:	89 46 18             	mov    %eax,0x18(%esi)
501710:	5e                   	pop    %esi
501711:	8b e5                	mov    %ebp,%esp
501713:	5d                   	pop    %ebp
501714:	c3                   	ret
501715:	53                   	push   %ebx
501716:	8b 5e 14             	mov    0x14(%esi),%ebx
501719:	85 db                	test   %ebx,%ebx
50171b:	74 3d                	je     0x50175a
50171d:	57                   	push   %edi
50171e:	8d 45 fc             	lea    -0x4(%ebp),%eax
501721:	50                   	push   %eax
501722:	53                   	push   %ebx
501723:	e8 f8 52 00 00       	call   0x506a20
501728:	8b 3b                	mov    (%ebx),%edi
50172a:	83 c4 08             	add    $0x8,%esp
50172d:	33 c9                	xor    %ecx,%ecx
50172f:	85 ff                	test   %edi,%edi
501731:	7e 10                	jle    0x501743
501733:	8d 53 04             	lea    0x4(%ebx),%edx
501736:	8b 02                	mov    (%edx),%eax
501738:	8d 52 14             	lea    0x14(%edx),%edx
50173b:	0b 48 04             	or     0x4(%eax),%ecx
50173e:	83 ef 01             	sub    $0x1,%edi
501741:	75 f3                	jne    0x501736
501743:	8b 45 fc             	mov    -0x4(%ebp),%eax
501746:	81 e1 04 01 20 00    	and    $0x200104,%ecx
50174c:	09 4e 04             	or     %ecx,0x4(%esi)
50174f:	40                   	inc    %eax
501750:	5f                   	pop    %edi
501751:	5b                   	pop    %ebx
501752:	89 46 18             	mov    %eax,0x18(%esi)
501755:	5e                   	pop    %esi
501756:	8b e5                	mov    %ebp,%esp
501758:	5d                   	pop    %ebp
501759:	c3                   	ret
50175a:	8d 41 01             	lea    0x1(%ecx),%eax
50175d:	5b                   	pop    %ebx
50175e:	89 46 18             	mov    %eax,0x18(%esi)
501761:	5e                   	pop    %esi
501762:	8b e5                	mov    %ebp,%esp
501764:	5d                   	pop    %ebp
501765:	c3                   	ret
501766:	cc                   	int3
501767:	cc                   	int3
501768:	cc                   	int3
501769:	cc                   	int3
50176a:	cc                   	int3
50176b:	cc                   	int3
50176c:	cc                   	int3
50176d:	cc                   	int3
50176e:	cc                   	int3
50176f:	cc                   	int3
501770:	55                   	push   %ebp
501771:	8b ec                	mov    %esp,%ebp
501773:	51                   	push   %ecx
501774:	53                   	push   %ebx
501775:	8b 5d 0c             	mov    0xc(%ebp),%ebx
501778:	8a 03                	mov    (%ebx),%al
50177a:	3c a4                	cmp    $0xa4,%al
50177c:	74 04                	je     0x501782
50177e:	3c a6                	cmp    $0xa6,%al
501780:	75 46                	jne    0x5017c8
501782:	8b 45 08             	mov    0x8(%ebp),%eax
501785:	56                   	push   %esi
501786:	57                   	push   %edi
501787:	8b 70 18             	mov    0x18(%eax),%esi
50178a:	8b 3e                	mov    (%esi),%edi
50178c:	85 ff                	test   %edi,%edi
50178e:	74 04                	je     0x501794
501790:	8b 17                	mov    (%edi),%edx
501792:	eb 02                	jmp    0x501796
501794:	33 d2                	xor    %edx,%edx
501796:	33 c0                	xor    %eax,%eax
501798:	85 d2                	test   %edx,%edx
50179a:	7e 1d                	jle    0x5017b9
50179c:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
50179f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5017a2:	8d 4f 34             	lea    0x34(%edi),%ecx
5017a5:	8b 5d fc             	mov    -0x4(%ebp),%ebx
5017a8:	3b 19                	cmp    (%ecx),%ebx
5017aa:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5017ad:	74 20                	je     0x5017cf
5017af:	40                   	inc    %eax
5017b0:	83 c1 48             	add    $0x48,%ecx
5017b3:	3b c2                	cmp    %edx,%eax
5017b5:	7c ee                	jl     0x5017a5
5017b7:	85 d2                	test   %edx,%edx
5017b9:	74 08                	je     0x5017c3
5017bb:	8b 43 1c             	mov    0x1c(%ebx),%eax
5017be:	3b 47 34             	cmp    0x34(%edi),%eax
5017c1:	7d 03                	jge    0x5017c6
5017c3:	ff 46 08             	incl   0x8(%esi)
5017c6:	5f                   	pop    %edi
5017c7:	5e                   	pop    %esi
5017c8:	33 c0                	xor    %eax,%eax
5017ca:	5b                   	pop    %ebx
5017cb:	8b e5                	mov    %ebp,%esp
5017cd:	5d                   	pop    %ebp
5017ce:	c3                   	ret
5017cf:	3b c2                	cmp    %edx,%eax
5017d1:	7d e4                	jge    0x5017b7
5017d3:	ff 46 04             	incl   0x4(%esi)
5017d6:	33 c0                	xor    %eax,%eax
5017d8:	5f                   	pop    %edi
5017d9:	5e                   	pop    %esi
5017da:	5b                   	pop    %ebx
5017db:	8b e5                	mov    %ebp,%esp
5017dd:	5d                   	pop    %ebp
5017de:	c3                   	ret
5017df:	cc                   	int3
5017e0:	55                   	push   %ebp
5017e1:	8b ec                	mov    %esp,%ebp
5017e3:	83 ec 08             	sub    $0x8,%esp
5017e6:	53                   	push   %ebx
5017e7:	8b 5d 08             	mov    0x8(%ebp),%ebx
5017ea:	8d 45 f8             	lea    -0x8(%ebp),%eax
5017ed:	57                   	push   %edi
5017ee:	6a 00                	push   $0x0
5017f0:	50                   	push   %eax
5017f1:	8b 1b                	mov    (%ebx),%ebx
5017f3:	68 ad 00 00 00       	push   $0xad
5017f8:	53                   	push   %ebx
5017f9:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
501800:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
501807:	e8 64 1e 02 00       	call   0x523670
50180c:	8b f8                	mov    %eax,%edi
50180e:	83 c4 10             	add    $0x10,%esp
501811:	85 ff                	test   %edi,%edi
501813:	74 69                	je     0x50187e
501815:	8b 55 14             	mov    0x14(%ebp),%edx
501818:	56                   	push   %esi
501819:	66 85 d2             	test   %dx,%dx
50181c:	78 53                	js     0x501871
50181e:	8b 75 0c             	mov    0xc(%ebp),%esi
501821:	66 3b 56 28          	cmp    0x28(%esi),%dx
501825:	74 4a                	je     0x501871
501827:	0f bf c2             	movswl %dx,%eax
50182a:	52                   	push   %edx
50182b:	ff 75 0c             	push   0xc(%ebp)
50182e:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
501831:	8b 46 04             	mov    0x4(%esi),%eax
501834:	8d 34 88             	lea    (%eax,%ecx,4),%esi
501837:	e8 14 c6 03 00       	call   0x53de50
50183c:	0f bf c8             	movswl %ax,%ecx
50183f:	83 c4 08             	add    $0x8,%esp
501842:	8b 45 10             	mov    0x10(%ebp),%eax
501845:	40                   	inc    %eax
501846:	03 c1                	add    %ecx,%eax
501848:	89 47 1c             	mov    %eax,0x1c(%edi)
50184b:	8a 46 0d             	mov    0xd(%esi),%al
50184e:	88 47 01             	mov    %al,0x1(%edi)
501851:	8b 46 08             	mov    0x8(%esi),%eax
501854:	85 c0                	test   %eax,%eax
501856:	75 05                	jne    0x50185d
501858:	8b 43 08             	mov    0x8(%ebx),%eax
50185b:	8b 00                	mov    (%eax),%eax
50185d:	50                   	push   %eax
50185e:	57                   	push   %edi
50185f:	ff 75 08             	push   0x8(%ebp)
501862:	e8 99 1c 02 00       	call   0x523500
501867:	83 c4 0c             	add    $0xc,%esp
50186a:	5e                   	pop    %esi
50186b:	5f                   	pop    %edi
50186c:	5b                   	pop    %ebx
50186d:	8b e5                	mov    %ebp,%esp
50186f:	5d                   	pop    %ebp
501870:	c3                   	ret
501871:	8b 45 10             	mov    0x10(%ebp),%eax
501874:	89 47 1c             	mov    %eax,0x1c(%edi)
501877:	8b c7                	mov    %edi,%eax
501879:	c6 47 01 44          	movb   $0x44,0x1(%edi)
50187d:	5e                   	pop    %esi
50187e:	5f                   	pop    %edi
50187f:	5b                   	pop    %ebx
501880:	8b e5                	mov    %ebp,%esp
501882:	5d                   	pop    %ebp
501883:	c3                   	ret
501884:	cc                   	int3
501885:	cc                   	int3
501886:	cc                   	int3
501887:	cc                   	int3
501888:	cc                   	int3
501889:	cc                   	int3
50188a:	cc                   	int3
50188b:	cc                   	int3
50188c:	cc                   	int3
50188d:	cc                   	int3
50188e:	cc                   	int3
50188f:	cc                   	int3
501890:	55                   	push   %ebp
501891:	8b ec                	mov    %esp,%ebp
501893:	8b 45 08             	mov    0x8(%ebp),%eax
501896:	83 ec 1c             	sub    $0x1c,%esp
501899:	80 78 02 00          	cmpb   $0x0,0x2(%eax)
50189d:	53                   	push   %ebx
50189e:	56                   	push   %esi
50189f:	57                   	push   %edi
5018a0:	0f b6 78 0a          	movzbl 0xa(%eax),%edi
5018a4:	74 5d                	je     0x501903
5018a6:	8b 4d 10             	mov    0x10(%ebp),%ecx
5018a9:	8b 71 1c             	mov    0x1c(%ecx),%esi
5018ac:	8b 59 20             	mov    0x20(%ecx),%ebx
5018af:	8b 41 10             	mov    0x10(%ecx),%eax
5018b2:	03 de                	add    %esi,%ebx
5018b4:	89 75 f4             	mov    %esi,-0xc(%ebp)
5018b7:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5018ba:	89 45 fc             	mov    %eax,-0x4(%ebp)
5018bd:	81 fb 80 00 00 00    	cmp    $0x80,%ebx
5018c3:	73 0d                	jae    0x5018d2
5018c5:	8b 45 0c             	mov    0xc(%ebp),%eax
5018c8:	88 1c 07             	mov    %bl,(%edi,%eax,1)
5018cb:	b8 01 00 00 00       	mov    $0x1,%eax
5018d0:	eb 16                	jmp    0x5018e8
5018d2:	8b c3                	mov    %ebx,%eax
5018d4:	99                   	cltd
5018d5:	52                   	push   %edx
5018d6:	50                   	push   %eax
5018d7:	8b 45 0c             	mov    0xc(%ebp),%eax
5018da:	03 c7                	add    %edi,%eax
5018dc:	50                   	push   %eax
5018dd:	e8 1e 5b 03 00       	call   0x537400
5018e2:	8b 4d 10             	mov    0x10(%ebp),%ecx
5018e5:	83 c4 0c             	add    $0xc,%esp
5018e8:	ff 71 0c             	push   0xc(%ecx)
5018eb:	0f b6 c0             	movzbl %al,%eax
5018ee:	ff 71 08             	push   0x8(%ecx)
5018f1:	03 f8                	add    %eax,%edi
5018f3:	8b 45 0c             	mov    0xc(%ebp),%eax
5018f6:	03 c7                	add    %edi,%eax
5018f8:	50                   	push   %eax
5018f9:	e8 02 5b 03 00       	call   0x537400
5018fe:	83 c4 0c             	add    $0xc,%esp
501901:	eb 3e                	jmp    0x501941
501903:	8b 45 10             	mov    0x10(%ebp),%eax
501906:	8b 58 08             	mov    0x8(%eax),%ebx
501909:	8b f3                	mov    %ebx,%esi
50190b:	8b 00                	mov    (%eax),%eax
50190d:	89 5d f8             	mov    %ebx,-0x8(%ebp)
501910:	89 5d f4             	mov    %ebx,-0xc(%ebp)
501913:	89 45 fc             	mov    %eax,-0x4(%ebp)
501916:	81 fb 80 00 00 00    	cmp    $0x80,%ebx