54e190:	89 46 6c             	mov    %eax,0x6c(%esi)
54e193:	33 cf                	xor    %edi,%ecx
54e195:	8b 44 24 34          	mov    0x34(%esp),%eax
54e199:	23 44 24 48          	and    0x48(%esp),%eax
54e19d:	8b 7c 24 5c          	mov    0x5c(%esp),%edi
54e1a1:	33 c2                	xor    %edx,%eax
54e1a3:	89 46 70             	mov    %eax,0x70(%esi)
54e1a6:	89 4e 74             	mov    %ecx,0x74(%esi)
54e1a9:	33 c9                	xor    %ecx,%ecx
54e1ab:	8b 47 24             	mov    0x24(%edi),%eax
54e1ae:	8b 57 20             	mov    0x20(%edi),%edx
54e1b1:	33 44 24 20          	xor    0x20(%esp),%eax
54e1b5:	33 54 24 44          	xor    0x44(%esp),%edx
54e1b9:	c1 c0 0e             	rol    $0xe,%eax
54e1bc:	c1 c2 0d             	rol    $0xd,%edx
54e1bf:	0b c8                	or     %eax,%ecx
54e1c1:	8b 47 28             	mov    0x28(%edi),%eax
54e1c4:	33 db                	xor    %ebx,%ebx
54e1c6:	33 44 24 14          	xor    0x14(%esp),%eax
54e1ca:	33 f6                	xor    %esi,%esi
54e1cc:	8b af 88 00 00 00    	mov    0x88(%edi),%ebp
54e1d2:	c1 c8 0e             	ror    $0xe,%eax
54e1d5:	89 4c 24 48          	mov    %ecx,0x48(%esp)
54e1d9:	33 c9                	xor    %ecx,%ecx
54e1db:	0b c8                	or     %eax,%ecx
54e1dd:	33 6c 24 18          	xor    0x18(%esp),%ebp
54e1e1:	8b 44 24 3c          	mov    0x3c(%esp),%eax
54e1e5:	33 47 58             	xor    0x58(%edi),%eax
54e1e8:	c1 c0 05             	rol    $0x5,%eax
54e1eb:	0b d8                	or     %eax,%ebx
54e1ed:	89 4c 24 34          	mov    %ecx,0x34(%esp)
54e1f1:	8b 87 8c 00 00 00    	mov    0x8c(%edi),%eax
54e1f7:	33 44 24 10          	xor    0x10(%esp),%eax
54e1fb:	8b 4c 24 40          	mov    0x40(%esp),%ecx
54e1ff:	33 4f 5c             	xor    0x5c(%edi),%ecx
54e202:	c1 c0 08             	rol    $0x8,%eax
54e205:	0b f0                	or     %eax,%esi
54e207:	c1 c1 05             	rol    $0x5,%ecx
54e20a:	8b 44 24 24          	mov    0x24(%esp),%eax
54e20e:	33 87 b8 00 00 00    	xor    0xb8(%edi),%eax
54e214:	89 4c 24 60          	mov    %ecx,0x60(%esp)
54e218:	8b 4c 24 5c          	mov    0x5c(%esp),%ecx
54e21c:	89 54 24 2c          	mov    %edx,0x2c(%esp)
54e220:	8b 57 2c             	mov    0x2c(%edi),%edx
54e223:	33 54 24 38          	xor    0x38(%esp),%edx
54e227:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
54e22b:	33 b9 bc 00 00 00    	xor    0xbc(%ecx),%edi
54e231:	8b cb                	mov    %ebx,%ecx
54e233:	23 4c 24 34          	and    0x34(%esp),%ecx
54e237:	33 4c 24 48          	xor    0x48(%esp),%ecx
54e23b:	c1 c8 04             	ror    $0x4,%eax
54e23e:	c1 c5 07             	rol    $0x7,%ebp
54e241:	c1 ca 0e             	ror    $0xe,%edx
54e244:	89 6c 24 4c          	mov    %ebp,0x4c(%esp)
54e248:	8b 6c 24 58          	mov    0x58(%esp),%ebp
54e24c:	89 54 24 30          	mov    %edx,0x30(%esp)
54e250:	33 d2                	xor    %edx,%edx
54e252:	0b d0                	or     %eax,%edx
54e254:	c1 cf 04             	ror    $0x4,%edi
54e257:	8b 44 24 60          	mov    0x60(%esp),%eax
54e25b:	23 44 24 30          	and    0x30(%esp),%eax
54e25f:	33 44 24 2c          	xor    0x2c(%esp),%eax
54e263:	89 4d 78             	mov    %ecx,0x78(%ebp)
54e266:	8b cd                	mov    %ebp,%ecx
54e268:	89 41 7c             	mov    %eax,0x7c(%ecx)
54e26b:	8b ce                	mov    %esi,%ecx
54e26d:	8b 44 24 4c          	mov    0x4c(%esp),%eax
54e271:	0b cb                	or     %ebx,%ecx
54e273:	33 4c 24 34          	xor    0x34(%esp),%ecx
54e277:	f7 d6                	not    %esi
54e279:	0b 44 24 60          	or     0x60(%esp),%eax
54e27d:	33 44 24 30          	xor    0x30(%esp),%eax
54e281:	89 8d 80 00 00 00    	mov    %ecx,0x80(%ebp)
54e287:	8b cd                	mov    %ebp,%ecx
54e289:	8b 6c 24 4c          	mov    0x4c(%esp),%ebp
54e28d:	f7 d5                	not    %ebp
54e28f:	89 81 84 00 00 00    	mov    %eax,0x84(%ecx)
54e295:	8b ca                	mov    %edx,%ecx
54e297:	0b ce                	or     %esi,%ecx
54e299:	8b c7                	mov    %edi,%eax
54e29b:	33 cb                	xor    %ebx,%ecx
54e29d:	0b c5                	or     %ebp,%eax
54e29f:	8b 5c 24 58          	mov    0x58(%esp),%ebx
54e2a3:	33 44 24 60          	xor    0x60(%esp),%eax
54e2a7:	89 8b 88 00 00 00    	mov    %ecx,0x88(%ebx)
54e2ad:	8b ca                	mov    %edx,%ecx
54e2af:	23 4c 24 48          	and    0x48(%esp),%ecx
54e2b3:	89 83 8c 00 00 00    	mov    %eax,0x8c(%ebx)
54e2b9:	33 ce                	xor    %esi,%ecx
54e2bb:	8b c7                	mov    %edi,%eax
54e2bd:	8b f3                	mov    %ebx,%esi
54e2bf:	23 44 24 2c          	and    0x2c(%esp),%eax
54e2c3:	33 c5                	xor    %ebp,%eax
54e2c5:	89 86 94 00 00 00    	mov    %eax,0x94(%esi)
54e2cb:	8b 44 24 34          	mov    0x34(%esp),%eax
54e2cf:	0b 44 24 48          	or     0x48(%esp),%eax
54e2d3:	89 8e 90 00 00 00    	mov    %ecx,0x90(%esi)
54e2d9:	8b 6c 24 5c          	mov    0x5c(%esp),%ebp
54e2dd:	33 c2                	xor    %edx,%eax
54e2df:	8b 4c 24 30          	mov    0x30(%esp),%ecx
54e2e3:	33 db                	xor    %ebx,%ebx
54e2e5:	0b 4c 24 2c          	or     0x2c(%esp),%ecx
54e2e9:	89 86 98 00 00 00    	mov    %eax,0x98(%esi)
54e2ef:	33 cf                	xor    %edi,%ecx
54e2f1:	89 8e 9c 00 00 00    	mov    %ecx,0x9c(%esi)
54e2f7:	33 c0                	xor    %eax,%eax
54e2f9:	8b 4c 24 18          	mov    0x18(%esp),%ecx
54e2fd:	33 f6                	xor    %esi,%esi
54e2ff:	33 4d 10             	xor    0x10(%ebp),%ecx
54e302:	33 ff                	xor    %edi,%edi
54e304:	8b 54 24 10          	mov    0x10(%esp),%edx
54e308:	33 55 14             	xor    0x14(%ebp),%edx
54e30b:	d1 c9                	ror    $1,%ecx
54e30d:	0b c1                	or     %ecx,%eax
54e30f:	d1 ca                	ror    $1,%edx
54e311:	8b 4d 40             	mov    0x40(%ebp),%ecx
54e314:	33 4c 24 24          	xor    0x24(%esp),%ecx
54e318:	89 44 24 4c          	mov    %eax,0x4c(%esp)
54e31c:	8b 45 44             	mov    0x44(%ebp),%eax
54e31f:	33 44 24 1c          	xor    0x1c(%esp),%eax
54e323:	c1 c8 04             	ror    $0x4,%eax
54e326:	0b f0                	or     %eax,%esi
54e328:	c1 c9 05             	ror    $0x5,%ecx
54e32b:	8b 45 74             	mov    0x74(%ebp),%eax
54e32e:	33 44 24 20          	xor    0x20(%esp),%eax
54e332:	89 4c 24 48          	mov    %ecx,0x48(%esp)
54e336:	33 c9                	xor    %ecx,%ecx
54e338:	c1 c8 0c             	ror    $0xc,%eax
54e33b:	0b c8                	or     %eax,%ecx
54e33d:	89 54 24 10          	mov    %edx,0x10(%esp)
54e341:	8b 55 70             	mov    0x70(%ebp),%edx
54e344:	8b 44 24 38          	mov    0x38(%esp),%eax
54e348:	33 45 7c             	xor    0x7c(%ebp),%eax
54e34b:	33 54 24 44          	xor    0x44(%esp),%edx
54e34f:	89 4c 24 5c          	mov    %ecx,0x5c(%esp)
54e353:	8b 4c 24 14          	mov    0x14(%esp),%ecx
54e357:	33 4d 78             	xor    0x78(%ebp),%ecx
54e35a:	c1 c8 0b             	ror    $0xb,%eax
54e35d:	0b d8                	or     %eax,%ebx
54e35f:	c1 c9 0c             	ror    $0xc,%ecx
54e362:	8b 85 a8 00 00 00    	mov    0xa8(%ebp),%eax
54e368:	33 44 24 3c          	xor    0x3c(%esp),%eax
54e36c:	8b ad ac 00 00 00    	mov    0xac(%ebp),%ebp
54e372:	33 6c 24 40          	xor    0x40(%esp),%ebp
54e376:	89 4c 24 14          	mov    %ecx,0x14(%esp)
54e37a:	d1 c0                	rol    $1,%eax
54e37c:	89 74 24 34          	mov    %esi,0x34(%esp)
54e380:	0b f8                	or     %eax,%edi
54e382:	c1 ca 0d             	ror    $0xd,%edx
54e385:	f7 d6                	not    %esi
54e387:	89 54 24 60          	mov    %edx,0x60(%esp)
54e38b:	8b ce                	mov    %esi,%ecx
54e38d:	23 4c 24 5c          	and    0x5c(%esp),%ecx
54e391:	33 4c 24 4c          	xor    0x4c(%esp),%ecx
54e395:	8b 54 24 48          	mov    0x48(%esp),%edx
54e399:	89 5c 24 44          	mov    %ebx,0x44(%esp)
54e39d:	f7 d2                	not    %edx
54e39f:	8b 5c 24 58          	mov    0x58(%esp),%ebx
54e3a3:	8b c2                	mov    %edx,%eax
54e3a5:	23 44 24 60          	and    0x60(%esp),%eax
54e3a9:	33 44 24 10          	xor    0x10(%esp),%eax
54e3ad:	d1 c5                	rol    $1,%ebp
54e3af:	89 8b a0 00 00 00    	mov    %ecx,0xa0(%ebx)
54e3b5:	8b cb                	mov    %ebx,%ecx
54e3b7:	8b 5c 24 44          	mov    0x44(%esp),%ebx
54e3bb:	89 81 a4 00 00 00    	mov    %eax,0xa4(%ecx)
54e3c1:	8b cb                	mov    %ebx,%ecx
54e3c3:	0b 4c 24 5c          	or     0x5c(%esp),%ecx
54e3c7:	8b 44 24 14          	mov    0x14(%esp),%eax
54e3cb:	33 ce                	xor    %esi,%ecx
54e3cd:	8b 74 24 58          	mov    0x58(%esp),%esi
54e3d1:	0b 44 24 60          	or     0x60(%esp),%eax
54e3d5:	33 c2                	xor    %edx,%eax
54e3d7:	89 8e a8 00 00 00    	mov    %ecx,0xa8(%esi)
54e3dd:	8b cf                	mov    %edi,%ecx
54e3df:	89 86 ac 00 00 00    	mov    %eax,0xac(%esi)
54e3e5:	23 cb                	and    %ebx,%ecx
54e3e7:	8b c5                	mov    %ebp,%eax
54e3e9:	23 44 24 14          	and    0x14(%esp),%eax
54e3ed:	33 44 24 60          	xor    0x60(%esp),%eax
54e3f1:	33 4c 24 5c          	xor    0x5c(%esp),%ecx
54e3f5:	8b 54 24 4c          	mov    0x4c(%esp),%edx
54e3f9:	89 86 b4 00 00 00    	mov    %eax,0xb4(%esi)
54e3ff:	8b 44 24 10          	mov    0x10(%esp),%eax
54e403:	0b c5                	or     %ebp,%eax
54e405:	89 8e b0 00 00 00    	mov    %ecx,0xb0(%esi)
54e40b:	33 44 24 14          	xor    0x14(%esp),%eax
54e40f:	8b ca                	mov    %edx,%ecx
54e411:	23 54 24 34          	and    0x34(%esp),%edx
54e415:	0b cf                	or     %edi,%ecx
54e417:	89 86 bc 00 00 00    	mov    %eax,0xbc(%esi)
54e41d:	33 cb                	xor    %ebx,%ecx
54e41f:	8b 44 24 10          	mov    0x10(%esp),%eax
54e423:	33 d7                	xor    %edi,%edx
54e425:	23 44 24 48          	and    0x48(%esp),%eax
54e429:	33 c5                	xor    %ebp,%eax
54e42b:	89 8e b8 00 00 00    	mov    %ecx,0xb8(%esi)
54e431:	5f                   	pop    %edi
54e432:	89 96 c0 00 00 00    	mov    %edx,0xc0(%esi)
54e438:	89 86 c4 00 00 00    	mov    %eax,0xc4(%esi)
54e43e:	5e                   	pop    %esi
54e43f:	5d                   	pop    %ebp
54e440:	5b                   	pop    %ebx
54e441:	83 c4 44             	add    $0x44,%esp
54e444:	c3                   	ret
54e445:	cc                   	int3
54e446:	cc                   	int3
54e447:	cc                   	int3
54e448:	cc                   	int3
54e449:	cc                   	int3
54e44a:	cc                   	int3
54e44b:	cc                   	int3
54e44c:	cc                   	int3
54e44d:	cc                   	int3
54e44e:	cc                   	int3
54e44f:	cc                   	int3
54e450:	b8 0c 00 00 00       	mov    $0xc,%eax
54e455:	e8 56 33 08 00       	call   0x5d17b0
54e45a:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
54e45e:	56                   	push   %esi
54e45f:	8b 74 24 1c          	mov    0x1c(%esp),%esi
54e463:	c1 e9 03             	shr    $0x3,%ecx
54e466:	89 4c 24 08          	mov    %ecx,0x8(%esp)
54e46a:	3b 74 24 20          	cmp    0x20(%esp),%esi
54e46e:	0f 82 e1 01 00 00    	jb     0x54e655
54e474:	53                   	push   %ebx
54e475:	55                   	push   %ebp
54e476:	57                   	push   %edi
54e477:	66 0f 1f 84 00 00 00 	nopw   0x0(%eax,%eax,1)
54e47e:	00 00
54e480:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
54e487:	00
54e488:	85 c9                	test   %ecx,%ecx
54e48a:	0f 84 9f 01 00 00    	je     0x54e62f
54e490:	8b 74 24 14          	mov    0x14(%esp),%esi
54e494:	8b 4c 24 24          	mov    0x24(%esp),%ecx
54e498:	0f b6 41 07          	movzbl 0x7(%ecx),%eax
54e49c:	99                   	cltd
54e49d:	8b f8                	mov    %eax,%edi
54e49f:	8b da                	mov    %edx,%ebx
54e4a1:	0f b6 41 06          	movzbl 0x6(%ecx),%eax
54e4a5:	0f a4 fb 08          	shld   $0x8,%edi,%ebx
54e4a9:	99                   	cltd
54e4aa:	c1 e7 08             	shl    $0x8,%edi
54e4ad:	0b da                	or     %edx,%ebx
54e4af:	0b f8                	or     %eax,%edi
54e4b1:	0f b6 41 05          	movzbl 0x5(%ecx),%eax
54e4b5:	0f a4 fb 08          	shld   $0x8,%edi,%ebx
54e4b9:	99                   	cltd
54e4ba:	c1 e7 08             	shl    $0x8,%edi
54e4bd:	0b da                	or     %edx,%ebx
54e4bf:	0b f8                	or     %eax,%edi
54e4c1:	0f b6 41 04          	movzbl 0x4(%ecx),%eax
54e4c5:	0f a4 fb 08          	shld   $0x8,%edi,%ebx
54e4c9:	99                   	cltd
54e4ca:	c1 e7 08             	shl    $0x8,%edi
54e4cd:	0b da                	or     %edx,%ebx
54e4cf:	0b f8                	or     %eax,%edi
54e4d1:	0f b6 41 03          	movzbl 0x3(%ecx),%eax
54e4d5:	99                   	cltd
54e4d6:	0f a4 fb 08          	shld   $0x8,%edi,%ebx
54e4da:	c1 e7 08             	shl    $0x8,%edi
54e4dd:	0b da                	or     %edx,%ebx
54e4df:	0b f8                	or     %eax,%edi
54e4e1:	0f b6 41 02          	movzbl 0x2(%ecx),%eax
54e4e5:	99                   	cltd
54e4e6:	0f a4 fb 08          	shld   $0x8,%edi,%ebx
54e4ea:	c1 e7 08             	shl    $0x8,%edi
54e4ed:	0b da                	or     %edx,%ebx
54e4ef:	0b f8                	or     %eax,%edi
54e4f1:	0f b6 41 01          	movzbl 0x1(%ecx),%eax
54e4f5:	99                   	cltd
54e4f6:	0f a4 fb 08          	shld   $0x8,%edi,%ebx
54e4fa:	c1 e7 08             	shl    $0x8,%edi
54e4fd:	0b da                	or     %edx,%ebx
54e4ff:	0b f8                	or     %eax,%edi
54e501:	0f b6 01             	movzbl (%ecx),%eax
54e504:	99                   	cltd
54e505:	83 c1 08             	add    $0x8,%ecx
54e508:	0f a4 fb 08          	shld   $0x8,%edi,%ebx
54e50c:	89 4c 24 24          	mov    %ecx,0x24(%esp)
54e510:	c1 e7 08             	shl    $0x8,%edi
54e513:	0b da                	or     %edx,%ebx
54e515:	0b f8                	or     %eax,%edi
54e517:	8b c7                	mov    %edi,%eax
54e519:	81 e7 aa aa aa aa    	and    $0xaaaaaaaa,%edi
54e51f:	25 55 55 55 55       	and    $0x55555555,%eax
54e524:	8b c8                	mov    %eax,%ecx
54e526:	d1 e9                	shr    $1,%ecx
54e528:	0b c8                	or     %eax,%ecx
54e52a:	81 e1 33 33 33 33    	and    $0x33333333,%ecx
54e530:	8b c1                	mov    %ecx,%eax
54e532:	c1 e8 02             	shr    $0x2,%eax
54e535:	0b c1                	or     %ecx,%eax
54e537:	25 0f 0f 0f 0f       	and    $0xf0f0f0f,%eax
54e53c:	8b c8                	mov    %eax,%ecx
54e53e:	c1 e9 04             	shr    $0x4,%ecx
54e541:	0b c8                	or     %eax,%ecx
54e543:	8b c3                	mov    %ebx,%eax
54e545:	25 55 55 55 55       	and    $0x55555555,%eax
54e54a:	81 e1 ff 00 ff 00    	and    $0xff00ff,%ecx
54e550:	89 4c 24 18          	mov    %ecx,0x18(%esp)
54e554:	8b c8                	mov    %eax,%ecx
54e556:	d1 e9                	shr    $1,%ecx
54e558:	0b c8                	or     %eax,%ecx
54e55a:	81 e1 33 33 33 33    	and    $0x33333333,%ecx
54e560:	8b c1                	mov    %ecx,%eax
54e562:	c1 e8 02             	shr    $0x2,%eax
54e565:	0b c1                	or     %ecx,%eax
54e567:	25 0f 0f 0f 0f       	and    $0xf0f0f0f,%eax
54e56c:	8b e8                	mov    %eax,%ebp
54e56e:	c1 ed 04             	shr    $0x4,%ebp
54e571:	0b e8                	or     %eax,%ebp
54e573:	8d 04 3f             	lea    (%edi,%edi,1),%eax
54e576:	81 e5 ff 00 ff 00    	and    $0xff00ff,%ebp
54e57c:	0b c7                	or     %edi,%eax
54e57e:	25 cc cc cc cc       	and    $0xcccccccc,%eax
54e583:	81 e3 aa aa aa aa    	and    $0xaaaaaaaa,%ebx
54e589:	8d 0c 85 00 00 00 00 	lea    0x0(,%eax,4),%ecx
54e590:	0b c8                	or     %eax,%ecx
54e592:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
54e595:	0b c3                	or     %ebx,%eax
54e597:	81 e1 f0 f0 f0 f0    	and    $0xf0f0f0f0,%ecx
54e59d:	25 cc cc cc cc       	and    $0xcccccccc,%eax
54e5a2:	8b f9                	mov    %ecx,%edi
54e5a4:	c1 e7 04             	shl    $0x4,%edi
54e5a7:	0b f9                	or     %ecx,%edi
54e5a9:	81 e7 00 ff 00 ff    	and    $0xff00ff00,%edi
54e5af:	8d 0c 85 00 00 00 00 	lea    0x0(,%eax,4),%ecx
54e5b6:	8b df                	mov    %edi,%ebx
54e5b8:	0b c8                	or     %eax,%ecx
54e5ba:	c1 eb 08             	shr    $0x8,%ebx
54e5bd:	81 e1 f0 f0 f0 f0    	and    $0xf0f0f0f0,%ecx
54e5c3:	81 e7 00 ff ff 00    	and    $0xffff00,%edi
54e5c9:	8b d1                	mov    %ecx,%edx
54e5cb:	0b df                	or     %edi,%ebx
54e5cd:	c1 e2 04             	shl    $0x4,%edx
54e5d0:	0b d1                	or     %ecx,%edx
54e5d2:	c1 eb 08             	shr    $0x8,%ebx
54e5d5:	81 e2 00 ff 00 ff    	and    $0xff00ff00,%edx
54e5db:	8b cd                	mov    %ebp,%ecx
54e5dd:	8b c2                	mov    %edx,%eax
54e5df:	c1 e5 08             	shl    $0x8,%ebp
54e5e2:	c1 e0 08             	shl    $0x8,%eax
54e5e5:	81 e1 00 ff ff ff    	and    $0xffffff00,%ecx
54e5eb:	0b c2                	or     %edx,%eax
54e5ed:	0b cd                	or     %ebp,%ecx
54e5ef:	25 00 00 ff ff       	and    $0xffff0000,%eax
54e5f4:	c1 e1 08             	shl    $0x8,%ecx
54e5f7:	0b d8                	or     %eax,%ebx