44f079:	e8 42 59 fc ff       	call   0x4149c0
44f07e:	83 c4 14             	add    $0x14,%esp
44f081:	85 c0                	test   %eax,%eax
44f083:	0f 84 4a ff ff ff    	je     0x44efd3
44f089:	e9 af 5a fc ff       	jmp    0x414b3d
44f08e:	8b 45 18             	mov    0x18(%ebp),%eax
44f091:	8b d3                	mov    %ebx,%edx
44f093:	40                   	inc    %eax
44f094:	8b cf                	mov    %edi,%ecx
44f096:	50                   	push   %eax
44f097:	ff 75 14             	push   0x14(%ebp)
44f09a:	56                   	push   %esi
44f09b:	ff 75 0c             	push   0xc(%ebp)
44f09e:	ff 75 08             	push   0x8(%ebp)
44f0a1:	e8 1a 59 fc ff       	call   0x4149c0
44f0a6:	83 c4 14             	add    $0x14,%esp
44f0a9:	85 c0                	test   %eax,%eax
44f0ab:	0f 85 8c 5a fc ff    	jne    0x414b3d
44f0b1:	8b 45 e8             	mov    -0x18(%ebp),%eax
44f0b4:	39 45 f4             	cmp    %eax,-0xc(%ebp)
44f0b7:	0f 8d a1 5f fc ff    	jge    0x41505e
44f0bd:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44f0c0:	0f 83 a0 f7 ff ff    	jae    0x44e866
44f0c6:	0f b7 0f             	movzwl (%edi),%ecx
44f0c9:	83 c7 02             	add    $0x2,%edi
44f0cc:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44f0d0:	74 2a                	je     0x44f0fc
44f0d2:	8b c1                	mov    %ecx,%eax
44f0d4:	25 00 fc 00 00       	and    $0xfc00,%eax
44f0d9:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44f0de:	75 1c                	jne    0x44f0fc
44f0e0:	0f b7 07             	movzwl (%edi),%eax
44f0e3:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44f0e9:	c1 e1 0a             	shl    $0xa,%ecx
44f0ec:	25 ff 03 00 00       	and    $0x3ff,%eax
44f0f1:	0b c8                	or     %eax,%ecx
44f0f3:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44f0f9:	83 c7 02             	add    $0x2,%edi
44f0fc:	8b c1                	mov    %ecx,%eax
44f0fe:	99                   	cltd
44f0ff:	83 e2 7f             	and    $0x7f,%edx
44f102:	03 c2                	add    %edx,%eax
44f104:	c1 f8 07             	sar    $0x7,%eax
44f107:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
44f10e:	c1 e0 07             	shl    $0x7,%eax
44f111:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
44f117:	79 05                	jns    0x44f11e
44f119:	49                   	dec    %ecx
44f11a:	83 c9 80             	or     $0xffffff80,%ecx
44f11d:	41                   	inc    %ecx
44f11e:	03 c1                	add    %ecx,%eax
44f120:	0f b7 04 45 40 58 4a 	movzwl 0x4a5840(,%eax,2),%eax
44f127:	00
44f128:	0f b6 04 c5 51 2f 4a 	movzbl 0x4a2f51(,%eax,8),%eax
44f12f:	00
44f130:	8b 04 85 a0 89 4b 00 	mov    0x4b89a0(,%eax,4),%eax
44f137:	83 f8 01             	cmp    $0x1,%eax
44f13a:	74 09                	je     0x44f145
44f13c:	83 f8 03             	cmp    $0x3,%eax
44f13f:	74 04                	je     0x44f145
44f141:	33 c0                	xor    %eax,%eax
44f143:	eb 05                	jmp    0x44f14a
44f145:	b8 01 00 00 00       	mov    $0x1,%eax
44f14a:	3b 45 c8             	cmp    -0x38(%ebp),%eax
44f14d:	0f 84 0b 5f fc ff    	je     0x41505e
44f153:	8b 45 18             	mov    0x18(%ebp),%eax
44f156:	8b d3                	mov    %ebx,%edx
44f158:	ff 45 f4             	incl   -0xc(%ebp)
44f15b:	40                   	inc    %eax
44f15c:	50                   	push   %eax
44f15d:	ff 75 14             	push   0x14(%ebp)
44f160:	8b cf                	mov    %edi,%ecx
44f162:	56                   	push   %esi
44f163:	ff 75 0c             	push   0xc(%ebp)
44f166:	ff 75 08             	push   0x8(%ebp)
44f169:	e8 52 58 fc ff       	call   0x4149c0
44f16e:	83 c4 14             	add    $0x14,%esp
44f171:	85 c0                	test   %eax,%eax
44f173:	0f 84 38 ff ff ff    	je     0x44f0b1
44f179:	e9 bf 59 fc ff       	jmp    0x414b3d
44f17e:	8b 45 18             	mov    0x18(%ebp),%eax
44f181:	8b d3                	mov    %ebx,%edx
44f183:	40                   	inc    %eax
44f184:	8b cf                	mov    %edi,%ecx
44f186:	50                   	push   %eax
44f187:	ff 75 14             	push   0x14(%ebp)
44f18a:	56                   	push   %esi
44f18b:	ff 75 0c             	push   0xc(%ebp)
44f18e:	ff 75 08             	push   0x8(%ebp)
44f191:	e8 2a 58 fc ff       	call   0x4149c0
44f196:	83 c4 14             	add    $0x14,%esp
44f199:	85 c0                	test   %eax,%eax
44f19b:	0f 85 9c 59 fc ff    	jne    0x414b3d
44f1a1:	8b 45 f4             	mov    -0xc(%ebp),%eax
44f1a4:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44f1a7:	0f 8d b1 5e fc ff    	jge    0x41505e
44f1ad:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44f1b0:	0f 83 b0 f6 ff ff    	jae    0x44e866
44f1b6:	0f b7 0f             	movzwl (%edi),%ecx
44f1b9:	83 c7 02             	add    $0x2,%edi
44f1bc:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44f1c0:	74 2d                	je     0x44f1ef
44f1c2:	8b c1                	mov    %ecx,%eax
44f1c4:	25 00 fc 00 00       	and    $0xfc00,%eax
44f1c9:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44f1ce:	75 1c                	jne    0x44f1ec
44f1d0:	0f b7 07             	movzwl (%edi),%eax
44f1d3:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44f1d9:	c1 e1 0a             	shl    $0xa,%ecx
44f1dc:	25 ff 03 00 00       	and    $0x3ff,%eax
44f1e1:	0b c8                	or     %eax,%ecx
44f1e3:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44f1e9:	83 c7 02             	add    $0x2,%edi
44f1ec:	8b 45 f4             	mov    -0xc(%ebp),%eax
44f1ef:	81 f9 0e 18 00 00    	cmp    $0x180e,%ecx
44f1f5:	77 45                	ja     0x44f23c
44f1f7:	0f 84 c4 00 00 00    	je     0x44f2c1
44f1fd:	81 f9 85 00 00 00    	cmp    $0x85,%ecx
44f203:	77 1e                	ja     0x44f223
44f205:	0f 84 b6 00 00 00    	je     0x44f2c1
44f20b:	83 f9 09             	cmp    $0x9,%ecx
44f20e:	72 5f                	jb     0x44f26f
44f210:	83 f9 0d             	cmp    $0xd,%ecx
44f213:	0f 86 a8 00 00 00    	jbe    0x44f2c1
44f219:	83 f9 20             	cmp    $0x20,%ecx
44f21c:	75 51                	jne    0x44f26f
44f21e:	e9 9e 00 00 00       	jmp    0x44f2c1
44f223:	81 f9 a0 00 00 00    	cmp    $0xa0,%ecx
44f229:	0f 84 92 00 00 00    	je     0x44f2c1
44f22f:	81 f9 80 16 00 00    	cmp    $0x1680,%ecx
44f235:	75 38                	jne    0x44f26f
44f237:	e9 85 00 00 00       	jmp    0x44f2c1
44f23c:	81 f9 2f 20 00 00    	cmp    $0x202f,%ecx
44f242:	77 1b                	ja     0x44f25f
44f244:	74 7b                	je     0x44f2c1
44f246:	8d 81 00 e0 ff ff    	lea    -0x2000(%ecx),%eax
44f24c:	83 f8 29             	cmp    $0x29,%eax
44f24f:	77 1e                	ja     0x44f26f
44f251:	0f b6 80 0b 04 45 00 	movzbl 0x45040b(%eax),%eax
44f258:	ff 24 85 03 04 45 00 	jmp    *0x450403(,%eax,4)
44f25f:	81 f9 5f 20 00 00    	cmp    $0x205f,%ecx
44f265:	74 5a                	je     0x44f2c1
44f267:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
44f26d:	74 52                	je     0x44f2c1
44f26f:	8b c1                	mov    %ecx,%eax
44f271:	99                   	cltd
44f272:	83 e2 7f             	and    $0x7f,%edx
44f275:	03 c2                	add    %edx,%eax
44f277:	c1 f8 07             	sar    $0x7,%eax
44f27a:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
44f281:	c1 e0 07             	shl    $0x7,%eax
44f284:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
44f28a:	79 05                	jns    0x44f291
44f28c:	49                   	dec    %ecx
44f28d:	83 c9 80             	or     $0xffffff80,%ecx
44f290:	41                   	inc    %ecx
44f291:	03 c1                	add    %ecx,%eax
44f293:	33 c9                	xor    %ecx,%ecx
44f295:	0f b7 04 45 40 58 4a 	movzwl 0x4a5840(,%eax,2),%eax
44f29c:	00
44f29d:	0f b6 04 c5 51 2f 4a 	movzbl 0x4a2f51(,%eax,8),%eax
44f2a4:	00
44f2a5:	83 3c 85 a0 89 4b 00 	cmpl   $0x6,0x4b89a0(,%eax,4)
44f2ac:	06
44f2ad:	0f 94 c1             	sete   %cl
44f2b0:	3b 4d c8             	cmp    -0x38(%ebp),%ecx
44f2b3:	0f 84 a5 5d fc ff    	je     0x41505e
44f2b9:	8b 45 f4             	mov    -0xc(%ebp),%eax
44f2bc:	eb 0d                	jmp    0x44f2cb
44f2be:	8b 45 f4             	mov    -0xc(%ebp),%eax
44f2c1:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
44f2c5:	0f 85 93 5d fc ff    	jne    0x41505e
44f2cb:	40                   	inc    %eax
44f2cc:	8b d3                	mov    %ebx,%edx
44f2ce:	89 45 f4             	mov    %eax,-0xc(%ebp)
44f2d1:	8b cf                	mov    %edi,%ecx
44f2d3:	8b 45 18             	mov    0x18(%ebp),%eax
44f2d6:	40                   	inc    %eax
44f2d7:	50                   	push   %eax
44f2d8:	ff 75 14             	push   0x14(%ebp)
44f2db:	56                   	push   %esi
44f2dc:	ff 75 0c             	push   0xc(%ebp)
44f2df:	ff 75 08             	push   0x8(%ebp)
44f2e2:	e8 d9 56 fc ff       	call   0x4149c0
44f2e7:	83 c4 14             	add    $0x14,%esp
44f2ea:	85 c0                	test   %eax,%eax
44f2ec:	0f 84 af fe ff ff    	je     0x44f1a1
44f2f2:	e9 46 58 fc ff       	jmp    0x414b3d
44f2f7:	8b 45 18             	mov    0x18(%ebp),%eax
44f2fa:	8b d3                	mov    %ebx,%edx
44f2fc:	40                   	inc    %eax
44f2fd:	8b cf                	mov    %edi,%ecx
44f2ff:	50                   	push   %eax
44f300:	ff 75 14             	push   0x14(%ebp)
44f303:	56                   	push   %esi
44f304:	ff 75 0c             	push   0xc(%ebp)
44f307:	ff 75 08             	push   0x8(%ebp)
44f30a:	e8 b1 56 fc ff       	call   0x4149c0
44f30f:	83 c4 14             	add    $0x14,%esp
44f312:	85 c0                	test   %eax,%eax
44f314:	0f 85 23 58 fc ff    	jne    0x414b3d
44f31a:	8b 45 e8             	mov    -0x18(%ebp),%eax
44f31d:	39 45 f4             	cmp    %eax,-0xc(%ebp)
44f320:	0f 8d 38 5d fc ff    	jge    0x41505e
44f326:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44f329:	0f 83 37 f5 ff ff    	jae    0x44e866
44f32f:	0f b7 0f             	movzwl (%edi),%ecx
44f332:	83 c7 02             	add    $0x2,%edi
44f335:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44f339:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44f33c:	74 2d                	je     0x44f36b
44f33e:	8b c1                	mov    %ecx,%eax
44f340:	25 00 fc 00 00       	and    $0xfc00,%eax
44f345:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44f34a:	75 1f                	jne    0x44f36b
44f34c:	0f b7 07             	movzwl (%edi),%eax
44f34f:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44f355:	c1 e1 0a             	shl    $0xa,%ecx
44f358:	25 ff 03 00 00       	and    $0x3ff,%eax
44f35d:	0b c8                	or     %eax,%ecx
44f35f:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44f365:	83 c7 02             	add    $0x2,%edi
44f368:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44f36b:	8b c1                	mov    %ecx,%eax
44f36d:	99                   	cltd
44f36e:	83 e2 7f             	and    $0x7f,%edx
44f371:	03 c2                	add    %edx,%eax
44f373:	8b 55 ec             	mov    -0x14(%ebp),%edx
44f376:	c1 f8 07             	sar    $0x7,%eax
44f379:	0f b6 88 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%ecx
44f380:	8b c2                	mov    %edx,%eax
44f382:	c1 e1 07             	shl    $0x7,%ecx
44f385:	25 7f 00 00 80       	and    $0x8000007f,%eax
44f38a:	79 05                	jns    0x44f391
44f38c:	48                   	dec    %eax
44f38d:	83 c8 80             	or     $0xffffff80,%eax
44f390:	40                   	inc    %eax
44f391:	03 c8                	add    %eax,%ecx
44f393:	0f b7 04 4d 40 58 4a 	movzwl 0x4a5840(,%ecx,2),%eax
44f39a:	00
44f39b:	0f b6 04 c5 51 2f 4a 	movzbl 0x4a2f51(,%eax,8),%eax
44f3a2:	00
44f3a3:	8b 04 85 a0 89 4b 00 	mov    0x4b89a0(,%eax,4),%eax
44f3aa:	83 f8 01             	cmp    $0x1,%eax
44f3ad:	74 0e                	je     0x44f3bd
44f3af:	83 f8 03             	cmp    $0x3,%eax
44f3b2:	74 09                	je     0x44f3bd
44f3b4:	83 fa 5f             	cmp    $0x5f,%edx
44f3b7:	74 04                	je     0x44f3bd
44f3b9:	33 c0                	xor    %eax,%eax
44f3bb:	eb 05                	jmp    0x44f3c2
44f3bd:	b8 01 00 00 00       	mov    $0x1,%eax
44f3c2:	3b 45 c8             	cmp    -0x38(%ebp),%eax
44f3c5:	0f 84 93 5c fc ff    	je     0x41505e
44f3cb:	8b 45 18             	mov    0x18(%ebp),%eax
44f3ce:	8b d3                	mov    %ebx,%edx
44f3d0:	ff 45 f4             	incl   -0xc(%ebp)
44f3d3:	40                   	inc    %eax
44f3d4:	50                   	push   %eax
44f3d5:	ff 75 14             	push   0x14(%ebp)
44f3d8:	8b cf                	mov    %edi,%ecx
44f3da:	56                   	push   %esi
44f3db:	ff 75 0c             	push   0xc(%ebp)
44f3de:	ff 75 08             	push   0x8(%ebp)
44f3e1:	e8 da 55 fc ff       	call   0x4149c0
44f3e6:	83 c4 14             	add    $0x14,%esp
44f3e9:	85 c0                	test   %eax,%eax
44f3eb:	0f 84 29 ff ff ff    	je     0x44f31a
44f3f1:	e9 47 57 fc ff       	jmp    0x414b3d
44f3f6:	8b 45 18             	mov    0x18(%ebp),%eax
44f3f9:	8b d3                	mov    %ebx,%edx
44f3fb:	40                   	inc    %eax
44f3fc:	8b cf                	mov    %edi,%ecx
44f3fe:	50                   	push   %eax
44f3ff:	ff 75 14             	push   0x14(%ebp)
44f402:	56                   	push   %esi
44f403:	ff 75 0c             	push   0xc(%ebp)
44f406:	ff 75 08             	push   0x8(%ebp)
44f409:	e8 b2 55 fc ff       	call   0x4149c0
44f40e:	83 c4 14             	add    $0x14,%esp
44f411:	85 c0                	test   %eax,%eax
44f413:	0f 85 24 57 fc ff    	jne    0x414b3d
44f419:	8b 45 e8             	mov    -0x18(%ebp),%eax
44f41c:	39 45 f4             	cmp    %eax,-0xc(%ebp)
44f41f:	0f 8d 39 5c fc ff    	jge    0x41505e
44f425:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44f428:	0f 83 38 f4 ff ff    	jae    0x44e866
44f42e:	0f b7 0f             	movzwl (%edi),%ecx
44f431:	83 c7 02             	add    $0x2,%edi
44f434:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44f438:	74 2a                	je     0x44f464
44f43a:	8b c1                	mov    %ecx,%eax
44f43c:	25 00 fc 00 00       	and    $0xfc00,%eax
44f441:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44f446:	75 1c                	jne    0x44f464
44f448:	0f b7 07             	movzwl (%edi),%eax
44f44b:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44f451:	c1 e1 0a             	shl    $0xa,%ecx
44f454:	25 ff 03 00 00       	and    $0x3ff,%eax
44f459:	0b c8                	or     %eax,%ecx
44f45b:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44f461:	83 c7 02             	add    $0x2,%edi
44f464:	8b 45 c4             	mov    -0x3c(%ebp),%eax
44f467:	8b 14 85 d0 45 4a 00 	mov    0x4a45d0(,%eax,4),%edx
44f46e:	8d 04 85 d0 45 4a 00 	lea    0x4a45d0(,%eax,4),%eax
44f475:	3b ca                	cmp    %edx,%ecx
44f477:	72 0d                	jb     0x44f486
44f479:	8d 40 04             	lea    0x4(%eax),%eax
44f47c:	3b ca                	cmp    %edx,%ecx
44f47e:	74 3b                	je     0x44f4bb
44f480:	8b 10                	mov    (%eax),%edx
44f482:	3b ca                	cmp    %edx,%ecx
44f484:	73 f3                	jae    0x44f479
44f486:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
44f48a:	0f 84 ce 5b fc ff    	je     0x41505e
44f490:	8b 45 18             	mov    0x18(%ebp),%eax
44f493:	8b d3                	mov    %ebx,%edx
44f495:	ff 45 f4             	incl   -0xc(%ebp)
44f498:	40                   	inc    %eax
44f499:	50                   	push   %eax
44f49a:	ff 75 14             	push   0x14(%ebp)
44f49d:	8b cf                	mov    %edi,%ecx
44f49f:	56                   	push   %esi
44f4a0:	ff 75 0c             	push   0xc(%ebp)
44f4a3:	ff 75 08             	push   0x8(%ebp)
44f4a6:	e8 15 55 fc ff       	call   0x4149c0
44f4ab:	83 c4 14             	add    $0x14,%esp
44f4ae:	85 c0                	test   %eax,%eax
44f4b0:	0f 84 63 ff ff ff    	je     0x44f419
44f4b6:	e9 82 56 fc ff       	jmp    0x414b3d
44f4bb:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
44f4bf:	0f 85 99 5b fc ff    	jne    0x41505e
44f4c5:	eb c9                	jmp    0x44f490
44f4c7:	8b 45 18             	mov    0x18(%ebp),%eax
44f4ca:	8b d3                	mov    %ebx,%edx
44f4cc:	40                   	inc    %eax
44f4cd:	8b cf                	mov    %edi,%ecx
44f4cf:	50                   	push   %eax
44f4d0:	ff 75 14             	push   0x14(%ebp)
44f4d3:	56                   	push   %esi
44f4d4:	ff 75 0c             	push   0xc(%ebp)
44f4d7:	ff 75 08             	push   0x8(%ebp)
44f4da:	e8 e1 54 fc ff       	call   0x4149c0
44f4df:	83 c4 14             	add    $0x14,%esp
44f4e2:	85 c0                	test   %eax,%eax
44f4e4:	0f 85 53 56 fc ff    	jne    0x414b3d
44f4ea:	8b 55 f4             	mov    -0xc(%ebp),%edx
44f4ed:	3b 55 e8             	cmp    -0x18(%ebp),%edx
44f4f0:	0f 8d 68 5b fc ff    	jge    0x41505e
44f4f6:	3b 7e 7c             	cmp    0x7c(%esi),%edi