552531:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
552537:	e8 e4 a9 fd ff       	call   0x52cf20
55253c:	33 f6                	xor    %esi,%esi
55253e:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
552544:	83 c4 0c             	add    $0xc,%esp
552547:	39 b5 58 ff ff ff    	cmp    %esi,-0xa8(%ebp)
55254d:	76 3e                	jbe    0x55258d
55254f:	8b 9d 58 ff ff ff    	mov    -0xa8(%ebp),%ebx
552555:	8d 0c 06             	lea    (%esi,%eax,1),%ecx
552558:	8b 85 dc fe ff ff    	mov    -0x124(%ebp),%eax
55255e:	51                   	push   %ecx
55255f:	8b 40 04             	mov    0x4(%eax),%eax
552562:	0f bf 04 70          	movswl (%eax,%esi,2),%eax
552566:	50                   	push   %eax
552567:	ff b5 40 ff ff ff    	push   -0xc0(%ebp)
55256d:	ff b5 38 ff ff ff    	push   -0xc8(%ebp)
552573:	57                   	push   %edi
552574:	e8 47 1b fd ff       	call   0x5240c0
552579:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
55257f:	46                   	inc    %esi
552580:	83 c4 14             	add    $0x14,%esp
552583:	3b f3                	cmp    %ebx,%esi
552585:	7c ce                	jl     0x552555
552587:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
55258d:	83 bd 5c ff ff ff 00 	cmpl   $0x0,-0xa4(%ebp)
552594:	8b b5 58 ff ff ff    	mov    -0xa8(%ebp),%esi
55259a:	74 28                	je     0x5525c4
55259c:	56                   	push   %esi
55259d:	50                   	push   %eax
55259e:	6a 00                	push   $0x0
5525a0:	ff b5 50 ff ff ff    	push   -0xb0(%ebp)
5525a6:	6a 1e                	push   $0x1e
5525a8:	57                   	push   %edi
5525a9:	e8 62 f6 fe ff       	call   0x541c10
5525ae:	83 c4 18             	add    $0x18,%esp
5525b1:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
5525b7:	83 bd 5c ff ff ff 00 	cmpl   $0x0,-0xa4(%ebp)
5525be:	0f 8c 91 00 00 00    	jl     0x552655
5525c4:	8b 4f 6c             	mov    0x6c(%edi),%ecx
5525c7:	8b 95 54 ff ff ff    	mov    -0xac(%ebp),%edx
5525cd:	39 4f 70             	cmp    %ecx,0x70(%edi)
5525d0:	7f 15                	jg     0x5525e7
5525d2:	ff b5 10 ff ff ff    	push   -0xf0(%ebp)
5525d8:	56                   	push   %esi
5525d9:	52                   	push   %edx
5525da:	6a 5b                	push   $0x5b
5525dc:	57                   	push   %edi
5525dd:	e8 1e 3f fb ff       	call   0x506500
5525e2:	83 c4 14             	add    $0x14,%esp
5525e5:	eb 2d                	jmp    0x552614
5525e7:	8d 41 01             	lea    0x1(%ecx),%eax
5525ea:	89 47 6c             	mov    %eax,0x6c(%edi)
5525ed:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5525f0:	8b 47 68             	mov    0x68(%edi),%eax
5525f3:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5525f7:	8b 95 10 ff ff ff    	mov    -0xf0(%ebp),%edx
5525fd:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
552604:	89 74 88 08          	mov    %esi,0x8(%eax,%ecx,4)
552608:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
55260c:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
552613:	00
552614:	56                   	push   %esi
552615:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
55261b:	ff b5 10 ff ff ff    	push   -0xf0(%ebp)
552621:	ff b5 50 ff ff ff    	push   -0xb0(%ebp)
552627:	68 83 00 00 00       	push   $0x83
55262c:	57                   	push   %edi
55262d:	e8 de f5 fe ff       	call   0x541c10
552632:	83 c4 18             	add    $0x18,%esp
552635:	83 bd 5c ff ff ff 00 	cmpl   $0x0,-0xa4(%ebp)
55263c:	74 17                	je     0x552655
55263e:	8b 47 6c             	mov    0x6c(%edi),%eax
552641:	85 c0                	test   %eax,%eax
552643:	7e 10                	jle    0x552655
552645:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
552648:	ba 10 00 00 00       	mov    $0x10,%edx
55264d:	8b 47 68             	mov    0x68(%edi),%eax
552650:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
552655:	83 fe 01             	cmp    $0x1,%esi
552658:	75 26                	jne    0x552680
55265a:	8b 8d 54 ff ff ff    	mov    -0xac(%ebp),%ecx
552660:	85 c9                	test   %ecx,%ecx
552662:	74 2d                	je     0x552691
552664:	8a 43 13             	mov    0x13(%ebx),%al
552667:	8b b5 34 ff ff ff    	mov    -0xcc(%ebp),%esi
55266d:	3c 08                	cmp    $0x8,%al
55266f:	73 26                	jae    0x552697
552671:	0f b6 c0             	movzbl %al,%eax
552674:	89 8c 83 94 00 00 00 	mov    %ecx,0x94(%ebx,%eax,4)
55267b:	fe 43 13             	incb   0x13(%ebx)
55267e:	eb 17                	jmp    0x552697
552680:	3b 73 1c             	cmp    0x1c(%ebx),%esi
552683:	7e 0c                	jle    0x552691
552685:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
55268b:	89 73 1c             	mov    %esi,0x1c(%ebx)
55268e:	89 43 20             	mov    %eax,0x20(%ebx)
552691:	8b b5 34 ff ff ff    	mov    -0xcc(%ebp),%esi
552697:	8b 4f 6c             	mov    0x6c(%edi),%ecx
55269a:	39 4f 70             	cmp    %ecx,0x70(%edi)
55269d:	7f 18                	jg     0x5526b7
55269f:	6a 00                	push   $0x0
5526a1:	ff b5 48 ff ff ff    	push   -0xb8(%ebp)
5526a7:	ff 75 98             	push   -0x68(%ebp)
5526aa:	6a 0c                	push   $0xc
5526ac:	57                   	push   %edi
5526ad:	e8 4e 3e fb ff       	call   0x506500
5526b2:	83 c4 14             	add    $0x14,%esp
5526b5:	eb 34                	jmp    0x5526eb
5526b7:	8b 55 98             	mov    -0x68(%ebp),%edx
5526ba:	8d 41 01             	lea    0x1(%ecx),%eax
5526bd:	89 47 6c             	mov    %eax,0x6c(%edi)
5526c0:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5526c3:	8b 47 68             	mov    0x68(%edi),%eax
5526c6:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5526ca:	8b 95 48 ff ff ff    	mov    -0xb8(%ebp),%edx
5526d0:	c7 04 88 0c 00 00 00 	movl   $0xc,(%eax,%ecx,4)
5526d7:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5526db:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5526e2:	00
5526e3:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5526ea:	00
5526eb:	85 f6                	test   %esi,%esi
5526ed:	74 23                	je     0x552712
5526ef:	8b 57 6c             	mov    0x6c(%edi),%edx
5526f2:	79 03                	jns    0x5526f7
5526f4:	8d 72 ff             	lea    -0x1(%edx),%esi
5526f7:	8b 07                	mov    (%edi),%eax
5526f9:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5526fd:	74 07                	je     0x552706
5526ff:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
552704:	eb 09                	jmp    0x55270f
552706:	8b 47 68             	mov    0x68(%edi),%eax
552709:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
55270c:	8d 04 88             	lea    (%eax,%ecx,4),%eax
55270f:	89 50 08             	mov    %edx,0x8(%eax)
552712:	8b 95 e4 fe ff ff    	mov    -0x11c(%ebp),%edx
552718:	b9 01 00 00 00       	mov    $0x1,%ecx
55271d:	8b 85 28 ff ff ff    	mov    -0xd8(%ebp),%eax
552723:	f6 42 30 02          	testb  $0x2,0x30(%edx)
552727:	0f 45 c1             	cmovne %ecx,%eax
55272a:	8b 8a 38 03 00 00    	mov    0x338(%edx),%ecx
552730:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
552736:	f7 41 24 00 02 00 00 	testl  $0x200,0x24(%ecx)
55273d:	74 37                	je     0x552776
55273f:	83 bd 0c ff ff ff 00 	cmpl   $0x0,-0xf4(%ebp)
552746:	74 0b                	je     0x552753
552748:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
55274e:	39 41 20             	cmp    %eax,0x20(%ecx)
552751:	75 23                	jne    0x552776
552753:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
552759:	f6 40 24 80          	testb  $0x80,0x24(%eax)
55275d:	74 0c                	je     0x55276b
55275f:	8b 41 20             	mov    0x20(%ecx),%eax
552762:	8b 40 38             	mov    0x38(%eax),%eax
552765:	24 03                	and    $0x3,%al
552767:	3c 02                	cmp    $0x2,%al
552769:	74 0b                	je     0x552776
55276b:	8b 71 20             	mov    0x20(%ecx),%esi
55276e:	89 b5 24 ff ff ff    	mov    %esi,-0xdc(%ebp)
552774:	eb 0a                	jmp    0x552780
552776:	c7 85 24 ff ff ff 00 	movl   $0x0,-0xdc(%ebp)
55277d:	00 00 00
552780:	52                   	push   %edx
552781:	e8 8a 06 00 00       	call   0x552e10
552786:	8b 8b d4 00 00 00    	mov    0xd4(%ebx),%ecx
55278c:	83 c4 04             	add    $0x4,%esp
55278f:	85 c9                	test   %ecx,%ecx
552791:	75 04                	jne    0x552797
552793:	33 c0                	xor    %eax,%eax
552795:	eb 26                	jmp    0x5527bd
552797:	8b 53 08             	mov    0x8(%ebx),%edx
55279a:	85 c9                	test   %ecx,%ecx
55279c:	79 04                	jns    0x5527a2
55279e:	8b 4a 6c             	mov    0x6c(%edx),%ecx
5527a1:	49                   	dec    %ecx
5527a2:	8b 02                	mov    (%edx),%eax
5527a4:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5527a8:	74 07                	je     0x5527b1
5527aa:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
5527af:	eb 09                	jmp    0x5527ba
5527b1:	8b 42 68             	mov    0x68(%edx),%eax
5527b4:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5527b7:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5527ba:	8b 40 08             	mov    0x8(%eax),%eax
5527bd:	89 83 d4 00 00 00    	mov    %eax,0xd4(%ebx)
5527c3:	8b 95 40 ff ff ff    	mov    -0xc0(%ebp),%edx
5527c9:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
5527cf:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
5527d5:	40                   	inc    %eax
5527d6:	89 85 0c ff ff ff    	mov    %eax,-0xf4(%ebp)
5527dc:	3b 41 0c             	cmp    0xc(%ecx),%eax
5527df:	0f 8c 3b fc ff ff    	jl     0x552420
5527e5:	8b b5 2c ff ff ff    	mov    -0xd4(%ebp),%esi
5527eb:	8b 8b d4 00 00 00    	mov    0xd4(%ebx),%ecx
5527f1:	85 c9                	test   %ecx,%ecx
5527f3:	75 04                	jne    0x5527f9
5527f5:	33 c0                	xor    %eax,%eax
5527f7:	eb 26                	jmp    0x55281f
5527f9:	8b 53 08             	mov    0x8(%ebx),%edx
5527fc:	85 c9                	test   %ecx,%ecx
5527fe:	79 04                	jns    0x552804
552800:	8b 4a 6c             	mov    0x6c(%edx),%ecx
552803:	49                   	dec    %ecx
552804:	8b 02                	mov    (%edx),%eax
552806:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
55280a:	74 07                	je     0x552813
55280c:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
552811:	eb 09                	jmp    0x55281c
552813:	8b 42 68             	mov    0x68(%edx),%eax
552816:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
552819:	8d 04 88             	lea    (%eax,%ecx,4),%eax
55281c:	8b 40 08             	mov    0x8(%eax),%eax
55281f:	89 83 d4 00 00 00    	mov    %eax,0xd4(%ebx)
552825:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
55282b:	89 46 40             	mov    %eax,0x40(%esi)
55282e:	85 c0                	test   %eax,%eax
552830:	74 09                	je     0x55283b
552832:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
552838:	89 46 08             	mov    %eax,0x8(%esi)
55283b:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
552841:	8b 9d f4 fe ff ff    	mov    -0x10c(%ebp),%ebx
552847:	85 c0                	test   %eax,%eax
552849:	74 11                	je     0x55285c
55284b:	50                   	push   %eax
55284c:	53                   	push   %ebx
55284d:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
552854:	e8 57 3f fd ff       	call   0x5267b0
552859:	83 c4 08             	add    $0x8,%esp
55285c:	8b 8d 30 ff ff ff    	mov    -0xd0(%ebp),%ecx
552862:	8b 57 6c             	mov    0x6c(%edi),%edx
552865:	85 c9                	test   %ecx,%ecx
552867:	79 03                	jns    0x55286c
552869:	8d 4a ff             	lea    -0x1(%edx),%ecx
55286c:	8b 07                	mov    (%edi),%eax
55286e:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
552872:	74 07                	je     0x55287b
552874:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
552879:	eb 09                	jmp    0x552884
55287b:	8b 47 68             	mov    0x68(%edi),%eax
55287e:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
552881:	8d 04 88             	lea    (%eax,%ecx,4),%eax
552884:	89 50 04             	mov    %edx,0x4(%eax)
552887:	8b 4f 6c             	mov    0x6c(%edi),%ecx
55288a:	8b 56 0c             	mov    0xc(%esi),%edx
55288d:	39 4f 70             	cmp    %ecx,0x70(%edi)
552890:	7f 12                	jg     0x5528a4
552892:	6a 00                	push   $0x0
552894:	52                   	push   %edx
552895:	6a 00                	push   $0x0
552897:	6a 0b                	push   $0xb
552899:	57                   	push   %edi
55289a:	e8 61 3c fb ff       	call   0x506500
55289f:	83 c4 14             	add    $0x14,%esp
5528a2:	eb 35                	jmp    0x5528d9
5528a4:	8b b5 2c ff ff ff    	mov    -0xd4(%ebp),%esi
5528aa:	8d 41 01             	lea    0x1(%ecx),%eax
5528ad:	89 47 6c             	mov    %eax,0x6c(%edi)
5528b0:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5528b3:	8b 47 68             	mov    0x68(%edi),%eax
5528b6:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
5528bd:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
5528c4:	00
5528c5:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5528c9:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5528d0:	00
5528d1:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5528d8:	00
5528d9:	8b 4f 0c             	mov    0xc(%edi),%ecx
5528dc:	8b 95 48 ff ff ff    	mov    -0xb8(%ebp),%edx
5528e2:	f7 d2                	not    %edx
5528e4:	8b 41 3c             	mov    0x3c(%ecx),%eax
5528e7:	03 41 38             	add    0x38(%ecx),%eax
5528ea:	79 0d                	jns    0x5528f9
5528ec:	52                   	push   %edx
5528ed:	57                   	push   %edi
5528ee:	51                   	push   %ecx
5528ef:	e8 ac 0e fc ff       	call   0x5137a0
5528f4:	83 c4 0c             	add    $0xc,%esp
5528f7:	eb 09                	jmp    0x552902
5528f9:	8b 49 40             	mov    0x40(%ecx),%ecx
5528fc:	8b 47 6c             	mov    0x6c(%edi),%eax
5528ff:	89 04 91             	mov    %eax,(%ecx,%edx,4)
552902:	8b 85 1c ff ff ff    	mov    -0xe4(%ebp),%eax
552908:	80 78 2c 01          	cmpb   $0x1,0x2c(%eax)
55290c:	76 64                	jbe    0x552972
55290e:	8b 8d 14 ff ff ff    	mov    -0xec(%ebp),%ecx
552914:	85 c9                	test   %ecx,%ecx
552916:	74 5a                	je     0x552972
552918:	85 db                	test   %ebx,%ebx
55291a:	74 4d                	je     0x552969
55291c:	83 bb f8 01 00 00 00 	cmpl   $0x0,0x1f8(%ebx)
552923:	74 0c                	je     0x552931
552925:	51                   	push   %ecx
552926:	53                   	push   %ebx
552927:	e8 44 6b fb ff       	call   0x509470
55292c:	83 c4 08             	add    $0x8,%esp
55292f:	eb 41                	jmp    0x552972
552931:	3b 8b 4c 01 00 00    	cmp    0x14c(%ebx),%ecx
552937:	73 30                	jae    0x552969
552939:	3b 8b 44 01 00 00    	cmp    0x144(%ebx),%ecx
55293f:	72 10                	jb     0x552951
552941:	8b 83 40 01 00 00    	mov    0x140(%ebx),%eax
552947:	89 01                	mov    %eax,(%ecx)
552949:	89 8b 40 01 00 00    	mov    %ecx,0x140(%ebx)
55294f:	eb 21                	jmp    0x552972
552951:	3b 8b 48 01 00 00    	cmp    0x148(%ebx),%ecx
552957:	72 10                	jb     0x552969
552959:	8b 83 38 01 00 00    	mov    0x138(%ebx),%eax
55295f:	89 01                	mov    %eax,(%ecx)
552961:	89 8b 38 01 00 00    	mov    %ecx,0x138(%ebx)
552967:	eb 09                	jmp    0x552972
552969:	51                   	push   %ecx
55296a:	e8 21 84 f9 ff       	call   0x4ead90
55296f:	83 c4 04             	add    $0x4,%esp
552972:	83 bd 28 ff ff ff 00 	cmpl   $0x0,-0xd8(%ebp)
552979:	0f 85 99 e2 ff ff    	jne    0x550c18
55297f:	ff b5 44 ff ff ff    	push   -0xbc(%ebp)
552985:	56                   	push   %esi
552986:	e8 75 b5 fa ff       	call   0x4fdf00
55298b:	83 c4 08             	add    $0x8,%esp
55298e:	e9 85 e2 ff ff       	jmp    0x550c18
552993:	8b 85 ec fe ff ff    	mov    -0x114(%ebp),%eax
552999:	f6 40 28 20          	testb  $0x20,0x28(%eax)
55299d:	74 09                	je     0x5529a8
55299f:	c6 46 35 ad          	movb   $0xad,0x35(%esi)
5529a3:	e9 70 e2 ff ff       	jmp    0x550c18
5529a8:	8b 8d 30 ff ff ff    	mov    -0xd0(%ebp),%ecx
5529ae:	ff 75 98             	push   -0x68(%ebp)
5529b1:	8a 81 74 31 6b 00    	mov    0x6b3174(%ecx),%al
5529b7:	88 46 35             	mov    %al,0x35(%esi)
5529ba:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
5529c0:	50                   	push   %eax
5529c1:	89 46 38             	mov    %eax,0x38(%esi)
5529c4:	0f b6 81 78 31 6b 00 	movzbl 0x6b3178(%ecx),%eax
5529cb:	50                   	push   %eax
5529cc:	57                   	push   %edi
5529cd:	e8 0e f1 fe ff       	call   0x541ae0
5529d2:	83 c4 10             	add    $0x10,%esp
5529d5:	c6 46 37 01          	movb   $0x1,0x37(%esi)
5529d9:	40                   	inc    %eax
5529da:	89 46 3c             	mov    %eax,0x3c(%esi)
5529dd:	e9 36 e2 ff ff       	jmp    0x550c18
5529e2:	8b 8d 18 ff ff ff    	mov    -0xe8(%ebp),%ecx
5529e8:	e9 2d e2 ff ff       	jmp    0x550c1a
5529ed:	8b 85 ec fe ff ff    	mov    -0x114(%ebp),%eax
5529f3:	8b 0b                	mov    (%ebx),%ecx
5529f5:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
5529fb:	f6 40 24 08          	testb  $0x8,0x24(%eax)
5529ff:	74 0a                	je     0x552a0b
552a01:	f6 41 04 01          	testb  $0x1,0x4(%ecx)