5531cf:	74 12                	je     0x5531e3
5531d1:	8b 93 ac 00 00 00    	mov    0xac(%ebx),%edx
5531d7:	8d 83 c0 00 00 00    	lea    0xc0(%ebx),%eax
5531dd:	42                   	inc    %edx
5531de:	e8 69 e7 ff ff       	call   0x55194c
5531e3:	f6 43 30 20          	testb  $0x20,0x30(%ebx)
5531e7:	74 12                	je     0x5531fb
5531e9:	8b 93 ac 00 00 00    	mov    0xac(%ebx),%edx
5531ef:	8d 83 c0 00 00 00    	lea    0xc0(%ebx),%eax
5531f5:	42                   	inc    %edx
5531f6:	e8 cd e4 ff ff       	call   0x5516c8
5531fb:	5b                   	pop    %ebx
5531fc:	c3                   	ret
5531fd:	90                   	nop
5531fe:	90                   	nop
5531ff:	90                   	nop
553200:	53                   	push   %ebx
553201:	56                   	push   %esi
553202:	57                   	push   %edi
553203:	55                   	push   %ebp
553204:	83 c4 d4             	add    $0xffffffd4,%esp
553207:	8b d9                	mov    %ecx,%ebx
553209:	8a 48 09             	mov    0x9(%eax),%cl
55320c:	80 f9 08             	cmp    $0x8,%cl
55320f:	0f 85 8e 01 00 00    	jne    0x5533a3
553215:	8a 48 0a             	mov    0xa(%eax),%cl
553218:	80 f9 01             	cmp    $0x1,%cl
55321b:	0f 85 82 01 00 00    	jne    0x5533a3
553221:	8b cb                	mov    %ebx,%ecx
553223:	49                   	dec    %ecx
553224:	74 11                	je     0x553237
553226:	49                   	dec    %ecx
553227:	74 76                	je     0x55329f
553229:	83 e9 02             	sub    $0x2,%ecx
55322c:	0f 84 e0 00 00 00    	je     0x553312
553232:	e9 4e 01 00 00       	jmp    0x553385
553237:	8b 08                	mov    (%eax),%ecx
553239:	33 f6                	xor    %esi,%esi
55323b:	89 4c 24 08          	mov    %ecx,0x8(%esp)
55323f:	89 14 24             	mov    %edx,(%esp)
553242:	33 c9                	xor    %ecx,%ecx
553244:	8b fa                	mov    %edx,%edi
553246:	89 4c 24 04          	mov    %ecx,0x4(%esp)
55324a:	ba 80 00 00 00       	mov    $0x80,%edx
55324f:	8b 4c 24 04          	mov    0x4(%esp),%ecx
553253:	3b 4c 24 08          	cmp    0x8(%esp),%ecx
553257:	73 31                	jae    0x55328a
553259:	8b 0c 24             	mov    (%esp),%ecx
55325c:	8a 09                	mov    (%ecx),%cl
55325e:	84 c9                	test   %cl,%cl
553260:	74 02                	je     0x553264
553262:	0b f2                	or     %edx,%esi
553264:	ff 04 24             	incl   (%esp)
553267:	83 fa 01             	cmp    $0x1,%edx
55326a:	7e 04                	jle    0x553270
55326c:	d1 fa                	sar    $1,%edx
55326e:	eb 0c                	jmp    0x55327c
553270:	ba 80 00 00 00       	mov    $0x80,%edx
553275:	8b ce                	mov    %esi,%ecx
553277:	88 0f                	mov    %cl,(%edi)
553279:	47                   	inc    %edi
55327a:	33 f6                	xor    %esi,%esi
55327c:	ff 44 24 04          	incl   0x4(%esp)
553280:	8b 4c 24 04          	mov    0x4(%esp),%ecx
553284:	3b 4c 24 08          	cmp    0x8(%esp),%ecx
553288:	72 cf                	jb     0x553259
55328a:	81 fa 80 00 00 00    	cmp    $0x80,%edx
553290:	0f 84 ef 00 00 00    	je     0x553385
553296:	8b d6                	mov    %esi,%edx
553298:	88 17                	mov    %dl,(%edi)
55329a:	e9 e6 00 00 00       	jmp    0x553385
55329f:	8b 08                	mov    (%eax),%ecx
5532a1:	33 f6                	xor    %esi,%esi
5532a3:	89 4c 24 14          	mov    %ecx,0x14(%esp)
5532a7:	89 54 24 0c          	mov    %edx,0xc(%esp)
5532ab:	33 c9                	xor    %ecx,%ecx
5532ad:	8b fa                	mov    %edx,%edi
5532af:	89 4c 24 10          	mov    %ecx,0x10(%esp)
5532b3:	ba 06 00 00 00       	mov    $0x6,%edx
5532b8:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5532bc:	3b 4c 24 14          	cmp    0x14(%esp),%ecx
5532c0:	73 41                	jae    0x553303
5532c2:	8a 0f                	mov    (%edi),%cl
5532c4:	80 e1 03             	and    $0x3,%cl
5532c7:	88 4c 24 18          	mov    %cl,0x18(%esp)
5532cb:	8b ca                	mov    %edx,%ecx
5532cd:	0f b6 6c 24 18       	movzbl 0x18(%esp),%ebp
5532d2:	d3 e5                	shl    %cl,%ebp
5532d4:	0b f5                	or     %ebp,%esi
5532d6:	85 d2                	test   %edx,%edx
5532d8:	75 15                	jne    0x5532ef
5532da:	8b ce                	mov    %esi,%ecx
5532dc:	8b 74 24 0c          	mov    0xc(%esp),%esi
5532e0:	ba 06 00 00 00       	mov    $0x6,%edx
5532e5:	88 0e                	mov    %cl,(%esi)
5532e7:	ff 44 24 0c          	incl   0xc(%esp)
5532eb:	33 f6                	xor    %esi,%esi
5532ed:	eb 03                	jmp    0x5532f2
5532ef:	83 ea 02             	sub    $0x2,%edx
5532f2:	47                   	inc    %edi
5532f3:	ff 44 24 10          	incl   0x10(%esp)
5532f7:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5532fb:	8b 6c 24 14          	mov    0x14(%esp),%ebp
5532ff:	3b cd                	cmp    %ebp,%ecx
553301:	72 bf                	jb     0x5532c2
553303:	83 fa 06             	cmp    $0x6,%edx
553306:	74 7d                	je     0x553385
553308:	8b d6                	mov    %esi,%edx
55330a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
55330e:	88 11                	mov    %dl,(%ecx)
553310:	eb 73                	jmp    0x553385
553312:	8b 08                	mov    (%eax),%ecx
553314:	8b fa                	mov    %edx,%edi
553316:	89 4c 24 24          	mov    %ecx,0x24(%esp)
55331a:	89 54 24 1c          	mov    %edx,0x1c(%esp)
55331e:	33 c9                	xor    %ecx,%ecx
553320:	33 f6                	xor    %esi,%esi
553322:	89 4c 24 20          	mov    %ecx,0x20(%esp)
553326:	ba 04 00 00 00       	mov    $0x4,%edx
55332b:	8b 4c 24 20          	mov    0x20(%esp),%ecx
55332f:	8b 6c 24 24          	mov    0x24(%esp),%ebp
553333:	3b cd                	cmp    %ebp,%ecx
553335:	73 41                	jae    0x553378
553337:	8a 0f                	mov    (%edi),%cl
553339:	80 e1 0f             	and    $0xf,%cl
55333c:	88 4c 24 28          	mov    %cl,0x28(%esp)
553340:	8b ca                	mov    %edx,%ecx
553342:	0f b6 6c 24 28       	movzbl 0x28(%esp),%ebp
553347:	d3 e5                	shl    %cl,%ebp
553349:	0b f5                	or     %ebp,%esi
55334b:	85 d2                	test   %edx,%edx
55334d:	75 15                	jne    0x553364
55334f:	8b ce                	mov    %esi,%ecx
553351:	8b 74 24 1c          	mov    0x1c(%esp),%esi
553355:	ba 04 00 00 00       	mov    $0x4,%edx
55335a:	88 0e                	mov    %cl,(%esi)
55335c:	ff 44 24 1c          	incl   0x1c(%esp)
553360:	33 f6                	xor    %esi,%esi
553362:	eb 03                	jmp    0x553367
553364:	83 ea 04             	sub    $0x4,%edx
553367:	47                   	inc    %edi
553368:	ff 44 24 20          	incl   0x20(%esp)
55336c:	8b 4c 24 20          	mov    0x20(%esp),%ecx
553370:	8b 6c 24 24          	mov    0x24(%esp),%ebp
553374:	3b cd                	cmp    %ebp,%ecx
553376:	72 bf                	jb     0x553337
553378:	83 fa 04             	cmp    $0x4,%edx
55337b:	74 08                	je     0x553385
55337d:	8b d6                	mov    %esi,%edx
55337f:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
553383:	88 11                	mov    %dl,(%ecx)
553385:	88 58 09             	mov    %bl,0x9(%eax)
553388:	33 d2                	xor    %edx,%edx
55338a:	8a 50 0a             	mov    0xa(%eax),%dl
55338d:	33 c9                	xor    %ecx,%ecx
55338f:	0f af d3             	imul   %ebx,%edx
553392:	88 50 0b             	mov    %dl,0xb(%eax)
553395:	8a ca                	mov    %dl,%cl
553397:	0f af 08             	imul   (%eax),%ecx
55339a:	83 c1 07             	add    $0x7,%ecx
55339d:	c1 e9 03             	shr    $0x3,%ecx
5533a0:	89 48 04             	mov    %ecx,0x4(%eax)
5533a3:	83 c4 2c             	add    $0x2c,%esp
5533a6:	5d                   	pop    %ebp
5533a7:	5f                   	pop    %edi
5533a8:	5e                   	pop    %esi
5533a9:	5b                   	pop    %ebx
5533aa:	c3                   	ret
5533ab:	90                   	nop
5533ac:	53                   	push   %ebx
5533ad:	56                   	push   %esi
5533ae:	57                   	push   %edi
5533af:	55                   	push   %ebp
5533b0:	83 c4 cc             	add    $0xffffffcc,%esp
5533b3:	8b fa                	mov    %edx,%edi
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