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
54e5f9:	33 d2                	xor    %edx,%edx
54e5fb:	8b 44 24 18          	mov    0x18(%esp),%eax
54e5ff:	c1 e8 08             	shr    $0x8,%eax
54e602:	0b 44 24 18          	or     0x18(%esp),%eax
54e606:	0f b7 c0             	movzwl %ax,%eax
54e609:	0b c8                	or     %eax,%ecx
54e60b:	8b 44 24 10          	mov    0x10(%esp),%eax
54e60f:	0b d1                	or     %ecx,%edx
54e611:	8b 4c 24 20          	mov    0x20(%esp),%ecx
54e615:	31 14 c1             	xor    %edx,(%ecx,%eax,8)
54e618:	31 5c c1 04          	xor    %ebx,0x4(%ecx,%eax,8)
54e61c:	40                   	inc    %eax
54e61d:	89 44 24 10          	mov    %eax,0x10(%esp)
54e621:	3b c6                	cmp    %esi,%eax
54e623:	0f 82 6b fe ff ff    	jb     0x54e494
54e629:	8b 74 24 28          	mov    0x28(%esp),%esi
54e62d:	eb 04                	jmp    0x54e633
54e62f:	8b 4c 24 20          	mov    0x20(%esp),%ecx
54e633:	51                   	push   %ecx
54e634:	e8 57 f5 ff ff       	call   0x54db90
54e639:	2b 74 24 30          	sub    0x30(%esp),%esi
54e63d:	83 c4 04             	add    $0x4,%esp
54e640:	8b 4c 24 14          	mov    0x14(%esp),%ecx
54e644:	89 74 24 28          	mov    %esi,0x28(%esp)
54e648:	3b 74 24 2c          	cmp    0x2c(%esp),%esi
54e64c:	0f 83 2e fe ff ff    	jae    0x54e480
54e652:	5f                   	pop    %edi
54e653:	5d                   	pop    %ebp
54e654:	5b                   	pop    %ebx
54e655:	8b c6                	mov    %esi,%eax
54e657:	5e                   	pop    %esi
54e658:	83 c4 0c             	add    $0xc,%esp
54e65b:	c3                   	ret
54e65c:	cc                   	int3
54e65d:	cc                   	int3
54e65e:	cc                   	int3
54e65f:	cc                   	int3
54e660:	b8 08 00 00 00       	mov    $0x8,%eax
54e665:	e8 46 31 08 00       	call   0x5d17b0
54e66a:	8b 4c 24 18          	mov    0x18(%esp),%ecx
54e66e:	55                   	push   %ebp
54e66f:	8b 6c 24 18          	mov    0x18(%esp),%ebp
54e673:	c1 e9 03             	shr    $0x3,%ecx
54e676:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
54e67a:	85 ed                	test   %ebp,%ebp
54e67c:	0f 84 c9 01 00 00    	je     0x54e84b
54e682:	56                   	push   %esi
54e683:	8b 74 24 14          	mov    0x14(%esp),%esi
54e687:	53                   	push   %ebx
54e688:	57                   	push   %edi
54e689:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
54e690:	33 c0                	xor    %eax,%eax
54e692:	89 44 24 14          	mov    %eax,0x14(%esp)
54e696:	85 c9                	test   %ecx,%ecx
54e698:	0f 84 7f 01 00 00    	je     0x54e81d
54e69e:	66 90                	xchg   %ax,%ax
54e6a0:	85 ed                	test   %ebp,%ebp
54e6a2:	0f 84 a0 01 00 00    	je     0x54e848
54e6a8:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
54e6ac:	8b 14 c1             	mov    (%ecx,%eax,8),%edx
54e6af:	8b 5c c1 04          	mov    0x4(%ecx,%eax,8),%ebx
54e6b3:	0f b7 c2             	movzwl %dx,%eax
54e6b6:	8b c8                	mov    %eax,%ecx
54e6b8:	c1 ea 10             	shr    $0x10,%edx
54e6bb:	c1 e1 08             	shl    $0x8,%ecx
54e6be:	0b c8                	or     %eax,%ecx
54e6c0:	81 e1 ff 00 ff 00    	and    $0xff00ff,%ecx
54e6c6:	8b c1                	mov    %ecx,%eax
54e6c8:	c1 e0 04             	shl    $0x4,%eax
54e6cb:	0b c1                	or     %ecx,%eax
54e6cd:	25 0f 0f 0f 0f       	and    $0xf0f0f0f,%eax
54e6d2:	8d 2c 85 00 00 00 00 	lea    0x0(,%eax,4),%ebp
54e6d9:	0b e8                	or     %eax,%ebp
54e6db:	8b c3                	mov    %ebx,%eax
54e6dd:	c1 e0 10             	shl    $0x10,%eax
54e6e0:	81 e3 00 00 ff ff    	and    $0xffff0000,%ebx
54e6e6:	8b c8                	mov    %eax,%ecx
54e6e8:	c1 e9 08             	shr    $0x8,%ecx
54e6eb:	0b c8                	or     %eax,%ecx
54e6ed:	81 e1 00 ff 00 ff    	and    $0xff00ff00,%ecx
54e6f3:	8b c1                	mov    %ecx,%eax
54e6f5:	c1 e8 04             	shr    $0x4,%eax
54e6f8:	0b c1                	or     %ecx,%eax
54e6fa:	25 f0 f0 f0 f0       	and    $0xf0f0f0f0,%eax
54e6ff:	8b f8                	mov    %eax,%edi
54e701:	c1 ef 02             	shr    $0x2,%edi
54e704:	0b f8                	or     %eax,%edi
54e706:	8b c2                	mov    %edx,%eax
54e708:	c1 e0 08             	shl    $0x8,%eax
54e70b:	81 e7 cc cc cc cc    	and    $0xcccccccc,%edi
54e711:	0b c2                	or     %edx,%eax
54e713:	25 ff 00 ff 00       	and    $0xff00ff,%eax
54e718:	8b c8                	mov    %eax,%ecx
54e71a:	c1 e1 04             	shl    $0x4,%ecx
54e71d:	0b c8                	or     %eax,%ecx
54e71f:	8b c3                	mov    %ebx,%eax
54e721:	81 e1 0f 0f 0f 0f    	and    $0xf0f0f0f,%ecx
54e727:	c1 e8 08             	shr    $0x8,%eax
54e72a:	0b c3                	or     %ebx,%eax
54e72c:	33 db                	xor    %ebx,%ebx
54e72e:	25 00 ff 00 ff       	and    $0xff00ff00,%eax
54e733:	8d 34 8d 00 00 00 00 	lea    0x0(,%ecx,4),%esi
54e73a:	0b f1                	or     %ecx,%esi
54e73c:	8b c8                	mov    %eax,%ecx
54e73e:	c1 e9 04             	shr    $0x4,%ecx
54e741:	0b c8                	or     %eax,%ecx
54e743:	81 e1 f0 f0 f0 f0    	and    $0xf0f0f0f0,%ecx
54e749:	8b d1                	mov    %ecx,%edx
54e74b:	c1 ea 02             	shr    $0x2,%edx
54e74e:	0b d1                	or     %ecx,%edx
54e750:	8b ce                	mov    %esi,%ecx
54e752:	81 e2 cc cc cc cc    	and    $0xcccccccc,%edx
54e758:	81 e1 22 22 22 22    	and    $0x22222222,%ecx
54e75e:	8b c2                	mov    %edx,%eax
54e760:	03 c9                	add    %ecx,%ecx
54e762:	d1 e8                	shr    $1,%eax
54e764:	81 e6 11 11 11 11    	and    $0x11111111,%esi
54e76a:	0b c2                	or     %edx,%eax
54e76c:	8b d7                	mov    %edi,%edx
54e76e:	25 aa aa aa aa       	and    $0xaaaaaaaa,%eax
54e773:	d1 ea                	shr    $1,%edx
54e775:	0b c1                	or     %ecx,%eax
54e777:	0b d7                	or     %edi,%edx
54e779:	8b cd                	mov    %ebp,%ecx
54e77b:	81 e2 aa aa aa aa    	and    $0xaaaaaaaa,%edx
54e781:	81 e1 22 22 22 22    	and    $0x22222222,%ecx
54e787:	81 e5 11 11 11 11    	and    $0x11111111,%ebp
54e78d:	03 c9                	add    %ecx,%ecx
54e78f:	0b c6                	or     %esi,%eax
54e791:	0b d1                	or     %ecx,%edx
54e793:	0b d5                	or     %ebp,%edx
54e795:	8b 6c 24 24          	mov    0x24(%esp),%ebp
54e799:	0b da                	or     %edx,%ebx
54e79b:	89 5c 24 10          	mov    %ebx,0x10(%esp)
54e79f:	83 fd 08             	cmp    $0x8,%ebp
54e7a2:	0f 82 87 00 00 00    	jb     0x54e82f
54e7a8:	8b 5c 24 20          	mov    0x20(%esp),%ebx
54e7ac:	83 ed 08             	sub    $0x8,%ebp
54e7af:	8b 4c 24 10          	mov    0x10(%esp),%ecx
54e7b3:	8b d1                	mov    %ecx,%edx
54e7b5:	89 6c 24 24          	mov    %ebp,0x24(%esp)
54e7b9:	88 0b                	mov    %cl,(%ebx)
54e7bb:	8b c8                	mov    %eax,%ecx
54e7bd:	0f ac ca 08          	shrd   $0x8,%ecx,%edx
54e7c1:	88 43 04             	mov    %al,0x4(%ebx)
54e7c4:	88 53 01             	mov    %dl,0x1(%ebx)
54e7c7:	8b 54 24 10          	mov    0x10(%esp),%edx
54e7cb:	0f ac ca 10          	shrd   $0x10,%ecx,%edx
54e7cf:	88 53 02             	mov    %dl,0x2(%ebx)
54e7d2:	8b 54 24 10          	mov    0x10(%esp),%edx
54e7d6:	0f ac ca 18          	shrd   $0x18,%ecx,%edx
54e7da:	c1 e9 08             	shr    $0x8,%ecx
54e7dd:	88 4b 05             	mov    %cl,0x5(%ebx)
54e7e0:	8b c8                	mov    %eax,%ecx
54e7e2:	c1 e8 18             	shr    $0x18,%eax
54e7e5:	88 43 07             	mov    %al,0x7(%ebx)
54e7e8:	8b 44 24 14          	mov    0x14(%esp),%eax
54e7ec:	c1 e9 10             	shr    $0x10,%ecx
54e7ef:	40                   	inc    %eax
54e7f0:	88 4b 06             	mov    %cl,0x6(%ebx)
54e7f3:	8b cd                	mov    %ebp,%ecx
54e7f5:	88 53 03             	mov    %dl,0x3(%ebx)
54e7f8:	83 c3 08             	add    $0x8,%ebx
54e7fb:	89 5c 24 20          	mov    %ebx,0x20(%esp)
54e7ff:	89 44 24 14          	mov    %eax,0x14(%esp)
54e803:	3b 44 24 28          	cmp    0x28(%esp),%eax
54e807:	0f 82 93 fe ff ff    	jb     0x54e6a0
54e80d:	89 6c 24 24          	mov    %ebp,0x24(%esp)
54e811:	89 5c 24 20          	mov    %ebx,0x20(%esp)
54e815:	85 c9                	test   %ecx,%ecx
54e817:	74 2f                	je     0x54e848
54e819:	8b 74 24 1c          	mov    0x1c(%esp),%esi
54e81d:	56                   	push   %esi
54e81e:	e8 6d f3 ff ff       	call   0x54db90
54e823:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx