54706e:	e8 fd 08 00 00       	call   0x547970
547073:	f6 43 31 80          	testb  $0x80,0x31(%ebx)
547077:	74 1d                	je     0x547096
547079:	8b 53 2c             	mov    0x2c(%ebx),%edx
54707c:	8d 83 c0 00 00 00    	lea    0xc0(%ebx),%eax
547082:	52                   	push   %edx
547083:	0f b7 8b ee 00 00 00 	movzwl 0xee(%ebx),%ecx
54708a:	8b 93 ac 00 00 00    	mov    0xac(%ebx),%edx
547090:	42                   	inc    %edx
547091:	e8 b2 05 00 00       	call   0x547648
547096:	f6 43 32 08          	testb  $0x8,0x32(%ebx)
54709a:	74 12                	je     0x5470ae
54709c:	8b 93 ac 00 00 00    	mov    0xac(%ebx),%edx
5470a2:	8d 83 c0 00 00 00    	lea    0xc0(%ebx),%eax
5470a8:	42                   	inc    %edx
5470a9:	e8 ce 04 00 00       	call   0x54757c
5470ae:	f6 43 32 02          	testb  $0x2,0x32(%ebx)
5470b2:	74 12                	je     0x5470c6
5470b4:	8b 93 ac 00 00 00    	mov    0xac(%ebx),%edx
5470ba:	8d 83 c0 00 00 00    	lea    0xc0(%ebx),%eax
5470c0:	42                   	inc    %edx
5470c1:	e8 9e 03 00 00       	call   0x547464
5470c6:	f6 43 30 10          	testb  $0x10,0x30(%ebx)
5470ca:	74 12                	je     0x5470de
5470cc:	8b 93 ac 00 00 00    	mov    0xac(%ebx),%edx
5470d2:	8d 83 c0 00 00 00    	lea    0xc0(%ebx),%eax
5470d8:	42                   	inc    %edx
5470d9:	e8 be dc ff ff       	call   0x544d9c
5470de:	f6 43 32 10          	testb  $0x10,0x32(%ebx)
5470e2:	74 62                	je     0x547146
5470e4:	8b 4b 18             	mov    0x18(%ebx),%ecx
5470e7:	85 c9                	test   %ecx,%ecx
5470e9:	74 12                	je     0x5470fd
5470eb:	8b 8b ac 00 00 00    	mov    0xac(%ebx),%ecx
5470f1:	8d 93 c0 00 00 00    	lea    0xc0(%ebx),%edx
5470f7:	41                   	inc    %ecx
5470f8:	8b c3                	mov    %ebx,%eax
5470fa:	ff 53 18             	call   *0x18(%ebx)
5470fd:	8a 43 24             	mov    0x24(%ebx),%al
547100:	84 c0                	test   %al,%al
547102:	74 06                	je     0x54710a
547104:	88 83 c9 00 00 00    	mov    %al,0xc9(%ebx)
54710a:	8a 43 25             	mov    0x25(%ebx),%al
54710d:	84 c0                	test   %al,%al
54710f:	74 06                	je     0x547117
547111:	88 83 ca 00 00 00    	mov    %al,0xca(%ebx)
547117:	33 c0                	xor    %eax,%eax
547119:	33 d2                	xor    %edx,%edx
54711b:	8a 93 ca 00 00 00    	mov    0xca(%ebx),%dl
547121:	8a 83 c9 00 00 00    	mov    0xc9(%ebx),%al
547127:	f7 ea                	imul   %edx
547129:	33 c9                	xor    %ecx,%ecx
54712b:	88 83 cb 00 00 00    	mov    %al,0xcb(%ebx)
547131:	8a c8                	mov    %al,%cl
547133:	0f af 8b c0 00 00 00 	imul   0xc0(%ebx),%ecx
54713a:	83 c1 07             	add    $0x7,%ecx
54713d:	c1 e9 03             	shr    $0x3,%ecx
547140:	89 8b c4 00 00 00    	mov    %ecx,0xc4(%ebx)
547146:	5b                   	pop    %ebx
547147:	c3                   	ret
547148:	53                   	push   %ebx
547149:	56                   	push   %esi
54714a:	57                   	push   %edi
54714b:	55                   	push   %ebp
54714c:	83 c4 f4             	add    $0xfffffff4,%esp
54714f:	8b f2                	mov    %edx,%esi
547151:	8a 50 09             	mov    0x9(%eax),%dl
547154:	80 fa 08             	cmp    $0x8,%dl
547157:	0f 83 23 01 00 00    	jae    0x547280
54715d:	8b 18                	mov    (%eax),%ebx
54715f:	fe ca                	dec    %dl
547161:	74 12                	je     0x547175
547163:	fe ca                	dec    %dl
547165:	74 5f                	je     0x5471c6
547167:	80 ea 02             	sub    $0x2,%dl
54716a:	0f 84 a7 00 00 00    	je     0x547217
547170:	e9 f3 00 00 00       	jmp    0x547268
547175:	8b d3                	mov    %ebx,%edx
547177:	8b fb                	mov    %ebx,%edi
547179:	4a                   	dec    %edx
54717a:	03 fe                	add    %esi,%edi
54717c:	c1 ea 03             	shr    $0x3,%edx
54717f:	4f                   	dec    %edi
547180:	03 d6                	add    %esi,%edx
547182:	be 07 00 00 00       	mov    $0x7,%esi
547187:	89 14 24             	mov    %edx,(%esp)
54718a:	8d 53 07             	lea    0x7(%ebx),%edx
54718d:	83 e2 07             	and    $0x7,%edx
547190:	2b f2                	sub    %edx,%esi
547192:	33 d2                	xor    %edx,%edx
547194:	3b da                	cmp    %edx,%ebx
547196:	0f 86 cc 00 00 00    	jbe    0x547268
54719c:	8b 2c 24             	mov    (%esp),%ebp
54719f:	8b ce                	mov    %esi,%ecx
5471a1:	0f b6 6d 00          	movzbl 0x0(%ebp),%ebp
5471a5:	d3 fd                	sar    %cl,%ebp
5471a7:	8b cd                	mov    %ebp,%ecx
5471a9:	80 e1 01             	and    $0x1,%cl
5471ac:	83 fe 07             	cmp    $0x7,%esi
5471af:	88 0f                	mov    %cl,(%edi)
5471b1:	75 07                	jne    0x5471ba
5471b3:	33 f6                	xor    %esi,%esi
5471b5:	ff 0c 24             	decl   (%esp)
5471b8:	eb 01                	jmp    0x5471bb
5471ba:	46                   	inc    %esi
5471bb:	4f                   	dec    %edi
5471bc:	42                   	inc    %edx
5471bd:	3b da                	cmp    %edx,%ebx
5471bf:	77 db                	ja     0x54719c
5471c1:	e9 a2 00 00 00       	jmp    0x547268
5471c6:	8b d3                	mov    %ebx,%edx
5471c8:	8b fb                	mov    %ebx,%edi
5471ca:	4a                   	dec    %edx
5471cb:	03 fe                	add    %esi,%edi
5471cd:	c1 ea 02             	shr    $0x2,%edx
5471d0:	4f                   	dec    %edi
5471d1:	03 d6                	add    %esi,%edx
5471d3:	be 03 00 00 00       	mov    $0x3,%esi
5471d8:	89 54 24 04          	mov    %edx,0x4(%esp)
5471dc:	8d 53 03             	lea    0x3(%ebx),%edx
5471df:	83 e2 03             	and    $0x3,%edx
5471e2:	2b f2                	sub    %edx,%esi
5471e4:	33 d2                	xor    %edx,%edx
5471e6:	03 f6                	add    %esi,%esi
5471e8:	3b da                	cmp    %edx,%ebx
5471ea:	76 7c                	jbe    0x547268
5471ec:	8b 6c 24 04          	mov    0x4(%esp),%ebp
5471f0:	8b ce                	mov    %esi,%ecx
5471f2:	0f b6 6d 00          	movzbl 0x0(%ebp),%ebp
5471f6:	d3 fd                	sar    %cl,%ebp
5471f8:	8b cd                	mov    %ebp,%ecx
5471fa:	80 e1 03             	and    $0x3,%cl
5471fd:	83 fe 06             	cmp    $0x6,%esi
547200:	88 0f                	mov    %cl,(%edi)
547202:	75 08                	jne    0x54720c
547204:	33 f6                	xor    %esi,%esi
547206:	ff 4c 24 04          	decl   0x4(%esp)
54720a:	eb 03                	jmp    0x54720f
54720c:	83 c6 02             	add    $0x2,%esi
54720f:	4f                   	dec    %edi
547210:	42                   	inc    %edx
547211:	3b da                	cmp    %edx,%ebx
547213:	77 d7                	ja     0x5471ec
547215:	eb 51                	jmp    0x547268
547217:	8b d3                	mov    %ebx,%edx
547219:	8b fb                	mov    %ebx,%edi
54721b:	4a                   	dec    %edx
54721c:	03 fe                	add    %esi,%edi
54721e:	d1 ea                	shr    $1,%edx
547220:	4f                   	dec    %edi
547221:	03 d6                	add    %esi,%edx
547223:	be 01 00 00 00       	mov    $0x1,%esi
547228:	89 54 24 08          	mov    %edx,0x8(%esp)
54722c:	8d 53 01             	lea    0x1(%ebx),%edx
54722f:	83 e2 01             	and    $0x1,%edx
547232:	2b f2                	sub    %edx,%esi
547234:	33 d2                	xor    %edx,%edx
547236:	c1 e6 02             	shl    $0x2,%esi
547239:	3b da                	cmp    %edx,%ebx
54723b:	76 2b                	jbe    0x547268
54723d:	8b 6c 24 08          	mov    0x8(%esp),%ebp
547241:	8b ce                	mov    %esi,%ecx
547243:	0f b6 6d 00          	movzbl 0x0(%ebp),%ebp
547247:	d3 fd                	sar    %cl,%ebp
547249:	8b cd                	mov    %ebp,%ecx
54724b:	80 e1 0f             	and    $0xf,%cl
54724e:	83 fe 04             	cmp    $0x4,%esi
547251:	88 0f                	mov    %cl,(%edi)
547253:	75 08                	jne    0x54725d
547255:	33 f6                	xor    %esi,%esi
547257:	ff 4c 24 08          	decl   0x8(%esp)
54725b:	eb 05                	jmp    0x547262
54725d:	be 04 00 00 00       	mov    $0x4,%esi
547262:	4f                   	dec    %edi
547263:	42                   	inc    %edx
547264:	3b da                	cmp    %edx,%ebx
547266:	77 d5                	ja     0x54723d
547268:	c6 40 09 08          	movb   $0x8,0x9(%eax)
54726c:	8a 50 0a             	mov    0xa(%eax),%dl
54726f:	c1 e2 03             	shl    $0x3,%edx
547272:	88 50 0b             	mov    %dl,0xb(%eax)
547275:	33 c9                	xor    %ecx,%ecx
547277:	8a 48 0a             	mov    0xa(%eax),%cl
54727a:	0f af cb             	imul   %ebx,%ecx
54727d:	89 48 04             	mov    %ecx,0x4(%eax)
547280:	83 c4 0c             	add    $0xc,%esp
547283:	5d                   	pop    %ebp
547284:	5f                   	pop    %edi
547285:	5e                   	pop    %esi
547286:	5b                   	pop    %ebx
547287:	c3                   	ret
547288:	53                   	push   %ebx
547289:	56                   	push   %esi
54728a:	57                   	push   %edi
54728b:	55                   	push   %ebp
54728c:	83 c4 e4             	add    $0xffffffe4,%esp
54728f:	89 14 24             	mov    %edx,(%esp)
547292:	8a 50 08             	mov    0x8(%eax),%dl
547295:	80 fa 03             	cmp    $0x3,%dl
547298:	0f 84 77 01 00 00    	je     0x547415
54729e:	33 f6                	xor    %esi,%esi
5472a0:	33 ff                	xor    %edi,%edi
5472a2:	8b 18                	mov    (%eax),%ebx
5472a4:	f6 c2 02             	test   $0x2,%dl
5472a7:	89 5c 24 04          	mov    %ebx,0x4(%esp)
5472ab:	74 2c                	je     0x5472d9
5472ad:	0f b6 29             	movzbl (%ecx),%ebp
5472b0:	33 d2                	xor    %edx,%edx
5472b2:	8a 50 09             	mov    0x9(%eax),%dl
5472b5:	8b da                	mov    %edx,%ebx
5472b7:	2b dd                	sub    %ebp,%ebx
5472b9:	89 5c b4 0c          	mov    %ebx,0xc(%esp,%esi,4)
5472bd:	46                   	inc    %esi
5472be:	0f b6 69 01          	movzbl 0x1(%ecx),%ebp
5472c2:	8b da                	mov    %edx,%ebx
5472c4:	2b dd                	sub    %ebp,%ebx
5472c6:	89 5c b4 0c          	mov    %ebx,0xc(%esp,%esi,4)
5472ca:	33 db                	xor    %ebx,%ebx
5472cc:	46                   	inc    %esi
5472cd:	8a 59 02             	mov    0x2(%ecx),%bl
5472d0:	2b d3                	sub    %ebx,%edx
5472d2:	89 54 b4 0c          	mov    %edx,0xc(%esp,%esi,4)
5472d6:	46                   	inc    %esi
5472d7:	eb 11                	jmp    0x5472ea
5472d9:	33 d2                	xor    %edx,%edx
5472db:	33 db                	xor    %ebx,%ebx
5472dd:	8a 59 03             	mov    0x3(%ecx),%bl
5472e0:	8a 50 09             	mov    0x9(%eax),%dl
5472e3:	2b d3                	sub    %ebx,%edx
5472e5:	89 54 b4 0c          	mov    %edx,0xc(%esp,%esi,4)
5472e9:	46                   	inc    %esi
5472ea:	f6 40 08 04          	testb  $0x4,0x8(%eax)
5472ee:	74 10                	je     0x547300
5472f0:	33 d2                	xor    %edx,%edx
5472f2:	8a 50 09             	mov    0x9(%eax),%dl
5472f5:	0f b6 49 04          	movzbl 0x4(%ecx),%ecx
5472f9:	2b d1                	sub    %ecx,%edx
5472fb:	89 54 b4 0c          	mov    %edx,0xc(%esp,%esi,4)
5472ff:	46                   	inc    %esi
547300:	33 d2                	xor    %edx,%edx
547302:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
547306:	3b f2                	cmp    %edx,%esi
547308:	7e 18                	jle    0x547322
54730a:	8b 19                	mov    (%ecx),%ebx
54730c:	85 db                	test   %ebx,%ebx
54730e:	7f 06                	jg     0x547316
547310:	33 db                	xor    %ebx,%ebx
547312:	89 19                	mov    %ebx,(%ecx)
547314:	eb 04                	jmp    0x54731a
547316:	66 bf 01 00          	mov    $0x1,%di
54731a:	42                   	inc    %edx
54731b:	83 c1 04             	add    $0x4,%ecx
54731e:	3b f2                	cmp    %edx,%esi
547320:	7f e8                	jg     0x54730a
547322:	66 85 ff             	test   %di,%di
547325:	0f 84 ea 00 00 00    	je     0x547415
54732b:	8a 50 09             	mov    0x9(%eax),%dl
54732e:	80 ea 02             	sub    $0x2,%dl
547331:	74 18                	je     0x54734b
547333:	80 ea 02             	sub    $0x2,%dl
547336:	74 33                	je     0x54736b
547338:	80 ea 04             	sub    $0x4,%dl
54733b:	74 68                	je     0x5473a5
54733d:	80 ea 08             	sub    $0x8,%dl
547340:	0f 84 83 00 00 00    	je     0x5473c9
547346:	e9 ca 00 00 00       	jmp    0x547415
54734b:	8b 48 04             	mov    0x4(%eax),%ecx
54734e:	8b 04 24             	mov    (%esp),%eax
547351:	33 d2                	xor    %edx,%edx
547353:	3b ca                	cmp    %edx,%ecx
547355:	0f 86 ba 00 00 00    	jbe    0x547415
54735b:	d0 28                	shrb   $1,(%eax)
54735d:	80 20 55             	andb   $0x55,(%eax)
547360:	40                   	inc    %eax
547361:	42                   	inc    %edx
547362:	3b ca                	cmp    %edx,%ecx
547364:	77 f5                	ja     0x54735b
547366:	e9 aa 00 00 00       	jmp    0x547415
54736b:	8b 14 24             	mov    (%esp),%edx
54736e:	8b 70 04             	mov    0x4(%eax),%esi
547371:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
547375:	b8 f0 00 00 00       	mov    $0xf0,%eax
54737a:	d3 f8                	sar    %cl,%eax
54737c:	24 f0                	and    $0xf0,%al
54737e:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
547382:	bb 0f 00 00 00       	mov    $0xf,%ebx
547387:	d3 fb                	sar    %cl,%ebx
547389:	0a c3                	or     %bl,%al
54738b:	33 db                	xor    %ebx,%ebx
54738d:	3b f3                	cmp    %ebx,%esi
54738f:	0f 86 80 00 00 00    	jbe    0x547415
547395:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
547399:	43                   	inc    %ebx
54739a:	d2 2a                	shrb   %cl,(%edx)
54739c:	20 02                	and    %al,(%edx)
54739e:	42                   	inc    %edx
54739f:	3b f3                	cmp    %ebx,%esi
5473a1:	77 f2                	ja     0x547395
5473a3:	eb 70                	jmp    0x547415
5473a5:	8b 3c 24             	mov    (%esp),%edi
5473a8:	8b 6c 24 04          	mov    0x4(%esp),%ebp
5473ac:	0f af ee             	imul   %esi,%ebp
5473af:	33 db                	xor    %ebx,%ebx
5473b1:	3b eb                	cmp    %ebx,%ebp
5473b3:	76 60                	jbe    0x547415
5473b5:	8b c3                	mov    %ebx,%eax
5473b7:	33 d2                	xor    %edx,%edx
5473b9:	f7 f6                	div    %esi
5473bb:	8b 4c 94 0c          	mov    0xc(%esp,%edx,4),%ecx
5473bf:	d2 2f                	shrb   %cl,(%edi)
5473c1:	47                   	inc    %edi
5473c2:	43                   	inc    %ebx
5473c3:	3b eb                	cmp    %ebx,%ebp
5473c5:	77 ee                	ja     0x5473b5
5473c7:	eb 4c                	jmp    0x547415
5473c9:	8b 1c 24             	mov    (%esp),%ebx
5473cc:	8b c6                	mov    %esi,%eax
5473ce:	f7 6c 24 04          	imull  0x4(%esp)
5473d2:	89 44 24 08          	mov    %eax,0x8(%esp)
5473d6:	33 ed                	xor    %ebp,%ebp
5473d8:	8b 44 24 08          	mov    0x8(%esp),%eax
5473dc:	3b e8                	cmp    %eax,%ebp
5473de:	73 35                	jae    0x547415
5473e0:	0f b6 3b             	movzbl (%ebx),%edi
5473e3:	c1 e7 08             	shl    $0x8,%edi
5473e6:	33 c0                	xor    %eax,%eax
5473e8:	8a 43 01             	mov    0x1(%ebx),%al
5473eb:	33 d2                	xor    %edx,%edx
5473ed:	66 03 f8             	add    %ax,%di
5473f0:	8b c5                	mov    %ebp,%eax
5473f2:	f7 f6                	div    %esi
5473f4:	45                   	inc    %ebp
5473f5:	8b 4c 94 0c          	mov    0xc(%esp,%edx,4),%ecx
5473f9:	66 d3 ef             	shr    %cl,%di
5473fc:	0f b7 c7             	movzwl %di,%eax
5473ff:	c1 f8 08             	sar    $0x8,%eax
547402:	8b d7                	mov    %edi,%edx
547404:	88 03                	mov    %al,(%ebx)
547406:	43                   	inc    %ebx
547407:	80 e2 ff             	and    $0xff,%dl
54740a:	88 13                	mov    %dl,(%ebx)
54740c:	43                   	inc    %ebx
54740d:	8b 4c 24 08          	mov    0x8(%esp),%ecx
547411:	3b e9                	cmp    %ecx,%ebp
547413:	72 cb                	jb     0x5473e0
547415:	83 c4 1c             	add    $0x1c,%esp
547418:	5d                   	pop    %ebp
547419:	5f                   	pop    %edi
54741a:	5e                   	pop    %esi
54741b:	5b                   	pop    %ebx