551362:	83 bd 30 ff ff ff 00 	cmpl   $0x0,-0xd0(%ebp)
551369:	74 0e                	je     0x551379
55136b:	89 8d 50 ff ff ff    	mov    %ecx,-0xb0(%ebp)
551371:	8b ca                	mov    %edx,%ecx
551373:	89 8d 58 ff ff ff    	mov    %ecx,-0xa8(%ebp)
551379:	85 c9                	test   %ecx,%ecx
55137b:	0f 84 ee 00 00 00    	je     0x55146f
551381:	8b 11                	mov    (%ecx),%edx
551383:	c7 85 54 ff ff ff 19 	movl   $0x18161719,-0xac(%ebp)
55138a:	17 16 18
55138d:	89 95 5c ff ff ff    	mov    %edx,-0xa4(%ebp)
551393:	8b 42 10             	mov    0x10(%edx),%eax
551396:	50                   	push   %eax
551397:	89 45 98             	mov    %eax,-0x68(%ebp)
55139a:	e8 91 61 fd ff       	call   0x527530
55139f:	83 c4 04             	add    $0x4,%esp
5513a2:	85 c0                	test   %eax,%eax
5513a4:	74 4f                	je     0x5513f5
5513a6:	8a 43 13             	mov    0x13(%ebx),%al
5513a9:	84 c0                	test   %al,%al
5513ab:	75 08                	jne    0x5513b5
5513ad:	ff 43 2c             	incl   0x2c(%ebx)
5513b0:	8b 43 2c             	mov    0x2c(%ebx),%eax
5513b3:	eb 0f                	jmp    0x5513c4
5513b5:	fe c8                	dec    %al
5513b7:	88 43 13             	mov    %al,0x13(%ebx)
5513ba:	0f b6 c0             	movzbl %al,%eax
5513bd:	8b 84 83 94 00 00 00 	mov    0x94(%ebx,%eax,4),%eax
5513c4:	6a 01                	push   $0x1
5513c6:	50                   	push   %eax
5513c7:	ff 72 10             	push   0x10(%edx)
5513ca:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
5513d0:	53                   	push   %ebx
5513d1:	89 45 98             	mov    %eax,-0x68(%ebp)
5513d4:	e8 e7 8b fa ff       	call   0x4f9fc0
5513d9:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
5513df:	83 c4 10             	add    $0x10,%esp
5513e2:	0f b6 00             	movzbl (%eax),%eax
5513e5:	40                   	inc    %eax
5513e6:	83 e0 02             	and    $0x2,%eax
5513e9:	83 c8 01             	or     $0x1,%eax
5513ec:	8a 8c 05 54 ff ff ff 	mov    -0xac(%ebp,%eax,1),%cl
5513f3:	eb 3e                	jmp    0x551433
5513f5:	8d 85 24 ff ff ff    	lea    -0xdc(%ebp),%eax
5513fb:	50                   	push   %eax
5513fc:	ff 75 98             	push   -0x68(%ebp)
5513ff:	53                   	push   %ebx
551400:	e8 cb 4d fd ff       	call   0x5261d0
551405:	ff b5 58 ff ff ff    	push   -0xa8(%ebp)
55140b:	89 45 98             	mov    %eax,-0x68(%ebp)
55140e:	56                   	push   %esi
55140f:	e8 ec ca fa ff       	call   0x4fdf00
551414:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
55141a:	83 c4 14             	add    $0x14,%esp
55141d:	0f b6 00             	movzbl (%eax),%eax
551420:	8a 8c 05 1e ff ff ff 	mov    -0xe2(%ebp,%eax,1),%cl
551427:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
55142d:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
551433:	ff 75 98             	push   -0x68(%ebp)
551436:	0f b6 c1             	movzbl %cl,%eax
551439:	ff b5 38 ff ff ff    	push   -0xc8(%ebp)
55143f:	ff b5 40 ff ff ff    	push   -0xc0(%ebp)
551445:	50                   	push   %eax
551446:	57                   	push   %edi
551447:	e8 f4 06 ff ff       	call   0x541b40
55144c:	8b 8d 58 ff ff ff    	mov    -0xa8(%ebp),%ecx
551452:	83 c4 14             	add    $0x14,%esp
551455:	85 c9                	test   %ecx,%ecx
551457:	74 3b                	je     0x551494
551459:	8a 43 13             	mov    0x13(%ebx),%al
55145c:	3c 08                	cmp    $0x8,%al
55145e:	73 34                	jae    0x551494
551460:	0f b6 c0             	movzbl %al,%eax
551463:	89 8c 83 94 00 00 00 	mov    %ecx,0x94(%ebx,%eax,4)
55146a:	fe 43 13             	incb   0x13(%ebx)
55146d:	eb 25                	jmp    0x551494
55146f:	ff 75 98             	push   -0x68(%ebp)
551472:	33 c0                	xor    %eax,%eax
551474:	39 85 30 ff ff ff    	cmp    %eax,-0xd0(%ebp)
55147a:	ff b5 40 ff ff ff    	push   -0xc0(%ebp)
551480:	0f 94 c0             	sete   %al
551483:	8d 04 85 21 00 00 00 	lea    0x21(,%eax,4),%eax
55148a:	50                   	push   %eax
55148b:	57                   	push   %edi
55148c:	e8 4f 06 ff ff       	call   0x541ae0
551491:	83 c4 10             	add    $0x10,%esp
551494:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
55149a:	85 c0                	test   %eax,%eax
55149c:	0f 84 9a 00 00 00    	je     0x55153c
5514a2:	8b 00                	mov    (%eax),%eax
5514a4:	ff 43 2c             	incl   0x2c(%ebx)
5514a7:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
5514aa:	6a 01                	push   $0x1
5514ac:	51                   	push   %ecx
5514ad:	ff 70 10             	push   0x10(%eax)
5514b0:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
5514b6:	53                   	push   %ebx
5514b7:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
5514bd:	e8 fe 8a fa ff       	call   0x4f9fc0
5514c2:	8b 95 5c ff ff ff    	mov    -0xa4(%ebp),%edx
5514c8:	8b 42 10             	mov    0x10(%edx),%eax
5514cb:	50                   	push   %eax
5514cc:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
5514d2:	e8 59 60 fd ff       	call   0x527530
5514d7:	83 c4 14             	add    $0x14,%esp
5514da:	85 c0                	test   %eax,%eax
5514dc:	75 24                	jne    0x551502
5514de:	8a 02                	mov    (%edx),%al
5514e0:	3c 38                	cmp    $0x38,%al
5514e2:	74 04                	je     0x5514e8
5514e4:	3c 36                	cmp    $0x36,%al
5514e6:	75 1a                	jne    0x551502
5514e8:	33 d2                	xor    %edx,%edx
5514ea:	39 95 30 ff ff ff    	cmp    %edx,-0xd0(%ebp)
5514f0:	0f 94 c2             	sete   %dl
5514f3:	8d 14 55 37 00 00 00 	lea    0x37(,%edx,2),%edx
5514fa:	89 95 34 ff ff ff    	mov    %edx,-0xcc(%ebp)
551500:	eb 18                	jmp    0x55151a
551502:	33 c0                	xor    %eax,%eax
551504:	39 85 30 ff ff ff    	cmp    %eax,-0xd0(%ebp)
55150a:	0f 95 c0             	setne  %al
55150d:	8d 04 45 36 00 00 00 	lea    0x36(,%eax,2),%eax
551514:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
55151a:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
551520:	e8 0b 60 fd ff       	call   0x527530
551525:	83 c4 04             	add    $0x4,%esp
551528:	85 c0                	test   %eax,%eax
55152a:	75 10                	jne    0x55153c
55152c:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
551532:	50                   	push   %eax
551533:	56                   	push   %esi
551534:	e8 c7 c9 fa ff       	call   0x4fdf00
551539:	83 c4 08             	add    $0x8,%esp
55153c:	83 bd 30 ff ff ff 00 	cmpl   $0x0,-0xd0(%ebp)
551543:	8b 4f 6c             	mov    0x6c(%edi),%ecx
551546:	0f 94 c0             	sete   %al
551549:	89 4e 3c             	mov    %ecx,0x3c(%esi)
55154c:	04 04                	add    $0x4,%al
55154e:	81 bd 34 ff ff ff ad 	cmpl   $0xad,-0xcc(%ebp)
551555:	00 00 00
551558:	88 46 35             	mov    %al,0x35(%esi)
55155b:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
551561:	89 46 38             	mov    %eax,0x38(%esi)
551564:	0f 84 ae f6 ff ff    	je     0x550c18
55156a:	ff 43 2c             	incl   0x2c(%ebx)
55156d:	8b 73 2c             	mov    0x2c(%ebx),%esi
551570:	56                   	push   %esi
551571:	50                   	push   %eax
551572:	6a 7f                	push   $0x7f
551574:	57                   	push   %edi
551575:	e8 66 05 ff ff       	call   0x541ae0
55157a:	56                   	push   %esi
55157b:	ff b5 38 ff ff ff    	push   -0xc8(%ebp)
551581:	ff b5 04 ff ff ff    	push   -0xfc(%ebp)
551587:	ff b5 34 ff ff ff    	push   -0xcc(%ebp)
55158d:	57                   	push   %edi
55158e:	e8 ad 05 ff ff       	call   0x541b40
551593:	8b 47 6c             	mov    0x6c(%edi),%eax
551596:	83 c4 24             	add    $0x24,%esp
551599:	85 c0                	test   %eax,%eax
55159b:	0f 8e 77 f6 ff ff    	jle    0x550c18
5515a1:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5515a4:	ba 53 00 00 00       	mov    $0x53,%edx
5515a9:	8b 47 68             	mov    0x68(%edi),%eax
5515ac:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
5515b1:	e9 62 f6 ff ff       	jmp    0x550c18
5515b6:	f7 c2 00 02 00 00    	test   $0x200,%edx
5515bc:	0f 84 55 0a 00 00    	je     0x552017
5515c2:	8b 95 44 ff ff ff    	mov    -0xbc(%ebp),%edx
5515c8:	c7 85 10 ff ff ff 00 	movl   $0x0,-0xf0(%ebp)
5515cf:	00 00 00
5515d2:	c7 85 0c ff ff ff 00 	movl   $0x0,-0xf4(%ebp)
5515d9:	00 00 00
5515dc:	c7 85 54 ff ff ff 00 	movl   $0x0,-0xac(%ebp)
5515e3:	00 00 00
5515e6:	0f b7 42 1a          	movzwl 0x1a(%edx),%eax
5515ea:	0f b7 4a 18          	movzwl 0x18(%edx),%ecx
5515ee:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
5515f4:	0f b7 42 1c          	movzwl 0x1c(%edx),%eax
5515f8:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
5515fe:	33 c0                	xor    %eax,%eax
551600:	89 45 98             	mov    %eax,-0x68(%ebp)
551603:	88 85 4f ff ff ff    	mov    %al,-0xb1(%ebp)
551609:	88 85 03 ff ff ff    	mov    %al,-0xfd(%ebp)
55160f:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
551615:	8b 42 20             	mov    0x20(%edx),%eax
551618:	89 85 18 ff ff ff    	mov    %eax,-0xe8(%ebp)
55161e:	8b 46 08             	mov    0x8(%esi),%eax
551621:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
551627:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
55162d:	0f b7 d1             	movzwl %cx,%edx
551630:	89 8d 24 ff ff ff    	mov    %ecx,-0xdc(%ebp)
551636:	89 95 20 ff ff ff    	mov    %edx,-0xe0(%ebp)
55163c:	8b 48 24             	mov    0x24(%eax),%ecx
55163f:	89 95 5c ff ff ff    	mov    %edx,-0xa4(%ebp)
551645:	f6 c1 20             	test   $0x20,%cl
551648:	74 31                	je     0x55167b
55164a:	8b 40 30             	mov    0x30(%eax),%eax
55164d:	8b bd 44 ff ff ff    	mov    -0xbc(%ebp),%edi
551653:	8b 04 90             	mov    (%eax,%edx,4),%eax
551656:	89 85 10 ff ff ff    	mov    %eax,-0xf0(%ebp)
55165c:	8d 42 01             	lea    0x1(%edx),%eax
55165f:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
551665:	0f b7 47 1a          	movzwl 0x1a(%edi),%eax
551669:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
55166f:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
551675:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
55167b:	f6 c1 10             	test   $0x10,%cl
55167e:	0f 84 c8 00 00 00    	je     0x55174c
551684:	8b 40 30             	mov    0x30(%eax),%eax
551687:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
55168d:	8b 04 88             	mov    (%eax,%ecx,4),%eax
551690:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
551696:	89 85 0c ff ff ff    	mov    %eax,-0xf4(%ebp)
55169c:	0f b7 41 1c          	movzwl 0x1c(%ecx),%eax
5516a0:	8b 8d 54 ff ff ff    	mov    -0xac(%ebp),%ecx
5516a6:	3b c8                	cmp    %eax,%ecx
5516a8:	0f 46 c8             	cmovbe %eax,%ecx
5516ab:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
5516b1:	89 8d 54 ff ff ff    	mov    %ecx,-0xac(%ebp)
5516b7:	b9 00 01 00 00       	mov    $0x100,%ecx
5516bc:	66 85 48 0a          	test   %cx,0xa(%eax)
5516c0:	74 42                	je     0x551704
5516c2:	8b 43 2c             	mov    0x2c(%ebx),%eax
5516c5:	40                   	inc    %eax
5516c6:	50                   	push   %eax
5516c7:	6a 01                	push   $0x1
5516c9:	6a 45                	push   $0x45
5516cb:	89 43 2c             	mov    %eax,0x2c(%ebx)
5516ce:	57                   	push   %edi
5516cf:	89 46 2c             	mov    %eax,0x2c(%esi)
5516d2:	e8 09 04 ff ff       	call   0x541ae0
5516d7:	8b 47 6c             	mov    0x6c(%edi),%eax
5516da:	33 c9                	xor    %ecx,%ecx
5516dc:	d1 66 2c             	shll   $1,0x2c(%esi)
5516df:	83 c4 10             	add    $0x10,%esp
5516e2:	8b 95 20 ff ff ff    	mov    -0xe0(%ebp),%edx
5516e8:	89 46 30             	mov    %eax,0x30(%esi)
5516eb:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
5516f1:	8b 40 1c             	mov    0x1c(%eax),%eax
5516f4:	80 3c 02 01          	cmpb   $0x1,(%edx,%eax,1)
5516f8:	0f 94 c1             	sete   %cl
5516fb:	33 8d 30 ff ff ff    	xor    -0xd0(%ebp),%ecx
551701:	09 4e 2c             	or     %ecx,0x2c(%esi)
551704:	83 bd 10 ff ff ff 00 	cmpl   $0x0,-0xf0(%ebp)
55170b:	75 3f                	jne    0x55174c
55170d:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
551713:	8b 40 04             	mov    0x4(%eax),%eax
551716:	0f bf 0c 50          	movswl (%eax,%edx,2),%ecx
55171a:	89 8d 5c ff ff ff    	mov    %ecx,-0xa4(%ebp)
551720:	85 c9                	test   %ecx,%ecx
551722:	78 1c                	js     0x551740
551724:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
55172a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
55172d:	8b 40 0c             	mov    0xc(%eax),%eax
551730:	8b 40 04             	mov    0x4(%eax),%eax
551733:	80 7c 88 0c 00       	cmpb   $0x0,0xc(%eax,%ecx,4)
551738:	74 0b                	je     0x551745
55173a:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
551740:	83 f9 fe             	cmp    $0xfffffffe,%ecx
551743:	75 07                	jne    0x55174c
551745:	c6 85 4f ff ff ff 01 	movb   $0x1,-0xb1(%ebp)
55174c:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
551752:	8b 40 24             	mov    0x24(%eax),%eax
551755:	a8 30                	test   $0x30,%al
551757:	75 30                	jne    0x551789
551759:	a9 00 00 08 00       	test   $0x80000,%eax
55175e:	74 29                	je     0x551789
551760:	ff 43 2c             	incl   0x2c(%ebx)
551763:	8b 43 2c             	mov    0x2c(%ebx),%eax
551766:	89 46 24             	mov    %eax,0x24(%esi)
551769:	ff 4b 38             	decl   0x38(%ebx)
55176c:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
551772:	8b 43 38             	mov    0x38(%ebx),%eax
551775:	c7 85 54 ff ff ff 01 	movl   $0x1,-0xac(%ebp)
55177c:	00 00 00
55177f:	c6 85 4f ff ff ff 01 	movb   $0x1,-0xb1(%ebp)
551786:	89 46 28             	mov    %eax,0x28(%esi)
551789:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
55178f:	8b 8d 24 ff ff ff    	mov    -0xdc(%ebp),%ecx
551795:	0f b7 40 32          	movzwl 0x32(%eax),%eax
551799:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
55179f:	66 3b c8             	cmp    %ax,%cx
5517a2:	73 29                	jae    0x5517cd
5517a4:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
5517aa:	33 c9                	xor    %ecx,%ecx
5517ac:	8b 40 1c             	mov    0x1c(%eax),%eax
5517af:	38 0c 02             	cmp    %cl,(%edx,%eax,1)
5517b2:	8b 95 30 ff ff ff    	mov    -0xd0(%ebp),%edx
5517b8:	0f 94 c1             	sete   %cl
5517bb:	3b d1                	cmp    %ecx,%edx
5517bd:	74 1d                	je     0x5517dc
5517bf:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
5517c5:	8b 8d 24 ff ff ff    	mov    -0xdc(%ebp),%ecx
5517cb:	eb 06                	jmp    0x5517d3
5517cd:	8b 95 30 ff ff ff    	mov    -0xd0(%ebp),%edx
5517d3:	85 d2                	test   %edx,%edx
5517d5:	74 54                	je     0x55182b
5517d7:	66 3b c1             	cmp    %cx,%ax
5517da:	75 4f                	jne    0x55182b
5517dc:	8b 8d 10 ff ff ff    	mov    -0xf0(%ebp),%ecx
5517e2:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
5517e8:	8b bd 34 ff ff ff    	mov    -0xcc(%ebp),%edi
5517ee:	89 8d 0c ff ff ff    	mov    %ecx,-0xf4(%ebp)
5517f4:	8a 8d 4f ff ff ff    	mov    -0xb1(%ebp),%cl
5517fa:	89 85 10 ff ff ff    	mov    %eax,-0xf0(%ebp)
551800:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
551806:	88 8d 03 ff ff ff    	mov    %cl,-0xfd(%ebp)
55180c:	0f b7 cf             	movzwl %di,%ecx
55180f:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
551815:	0f b6 c0             	movzbl %al,%eax
551818:	c6 85 4f ff ff ff 00 	movb   $0x0,-0xb1(%ebp)
55181f:	89 8d 38 ff ff ff    	mov    %ecx,-0xc8(%ebp)
551825:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
55182b:	8d 85 04 ff ff ff    	lea    -0xfc(%ebp),%eax
551831:	50                   	push   %eax
551832:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
551838:	52                   	push   %edx
551839:	56                   	push   %esi
55183a:	53                   	push   %ebx
55183b:	e8 b0 78 fa ff       	call   0x4f90f0
551840:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
551846:	83 c4 14             	add    $0x14,%esp
551849:	89 85 14 ff ff ff    	mov    %eax,-0xec(%ebp)
55184f:	85 c9                	test   %ecx,%ecx
551851:	74 24                	je     0x551877
551853:	66 83 bd 34 ff ff ff 	cmpw   $0x0,-0xcc(%ebp)
55185a:	00
55185b:	74 1a                	je     0x551877
55185d:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
551863:	03 c1                	add    %ecx,%eax
551865:	50                   	push   %eax
551866:	ff b5 f4 fe ff ff    	push   -0x10c(%ebp)
55186c:	e8 3f fe fc ff       	call   0x5216b0
551871:	83 c4 08             	add    $0x8,%esp
551874:	89 45 98             	mov    %eax,-0x68(%ebp)
551877:	8b 95 3c ff ff ff    	mov    -0xc4(%ebp),%edx
55187d:	85 d2                	test   %edx,%edx
55187f:	74 0b                	je     0x55188c
551881:	8b 4e 28             	mov    0x28(%esi),%ecx
551884:	89 8d 54 ff ff ff    	mov    %ecx,-0xac(%ebp)
55188a:	eb 09                	jmp    0x551895
55188c:	8b 46 10             	mov    0x10(%esi),%eax
55188f:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
551895:	8b 85 10 ff ff ff    	mov    -0xf0(%ebp),%eax
55189b:	85 c0                	test   %eax,%eax
55189d:	74 10                	je     0x5518af
55189f:	f6 40 0c 28          	testb  $0x28,0xc(%eax)
5518a3:	c7 85 50 ff ff ff 00 	movl   $0x0,-0xb0(%ebp)
5518aa:	00 00 00