54a0a3:	4e                   	dec    %esi
54a0a4:	45                   	inc    %ebp
54a0a5:	3b d5                	cmp    %ebp,%edx
54a0a7:	77 c0                	ja     0x54a069
54a0a9:	c6 40 09 08          	movb   $0x8,0x9(%eax)
54a0ad:	c6 40 0b 08          	movb   $0x8,0xb(%eax)
54a0b1:	89 50 04             	mov    %edx,0x4(%eax)
54a0b4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
54a0b8:	85 c9                	test   %ecx,%ecx
54a0ba:	0f 84 4e 02 00 00    	je     0x54a30e
54a0c0:	8a 48 09             	mov    0x9(%eax),%cl
54a0c3:	80 f9 08             	cmp    $0x8,%cl
54a0c6:	75 3e                	jne    0x54a106
54a0c8:	8b f2                	mov    %edx,%esi
54a0ca:	8b 3c 24             	mov    (%esp),%edi
54a0cd:	03 f6                	add    %esi,%esi
54a0cf:	8b 0c 24             	mov    (%esp),%ecx
54a0d2:	03 f1                	add    %ecx,%esi
54a0d4:	03 fa                	add    %edx,%edi
54a0d6:	4f                   	dec    %edi
54a0d7:	4e                   	dec    %esi
54a0d8:	33 ed                	xor    %ebp,%ebp
54a0da:	3b d5                	cmp    %ebp,%edx
54a0dc:	0f 86 87 00 00 00    	jbe    0x54a169
54a0e2:	33 c9                	xor    %ecx,%ecx
54a0e4:	8a 0f                	mov    (%edi),%cl
54a0e6:	0f b7 5c 24 10       	movzwl 0x10(%esp),%ebx
54a0eb:	3b cb                	cmp    %ebx,%ecx
54a0ed:	75 06                	jne    0x54a0f5
54a0ef:	c6 06 00             	movb   $0x0,(%esi)
54a0f2:	4e                   	dec    %esi
54a0f3:	eb 04                	jmp    0x54a0f9
54a0f5:	c6 06 ff             	movb   $0xff,(%esi)
54a0f8:	4e                   	dec    %esi
54a0f9:	8a 0f                	mov    (%edi),%cl
54a0fb:	88 0e                	mov    %cl,(%esi)
54a0fd:	4f                   	dec    %edi
54a0fe:	4e                   	dec    %esi
54a0ff:	45                   	inc    %ebp
54a100:	3b d5                	cmp    %ebp,%edx
54a102:	77 de                	ja     0x54a0e2
54a104:	eb 63                	jmp    0x54a169
54a106:	8a 48 09             	mov    0x9(%eax),%cl
54a109:	80 f9 10             	cmp    $0x10,%cl
54a10c:	75 5b                	jne    0x54a169
54a10e:	8b 48 04             	mov    0x4(%eax),%ecx
54a111:	8b 1c 24             	mov    (%esp),%ebx
54a114:	8b f9                	mov    %ecx,%edi
54a116:	8b f1                	mov    %ecx,%esi
54a118:	8b 0c 24             	mov    (%esp),%ecx
54a11b:	03 f6                	add    %esi,%esi
54a11d:	03 f1                	add    %ecx,%esi
54a11f:	03 fb                	add    %ebx,%edi
54a121:	4f                   	dec    %edi
54a122:	4e                   	dec    %esi
54a123:	33 ed                	xor    %ebp,%ebp
54a125:	3b d5                	cmp    %ebp,%edx
54a127:	76 40                	jbe    0x54a169
54a129:	33 db                	xor    %ebx,%ebx
54a12b:	33 c9                	xor    %ecx,%ecx
54a12d:	8a 5f ff             	mov    -0x1(%edi),%bl
54a130:	8a 0f                	mov    (%edi),%cl
54a132:	0f b7 db             	movzwl %bx,%ebx
54a135:	0f b7 c9             	movzwl %cx,%ecx
54a138:	c1 e3 08             	shl    $0x8,%ebx
54a13b:	0b cb                	or     %ebx,%ecx
54a13d:	0f b7 5c 24 10       	movzwl 0x10(%esp),%ebx
54a142:	3b cb                	cmp    %ebx,%ecx
54a144:	75 0a                	jne    0x54a150
54a146:	c6 06 00             	movb   $0x0,(%esi)
54a149:	4e                   	dec    %esi
54a14a:	c6 06 00             	movb   $0x0,(%esi)
54a14d:	4e                   	dec    %esi
54a14e:	eb 08                	jmp    0x54a158
54a150:	c6 06 ff             	movb   $0xff,(%esi)
54a153:	4e                   	dec    %esi
54a154:	c6 06 ff             	movb   $0xff,(%esi)
54a157:	4e                   	dec    %esi
54a158:	8a 0f                	mov    (%edi),%cl
54a15a:	4f                   	dec    %edi
54a15b:	88 0e                	mov    %cl,(%esi)
54a15d:	4e                   	dec    %esi
54a15e:	8a 0f                	mov    (%edi),%cl
54a160:	4f                   	dec    %edi
54a161:	88 0e                	mov    %cl,(%esi)
54a163:	4e                   	dec    %esi
54a164:	45                   	inc    %ebp
54a165:	3b d5                	cmp    %ebp,%edx
54a167:	77 c0                	ja     0x54a129
54a169:	c6 40 08 04          	movb   $0x4,0x8(%eax)
54a16d:	c6 40 0a 02          	movb   $0x2,0xa(%eax)
54a171:	8a 48 09             	mov    0x9(%eax),%cl
54a174:	03 c9                	add    %ecx,%ecx
54a176:	88 48 0b             	mov    %cl,0xb(%eax)
54a179:	81 e1 ff 00 00 00    	and    $0xff,%ecx
54a17f:	0f af ca             	imul   %edx,%ecx
54a182:	c1 e9 03             	shr    $0x3,%ecx
54a185:	89 48 04             	mov    %ecx,0x4(%eax)
54a188:	e9 81 01 00 00       	jmp    0x54a30e
54a18d:	8a 48 08             	mov    0x8(%eax),%cl
54a190:	80 f9 02             	cmp    $0x2,%cl
54a193:	0f 85 75 01 00 00    	jne    0x54a30e
54a199:	8b 4c 24 04          	mov    0x4(%esp),%ecx
54a19d:	85 c9                	test   %ecx,%ecx
54a19f:	0f 84 69 01 00 00    	je     0x54a30e
54a1a5:	8a 48 09             	mov    0x9(%eax),%cl
54a1a8:	80 f9 08             	cmp    $0x8,%cl
54a1ab:	75 76                	jne    0x54a223
54a1ad:	8b 78 04             	mov    0x4(%eax),%edi
54a1b0:	8b 0c 24             	mov    (%esp),%ecx
54a1b3:	8b f2                	mov    %edx,%esi
54a1b5:	03 f9                	add    %ecx,%edi
54a1b7:	c1 e6 02             	shl    $0x2,%esi
54a1ba:	8b 0c 24             	mov    (%esp),%ecx
54a1bd:	03 f1                	add    %ecx,%esi
54a1bf:	4f                   	dec    %edi
54a1c0:	4e                   	dec    %esi
54a1c1:	33 ed                	xor    %ebp,%ebp
54a1c3:	3b d5                	cmp    %ebp,%edx
54a1c5:	0f 86 23 01 00 00    	jbe    0x54a2ee
54a1cb:	8b 5c 24 04          	mov    0x4(%esp),%ebx
54a1cf:	33 c9                	xor    %ecx,%ecx
54a1d1:	8a 4f fe             	mov    -0x2(%edi),%cl
54a1d4:	0f b7 5b 02          	movzwl 0x2(%ebx),%ebx
54a1d8:	3b cb                	cmp    %ebx,%ecx
54a1da:	75 27                	jne    0x54a203
54a1dc:	8b 5c 24 04          	mov    0x4(%esp),%ebx
54a1e0:	33 c9                	xor    %ecx,%ecx
54a1e2:	8a 4f ff             	mov    -0x1(%edi),%cl
54a1e5:	0f b7 5b 04          	movzwl 0x4(%ebx),%ebx
54a1e9:	3b cb                	cmp    %ebx,%ecx
54a1eb:	75 16                	jne    0x54a203
54a1ed:	8b 5c 24 04          	mov    0x4(%esp),%ebx
54a1f1:	33 c9                	xor    %ecx,%ecx
54a1f3:	8a 0f                	mov    (%edi),%cl
54a1f5:	0f b7 5b 06          	movzwl 0x6(%ebx),%ebx
54a1f9:	3b cb                	cmp    %ebx,%ecx
54a1fb:	75 06                	jne    0x54a203
54a1fd:	c6 06 00             	movb   $0x0,(%esi)
54a200:	4e                   	dec    %esi
54a201:	eb 04                	jmp    0x54a207
54a203:	c6 06 ff             	movb   $0xff,(%esi)
54a206:	4e                   	dec    %esi
54a207:	8a 0f                	mov    (%edi),%cl
54a209:	4f                   	dec    %edi
54a20a:	88 0e                	mov    %cl,(%esi)
54a20c:	4e                   	dec    %esi
54a20d:	8a 0f                	mov    (%edi),%cl
54a20f:	4f                   	dec    %edi
54a210:	88 0e                	mov    %cl,(%esi)
54a212:	4e                   	dec    %esi
54a213:	8a 0f                	mov    (%edi),%cl
54a215:	4f                   	dec    %edi
54a216:	88 0e                	mov    %cl,(%esi)
54a218:	4e                   	dec    %esi
54a219:	45                   	inc    %ebp
54a21a:	3b d5                	cmp    %ebp,%edx
54a21c:	77 ad                	ja     0x54a1cb
54a21e:	e9 cb 00 00 00       	jmp    0x54a2ee
54a223:	8a 48 09             	mov    0x9(%eax),%cl
54a226:	80 f9 10             	cmp    $0x10,%cl
54a229:	0f 85 bf 00 00 00    	jne    0x54a2ee
54a22f:	8b 78 04             	mov    0x4(%eax),%edi
54a232:	8b 0c 24             	mov    (%esp),%ecx
54a235:	8b f2                	mov    %edx,%esi
54a237:	03 f9                	add    %ecx,%edi
54a239:	c1 e6 03             	shl    $0x3,%esi
54a23c:	8b 0c 24             	mov    (%esp),%ecx
54a23f:	03 f1                	add    %ecx,%esi
54a241:	4f                   	dec    %edi
54a242:	4e                   	dec    %esi
54a243:	33 ed                	xor    %ebp,%ebp
54a245:	3b d5                	cmp    %ebp,%edx
54a247:	0f 86 a1 00 00 00    	jbe    0x54a2ee
54a24d:	33 db                	xor    %ebx,%ebx
54a24f:	33 c9                	xor    %ecx,%ecx
54a251:	8a 5f fb             	mov    -0x5(%edi),%bl
54a254:	8a 4f fc             	mov    -0x4(%edi),%cl
54a257:	0f b7 db             	movzwl %bx,%ebx
54a25a:	0f b7 c9             	movzwl %cx,%ecx
54a25d:	c1 e3 08             	shl    $0x8,%ebx
54a260:	0b cb                	or     %ebx,%ecx
54a262:	8b 5c 24 04          	mov    0x4(%esp),%ebx
54a266:	0f b7 5b 02          	movzwl 0x2(%ebx),%ebx
54a26a:	3b cb                	cmp    %ebx,%ecx
54a26c:	75 4b                	jne    0x54a2b9
54a26e:	33 db                	xor    %ebx,%ebx
54a270:	33 c9                	xor    %ecx,%ecx
54a272:	8a 5f fd             	mov    -0x3(%edi),%bl
54a275:	8a 4f fe             	mov    -0x2(%edi),%cl
54a278:	0f b7 db             	movzwl %bx,%ebx
54a27b:	0f b7 c9             	movzwl %cx,%ecx
54a27e:	c1 e3 08             	shl    $0x8,%ebx
54a281:	0b cb                	or     %ebx,%ecx
54a283:	8b 5c 24 04          	mov    0x4(%esp),%ebx
54a287:	0f b7 5b 04          	movzwl 0x4(%ebx),%ebx
54a28b:	3b cb                	cmp    %ebx,%ecx
54a28d:	75 2a                	jne    0x54a2b9
54a28f:	33 db                	xor    %ebx,%ebx
54a291:	33 c9                	xor    %ecx,%ecx
54a293:	8a 5f ff             	mov    -0x1(%edi),%bl
54a296:	8a 0f                	mov    (%edi),%cl
54a298:	0f b7 db             	movzwl %bx,%ebx
54a29b:	0f b7 c9             	movzwl %cx,%ecx
54a29e:	c1 e3 08             	shl    $0x8,%ebx
54a2a1:	0b cb                	or     %ebx,%ecx
54a2a3:	8b 5c 24 04          	mov    0x4(%esp),%ebx
54a2a7:	0f b7 5b 06          	movzwl 0x6(%ebx),%ebx
54a2ab:	3b cb                	cmp    %ebx,%ecx
54a2ad:	75 0a                	jne    0x54a2b9
54a2af:	c6 06 00             	movb   $0x0,(%esi)
54a2b2:	4e                   	dec    %esi
54a2b3:	c6 06 00             	movb   $0x0,(%esi)
54a2b6:	4e                   	dec    %esi
54a2b7:	eb 08                	jmp    0x54a2c1
54a2b9:	c6 06 ff             	movb   $0xff,(%esi)
54a2bc:	4e                   	dec    %esi
54a2bd:	c6 06 ff             	movb   $0xff,(%esi)
54a2c0:	4e                   	dec    %esi
54a2c1:	8a 0f                	mov    (%edi),%cl
54a2c3:	4f                   	dec    %edi
54a2c4:	88 0e                	mov    %cl,(%esi)
54a2c6:	4e                   	dec    %esi
54a2c7:	8a 0f                	mov    (%edi),%cl
54a2c9:	4f                   	dec    %edi
54a2ca:	88 0e                	mov    %cl,(%esi)
54a2cc:	4e                   	dec    %esi
54a2cd:	8a 0f                	mov    (%edi),%cl
54a2cf:	4f                   	dec    %edi
54a2d0:	88 0e                	mov    %cl,(%esi)
54a2d2:	4e                   	dec    %esi
54a2d3:	8a 0f                	mov    (%edi),%cl
54a2d5:	4f                   	dec    %edi
54a2d6:	88 0e                	mov    %cl,(%esi)
54a2d8:	4e                   	dec    %esi
54a2d9:	8a 0f                	mov    (%edi),%cl
54a2db:	4f                   	dec    %edi
54a2dc:	88 0e                	mov    %cl,(%esi)
54a2de:	4e                   	dec    %esi
54a2df:	8a 0f                	mov    (%edi),%cl
54a2e1:	4f                   	dec    %edi
54a2e2:	88 0e                	mov    %cl,(%esi)
54a2e4:	4e                   	dec    %esi
54a2e5:	45                   	inc    %ebp
54a2e6:	3b d5                	cmp    %ebp,%edx
54a2e8:	0f 87 5f ff ff ff    	ja     0x54a24d
54a2ee:	c6 40 08 06          	movb   $0x6,0x8(%eax)
54a2f2:	c6 40 0a 04          	movb   $0x4,0xa(%eax)
54a2f6:	8a 48 09             	mov    0x9(%eax),%cl
54a2f9:	c1 e1 02             	shl    $0x2,%ecx
54a2fc:	88 48 0b             	mov    %cl,0xb(%eax)
54a2ff:	81 e1 ff 00 00 00    	and    $0xff,%ecx
54a305:	0f af ca             	imul   %edx,%ecx
54a308:	c1 e9 03             	shr    $0x3,%ecx
54a30b:	89 48 04             	mov    %ecx,0x4(%eax)
54a30e:	83 c4 14             	add    $0x14,%esp
54a311:	5d                   	pop    %ebp
54a312:	5f                   	pop    %edi
54a313:	5e                   	pop    %esi
54a314:	5b                   	pop    %ebx
54a315:	c3                   	ret
54a316:	90                   	nop
54a317:	90                   	nop
54a318:	55                   	push   %ebp
54a319:	8b ec                	mov    %esp,%ebp
54a31b:	83 c4 d8             	add    $0xffffffd8,%esp
54a31e:	53                   	push   %ebx
54a31f:	56                   	push   %esi
54a320:	57                   	push   %edi
54a321:	89 4d fc             	mov    %ecx,-0x4(%ebp)
54a324:	8b 4d 08             	mov    0x8(%ebp),%ecx
54a327:	8b 18                	mov    (%eax),%ebx
54a329:	89 5d f8             	mov    %ebx,-0x8(%ebp)
54a32c:	8a 58 08             	mov    0x8(%eax),%bl
54a32f:	80 fb 02             	cmp    $0x2,%bl
54a332:	0f 85 9c 00 00 00    	jne    0x54a3d4
54a338:	8b 5d fc             	mov    -0x4(%ebp),%ebx
54a33b:	85 db                	test   %ebx,%ebx
54a33d:	0f 84 91 00 00 00    	je     0x54a3d4
54a343:	8a 58 09             	mov    0x9(%eax),%bl
54a346:	80 fb 08             	cmp    $0x8,%bl
54a349:	0f 85 85 00 00 00    	jne    0x54a3d4
54a34f:	8b f2                	mov    %edx,%esi
54a351:	8b ca                	mov    %edx,%ecx
54a353:	33 d2                	xor    %edx,%edx
54a355:	8b 5d f8             	mov    -0x8(%ebp),%ebx
54a358:	3b d3                	cmp    %ebx,%edx
54a35a:	73 54                	jae    0x54a3b0
54a35c:	33 db                	xor    %ebx,%ebx
54a35e:	42                   	inc    %edx
54a35f:	8a 1e                	mov    (%esi),%bl
54a361:	46                   	inc    %esi
54a362:	89 5d f4             	mov    %ebx,-0xc(%ebp)
54a365:	33 db                	xor    %ebx,%ebx
54a367:	8a 1e                	mov    (%esi),%bl
54a369:	46                   	inc    %esi
54a36a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
54a36d:	33 db                	xor    %ebx,%ebx
54a36f:	8a 1e                	mov    (%esi),%bl
54a371:	46                   	inc    %esi
54a372:	89 5d ec             	mov    %ebx,-0x14(%ebp)
54a375:	8b 5d f4             	mov    -0xc(%ebp),%ebx
54a378:	8b 7d f0             	mov    -0x10(%ebp),%edi
54a37b:	c1 ff 03             	sar    $0x3,%edi
54a37e:	c1 fb 03             	sar    $0x3,%ebx
54a381:	83 e7 1f             	and    $0x1f,%edi
54a384:	83 e3 1f             	and    $0x1f,%ebx
54a387:	c1 e3 0a             	shl    $0xa,%ebx
54a38a:	c1 e7 05             	shl    $0x5,%edi
54a38d:	0b df                	or     %edi,%ebx
54a38f:	8b 7d ec             	mov    -0x14(%ebp),%edi
54a392:	c1 ff 03             	sar    $0x3,%edi
54a395:	83 e7 1f             	and    $0x1f,%edi
54a398:	0b df                	or     %edi,%ebx
54a39a:	89 5d e8             	mov    %ebx,-0x18(%ebp)
54a39d:	8b 5d fc             	mov    -0x4(%ebp),%ebx
54a3a0:	8b 7d e8             	mov    -0x18(%ebp),%edi
54a3a3:	8a 1c 3b             	mov    (%ebx,%edi,1),%bl
54a3a6:	88 19                	mov    %bl,(%ecx)
54a3a8:	41                   	inc    %ecx
54a3a9:	8b 5d f8             	mov    -0x8(%ebp),%ebx
54a3ac:	3b d3                	cmp    %ebx,%edx
54a3ae:	72 ac                	jb     0x54a35c
54a3b0:	c6 40 08 03          	movb   $0x3,0x8(%eax)
54a3b4:	c6 40 0a 01          	movb   $0x1,0xa(%eax)
54a3b8:	8a 50 09             	mov    0x9(%eax),%dl
54a3bb:	33 c9                	xor    %ecx,%ecx
54a3bd:	88 50 0b             	mov    %dl,0xb(%eax)
54a3c0:	8a ca                	mov    %dl,%cl
54a3c2:	0f af 4d f8          	imul   -0x8(%ebp),%ecx
54a3c6:	83 c1 07             	add    $0x7,%ecx
54a3c9:	c1 e9 03             	shr    $0x3,%ecx
54a3cc:	89 48 04             	mov    %ecx,0x4(%eax)
54a3cf:	e9 d6 00 00 00       	jmp    0x54a4aa
54a3d4:	8a 58 08             	mov    0x8(%eax),%bl
54a3d7:	80 fb 06             	cmp    $0x6,%bl
54a3da:	0f 85 9a 00 00 00    	jne    0x54a47a
54a3e0:	8b 5d fc             	mov    -0x4(%ebp),%ebx
54a3e3:	85 db                	test   %ebx,%ebx
54a3e5:	0f 84 8f 00 00 00    	je     0x54a47a
54a3eb:	8a 58 09             	mov    0x9(%eax),%bl
54a3ee:	80 fb 08             	cmp    $0x8,%bl
54a3f1:	0f 85 83 00 00 00    	jne    0x54a47a
54a3f7:	8b f2                	mov    %edx,%esi
54a3f9:	8b ca                	mov    %edx,%ecx
54a3fb:	33 d2                	xor    %edx,%edx
54a3fd:	8b 5d f8             	mov    -0x8(%ebp),%ebx
54a400:	3b d3                	cmp    %ebx,%edx
54a402:	73 55                	jae    0x54a459
54a404:	33 db                	xor    %ebx,%ebx