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
44f4f9:	0f 83 67 f3 ff ff    	jae    0x44e866
44f4ff:	0f b7 0f             	movzwl (%edi),%ecx
44f502:	83 c7 02             	add    $0x2,%edi
44f505:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44f509:	74 2a                	je     0x44f535
44f50b:	8b c1                	mov    %ecx,%eax
44f50d:	25 00 fc 00 00       	and    $0xfc00,%eax
44f512:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44f517:	75 1c                	jne    0x44f535
44f519:	0f b7 07             	movzwl (%edi),%eax
44f51c:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44f522:	c1 e1 0a             	shl    $0xa,%ecx
44f525:	25 ff 03 00 00       	and    $0x3ff,%eax
44f52a:	0b c8                	or     %eax,%ecx
44f52c:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44f532:	83 c7 02             	add    $0x2,%edi
44f535:	83 f9 24             	cmp    $0x24,%ecx
44f538:	74 26                	je     0x44f560
44f53a:	83 f9 40             	cmp    $0x40,%ecx
44f53d:	74 21                	je     0x44f560
44f53f:	83 f9 60             	cmp    $0x60,%ecx
44f542:	74 1c                	je     0x44f560
44f544:	81 f9 a0 00 00 00    	cmp    $0xa0,%ecx
44f54a:	72 08                	jb     0x44f554
44f54c:	81 f9 ff d7 00 00    	cmp    $0xd7ff,%ecx
44f552:	76 0c                	jbe    0x44f560
44f554:	81 f9 00 e0 00 00    	cmp    $0xe000,%ecx
44f55a:	73 04                	jae    0x44f560
44f55c:	33 c0                	xor    %eax,%eax
44f55e:	eb 05                	jmp    0x44f565
44f560:	b8 01 00 00 00       	mov    $0x1,%eax
44f565:	3b 45 c8             	cmp    -0x38(%ebp),%eax
44f568:	0f 84 f0 5a fc ff    	je     0x41505e
44f56e:	8b 45 18             	mov    0x18(%ebp),%eax
44f571:	42                   	inc    %edx
44f572:	40                   	inc    %eax
44f573:	89 55 f4             	mov    %edx,-0xc(%ebp)
44f576:	50                   	push   %eax
44f577:	ff 75 14             	push   0x14(%ebp)
44f57a:	8b d3                	mov    %ebx,%edx
44f57c:	8b cf                	mov    %edi,%ecx
44f57e:	56                   	push   %esi
44f57f:	ff 75 0c             	push   0xc(%ebp)
44f582:	ff 75 08             	push   0x8(%ebp)
44f585:	e8 36 54 fc ff       	call   0x4149c0
44f58a:	83 c4 14             	add    $0x14,%esp
44f58d:	85 c0                	test   %eax,%eax
44f58f:	0f 84 55 ff ff ff    	je     0x44f4ea
44f595:	e9 a3 55 fc ff       	jmp    0x414b3d
44f59a:	85 c0                	test   %eax,%eax
44f59c:	0f 85 9b 55 fc ff    	jne    0x414b3d
44f5a2:	8b 45 e8             	mov    -0x18(%ebp),%eax
44f5a5:	39 45 f4             	cmp    %eax,-0xc(%ebp)
44f5a8:	0f 8d b0 5a fc ff    	jge    0x41505e
44f5ae:	3b 7e 7c             	cmp    0x7c(%esi),%edi
44f5b1:	0f 83 af f2 ff ff    	jae    0x44e866
44f5b7:	0f b7 0f             	movzwl (%edi),%ecx
44f5ba:	83 c7 02             	add    $0x2,%edi
44f5bd:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44f5c1:	74 2a                	je     0x44f5ed
44f5c3:	8b c1                	mov    %ecx,%eax
44f5c5:	25 00 fc 00 00       	and    $0xfc00,%eax
44f5ca:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44f5cf:	75 1c                	jne    0x44f5ed
44f5d1:	0f b7 07             	movzwl (%edi),%eax
44f5d4:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44f5da:	c1 e1 0a             	shl    $0xa,%ecx
44f5dd:	25 ff 03 00 00       	and    $0x3ff,%eax
44f5e2:	0b c8                	or     %eax,%ecx
44f5e4:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44f5ea:	83 c7 02             	add    $0x2,%edi
44f5ed:	8b c1                	mov    %ecx,%eax
44f5ef:	99                   	cltd
44f5f0:	83 e2 7f             	and    $0x7f,%edx
44f5f3:	03 c2                	add    %edx,%eax
44f5f5:	c1 f8 07             	sar    $0x7,%eax
44f5f8:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
44f5ff:	c1 e0 07             	shl    $0x7,%eax
44f602:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
44f608:	79 05                	jns    0x44f60f
44f60a:	49                   	dec    %ecx
44f60b:	83 c9 80             	or     $0xffffff80,%ecx
44f60e:	41                   	inc    %ecx
44f60f:	03 c1                	add    %ecx,%eax
44f611:	0f b7 04 45 40 58 4a 	movzwl 0x4a5840(,%eax,2),%eax
44f618:	00
44f619:	0f b6 0c c5 52 2f 4a 	movzbl 0x4a2f52(,%eax,8),%ecx
44f620:	00
44f621:	8b 46 7c             	mov    0x7c(%esi),%eax
44f624:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44f627:	3b f8                	cmp    %eax,%edi
44f629:	0f 83 a0 00 00 00    	jae    0x44f6cf
44f62f:	8b d9                	mov    %ecx,%ebx
44f631:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44f635:	0f b7 0f             	movzwl (%edi),%ecx
44f638:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44f63f:	74 2f                	je     0x44f670
44f641:	8b c1                	mov    %ecx,%eax
44f643:	25 00 fc 00 00       	and    $0xfc00,%eax
44f648:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44f64d:	75 21                	jne    0x44f670
44f64f:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44f653:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44f659:	25 ff 03 00 00       	and    $0x3ff,%eax
44f65e:	c1 e1 0a             	shl    $0xa,%ecx
44f661:	0b c8                	or     %eax,%ecx
44f663:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
44f66a:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44f670:	8b c1                	mov    %ecx,%eax
44f672:	99                   	cltd
44f673:	83 e2 7f             	and    $0x7f,%edx
44f676:	03 c2                	add    %edx,%eax
44f678:	c1 f8 07             	sar    $0x7,%eax
44f67b:	0f b6 80 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%eax
44f682:	c1 e0 07             	shl    $0x7,%eax
44f685:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
44f68b:	79 05                	jns    0x44f692
44f68d:	49                   	dec    %ecx
44f68e:	83 c9 80             	or     $0xffffff80,%ecx
44f691:	41                   	inc    %ecx
44f692:	03 c1                	add    %ecx,%eax
44f694:	0f b7 04 45 40 58 4a 	movzwl 0x4a5840(,%eax,2),%eax
44f69b:	00
44f69c:	0f b6 0c c5 52 2f 4a 	movzbl 0x4a2f52(,%eax,8),%ecx
44f6a3:	00
44f6a4:	b8 01 00 00 00       	mov    $0x1,%eax
44f6a9:	d3 e0                	shl    %cl,%eax
44f6ab:	85 04 9d 00 58 4a 00 	test   %eax,0x4a5800(,%ebx,4)
44f6b2:	74 15                	je     0x44f6c9
44f6b4:	8b 45 ec             	mov    -0x14(%ebp),%eax
44f6b7:	8b d9                	mov    %ecx,%ebx
44f6b9:	8d 3c 47             	lea    (%edi,%eax,2),%edi
44f6bc:	8b 46 7c             	mov    0x7c(%esi),%eax
44f6bf:	3b f8                	cmp    %eax,%edi
44f6c1:	0f 82 6a ff ff ff    	jb     0x44f631
44f6c7:	eb 03                	jmp    0x44f6cc
44f6c9:	8b 46 7c             	mov    0x7c(%esi),%eax
44f6cc:	8b 5d d0             	mov    -0x30(%ebp),%ebx
44f6cf:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44f6d6:	74 20                	je     0x44f6f8
44f6d8:	3b f8                	cmp    %eax,%edi
44f6da:	72 1c                	jb     0x44f6f8
44f6dc:	3b be 88 00 00 00    	cmp    0x88(%esi),%edi
44f6e2:	76 14                	jbe    0x44f6f8
44f6e4:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44f6eb:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44f6f2:	0f 8f c8 99 ff ff    	jg     0x4490c0
44f6f8:	8b 45 18             	mov    0x18(%ebp),%eax
44f6fb:	8b d3                	mov    %ebx,%edx
44f6fd:	ff 45 f4             	incl   -0xc(%ebp)
44f700:	40                   	inc    %eax
44f701:	50                   	push   %eax
44f702:	ff 75 14             	push   0x14(%ebp)
44f705:	8b cf                	mov    %edi,%ecx
44f707:	56                   	push   %esi
44f708:	ff 75 0c             	push   0xc(%ebp)
44f70b:	ff 75 08             	push   0x8(%ebp)
44f70e:	e8 ad 52 fc ff       	call   0x4149c0
44f713:	83 c4 14             	add    $0x14,%esp
44f716:	85 c0                	test   %eax,%eax
44f718:	0f 84 84 fe ff ff    	je     0x44f5a2
44f71e:	e9 1a 54 fc ff       	jmp    0x414b3d
44f723:	8b 56 1c             	mov    0x1c(%esi),%edx
44f726:	8d 04 12             	lea    (%edx,%edx,1),%eax
44f729:	2b c8                	sub    %eax,%ecx
44f72b:	3b f9                	cmp    %ecx,%edi
44f72d:	0f 87 2f 5a fc ff    	ja     0x415162
44f733:	66 8b 07             	mov    (%edi),%ax
44f736:	66 3b 46 34          	cmp    0x34(%esi),%ax
44f73a:	0f 85 22 5a fc ff    	jne    0x415162
44f740:	83 fa 01             	cmp    $0x1,%edx
44f743:	0f 84 15 59 fc ff    	je     0x41505e
44f749:	66 8b 47 02          	mov    0x2(%edi),%ax
44f74d:	66 3b 46 36          	cmp    0x36(%esi),%ax
44f751:	0f 84 07 59 fc ff    	je     0x41505e