44a1a0:	e9 b4 b0 fc ff       	jmp    0x415259
44a1a5:	83 ff 6e             	cmp    $0x6e,%edi
44a1a8:	0f 84 d2 b0 fc ff    	je     0x415280
44a1ae:	e9 d4 b1 fc ff       	jmp    0x415387
44a1b3:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44a1ba:	0f 84 c0 b0 fc ff    	je     0x415280
44a1c0:	3b 86 88 00 00 00    	cmp    0x88(%esi),%eax
44a1c6:	0f 86 b4 b0 fc ff    	jbe    0x415280
44a1cc:	89 4e 68             	mov    %ecx,0x68(%esi)
44a1cf:	39 8e 8c 00 00 00    	cmp    %ecx,0x8c(%esi)
44a1d5:	0f 8f e5 ee ff ff    	jg     0x4490c0
44a1db:	e9 a0 b0 fc ff       	jmp    0x415280
44a1e0:	8b 55 e4             	mov    -0x1c(%ebp),%edx
44a1e3:	39 55 f0             	cmp    %edx,-0x10(%ebp)
44a1e6:	7d 70                	jge    0x44a258
44a1e8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
44a1eb:	3b 46 7c             	cmp    0x7c(%esi),%eax
44a1ee:	73 40                	jae    0x44a230
44a1f0:	0f b7 10             	movzwl (%eax),%edx
44a1f3:	81 fa ff 00 00 00    	cmp    $0xff,%edx
44a1f9:	76 07                	jbe    0x44a202
44a1fb:	83 ff 6e             	cmp    $0x6e,%edi
44a1fe:	75 1f                	jne    0x44a21f
44a200:	eb 53                	jmp    0x44a255
44a202:	8b ca                	mov    %edx,%ecx
44a204:	b8 01 00 00 00       	mov    $0x1,%eax
44a209:	83 e1 07             	and    $0x7,%ecx
44a20c:	c1 ea 03             	shr    $0x3,%edx
44a20f:	d3 e0                	shl    %cl,%eax
44a211:	8b 4d e0             	mov    -0x20(%ebp),%ecx
44a214:	84 04 0a             	test   %al,(%edx,%ecx,1)
44a217:	8b 45 f8             	mov    -0x8(%ebp),%eax
44a21a:	74 39                	je     0x44a255
44a21c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
44a21f:	41                   	inc    %ecx
44a220:	83 c0 02             	add    $0x2,%eax
44a223:	89 45 f8             	mov    %eax,-0x8(%ebp)
44a226:	89 4d f0             	mov    %ecx,-0x10(%ebp)
44a229:	3b 4d e4             	cmp    -0x1c(%ebp),%ecx
44a22c:	7c bd                	jl     0x44a1eb
44a22e:	eb 25                	jmp    0x44a255
44a230:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44a237:	74 1c                	je     0x44a255
44a239:	3b 86 88 00 00 00    	cmp    0x88(%esi),%eax
44a23f:	76 14                	jbe    0x44a255
44a241:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44a248:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44a24f:	0f 8f 6b ee ff ff    	jg     0x4490c0
44a255:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
44a258:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
44a25c:	0f 85 3e aa fc ff    	jne    0x414ca0
44a262:	3b c1                	cmp    %ecx,%eax
44a264:	0f 82 f4 ad fc ff    	jb     0x41505e
44a26a:	8b 7d f8             	mov    -0x8(%ebp),%edi
44a26d:	8b 45 18             	mov    0x18(%ebp),%eax
44a270:	8b d3                	mov    %ebx,%edx
44a272:	40                   	inc    %eax
44a273:	8b cf                	mov    %edi,%ecx
44a275:	50                   	push   %eax
44a276:	ff 75 14             	push   0x14(%ebp)
44a279:	56                   	push   %esi
44a27a:	ff 75 0c             	push   0xc(%ebp)
44a27d:	ff 75 08             	push   0x8(%ebp)
44a280:	e8 3b a7 fc ff       	call   0x4149c0
44a285:	83 c4 14             	add    $0x14,%esp
44a288:	85 c0                	test   %eax,%eax
44a28a:	0f 85 ad a8 fc ff    	jne    0x414b3d
44a290:	83 ef 02             	sub    $0x2,%edi
44a293:	3b 7d d4             	cmp    -0x2c(%ebp),%edi
44a296:	73 d5                	jae    0x44a26d
44a298:	e9 a0 a8 fc ff       	jmp    0x414b3d
44a29d:	8d 43 04             	lea    0x4(%ebx),%eax
44a2a0:	89 45 d8             	mov    %eax,-0x28(%ebp)
44a2a3:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
44a2a7:	0f b7 3c 43          	movzwl (%ebx,%eax,2),%edi
44a2ab:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
44a2ae:	8b cf                	mov    %edi,%ecx
44a2b0:	89 5d d0             	mov    %ebx,-0x30(%ebp)
44a2b3:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44a2b6:	8d 41 9e             	lea    -0x62(%ecx),%eax
44a2b9:	83 f8 0b             	cmp    $0xb,%eax
44a2bc:	0f 87 9c 00 00 00    	ja     0x44a35e
44a2c2:	0f b6 80 0b 02 45 00 	movzbl 0x45020b(%eax),%eax
44a2c9:	ff 24 85 03 02 45 00 	jmp    *0x450203(,%eax,4)
44a2d0:	8d 41 9e             	lea    -0x62(%ecx),%eax
44a2d3:	83 c3 02             	add    $0x2,%ebx
44a2d6:	89 5d d0             	mov    %ebx,-0x30(%ebp)
44a2d9:	83 f8 08             	cmp    $0x8,%eax
44a2dc:	73 0e                	jae    0x44a2ec
44a2de:	8b 4d cc             	mov    -0x34(%ebp),%ecx
44a2e1:	0f b6 c0             	movzbl %al,%eax
44a2e4:	83 e0 01             	and    $0x1,%eax
44a2e7:	89 45 d4             	mov    %eax,-0x2c(%ebp)
44a2ea:	eb 0b                	jmp    0x44a2f7
44a2ec:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44a2ef:	b9 01 00 00 00       	mov    $0x1,%ecx
44a2f4:	89 4d cc             	mov    %ecx,-0x34(%ebp)
44a2f7:	8b 75 ec             	mov    -0x14(%ebp),%esi
44a2fa:	8b 7d ec             	mov    -0x14(%ebp),%edi
44a2fd:	0f be b6 da 56 4a 00 	movsbl 0x4a56da(%esi),%esi
44a304:	0f be bf ce 56 4a 00 	movsbl 0x4a56ce(%edi),%edi
44a30b:	85 f6                	test   %esi,%esi
44a30d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
44a310:	8b 75 10             	mov    0x10(%ebp),%esi
44a313:	89 7d e0             	mov    %edi,-0x20(%ebp)
44a316:	75 5b                	jne    0x44a373
44a318:	8b 55 f8             	mov    -0x8(%ebp),%edx
44a31b:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
44a322:	eb 4f                	jmp    0x44a373
44a324:	0f b7 73 04          	movzwl 0x4(%ebx),%esi
44a328:	33 c0                	xor    %eax,%eax
44a32a:	83 ff 69             	cmp    $0x69,%edi
44a32d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
44a330:	0f 94 c0             	sete   %al
44a333:	33 c9                	xor    %ecx,%ecx
44a335:	83 ff 6d             	cmp    $0x6d,%edi
44a338:	89 45 d4             	mov    %eax,-0x2c(%ebp)
44a33b:	0f b7 7b 02          	movzwl 0x2(%ebx),%edi
44a33f:	0f 94 c1             	sete   %cl
44a342:	89 7d e0             	mov    %edi,-0x20(%ebp)
44a345:	85 f6                	test   %esi,%esi
44a347:	89 4d cc             	mov    %ecx,-0x34(%ebp)
44a34a:	8b 75 10             	mov    0x10(%ebp),%esi
44a34d:	75 07                	jne    0x44a356
44a34f:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
44a356:	83 c3 06             	add    $0x6,%ebx
44a359:	89 5d d0             	mov    %ebx,-0x30(%ebp)
44a35c:	eb 15                	jmp    0x44a373
44a35e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44a361:	bf 01 00 00 00       	mov    $0x1,%edi
44a366:	8b 4d cc             	mov    -0x34(%ebp),%ecx
44a369:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
44a370:	89 7d e0             	mov    %edi,-0x20(%ebp)
44a373:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44a37a:	83 ff 01             	cmp    $0x1,%edi
44a37d:	7c 72                	jl     0x44a3f1
44a37f:	8b 45 f8             	mov    -0x8(%ebp),%eax
44a382:	3b 46 7c             	cmp    0x7c(%esi),%eax
44a385:	0f 83 34 41 00 00    	jae    0x44e4bf
44a38b:	0f b7 08             	movzwl (%eax),%ecx
44a38e:	83 c0 02             	add    $0x2,%eax
44a391:	8b 55 dc             	mov    -0x24(%ebp),%edx
44a394:	89 45 f8             	mov    %eax,-0x8(%ebp)
44a397:	85 d2                	test   %edx,%edx
44a399:	74 2e                	je     0x44a3c9
44a39b:	8b c1                	mov    %ecx,%eax
44a39d:	25 00 fc 00 00       	and    $0xfc00,%eax
44a3a2:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44a3a7:	75 20                	jne    0x44a3c9
44a3a9:	8b 45 f8             	mov    -0x8(%ebp),%eax
44a3ac:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44a3b2:	c1 e1 0a             	shl    $0xa,%ecx
44a3b5:	0f b7 00             	movzwl (%eax),%eax
44a3b8:	25 ff 03 00 00       	and    $0x3ff,%eax
44a3bd:	0b c8                	or     %eax,%ecx
44a3bf:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44a3c5:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
44a3c9:	52                   	push   %edx
44a3ca:	8b 55 d8             	mov    -0x28(%ebp),%edx
44a3cd:	e8 14 47 04 00       	call   0x48eae6
44a3d2:	83 c4 04             	add    $0x4,%esp
44a3d5:	85 c0                	test   %eax,%eax
44a3d7:	0f 84 81 ac fc ff    	je     0x41505e
44a3dd:	8b 45 ec             	mov    -0x14(%ebp),%eax
44a3e0:	40                   	inc    %eax
44a3e1:	89 45 ec             	mov    %eax,-0x14(%ebp)
44a3e4:	3b c7                	cmp    %edi,%eax
44a3e6:	7e 97                	jle    0x44a37f
44a3e8:	8b 55 f8             	mov    -0x8(%ebp),%edx
44a3eb:	8b 45 d4             	mov    -0x2c(%ebp),%eax
44a3ee:	8b 4d cc             	mov    -0x34(%ebp),%ecx
44a3f1:	3b 7d e4             	cmp    -0x1c(%ebp),%edi
44a3f4:	0f 84 25 a6 fc ff    	je     0x414a1f
44a3fa:	85 c0                	test   %eax,%eax
44a3fc:	0f 85 bb 43 00 00    	jne    0x44e7bd
44a402:	8b 45 f8             	mov    -0x8(%ebp),%eax
44a405:	89 45 f0             	mov    %eax,-0x10(%ebp)
44a408:	3b 7d e4             	cmp    -0x1c(%ebp),%edi
44a40b:	7c 0a                	jl     0x44a417
44a40d:	8b f8                	mov    %eax,%edi
44a40f:	e9 a0 00 00 00       	jmp    0x44a4b4
44a414:	8b 45 f8             	mov    -0x8(%ebp),%eax
44a417:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
44a41e:	3b 46 7c             	cmp    0x7c(%esi),%eax
44a421:	73 66                	jae    0x44a489
44a423:	8b 55 dc             	mov    -0x24(%ebp),%edx
44a426:	0f b7 08             	movzwl (%eax),%ecx
44a429:	8b 7d f8             	mov    -0x8(%ebp),%edi
44a42c:	85 d2                	test   %edx,%edx
44a42e:	74 2f                	je     0x44a45f
44a430:	8b c1                	mov    %ecx,%eax
44a432:	25 00 fc 00 00       	and    $0xfc00,%eax
44a437:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44a43c:	75 21                	jne    0x44a45f
44a43e:	0f b7 47 02          	movzwl 0x2(%edi),%eax
44a442:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44a448:	25 ff 03 00 00       	and    $0x3ff,%eax
44a44d:	c1 e1 0a             	shl    $0xa,%ecx
44a450:	0b c8                	or     %eax,%ecx
44a452:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
44a459:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44a45f:	52                   	push   %edx
44a460:	8b 55 d8             	mov    -0x28(%ebp),%edx
44a463:	e8 7e 46 04 00       	call   0x48eae6
44a468:	83 c4 04             	add    $0x4,%esp
44a46b:	85 c0                	test   %eax,%eax
44a46d:	74 42                	je     0x44a4b1
44a46f:	8b 45 f8             	mov    -0x8(%ebp),%eax
44a472:	8b 4d ec             	mov    -0x14(%ebp),%ecx
44a475:	8b 7d e0             	mov    -0x20(%ebp),%edi
44a478:	47                   	inc    %edi
44a479:	89 7d e0             	mov    %edi,-0x20(%ebp)
44a47c:	8d 04 48             	lea    (%eax,%ecx,2),%eax
44a47f:	89 45 f8             	mov    %eax,-0x8(%ebp)
44a482:	3b 7d e4             	cmp    -0x1c(%ebp),%edi
44a485:	7c 8d                	jl     0x44a414
44a487:	eb 25                	jmp    0x44a4ae
44a489:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
44a490:	74 1c                	je     0x44a4ae
44a492:	3b 86 88 00 00 00    	cmp    0x88(%esi),%eax
44a498:	76 14                	jbe    0x44a4ae
44a49a:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
44a4a1:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
44a4a8:	0f 8f 12 ec ff ff    	jg     0x4490c0
44a4ae:	8b 7d f8             	mov    -0x8(%ebp),%edi
44a4b1:	8b 4d cc             	mov    -0x34(%ebp),%ecx
44a4b4:	85 c9                	test   %ecx,%ecx
44a4b6:	0f 85 e4 a7 fc ff    	jne    0x414ca0
44a4bc:	8b 45 18             	mov    0x18(%ebp),%eax
44a4bf:	8b d3                	mov    %ebx,%edx
44a4c1:	40                   	inc    %eax
44a4c2:	8b cf                	mov    %edi,%ecx
44a4c4:	50                   	push   %eax
44a4c5:	ff 75 14             	push   0x14(%ebp)
44a4c8:	56                   	push   %esi
44a4c9:	ff 75 0c             	push   0xc(%ebp)
44a4cc:	ff 75 08             	push   0x8(%ebp)
44a4cf:	e8 ec a4 fc ff       	call   0x4149c0
44a4d4:	83 c4 14             	add    $0x14,%esp
44a4d7:	85 c0                	test   %eax,%eax
44a4d9:	0f 85 5e a6 fc ff    	jne    0x414b3d
44a4df:	8b c7                	mov    %edi,%eax
44a4e1:	83 ef 02             	sub    $0x2,%edi
44a4e4:	3b 45 f0             	cmp    -0x10(%ebp),%eax
44a4e7:	0f 84 71 ab fc ff    	je     0x41505e
44a4ed:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44a4f1:	74 18                	je     0x44a50b
44a4f3:	66 8b 07             	mov    (%edi),%ax
44a4f6:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
44a4fb:	66 23 c1             	and    %cx,%ax
44a4fe:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
44a503:	66 3b c1             	cmp    %cx,%ax
44a506:	75 03                	jne    0x44a50b
44a508:	83 ef 02             	sub    $0x2,%edi
44a50b:	8b 45 18             	mov    0x18(%ebp),%eax
44a50e:	8b d3                	mov    %ebx,%edx
44a510:	40                   	inc    %eax
44a511:	8b cf                	mov    %edi,%ecx
44a513:	50                   	push   %eax
44a514:	ff 75 14             	push   0x14(%ebp)
44a517:	56                   	push   %esi
44a518:	ff 75 0c             	push   0xc(%ebp)
44a51b:	ff 75 08             	push   0x8(%ebp)
44a51e:	e8 9d a4 fc ff       	call   0x4149c0
44a523:	83 c4 14             	add    $0x14,%esp
44a526:	85 c0                	test   %eax,%eax
44a528:	74 b5                	je     0x44a4df
44a52a:	e9 0e a6 fc ff       	jmp    0x414b3d
44a52f:	8b 46 7c             	mov    0x7c(%esi),%eax
44a532:	8b 4d f8             	mov    -0x8(%ebp),%ecx
44a535:	2b c1                	sub    %ecx,%eax
44a537:	83 e0 fe             	and    $0xfffffffe,%eax
44a53a:	83 f8 02             	cmp    $0x2,%eax
44a53d:	0f 8c e3 41 00 00    	jl     0x44e726
44a543:	66 8b 01             	mov    (%ecx),%ax
44a546:	83 c1 02             	add    $0x2,%ecx
44a549:	89 4d f8             	mov    %ecx,-0x8(%ebp)
44a54c:	66 39 43 02          	cmp    %ax,0x2(%ebx)
44a550:	0f 85 08 ab fc ff    	jne    0x41505e
44a556:	83 c3 04             	add    $0x4,%ebx
44a559:	e9 3f a7 fc ff       	jmp    0x414c9d
44a55e:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
44a562:	81 e7 ff 03 00 00    	and    $0x3ff,%edi
44a568:	25 ff 03 00 00       	and    $0x3ff,%eax
44a56d:	c1 e7 0a             	shl    $0xa,%edi
44a570:	0b f8                	or     %eax,%edi
44a572:	ba 02 00 00 00       	mov    $0x2,%edx
44a577:	81 c7 00 00 01 00    	add    $0x10000,%edi
44a57d:	e9 4c a8 fc ff       	jmp    0x414dce
44a582:	83 c0 02             	add    $0x2,%eax
44a585:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44a588:	89 45 f8             	mov    %eax,-0x8(%ebp)
44a58b:	8b c1                	mov    %ecx,%eax
44a58d:	25 00 fc 00 00       	and    $0xfc00,%eax
44a592:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44a597:	75 23                	jne    0x44a5bc
44a599:	8b 45 f8             	mov    -0x8(%ebp),%eax
44a59c:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44a5a2:	c1 e1 0a             	shl    $0xa,%ecx
44a5a5:	0f b7 00             	movzwl (%eax),%eax
44a5a8:	25 ff 03 00 00       	and    $0x3ff,%eax
44a5ad:	0b c8                	or     %eax,%ecx
44a5af:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44a5b5:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
44a5b9:	89 4d ec             	mov    %ecx,-0x14(%ebp)
44a5bc:	8d 1c 53             	lea    (%ebx,%edx,2),%ebx
44a5bf:	8b 55 f8             	mov    -0x8(%ebp),%edx
44a5c2:	89 5d d0             	mov    %ebx,-0x30(%ebp)
44a5c5:	3b f9                	cmp    %ecx,%edi
44a5c7:	0f 84 52 a4 fc ff    	je     0x414a1f
44a5cd:	8b c7                	mov    %edi,%eax
44a5cf:	99                   	cltd
44a5d0:	83 e2 7f             	and    $0x7f,%edx
44a5d3:	03 c2                	add    %edx,%eax
44a5d5:	c1 f8 07             	sar    $0x7,%eax
44a5d8:	0f b6 88 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%ecx
44a5df:	8b c7                	mov    %edi,%eax
44a5e1:	c1 e1 07             	shl    $0x7,%ecx
44a5e4:	25 7f 00 00 80       	and    $0x8000007f,%eax
44a5e9:	79 05                	jns    0x44a5f0
44a5eb:	48                   	dec    %eax
44a5ec:	83 c8 80             	or     $0xffffff80,%eax
44a5ef:	40                   	inc    %eax
44a5f0:	03 c8                	add    %eax,%ecx
44a5f2:	0f b7 04 4d 40 58 4a 	movzwl 0x4a5840(,%ecx,2),%eax
44a5f9:	00
44a5fa:	8b 04 c5 54 2f 4a 00 	mov    0x4a2f54(,%eax,8),%eax
44a601:	03 c7                	add    %edi,%eax
44a603:	39 45 ec             	cmp    %eax,-0x14(%ebp)
44a606:	0f 85 52 aa fc ff    	jne    0x41505e
44a60c:	e9 8f a6 fc ff       	jmp    0x414ca0
44a611:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
44a615:	ba ff 00 00 00       	mov    $0xff,%edx
44a61a:	66 3b ca             	cmp    %dx,%cx
44a61d:	77 0c                	ja     0x44a62b
44a61f:	8b 46 3c             	mov    0x3c(%esi),%eax
44a622:	0f b6 14 08          	movzbl (%eax,%ecx,1),%edx
44a626:	8b 45 f8             	mov    -0x8(%ebp),%eax
44a629:	eb 02                	jmp    0x44a62d
44a62b:	8b d1                	mov    %ecx,%edx
44a62d:	0f b7 08             	movzwl (%eax),%ecx
44a630:	bf ff 00 00 00       	mov    $0xff,%edi
44a635:	66 3b cf             	cmp    %di,%cx
44a638:	77 0a                	ja     0x44a644
44a63a:	8b 46 3c             	mov    0x3c(%esi),%eax
44a63d:	0f b6 0c 08          	movzbl (%eax,%ecx,1),%ecx
44a641:	8b 45 f8             	mov    -0x8(%ebp),%eax
44a644:	3b d1                	cmp    %ecx,%edx
44a646:	0f 85 12 aa fc ff    	jne    0x41505e
44a64c:	83 c0 02             	add    $0x2,%eax