44cf9f:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44cfa2:	0f 83 54 fb ff ff    	jae    0x44cafc
44cfa8:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44cfac:	0f b7 0f             	movzwl (%edi),%ecx
44cfaf:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44cfb2:	74 32                	je     0x44cfe6
44cfb4:	8b c1                	mov    %ecx,%eax
44cfb6:	25 00 fc 00 00       	and    $0xfc00,%eax
44cfbb:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44cfc0:	75 24                	jne    0x44cfe6
44cfc2:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44cfc6:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44cfcc:	25 ff 03 00 00       	and    $0x3ff,%eax
44cfd1:	c1 e1 0a             	shl    $0xa,%ecx
44cfd4:	0b c8                	or     %eax,%ecx
44cfd6:	c7 45 d8 02 00 00 00 	movl   $0x2,-0x28(%ebp)
44cfdd:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44cfe3:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44cfe6:	8b c1                	mov    %ecx,%eax
44cfe8:	99                   	cltd
44cfe9:	83 e2 7f             	and    $0x7f,%edx
44cfec:	03 c2                	add    %edx,%eax
44cfee:	8b 55 ec             	mov    -0x14(%ebp),%edx
44cff1:	c1 f8 07             	sar    $0x7,%eax
44cff4:	0f b6 88 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%ecx
44cffb:	8b c2                	mov    %edx,%eax
44cffd:	c1 e1 07             	shl    $0x7,%ecx
44d000:	25 7f 00 00 80       	and    $0x8000007f,%eax
44d005:	79 05                	jns    0x44d00c
44d007:	48                   	dec    %eax
44d008:	83 c8 80             	or     $0xffffff80,%eax
44d00b:	40                   	inc    %eax
44d00c:	03 c8                	add    %eax,%ecx
44d00e:	0f b7 04 4d 40 58 4a 	movzwl 0x4a5840(,%ecx,2),%eax
44d015:	00
44d016:	0f b6 04 c5 51 2f 4a 	movzbl 0x4a2f51(,%eax,8),%eax
44d01d:	00
44d01e:	8b 04 85 a0 89 4b 00 	mov    0x4b89a0(,%eax,4),%eax
44d025:	83 f8 01             	cmp    $0x1,%eax
44d028:	74 0e                	je     0x44d038
44d02a:	83 f8 03             	cmp    $0x3,%eax
44d02d:	74 09                	je     0x44d038
44d02f:	83 fa 5f             	cmp    $0x5f,%edx
44d032:	74 04                	je     0x44d038
44d034:	33 c0                	xor    %eax,%eax
44d036:	eb 05                	jmp    0x44d03d
44d038:	b8 01 00 00 00       	mov    $0x1,%eax
44d03d:	3b 45 c8             	cmp    -0x38(%ebp),%eax
44d040:	0f 84 7e 01 00 00    	je     0x44d1c4
44d046:	8b 45 d8             	mov    -0x28(%ebp),%eax
44d049:	8d 3c 47             	lea    (%edi,%eax,2),%edi
44d04c:	8b 45 f4             	mov    -0xc(%ebp),%eax
44d04f:	40                   	inc    %eax
44d050:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d053:	89 45 f4             	mov    %eax,-0xc(%ebp)
44d056:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44d059:	0f 8c 39 ff ff ff    	jl     0x44cf98
44d05f:	e9 60 01 00 00       	jmp    0x44d1c4
44d064:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44d067:	0f 8d 5a 01 00 00    	jge    0x44d1c7
44d06d:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44d074:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44d077:	0f 83 7f fa ff ff    	jae    0x44cafc
44d07d:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44d081:	0f b7 0f             	movzwl (%edi),%ecx
44d084:	74 2f                	je     0x44d0b5
44d086:	8b c1                	mov    %ecx,%eax
44d088:	25 00 fc 00 00       	and    $0xfc00,%eax
44d08d:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44d092:	75 21                	jne    0x44d0b5
44d094:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44d098:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44d09e:	25 ff 03 00 00       	and    $0x3ff,%eax
44d0a3:	c1 e1 0a             	shl    $0xa,%ecx
44d0a6:	0b c8                	or     %eax,%ecx
44d0a8:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
44d0af:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44d0b5:	8b 45 c4             	mov    -0x3c(%ebp),%eax
44d0b8:	8b 14 85 d0 45 4a 00 	mov    0x4a45d0(,%eax,4),%edx
44d0bf:	8d 04 85 d0 45 4a 00 	lea    0x4a45d0(,%eax,4),%eax
44d0c6:	3b ca                	cmp    %edx,%ecx
44d0c8:	72 0d                	jb     0x44d0d7
44d0ca:	8d 40 04             	lea    0x4(%eax),%eax
44d0cd:	3b ca                	cmp    %edx,%ecx
44d0cf:	74 2e                	je     0x44d0ff
44d0d1:	8b 10                	mov    (%eax),%edx
44d0d3:	3b ca                	cmp    %edx,%ecx
44d0d5:	73 f3                	jae    0x44d0ca
44d0d7:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
44d0db:	0f 84 e3 00 00 00    	je     0x44d1c4
44d0e1:	8b 45 ec             	mov    -0x14(%ebp),%eax
44d0e4:	8d 3c 47             	lea    (%edi,%eax,2),%edi
44d0e7:	8b 45 f4             	mov    -0xc(%ebp),%eax
44d0ea:	40                   	inc    %eax
44d0eb:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d0ee:	89 45 f4             	mov    %eax,-0xc(%ebp)
44d0f1:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44d0f4:	0f 8c 73 ff ff ff    	jl     0x44d06d
44d0fa:	e9 c5 00 00 00       	jmp    0x44d1c4
44d0ff:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
44d103:	74 dc                	je     0x44d0e1
44d105:	e9 ba 00 00 00       	jmp    0x44d1c4
44d10a:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44d10d:	0f 8d b4 00 00 00    	jge    0x44d1c7
44d113:	ba 01 00 00 00       	mov    $0x1,%edx
44d118:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44d11b:	0f 83 83 00 00 00    	jae    0x44d1a4
44d121:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44d125:	0f b7 0f             	movzwl (%edi),%ecx
44d128:	74 2d                	je     0x44d157
44d12a:	8b c1                	mov    %ecx,%eax
44d12c:	25 00 fc 00 00       	and    $0xfc00,%eax
44d131:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44d136:	75 1f                	jne    0x44d157
44d138:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44d13c:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44d142:	25 ff 03 00 00       	and    $0x3ff,%eax
44d147:	c1 e1 0a             	shl    $0xa,%ecx
44d14a:	0b c8                	or     %eax,%ecx
44d14c:	ba 02 00 00 00       	mov    $0x2,%edx
44d151:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44d157:	83 f9 24             	cmp    $0x24,%ecx
44d15a:	74 26                	je     0x44d182
44d15c:	83 f9 40             	cmp    $0x40,%ecx
44d15f:	74 21                	je     0x44d182
44d161:	83 f9 60             	cmp    $0x60,%ecx
44d164:	74 1c                	je     0x44d182
44d166:	81 f9 a0 00 00 00    	cmp    $0xa0,%ecx
44d16c:	72 08                	jb     0x44d176
44d16e:	81 f9 ff d7 00 00    	cmp    $0xd7ff,%ecx
44d174:	76 0c                	jbe    0x44d182
44d176:	81 f9 00 e0 00 00    	cmp    $0xe000,%ecx
44d17c:	73 04                	jae    0x44d182
44d17e:	33 c0                	xor    %eax,%eax
44d180:	eb 05                	jmp    0x44d187
44d182:	b8 01 00 00 00       	mov    $0x1,%eax
44d187:	3b 45 c8             	cmp    -0x38(%ebp),%eax
44d18a:	74 38                	je     0x44d1c4
44d18c:	8b 45 f4             	mov    -0xc(%ebp),%eax
44d18f:	8d 3c 57             	lea    (%edi,%edx,2),%edi
44d192:	40                   	inc    %eax
44d193:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d196:	89 45 f4             	mov    %eax,-0xc(%ebp)
44d199:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44d19c:	0f 8c 71 ff ff ff    	jl     0x44d113
44d1a2:	eb 20                	jmp    0x44d1c4
44d1a4:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44d1ab:	74 17                	je     0x44d1c4
44d1ad:	3b be 88 00 00 00    	cmp    0x88(%esi),%edi
44d1b3:	76 0f                	jbe    0x44d1c4
44d1b5:	89 56 68             	mov    %edx,0x68(%esi)
44d1b8:	39 96 8c 00 00 00    	cmp    %edx,0x8c(%esi)
44d1be:	0f 8f fc be ff ff    	jg     0x4490c0
44d1c4:	8b 45 f0             	mov    -0x10(%ebp),%eax
44d1c7:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
44d1cb:	0f 85 cf 7a fc ff    	jne    0x414ca0
44d1d1:	3b f8                	cmp    %eax,%edi
44d1d3:	0f 86 ac 79 fc ff    	jbe    0x414b85
44d1d9:	8b 45 18             	mov    0x18(%ebp),%eax
44d1dc:	8b d3                	mov    %ebx,%edx
44d1de:	40                   	inc    %eax
44d1df:	8b cf                	mov    %edi,%ecx
44d1e1:	50                   	push   %eax
44d1e2:	ff 75 14             	push   0x14(%ebp)
44d1e5:	56                   	push   %esi
44d1e6:	ff 75 0c             	push   0xc(%ebp)
44d1e9:	ff 75 08             	push   0x8(%ebp)
44d1ec:	e8 cf 77 fc ff       	call   0x4149c0
44d1f1:	83 c4 14             	add    $0x14,%esp
44d1f4:	85 c0                	test   %eax,%eax
44d1f6:	0f 85 41 79 fc ff    	jne    0x414b3d
44d1fc:	83 ef 02             	sub    $0x2,%edi
44d1ff:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d202:	39 45 dc             	cmp    %eax,-0x24(%ebp)
44d205:	74 1b                	je     0x44d222
44d207:	66 8b 07             	mov    (%edi),%ax
44d20a:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
44d20f:	66 23 c1             	and    %cx,%ax
44d212:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
44d217:	66 3b c1             	cmp    %cx,%ax
44d21a:	75 06                	jne    0x44d222
44d21c:	83 ef 02             	sub    $0x2,%edi
44d21f:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d222:	3b 7d f0             	cmp    -0x10(%ebp),%edi
44d225:	77 b2                	ja     0x44d1d9
44d227:	e9 59 79 fc ff       	jmp    0x414b85
44d22c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
44d22f:	83 f9 16             	cmp    $0x16,%ecx
44d232:	0f 85 eb 01 00 00    	jne    0x44d423
44d238:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44d23b:	0f 8d 96 01 00 00    	jge    0x44d3d7
44d241:	8b 46 7c             	mov    0x7c(%esi),%eax
44d244:	89 45 d8             	mov    %eax,-0x28(%ebp)
44d247:	3b f8                	cmp    %eax,%edi
44d249:	0f 83 60 01 00 00    	jae    0x44d3af
44d24f:	0f b7 0f             	movzwl (%edi),%ecx
44d252:	83 c7 02             	add    $0x2,%edi
44d255:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44d259:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d25c:	74 2d                	je     0x44d28b
44d25e:	8b c1                	mov    %ecx,%eax
44d260:	25 00 fc 00 00       	and    $0xfc00,%eax
44d265:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44d26a:	75 1f                	jne    0x44d28b
44d26c:	0f b7 07             	movzwl (%edi),%eax
44d26f:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44d275:	c1 e1 0a             	shl    $0xa,%ecx
44d278:	25 ff 03 00 00       	and    $0x3ff,%eax
44d27d:	0b c8                	or     %eax,%ecx
44d27f:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44d285:	83 c7 02             	add    $0x2,%edi
44d288:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d28b:	8b c1                	mov    %ecx,%eax
44d28d:	99                   	cltd
44d28e:	83 e2 7f             	and    $0x7f,%edx
44d291:	03 c2                	add    %edx,%eax
44d293:	c1 f8 07             	sar    $0x7,%eax
44d296:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
44d29d:	c1 e0 07             	shl    $0x7,%eax
44d2a0:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
44d2a6:	79 05                	jns    0x44d2ad
44d2a8:	49                   	dec    %ecx
44d2a9:	83 c9 80             	or     $0xffffff80,%ecx
44d2ac:	41                   	inc    %ecx
44d2ad:	03 c1                	add    %ecx,%eax
44d2af:	0f b7 04 45 40 58 4a 	movzwl 0x4a5840(,%eax,2),%eax
44d2b6:	00
44d2b7:	0f b6 0c c5 52 2f 4a 	movzbl 0x4a2f52(,%eax,8),%ecx
44d2be:	00
44d2bf:	8b 46 7c             	mov    0x7c(%esi),%eax
44d2c2:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44d2c5:	3b f8                	cmp    %eax,%edi
44d2c7:	0f 83 a7 00 00 00    	jae    0x44d374
44d2cd:	8b 5d dc             	mov    -0x24(%ebp),%ebx
44d2d0:	8b f1                	mov    %ecx,%esi
44d2d2:	0f b7 0f             	movzwl (%edi),%ecx
44d2d5:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44d2dc:	85 db                	test   %ebx,%ebx
44d2de:	74 2f                	je     0x44d30f
44d2e0:	8b c1                	mov    %ecx,%eax
44d2e2:	25 00 fc 00 00       	and    $0xfc00,%eax
44d2e7:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44d2ec:	75 21                	jne    0x44d30f
44d2ee:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44d2f2:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44d2f8:	25 ff 03 00 00       	and    $0x3ff,%eax
44d2fd:	c1 e1 0a             	shl    $0xa,%ecx
44d300:	0b c8                	or     %eax,%ecx
44d302:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
44d309:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44d30f:	8b c1                	mov    %ecx,%eax
44d311:	99                   	cltd
44d312:	83 e2 7f             	and    $0x7f,%edx
44d315:	03 c2                	add    %edx,%eax
44d317:	c1 f8 07             	sar    $0x7,%eax
44d31a:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
44d321:	c1 e0 07             	shl    $0x7,%eax
44d324:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
44d32a:	79 05                	jns    0x44d331
44d32c:	49                   	dec    %ecx
44d32d:	83 c9 80             	or     $0xffffff80,%ecx
44d330:	41                   	inc    %ecx
44d331:	03 c1                	add    %ecx,%eax
44d333:	0f b7 04 45 40 58 4a 	movzwl 0x4a5840(,%eax,2),%eax
44d33a:	00
44d33b:	0f b6 0c c5 52 2f 4a 	movzbl 0x4a2f52(,%eax,8),%ecx
44d342:	00
44d343:	b8 01 00 00 00       	mov    $0x1,%eax
44d348:	d3 e0                	shl    %cl,%eax
44d34a:	85 04 b5 00 58 4a 00 	test   %eax,0x4a5800(,%esi,4)
44d351:	74 15                	je     0x44d368
44d353:	8b 45 ec             	mov    -0x14(%ebp),%eax
44d356:	8b f1                	mov    %ecx,%esi
44d358:	8d 3c 47             	lea    (%edi,%eax,2),%edi
44d35b:	8b 45 d8             	mov    -0x28(%ebp),%eax
44d35e:	3b f8                	cmp    %eax,%edi
44d360:	0f 82 6c ff ff ff    	jb     0x44d2d2
44d366:	eb 03                	jmp    0x44d36b
44d368:	8b 45 d8             	mov    -0x28(%ebp),%eax
44d36b:	8b 75 10             	mov    0x10(%ebp),%esi
44d36e:	8b 5d d0             	mov    -0x30(%ebp),%ebx
44d371:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d374:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44d37b:	74 20                	je     0x44d39d
44d37d:	3b f8                	cmp    %eax,%edi
44d37f:	72 1c                	jb     0x44d39d
44d381:	3b be 88 00 00 00    	cmp    0x88(%esi),%edi
44d387:	76 14                	jbe    0x44d39d
44d389:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44d390:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44d397:	0f 8f 23 bd ff ff    	jg     0x4490c0
44d39d:	8b 45 f4             	mov    -0xc(%ebp),%eax
44d3a0:	40                   	inc    %eax
44d3a1:	89 45 f4             	mov    %eax,-0xc(%ebp)
44d3a4:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44d3a7:	0f 8c 94 fe ff ff    	jl     0x44d241
44d3ad:	eb 25                	jmp    0x44d3d4
44d3af:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44d3b6:	74 1c                	je     0x44d3d4
44d3b8:	3b be 88 00 00 00    	cmp    0x88(%esi),%edi
44d3be:	76 14                	jbe    0x44d3d4
44d3c0:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44d3c7:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44d3ce:	0f 8f ec bc ff ff    	jg     0x4490c0
44d3d4:	8b 45 f0             	mov    -0x10(%ebp),%eax
44d3d7:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
44d3db:	0f 85 bf 78 fc ff    	jne    0x414ca0
44d3e1:	3b f8                	cmp    %eax,%edi
44d3e3:	0f 86 9c 77 fc ff    	jbe    0x414b85
44d3e9:	8b 45 18             	mov    0x18(%ebp),%eax
44d3ec:	8b d3                	mov    %ebx,%edx
44d3ee:	40                   	inc    %eax
44d3ef:	8b cf                	mov    %edi,%ecx
44d3f1:	50                   	push   %eax
44d3f2:	ff 75 14             	push   0x14(%ebp)
44d3f5:	56                   	push   %esi
44d3f6:	ff 75 0c             	push   0xc(%ebp)
44d3f9:	ff 75 08             	push   0x8(%ebp)
44d3fc:	e8 bf 75 fc ff       	call   0x4149c0
44d401:	83 c4 14             	add    $0x14,%esp
44d404:	85 c0                	test   %eax,%eax
44d406:	0f 85 31 77 fc ff    	jne    0x414b3d
44d40c:	83 ef 02             	sub    $0x2,%edi
44d40f:	89 7d f8             	mov    %edi,-0x8(%ebp)
44d412:	39 45 dc             	cmp    %eax,-0x24(%ebp)
44d415:	0f 85 ab 0d 00 00    	jne    0x44e1c6
44d41b:	0f b7 0f             	movzwl (%edi),%ecx
44d41e:	e9 e9 0d 00 00       	jmp    0x44e20c
44d423:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44d427:	8d 41 fa             	lea    -0x6(%ecx),%eax
44d42a:	0f 84 53 07 00 00    	je     0x44db83
44d430:	83 f8 0f             	cmp    $0xf,%eax
44d433:	0f 87 c5 10 00 00    	ja     0x44e4fe
44d439:	ff 24 85 57 03 45 00 	jmp    *0x450357(,%eax,4)
44d440:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44d443:	0f 8d b5 06 00 00    	jge    0x44dafe
44d449:	8d 47 02             	lea    0x2(%edi),%eax
44d44c:	89 45 e0             	mov    %eax,-0x20(%ebp)
44d44f:	8b 4e 7c             	mov    0x7c(%esi),%ecx
44d452:	3b f9                	cmp    %ecx,%edi
44d454:	0f 83 40 01 00 00    	jae    0x44d59a
44d45a:	8b 56 18             	mov    0x18(%esi),%edx
44d45d:	85 d2                	test   %edx,%edx
44d45f:	0f 84 9b 00 00 00    	je     0x44d500
44d465:	ff 75 dc             	push   -0x24(%ebp)
44d468:	8d 46 1c             	lea    0x1c(%esi),%eax
44d46b:	50                   	push   %eax
44d46c:	51                   	push   %ecx
44d46d:	8b cf                	mov    %edi,%ecx
44d46f:	e8 2b 8a fc ff       	call   0x415e9f