44b1a1:	39 45 d8             	cmp    %eax,-0x28(%ebp)
44b1a4:	7e da                	jle    0x44b180
44b1a6:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44b1a9:	0f 84 f1 9a fc ff    	je     0x414ca0
44b1af:	85 d2                	test   %edx,%edx
44b1b1:	0f 85 c0 39 00 00    	jne    0x44eb77
44b1b7:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44b1bb:	8b d7                	mov    %edi,%edx
44b1bd:	89 55 e4             	mov    %edx,-0x1c(%ebp)
44b1c0:	0f 84 ea 00 00 00    	je     0x44b2b0
44b1c6:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44b1c9:	0f 8d 82 00 00 00    	jge    0x44b251
44b1cf:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44b1d6:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44b1d9:	73 4e                	jae    0x44b229
44b1db:	0f b7 17             	movzwl (%edi),%edx
44b1de:	8b c2                	mov    %edx,%eax
44b1e0:	25 00 fc 00 00       	and    $0xfc00,%eax
44b1e5:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44b1ea:	75 21                	jne    0x44b20d
44b1ec:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44b1f0:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
44b1f6:	25 ff 03 00 00       	and    $0x3ff,%eax
44b1fb:	c1 e2 0a             	shl    $0xa,%edx
44b1fe:	0b d0                	or     %eax,%edx
44b200:	b8 02 00 00 00       	mov    $0x2,%eax
44b205:	81 c2 00 00 01 00    	add    $0x10000,%edx
44b20b:	eb 03                	jmp    0x44b210
44b20d:	8b 45 ec             	mov    -0x14(%ebp),%eax
44b210:	39 55 f4             	cmp    %edx,-0xc(%ebp)
44b213:	74 39                	je     0x44b24e
44b215:	8d 3c 47             	lea    (%edi,%eax,2),%edi
44b218:	8b 45 f0             	mov    -0x10(%ebp),%eax
44b21b:	40                   	inc    %eax
44b21c:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b21f:	89 45 f0             	mov    %eax,-0x10(%ebp)
44b222:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44b225:	7c a8                	jl     0x44b1cf
44b227:	eb 25                	jmp    0x44b24e
44b229:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44b230:	74 1c                	je     0x44b24e
44b232:	3b be 88 00 00 00    	cmp    0x88(%esi),%edi
44b238:	76 14                	jbe    0x44b24e
44b23a:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44b241:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44b248:	0f 8f 72 de ff ff    	jg     0x4490c0
44b24e:	8b 55 e4             	mov    -0x1c(%ebp),%edx
44b251:	85 c9                	test   %ecx,%ecx
44b253:	0f 85 47 9a fc ff    	jne    0x414ca0
44b259:	3b fa                	cmp    %edx,%edi
44b25b:	0f 86 24 99 fc ff    	jbe    0x414b85
44b261:	8b 45 18             	mov    0x18(%ebp),%eax
44b264:	8b d3                	mov    %ebx,%edx
44b266:	40                   	inc    %eax
44b267:	8b cf                	mov    %edi,%ecx
44b269:	50                   	push   %eax
44b26a:	ff 75 14             	push   0x14(%ebp)
44b26d:	56                   	push   %esi
44b26e:	ff 75 0c             	push   0xc(%ebp)
44b271:	ff 75 08             	push   0x8(%ebp)
44b274:	e8 47 97 fc ff       	call   0x4149c0
44b279:	83 c4 14             	add    $0x14,%esp
44b27c:	85 c0                	test   %eax,%eax
44b27e:	0f 85 b9 98 fc ff    	jne    0x414b3d
44b284:	66 8b 47 fe          	mov    -0x2(%edi),%ax
44b288:	83 ef 02             	sub    $0x2,%edi
44b28b:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
44b290:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b293:	66 23 c1             	and    %cx,%ax
44b296:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
44b29b:	66 3b c1             	cmp    %cx,%ax
44b29e:	75 06                	jne    0x44b2a6
44b2a0:	83 ef 02             	sub    $0x2,%edi
44b2a3:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b2a6:	3b 7d e4             	cmp    -0x1c(%ebp),%edi
44b2a9:	77 b6                	ja     0x44b261
44b2ab:	e9 d5 98 fc ff       	jmp    0x414b85
44b2b0:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44b2b3:	7d 4b                	jge    0x44b300
44b2b5:	8b 55 f4             	mov    -0xc(%ebp),%edx
44b2b8:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44b2bb:	73 1b                	jae    0x44b2d8
44b2bd:	0f b7 07             	movzwl (%edi),%eax
44b2c0:	3b d0                	cmp    %eax,%edx
44b2c2:	74 39                	je     0x44b2fd
44b2c4:	8b 45 f0             	mov    -0x10(%ebp),%eax
44b2c7:	83 c7 02             	add    $0x2,%edi
44b2ca:	40                   	inc    %eax
44b2cb:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b2ce:	89 45 f0             	mov    %eax,-0x10(%ebp)
44b2d1:	3b 45 e8             	cmp    -0x18(%ebp),%eax
44b2d4:	7c e2                	jl     0x44b2b8
44b2d6:	eb 25                	jmp    0x44b2fd
44b2d8:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44b2df:	74 1c                	je     0x44b2fd
44b2e1:	3b be 88 00 00 00    	cmp    0x88(%esi),%edi
44b2e7:	76 14                	jbe    0x44b2fd
44b2e9:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44b2f0:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44b2f7:	0f 8f c3 dd ff ff    	jg     0x4490c0
44b2fd:	8b 55 e4             	mov    -0x1c(%ebp),%edx
44b300:	85 c9                	test   %ecx,%ecx
44b302:	0f 85 98 99 fc ff    	jne    0x414ca0
44b308:	3b fa                	cmp    %edx,%edi
44b30a:	0f 84 75 98 fc ff    	je     0x414b85
44b310:	8b 45 18             	mov    0x18(%ebp),%eax
44b313:	8b d3                	mov    %ebx,%edx
44b315:	40                   	inc    %eax
44b316:	8b cf                	mov    %edi,%ecx
44b318:	50                   	push   %eax
44b319:	ff 75 14             	push   0x14(%ebp)
44b31c:	56                   	push   %esi
44b31d:	ff 75 0c             	push   0xc(%ebp)
44b320:	ff 75 08             	push   0x8(%ebp)
44b323:	e8 98 96 fc ff       	call   0x4149c0
44b328:	83 c4 14             	add    $0x14,%esp
44b32b:	85 c0                	test   %eax,%eax
44b32d:	0f 85 0a 98 fc ff    	jne    0x414b3d
44b333:	83 ef 02             	sub    $0x2,%edi
44b336:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b339:	3b 7d e4             	cmp    -0x1c(%ebp),%edi
44b33c:	75 d2                	jne    0x44b310
44b33e:	e9 42 98 fc ff       	jmp    0x414b85
44b343:	0f b7 7b 02          	movzwl 0x2(%ebx),%edi
44b347:	b8 01 00 00 00       	mov    $0x1,%eax
44b34c:	8b d7                	mov    %edi,%edx
44b34e:	89 7d e8             	mov    %edi,-0x18(%ebp)
44b351:	89 55 f4             	mov    %edx,-0xc(%ebp)
44b354:	83 c3 04             	add    $0x4,%ebx
44b357:	89 45 d4             	mov    %eax,-0x2c(%ebp)
44b35a:	e9 3e 9d fc ff       	jmp    0x41509d
44b35f:	0f b7 7b 02          	movzwl 0x2(%ebx),%edi
44b363:	33 c0                	xor    %eax,%eax
44b365:	33 d2                	xor    %edx,%edx
44b367:	89 7d e8             	mov    %edi,-0x18(%ebp)
44b36a:	83 f9 5c             	cmp    $0x5c,%ecx
44b36d:	89 55 f4             	mov    %edx,-0xc(%ebp)
44b370:	0f 94 c0             	sete   %al
44b373:	83 c3 04             	add    $0x4,%ebx
44b376:	89 45 d4             	mov    %eax,-0x2c(%ebp)
44b379:	e9 1f 9d fc ff       	jmp    0x41509d
44b37e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44b381:	33 d2                	xor    %edx,%edx
44b383:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
44b38a:	83 c3 02             	add    $0x2,%ebx
44b38d:	89 55 f4             	mov    %edx,-0xc(%ebp)
44b390:	e9 01 9d fc ff       	jmp    0x415096
44b395:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44b398:	ba 01 00 00 00       	mov    $0x1,%edx
44b39d:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
44b3a4:	83 c3 02             	add    $0x2,%ebx
44b3a7:	89 55 f4             	mov    %edx,-0xc(%ebp)
44b3aa:	e9 e7 9c fc ff       	jmp    0x415096
44b3af:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44b3b2:	33 d2                	xor    %edx,%edx
44b3b4:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
44b3bb:	83 c3 02             	add    $0x2,%ebx
44b3be:	89 55 f4             	mov    %edx,-0xc(%ebp)
44b3c1:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
44b3c8:	e9 d0 9c fc ff       	jmp    0x41509d
44b3cd:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
44b3d1:	33 d2                	xor    %edx,%edx
44b3d3:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44b3d6:	83 c3 04             	add    $0x4,%ebx
44b3d9:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
44b3e0:	89 55 f4             	mov    %edx,-0xc(%ebp)
44b3e3:	89 4d e8             	mov    %ecx,-0x18(%ebp)
44b3e6:	e9 b2 9c fc ff       	jmp    0x41509d
44b3eb:	c7 45 c8 01 00 00 00 	movl   $0x1,-0x38(%ebp)
44b3f2:	eb 07                	jmp    0x44b3fb
44b3f4:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
44b3fb:	0f b7 73 02          	movzwl 0x2(%ebx),%esi
44b3ff:	0f b7 0b             	movzwl (%ebx),%ecx
44b402:	83 c3 04             	add    $0x4,%ebx
44b405:	89 75 c4             	mov    %esi,-0x3c(%ebp)
44b408:	8b 75 10             	mov    0x10(%ebp),%esi
44b40b:	89 5d d0             	mov    %ebx,-0x30(%ebp)
44b40e:	e9 ab 9c fc ff       	jmp    0x4150be
44b413:	85 c9                	test   %ecx,%ecx
44b415:	0f 88 95 07 00 00    	js     0x44bbb0
44b41b:	83 f9 0a             	cmp    $0xa,%ecx
44b41e:	0f 87 da 30 00 00    	ja     0x44e4fe
44b424:	ff 24 8d 17 02 45 00 	jmp    *0x450217(,%ecx,4)
44b42b:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
44b42f:	0f 85 29 9c fc ff    	jne    0x41505e
44b435:	8b 7d f8             	mov    -0x8(%ebp),%edi
44b438:	ba 01 00 00 00       	mov    $0x1,%edx
44b43d:	39 55 f4             	cmp    %edx,-0xc(%ebp)
44b440:	0f 8c 47 15 00 00    	jl     0x44c98d
44b446:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44b449:	0f 83 17 34 00 00    	jae    0x44e866
44b44f:	0f b7 0f             	movzwl (%edi),%ecx
44b452:	83 c7 02             	add    $0x2,%edi
44b455:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44b459:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b45c:	74 14                	je     0x44b472
44b45e:	81 e1 00 fc 00 00    	and    $0xfc00,%ecx
44b464:	81 f9 00 d8 00 00    	cmp    $0xd800,%ecx
44b46a:	75 06                	jne    0x44b472
44b46c:	83 c7 02             	add    $0x2,%edi
44b46f:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b472:	42                   	inc    %edx
44b473:	3b 55 f4             	cmp    -0xc(%ebp),%edx
44b476:	7e ce                	jle    0x44b446
44b478:	e9 28 07 00 00       	jmp    0x44bba5
44b47d:	8b 7d f8             	mov    -0x8(%ebp),%edi
44b480:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44b487:	83 fa 01             	cmp    $0x1,%edx
44b48a:	0f 8c 3c 9c fc ff    	jl     0x4150cc
44b490:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44b493:	0f 83 cd 33 00 00    	jae    0x44e866
44b499:	0f b7 0f             	movzwl (%edi),%ecx
44b49c:	83 c7 02             	add    $0x2,%edi
44b49f:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44b4a3:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b4a6:	74 2d                	je     0x44b4d5
44b4a8:	8b c1                	mov    %ecx,%eax
44b4aa:	25 00 fc 00 00       	and    $0xfc00,%eax
44b4af:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44b4b4:	75 1f                	jne    0x44b4d5
44b4b6:	0f b7 07             	movzwl (%edi),%eax
44b4b9:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44b4bf:	c1 e1 0a             	shl    $0xa,%ecx
44b4c2:	25 ff 03 00 00       	and    $0x3ff,%eax
44b4c7:	0b c8                	or     %eax,%ecx
44b4c9:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44b4cf:	83 c7 02             	add    $0x2,%edi
44b4d2:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b4d5:	8b c1                	mov    %ecx,%eax
44b4d7:	99                   	cltd
44b4d8:	83 e2 7f             	and    $0x7f,%edx
44b4db:	03 c2                	add    %edx,%eax
44b4dd:	c1 f8 07             	sar    $0x7,%eax
44b4e0:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
44b4e7:	c1 e0 07             	shl    $0x7,%eax
44b4ea:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
44b4f0:	79 05                	jns    0x44b4f7
44b4f2:	49                   	dec    %ecx
44b4f3:	83 c9 80             	or     $0xffffff80,%ecx
44b4f6:	41                   	inc    %ecx
44b4f7:	03 c1                	add    %ecx,%eax
44b4f9:	0f b7 04 45 40 58 4a 	movzwl 0x4a5840(,%eax,2),%eax
44b500:	00
44b501:	0f b6 04 c5 51 2f 4a 	movzbl 0x4a2f51(,%eax,8),%eax
44b508:	00
44b509:	83 f8 09             	cmp    $0x9,%eax
44b50c:	74 0e                	je     0x44b51c
44b50e:	83 f8 05             	cmp    $0x5,%eax
44b511:	74 09                	je     0x44b51c
44b513:	83 f8 08             	cmp    $0x8,%eax
44b516:	74 04                	je     0x44b51c
44b518:	33 c0                	xor    %eax,%eax
44b51a:	eb 05                	jmp    0x44b521
44b51c:	b8 01 00 00 00       	mov    $0x1,%eax
44b521:	3b 45 c8             	cmp    -0x38(%ebp),%eax
44b524:	0f 84 34 9b fc ff    	je     0x41505e
44b52a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
44b52d:	8b 55 f4             	mov    -0xc(%ebp),%edx
44b530:	41                   	inc    %ecx
44b531:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44b534:	3b ca                	cmp    %edx,%ecx
44b536:	0f 8e 54 ff ff ff    	jle    0x44b490
44b53c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44b53f:	e9 64 06 00 00       	jmp    0x44bba8
44b544:	8b 7d f8             	mov    -0x8(%ebp),%edi
44b547:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44b54e:	83 fa 01             	cmp    $0x1,%edx
44b551:	0f 8c 75 9b fc ff    	jl     0x4150cc
44b557:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44b55a:	0f 83 06 33 00 00    	jae    0x44e866
44b560:	0f b7 0f             	movzwl (%edi),%ecx
44b563:	83 c7 02             	add    $0x2,%edi
44b566:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44b56a:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b56d:	74 2d                	je     0x44b59c
44b56f:	8b c1                	mov    %ecx,%eax
44b571:	25 00 fc 00 00       	and    $0xfc00,%eax
44b576:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44b57b:	75 1f                	jne    0x44b59c
44b57d:	0f b7 07             	movzwl (%edi),%eax
44b580:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44b586:	c1 e1 0a             	shl    $0xa,%ecx
44b589:	25 ff 03 00 00       	and    $0x3ff,%eax
44b58e:	0b c8                	or     %eax,%ecx
44b590:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44b596:	83 c7 02             	add    $0x2,%edi
44b599:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b59c:	8b c1                	mov    %ecx,%eax
44b59e:	99                   	cltd
44b59f:	83 e2 7f             	and    $0x7f,%edx
44b5a2:	03 c2                	add    %edx,%eax
44b5a4:	c1 f8 07             	sar    $0x7,%eax
44b5a7:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
44b5ae:	c1 e0 07             	shl    $0x7,%eax
44b5b1:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
44b5b7:	79 05                	jns    0x44b5be
44b5b9:	49                   	dec    %ecx
44b5ba:	83 c9 80             	or     $0xffffff80,%ecx
44b5bd:	41                   	inc    %ecx
44b5be:	8b 55 c4             	mov    -0x3c(%ebp),%edx
44b5c1:	03 c1                	add    %ecx,%eax
44b5c3:	33 c9                	xor    %ecx,%ecx
44b5c5:	0f b7 04 45 40 58 4a 	movzwl 0x4a5840(,%eax,2),%eax
44b5cc:	00
44b5cd:	0f b6 04 c5 51 2f 4a 	movzbl 0x4a2f51(,%eax,8),%eax
44b5d4:	00
44b5d5:	39 14 85 a0 89 4b 00 	cmp    %edx,0x4b89a0(,%eax,4)
44b5dc:	0f 94 c1             	sete   %cl
44b5df:	3b 4d c8             	cmp    -0x38(%ebp),%ecx
44b5e2:	0f 84 76 9a fc ff    	je     0x41505e
44b5e8:	8b 4d ec             	mov    -0x14(%ebp),%ecx
44b5eb:	8b 55 f4             	mov    -0xc(%ebp),%edx
44b5ee:	41                   	inc    %ecx
44b5ef:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44b5f2:	3b ca                	cmp    %edx,%ecx
44b5f4:	0f 8e 5d ff ff ff    	jle    0x44b557
44b5fa:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44b5fd:	e9 a6 05 00 00       	jmp    0x44bba8
44b602:	8b 7d f8             	mov    -0x8(%ebp),%edi
44b605:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44b60c:	83 fa 01             	cmp    $0x1,%edx
44b60f:	0f 8c b7 9a fc ff    	jl     0x4150cc
44b615:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44b618:	0f 83 48 32 00 00    	jae    0x44e866
44b61e:	0f b7 0f             	movzwl (%edi),%ecx
44b621:	83 c7 02             	add    $0x2,%edi
44b624:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44b628:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b62b:	74 2d                	je     0x44b65a
44b62d:	8b c1                	mov    %ecx,%eax
44b62f:	25 00 fc 00 00       	and    $0xfc00,%eax
44b634:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44b639:	75 1f                	jne    0x44b65a
44b63b:	0f b7 07             	movzwl (%edi),%eax
44b63e:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44b644:	c1 e1 0a             	shl    $0xa,%ecx
44b647:	25 ff 03 00 00       	and    $0x3ff,%eax
44b64c:	0b c8                	or     %eax,%ecx
44b64e:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44b654:	83 c7 02             	add    $0x2,%edi
44b657:	89 7d f8             	mov    %edi,-0x8(%ebp)
44b65a:	8b c1                	mov    %ecx,%eax
44b65c:	99                   	cltd
44b65d:	83 e2 7f             	and    $0x7f,%edx
44b660:	03 c2                	add    %edx,%eax
44b662:	c1 f8 07             	sar    $0x7,%eax
44b665:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
44b66c:	c1 e0 07             	shl    $0x7,%eax
44b66f:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
44b675:	79 05                	jns    0x44b67c