54d2ba:	85 c0                	test   %eax,%eax
54d2bc:	7f 52                	jg     0x54d310
54d2be:	f6 83 dc 00 00 00 20 	testb  $0x20,0xdc(%ebx)
54d2c5:	75 29                	jne    0x54d2f0
54d2c7:	8d 93 dc 00 00 00    	lea    0xdc(%ebx),%edx
54d2cd:	8b c3                	mov    %ebx,%eax
54d2cf:	e8 8c 1f 00 00       	call   0x54f260
54d2d4:	83 f8 03             	cmp    $0x3,%eax
54d2d7:	74 17                	je     0x54d2f0
54d2d9:	8b 54 24 08          	mov    0x8(%esp),%edx
54d2dd:	8b c3                	mov    %ebx,%eax
54d2df:	e8 f8 da ff ff       	call   0x54addc
54d2e4:	ba f4 bb 69 00       	mov    $0x69bbf4,%edx
54d2e9:	8b c3                	mov    %ebx,%eax
54d2eb:	e8 50 dd ff ff       	call   0x54b040
54d2f0:	6a 01                	push   $0x1
54d2f2:	8d 4c 24 04          	lea    0x4(%esp),%ecx
54d2f6:	8b d5                	mov    %ebp,%edx
54d2f8:	8b c3                	mov    %ebx,%eax
54d2fa:	e8 61 75 ff ff       	call   0x544860
54d2ff:	eb 0f                	jmp    0x54d310
54d301:	6a 01                	push   $0x1
54d303:	8d 4c 24 04          	lea    0x4(%esp),%ecx
54d307:	8b d5                	mov    %ebp,%edx
54d309:	8b c3                	mov    %ebx,%eax
54d30b:	e8 50 75 ff ff       	call   0x544860
54d310:	8b 54 24 08          	mov    0x8(%esp),%edx
54d314:	8b c3                	mov    %ebx,%eax
54d316:	e8 c1 da ff ff       	call   0x54addc
54d31b:	eb 02                	jmp    0x54d31f
54d31d:	8b fe                	mov    %esi,%edi
54d31f:	8b d7                	mov    %edi,%edx
54d321:	8b c3                	mov    %ebx,%eax
54d323:	e8 1c de ff ff       	call   0x54b144
54d328:	83 c4 14             	add    $0x14,%esp
54d32b:	5d                   	pop    %ebp
54d32c:	5f                   	pop    %edi
54d32d:	5e                   	pop    %esi
54d32e:	5b                   	pop    %ebx
54d32f:	c3                   	ret
54d330:	8a 0a                	mov    (%edx),%cl
54d332:	80 f9 29             	cmp    $0x29,%cl
54d335:	72 5f                	jb     0x54d396
54d337:	80 f9 7a             	cmp    $0x7a,%cl
54d33a:	77 5a                	ja     0x54d396
54d33c:	8a 0a                	mov    (%edx),%cl
54d33e:	80 f9 5a             	cmp    $0x5a,%cl
54d341:	76 05                	jbe    0x54d348
54d343:	80 f9 61             	cmp    $0x61,%cl
54d346:	72 4e                	jb     0x54d396
54d348:	8a 4a 01             	mov    0x1(%edx),%cl
54d34b:	80 f9 29             	cmp    $0x29,%cl
54d34e:	72 46                	jb     0x54d396
54d350:	80 f9 7a             	cmp    $0x7a,%cl
54d353:	77 41                	ja     0x54d396
54d355:	8a 4a 01             	mov    0x1(%edx),%cl
54d358:	80 f9 5a             	cmp    $0x5a,%cl
54d35b:	76 05                	jbe    0x54d362
54d35d:	80 f9 61             	cmp    $0x61,%cl
54d360:	72 34                	jb     0x54d396
54d362:	8a 4a 02             	mov    0x2(%edx),%cl
54d365:	80 f9 29             	cmp    $0x29,%cl
54d368:	72 2c                	jb     0x54d396
54d36a:	80 f9 7a             	cmp    $0x7a,%cl
54d36d:	77 27                	ja     0x54d396
54d36f:	8a 4a 02             	mov    0x2(%edx),%cl
54d372:	80 f9 5a             	cmp    $0x5a,%cl
54d375:	76 05                	jbe    0x54d37c
54d377:	80 f9 61             	cmp    $0x61,%cl
54d37a:	72 1a                	jb     0x54d396
54d37c:	8a 4a 03             	mov    0x3(%edx),%cl
54d37f:	80 f9 29             	cmp    $0x29,%cl
54d382:	72 12                	jb     0x54d396
54d384:	80 f9 7a             	cmp    $0x7a,%cl
54d387:	77 0d                	ja     0x54d396
54d389:	8a 4a 03             	mov    0x3(%edx),%cl
54d38c:	80 f9 5a             	cmp    $0x5a,%cl
54d38f:	76 0f                	jbe    0x54d3a0
54d391:	80 f9 61             	cmp    $0x61,%cl
54d394:	73 0a                	jae    0x54d3a0
54d396:	ba 0b bc 69 00       	mov    $0x69bc0b,%edx
54d39b:	e8 a0 dc ff ff       	call   0x54b040
54d3a0:	c3                   	ret
54d3a1:	90                   	nop
54d3a2:	90                   	nop
54d3a3:	90                   	nop
54d3a4:	53                   	push   %ebx
54d3a5:	56                   	push   %esi
54d3a6:	57                   	push   %edi
54d3a7:	55                   	push   %ebp
54d3a8:	83 c4 ac             	add    $0xffffffac,%esp
54d3ab:	8b f1                	mov    %ecx,%esi
54d3ad:	81 fe ff 00 00 00    	cmp    $0xff,%esi
54d3b3:	75 2c                	jne    0x54d3e1
54d3b5:	33 c9                	xor    %ecx,%ecx
54d3b7:	8a 88 cb 00 00 00    	mov    0xcb(%eax),%cl
54d3bd:	0f af 88 88 00 00 00 	imul   0x88(%eax),%ecx
54d3c4:	83 c1 07             	add    $0x7,%ecx
54d3c7:	c1 e9 03             	shr    $0x3,%ecx
54d3ca:	51                   	push   %ecx
54d3cb:	8b 80 ac 00 00 00    	mov    0xac(%eax),%eax
54d3d1:	40                   	inc    %eax
54d3d2:	50                   	push   %eax
54d3d3:	52                   	push   %edx
54d3d4:	e8 07 90 fd ff       	call   0x5263e0
54d3d9:	83 c4 0c             	add    $0xc,%esp
54d3dc:	e9 e0 02 00 00       	jmp    0x54d6c1
54d3e1:	8a 88 cb 00 00 00    	mov    0xcb(%eax),%cl
54d3e7:	fe c9                	dec    %cl
54d3e9:	74 16                	je     0x54d401
54d3eb:	fe c9                	dec    %cl
54d3ed:	0f 84 d5 00 00 00    	je     0x54d4c8
54d3f3:	80 e9 02             	sub    $0x2,%cl
54d3f6:	0f 84 96 01 00 00    	je     0x54d592
54d3fc:	e9 58 02 00 00       	jmp    0x54d659
54d401:	8b 88 ac 00 00 00    	mov    0xac(%eax),%ecx
54d407:	41                   	inc    %ecx
54d408:	89 0c 24             	mov    %ecx,(%esp)
54d40b:	8b ea                	mov    %edx,%ebp
54d40d:	ba 80 00 00 00       	mov    $0x80,%edx
54d412:	8b 88 88 00 00 00    	mov    0x88(%eax),%ecx
54d418:	89 4c 24 10          	mov    %ecx,0x10(%esp)
54d41c:	f6 40 32 01          	testb  $0x1,0x32(%eax)
54d420:	74 18                	je     0x54d43a
54d422:	33 c0                	xor    %eax,%eax
54d424:	89 44 24 08          	mov    %eax,0x8(%esp)
54d428:	c7 44 24 0c 07 00 00 	movl   $0x7,0xc(%esp)
54d42f:	00
54d430:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
54d437:	00
54d438:	eb 16                	jmp    0x54d450
54d43a:	c7 44 24 08 07 00 00 	movl   $0x7,0x8(%esp)
54d441:	00
54d442:	33 c0                	xor    %eax,%eax
54d444:	89 44 24 0c          	mov    %eax,0xc(%esp)
54d448:	c7 44 24 04 ff ff ff 	movl   $0xffffffff,0x4(%esp)
54d44f:	ff
54d450:	8b 44 24 08          	mov    0x8(%esp),%eax
54d454:	33 ff                	xor    %edi,%edi
54d456:	8b 4c 24 10          	mov    0x10(%esp),%ecx
54d45a:	3b f9                	cmp    %ecx,%edi
54d45c:	0f 83 5f 02 00 00    	jae    0x54d6c1
54d462:	85 d6                	test   %edx,%esi
54d464:	74 30                	je     0x54d496
54d466:	8b c8                	mov    %eax,%ecx
54d468:	8b 1c 24             	mov    (%esp),%ebx
54d46b:	0f b6 1b             	movzbl (%ebx),%ebx
54d46e:	d3 fb                	sar    %cl,%ebx
54d470:	83 e3 01             	and    $0x1,%ebx
54d473:	89 5c 24 14          	mov    %ebx,0x14(%esp)
54d477:	b9 07 00 00 00       	mov    $0x7,%ecx
54d47c:	2b c8                	sub    %eax,%ecx
54d47e:	bb 7f 7f 00 00       	mov    $0x7f7f,%ebx
54d483:	d3 fb                	sar    %cl,%ebx
54d485:	80 e3 ff             	and    $0xff,%bl
54d488:	20 5d 00             	and    %bl,0x0(%ebp)
54d48b:	8b c8                	mov    %eax,%ecx
54d48d:	8a 5c 24 14          	mov    0x14(%esp),%bl
54d491:	d2 e3                	shl    %cl,%bl
54d493:	08 5d 00             	or     %bl,0x0(%ebp)
54d496:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
54d49a:	3b c1                	cmp    %ecx,%eax
54d49c:	75 0a                	jne    0x54d4a8
54d49e:	8b 44 24 08          	mov    0x8(%esp),%eax
54d4a2:	ff 04 24             	incl   (%esp)
54d4a5:	45                   	inc    %ebp
54d4a6:	eb 04                	jmp    0x54d4ac
54d4a8:	03 44 24 04          	add    0x4(%esp),%eax
54d4ac:	83 fa 01             	cmp    $0x1,%edx
54d4af:	75 07                	jne    0x54d4b8
54d4b1:	ba 80 00 00 00       	mov    $0x80,%edx
54d4b6:	eb 02                	jmp    0x54d4ba
54d4b8:	d1 fa                	sar    $1,%edx
54d4ba:	47                   	inc    %edi
54d4bb:	8b 4c 24 10          	mov    0x10(%esp),%ecx
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