5510f0:	8b f0                	mov    %eax,%esi
5510f2:	83 c4 0c             	add    $0xc,%esp
5510f5:	85 f6                	test   %esi,%esi
5510f7:	0f 84 d7 00 00 00    	je     0x5511d4
5510fd:	6a 34                	push   $0x34
5510ff:	6a 00                	push   $0x0
551101:	56                   	push   %esi
551102:	e8 f9 28 09 00       	call   0x5e3a00
551107:	83 c8 ff             	or     $0xffffffff,%eax
55110a:	c6 06 35             	movb   $0x35,(%esi)
55110d:	56                   	push   %esi
55110e:	66 89 46 22          	mov    %ax,0x22(%esi)
551112:	e8 a9 05 fb ff       	call   0x5016c0
551117:	8b 03                	mov    (%ebx),%eax
551119:	83 c4 10             	add    $0x10,%esp
55111c:	8b 40 78             	mov    0x78(%eax),%eax
55111f:	39 46 18             	cmp    %eax,0x18(%esi)
551122:	7e 0f                	jle    0x551133
551124:	50                   	push   %eax
551125:	68 30 90 6b 00       	push   $0x6b9030
55112a:	53                   	push   %ebx
55112b:	e8 30 21 fd ff       	call   0x523260
551130:	83 c4 0c             	add    $0xc,%esp
551133:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
551139:	6a 00                	push   $0x0
55113b:	6a 35                	push   $0x35
55113d:	ff b5 f4 fe ff ff    	push   -0x10c(%ebp)
551143:	8b 00                	mov    (%eax),%eax
551145:	8b 40 0c             	mov    0xc(%eax),%eax
551148:	89 46 0c             	mov    %eax,0xc(%esi)
55114b:	e8 90 02 fd ff       	call   0x5213e0
551150:	8b d8                	mov    %eax,%ebx
551152:	83 c4 0c             	add    $0xc,%esp
551155:	85 db                	test   %ebx,%ebx
551157:	74 27                	je     0x551180
551159:	6a 34                	push   $0x34
55115b:	6a 00                	push   $0x0
55115d:	53                   	push   %ebx
55115e:	e8 9d 28 09 00       	call   0x5e3a00
551163:	83 c4 0c             	add    $0xc,%esp
551166:	c6 03 ad             	movb   $0xad,(%ebx)
551169:	83 c8 ff             	or     $0xffffffff,%eax
55116c:	66 89 43 22          	mov    %ax,0x22(%ebx)
551170:	8d 43 34             	lea    0x34(%ebx),%eax
551173:	89 43 08             	mov    %eax,0x8(%ebx)
551176:	c6 00 00             	movb   $0x0,(%eax)
551179:	c7 43 18 01 00 00 00 	movl   $0x1,0x18(%ebx)
551180:	89 5e 10             	mov    %ebx,0x10(%esi)
551183:	85 db                	test   %ebx,%ebx
551185:	74 31                	je     0x5511b8
551187:	8b 8d 48 ff ff ff    	mov    -0xb8(%ebp),%ecx
55118d:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
551193:	83 c1 02             	add    $0x2,%ecx
551196:	03 c1                	add    %ecx,%eax
551198:	89 43 1c             	mov    %eax,0x1c(%ebx)
55119b:	8b 85 2c ff ff ff    	mov    -0xd4(%ebp),%eax
5511a1:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
5511a7:	6a 00                	push   $0x0
5511a9:	ff 70 18             	push   0x18(%eax)
5511ac:	56                   	push   %esi
5511ad:	53                   	push   %ebx
5511ae:	e8 fd 58 fd ff       	call   0x526ab0
5511b3:	83 c4 10             	add    $0x10,%esp
5511b6:	eb 06                	jmp    0x5511be
5511b8:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
5511be:	56                   	push   %esi
5511bf:	ff b5 f4 fe ff ff    	push   -0x10c(%ebp)
5511c5:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
5511cc:	e8 df 55 fd ff       	call   0x5267b0
5511d1:	83 c4 08             	add    $0x8,%esp
5511d4:	8b b5 2c ff ff ff    	mov    -0xd4(%ebp),%esi
5511da:	8b 8d 3c ff ff ff    	mov    -0xc4(%ebp),%ecx
5511e0:	8b 95 44 ff ff ff    	mov    -0xbc(%ebp),%edx
5511e6:	83 e9 01             	sub    $0x1,%ecx
5511e9:	89 8d 3c ff ff ff    	mov    %ecx,-0xc4(%ebp)
5511ef:	0f 89 ab fd ff ff    	jns    0x550fa0
5511f5:	e9 1e fa ff ff       	jmp    0x550c18
5511fa:	f6 c2 05             	test   $0x5,%dl
5511fd:	0f 95 c1             	setne  %cl
551200:	0f ba e2 08          	bt     $0x8,%edx
551204:	0f 92 c0             	setb   %al
551207:	84 c8                	test   %cl,%al
551209:	0f 84 d0 00 00 00    	je     0x5512df
55120f:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
551215:	8b 40 30             	mov    0x30(%eax),%eax
551218:	8b 00                	mov    (%eax),%eax
55121a:	ff 43 2c             	incl   0x2c(%ebx)
55121d:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
551220:	51                   	push   %ecx
551221:	ff b5 30 ff ff ff    	push   -0xd0(%ebp)
551227:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
55122d:	6a 00                	push   $0x0
55122f:	56                   	push   %esi
551230:	50                   	push   %eax
551231:	53                   	push   %ebx
551232:	89 8d 5c ff ff ff    	mov    %ecx,-0xa4(%ebp)
551238:	e8 f3 87 fa ff       	call   0x4f9a30
55123d:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
551243:	8b d0                	mov    %eax,%edx
551245:	83 c4 18             	add    $0x18,%esp
551248:	3b d1                	cmp    %ecx,%edx
55124a:	74 18                	je     0x551264
55124c:	85 c9                	test   %ecx,%ecx
55124e:	74 14                	je     0x551264
551250:	8a 43 13             	mov    0x13(%ebx),%al
551253:	3c 08                	cmp    $0x8,%al
551255:	73 0d                	jae    0x551264
551257:	0f b6 c0             	movzbl %al,%eax
55125a:	89 8c 83 94 00 00 00 	mov    %ecx,0x94(%ebx,%eax,4)
551261:	fe 43 13             	incb   0x13(%ebx)
551264:	8b 4f 6c             	mov    0x6c(%edi),%ecx
551267:	8b 5e 10             	mov    0x10(%esi),%ebx
55126a:	39 4f 70             	cmp    %ecx,0x70(%edi)
55126d:	7f 15                	jg     0x551284
55126f:	52                   	push   %edx
551270:	53                   	push   %ebx
551271:	ff b5 40 ff ff ff    	push   -0xc0(%ebp)
551277:	6a 1f                	push   $0x1f
551279:	57                   	push   %edi
55127a:	e8 81 52 fb ff       	call   0x506500
55127f:	83 c4 14             	add    $0x14,%esp
551282:	eb 33                	jmp    0x5512b7
551284:	8d 41 01             	lea    0x1(%ecx),%eax
551287:	89 47 6c             	mov    %eax,0x6c(%edi)
55128a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
55128d:	8b 47 68             	mov    0x68(%edi),%eax
551290:	8b bd 40 ff ff ff    	mov    -0xc0(%ebp),%edi
551296:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
55129a:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
5512a0:	c7 04 88 1f 00 00 00 	movl   $0x1f,(%eax,%ecx,4)
5512a7:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
5512ab:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
5512af:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5512b6:	00
5512b7:	8b 95 58 ff ff ff    	mov    -0xa8(%ebp),%edx
5512bd:	c6 46 35 ad          	movb   $0xad,0x35(%esi)
5512c1:	8b 4a 28             	mov    0x28(%edx),%ecx
5512c4:	8b 42 2c             	mov    0x2c(%edx),%eax
5512c7:	23 4e 50             	and    0x50(%esi),%ecx
5512ca:	23 46 54             	and    0x54(%esi),%eax
5512cd:	0b c8                	or     %eax,%ecx
5512cf:	0f 85 43 f9 ff ff    	jne    0x550c18
5512d5:	66 83 4a 0a 04       	orw    $0x4,0xa(%edx)
5512da:	e9 39 f9 ff ff       	jmp    0x550c18
5512df:	8b c2                	mov    %edx,%eax
5512e1:	25 02 01 00 00       	and    $0x102,%eax
5512e6:	3d 02 01 00 00       	cmp    $0x102,%eax
5512eb:	0f 85 c5 02 00 00    	jne    0x5515b6
5512f1:	33 c9                	xor    %ecx,%ecx
5512f3:	c7 85 34 ff ff ff ad 	movl   $0xad,-0xcc(%ebp)
5512fa:	00 00 00
5512fd:	c7 85 04 ff ff ff 00 	movl   $0x0,-0xfc(%ebp)
551304:	00 00 00
551307:	c7 85 5c ff ff ff 00 	movl   $0x0,-0xa4(%ebp)
55130e:	00 00 00
551311:	c7 85 50 ff ff ff 00 	movl   $0x0,-0xb0(%ebp)
551318:	00 00 00
55131b:	89 8d 58 ff ff ff    	mov    %ecx,-0xa8(%ebp)
551321:	f6 c2 20             	test   $0x20,%dl
551324:	74 1b                	je     0x551341
551326:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
55132c:	c7 85 5c ff ff ff 01 	movl   $0x1,-0xa4(%ebp)
551333:	00 00 00
551336:	8b 40 30             	mov    0x30(%eax),%eax
551339:	8b 08                	mov    (%eax),%ecx
55133b:	89 8d 58 ff ff ff    	mov    %ecx,-0xa8(%ebp)
551341:	f6 c2 10             	test   $0x10,%dl
551344:	74 1a                	je     0x551360
551346:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
55134c:	8b 95 5c ff ff ff    	mov    -0xa4(%ebp),%edx
551352:	8b 40 30             	mov    0x30(%eax),%eax
551355:	8b 14 90             	mov    (%eax,%edx,4),%edx
551358:	89 95 50 ff ff ff    	mov    %edx,-0xb0(%ebp)
55135e:	eb 02                	jmp    0x551362
551360:	33 d2                	xor    %edx,%edx
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