54bfb8:	c1 eb 12             	shr    $0x12,%ebx
54bfbb:	80 e1 3f             	and    $0x3f,%cl
54bfbe:	80 e3 03             	and    $0x3,%bl
54bfc1:	32 ca                	xor    %dl,%cl
54bfc3:	80 eb 28             	sub    $0x28,%bl
54bfc6:	88 08                	mov    %cl,(%eax)
54bfc8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
54bfcb:	88 58 01             	mov    %bl,0x1(%eax)
54bfce:	88 48 02             	mov    %cl,0x2(%eax)
54bfd1:	83 c0 03             	add    $0x3,%eax
54bfd4:	c1 e9 08             	shr    $0x8,%ecx
54bfd7:	80 e1 03             	and    $0x3,%cl
54bfda:	80 e9 24             	sub    $0x24,%cl
54bfdd:	88 08                	mov    %cl,(%eax)
54bfdf:	40                   	inc    %eax
54bfe0:	3b f7                	cmp    %edi,%esi
54bfe2:	0f 82 38 ff ff ff    	jb     0x54bf20
54bfe8:	e9 c6 00 00 00       	jmp    0x54c0b3
54bfed:	3b f7                	cmp    %edi,%esi
54bfef:	0f 83 c4 00 00 00    	jae    0x54c0b9
54bff5:	0f b6 1e             	movzbl (%esi),%ebx
54bff8:	46                   	inc    %esi
54bff9:	81 fb c0 00 00 00    	cmp    $0xc0,%ebx
54bfff:	72 5f                	jb     0x54c060
54c001:	0f b6 9b 78 2b 6b 00 	movzbl 0x6b2b78(%ebx),%ebx
54c008:	3b f7                	cmp    %edi,%esi
54c00a:	74 20                	je     0x54c02c
54c00c:	0f 1f 40 00          	nopl   0x0(%eax)
54c010:	8a 16                	mov    (%esi),%dl
54c012:	8a ca                	mov    %dl,%cl
54c014:	80 e1 c0             	and    $0xc0,%cl
54c017:	80 f9 80             	cmp    $0x80,%cl
54c01a:	75 10                	jne    0x54c02c
54c01c:	0f b6 ca             	movzbl %dl,%ecx
54c01f:	46                   	inc    %esi
54c020:	83 e1 3f             	and    $0x3f,%ecx
54c023:	c1 e3 06             	shl    $0x6,%ebx
54c026:	03 d9                	add    %ecx,%ebx
54c028:	3b f7                	cmp    %edi,%esi
54c02a:	75 e4                	jne    0x54c010
54c02c:	81 fb 80 00 00 00    	cmp    $0x80,%ebx
54c032:	72 1d                	jb     0x54c051
54c034:	8b cb                	mov    %ebx,%ecx
54c036:	81 e1 00 f8 ff ff    	and    $0xfffff800,%ecx
54c03c:	81 f9 00 d8 00 00    	cmp    $0xd800,%ecx
54c042:	74 0d                	je     0x54c051
54c044:	8b cb                	mov    %ebx,%ecx
54c046:	83 e1 fe             	and    $0xfffffffe,%ecx
54c049:	81 f9 fe ff 00 00    	cmp    $0xfffe,%ecx
54c04f:	75 0f                	jne    0x54c060
54c051:	bb fd ff 00 00       	mov    $0xfffd,%ebx
54c056:	8b cb                	mov    %ebx,%ecx
54c058:	c1 e9 08             	shr    $0x8,%ecx
54c05b:	88 08                	mov    %cl,(%eax)
54c05d:	40                   	inc    %eax
54c05e:	eb 48                	jmp    0x54c0a8
54c060:	81 fb ff ff 00 00    	cmp    $0xffff,%ebx
54c066:	77 0a                	ja     0x54c072
54c068:	8b cb                	mov    %ebx,%ecx
54c06a:	c1 e9 08             	shr    $0x8,%ecx
54c06d:	88 08                	mov    %cl,(%eax)
54c06f:	40                   	inc    %eax
54c070:	eb 36                	jmp    0x54c0a8
54c072:	8d 93 00 00 ff ff    	lea    -0x10000(%ebx),%edx
54c078:	8b ca                	mov    %edx,%ecx
54c07a:	c1 ea 0a             	shr    $0xa,%edx
54c07d:	c1 e9 12             	shr    $0x12,%ecx
54c080:	80 e1 03             	and    $0x3,%cl
54c083:	80 e9 28             	sub    $0x28,%cl
54c086:	88 08                	mov    %cl,(%eax)
54c088:	8b cb                	mov    %ebx,%ecx
54c08a:	c1 e9 0a             	shr    $0xa,%ecx
54c08d:	32 ca                	xor    %dl,%cl
54c08f:	80 e1 3f             	and    $0x3f,%cl
54c092:	32 ca                	xor    %dl,%cl
54c094:	88 48 01             	mov    %cl,0x1(%eax)
54c097:	8b cb                	mov    %ebx,%ecx
54c099:	c1 e9 08             	shr    $0x8,%ecx
54c09c:	80 e1 03             	and    $0x3,%cl
54c09f:	80 e9 24             	sub    $0x24,%cl
54c0a2:	88 48 02             	mov    %cl,0x2(%eax)
54c0a5:	83 c0 03             	add    $0x3,%eax
54c0a8:	88 18                	mov    %bl,(%eax)
54c0aa:	40                   	inc    %eax
54c0ab:	3b f7                	cmp    %edi,%esi
54c0ad:	0f 82 42 ff ff ff    	jb     0x54bff5
54c0b3:	8b 55 fc             	mov    -0x4(%ebp),%edx
54c0b6:	8b 5d 08             	mov    0x8(%ebp),%ebx
54c0b9:	8b c8                	mov    %eax,%ecx
54c0bb:	2b ca                	sub    %edx,%ecx
54c0bd:	89 4b 0c             	mov    %ecx,0xc(%ebx)
54c0c0:	c6 00 00             	movb   $0x0,(%eax)
54c0c3:	40                   	inc    %eax
54c0c4:	e9 d0 01 00 00       	jmp    0x54c299
54c0c9:	80 f9 02             	cmp    $0x2,%cl
54c0cc:	0f 85 df 00 00 00    	jne    0x54c1b1
54c0d2:	3b f7                	cmp    %edi,%esi
54c0d4:	0f 83 b8 01 00 00    	jae    0x54c292
54c0da:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
54c0e0:	0f b6 4e 01          	movzbl 0x1(%esi),%ecx
54c0e4:	0f b6 1e             	movzbl (%esi),%ebx
54c0e7:	83 c6 02             	add    $0x2,%esi
54c0ea:	c1 e1 08             	shl    $0x8,%ecx
54c0ed:	03 d9                	add    %ecx,%ebx
54c0ef:	8d 8b 00 28 ff ff    	lea    -0xd800(%ebx),%ecx
54c0f5:	81 f9 ff 07 00 00    	cmp    $0x7ff,%ecx
54c0fb:	77 2e                	ja     0x54c12b
54c0fd:	3b f7                	cmp    %edi,%esi
54c0ff:	73 2a                	jae    0x54c12b
54c101:	0f b6 4e 01          	movzbl 0x1(%esi),%ecx
54c105:	0f b6 16             	movzbl (%esi),%edx
54c108:	83 c6 02             	add    $0x2,%esi
54c10b:	c1 e1 08             	shl    $0x8,%ecx
54c10e:	03 d1                	add    %ecx,%edx
54c110:	8b cb                	mov    %ebx,%ecx
54c112:	83 e3 3f             	and    $0x3f,%ebx
54c115:	81 e1 c0 03 00 00    	and    $0x3c0,%ecx
54c11b:	83 c3 40             	add    $0x40,%ebx
54c11e:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
54c124:	03 d9                	add    %ecx,%ebx
54c126:	c1 e3 0a             	shl    $0xa,%ebx
54c129:	03 da                	add    %edx,%ebx
54c12b:	81 fb 80 00 00 00    	cmp    $0x80,%ebx
54c131:	72 6e                	jb     0x54c1a1
54c133:	8b cb                	mov    %ebx,%ecx
54c135:	81 fb 00 08 00 00    	cmp    $0x800,%ebx
54c13b:	73 0e                	jae    0x54c14b
54c13d:	c1 e9 06             	shr    $0x6,%ecx
54c140:	80 e1 1f             	and    $0x1f,%cl
54c143:	80 e9 40             	sub    $0x40,%cl
54c146:	88 08                	mov    %cl,(%eax)
54c148:	40                   	inc    %eax
54c149:	eb 50                	jmp    0x54c19b
54c14b:	81 fb 00 00 01 00    	cmp    $0x10000,%ebx
54c151:	73 1e                	jae    0x54c171
54c153:	c1 e9 0c             	shr    $0xc,%ecx
54c156:	80 e1 0f             	and    $0xf,%cl
54c159:	80 e9 20             	sub    $0x20,%cl
54c15c:	88 08                	mov    %cl,(%eax)
54c15e:	8b cb                	mov    %ebx,%ecx
54c160:	c1 e9 06             	shr    $0x6,%ecx
54c163:	80 e1 3f             	and    $0x3f,%cl
54c166:	80 e9 80             	sub    $0x80,%cl
54c169:	88 48 01             	mov    %cl,0x1(%eax)
54c16c:	83 c0 02             	add    $0x2,%eax
54c16f:	eb 2a                	jmp    0x54c19b
54c171:	c1 e9 12             	shr    $0x12,%ecx
54c174:	80 e1 07             	and    $0x7,%cl
54c177:	80 e9 10             	sub    $0x10,%cl
54c17a:	88 08                	mov    %cl,(%eax)
54c17c:	8b cb                	mov    %ebx,%ecx
54c17e:	c1 e9 0c             	shr    $0xc,%ecx
54c181:	80 e1 3f             	and    $0x3f,%cl
54c184:	80 e9 80             	sub    $0x80,%cl
54c187:	88 48 01             	mov    %cl,0x1(%eax)
54c18a:	8b cb                	mov    %ebx,%ecx
54c18c:	c1 e9 06             	shr    $0x6,%ecx
54c18f:	80 e1 3f             	and    $0x3f,%cl
54c192:	80 e9 80             	sub    $0x80,%cl
54c195:	88 48 02             	mov    %cl,0x2(%eax)
54c198:	83 c0 03             	add    $0x3,%eax
54c19b:	80 e3 3f             	and    $0x3f,%bl
54c19e:	80 eb 80             	sub    $0x80,%bl
54c1a1:	88 18                	mov    %bl,(%eax)
54c1a3:	40                   	inc    %eax
54c1a4:	3b f7                	cmp    %edi,%esi
54c1a6:	0f 82 34 ff ff ff    	jb     0x54c0e0
54c1ac:	e9 db 00 00 00       	jmp    0x54c28c
54c1b1:	3b f7                	cmp    %edi,%esi
54c1b3:	0f 83 d9 00 00 00    	jae    0x54c292
54c1b9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
54c1c0:	0f b6 1e             	movzbl (%esi),%ebx
54c1c3:	0f b6 4e 01          	movzbl 0x1(%esi),%ecx
54c1c7:	83 c6 02             	add    $0x2,%esi
54c1ca:	c1 e3 08             	shl    $0x8,%ebx
54c1cd:	03 d9                	add    %ecx,%ebx
54c1cf:	8d 8b 00 28 ff ff    	lea    -0xd800(%ebx),%ecx
54c1d5:	81 f9 ff 07 00 00    	cmp    $0x7ff,%ecx
54c1db:	77 2e                	ja     0x54c20b
54c1dd:	3b f7                	cmp    %edi,%esi
54c1df:	73 2a                	jae    0x54c20b
54c1e1:	0f b6 16             	movzbl (%esi),%edx
54c1e4:	0f b6 4e 01          	movzbl 0x1(%esi),%ecx
54c1e8:	83 c6 02             	add    $0x2,%esi
54c1eb:	c1 e2 08             	shl    $0x8,%edx
54c1ee:	03 d1                	add    %ecx,%edx
54c1f0:	8b cb                	mov    %ebx,%ecx
54c1f2:	83 e3 3f             	and    $0x3f,%ebx
54c1f5:	81 e1 c0 03 00 00    	and    $0x3c0,%ecx
54c1fb:	83 c3 40             	add    $0x40,%ebx
54c1fe:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
54c204:	03 d9                	add    %ecx,%ebx
54c206:	c1 e3 0a             	shl    $0xa,%ebx
54c209:	03 da                	add    %edx,%ebx
54c20b:	81 fb 80 00 00 00    	cmp    $0x80,%ebx
54c211:	72 6e                	jb     0x54c281
54c213:	8b cb                	mov    %ebx,%ecx
54c215:	81 fb 00 08 00 00    	cmp    $0x800,%ebx
54c21b:	73 0e                	jae    0x54c22b
54c21d:	c1 e9 06             	shr    $0x6,%ecx
54c220:	80 e1 1f             	and    $0x1f,%cl
54c223:	80 e9 40             	sub    $0x40,%cl
54c226:	88 08                	mov    %cl,(%eax)
54c228:	40                   	inc    %eax
54c229:	eb 50                	jmp    0x54c27b
54c22b:	81 fb 00 00 01 00    	cmp    $0x10000,%ebx
54c231:	73 1e                	jae    0x54c251
54c233:	c1 e9 0c             	shr    $0xc,%ecx
54c236:	80 e1 0f             	and    $0xf,%cl
54c239:	80 e9 20             	sub    $0x20,%cl
54c23c:	88 08                	mov    %cl,(%eax)
54c23e:	8b cb                	mov    %ebx,%ecx
54c240:	c1 e9 06             	shr    $0x6,%ecx
54c243:	80 e1 3f             	and    $0x3f,%cl
54c246:	80 e9 80             	sub    $0x80,%cl
54c249:	88 48 01             	mov    %cl,0x1(%eax)
54c24c:	83 c0 02             	add    $0x2,%eax
54c24f:	eb 2a                	jmp    0x54c27b
54c251:	c1 e9 12             	shr    $0x12,%ecx
54c254:	80 e1 07             	and    $0x7,%cl
54c257:	80 e9 10             	sub    $0x10,%cl
54c25a:	88 08                	mov    %cl,(%eax)
54c25c:	8b cb                	mov    %ebx,%ecx
54c25e:	c1 e9 0c             	shr    $0xc,%ecx
54c261:	80 e1 3f             	and    $0x3f,%cl
54c264:	80 e9 80             	sub    $0x80,%cl
54c267:	88 48 01             	mov    %cl,0x1(%eax)
54c26a:	8b cb                	mov    %ebx,%ecx
54c26c:	c1 e9 06             	shr    $0x6,%ecx
54c26f:	80 e1 3f             	and    $0x3f,%cl
54c272:	80 e9 80             	sub    $0x80,%cl
54c275:	88 48 02             	mov    %cl,0x2(%eax)
54c278:	83 c0 03             	add    $0x3,%eax
54c27b:	80 e3 3f             	and    $0x3f,%bl
54c27e:	80 eb 80             	sub    $0x80,%bl
54c281:	88 18                	mov    %bl,(%eax)
54c283:	40                   	inc    %eax
54c284:	3b f7                	cmp    %edi,%esi
54c286:	0f 82 34 ff ff ff    	jb     0x54c1c0
54c28c:	8b 55 fc             	mov    -0x4(%ebp),%edx
54c28f:	8b 5d 08             	mov    0x8(%ebp),%ebx
54c292:	8b c8                	mov    %eax,%ecx
54c294:	2b ca                	sub    %edx,%ecx
54c296:	89 4b 0c             	mov    %ecx,0xc(%ebx)
54c299:	c6 00 00             	movb   $0x0,(%eax)
54c29c:	0f b7 43 08          	movzwl 0x8(%ebx),%eax
54c2a0:	8b f0                	mov    %eax,%esi
54c2a2:	a9 00 24 00 00       	test   $0x2400,%eax
54c2a7:	75 06                	jne    0x54c2af
54c2a9:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
54c2ad:	74 0c                	je     0x54c2bb
54c2af:	53                   	push   %ebx
54c2b0:	e8 5b eb 00 00       	call   0x55ae10
54c2b5:	8b 55 fc             	mov    -0x4(%ebp),%edx
54c2b8:	83 c4 04             	add    $0x4,%esp
54c2bb:	8a 45 0c             	mov    0xc(%ebp),%al
54c2be:	81 e6 3f 82 00 00    	and    $0x823f,%esi
54c2c4:	81 ce 02 02 00 00    	or     $0x202,%esi
54c2ca:	88 43 0a             	mov    %al,0xa(%ebx)
54c2cd:	8b 43 20             	mov    0x20(%ebx),%eax
54c2d0:	66 89 73 08          	mov    %si,0x8(%ebx)
54c2d4:	89 53 10             	mov    %edx,0x10(%ebx)
54c2d7:	89 53 14             	mov    %edx,0x14(%ebx)
54c2da:	85 c0                	test   %eax,%eax
54c2dc:	74 3c                	je     0x54c31a
54c2de:	3b 90 4c 01 00 00    	cmp    0x14c(%eax),%edx
54c2e4:	73 34                	jae    0x54c31a
54c2e6:	3b 90 44 01 00 00    	cmp    0x144(%eax),%edx
54c2ec:	72 11                	jb     0x54c2ff
54c2ee:	5f                   	pop    %edi
54c2ef:	b8 80 00 00 00       	mov    $0x80,%eax
54c2f4:	89 43 18             	mov    %eax,0x18(%ebx)
54c2f7:	33 c0                	xor    %eax,%eax
54c2f9:	5e                   	pop    %esi
54c2fa:	5b                   	pop    %ebx
54c2fb:	8b e5                	mov    %ebp,%esp
54c2fd:	5d                   	pop    %ebp
54c2fe:	c3                   	ret
54c2ff:	3b 90 48 01 00 00    	cmp    0x148(%eax),%edx
54c305:	72 13                	jb     0x54c31a
54c307:	0f b7 80 1e 01 00 00 	movzwl 0x11e(%eax),%eax
54c30e:	5f                   	pop    %edi
54c30f:	89 43 18             	mov    %eax,0x18(%ebx)
54c312:	33 c0                	xor    %eax,%eax
54c314:	5e                   	pop    %esi
54c315:	5b                   	pop    %ebx
54c316:	8b e5                	mov    %ebp,%esp
54c318:	5d                   	pop    %ebp
54c319:	c3                   	ret
54c31a:	52                   	push   %edx
54c31b:	ff 15 3c 18 72 00    	call   *0x72183c
54c321:	83 c4 04             	add    $0x4,%esp
54c324:	89 43 18             	mov    %eax,0x18(%ebx)
54c327:	5f                   	pop    %edi
54c328:	5e                   	pop    %esi
54c329:	33 c0                	xor    %eax,%eax
54c32b:	5b                   	pop    %ebx
54c32c:	8b e5                	mov    %ebp,%esp
54c32e:	5d                   	pop    %ebp
54c32f:	c3                   	ret
54c330:	55                   	push   %ebp
54c331:	8b ec                	mov    %esp,%ebp
54c333:	83 ec 10             	sub    $0x10,%esp
54c336:	8b 4d 10             	mov    0x10(%ebp),%ecx
54c339:	33 d2                	xor    %edx,%edx
54c33b:	53                   	push   %ebx
54c33c:	56                   	push   %esi
54c33d:	8b 75 08             	mov    0x8(%ebp),%esi
54c340:	8a 01                	mov    (%ecx),%al
54c342:	89 55 fc             	mov    %edx,-0x4(%ebp)
54c345:	57                   	push   %edi
54c346:	84 c0                	test   %al,%al
54c348:	0f 84 21 01 00 00    	je     0x54c46f
54c34e:	8b 7d 0c             	mov    0xc(%ebp),%edi
54c351:	8d 5d 10             	lea    0x10(%ebp),%ebx
54c354:	2b cf                	sub    %edi,%ecx
54c356:	89 4d f0             	mov    %ecx,-0x10(%ebp)
54c359:	8d 4a 48             	lea    0x48(%edx),%ecx
54c35c:	0f 1f 40 00          	nopl   0x0(%eax)
54c360:	3c 73                	cmp    $0x73,%al
54c362:	0f 85 99 00 00 00    	jne    0x54c401
54c368:	8b 56 6c             	mov    0x6c(%esi),%edx
54c36b:	83 c3 04             	add    $0x4,%ebx
54c36e:	b8 73 00 00 00       	mov    $0x73,%eax
54c373:	89 5d f4             	mov    %ebx,-0xc(%ebp)
54c376:	83 3b 00             	cmpl   $0x0,(%ebx)
54c379:	0f 44 c1             	cmove  %ecx,%eax
54c37c:	89 45 f8             	mov    %eax,-0x8(%ebp)
54c37f:	39 56 70             	cmp    %edx,0x70(%esi)
54c382:	7f 13                	jg     0x54c397
54c384:	6a 00                	push   $0x0
54c386:	57                   	push   %edi
54c387:	6a 00                	push   $0x0
54c389:	50                   	push   %eax
54c38a:	56                   	push   %esi
54c38b:	e8 70 a1 fb ff       	call   0x506500
54c390:	83 c4 14             	add    $0x14,%esp
54c393:	8b d0                	mov    %eax,%edx
54c395:	eb 30                	jmp    0x54c3c7
54c397:	8b 5d f8             	mov    -0x8(%ebp),%ebx
54c39a:	8d 42 01             	lea    0x1(%edx),%eax
54c39d:	89 46 6c             	mov    %eax,0x6c(%esi)
54c3a0:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
54c3a3:	8b 46 68             	mov    0x68(%esi),%eax
54c3a6:	88 1c 88             	mov    %bl,(%eax,%ecx,4)
54c3a9:	33 db                	xor    %ebx,%ebx
54c3ab:	66 89 5c 88 02       	mov    %bx,0x2(%eax,%ecx,4)
54c3b0:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
54c3b4:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
54c3b8:	89 5c 88 10          	mov    %ebx,0x10(%eax,%ecx,4)