54d4bf:	3b f9                	cmp    %ecx,%edi
54d4c1:	72 9f                	jb     0x54d462
54d4c3:	e9 f9 01 00 00       	jmp    0x54d6c1
54d4c8:	8b 88 ac 00 00 00    	mov    0xac(%eax),%ecx
54d4ce:	41                   	inc    %ecx
54d4cf:	89 4c 24 18          	mov    %ecx,0x18(%esp)
54d4d3:	8b ea                	mov    %edx,%ebp
54d4d5:	ba 80 00 00 00       	mov    $0x80,%edx
54d4da:	8b 88 88 00 00 00    	mov    0x88(%eax),%ecx
54d4e0:	89 4c 24 28          	mov    %ecx,0x28(%esp)
54d4e4:	f6 40 32 01          	testb  $0x1,0x32(%eax)
54d4e8:	74 18                	je     0x54d502
54d4ea:	33 c0                	xor    %eax,%eax
54d4ec:	89 44 24 1c          	mov    %eax,0x1c(%esp)
54d4f0:	c7 44 24 20 06 00 00 	movl   $0x6,0x20(%esp)
54d4f7:	00
54d4f8:	c7 44 24 24 02 00 00 	movl   $0x2,0x24(%esp)
54d4ff:	00
54d500:	eb 16                	jmp    0x54d518
54d502:	c7 44 24 1c 06 00 00 	movl   $0x6,0x1c(%esp)
54d509:	00
54d50a:	33 c0                	xor    %eax,%eax
54d50c:	89 44 24 20          	mov    %eax,0x20(%esp)
54d510:	c7 44 24 24 fe ff ff 	movl   $0xfffffffe,0x24(%esp)
54d517:	ff
54d518:	8b 44 24 1c          	mov    0x1c(%esp),%eax
54d51c:	33 ff                	xor    %edi,%edi
54d51e:	8b 4c 24 28          	mov    0x28(%esp),%ecx
54d522:	3b f9                	cmp    %ecx,%edi
54d524:	0f 83 97 01 00 00    	jae    0x54d6c1
54d52a:	85 d6                	test   %edx,%esi
54d52c:	74 31                	je     0x54d55f
54d52e:	8b c8                	mov    %eax,%ecx
54d530:	8b 5c 24 18          	mov    0x18(%esp),%ebx
54d534:	0f b6 1b             	movzbl (%ebx),%ebx
54d537:	d3 fb                	sar    %cl,%ebx
54d539:	83 e3 03             	and    $0x3,%ebx
54d53c:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
54d540:	b9 06 00 00 00       	mov    $0x6,%ecx
54d545:	2b c8                	sub    %eax,%ecx
54d547:	bb 3f 3f 00 00       	mov    $0x3f3f,%ebx
54d54c:	d3 fb                	sar    %cl,%ebx
54d54e:	80 e3 ff             	and    $0xff,%bl
54d551:	20 5d 00             	and    %bl,0x0(%ebp)
54d554:	8b c8                	mov    %eax,%ecx
54d556:	8a 5c 24 2c          	mov    0x2c(%esp),%bl
54d55a:	d2 e3                	shl    %cl,%bl
54d55c:	08 5d 00             	or     %bl,0x0(%ebp)
54d55f:	8b 4c 24 20          	mov    0x20(%esp),%ecx
54d563:	3b c1                	cmp    %ecx,%eax
54d565:	75 0b                	jne    0x54d572
54d567:	8b 44 24 1c          	mov    0x1c(%esp),%eax
54d56b:	ff 44 24 18          	incl   0x18(%esp)
54d56f:	45                   	inc    %ebp
54d570:	eb 04                	jmp    0x54d576
54d572:	03 44 24 24          	add    0x24(%esp),%eax
54d576:	83 fa 01             	cmp    $0x1,%edx
54d579:	75 07                	jne    0x54d582
54d57b:	ba 80 00 00 00       	mov    $0x80,%edx
54d580:	eb 02                	jmp    0x54d584
54d582:	d1 fa                	sar    $1,%edx
54d584:	47                   	inc    %edi
54d585:	8b 4c 24 28          	mov    0x28(%esp),%ecx
54d589:	3b f9                	cmp    %ecx,%edi
54d58b:	72 9d                	jb     0x54d52a
54d58d:	e9 2f 01 00 00       	jmp    0x54d6c1
54d592:	8b 88 ac 00 00 00    	mov    0xac(%eax),%ecx
54d598:	41                   	inc    %ecx
54d599:	89 4c 24 30          	mov    %ecx,0x30(%esp)
54d59d:	8b ea                	mov    %edx,%ebp
54d59f:	ba 80 00 00 00       	mov    $0x80,%edx
54d5a4:	8b 88 88 00 00 00    	mov    0x88(%eax),%ecx
54d5aa:	89 4c 24 40          	mov    %ecx,0x40(%esp)
54d5ae:	f6 40 32 01          	testb  $0x1,0x32(%eax)
54d5b2:	74 18                	je     0x54d5cc
54d5b4:	33 c0                	xor    %eax,%eax
54d5b6:	89 44 24 34          	mov    %eax,0x34(%esp)
54d5ba:	c7 44 24 38 04 00 00 	movl   $0x4,0x38(%esp)
54d5c1:	00
54d5c2:	c7 44 24 3c 04 00 00 	movl   $0x4,0x3c(%esp)
54d5c9:	00
54d5ca:	eb 16                	jmp    0x54d5e2
54d5cc:	c7 44 24 34 04 00 00 	movl   $0x4,0x34(%esp)
54d5d3:	00
54d5d4:	33 c0                	xor    %eax,%eax
54d5d6:	89 44 24 38          	mov    %eax,0x38(%esp)
54d5da:	c7 44 24 3c fc ff ff 	movl   $0xfffffffc,0x3c(%esp)
54d5e1:	ff
54d5e2:	8b 44 24 34          	mov    0x34(%esp),%eax
54d5e6:	33 ff                	xor    %edi,%edi
54d5e8:	8b 4c 24 40          	mov    0x40(%esp),%ecx
54d5ec:	3b f9                	cmp    %ecx,%edi
54d5ee:	0f 83 cd 00 00 00    	jae    0x54d6c1
54d5f4:	85 d6                	test   %edx,%esi
54d5f6:	74 31                	je     0x54d629
54d5f8:	8b c8                	mov    %eax,%ecx
54d5fa:	8b 5c 24 30          	mov    0x30(%esp),%ebx
54d5fe:	0f b6 1b             	movzbl (%ebx),%ebx
54d601:	d3 fb                	sar    %cl,%ebx
54d603:	83 e3 0f             	and    $0xf,%ebx
54d606:	89 5c 24 44          	mov    %ebx,0x44(%esp)
54d60a:	b9 04 00 00 00       	mov    $0x4,%ecx
54d60f:	2b c8                	sub    %eax,%ecx
54d611:	bb 0f 0f 00 00       	mov    $0xf0f,%ebx
54d616:	d3 fb                	sar    %cl,%ebx
54d618:	80 e3 ff             	and    $0xff,%bl
54d61b:	20 5d 00             	and    %bl,0x0(%ebp)
54d61e:	8b c8                	mov    %eax,%ecx
54d620:	8a 5c 24 44          	mov    0x44(%esp),%bl
54d624:	d2 e3                	shl    %cl,%bl
54d626:	08 5d 00             	or     %bl,0x0(%ebp)
54d629:	8b 4c 24 38          	mov    0x38(%esp),%ecx
54d62d:	3b c1                	cmp    %ecx,%eax
54d62f:	75 0b                	jne    0x54d63c
54d631:	8b 44 24 34          	mov    0x34(%esp),%eax
54d635:	ff 44 24 30          	incl   0x30(%esp)
54d639:	45                   	inc    %ebp
54d63a:	eb 04                	jmp    0x54d640
54d63c:	03 44 24 3c          	add    0x3c(%esp),%eax
54d640:	83 fa 01             	cmp    $0x1,%edx
54d643:	75 07                	jne    0x54d64c
54d645:	ba 80 00 00 00       	mov    $0x80,%edx
54d64a:	eb 02                	jmp    0x54d64e
54d64c:	d1 fa                	sar    $1,%edx
54d64e:	47                   	inc    %edi
54d64f:	8b 4c 24 40          	mov    0x40(%esp),%ecx
54d653:	3b f9                	cmp    %ecx,%edi
54d655:	72 9d                	jb     0x54d5f4
54d657:	eb 68                	jmp    0x54d6c1
54d659:	8b 88 ac 00 00 00    	mov    0xac(%eax),%ecx
54d65f:	41                   	inc    %ecx
54d660:	89 4c 24 48          	mov    %ecx,0x48(%esp)
54d664:	89 54 24 4c          	mov    %edx,0x4c(%esp)
54d668:	0f b6 b8 cb 00 00 00 	movzbl 0xcb(%eax),%edi
54d66f:	c1 ff 03             	sar    $0x3,%edi
54d672:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
54d678:	89 44 24 50          	mov    %eax,0x50(%esp)
54d67c:	b3 80                	mov    $0x80,%bl
54d67e:	33 ed                	xor    %ebp,%ebp
54d680:	8b 44 24 50          	mov    0x50(%esp),%eax
54d684:	3b e8                	cmp    %eax,%ebp
54d686:	73 39                	jae    0x54d6c1
54d688:	33 d2                	xor    %edx,%edx
54d68a:	8a d3                	mov    %bl,%dl
54d68c:	85 f2                	test   %esi,%edx
54d68e:	74 13                	je     0x54d6a3
54d690:	57                   	push   %edi
54d691:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
54d695:	51                   	push   %ecx
54d696:	8b 44 24 54          	mov    0x54(%esp),%eax
54d69a:	50                   	push   %eax
54d69b:	e8 40 8d fd ff       	call   0x5263e0
54d6a0:	83 c4 0c             	add    $0xc,%esp
54d6a3:	8b c7                	mov    %edi,%eax
54d6a5:	01 44 24 48          	add    %eax,0x48(%esp)
54d6a9:	01 44 24 4c          	add    %eax,0x4c(%esp)
54d6ad:	80 fb 01             	cmp    $0x1,%bl
54d6b0:	75 04                	jne    0x54d6b6
54d6b2:	b3 80                	mov    $0x80,%bl
54d6b4:	eb 02                	jmp    0x54d6b8
54d6b6:	d0 eb                	shr    $1,%bl
54d6b8:	45                   	inc    %ebp
54d6b9:	8b 44 24 50          	mov    0x50(%esp),%eax
54d6bd:	3b e8                	cmp    %eax,%ebp
54d6bf:	72 c7                	jb     0x54d688
54d6c1:	83 c4 54             	add    $0x54,%esp
54d6c4:	5d                   	pop    %ebp
54d6c5:	5f                   	pop    %edi
54d6c6:	5e                   	pop    %esi
54d6c7:	5b                   	pop    %ebx
54d6c8:	c3                   	ret
54d6c9:	90                   	nop
54d6ca:	90                   	nop
54d6cb:	90                   	nop
54d6cc:	53                   	push   %ebx
54d6cd:	56                   	push   %esi
54d6ce:	57                   	push   %edi
54d6cf:	55                   	push   %ebp
54d6d0:	83 c4 8c             	add    $0xffffff8c,%esp
54d6d3:	33 c9                	xor    %ecx,%ecx
54d6d5:	8b 90 ac 00 00 00    	mov    0xac(%eax),%edx
54d6db:	8a 88 e4 00 00 00    	mov    0xe4(%eax),%cl
54d6e1:	89 0c 24             	mov    %ecx,(%esp)
54d6e4:	8d 98 c0 00 00 00    	lea    0xc0(%eax),%ebx
54d6ea:	8b 40 30             	mov    0x30(%eax),%eax
54d6ed:	42                   	inc    %edx
54d6ee:	85 d2                	test   %edx,%edx
54d6f0:	89 44 24 04          	mov    %eax,0x4(%esp)
54d6f4:	0f 84 18 04 00 00    	je     0x54db12
54d6fa:	85 db                	test   %ebx,%ebx
54d6fc:	0f 84 10 04 00 00    	je     0x54db12
54d702:	8b 03                	mov    (%ebx),%eax
54d704:	8b 0c 24             	mov    (%esp),%ecx
54d707:	0f af 04 8d f8 bd 69 	imul   0x69bdf8(,%ecx,4),%eax
54d70e:	00
54d70f:	89 44 24 08          	mov    %eax,0x8(%esp)
54d713:	8a 43 0b             	mov    0xb(%ebx),%al
54d716:	fe c8                	dec    %al
54d718:	74 15                	je     0x54d72f
54d71a:	fe c8                	dec    %al
54d71c:	0f 84 25 01 00 00    	je     0x54d847
54d722:	2c 02                	sub    $0x2,%al
54d724:	0f 84 3d 02 00 00    	je     0x54d967
54d72a:	e9 4f 03 00 00       	jmp    0x54da7e
54d72f:	8b 0b                	mov    (%ebx),%ecx
54d731:	49                   	dec    %ecx
54d732:	c1 e9 03             	shr    $0x3,%ecx
54d735:	03 ca                	add    %edx,%ecx
54d737:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
54d73b:	8b 74 24 08          	mov    0x8(%esp),%esi
54d73f:	8b 04 24             	mov    (%esp),%eax
54d742:	4e                   	dec    %esi
54d743:	c1 ee 03             	shr    $0x3,%esi
54d746:	03 f2                	add    %edx,%esi
54d748:	8b 14 85 f8 bd 69 00 	mov    0x69bdf8(,%eax,4),%edx
54d74f:	89 54 24 1c          	mov    %edx,0x1c(%esp)
54d753:	f6 44 24 06 01       	testb  $0x1,0x6(%esp)
54d758:	74 2a                	je     0x54d784
54d75a:	8b 0b                	mov    (%ebx),%ecx
54d75c:	83 c1 07             	add    $0x7,%ecx
54d75f:	83 e1 07             	and    $0x7,%ecx
54d762:	89 4c 24 10          	mov    %ecx,0x10(%esp)
54d766:	8b 44 24 08          	mov    0x8(%esp),%eax
54d76a:	c7 44 24 14 07 00 00 	movl   $0x7,0x14(%esp)
54d771:	00
54d772:	83 c0 07             	add    $0x7,%eax
54d775:	83 e0 07             	and    $0x7,%eax
54d778:	33 ed                	xor    %ebp,%ebp
54d77a:	c7 44 24 18 ff ff ff 	movl   $0xffffffff,0x18(%esp)
54d781:	ff
54d782:	eb 37                	jmp    0x54d7bb
54d784:	8b 03                	mov    (%ebx),%eax
54d786:	83 c0 07             	add    $0x7,%eax
54d789:	83 e0 07             	and    $0x7,%eax
54d78c:	ba 07 00 00 00       	mov    $0x7,%edx
54d791:	2b d0                	sub    %eax,%edx
54d793:	89 54 24 10          	mov    %edx,0x10(%esp)
54d797:	8b 4c 24 08          	mov    0x8(%esp),%ecx
54d79b:	83 c1 07             	add    $0x7,%ecx
54d79e:	83 e1 07             	and    $0x7,%ecx
54d7a1:	b8 07 00 00 00       	mov    $0x7,%eax
54d7a6:	2b c1                	sub    %ecx,%eax
54d7a8:	33 d2                	xor    %edx,%edx
54d7aa:	89 54 24 14          	mov    %edx,0x14(%esp)
54d7ae:	bd 07 00 00 00       	mov    $0x7,%ebp
54d7b3:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
54d7ba:	00
54d7bb:	33 d2                	xor    %edx,%edx
54d7bd:	89 54 24 24          	mov    %edx,0x24(%esp)
54d7c1:	eb 75                	jmp    0x54d838
54d7c3:	8b 4c 24 10          	mov    0x10(%esp),%ecx
54d7c7:	8b 54 24 0c          	mov    0xc(%esp),%edx
54d7cb:	0f b6 12             	movzbl (%edx),%edx
54d7ce:	d3 fa                	sar    %cl,%edx
54d7d0:	80 e2 01             	and    $0x1,%dl
54d7d3:	88 54 24 20          	mov    %dl,0x20(%esp)
54d7d7:	33 ff                	xor    %edi,%edi
54d7d9:	8b 54 24 1c          	mov    0x1c(%esp),%edx
54d7dd:	3b fa                	cmp    %edx,%edi
54d7df:	7d 35                	jge    0x54d816
54d7e1:	b9 07 00 00 00       	mov    $0x7,%ecx
54d7e6:	2b c8                	sub    %eax,%ecx
54d7e8:	ba 7f 7f 00 00       	mov    $0x7f7f,%edx
54d7ed:	d3 fa                	sar    %cl,%edx
54d7ef:	80 e2 ff             	and    $0xff,%dl
54d7f2:	20 16                	and    %dl,(%esi)
54d7f4:	8b c8                	mov    %eax,%ecx
54d7f6:	8a 54 24 20          	mov    0x20(%esp),%dl
54d7fa:	d2 e2                	shl    %cl,%dl
54d7fc:	08 16                	or     %dl,(%esi)
54d7fe:	3b e8                	cmp    %eax,%ebp
54d800:	75 07                	jne    0x54d809
54d802:	8b 44 24 14          	mov    0x14(%esp),%eax
54d806:	4e                   	dec    %esi
54d807:	eb 04                	jmp    0x54d80d
54d809:	03 44 24 18          	add    0x18(%esp),%eax
54d80d:	47                   	inc    %edi
54d80e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
54d812:	3b f9                	cmp    %ecx,%edi
54d814:	7c cb                	jl     0x54d7e1
54d816:	8b 54 24 10          	mov    0x10(%esp),%edx
54d81a:	3b ea                	cmp    %edx,%ebp
54d81c:	75 0e                	jne    0x54d82c
54d81e:	8b 4c 24 14          	mov    0x14(%esp),%ecx
54d822:	89 4c 24 10          	mov    %ecx,0x10(%esp)
54d826:	ff 4c 24 0c          	decl   0xc(%esp)
54d82a:	eb 08                	jmp    0x54d834
54d82c:	8b 54 24 18          	mov    0x18(%esp),%edx
54d830:	01 54 24 10          	add    %edx,0x10(%esp)
54d834:	ff 44 24 24          	incl   0x24(%esp)
54d838:	8b 0b                	mov    (%ebx),%ecx
54d83a:	8b 54 24 24          	mov    0x24(%esp),%edx
54d83e:	3b ca                	cmp    %edx,%ecx
54d840:	77 81                	ja     0x54d7c3
54d842:	e9 b3 02 00 00       	jmp    0x54dafa
54d847:	8b 03                	mov    (%ebx),%eax
54d849:	48                   	dec    %eax
54d84a:	c1 e8 02             	shr    $0x2,%eax
54d84d:	03 c2                	add    %edx,%eax
54d84f:	89 44 24 28          	mov    %eax,0x28(%esp)
54d853:	8b 74 24 08          	mov    0x8(%esp),%esi
54d857:	8b 04 24             	mov    (%esp),%eax
54d85a:	4e                   	dec    %esi
54d85b:	c1 ee 02             	shr    $0x2,%esi
54d85e:	03 f2                	add    %edx,%esi
54d860:	8b 14 85 f8 bd 69 00 	mov    0x69bdf8(,%eax,4),%edx
54d867:	89 54 24 38          	mov    %edx,0x38(%esp)
54d86b:	f6 44 24 06 01       	testb  $0x1,0x6(%esp)
54d870:	74 2e                	je     0x54d8a0
54d872:	8b 0b                	mov    (%ebx),%ecx
54d874:	83 c1 03             	add    $0x3,%ecx
54d877:	83 e1 03             	and    $0x3,%ecx
54d87a:	03 c9                	add    %ecx,%ecx
54d87c:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
54d880:	8b 44 24 08          	mov    0x8(%esp),%eax
54d884:	83 c0 03             	add    $0x3,%eax
54d887:	c7 44 24 30 06 00 00 	movl   $0x6,0x30(%esp)
54d88e:	00
54d88f:	83 e0 03             	and    $0x3,%eax
54d892:	03 c0                	add    %eax,%eax
54d894:	33 ed                	xor    %ebp,%ebp
54d896:	c7 44 24 34 fe ff ff 	movl   $0xfffffffe,0x34(%esp)
54d89d:	ff
54d89e:	eb 3b                	jmp    0x54d8db
54d8a0:	8b 03                	mov    (%ebx),%eax
54d8a2:	83 c0 03             	add    $0x3,%eax
54d8a5:	83 e0 03             	and    $0x3,%eax
54d8a8:	ba 03 00 00 00       	mov    $0x3,%edx
54d8ad:	2b d0                	sub    %eax,%edx
54d8af:	03 d2                	add    %edx,%edx
54d8b1:	89 54 24 2c          	mov    %edx,0x2c(%esp)
54d8b5:	8b 4c 24 08          	mov    0x8(%esp),%ecx
54d8b9:	83 c1 03             	add    $0x3,%ecx
54d8bc:	83 e1 03             	and    $0x3,%ecx
54d8bf:	b8 03 00 00 00       	mov    $0x3,%eax
54d8c4:	2b c1                	sub    %ecx,%eax
54d8c6:	03 c0                	add    %eax,%eax
54d8c8:	33 d2                	xor    %edx,%edx
54d8ca:	89 54 24 30          	mov    %edx,0x30(%esp)
54d8ce:	bd 06 00 00 00       	mov    $0x6,%ebp
54d8d3:	c7 44 24 34 02 00 00 	movl   $0x2,0x34(%esp)
54d8da:	00
54d8db:	33 d2                	xor    %edx,%edx
54d8dd:	89 54 24 3c          	mov    %edx,0x3c(%esp)
54d8e1:	eb 75                	jmp    0x54d958
54d8e3:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
54d8e7:	8b 54 24 28          	mov    0x28(%esp),%edx
54d8eb:	0f b6 12             	movzbl (%edx),%edx
54d8ee:	d3 fa                	sar    %cl,%edx
54d8f0:	80 e2 03             	and    $0x3,%dl