54e630:	33 c0                	xor    %eax,%eax
54e632:	c3                   	ret
54e633:	90                   	nop
54e634:	85 c0                	test   %eax,%eax
54e636:	74 1b                	je     0x54e653
54e638:	85 d2                	test   %edx,%edx
54e63a:	74 17                	je     0x54e653
54e63c:	f6 42 09 08          	testb  $0x8,0x9(%edx)
54e640:	74 11                	je     0x54e653
54e642:	85 c9                	test   %ecx,%ecx
54e644:	74 0d                	je     0x54e653
54e646:	33 c0                	xor    %eax,%eax
54e648:	8a 42 2c             	mov    0x2c(%edx),%al
54e64b:	89 01                	mov    %eax,(%ecx)
54e64d:	b8 00 08 00 00       	mov    $0x800,%eax
54e652:	c3                   	ret
54e653:	33 c0                	xor    %eax,%eax
54e655:	c3                   	ret
54e656:	90                   	nop
54e657:	90                   	nop
54e658:	55                   	push   %ebp
54e659:	8b ec                	mov    %esp,%ebp
54e65b:	51                   	push   %ecx
54e65c:	53                   	push   %ebx
54e65d:	56                   	push   %esi
54e65e:	89 45 fc             	mov    %eax,-0x4(%ebp)
54e661:	8b 45 08             	mov    0x8(%ebp),%eax
54e664:	8b 5d 0c             	mov    0xc(%ebp),%ebx
54e667:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
54e66b:	74 42                	je     0x54e6af
54e66d:	85 d2                	test   %edx,%edx
54e66f:	74 3e                	je     0x54e6af
54e671:	f6 42 09 10          	testb  $0x10,0x9(%edx)
54e675:	74 38                	je     0x54e6af
54e677:	85 c9                	test   %ecx,%ecx
54e679:	74 34                	je     0x54e6af
54e67b:	85 db                	test   %ebx,%ebx
54e67d:	74 30                	je     0x54e6af
54e67f:	85 c0                	test   %eax,%eax
54e681:	74 2c                	je     0x54e6af
54e683:	8b b2 c4 00 00 00    	mov    0xc4(%edx),%esi
54e689:	89 31                	mov    %esi,(%ecx)
54e68b:	8b 8a c8 00 00 00    	mov    0xc8(%edx),%ecx
54e691:	89 0b                	mov    %ecx,(%ebx)
54e693:	8b 8a cc 00 00 00    	mov    0xcc(%edx),%ecx
54e699:	89 08                	mov    %ecx,(%eax)
54e69b:	33 c0                	xor    %eax,%eax
54e69d:	8a 82 d0 00 00 00    	mov    0xd0(%edx),%al
54e6a3:	8b 55 10             	mov    0x10(%ebp),%edx
54e6a6:	89 02                	mov    %eax,(%edx)
54e6a8:	b8 00 10 00 00       	mov    $0x1000,%eax
54e6ad:	eb 02                	jmp    0x54e6b1
54e6af:	33 c0                	xor    %eax,%eax
54e6b1:	5e                   	pop    %esi
54e6b2:	5b                   	pop    %ebx
54e6b3:	59                   	pop    %ecx
54e6b4:	5d                   	pop    %ebp
54e6b5:	c2 0c 00             	ret    $0xc
54e6b8:	85 c0                	test   %eax,%eax
54e6ba:	74 10                	je     0x54e6cc
54e6bc:	85 d2                	test   %edx,%edx
54e6be:	74 0c                	je     0x54e6cc
54e6c0:	85 c9                	test   %ecx,%ecx
54e6c2:	74 08                	je     0x54e6cc
54e6c4:	8b 82 d4 00 00 00    	mov    0xd4(%edx),%eax
54e6ca:	89 01                	mov    %eax,(%ecx)
54e6cc:	8b 82 d8 00 00 00    	mov    0xd8(%edx),%eax
54e6d2:	c3                   	ret
54e6d3:	90                   	nop
54e6d4:	85 c0                	test   %eax,%eax
54e6d6:	74 19                	je     0x54e6f1
54e6d8:	85 d2                	test   %edx,%edx
54e6da:	74 15                	je     0x54e6f1
54e6dc:	f6 42 08 40          	testb  $0x40,0x8(%edx)
54e6e0:	74 0f                	je     0x54e6f1
54e6e2:	85 c9                	test   %ecx,%ecx
54e6e4:	74 0b                	je     0x54e6f1
54e6e6:	8b 42 7c             	mov    0x7c(%edx),%eax
54e6e9:	89 01                	mov    %eax,(%ecx)
54e6eb:	b8 40 00 00 00       	mov    $0x40,%eax
54e6f0:	c3                   	ret
54e6f1:	33 c0                	xor    %eax,%eax
54e6f3:	c3                   	ret
54e6f4:	55                   	push   %ebp
54e6f5:	8b ec                	mov    %esp,%ebp
54e6f7:	51                   	push   %ecx
54e6f8:	53                   	push   %ebx
54e6f9:	56                   	push   %esi
54e6fa:	57                   	push   %edi
54e6fb:	8b f1                	mov    %ecx,%esi
54e6fd:	8b da                	mov    %edx,%ebx
54e6ff:	89 45 fc             	mov    %eax,-0x4(%ebp)
54e702:	8b 7d 14             	mov    0x14(%ebp),%edi
54e705:	8b 45 fc             	mov    -0x4(%ebp),%eax
54e708:	85 c0                	test   %eax,%eax
54e70a:	0f 84 3f 01 00 00    	je     0x54e84f
54e710:	85 db                	test   %ebx,%ebx
54e712:	0f 84 37 01 00 00    	je     0x54e84f
54e718:	85 f6                	test   %esi,%esi
54e71a:	0f 84 2f 01 00 00    	je     0x54e84f
54e720:	8b 55 1c             	mov    0x1c(%ebp),%edx
54e723:	85 d2                	test   %edx,%edx
54e725:	0f 84 24 01 00 00    	je     0x54e84f
54e72b:	8b 4d 18             	mov    0x18(%ebp),%ecx
54e72e:	85 c9                	test   %ecx,%ecx
54e730:	0f 84 19 01 00 00    	je     0x54e84f
54e736:	85 ff                	test   %edi,%edi
54e738:	0f 84 11 01 00 00    	je     0x54e84f
54e73e:	8b 03                	mov    (%ebx),%eax
54e740:	89 06                	mov    %eax,(%esi)
54e742:	8b 55 1c             	mov    0x1c(%ebp),%edx
54e745:	8b 4b 04             	mov    0x4(%ebx),%ecx
54e748:	89 0a                	mov    %ecx,(%edx)
54e74a:	33 c0                	xor    %eax,%eax
54e74c:	8a 43 18             	mov    0x18(%ebx),%al
54e74f:	8b 55 18             	mov    0x18(%ebp),%edx
54e752:	89 02                	mov    %eax,(%edx)
54e754:	8a 43 18             	mov    0x18(%ebx),%al
54e757:	3c 01                	cmp    $0x1,%al
54e759:	72 04                	jb     0x54e75f
54e75b:	3c 10                	cmp    $0x10,%al
54e75d:	76 0d                	jbe    0x54e76c
54e75f:	ba d8 bc 69 00       	mov    $0x69bcd8,%edx
54e764:	8b 45 fc             	mov    -0x4(%ebp),%eax
54e767:	e8 54 c7 ff ff       	call   0x54aec0
54e76c:	33 d2                	xor    %edx,%edx
54e76e:	8a 53 19             	mov    0x19(%ebx),%dl
54e771:	89 17                	mov    %edx,(%edi)
54e773:	8a 4b 19             	mov    0x19(%ebx),%cl
54e776:	80 f9 06             	cmp    $0x6,%cl
54e779:	76 0d                	jbe    0x54e788
54e77b:	ba ea bc 69 00       	mov    $0x69bcea,%edx
54e780:	8b 45 fc             	mov    -0x4(%ebp),%eax
54e783:	e8 38 c7 ff ff       	call   0x54aec0
54e788:	8b 4d 0c             	mov    0xc(%ebp),%ecx
54e78b:	85 c9                	test   %ecx,%ecx
54e78d:	74 0a                	je     0x54e799
54e78f:	8b 55 0c             	mov    0xc(%ebp),%edx
54e792:	33 c0                	xor    %eax,%eax
54e794:	8a 43 1a             	mov    0x1a(%ebx),%al
54e797:	89 02                	mov    %eax,(%edx)
54e799:	8b 4d 08             	mov    0x8(%ebp),%ecx
54e79c:	85 c9                	test   %ecx,%ecx
54e79e:	74 0a                	je     0x54e7aa
54e7a0:	8b 55 08             	mov    0x8(%ebp),%edx
54e7a3:	33 c0                	xor    %eax,%eax
54e7a5:	8a 43 1b             	mov    0x1b(%ebx),%al
54e7a8:	89 02                	mov    %eax,(%edx)
54e7aa:	8b 4d 10             	mov    0x10(%ebp),%ecx
54e7ad:	85 c9                	test   %ecx,%ecx
54e7af:	74 0a                	je     0x54e7bb
54e7b1:	8b 55 10             	mov    0x10(%ebp),%edx
54e7b4:	33 c0                	xor    %eax,%eax
54e7b6:	8a 43 1c             	mov    0x1c(%ebx),%al
54e7b9:	89 02                	mov    %eax,(%edx)
54e7bb:	8b 07                	mov    (%edi),%eax
54e7bd:	83 f8 03             	cmp    $0x3,%eax
54e7c0:	75 07                	jne    0x54e7c9
54e7c2:	b8 01 00 00 00       	mov    $0x1,%eax
54e7c7:	eb 10                	jmp    0x54e7d9
54e7c9:	a8 02                	test   $0x2,%al
54e7cb:	74 07                	je     0x54e7d4
54e7cd:	b8 03 00 00 00       	mov    $0x3,%eax
54e7d2:	eb 05                	jmp    0x54e7d9
54e7d4:	b8 01 00 00 00       	mov    $0x1,%eax
54e7d9:	f6 07 04             	testb  $0x4,(%edi)
54e7dc:	74 01                	je     0x54e7df
54e7de:	40                   	inc    %eax
54e7df:	8b 55 18             	mov    0x18(%ebp),%edx
54e7e2:	8b 0a                	mov    (%edx),%ecx
54e7e4:	0f af c8             	imul   %eax,%ecx
54e7e7:	8b c1                	mov    %ecx,%eax
54e7e9:	8d 58 07             	lea    0x7(%eax),%ebx
54e7ec:	c1 fb 03             	sar    $0x3,%ebx
54e7ef:	85 f6                	test   %esi,%esi
54e7f1:	74 09                	je     0x54e7fc
54e7f3:	8b 06                	mov    (%esi),%eax
54e7f5:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
54e7fa:	76 0d                	jbe    0x54e809
54e7fc:	ba fd bc 69 00       	mov    $0x69bcfd,%edx
54e801:	8b 45 fc             	mov    -0x4(%ebp),%eax
54e804:	e8 b7 c6 ff ff       	call   0x54aec0
54e809:	8b 55 1c             	mov    0x1c(%ebp),%edx
54e80c:	85 d2                	test   %edx,%edx
54e80e:	74 0c                	je     0x54e81c
54e810:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
54e813:	8b 01                	mov    (%ecx),%eax
54e815:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
54e81a:	76 0d                	jbe    0x54e829
54e81c:	ba 11 bd 69 00       	mov    $0x69bd11,%edx
54e821:	8b 45 fc             	mov    -0x4(%ebp),%eax
54e824:	e8 97 c6 ff ff       	call   0x54aec0
54e829:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
54e82e:	33 d2                	xor    %edx,%edx
54e830:	f7 f3                	div    %ebx
54e832:	83 e8 40             	sub    $0x40,%eax
54e835:	8b 0e                	mov    (%esi),%ecx
54e837:	3b c1                	cmp    %ecx,%eax
54e839:	73 0d                	jae    0x54e848
54e83b:	ba 26 bd 69 00       	mov    $0x69bd26,%edx
54e840:	8b 45 fc             	mov    -0x4(%ebp),%eax
54e843:	e8 78 c6 ff ff       	call   0x54aec0
54e848:	b8 01 00 00 00       	mov    $0x1,%eax
54e84d:	eb 02                	jmp    0x54e851
54e84f:	33 c0                	xor    %eax,%eax
54e851:	5f                   	pop    %edi
54e852:	5e                   	pop    %esi
54e853:	5b                   	pop    %ebx
54e854:	59                   	pop    %ecx
54e855:	5d                   	pop    %ebp
54e856:	c2 18 00             	ret    $0x18
54e859:	90                   	nop
54e85a:	90                   	nop
54e85b:	90                   	nop
54e85c:	55                   	push   %ebp
54e85d:	8b ec                	mov    %esp,%ebp
54e85f:	51                   	push   %ecx
54e860:	53                   	push   %ebx
54e861:	56                   	push   %esi
54e862:	89 45 fc             	mov    %eax,-0x4(%ebp)
54e865:	8b 45 08             	mov    0x8(%ebp),%eax
54e868:	8b 5d 0c             	mov    0xc(%ebp),%ebx
54e86b:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
54e86f:	74 2d                	je     0x54e89e
54e871:	85 d2                	test   %edx,%edx
54e873:	74 29                	je     0x54e89e
54e875:	f6 42 09 01          	testb  $0x1,0x9(%edx)
54e879:	74 23                	je     0x54e89e
54e87b:	85 c9                	test   %ecx,%ecx
54e87d:	74 1f                	je     0x54e89e
54e87f:	85 db                	test   %ebx,%ebx
54e881:	74 1b                	je     0x54e89e
54e883:	85 c0                	test   %eax,%eax
54e885:	74 17                	je     0x54e89e
54e887:	8b 72 64             	mov    0x64(%edx),%esi
54e88a:	89 31                	mov    %esi,(%ecx)
54e88c:	8b 4a 68             	mov    0x68(%edx),%ecx
54e88f:	89 0b                	mov    %ecx,(%ebx)
54e891:	0f b6 52 6c          	movzbl 0x6c(%edx),%edx
54e895:	89 10                	mov    %edx,(%eax)
54e897:	b8 00 01 00 00       	mov    $0x100,%eax
54e89c:	eb 02                	jmp    0x54e8a0
54e89e:	33 c0                	xor    %eax,%eax
54e8a0:	5e                   	pop    %esi
54e8a1:	5b                   	pop    %ebx
54e8a2:	59                   	pop    %ecx
54e8a3:	5d                   	pop    %ebp
54e8a4:	c2 08 00             	ret    $0x8
54e8a7:	90                   	nop
54e8a8:	55                   	push   %ebp
54e8a9:	8b ec                	mov    %esp,%ebp
54e8ab:	51                   	push   %ecx
54e8ac:	53                   	push   %ebx
54e8ad:	56                   	push   %esi
54e8ae:	89 45 fc             	mov    %eax,-0x4(%ebp)
54e8b1:	8b 45 18             	mov    0x18(%ebp),%eax
54e8b4:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
54e8b7:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
54e8bb:	74 7d                	je     0x54e93a
54e8bd:	85 d2                	test   %edx,%edx
54e8bf:	74 79                	je     0x54e93a
54e8c1:	f6 42 09 04          	testb  $0x4,0x9(%edx)
54e8c5:	74 73                	je     0x54e93a
54e8c7:	85 c9                	test   %ecx,%ecx
54e8c9:	74 6f                	je     0x54e93a
54e8cb:	85 db                	test   %ebx,%ebx
54e8cd:	74 6b                	je     0x54e93a
54e8cf:	85 c0                	test   %eax,%eax
54e8d1:	74 67                	je     0x54e93a
54e8d3:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
54e8d7:	74 61                	je     0x54e93a
54e8d9:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
54e8dd:	74 5b                	je     0x54e93a
54e8df:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
54e8e3:	74 55                	je     0x54e93a
54e8e5:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
54e8e9:	74 4f                	je     0x54e93a
54e8eb:	8b b2 a0 00 00 00    	mov    0xa0(%edx),%esi
54e8f1:	89 31                	mov    %esi,(%ecx)
54e8f3:	8b 8a a4 00 00 00    	mov    0xa4(%edx),%ecx
54e8f9:	89 0b                	mov    %ecx,(%ebx)
54e8fb:	8b 8a a8 00 00 00    	mov    0xa8(%edx),%ecx
54e901:	89 08                	mov    %ecx,(%eax)
54e903:	33 c0                	xor    %eax,%eax
54e905:	8a 82 b4 00 00 00    	mov    0xb4(%edx),%al
54e90b:	8b 4d 14             	mov    0x14(%ebp),%ecx
54e90e:	89 01                	mov    %eax,(%ecx)
54e910:	33 c0                	xor    %eax,%eax
54e912:	8a 82 b5 00 00 00    	mov    0xb5(%edx),%al
54e918:	8b 4d 10             	mov    0x10(%ebp),%ecx
54e91b:	89 01                	mov    %eax,(%ecx)
54e91d:	8b 45 0c             	mov    0xc(%ebp),%eax
54e920:	8b 8a ac 00 00 00    	mov    0xac(%edx),%ecx
54e926:	89 08                	mov    %ecx,(%eax)
54e928:	8b 45 08             	mov    0x8(%ebp),%eax
54e92b:	8b 92 b0 00 00 00    	mov    0xb0(%edx),%edx
54e931:	89 10                	mov    %edx,(%eax)
54e933:	b8 00 04 00 00       	mov    $0x400,%eax
54e938:	eb 02                	jmp    0x54e93c
54e93a:	33 c0                	xor    %eax,%eax
54e93c:	5e                   	pop    %esi
54e93d:	5b                   	pop    %ebx
54e93e:	59                   	pop    %ecx
54e93f:	5d                   	pop    %ebp
54e940:	c2 18 00             	ret    $0x18
54e943:	90                   	nop
54e944:	55                   	push   %ebp
54e945:	8b ec                	mov    %esp,%ebp
54e947:	85 c0                	test   %eax,%eax
54e949:	74 43                	je     0x54e98e
54e94b:	85 d2                	test   %edx,%edx
54e94d:	74 3f                	je     0x54e98e
54e94f:	f6 42 09 40          	testb  $0x40,0x9(%edx)
54e953:	74 39                	je     0x54e98e
54e955:	33 c0                	xor    %eax,%eax
54e957:	8a 82 dc 00 00 00    	mov    0xdc(%edx),%al
54e95d:	89 01                	mov    %eax,(%ecx)
54e95f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
54e962:	8b 82 e0 00 00 00    	mov    0xe0(%edx),%eax
54e968:	89 01                	mov    %eax,(%ecx)
54e96a:	8b 82 e4 00 00 00    	mov    0xe4(%edx),%eax
54e970:	89 41 04             	mov    %eax,0x4(%ecx)
54e973:	8b 4d 08             	mov    0x8(%ebp),%ecx
54e976:	8b 82 e8 00 00 00    	mov    0xe8(%edx),%eax
54e97c:	89 01                	mov    %eax,(%ecx)
54e97e:	8b 82 ec 00 00 00    	mov    0xec(%edx),%eax
54e984:	89 41 04             	mov    %eax,0x4(%ecx)
54e987:	b8 00 40 00 00       	mov    $0x4000,%eax
54e98c:	eb 02                	jmp    0x54e990
54e98e:	33 c0                	xor    %eax,%eax
54e990:	5d                   	pop    %ebp
54e991:	c2 08 00             	ret    $0x8
54e994:	55                   	push   %ebp
54e995:	8b ec                	mov    %esp,%ebp
54e997:	53                   	push   %ebx
54e998:	33 db                	xor    %ebx,%ebx
54e99a:	85 c0                	test   %eax,%eax
54e99c:	74 44                	je     0x54e9e2
54e99e:	85 d2                	test   %edx,%edx
54e9a0:	74 40                	je     0x54e9e2
54e9a2:	f6 42 08 80          	testb  $0x80,0x8(%edx)
54e9a6:	74 3a                	je     0x54e9e2
54e9a8:	85 c9                	test   %ecx,%ecx
54e9aa:	74 0b                	je     0x54e9b7
54e9ac:	8b 42 70             	mov    0x70(%edx),%eax
54e9af:	81 cb 80 00 00 00    	or     $0x80,%ebx
54e9b5:	89 01                	mov    %eax,(%ecx)
54e9b7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
54e9ba:	85 c9                	test   %ecx,%ecx
54e9bc:	74 0e                	je     0x54e9cc