449494:	0f b7 00             	movzwl (%eax),%eax
449497:	b9 ff 00 00 00       	mov    $0xff,%ecx
44949c:	66 3b c1             	cmp    %cx,%ax
44949f:	0f 87 ac fe ff ff    	ja     0x449351
4494a5:	8b c8                	mov    %eax,%ecx
4494a7:	8b 46 44             	mov    0x44(%esi),%eax
4494aa:	f6 04 01 10          	testb  $0x10,(%ecx,%eax,1)
4494ae:	0f 84 9d fe ff ff    	je     0x449351
4494b4:	b9 01 00 00 00       	mov    $0x1,%ecx
4494b9:	e9 95 fe ff ff       	jmp    0x449353
4494be:	3b cf                	cmp    %edi,%ecx
4494c0:	0f 85 98 bb fc ff    	jne    0x41505e
4494c6:	e9 d5 b7 fc ff       	jmp    0x414ca0
4494cb:	8b 56 18             	mov    0x18(%esi),%edx
4494ce:	8b 4e 7c             	mov    0x7c(%esi),%ecx
4494d1:	85 d2                	test   %edx,%edx
4494d3:	74 25                	je     0x4494fa
4494d5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4494d8:	8b 7d dc             	mov    -0x24(%ebp),%edi
4494db:	3b c1                	cmp    %ecx,%eax
4494dd:	73 53                	jae    0x449532
4494df:	57                   	push   %edi
4494e0:	8d 46 1c             	lea    0x1c(%esi),%eax
4494e3:	50                   	push   %eax
4494e4:	51                   	push   %ecx
4494e5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4494e8:	e8 b2 c9 fc ff       	call   0x415e9f
4494ed:	83 c4 0c             	add    $0xc,%esp
4494f0:	85 c0                	test   %eax,%eax
4494f2:	0f 85 66 bb fc ff    	jne    0x41505e
4494f8:	eb 35                	jmp    0x44952f
4494fa:	8b 56 1c             	mov    0x1c(%esi),%edx
4494fd:	8d 04 12             	lea    (%edx,%edx,1),%eax
449500:	2b c8                	sub    %eax,%ecx
449502:	8b 45 f8             	mov    -0x8(%ebp),%eax
449505:	3b c1                	cmp    %ecx,%eax
449507:	77 23                	ja     0x44952c
449509:	66 8b 00             	mov    (%eax),%ax
44950c:	66 3b 46 34          	cmp    0x34(%esi),%ax
449510:	75 1a                	jne    0x44952c
449512:	83 fa 01             	cmp    $0x1,%edx
449515:	0f 84 43 bb fc ff    	je     0x41505e
44951b:	8b 45 f8             	mov    -0x8(%ebp),%eax
44951e:	66 8b 40 02          	mov    0x2(%eax),%ax
449522:	66 3b 46 36          	cmp    0x36(%esi),%ax
449526:	0f 84 32 bb fc ff    	je     0x41505e
44952c:	8b 7d dc             	mov    -0x24(%ebp),%edi
44952f:	8b 45 f8             	mov    -0x8(%ebp),%eax
449532:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
449539:	74 37                	je     0x449572
44953b:	83 c0 02             	add    $0x2,%eax
44953e:	3b 46 7c             	cmp    0x7c(%esi),%eax
449541:	8b 45 f8             	mov    -0x8(%ebp),%eax
449544:	72 2c                	jb     0x449572
449546:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
44954a:	75 26                	jne    0x449572
44954c:	83 7e 1c 02          	cmpl   $0x2,0x1c(%esi)
449550:	75 20                	jne    0x449572
449552:	66 8b 00             	mov    (%eax),%ax
449555:	66 3b 46 34          	cmp    0x34(%esi),%ax
449559:	75 14                	jne    0x44956f
44955b:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
449562:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
449569:	0f 8f 51 fb ff ff    	jg     0x4490c0
44956f:	8b 45 f8             	mov    -0x8(%ebp),%eax
449572:	8b 4e 7c             	mov    0x7c(%esi),%ecx
449575:	3b c1                	cmp    %ecx,%eax
449577:	0f 83 42 4f 00 00    	jae    0x44e4bf
44957d:	83 c0 02             	add    $0x2,%eax
449580:	89 45 f8             	mov    %eax,-0x8(%ebp)
449583:	85 ff                	test   %edi,%edi
449585:	0f 84 0f b7 fc ff    	je     0x414c9a
44958b:	3b c1                	cmp    %ecx,%eax
44958d:	0f 83 07 b7 fc ff    	jae    0x414c9a
449593:	66 8b 00             	mov    (%eax),%ax
449596:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
44959b:	66 23 c1             	and    %cx,%ax
44959e:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
4495a3:	66 3b c1             	cmp    %cx,%ax
4495a6:	0f 85 ee b6 fc ff    	jne    0x414c9a
4495ac:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
4495b0:	e9 e5 b6 fc ff       	jmp    0x414c9a
4495b5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4495b8:	3b 46 7c             	cmp    0x7c(%esi),%eax
4495bb:	0f 83 fe 4e 00 00    	jae    0x44e4bf
4495c1:	83 c0 02             	add    $0x2,%eax
4495c4:	89 45 f8             	mov    %eax,-0x8(%ebp)
4495c7:	e9 ce b6 fc ff       	jmp    0x414c9a
4495cc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4495cf:	3b 46 7c             	cmp    0x7c(%esi),%eax
4495d2:	0f 83 e7 4e 00 00    	jae    0x44e4bf
4495d8:	0f b7 08             	movzwl (%eax),%ecx
4495db:	83 c0 02             	add    $0x2,%eax
4495de:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
4495e2:	89 45 f8             	mov    %eax,-0x8(%ebp)
4495e5:	74 2e                	je     0x449615
4495e7:	8b c1                	mov    %ecx,%eax
4495e9:	25 00 fc 00 00       	and    $0xfc00,%eax
4495ee:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4495f3:	75 20                	jne    0x449615
4495f5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4495f8:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
4495fe:	c1 e1 0a             	shl    $0xa,%ecx
449601:	0f b7 00             	movzwl (%eax),%eax
449604:	25 ff 03 00 00       	and    $0x3ff,%eax
449609:	0b c8                	or     %eax,%ecx
44960b:	81 c1 00 00 01 00    	add    $0x10000,%ecx
449611:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
449615:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
44961b:	0f 83 79 b6 fc ff    	jae    0x414c9a
449621:	8b 46 44             	mov    0x44(%esi),%eax
449624:	f6 04 01 04          	testb  $0x4,(%ecx,%eax,1)
449628:	0f 85 30 ba fc ff    	jne    0x41505e
44962e:	e9 67 b6 fc ff       	jmp    0x414c9a
449633:	8b 45 f8             	mov    -0x8(%ebp),%eax
449636:	3b 46 7c             	cmp    0x7c(%esi),%eax
449639:	0f 83 80 4e 00 00    	jae    0x44e4bf
44963f:	0f b7 08             	movzwl (%eax),%ecx
449642:	83 c0 02             	add    $0x2,%eax
449645:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
449649:	89 45 f8             	mov    %eax,-0x8(%ebp)
44964c:	74 2e                	je     0x44967c
44964e:	8b c1                	mov    %ecx,%eax
449650:	25 00 fc 00 00       	and    $0xfc00,%eax
449655:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44965a:	75 20                	jne    0x44967c
44965c:	8b 45 f8             	mov    -0x8(%ebp),%eax
44965f:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
449665:	c1 e1 0a             	shl    $0xa,%ecx
449668:	0f b7 00             	movzwl (%eax),%eax
44966b:	25 ff 03 00 00       	and    $0x3ff,%eax
449670:	0b c8                	or     %eax,%ecx
449672:	81 c1 00 00 01 00    	add    $0x10000,%ecx
449678:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
44967c:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
449682:	0f 87 d6 b9 fc ff    	ja     0x41505e
449688:	8b 46 44             	mov    0x44(%esi),%eax
44968b:	f6 04 01 04          	testb  $0x4,(%ecx,%eax,1)
44968f:	0f 84 c9 b9 fc ff    	je     0x41505e
449695:	e9 00 b6 fc ff       	jmp    0x414c9a
44969a:	8b 45 f8             	mov    -0x8(%ebp),%eax
44969d:	3b 46 7c             	cmp    0x7c(%esi),%eax
4496a0:	0f 83 19 4e 00 00    	jae    0x44e4bf
4496a6:	0f b7 08             	movzwl (%eax),%ecx
4496a9:	83 c0 02             	add    $0x2,%eax
4496ac:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
4496b0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4496b3:	74 2e                	je     0x4496e3
4496b5:	8b c1                	mov    %ecx,%eax
4496b7:	25 00 fc 00 00       	and    $0xfc00,%eax
4496bc:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4496c1:	75 20                	jne    0x4496e3
4496c3:	8b 45 f8             	mov    -0x8(%ebp),%eax
4496c6:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
4496cc:	c1 e1 0a             	shl    $0xa,%ecx
4496cf:	0f b7 00             	movzwl (%eax),%eax
4496d2:	25 ff 03 00 00       	and    $0x3ff,%eax
4496d7:	0b c8                	or     %eax,%ecx
4496d9:	81 c1 00 00 01 00    	add    $0x10000,%ecx
4496df:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
4496e3:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
4496e9:	0f 83 ab b5 fc ff    	jae    0x414c9a
4496ef:	8b 46 44             	mov    0x44(%esi),%eax
4496f2:	f6 04 01 01          	testb  $0x1,(%ecx,%eax,1)
4496f6:	0f 85 62 b9 fc ff    	jne    0x41505e
4496fc:	e9 99 b5 fc ff       	jmp    0x414c9a
449701:	8b 45 f8             	mov    -0x8(%ebp),%eax
449704:	3b 46 7c             	cmp    0x7c(%esi),%eax
449707:	0f 83 b2 4d 00 00    	jae    0x44e4bf
44970d:	0f b7 08             	movzwl (%eax),%ecx
449710:	83 c0 02             	add    $0x2,%eax
449713:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
449717:	89 45 f8             	mov    %eax,-0x8(%ebp)
44971a:	74 2e                	je     0x44974a
44971c:	8b c1                	mov    %ecx,%eax
44971e:	25 00 fc 00 00       	and    $0xfc00,%eax
449723:	3d 00 d8 00 00       	cmp    $0xd800,%eax
449728:	75 20                	jne    0x44974a
44972a:	8b 45 f8             	mov    -0x8(%ebp),%eax
44972d:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
449733:	c1 e1 0a             	shl    $0xa,%ecx
449736:	0f b7 00             	movzwl (%eax),%eax
449739:	25 ff 03 00 00       	and    $0x3ff,%eax
44973e:	0b c8                	or     %eax,%ecx
449740:	81 c1 00 00 01 00    	add    $0x10000,%ecx
449746:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
44974a:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
449750:	0f 87 08 b9 fc ff    	ja     0x41505e
449756:	8b 46 44             	mov    0x44(%esi),%eax
449759:	f6 04 01 01          	testb  $0x1,(%ecx,%eax,1)
44975d:	0f 84 fb b8 fc ff    	je     0x41505e
449763:	e9 32 b5 fc ff       	jmp    0x414c9a
449768:	8b 45 f8             	mov    -0x8(%ebp),%eax
44976b:	3b 46 7c             	cmp    0x7c(%esi),%eax
44976e:	0f 83 4b 4d 00 00    	jae    0x44e4bf
449774:	0f b7 08             	movzwl (%eax),%ecx
449777:	83 c0 02             	add    $0x2,%eax
44977a:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44977e:	89 45 f8             	mov    %eax,-0x8(%ebp)
449781:	74 2e                	je     0x4497b1
449783:	8b c1                	mov    %ecx,%eax
449785:	25 00 fc 00 00       	and    $0xfc00,%eax
44978a:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44978f:	75 20                	jne    0x4497b1
449791:	8b 45 f8             	mov    -0x8(%ebp),%eax
449794:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44979a:	c1 e1 0a             	shl    $0xa,%ecx
44979d:	0f b7 00             	movzwl (%eax),%eax
4497a0:	25 ff 03 00 00       	and    $0x3ff,%eax
4497a5:	0b c8                	or     %eax,%ecx
4497a7:	81 c1 00 00 01 00    	add    $0x10000,%ecx
4497ad:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
4497b1:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
4497b7:	0f 83 dd b4 fc ff    	jae    0x414c9a
4497bd:	8b 46 44             	mov    0x44(%esi),%eax
4497c0:	f6 04 01 10          	testb  $0x10,(%ecx,%eax,1)
4497c4:	0f 85 94 b8 fc ff    	jne    0x41505e
4497ca:	e9 cb b4 fc ff       	jmp    0x414c9a
4497cf:	8b 45 f8             	mov    -0x8(%ebp),%eax
4497d2:	3b 46 7c             	cmp    0x7c(%esi),%eax
4497d5:	0f 83 e4 4c 00 00    	jae    0x44e4bf
4497db:	0f b7 08             	movzwl (%eax),%ecx
4497de:	83 c0 02             	add    $0x2,%eax
4497e1:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
4497e5:	89 45 f8             	mov    %eax,-0x8(%ebp)
4497e8:	74 2e                	je     0x449818
4497ea:	8b c1                	mov    %ecx,%eax
4497ec:	25 00 fc 00 00       	and    $0xfc00,%eax
4497f1:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4497f6:	75 20                	jne    0x449818
4497f8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4497fb:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
449801:	c1 e1 0a             	shl    $0xa,%ecx
449804:	0f b7 00             	movzwl (%eax),%eax
449807:	25 ff 03 00 00       	and    $0x3ff,%eax
44980c:	0b c8                	or     %eax,%ecx
44980e:	81 c1 00 00 01 00    	add    $0x10000,%ecx
449814:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
449818:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
44981e:	0f 87 3a b8 fc ff    	ja     0x41505e
449824:	8b 46 44             	mov    0x44(%esi),%eax
449827:	f6 04 01 10          	testb  $0x10,(%ecx,%eax,1)
44982b:	0f 84 2d b8 fc ff    	je     0x41505e
449831:	e9 64 b4 fc ff       	jmp    0x414c9a
449836:	8b 56 7c             	mov    0x7c(%esi),%edx
449839:	8b 45 f8             	mov    -0x8(%ebp),%eax
44983c:	3b c2                	cmp    %edx,%eax
44983e:	0f 83 7b 4c 00 00    	jae    0x44e4bf
449844:	0f b7 08             	movzwl (%eax),%ecx
449847:	83 c0 02             	add    $0x2,%eax
44984a:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44984e:	89 45 f8             	mov    %eax,-0x8(%ebp)
449851:	74 31                	je     0x449884
449853:	8b c1                	mov    %ecx,%eax
449855:	25 00 fc 00 00       	and    $0xfc00,%eax
44985a:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44985f:	8b 45 f8             	mov    -0x8(%ebp),%eax
449862:	75 20                	jne    0x449884
449864:	0f b7 00             	movzwl (%eax),%eax
449867:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
44986d:	25 ff 03 00 00       	and    $0x3ff,%eax
449872:	c1 e1 0a             	shl    $0xa,%ecx
449875:	0b c8                	or     %eax,%ecx
449877:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44987d:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
449881:	8b 45 f8             	mov    -0x8(%ebp),%eax
449884:	83 f9 0d             	cmp    $0xd,%ecx
449887:	77 67                	ja     0x4498f0
449889:	74 1a                	je     0x4498a5
44988b:	83 f9 0a             	cmp    $0xa,%ecx
44988e:	0f 84 06 b4 fc ff    	je     0x414c9a
449894:	0f 86 c4 b7 fc ff    	jbe    0x41505e
44989a:	83 f9 0c             	cmp    $0xc,%ecx
44989d:	0f 87 bb b7 fc ff    	ja     0x41505e
4498a3:	eb 62                	jmp    0x449907
4498a5:	3b c2                	cmp    %edx,%eax
4498a7:	72 32                	jb     0x4498db
4498a9:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
4498b0:	0f 84 e4 b3 fc ff    	je     0x414c9a
4498b6:	3b 86 88 00 00 00    	cmp    0x88(%esi),%eax
4498bc:	0f 86 d8 b3 fc ff    	jbe    0x414c9a
4498c2:	c7 46 68 01 00 00 00 	movl   $0x1,0x68(%esi)
4498c9:	83 be 8c 00 00 00 01 	cmpl   $0x1,0x8c(%esi)
4498d0:	0f 8f ea f7 ff ff    	jg     0x4490c0
4498d6:	e9 bf b3 fc ff       	jmp    0x414c9a
4498db:	66 83 38 0a          	cmpw   $0xa,(%eax)
4498df:	0f 85 b5 b3 fc ff    	jne    0x414c9a
4498e5:	83 c0 02             	add    $0x2,%eax
4498e8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4498eb:	e9 aa b3 fc ff       	jmp    0x414c9a
4498f0:	81 f9 85 00 00 00    	cmp    $0x85,%ecx
4498f6:	74 0f                	je     0x449907
4498f8:	8d 81 d8 df ff ff    	lea    -0x2028(%ecx),%eax
4498fe:	83 f8 01             	cmp    $0x1,%eax
449901:	0f 87 57 b7 fc ff    	ja     0x41505e
449907:	83 7e 6c 00          	cmpl   $0x0,0x6c(%esi)
44990b:	0f 85 4d b7 fc ff    	jne    0x41505e
449911:	e9 84 b3 fc ff       	jmp    0x414c9a
449916:	8b 45 f8             	mov    -0x8(%ebp),%eax
449919:	3b 46 7c             	cmp    0x7c(%esi),%eax
44991c:	0f 83 9d 4b 00 00    	jae    0x44e4bf
449922:	0f b7 08             	movzwl (%eax),%ecx
449925:	83 c0 02             	add    $0x2,%eax
449928:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
44992c:	89 45 f8             	mov    %eax,-0x8(%ebp)
44992f:	74 2e                	je     0x44995f
449931:	8b c1                	mov    %ecx,%eax
449933:	25 00 fc 00 00       	and    $0xfc00,%eax
449938:	3d 00 d8 00 00       	cmp    $0xd800,%eax
44993d:	75 20                	jne    0x44995f
44993f:	8b 45 f8             	mov    -0x8(%ebp),%eax
449942:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
449948:	c1 e1 0a             	shl    $0xa,%ecx
44994b:	0f b7 00             	movzwl (%eax),%eax
44994e:	25 ff 03 00 00       	and    $0x3ff,%eax
449953:	0b c8                	or     %eax,%ecx
449955:	81 c1 00 00 01 00    	add    $0x10000,%ecx
44995b:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
44995f:	81 f9 0e 18 00 00    	cmp    $0x180e,%ecx
449965:	77 3c                	ja     0x4499a3
449967:	0f 84 f1 b6 fc ff    	je     0x41505e
44996d:	81 f9 a0 00 00 00    	cmp    $0xa0,%ecx
449973:	77 1d                	ja     0x449992
449975:	0f 84 e3 b6 fc ff    	je     0x41505e
44997b:	83 f9 09             	cmp    $0x9,%ecx
44997e:	0f 84 da b6 fc ff    	je     0x41505e
449984:	83 f9 20             	cmp    $0x20,%ecx
449987:	0f 84 d1 b6 fc ff    	je     0x41505e
44998d:	e9 08 b3 fc ff       	jmp    0x414c9a
449992:	81 f9 80 16 00 00    	cmp    $0x1680,%ecx
449998:	0f 84 c0 b6 fc ff    	je     0x41505e
44999e:	e9 f7 b2 fc ff       	jmp    0x414c9a
4499a3:	81 f9 5f 20 00 00    	cmp    $0x205f,%ecx
4499a9:	77 2f                	ja     0x4499da
4499ab:	0f 84 ad b6 fc ff    	je     0x41505e
4499b1:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
4499b7:	0f 82 dd b2 fc ff    	jb     0x414c9a
4499bd:	81 f9 0a 20 00 00    	cmp    $0x200a,%ecx
4499c3:	0f 86 95 b6 fc ff    	jbe    0x41505e
4499c9:	81 f9 2f 20 00 00    	cmp    $0x202f,%ecx
4499cf:	0f 84 89 b6 fc ff    	je     0x41505e
4499d5:	e9 c0 b2 fc ff       	jmp    0x414c9a
4499da:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
4499e0:	0f 84 78 b6 fc ff    	je     0x41505e
4499e6:	e9 af b2 fc ff       	jmp    0x414c9a
4499eb:	8b 45 f8             	mov    -0x8(%ebp),%eax
4499ee:	3b 46 7c             	cmp    0x7c(%esi),%eax
4499f1:	0f 83 c8 4a 00 00    	jae    0x44e4bf
4499f7:	0f b7 08             	movzwl (%eax),%ecx
4499fa:	83 c0 02             	add    $0x2,%eax