550e95:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
550e98:	8b 47 68             	mov    0x68(%edi),%eax
550e9b:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
550e9f:	8b 9d 58 ff ff ff    	mov    -0xa8(%ebp),%ebx
550ea5:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
550ea9:	8b 9d 48 ff ff ff    	mov    -0xb8(%ebp),%ebx
550eaf:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
550eb3:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
550eb9:	c7 04 88 09 00 00 00 	movl   $0x9,(%eax,%ecx,4)
550ec0:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
550ec7:	00
550ec8:	8b 0f                	mov    (%edi),%ecx
550eca:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
550ece:	74 18                	je     0x550ee8
550ed0:	83 fe f4             	cmp    $0xfffffff4,%esi
550ed3:	74 74                	je     0x550f49
550ed5:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
550edb:	50                   	push   %eax
550edc:	56                   	push   %esi
550edd:	51                   	push   %ecx
550ede:	e8 cd 2d fb ff       	call   0x503cb0
550ee3:	83 c4 0c             	add    $0xc,%esp
550ee6:	eb 61                	jmp    0x550f49
550ee8:	85 d2                	test   %edx,%edx
550eea:	79 04                	jns    0x550ef0
550eec:	8b 57 6c             	mov    0x6c(%edi),%edx
550eef:	4a                   	dec    %edx
550ef0:	8b 47 68             	mov    0x68(%edi),%eax
550ef3:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
550ef6:	8d 14 88             	lea    (%eax,%ecx,4),%edx
550ef9:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
550eff:	85 c0                	test   %eax,%eax
550f01:	79 34                	jns    0x550f37
550f03:	80 7a 01 00          	cmpb   $0x0,0x1(%edx)
550f07:	75 2e                	jne    0x550f37
550f09:	83 f8 fd             	cmp    $0xfffffffd,%eax
550f0c:	75 0f                	jne    0x550f1d
550f0e:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
550f14:	89 42 10             	mov    %eax,0x10(%edx)
550f17:	c6 42 01 fd          	movb   $0xfd,0x1(%edx)
550f1b:	eb 2c                	jmp    0x550f49
550f1d:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
550f23:	85 c9                	test   %ecx,%ecx
550f25:	74 22                	je     0x550f49
550f27:	89 4a 10             	mov    %ecx,0x10(%edx)
550f2a:	88 42 01             	mov    %al,0x1(%edx)
550f2d:	83 f8 f4             	cmp    $0xfffffff4,%eax
550f30:	75 17                	jne    0x550f49
550f32:	ff 41 0c             	incl   0xc(%ecx)
550f35:	eb 12                	jmp    0x550f49
550f37:	50                   	push   %eax
550f38:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
550f3e:	50                   	push   %eax
550f3f:	52                   	push   %edx
550f40:	57                   	push   %edi
550f41:	e8 fa 8c 00 00       	call   0x559c40
550f46:	83 c4 10             	add    $0x10,%esp
550f49:	8b b5 2c ff ff ff    	mov    -0xd4(%ebp),%esi
550f4f:	8b 95 44 ff ff ff    	mov    -0xbc(%ebp),%edx
550f55:	8b 8d 1c ff ff ff    	mov    -0xe4(%ebp),%ecx
550f5b:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
550f61:	c6 42 1c 00          	movb   $0x0,0x1c(%edx)
550f65:	89 46 38             	mov    %eax,0x38(%esi)
550f68:	b8 3d 00 00 00       	mov    $0x3d,%eax
550f6d:	80 79 2e 00          	cmpb   $0x0,0x2e(%ecx)
550f71:	b9 ad 00 00 00       	mov    $0xad,%ecx
550f76:	0f 45 c1             	cmovne %ecx,%eax
550f79:	8b 8d 54 ff ff ff    	mov    -0xac(%ebp),%ecx
550f7f:	88 46 35             	mov    %al,0x35(%esi)
550f82:	83 e9 01             	sub    $0x1,%ecx
550f85:	8b 47 6c             	mov    0x6c(%edi),%eax
550f88:	89 46 3c             	mov    %eax,0x3c(%esi)
550f8b:	8b 46 40             	mov    0x40(%esi),%eax
550f8e:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
550f94:	89 8d 3c ff ff ff    	mov    %ecx,-0xc4(%ebp)
550f9a:	0f 88 78 fc ff ff    	js     0x550c18
550fa0:	8b 42 30             	mov    0x30(%edx),%eax
550fa3:	8b 04 88             	mov    (%eax,%ecx,4),%eax
550fa6:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
550fac:	66 8b 50 0c          	mov    0xc(%eax),%dx
550fb0:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
550fb6:	66 83 e2 01          	and    $0x1,%dx
550fba:	8d 40 ff             	lea    -0x1(%eax),%eax
550fbd:	0f 44 85 50 ff ff ff 	cmove  -0xb0(%ebp),%eax
550fc4:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
550fca:	83 f9 10             	cmp    $0x10,%ecx
550fcd:	7d 2c                	jge    0x550ffb
550fcf:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
550fd5:	66 8b 40 1e          	mov    0x1e(%eax),%ax
550fd9:	66 d3 e8             	shr    %cl,%ax
550fdc:	a8 01                	test   $0x1,%al
550fde:	74 15                	je     0x550ff5
550fe0:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
550fe6:	50                   	push   %eax
550fe7:	56                   	push   %esi
550fe8:	e8 13 cf fa ff       	call   0x4fdf00
550fed:	83 c4 08             	add    $0x8,%esp
550ff0:	e9 e5 01 00 00       	jmp    0x5511da
550ff5:	8b 8d 3c ff ff ff    	mov    -0xc4(%ebp),%ecx
550ffb:	66 85 d2             	test   %dx,%dx
550ffe:	0f 84 dc 01 00 00    	je     0x5511e0
551004:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
55100a:	8b 00                	mov    (%eax),%eax
55100c:	8b 48 0c             	mov    0xc(%eax),%ecx
55100f:	8a 01                	mov    (%ecx),%al
551011:	3c ad                	cmp    $0xad,%al
551013:	75 03                	jne    0x551018
551015:	8a 41 02             	mov    0x2(%ecx),%al
551018:	3c ae                	cmp    $0xae,%al
55101a:	75 05                	jne    0x551021
55101c:	8b 41 14             	mov    0x14(%ecx),%eax
55101f:	eb 0a                	jmp    0x55102b
551021:	3c 88                	cmp    $0x88,%al
551023:	75 11                	jne    0x551036
551025:	8b 41 14             	mov    0x14(%ecx),%eax
551028:	8b 40 1c             	mov    0x1c(%eax),%eax
55102b:	8b 00                	mov    (%eax),%eax
55102d:	83 f8 01             	cmp    $0x1,%eax
551030:	0f 85 a4 01 00 00    	jne    0x5511da
551036:	8b 85 f4 fe ff ff    	mov    -0x10c(%ebp),%eax
55103c:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
551040:	0f 85 9f 00 00 00    	jne    0x5510e5
551046:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
55104c:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
55104f:	8b 46 44             	mov    0x44(%esi),%eax
551052:	8b 4c 88 04          	mov    0x4(%eax,%ecx,4),%ecx
551056:	85 c9                	test   %ecx,%ecx
551058:	79 04                	jns    0x55105e
55105a:	8b 4f 6c             	mov    0x6c(%edi),%ecx
55105d:	49                   	dec    %ecx
55105e:	8b 07                	mov    (%edi),%eax
551060:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
551064:	74 07                	je     0x55106d
551066:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
55106b:	eb 09                	jmp    0x551076
55106d:	8b 47 68             	mov    0x68(%edi),%eax
551070:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
551073:	8d 04 88             	lea    (%eax,%ecx,4),%eax
551076:	8b 48 04             	mov    0x4(%eax),%ecx
551079:	8b 50 0c             	mov    0xc(%eax),%edx
55107c:	8b 70 08             	mov    0x8(%eax),%esi
55107f:	0f b6 00             	movzbl (%eax),%eax
551082:	89 8d 5c ff ff ff    	mov    %ecx,-0xa4(%ebp)
551088:	8b 4f 6c             	mov    0x6c(%edi),%ecx
55108b:	89 45 98             	mov    %eax,-0x68(%ebp)
55108e:	39 4f 70             	cmp    %ecx,0x70(%edi)
551091:	7f 14                	jg     0x5510a7
551093:	52                   	push   %edx
551094:	56                   	push   %esi
551095:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
55109b:	50                   	push   %eax
55109c:	57                   	push   %edi
55109d:	e8 5e 54 fb ff       	call   0x506500
5510a2:	83 c4 14             	add    $0x14,%esp
5510a5:	eb 3e                	jmp    0x5510e5
5510a7:	8b 5d 98             	mov    -0x68(%ebp),%ebx
5510aa:	8d 41 01             	lea    0x1(%ecx),%eax
5510ad:	89 47 6c             	mov    %eax,0x6c(%edi)
5510b0:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5510b3:	8b 47 68             	mov    0x68(%edi),%eax
5510b6:	88 1c 88             	mov    %bl,(%eax,%ecx,4)
5510b9:	33 db                	xor    %ebx,%ebx
5510bb:	66 89 5c 88 02       	mov    %bx,0x2(%eax,%ecx,4)
5510c0:	8b 9d 5c ff ff ff    	mov    -0xa4(%ebp),%ebx
5510c6:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
5510ca:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
5510d0:	89 74 88 08          	mov    %esi,0x8(%eax,%ecx,4)
5510d4:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
5510d8:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5510df:	00
5510e0:	c6 44 88 01 00       	movb   $0x0,0x1(%eax,%ecx,4)
5510e5:	6a 00                	push   $0x0
5510e7:	6a 34                	push   $0x34
5510e9:	ff 33                	push   (%ebx)
5510eb:	e8 f0 02 fd ff       	call   0x5213e0
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