5533b5:	8a 50 08             	mov    0x8(%eax),%dl
5533b8:	80 fa 03             	cmp    $0x3,%dl
5533bb:	0f 84 36 02 00 00    	je     0x5535f7
5533c1:	33 d2                	xor    %edx,%edx
5533c3:	89 14 24             	mov    %edx,(%esp)
5533c6:	f6 40 08 02          	testb  $0x2,0x8(%eax)
5533ca:	74 55                	je     0x553421
5533cc:	0f b6 31             	movzbl (%ecx),%esi
5533cf:	33 db                	xor    %ebx,%ebx
5533d1:	8b 2c 24             	mov    (%esp),%ebp
5533d4:	8a 58 09             	mov    0x9(%eax),%bl
5533d7:	8b d3                	mov    %ebx,%edx
5533d9:	2b d6                	sub    %esi,%edx
5533db:	89 54 ac 14          	mov    %edx,0x14(%esp,%ebp,4)
5533df:	8b 14 24             	mov    (%esp),%edx
5533e2:	89 74 94 24          	mov    %esi,0x24(%esp,%edx,4)
5533e6:	8b d3                	mov    %ebx,%edx
5533e8:	ff 04 24             	incl   (%esp)
5533eb:	0f b6 71 01          	movzbl 0x1(%ecx),%esi
5533ef:	8b 2c 24             	mov    (%esp),%ebp
5533f2:	2b d6                	sub    %esi,%edx
5533f4:	89 54 ac 14          	mov    %edx,0x14(%esp,%ebp,4)
5533f8:	8b 14 24             	mov    (%esp),%edx
5533fb:	89 74 94 24          	mov    %esi,0x24(%esp,%edx,4)
5533ff:	33 d2                	xor    %edx,%edx
553401:	ff 04 24             	incl   (%esp)
553404:	8a 51 02             	mov    0x2(%ecx),%dl
553407:	2b da                	sub    %edx,%ebx
553409:	8b 14 24             	mov    (%esp),%edx
55340c:	89 5c 94 14          	mov    %ebx,0x14(%esp,%edx,4)
553410:	33 d2                	xor    %edx,%edx
553412:	8b 1c 24             	mov    (%esp),%ebx
553415:	8a 51 02             	mov    0x2(%ecx),%dl
553418:	89 54 9c 24          	mov    %edx,0x24(%esp,%ebx,4)
55341c:	ff 04 24             	incl   (%esp)
55341f:	eb 1d                	jmp    0x55343e
553421:	33 d2                	xor    %edx,%edx
553423:	33 db                	xor    %ebx,%ebx
553425:	8b 34 24             	mov    (%esp),%esi
553428:	8a 59 03             	mov    0x3(%ecx),%bl
55342b:	8a 50 09             	mov    0x9(%eax),%dl
55342e:	2b d3                	sub    %ebx,%edx
553430:	89 54 b4 14          	mov    %edx,0x14(%esp,%esi,4)
553434:	8b 14 24             	mov    (%esp),%edx
553437:	89 5c 94 24          	mov    %ebx,0x24(%esp,%edx,4)
55343b:	ff 04 24             	incl   (%esp)
55343e:	f6 40 08 04          	testb  $0x4,0x8(%eax)
553442:	74 22                	je     0x553466
553444:	33 d2                	xor    %edx,%edx
553446:	33 db                	xor    %ebx,%ebx
553448:	8a 59 04             	mov    0x4(%ecx),%bl
55344b:	8a 50 09             	mov    0x9(%eax),%dl
55344e:	2b d3                	sub    %ebx,%edx
553450:	8b 1c 24             	mov    (%esp),%ebx
553453:	89 54 9c 14          	mov    %edx,0x14(%esp,%ebx,4)
553457:	33 d2                	xor    %edx,%edx
553459:	8b 1c 24             	mov    (%esp),%ebx
55345c:	8a 51 04             	mov    0x4(%ecx),%dl
55345f:	89 54 9c 24          	mov    %edx,0x24(%esp,%ebx,4)
553463:	ff 04 24             	incl   (%esp)
553466:	8a 50 09             	mov    0x9(%eax),%dl
553469:	80 fa 08             	cmp    $0x8,%dl
55346c:	0f 83 87 00 00 00    	jae    0x5534f9
553472:	8b f7                	mov    %edi,%esi
553474:	8b 50 04             	mov    0x4(%eax),%edx
553477:	89 54 24 04          	mov    %edx,0x4(%esp)
55347b:	8a 51 03             	mov    0x3(%ecx),%dl
55347e:	80 fa 01             	cmp    $0x1,%dl
553481:	75 0c                	jne    0x55348f
553483:	8a 50 09             	mov    0x9(%eax),%dl
553486:	80 fa 02             	cmp    $0x2,%dl
553489:	75 04                	jne    0x55348f
55348b:	b2 55                	mov    $0x55,%dl
55348d:	eb 15                	jmp    0x5534a4
55348f:	8a 40 09             	mov    0x9(%eax),%al
553492:	3c 04                	cmp    $0x4,%al
553494:	75 0c                	jne    0x5534a2
553496:	8a 49 03             	mov    0x3(%ecx),%cl
553499:	80 f9 03             	cmp    $0x3,%cl
55349c:	75 04                	jne    0x5534a2
55349e:	b2 11                	mov    $0x11,%dl
5534a0:	eb 02                	jmp    0x5534a4
5534a2:	b2 ff                	mov    $0xff,%dl
5534a4:	33 ed                	xor    %ebp,%ebp
5534a6:	8b 44 24 04          	mov    0x4(%esp),%eax
5534aa:	3b e8                	cmp    %eax,%ebp
5534ac:	0f 83 45 01 00 00    	jae    0x5535f7
5534b2:	0f b6 3e             	movzbl (%esi),%edi
5534b5:	c6 06 00             	movb   $0x0,(%esi)
5534b8:	8b 44 24 14          	mov    0x14(%esp),%eax
5534bc:	eb 22                	jmp    0x5534e0
5534be:	85 c0                	test   %eax,%eax
5534c0:	7e 0d                	jle    0x5534cf
5534c2:	8b c8                	mov    %eax,%ecx
5534c4:	8b df                	mov    %edi,%ebx
5534c6:	d2 e3                	shl    %cl,%bl
5534c8:	80 e3 ff             	and    $0xff,%bl
5534cb:	08 1e                	or     %bl,(%esi)
5534cd:	eb 0d                	jmp    0x5534dc
5534cf:	8b c8                	mov    %eax,%ecx
5534d1:	f7 d9                	neg    %ecx
5534d3:	0f b7 df             	movzwl %di,%ebx
5534d6:	d3 fb                	sar    %cl,%ebx
5534d8:	22 da                	and    %dl,%bl
5534da:	08 1e                	or     %bl,(%esi)
5534dc:	2b 44 24 24          	sub    0x24(%esp),%eax
5534e0:	8b 4c 24 24          	mov    0x24(%esp),%ecx
5534e4:	f7 d9                	neg    %ecx
5534e6:	3b c1                	cmp    %ecx,%eax
5534e8:	7f d4                	jg     0x5534be
5534ea:	45                   	inc    %ebp
5534eb:	46                   	inc    %esi
5534ec:	8b 44 24 04          	mov    0x4(%esp),%eax
5534f0:	3b e8                	cmp    %eax,%ebp
5534f2:	72 be                	jb     0x5534b2
5534f4:	e9 fe 00 00 00       	jmp    0x5535f7
5534f9:	8a 50 09             	mov    0x9(%eax),%dl
5534fc:	80 fa 08             	cmp    $0x8,%dl
5534ff:	75 68                	jne    0x553569
553501:	8b f7                	mov    %edi,%esi
553503:	8b 00                	mov    (%eax),%eax
553505:	f7 2c 24             	imull  (%esp)
553508:	89 44 24 08          	mov    %eax,0x8(%esp)
55350c:	33 ed                	xor    %ebp,%ebp
55350e:	8b 44 24 08          	mov    0x8(%esp),%eax
553512:	3b e8                	cmp    %eax,%ebp
553514:	0f 83 dd 00 00 00    	jae    0x5535f7
55351a:	8b c5                	mov    %ebp,%eax
55351c:	33 d2                	xor    %edx,%edx
55351e:	f7 34 24             	divl   (%esp)
553521:	0f b6 3e             	movzbl (%esi),%edi
553524:	c6 06 00             	movb   $0x0,(%esi)
553527:	8b 44 94 14          	mov    0x14(%esp,%edx,4),%eax
55352b:	8d 54 94 24          	lea    0x24(%esp,%edx,4),%edx
55352f:	eb 21                	jmp    0x553552
553531:	85 c0                	test   %eax,%eax
553533:	7e 0d                	jle    0x553542
553535:	8b c8                	mov    %eax,%ecx
553537:	8b df                	mov    %edi,%ebx
553539:	d2 e3                	shl    %cl,%bl
55353b:	80 e3 ff             	and    $0xff,%bl
55353e:	08 1e                	or     %bl,(%esi)
553540:	eb 0e                	jmp    0x553550
553542:	8b c8                	mov    %eax,%ecx
553544:	f7 d9                	neg    %ecx
553546:	0f b7 df             	movzwl %di,%ebx
553549:	d3 fb                	sar    %cl,%ebx
55354b:	80 e3 ff             	and    $0xff,%bl
55354e:	08 1e                	or     %bl,(%esi)
553550:	2b 02                	sub    (%edx),%eax
553552:	8b 0a                	mov    (%edx),%ecx
553554:	f7 d9                	neg    %ecx
553556:	3b c1                	cmp    %ecx,%eax
553558:	7f d7                	jg     0x553531
55355a:	45                   	inc    %ebp
55355b:	46                   	inc    %esi
55355c:	8b 44 24 08          	mov    0x8(%esp),%eax
553560:	3b e8                	cmp    %eax,%ebp
553562:	72 b6                	jb     0x55351a
553564:	e9 8e 00 00 00       	jmp    0x5535f7
553569:	8b 10                	mov    (%eax),%edx
55356b:	33 c0                	xor    %eax,%eax
55356d:	0f af 14 24          	imul   (%esp),%edx
553571:	89 54 24 10          	mov    %edx,0x10(%esp)
553575:	89 44 24 0c          	mov    %eax,0xc(%esp)
553579:	8b 54 24 0c          	mov    0xc(%esp),%edx
55357d:	8b 4c 24 10          	mov    0x10(%esp),%ecx
553581:	3b d1                	cmp    %ecx,%edx
553583:	73 72                	jae    0x5535f7
553585:	8b 44 24 0c          	mov    0xc(%esp),%eax
553589:	33 d2                	xor    %edx,%edx
55358b:	f7 34 24             	divl   (%esp)
55358e:	0f b6 37             	movzbl (%edi),%esi
553591:	c1 e6 08             	shl    $0x8,%esi
553594:	33 c0                	xor    %eax,%eax
553596:	8a 47 01             	mov    0x1(%edi),%al
553599:	66 03 f0             	add    %ax,%si
55359c:	33 db                	xor    %ebx,%ebx
55359e:	8b 44 94 14          	mov    0x14(%esp,%edx,4),%eax
5535a2:	8d 54 94 24          	lea    0x24(%esp,%edx,4),%edx
5535a6:	eb 28                	jmp    0x5535d0
5535a8:	85 c0                	test   %eax,%eax
5535aa:	7e 11                	jle    0x5535bd
5535ac:	8b c8                	mov    %eax,%ecx
5535ae:	8b ee                	mov    %esi,%ebp
5535b0:	66 d3 e5             	shl    %cl,%bp
5535b3:	66 81 e5 ff ff       	and    $0xffff,%bp
5535b8:	66 0b dd             	or     %bp,%bx
5535bb:	eb 11                	jmp    0x5535ce
5535bd:	8b c8                	mov    %eax,%ecx
5535bf:	f7 d9                	neg    %ecx
5535c1:	0f b7 ee             	movzwl %si,%ebp
5535c4:	d3 fd                	sar    %cl,%ebp
5535c6:	66 81 e5 ff ff       	and    $0xffff,%bp
5535cb:	66 0b dd             	or     %bp,%bx
5535ce:	2b 02                	sub    (%edx),%eax
5535d0:	8b 0a                	mov    (%edx),%ecx
5535d2:	f7 d9                	neg    %ecx
5535d4:	3b c1                	cmp    %ecx,%eax
5535d6:	7f d0                	jg     0x5535a8
5535d8:	0f b7 c3             	movzwl %bx,%eax
5535db:	c1 f8 08             	sar    $0x8,%eax
5535de:	88 07                	mov    %al,(%edi)
5535e0:	47                   	inc    %edi
5535e1:	80 e3 ff             	and    $0xff,%bl
5535e4:	88 1f                	mov    %bl,(%edi)
5535e6:	47                   	inc    %edi
5535e7:	ff 44 24 0c          	incl   0xc(%esp)
5535eb:	8b 54 24 0c          	mov    0xc(%esp),%edx
5535ef:	8b 44 24 10          	mov    0x10(%esp),%eax
5535f3:	3b d0                	cmp    %eax,%edx
5535f5:	72 8e                	jb     0x553585
5535f7:	83 c4 34             	add    $0x34,%esp
5535fa:	5d                   	pop    %ebp
5535fb:	5f                   	pop    %edi
5535fc:	5e                   	pop    %esi
5535fd:	5b                   	pop    %ebx
5535fe:	c3                   	ret
5535ff:	90                   	nop
553600:	53                   	push   %ebx
553601:	56                   	push   %esi
553602:	57                   	push   %edi
553603:	51                   	push   %ecx
553604:	8a 48 08             	mov    0x8(%eax),%cl
553607:	80 f9 06             	cmp    $0x6,%cl
55360a:	0f 85 8f 00 00 00    	jne    0x55369f
553610:	8a 48 09             	mov    0x9(%eax),%cl
553613:	80 f9 08             	cmp    $0x8,%cl
553616:	75 32                	jne    0x55364a
553618:	8b 38                	mov    (%eax),%edi
55361a:	33 f6                	xor    %esi,%esi
55361c:	8b ca                	mov    %edx,%ecx
55361e:	8b c2                	mov    %edx,%eax
553620:	3b fe                	cmp    %esi,%edi
553622:	0f 86 df 00 00 00    	jbe    0x553707
553628:	8a 10                	mov    (%eax),%dl
55362a:	40                   	inc    %eax
55362b:	8a 18                	mov    (%eax),%bl
55362d:	40                   	inc    %eax
55362e:	88 19                	mov    %bl,(%ecx)
553630:	41                   	inc    %ecx
553631:	8a 18                	mov    (%eax),%bl
553633:	40                   	inc    %eax
553634:	88 19                	mov    %bl,(%ecx)
553636:	41                   	inc    %ecx
553637:	8a 18                	mov    (%eax),%bl
553639:	40                   	inc    %eax
55363a:	88 19                	mov    %bl,(%ecx)
55363c:	41                   	inc    %ecx
55363d:	88 11                	mov    %dl,(%ecx)
55363f:	41                   	inc    %ecx
553640:	46                   	inc    %esi
553641:	3b fe                	cmp    %esi,%edi
553643:	77 e3                	ja     0x553628
553645:	e9 bd 00 00 00       	jmp    0x553707
55364a:	8b 38                	mov    (%eax),%edi
55364c:	33 f6                	xor    %esi,%esi
55364e:	8b ca                	mov    %edx,%ecx
553650:	8b c2                	mov    %edx,%eax
553652:	3b fe                	cmp    %esi,%edi
553654:	0f 86 ad 00 00 00    	jbe    0x553707
55365a:	8a 10                	mov    (%eax),%dl
55365c:	40                   	inc    %eax
55365d:	88 14 24             	mov    %dl,(%esp)
553660:	8a 10                	mov    (%eax),%dl
553662:	40                   	inc    %eax
553663:	88 54 24 01          	mov    %dl,0x1(%esp)
553667:	8a 10                	mov    (%eax),%dl
553669:	40                   	inc    %eax
55366a:	88 11                	mov    %dl,(%ecx)
55366c:	41                   	inc    %ecx
55366d:	8a 10                	mov    (%eax),%dl
55366f:	40                   	inc    %eax
553670:	88 11                	mov    %dl,(%ecx)
553672:	41                   	inc    %ecx
553673:	8a 10                	mov    (%eax),%dl
553675:	40                   	inc    %eax
553676:	88 11                	mov    %dl,(%ecx)
553678:	41                   	inc    %ecx
553679:	8a 10                	mov    (%eax),%dl
55367b:	40                   	inc    %eax
55367c:	88 11                	mov    %dl,(%ecx)
55367e:	41                   	inc    %ecx
55367f:	8a 10                	mov    (%eax),%dl
553681:	40                   	inc    %eax
553682:	88 11                	mov    %dl,(%ecx)
553684:	41                   	inc    %ecx
553685:	8a 10                	mov    (%eax),%dl
553687:	40                   	inc    %eax
553688:	88 11                	mov    %dl,(%ecx)
55368a:	41                   	inc    %ecx
55368b:	8a 14 24             	mov    (%esp),%dl
55368e:	88 11                	mov    %dl,(%ecx)
553690:	41                   	inc    %ecx
553691:	8a 54 24 01          	mov    0x1(%esp),%dl
553695:	88 11                	mov    %dl,(%ecx)
553697:	41                   	inc    %ecx
553698:	46                   	inc    %esi
553699:	3b fe                	cmp    %esi,%edi
55369b:	77 bd                	ja     0x55365a
55369d:	eb 68                	jmp    0x553707
55369f:	8a 48 08             	mov    0x8(%eax),%cl
5536a2:	80 f9 04             	cmp    $0x4,%cl
5536a5:	75 60                	jne    0x553707
5536a7:	8a 48 09             	mov    0x9(%eax),%cl
5536aa:	80 f9 08             	cmp    $0x8,%cl
5536ad:	75 1f                	jne    0x5536ce
5536af:	8b 38                	mov    (%eax),%edi
5536b1:	33 f6                	xor    %esi,%esi
5536b3:	8b ca                	mov    %edx,%ecx
5536b5:	8b c2                	mov    %edx,%eax
5536b7:	3b fe                	cmp    %esi,%edi
5536b9:	76 4c                	jbe    0x553707
5536bb:	8a 10                	mov    (%eax),%dl
5536bd:	40                   	inc    %eax
5536be:	8a 18                	mov    (%eax),%bl
5536c0:	40                   	inc    %eax
5536c1:	88 19                	mov    %bl,(%ecx)
5536c3:	41                   	inc    %ecx
5536c4:	88 11                	mov    %dl,(%ecx)
5536c6:	41                   	inc    %ecx
5536c7:	46                   	inc    %esi
5536c8:	3b fe                	cmp    %esi,%edi
5536ca:	77 ef                	ja     0x5536bb
5536cc:	eb 39                	jmp    0x553707
5536ce:	8b 38                	mov    (%eax),%edi
5536d0:	33 f6                	xor    %esi,%esi
5536d2:	8b ca                	mov    %edx,%ecx
5536d4:	8b c2                	mov    %edx,%eax
5536d6:	3b fe                	cmp    %esi,%edi
5536d8:	76 2d                	jbe    0x553707
5536da:	8a 10                	mov    (%eax),%dl
5536dc:	40                   	inc    %eax
5536dd:	88 54 24 02          	mov    %dl,0x2(%esp)
5536e1:	8a 10                	mov    (%eax),%dl
5536e3:	40                   	inc    %eax
5536e4:	88 54 24 03          	mov    %dl,0x3(%esp)
5536e8:	8a 10                	mov    (%eax),%dl
5536ea:	40                   	inc    %eax
5536eb:	88 11                	mov    %dl,(%ecx)
5536ed:	41                   	inc    %ecx
5536ee:	8a 10                	mov    (%eax),%dl
5536f0:	40                   	inc    %eax
5536f1:	88 11                	mov    %dl,(%ecx)
5536f3:	41                   	inc    %ecx
5536f4:	8a 54 24 02          	mov    0x2(%esp),%dl
5536f8:	88 11                	mov    %dl,(%ecx)
5536fa:	41                   	inc    %ecx
5536fb:	8a 54 24 03          	mov    0x3(%esp),%dl
5536ff:	88 11                	mov    %dl,(%ecx)