4224b8:	0f b7 1f             	movzwl (%edi),%ebx
4224bb:	8b f7                	mov    %edi,%esi
4224bd:	66 85 db             	test   %bx,%bx
4224c0:	74 12                	je     0x4224d4
4224c2:	8b d3                	mov    %ebx,%edx
4224c4:	66 3b d1             	cmp    %cx,%dx
4224c7:	74 18                	je     0x4224e1
4224c9:	83 c6 02             	add    $0x2,%esi
4224cc:	0f b7 16             	movzwl (%esi),%edx
4224cf:	66 85 d2             	test   %dx,%dx
4224d2:	75 f0                	jne    0x4224c4
4224d4:	83 c0 02             	add    $0x2,%eax
4224d7:	0f b7 08             	movzwl (%eax),%ecx
4224da:	66 85 c9             	test   %cx,%cx
4224dd:	75 dc                	jne    0x4224bb
4224df:	33 c0                	xor    %eax,%eax
4224e1:	5f                   	pop    %edi
4224e2:	5e                   	pop    %esi
4224e3:	5b                   	pop    %ebx
4224e4:	5d                   	pop    %ebp
4224e5:	c3                   	ret
4224e6:	55                   	push   %ebp
4224e7:	8b ec                	mov    %esp,%ebp
4224e9:	56                   	push   %esi
4224ea:	33 f6                	xor    %esi,%esi
4224ec:	83 3d 54 01 4c 00 02 	cmpl   $0x2,0x4c0154
4224f3:	7d 2d                	jge    0x422522
4224f5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4224f8:	8b d1                	mov    %ecx,%edx
4224fa:	66 8b 01             	mov    (%ecx),%ax
4224fd:	83 c1 02             	add    $0x2,%ecx
422500:	66 85 c0             	test   %ax,%ax
422503:	75 f5                	jne    0x4224fa
422505:	66 8b 45 0c          	mov    0xc(%ebp),%ax
422509:	83 e9 02             	sub    $0x2,%ecx
42250c:	3b ca                	cmp    %edx,%ecx
42250e:	74 05                	je     0x422515
422510:	66 39 01             	cmp    %ax,(%ecx)
422513:	75 f4                	jne    0x422509
422515:	66 39 01             	cmp    %ax,(%ecx)
422518:	75 04                	jne    0x42251e
42251a:	8b c1                	mov    %ecx,%eax
42251c:	eb 6b                	jmp    0x422589
42251e:	33 c0                	xor    %eax,%eax
422520:	eb 67                	jmp    0x422589
422522:	8b 55 08             	mov    0x8(%ebp),%edx
422525:	66 8b 4d 0c          	mov    0xc(%ebp),%cx
422529:	eb 12                	jmp    0x42253d
42252b:	0f b7 02             	movzwl (%edx),%eax
42252e:	66 3b c1             	cmp    %cx,%ax
422531:	75 02                	jne    0x422535
422533:	8b f2                	mov    %edx,%esi
422535:	66 85 c0             	test   %ax,%ax
422538:	74 4d                	je     0x422587
42253a:	83 c2 02             	add    $0x2,%edx
42253d:	8d 42 01             	lea    0x1(%edx),%eax
422540:	a8 0e                	test   $0xe,%al
422542:	75 e7                	jne    0x42252b
422544:	33 c0                	xor    %eax,%eax
422546:	66 3b c1             	cmp    %cx,%ax
422549:	75 1f                	jne    0x42256a
42254b:	b8 01 00 ff ff       	mov    $0xffff0001,%eax
422550:	66 0f 6e c8          	movd   %eax,%xmm1
422554:	eb 03                	jmp    0x422559
422556:	83 c2 10             	add    $0x10,%edx
422559:	f3 0f 6f 02          	movdqu (%edx),%xmm0
42255d:	66 0f 3a 63 c8 15    	pcmpistri $0x15,%xmm0,%xmm1
422563:	75 f1                	jne    0x422556
422565:	8d 04 4a             	lea    (%edx,%ecx,2),%eax
422568:	eb 1f                	jmp    0x422589
42256a:	0f b7 c1             	movzwl %cx,%eax
42256d:	66 0f 6e c0          	movd   %eax,%xmm0
422571:	f3 0f 6f 0a          	movdqu (%edx),%xmm1
422575:	66 0f 3a 63 c1 41    	pcmpistri $0x41,%xmm1,%xmm0
42257b:	73 03                	jae    0x422580
42257d:	8d 34 4a             	lea    (%edx,%ecx,2),%esi
422580:	74 05                	je     0x422587
422582:	83 c2 10             	add    $0x10,%edx
422585:	eb ea                	jmp    0x422571
422587:	8b c6                	mov    %esi,%eax
422589:	5e                   	pop    %esi
42258a:	5d                   	pop    %ebp
42258b:	c3                   	ret
42258c:	cc                   	int3
42258d:	cc                   	int3
42258e:	cc                   	int3
42258f:	cc                   	int3
422590:	57                   	push   %edi
422591:	8b 7c 24 08          	mov    0x8(%esp),%edi
422595:	eb 6e                	jmp    0x422605
422597:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
42259e:	8b ff                	mov    %edi,%edi
4225a0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4225a4:	57                   	push   %edi
4225a5:	f7 c1 03 00 00 00    	test   $0x3,%ecx
4225ab:	74 13                	je     0x4225c0
4225ad:	8a 01                	mov    (%ecx),%al
4225af:	83 c1 01             	add    $0x1,%ecx
4225b2:	84 c0                	test   %al,%al
4225b4:	74 3d                	je     0x4225f3
4225b6:	f7 c1 03 00 00 00    	test   $0x3,%ecx
4225bc:	75 ef                	jne    0x4225ad
4225be:	8b ff                	mov    %edi,%edi
4225c0:	8b 01                	mov    (%ecx),%eax
4225c2:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
4225c7:	03 d0                	add    %eax,%edx
4225c9:	83 f0 ff             	xor    $0xffffffff,%eax
4225cc:	33 c2                	xor    %edx,%eax
4225ce:	83 c1 04             	add    $0x4,%ecx
4225d1:	a9 00 01 01 81       	test   $0x81010100,%eax
4225d6:	74 e8                	je     0x4225c0
4225d8:	8b 41 fc             	mov    -0x4(%ecx),%eax
4225db:	84 c0                	test   %al,%al
4225dd:	74 23                	je     0x422602
4225df:	84 e4                	test   %ah,%ah
4225e1:	74 1a                	je     0x4225fd
4225e3:	a9 00 00 ff 00       	test   $0xff0000,%eax
4225e8:	74 0e                	je     0x4225f8
4225ea:	a9 00 00 00 ff       	test   $0xff000000,%eax
4225ef:	74 02                	je     0x4225f3
4225f1:	eb cd                	jmp    0x4225c0
4225f3:	8d 79 ff             	lea    -0x1(%ecx),%edi
4225f6:	eb 0d                	jmp    0x422605
4225f8:	8d 79 fe             	lea    -0x2(%ecx),%edi
4225fb:	eb 08                	jmp    0x422605
4225fd:	8d 79 fd             	lea    -0x3(%ecx),%edi
422600:	eb 03                	jmp    0x422605
422602:	8d 79 fc             	lea    -0x4(%ecx),%edi
422605:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
422609:	f7 c1 03 00 00 00    	test   $0x3,%ecx
42260f:	74 1d                	je     0x42262e
422611:	8a 11                	mov    (%ecx),%dl
422613:	83 c1 01             	add    $0x1,%ecx
422616:	84 d2                	test   %dl,%dl
422618:	74 66                	je     0x422680
42261a:	88 17                	mov    %dl,(%edi)
42261c:	83 c7 01             	add    $0x1,%edi
42261f:	f7 c1 03 00 00 00    	test   $0x3,%ecx
422625:	75 ea                	jne    0x422611
422627:	eb 05                	jmp    0x42262e
422629:	89 17                	mov    %edx,(%edi)
42262b:	83 c7 04             	add    $0x4,%edi
42262e:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
422633:	8b 01                	mov    (%ecx),%eax
422635:	03 d0                	add    %eax,%edx
422637:	83 f0 ff             	xor    $0xffffffff,%eax
42263a:	33 c2                	xor    %edx,%eax
42263c:	8b 11                	mov    (%ecx),%edx
42263e:	83 c1 04             	add    $0x4,%ecx
422641:	a9 00 01 01 81       	test   $0x81010100,%eax
422646:	74 e1                	je     0x422629
422648:	84 d2                	test   %dl,%dl
42264a:	74 34                	je     0x422680
42264c:	84 f6                	test   %dh,%dh
42264e:	74 27                	je     0x422677
422650:	f7 c2 00 00 ff 00    	test   $0xff0000,%edx
422656:	74 12                	je     0x42266a
422658:	f7 c2 00 00 00 ff    	test   $0xff000000,%edx
42265e:	74 02                	je     0x422662
422660:	eb c7                	jmp    0x422629
422662:	89 17                	mov    %edx,(%edi)
422664:	8b 44 24 08          	mov    0x8(%esp),%eax
422668:	5f                   	pop    %edi
422669:	c3                   	ret
42266a:	66 89 17             	mov    %dx,(%edi)
42266d:	8b 44 24 08          	mov    0x8(%esp),%eax
422671:	c6 47 02 00          	movb   $0x0,0x2(%edi)
422675:	5f                   	pop    %edi
422676:	c3                   	ret
422677:	66 89 17             	mov    %dx,(%edi)
42267a:	8b 44 24 08          	mov    0x8(%esp),%eax
42267e:	5f                   	pop    %edi
42267f:	c3                   	ret
422680:	88 17                	mov    %dl,(%edi)
422682:	8b 44 24 08          	mov    0x8(%esp),%eax
422686:	5f                   	pop    %edi
422687:	c3                   	ret
422688:	55                   	push   %ebp
422689:	8b ec                	mov    %esp,%ebp
42268b:	51                   	push   %ecx
42268c:	e8 7c 53 00 00       	call   0x427a0d
422691:	8b 4d 08             	mov    0x8(%ebp),%ecx
422694:	89 45 fc             	mov    %eax,-0x4(%ebp)
422697:	85 c9                	test   %ecx,%ecx
422699:	75 03                	jne    0x42269e
42269b:	8b 48 1c             	mov    0x1c(%eax),%ecx
42269e:	0f b7 11             	movzwl (%ecx),%edx
4226a1:	53                   	push   %ebx
4226a2:	56                   	push   %esi
4226a3:	33 c0                	xor    %eax,%eax
4226a5:	57                   	push   %edi
4226a6:	8b 7d 0c             	mov    0xc(%ebp),%edi
4226a9:	66 85 d2             	test   %dx,%dx
4226ac:	74 30                	je     0x4226de
4226ae:	0f b7 1f             	movzwl (%edi),%ebx
4226b1:	8b c7                	mov    %edi,%eax
4226b3:	66 85 db             	test   %bx,%bx
4226b6:	74 12                	je     0x4226ca
4226b8:	8b f3                	mov    %ebx,%esi
4226ba:	66 3b f2             	cmp    %dx,%si
4226bd:	74 0b                	je     0x4226ca
4226bf:	83 c0 02             	add    $0x2,%eax
4226c2:	0f b7 30             	movzwl (%eax),%esi
4226c5:	66 85 f6             	test   %si,%si
4226c8:	75 f0                	jne    0x4226ba
4226ca:	33 d2                	xor    %edx,%edx
4226cc:	66 39 10             	cmp    %dx,(%eax)
4226cf:	74 0b                	je     0x4226dc
4226d1:	83 c1 02             	add    $0x2,%ecx
4226d4:	0f b7 11             	movzwl (%ecx),%edx
4226d7:	66 85 d2             	test   %dx,%dx
4226da:	75 d5                	jne    0x4226b1
4226dc:	33 c0                	xor    %eax,%eax
4226de:	8b f1                	mov    %ecx,%esi
4226e0:	66 39 01             	cmp    %ax,(%ecx)
4226e3:	74 41                	je     0x422726
4226e5:	0f b7 1f             	movzwl (%edi),%ebx
4226e8:	33 d2                	xor    %edx,%edx
4226ea:	8b c7                	mov    %edi,%eax
4226ec:	66 85 db             	test   %bx,%bx
4226ef:	74 1e                	je     0x42270f
4226f1:	0f b7 39             	movzwl (%ecx),%edi
4226f4:	89 7d 08             	mov    %edi,0x8(%ebp)
4226f7:	8b 7d 0c             	mov    0xc(%ebp),%edi
4226fa:	8b d3                	mov    %ebx,%edx
4226fc:	66 3b 55 08          	cmp    0x8(%ebp),%dx
422700:	74 0b                	je     0x42270d
422702:	83 c0 02             	add    $0x2,%eax
422705:	0f b7 10             	movzwl (%eax),%edx
422708:	66 85 d2             	test   %dx,%dx
42270b:	75 ef                	jne    0x4226fc
42270d:	33 d2                	xor    %edx,%edx
42270f:	66 39 10             	cmp    %dx,(%eax)
422712:	75 0a                	jne    0x42271e
422714:	83 c1 02             	add    $0x2,%ecx
422717:	66 39 11             	cmp    %dx,(%ecx)
42271a:	75 ce                	jne    0x4226ea
42271c:	eb 08                	jmp    0x422726
42271e:	33 c0                	xor    %eax,%eax
422720:	66 89 01             	mov    %ax,(%ecx)
422723:	83 c1 02             	add    $0x2,%ecx
422726:	8b 45 fc             	mov    -0x4(%ebp),%eax
422729:	5f                   	pop    %edi
42272a:	89 48 1c             	mov    %ecx,0x1c(%eax)
42272d:	8b c6                	mov    %esi,%eax
42272f:	2b c1                	sub    %ecx,%eax
422731:	f7 d8                	neg    %eax
422733:	1b c0                	sbb    %eax,%eax
422735:	23 c6                	and    %esi,%eax
422737:	5e                   	pop    %esi
422738:	5b                   	pop    %ebx
422739:	c9                   	leave
42273a:	c3                   	ret
42273b:	55                   	push   %ebp
42273c:	8b ec                	mov    %esp,%ebp
42273e:	8b 4d 08             	mov    0x8(%ebp),%ecx
422741:	85 c9                	test   %ecx,%ecx
422743:	75 15                	jne    0x42275a
422745:	e8 c4 54 00 00       	call   0x427c0e
42274a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
422750:	e8 bb 46 00 00       	call   0x426e10
422755:	6a 16                	push   $0x16
422757:	58                   	pop    %eax
422758:	5d                   	pop    %ebp
422759:	c3                   	ret
42275a:	a1 40 0a 4c 00       	mov    0x4c0a40,%eax
42275f:	89 01                	mov    %eax,(%ecx)
422761:	33 c0                	xor    %eax,%eax
422763:	5d                   	pop    %ebp
422764:	c3                   	ret
422765:	6a 10                	push   $0x10
422767:	68 08 6b 4b 00       	push   $0x4b6b08
42276c:	e8 4f 43 00 00       	call   0x426ac0
422771:	8b 7d 0c             	mov    0xc(%ebp),%edi
422774:	81 ff 00 40 00 00    	cmp    $0x4000,%edi
42277a:	74 30                	je     0x4227ac
42277c:	81 ff 00 80 00 00    	cmp    $0x8000,%edi
422782:	74 28                	je     0x4227ac
422784:	81 ff 00 00 01 00    	cmp    $0x10000,%edi
42278a:	74 20                	je     0x4227ac
42278c:	81 ff 00 00 04 00    	cmp    $0x40000,%edi
422792:	74 18                	je     0x4227ac
422794:	81 ff 00 00 02 00    	cmp    $0x20000,%edi
42279a:	74 10                	je     0x4227ac
42279c:	e8 6d 54 00 00       	call   0x427c0e
4227a1:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4227a7:	e9 ac 00 00 00       	jmp    0x422858
4227ac:	8b 75 08             	mov    0x8(%ebp),%esi
4227af:	83 fe fe             	cmp    $0xfffffffe,%esi
4227b2:	75 10                	jne    0x4227c4
4227b4:	e8 55 54 00 00       	call   0x427c0e
4227b9:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4227bf:	e9 99 00 00 00       	jmp    0x42285d
4227c4:	85 f6                	test   %esi,%esi
4227c6:	0f 88 81 00 00 00    	js     0x42284d
4227cc:	3b 35 3c 22 4c 00    	cmp    0x4c223c,%esi
4227d2:	73 79                	jae    0x42284d
4227d4:	8b c6                	mov    %esi,%eax
4227d6:	c1 f8 05             	sar    $0x5,%eax
4227d9:	89 45 0c             	mov    %eax,0xc(%ebp)
4227dc:	8b de                	mov    %esi,%ebx
4227de:	83 e3 1f             	and    $0x1f,%ebx
4227e1:	c1 e3 06             	shl    $0x6,%ebx
4227e4:	8b 04 85 40 09 4c 00 	mov    0x4c0940(,%eax,4),%eax
4227eb:	0f be 44 18 04       	movsbl 0x4(%eax,%ebx,1),%eax
4227f0:	83 e0 01             	and    $0x1,%eax
4227f3:	74 58                	je     0x42284d
4227f5:	56                   	push   %esi
4227f6:	e8 f2 80 00 00       	call   0x42a8ed
4227fb:	59                   	pop    %ecx
4227fc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
422800:	8b 45 0c             	mov    0xc(%ebp),%eax
422803:	8b 04 85 40 09 4c 00 	mov    0x4c0940(,%eax,4),%eax
42280a:	f6 44 18 04 01       	testb  $0x1,0x4(%eax,%ebx,1)
42280f:	74 0d                	je     0x42281e
422811:	57                   	push   %edi
422812:	56                   	push   %esi
422813:	e8 4e 00 00 00       	call   0x422866
422818:	59                   	pop    %ecx
422819:	59                   	pop    %ecx
42281a:	8b f8                	mov    %eax,%edi
42281c:	eb 0e                	jmp    0x42282c
42281e:	e8 eb 53 00 00       	call   0x427c0e
422823:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
422829:	83 cf ff             	or     $0xffffffff,%edi
42282c:	89 7d e4             	mov    %edi,-0x1c(%ebp)
42282f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
422836:	e8 0a 00 00 00       	call   0x422845
42283b:	8b c7                	mov    %edi,%eax
42283d:	eb 21                	jmp    0x422860
42283f:	8b 75 08             	mov    0x8(%ebp),%esi
422842:	8b 7d e4             	mov    -0x1c(%ebp),%edi
422845:	56                   	push   %esi
422846:	e8 42 84 00 00       	call   0x42ac8d
42284b:	59                   	pop    %ecx
42284c:	c3                   	ret
42284d:	e8 bc 53 00 00       	call   0x427c0e
422852:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
422858:	e8 b3 45 00 00       	call   0x426e10
42285d:	83 c8 ff             	or     $0xffffffff,%eax
422860:	e8 a0 42 00 00       	call   0x426b05
422865:	c3                   	ret
422866:	55                   	push   %ebp
422867:	8b ec                	mov    %esp,%ebp
422869:	53                   	push   %ebx
42286a:	56                   	push   %esi
42286b:	8b 75 08             	mov    0x8(%ebp),%esi
42286e:	8b de                	mov    %esi,%ebx
422870:	c1 fb 05             	sar    $0x5,%ebx
422873:	83 e6 1f             	and    $0x1f,%esi