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
54e827:	83 c4 04             	add    $0x4,%esp
54e82a:	e9 61 fe ff ff       	jmp    0x54e690
54e82f:	85 ed                	test   %ebp,%ebp
54e831:	74 15                	je     0x54e848
54e833:	8b 4c 24 20          	mov    0x20(%esp),%ecx
54e837:	88 19                	mov    %bl,(%ecx)
54e839:	8d 49 01             	lea    0x1(%ecx),%ecx
54e83c:	0f ac c3 08          	shrd   $0x8,%eax,%ebx
54e840:	c1 e8 08             	shr    $0x8,%eax
54e843:	83 ed 01             	sub    $0x1,%ebp
54e846:	75 ef                	jne    0x54e837
54e848:	5f                   	pop    %edi
54e849:	5b                   	pop    %ebx
54e84a:	5e                   	pop    %esi
54e84b:	5d                   	pop    %ebp
54e84c:	83 c4 08             	add    $0x8,%esp
54e84f:	c3                   	ret
54e850:	53                   	push   %ebx
54e851:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
54e855:	56                   	push   %esi
54e856:	57                   	push   %edi
54e857:	8d 7b 1c             	lea    0x1c(%ebx),%edi
54e85a:	8b 73 5c             	mov    0x5c(%ebx),%esi
54e85d:	c6 04 3e 80          	movb   $0x80,(%esi,%edi,1)
54e861:	46                   	inc    %esi
54e862:	83 fe 38             	cmp    $0x38,%esi
54e865:	76 21                	jbe    0x54e888
54e867:	b8 40 00 00 00       	mov    $0x40,%eax
54e86c:	2b c6                	sub    %esi,%eax
54e86e:	50                   	push   %eax
54e86f:	8d 04 3e             	lea    (%esi,%edi,1),%eax
54e872:	6a 00                	push   $0x0
54e874:	50                   	push   %eax
54e875:	e8 f6 43 08 00       	call   0x5d2c70
54e87a:	6a 01                	push   $0x1
54e87c:	57                   	push   %edi
54e87d:	53                   	push   %ebx
54e87e:	33 f6                	xor    %esi,%esi
54e880:	e8 bb 5c ef ff       	call   0x444540
54e885:	83 c4 18             	add    $0x18,%esp
54e888:	b8 38 00 00 00       	mov    $0x38,%eax
54e88d:	2b c6                	sub    %esi,%eax
54e88f:	50                   	push   %eax
54e890:	8d 04 3e             	lea    (%esi,%edi,1),%eax
54e893:	6a 00                	push   $0x0
54e895:	50                   	push   %eax
54e896:	e8 d5 43 08 00       	call   0x5d2c70
54e89b:	0f b6 43 14          	movzbl 0x14(%ebx),%eax
54e89f:	88 47 38             	mov    %al,0x38(%edi)
54e8a2:	0f b6 43 15          	movzbl 0x15(%ebx),%eax
54e8a6:	88 47 39             	mov    %al,0x39(%edi)
54e8a9:	0f b6 43 16          	movzbl 0x16(%ebx),%eax
54e8ad:	88 47 3a             	mov    %al,0x3a(%edi)
54e8b0:	0f b6 43 17          	movzbl 0x17(%ebx),%eax
54e8b4:	88 47 3b             	mov    %al,0x3b(%edi)
54e8b7:	0f b6 43 18          	movzbl 0x18(%ebx),%eax
54e8bb:	88 47 3c             	mov    %al,0x3c(%edi)
54e8be:	0f b6 43 19          	movzbl 0x19(%ebx),%eax
54e8c2:	88 47 3d             	mov    %al,0x3d(%edi)
54e8c5:	0f b6 43 1a          	movzbl 0x1a(%ebx),%eax
54e8c9:	6a 01                	push   $0x1
54e8cb:	88 47 3e             	mov    %al,0x3e(%edi)
54e8ce:	0f b6 43 1b          	movzbl 0x1b(%ebx),%eax
54e8d2:	57                   	push   %edi
54e8d3:	53                   	push   %ebx
54e8d4:	88 47 3f             	mov    %al,0x3f(%edi)
54e8d7:	e8 64 5c ef ff       	call   0x444540
54e8dc:	6a 40                	push   $0x40
54e8de:	57                   	push   %edi
54e8df:	c7 43 5c 00 00 00 00 	movl   $0x0,0x5c(%ebx)
54e8e6:	e8 f5 30 eb ff       	call   0x4019e0
54e8eb:	8b 0b                	mov    (%ebx),%ecx
54e8ed:	83 c4 20             	add    $0x20,%esp
54e8f0:	8b 54 24 10          	mov    0x10(%esp),%edx
54e8f4:	8b c1                	mov    %ecx,%eax
54e8f6:	c1 e8 08             	shr    $0x8,%eax
54e8f9:	88 0a                	mov    %cl,(%edx)
54e8fb:	88 42 01             	mov    %al,0x1(%edx)
54e8fe:	8b c1                	mov    %ecx,%eax
54e900:	c1 e8 10             	shr    $0x10,%eax
54e903:	88 42 02             	mov    %al,0x2(%edx)
54e906:	c1 e9 18             	shr    $0x18,%ecx
54e909:	88 4a 03             	mov    %cl,0x3(%edx)
54e90c:	8b 4b 04             	mov    0x4(%ebx),%ecx
54e90f:	8b c1                	mov    %ecx,%eax
54e911:	88 4a 04             	mov    %cl,0x4(%edx)
54e914:	c1 e8 08             	shr    $0x8,%eax
54e917:	88 42 05             	mov    %al,0x5(%edx)
54e91a:	8b c1                	mov    %ecx,%eax
54e91c:	c1 e8 10             	shr    $0x10,%eax
54e91f:	88 42 06             	mov    %al,0x6(%edx)
54e922:	c1 e9 18             	shr    $0x18,%ecx
54e925:	88 4a 07             	mov    %cl,0x7(%edx)
54e928:	8b 4b 08             	mov    0x8(%ebx),%ecx
54e92b:	8b c1                	mov    %ecx,%eax
54e92d:	88 4a 08             	mov    %cl,0x8(%edx)
54e930:	c1 e8 08             	shr    $0x8,%eax
54e933:	88 42 09             	mov    %al,0x9(%edx)
54e936:	8b c1                	mov    %ecx,%eax
54e938:	c1 e8 10             	shr    $0x10,%eax
54e93b:	88 42 0a             	mov    %al,0xa(%edx)
54e93e:	c1 e9 18             	shr    $0x18,%ecx
54e941:	88 4a 0b             	mov    %cl,0xb(%edx)
54e944:	8b 4b 0c             	mov    0xc(%ebx),%ecx
54e947:	8b c1                	mov    %ecx,%eax
54e949:	88 4a 0c             	mov    %cl,0xc(%edx)
54e94c:	c1 e8 08             	shr    $0x8,%eax
54e94f:	88 42 0d             	mov    %al,0xd(%edx)
54e952:	8b c1                	mov    %ecx,%eax
54e954:	c1 e8 10             	shr    $0x10,%eax
54e957:	88 42 0e             	mov    %al,0xe(%edx)
54e95a:	c1 e9 18             	shr    $0x18,%ecx
54e95d:	88 4a 0f             	mov    %cl,0xf(%edx)
54e960:	8b 4b 10             	mov    0x10(%ebx),%ecx
54e963:	8b c1                	mov    %ecx,%eax
54e965:	c1 e8 08             	shr    $0x8,%eax
54e968:	88 42 11             	mov    %al,0x11(%edx)
54e96b:	8b c1                	mov    %ecx,%eax
54e96d:	c1 e8 10             	shr    $0x10,%eax
54e970:	88 4a 10             	mov    %cl,0x10(%edx)
54e973:	88 42 12             	mov    %al,0x12(%edx)
54e976:	5f                   	pop    %edi
54e977:	c1 e9 18             	shr    $0x18,%ecx
54e97a:	b8 01 00 00 00       	mov    $0x1,%eax
54e97f:	5e                   	pop    %esi
54e980:	88 4a 13             	mov    %cl,0x13(%edx)
54e983:	5b                   	pop    %ebx
54e984:	c3                   	ret
54e985:	cc                   	int3
54e986:	cc                   	int3
54e987:	cc                   	int3
54e988:	cc                   	int3
54e989:	cc                   	int3
54e98a:	cc                   	int3
54e98b:	cc                   	int3
54e98c:	cc                   	int3
54e98d:	cc                   	int3
54e98e:	cc                   	int3
54e98f:	cc                   	int3
54e990:	53                   	push   %ebx
54e991:	8b 5c 24 08          	mov    0x8(%esp),%ebx
54e995:	55                   	push   %ebp
54e996:	8b 6c 24 10          	mov    0x10(%esp),%ebp
54e99a:	56                   	push   %esi
54e99b:	57                   	push   %edi
54e99c:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
54e9a0:	85 ff                	test   %edi,%edi
54e9a2:	0f 84 b6 00 00 00    	je     0x54ea5e
54e9a8:	8b 43 14             	mov    0x14(%ebx),%eax
54e9ab:	8b 4b 18             	mov    0x18(%ebx),%ecx
54e9ae:	8d 14 f8             	lea    (%eax,%edi,8),%edx
54e9b1:	3b d0                	cmp    %eax,%edx
54e9b3:	73 01                	jae    0x54e9b6
54e9b5:	41                   	inc    %ecx
54e9b6:	8b c7                	mov    %edi,%eax
54e9b8:	89 53 14             	mov    %edx,0x14(%ebx)
54e9bb:	c1 e8 1d             	shr    $0x1d,%eax
54e9be:	03 c1                	add    %ecx,%eax
54e9c0:	8b 4b 5c             	mov    0x5c(%ebx),%ecx
54e9c3:	89 43 18             	mov    %eax,0x18(%ebx)
54e9c6:	85 c9                	test   %ecx,%ecx
54e9c8:	74 64                	je     0x54ea2e
54e9ca:	8d 53 1c             	lea    0x1c(%ebx),%edx
54e9cd:	83 ff 40             	cmp    $0x40,%edi
54e9d0:	73 23                	jae    0x54e9f5
54e9d2:	8d 04 39             	lea    (%ecx,%edi,1),%eax
54e9d5:	83 f8 40             	cmp    $0x40,%eax
54e9d8:	73 1b                	jae    0x54e9f5
54e9da:	57                   	push   %edi
54e9db:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
54e9de:	55                   	push   %ebp
54e9df:	50                   	push   %eax
54e9e0:	e8 eb 43 08 00       	call   0x5d2dd0
54e9e5:	83 c4 0c             	add    $0xc,%esp
54e9e8:	b8 01 00 00 00       	mov    $0x1,%eax