44c035:	81 f9 0a 20 00 00    	cmp    $0x200a,%ecx
44c03b:	0f 86 1d 90 fc ff    	jbe    0x41505e
44c041:	81 f9 2f 20 00 00    	cmp    $0x202f,%ecx
44c047:	0f 84 11 90 fc ff    	je     0x41505e
44c04d:	eb 0c                	jmp    0x44c05b
44c04f:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
44c055:	0f 84 03 90 fc ff    	je     0x41505e
44c05b:	42                   	inc    %edx
44c05c:	3b 55 f4             	cmp    -0xc(%ebp),%edx
44c05f:	0f 8e 3d ff ff ff    	jle    0x44bfa2
44c065:	e9 38 fb ff ff       	jmp    0x44bba2
44c06a:	8b 7d f8             	mov    -0x8(%ebp),%edi
44c06d:	ba 01 00 00 00       	mov    $0x1,%edx
44c072:	39 55 f4             	cmp    %edx,-0xc(%ebp)
44c075:	0f 8c 2a fb ff ff    	jl     0x44bba5
44c07b:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44c07e:	0f 83 e2 27 00 00    	jae    0x44e866
44c084:	0f b7 0f             	movzwl (%edi),%ecx
44c087:	83 c7 02             	add    $0x2,%edi
44c08a:	8b c1                	mov    %ecx,%eax
44c08c:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c08f:	25 00 fc 00 00       	and    $0xfc00,%eax
44c094:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44c099:	75 1f                	jne    0x44c0ba
44c09b:	0f b7 07             	movzwl (%edi),%eax
44c09e:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44c0a4:	c1 e1 0a             	shl    $0xa,%ecx
44c0a7:	25 ff 03 00 00       	and    $0x3ff,%eax
44c0ac:	0b c8                	or     %eax,%ecx
44c0ae:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44c0b4:	83 c7 02             	add    $0x2,%edi
44c0b7:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c0ba:	81 f9 0e 18 00 00    	cmp    $0x180e,%ecx
44c0c0:	77 2a                	ja     0x44c0ec
44c0c2:	74 60                	je     0x44c124
44c0c4:	81 f9 a0 00 00 00    	cmp    $0xa0,%ecx
44c0ca:	77 12                	ja     0x44c0de
44c0cc:	74 56                	je     0x44c124
44c0ce:	83 f9 09             	cmp    $0x9,%ecx
44c0d1:	74 51                	je     0x44c124
44c0d3:	83 f9 20             	cmp    $0x20,%ecx
44c0d6:	0f 85 82 8f fc ff    	jne    0x41505e
44c0dc:	eb 46                	jmp    0x44c124
44c0de:	81 f9 80 16 00 00    	cmp    $0x1680,%ecx
44c0e4:	0f 85 74 8f fc ff    	jne    0x41505e
44c0ea:	eb 38                	jmp    0x44c124
44c0ec:	81 f9 5f 20 00 00    	cmp    $0x205f,%ecx
44c0f2:	77 24                	ja     0x44c118
44c0f4:	74 2e                	je     0x44c124
44c0f6:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
44c0fc:	0f 82 5c 8f fc ff    	jb     0x41505e
44c102:	81 f9 0a 20 00 00    	cmp    $0x200a,%ecx
44c108:	76 1a                	jbe    0x44c124
44c10a:	81 f9 2f 20 00 00    	cmp    $0x202f,%ecx
44c110:	0f 85 48 8f fc ff    	jne    0x41505e
44c116:	eb 0c                	jmp    0x44c124
44c118:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
44c11e:	0f 85 3a 8f fc ff    	jne    0x41505e
44c124:	42                   	inc    %edx
44c125:	3b 55 f4             	cmp    -0xc(%ebp),%edx
44c128:	0f 8e 4d ff ff ff    	jle    0x44c07b
44c12e:	e9 6f fa ff ff       	jmp    0x44bba2
44c133:	8b 7d f8             	mov    -0x8(%ebp),%edi
44c136:	ba 01 00 00 00       	mov    $0x1,%edx
44c13b:	39 55 f4             	cmp    %edx,-0xc(%ebp)
44c13e:	0f 8c 61 fa ff ff    	jl     0x44bba5
44c144:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44c147:	0f 83 19 27 00 00    	jae    0x44e866
44c14d:	0f b7 0f             	movzwl (%edi),%ecx
44c150:	83 c7 02             	add    $0x2,%edi
44c153:	8b c1                	mov    %ecx,%eax
44c155:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c158:	25 00 fc 00 00       	and    $0xfc00,%eax
44c15d:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44c162:	75 1f                	jne    0x44c183
44c164:	0f b7 07             	movzwl (%edi),%eax
44c167:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44c16d:	c1 e1 0a             	shl    $0xa,%ecx
44c170:	25 ff 03 00 00       	and    $0x3ff,%eax
44c175:	0b c8                	or     %eax,%ecx
44c177:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44c17d:	83 c7 02             	add    $0x2,%edi
44c180:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c183:	81 f9 85 00 00 00    	cmp    $0x85,%ecx
44c189:	77 16                	ja     0x44c1a1
44c18b:	0f 84 cd 8e fc ff    	je     0x41505e
44c191:	83 f9 0a             	cmp    $0xa,%ecx
44c194:	72 1f                	jb     0x44c1b5
44c196:	83 f9 0d             	cmp    $0xd,%ecx
44c199:	0f 86 bf 8e fc ff    	jbe    0x41505e
44c19f:	eb 14                	jmp    0x44c1b5
44c1a1:	81 f9 28 20 00 00    	cmp    $0x2028,%ecx
44c1a7:	72 0c                	jb     0x44c1b5
44c1a9:	81 f9 29 20 00 00    	cmp    $0x2029,%ecx
44c1af:	0f 86 a9 8e fc ff    	jbe    0x41505e
44c1b5:	42                   	inc    %edx
44c1b6:	3b 55 f4             	cmp    -0xc(%ebp),%edx
44c1b9:	7e 89                	jle    0x44c144
44c1bb:	e9 e2 f9 ff ff       	jmp    0x44bba2
44c1c0:	8b 7d f8             	mov    -0x8(%ebp),%edi
44c1c3:	ba 01 00 00 00       	mov    $0x1,%edx
44c1c8:	39 55 f4             	cmp    %edx,-0xc(%ebp)
44c1cb:	0f 8c d4 f9 ff ff    	jl     0x44bba5
44c1d1:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44c1d4:	0f 83 8c 26 00 00    	jae    0x44e866
44c1da:	0f b7 0f             	movzwl (%edi),%ecx
44c1dd:	83 c7 02             	add    $0x2,%edi
44c1e0:	8b c1                	mov    %ecx,%eax
44c1e2:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c1e5:	25 00 fc 00 00       	and    $0xfc00,%eax
44c1ea:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44c1ef:	75 1f                	jne    0x44c210
44c1f1:	0f b7 07             	movzwl (%edi),%eax
44c1f4:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44c1fa:	c1 e1 0a             	shl    $0xa,%ecx
44c1fd:	25 ff 03 00 00       	and    $0x3ff,%eax
44c202:	0b c8                	or     %eax,%ecx
44c204:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44c20a:	83 c7 02             	add    $0x2,%edi
44c20d:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c210:	81 f9 85 00 00 00    	cmp    $0x85,%ecx
44c216:	77 10                	ja     0x44c228
44c218:	74 1d                	je     0x44c237
44c21a:	8d 41 f6             	lea    -0xa(%ecx),%eax
44c21d:	83 f8 03             	cmp    $0x3,%eax
44c220:	0f 87 38 8e fc ff    	ja     0x41505e
44c226:	eb 0f                	jmp    0x44c237
44c228:	8d 81 d8 df ff ff    	lea    -0x2028(%ecx),%eax
44c22e:	83 f8 01             	cmp    $0x1,%eax
44c231:	0f 87 27 8e fc ff    	ja     0x41505e
44c237:	42                   	inc    %edx
44c238:	3b 55 f4             	cmp    -0xc(%ebp),%edx
44c23b:	7e 94                	jle    0x44c1d1
44c23d:	e9 60 f9 ff ff       	jmp    0x44bba2
44c242:	8b 7d f8             	mov    -0x8(%ebp),%edi
44c245:	ba 01 00 00 00       	mov    $0x1,%edx
44c24a:	39 55 f4             	cmp    %edx,-0xc(%ebp)
44c24d:	0f 8c 52 f9 ff ff    	jl     0x44bba5
44c253:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44c256:	0f 83 0a 26 00 00    	jae    0x44e866
44c25c:	0f b7 0f             	movzwl (%edi),%ecx
44c25f:	83 c7 02             	add    $0x2,%edi
44c262:	8b c1                	mov    %ecx,%eax
44c264:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c267:	25 00 fc 00 00       	and    $0xfc00,%eax
44c26c:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44c271:	75 1f                	jne    0x44c292
44c273:	0f b7 07             	movzwl (%edi),%eax
44c276:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44c27c:	c1 e1 0a             	shl    $0xa,%ecx
44c27f:	25 ff 03 00 00       	and    $0x3ff,%eax
44c284:	0b c8                	or     %eax,%ecx
44c286:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44c28c:	83 c7 02             	add    $0x2,%edi
44c28f:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c292:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
44c298:	73 0d                	jae    0x44c2a7
44c29a:	8b 46 44             	mov    0x44(%esi),%eax
44c29d:	f6 04 01 04          	testb  $0x4,(%ecx,%eax,1)
44c2a1:	0f 85 b7 8d fc ff    	jne    0x41505e
44c2a7:	42                   	inc    %edx
44c2a8:	3b 55 f4             	cmp    -0xc(%ebp),%edx
44c2ab:	7e a6                	jle    0x44c253
44c2ad:	e9 f0 f8 ff ff       	jmp    0x44bba2
44c2b2:	8b 7d f8             	mov    -0x8(%ebp),%edi
44c2b5:	ba 01 00 00 00       	mov    $0x1,%edx
44c2ba:	39 55 f4             	cmp    %edx,-0xc(%ebp)
44c2bd:	0f 8c e2 f8 ff ff    	jl     0x44bba5
44c2c3:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44c2c6:	0f 83 9a 25 00 00    	jae    0x44e866
44c2cc:	0f b7 0f             	movzwl (%edi),%ecx
44c2cf:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
44c2d5:	0f 83 83 8d fc ff    	jae    0x41505e
44c2db:	8b 46 44             	mov    0x44(%esi),%eax
44c2de:	f6 04 01 04          	testb  $0x4,(%ecx,%eax,1)
44c2e2:	0f 84 76 8d fc ff    	je     0x41505e
44c2e8:	83 c7 02             	add    $0x2,%edi
44c2eb:	42                   	inc    %edx
44c2ec:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c2ef:	3b 55 f4             	cmp    -0xc(%ebp),%edx
44c2f2:	7e cf                	jle    0x44c2c3
44c2f4:	e9 a9 f8 ff ff       	jmp    0x44bba2
44c2f9:	8b 7d f8             	mov    -0x8(%ebp),%edi
44c2fc:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44c303:	83 fa 01             	cmp    $0x1,%edx
44c306:	0f 8c 9c f8 ff ff    	jl     0x44bba8
44c30c:	8b 56 7c             	mov    0x7c(%esi),%edx
44c30f:	8b 45 f4             	mov    -0xc(%ebp),%eax
44c312:	3b fa                	cmp    %edx,%edi
44c314:	0f 83 4c 25 00 00    	jae    0x44e866
44c31a:	0f b7 0f             	movzwl (%edi),%ecx
44c31d:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
44c323:	73 10                	jae    0x44c335
44c325:	8b 46 44             	mov    0x44(%esi),%eax
44c328:	f6 04 01 01          	testb  $0x1,(%ecx,%eax,1)
44c32c:	0f 85 2c 8d fc ff    	jne    0x41505e
44c332:	8b 45 f4             	mov    -0xc(%ebp),%eax
44c335:	83 c7 02             	add    $0x2,%edi
44c338:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c33b:	3b fa                	cmp    %edx,%edi
44c33d:	73 1e                	jae    0x44c35d
44c33f:	66 8b 07             	mov    (%edi),%ax
44c342:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
44c347:	66 23 c1             	and    %cx,%ax
44c34a:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
44c34f:	66 3b c1             	cmp    %cx,%ax
44c352:	8b 45 f4             	mov    -0xc(%ebp),%eax
44c355:	75 06                	jne    0x44c35d
44c357:	83 c7 02             	add    $0x2,%edi
44c35a:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c35d:	8b 4d ec             	mov    -0x14(%ebp),%ecx
44c360:	41                   	inc    %ecx
44c361:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44c364:	3b c8                	cmp    %eax,%ecx
44c366:	7e aa                	jle    0x44c312
44c368:	e9 35 f8 ff ff       	jmp    0x44bba2
44c36d:	8b 7d f8             	mov    -0x8(%ebp),%edi
44c370:	ba 01 00 00 00       	mov    $0x1,%edx
44c375:	39 55 f4             	cmp    %edx,-0xc(%ebp)
44c378:	0f 8c 27 f8 ff ff    	jl     0x44bba5
44c37e:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44c381:	0f 83 df 24 00 00    	jae    0x44e866
44c387:	0f b7 0f             	movzwl (%edi),%ecx
44c38a:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
44c390:	0f 83 c8 8c fc ff    	jae    0x41505e
44c396:	8b 46 44             	mov    0x44(%esi),%eax
44c399:	f6 04 01 01          	testb  $0x1,(%ecx,%eax,1)
44c39d:	0f 84 bb 8c fc ff    	je     0x41505e
44c3a3:	83 c7 02             	add    $0x2,%edi
44c3a6:	42                   	inc    %edx
44c3a7:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c3aa:	3b 55 f4             	cmp    -0xc(%ebp),%edx
44c3ad:	7e cf                	jle    0x44c37e
44c3af:	e9 ee f7 ff ff       	jmp    0x44bba2
44c3b4:	8b 7d f8             	mov    -0x8(%ebp),%edi
44c3b7:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44c3be:	83 fa 01             	cmp    $0x1,%edx
44c3c1:	0f 8c e1 f7 ff ff    	jl     0x44bba8
44c3c7:	8b 56 7c             	mov    0x7c(%esi),%edx
44c3ca:	8b 45 f4             	mov    -0xc(%ebp),%eax
44c3cd:	3b fa                	cmp    %edx,%edi
44c3cf:	0f 83 91 24 00 00    	jae    0x44e866
44c3d5:	0f b7 0f             	movzwl (%edi),%ecx
44c3d8:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
44c3de:	73 10                	jae    0x44c3f0
44c3e0:	8b 46 44             	mov    0x44(%esi),%eax
44c3e3:	f6 04 01 10          	testb  $0x10,(%ecx,%eax,1)
44c3e7:	0f 85 71 8c fc ff    	jne    0x41505e
44c3ed:	8b 45 f4             	mov    -0xc(%ebp),%eax
44c3f0:	83 c7 02             	add    $0x2,%edi
44c3f3:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c3f6:	3b fa                	cmp    %edx,%edi
44c3f8:	73 1e                	jae    0x44c418
44c3fa:	66 8b 07             	mov    (%edi),%ax
44c3fd:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
44c402:	66 23 c1             	and    %cx,%ax
44c405:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
44c40a:	66 3b c1             	cmp    %cx,%ax
44c40d:	8b 45 f4             	mov    -0xc(%ebp),%eax
44c410:	75 06                	jne    0x44c418
44c412:	83 c7 02             	add    $0x2,%edi
44c415:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c418:	8b 4d ec             	mov    -0x14(%ebp),%ecx
44c41b:	41                   	inc    %ecx
44c41c:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44c41f:	3b c8                	cmp    %eax,%ecx
44c421:	7e aa                	jle    0x44c3cd
44c423:	e9 7a f7 ff ff       	jmp    0x44bba2
44c428:	8b 7d f8             	mov    -0x8(%ebp),%edi
44c42b:	ba 01 00 00 00       	mov    $0x1,%edx
44c430:	39 55 f4             	cmp    %edx,-0xc(%ebp)
44c433:	0f 8c 6c f7 ff ff    	jl     0x44bba5
44c439:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44c43c:	0f 83 24 24 00 00    	jae    0x44e866
44c442:	0f b7 0f             	movzwl (%edi),%ecx
44c445:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
44c44b:	0f 83 0d 8c fc ff    	jae    0x41505e
44c451:	8b 46 44             	mov    0x44(%esi),%eax
44c454:	f6 04 01 10          	testb  $0x10,(%ecx,%eax,1)
44c458:	0f 84 00 8c fc ff    	je     0x41505e
44c45e:	83 c7 02             	add    $0x2,%edi
44c461:	42                   	inc    %edx
44c462:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c465:	3b 55 f4             	cmp    -0xc(%ebp),%edx
44c468:	7e cf                	jle    0x44c439
44c46a:	e9 33 f7 ff ff       	jmp    0x44bba2
44c46f:	83 f9 0f             	cmp    $0xf,%ecx
44c472:	0f 87 86 20 00 00    	ja     0x44e4fe
44c478:	ff 24 8d b7 02 45 00 	jmp    *0x4502b7(,%ecx,4)
44c47f:	8b 7d f8             	mov    -0x8(%ebp),%edi
44c482:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44c489:	83 fa 01             	cmp    $0x1,%edx
44c48c:	0f 8c 16 f7 ff ff    	jl     0x44bba8
44c492:	8b 4e 7c             	mov    0x7c(%esi),%ecx
44c495:	3b f9                	cmp    %ecx,%edi
44c497:	0f 83 c9 23 00 00    	jae    0x44e866
44c49d:	8b 56 18             	mov    0x18(%esi),%edx
44c4a0:	85 d2                	test   %edx,%edx
44c4a2:	74 1b                	je     0x44c4bf
44c4a4:	8d 46 1c             	lea    0x1c(%esi),%eax
44c4a7:	6a 00                	push   $0x0
44c4a9:	50                   	push   %eax
44c4aa:	51                   	push   %ecx
44c4ab:	8b cf                	mov    %edi,%ecx
44c4ad:	e8 ed 99 fc ff       	call   0x415e9f
44c4b2:	83 c4 0c             	add    $0xc,%esp
44c4b5:	85 c0                	test   %eax,%eax
44c4b7:	0f 85 a1 8b fc ff    	jne    0x41505e
44c4bd:	eb 2c                	jmp    0x44c4eb
44c4bf:	8b 56 1c             	mov    0x1c(%esi),%edx
44c4c2:	8d 04 12             	lea    (%edx,%edx,1),%eax
44c4c5:	2b c8                	sub    %eax,%ecx
44c4c7:	3b f9                	cmp    %ecx,%edi
44c4c9:	77 20                	ja     0x44c4eb
44c4cb:	66 8b 07             	mov    (%edi),%ax
44c4ce:	66 3b 46 34          	cmp    0x34(%esi),%ax
44c4d2:	75 17                	jne    0x44c4eb
44c4d4:	83 fa 01             	cmp    $0x1,%edx
44c4d7:	0f 84 81 8b fc ff    	je     0x41505e
44c4dd:	66 8b 47 02          	mov    0x2(%edi),%ax
44c4e1:	66 3b 46 36          	cmp    0x36(%esi),%ax
44c4e5:	0f 84 73 8b fc ff    	je     0x41505e
44c4eb:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44c4f2:	74 31                	je     0x44c525
44c4f4:	8d 47 02             	lea    0x2(%edi),%eax
44c4f7:	3b 46 7c             	cmp    0x7c(%esi),%eax
44c4fa:	72 29                	jb     0x44c525
44c4fc:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
44c500:	75 23                	jne    0x44c525
44c502:	83 7e 1c 02          	cmpl   $0x2,0x1c(%esi)
44c506:	75 1d                	jne    0x44c525
44c508:	66 8b 07             	mov    (%edi),%ax
44c50b:	66 3b 46 34          	cmp    0x34(%esi),%ax
44c50f:	75 14                	jne    0x44c525
44c511:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44c518:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44c51f:	0f 8f 9b cb ff ff    	jg     0x4490c0
44c525:	8b 55 ec             	mov    -0x14(%ebp),%edx
44c528:	83 c7 02             	add    $0x2,%edi
44c52b:	42                   	inc    %edx
44c52c:	89 7d f8             	mov    %edi,-0x8(%ebp)
44c52f:	89 55 ec             	mov    %edx,-0x14(%ebp)
44c532:	3b 55 f4             	cmp    -0xc(%ebp),%edx
44c535:	0f 8e 57 ff ff ff    	jle    0x44c492
44c53b:	e9 62 f6 ff ff       	jmp    0x44bba2
44c540:	8b 46 7c             	mov    0x7c(%esi),%eax
44c543:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
44c546:	8b 7d f8             	mov    -0x8(%ebp),%edi
44c549:	2b c1                	sub    %ecx,%eax
44c54b:	3b f8                	cmp    %eax,%edi