54f765:	e8 b6 fc ff ff       	call   0x54f420
54f76a:	8b 7d d0             	mov    -0x30(%ebp),%edi
54f76d:	83 c4 0c             	add    $0xc,%esp
54f770:	3b 7d d4             	cmp    -0x2c(%ebp),%edi
54f773:	72 5b                	jb     0x54f7d0
54f775:	ff 75 a4             	push   -0x5c(%ebp)
54f778:	8d 47 ff             	lea    -0x1(%edi),%eax
54f77b:	ff 75 b0             	push   -0x50(%ebp)
54f77e:	6a 00                	push   $0x0
54f780:	50                   	push   %eax
54f781:	e8 7a 23 09 00       	call   0x5e1b00
54f786:	83 c0 38             	add    $0x38,%eax
54f789:	89 45 b4             	mov    %eax,-0x4c(%ebp)
54f78c:	8b 46 68             	mov    0x68(%esi),%eax
54f78f:	83 d2 00             	adc    $0x0,%edx
54f792:	85 c0                	test   %eax,%eax
54f794:	74 04                	je     0x54f79a
54f796:	3b f8                	cmp    %eax,%edi
54f798:	73 03                	jae    0x54f79d
54f79a:	89 7e 68             	mov    %edi,0x68(%esi)
54f79d:	8b 46 08             	mov    0x8(%esi),%eax
54f7a0:	52                   	push   %edx
54f7a1:	ff 75 b4             	push   -0x4c(%ebp)
54f7a4:	ff 75 0c             	push   0xc(%ebp)
54f7a7:	8b 08                	mov    (%eax),%ecx
54f7a9:	ff 73 04             	push   0x4(%ebx)
54f7ac:	50                   	push   %eax
54f7ad:	8b 41 0c             	mov    0xc(%ecx),%eax
54f7b0:	ff d0                	call   *%eax
54f7b2:	8b f8                	mov    %eax,%edi
54f7b4:	83 c4 14             	add    $0x14,%esp
54f7b7:	85 ff                	test   %edi,%edi
54f7b9:	0f 85 b9 03 00 00    	jne    0x54fb78
54f7bf:	b9 bf ff 00 00       	mov    $0xffbf,%ecx
54f7c4:	66 21 4b 1c          	and    %cx,0x1c(%ebx)
54f7c8:	8b 5b 10             	mov    0x10(%ebx),%ebx
54f7cb:	e9 64 ff ff ff       	jmp    0x54f734
54f7d0:	8b 45 18             	mov    0x18(%ebp),%eax
54f7d3:	ff 45 c8             	incl   -0x38(%ebp)
54f7d6:	85 c0                	test   %eax,%eax
54f7d8:	74 0b                	je     0x54f7e5
54f7da:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
54f7de:	75 05                	jne    0x54f7e5
54f7e0:	8b 4d 14             	mov    0x14(%ebp),%ecx
54f7e3:	eb 02                	jmp    0x54f7e7
54f7e5:	33 c9                	xor    %ecx,%ecx
54f7e7:	8b 43 04             	mov    0x4(%ebx),%eax
54f7ea:	8d 7e 4c             	lea    0x4c(%esi),%edi
54f7ed:	89 45 d0             	mov    %eax,-0x30(%ebp)
54f7f0:	8b 43 18             	mov    0x18(%ebx),%eax
54f7f3:	0f c8                	bswap  %eax
54f7f5:	0f c9                	bswap  %ecx
54f7f7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
54f7fa:	89 4d e8             	mov    %ecx,-0x18(%ebp)
54f7fd:	83 7e 68 00          	cmpl   $0x0,0x68(%esi)
54f801:	75 47                	jne    0x54f84a
54f803:	8b 46 54             	mov    0x54(%esi),%eax
54f806:	33 db                	xor    %ebx,%ebx
54f808:	89 45 ec             	mov    %eax,-0x14(%ebp)
54f80b:	8b 46 58             	mov    0x58(%esi),%eax
54f80e:	57                   	push   %edi
54f80f:	89 45 f0             	mov    %eax,-0x10(%ebp)
54f812:	8d 45 e4             	lea    -0x1c(%ebp),%eax
54f815:	38 5e 41             	cmp    %bl,0x41(%esi)
54f818:	57                   	push   %edi
54f819:	6a 08                	push   $0x8
54f81b:	0f 94 c3             	sete   %bl
54f81e:	50                   	push   %eax
54f81f:	53                   	push   %ebx
54f820:	e8 cb ec 00 00       	call   0x55e4f0
54f825:	57                   	push   %edi
54f826:	57                   	push   %edi
54f827:	ff 76 24             	push   0x24(%esi)
54f82a:	ff 75 d0             	push   -0x30(%ebp)
54f82d:	53                   	push   %ebx
54f82e:	e8 bd ec 00 00       	call   0x55e4f0
54f833:	8b 07                	mov    (%edi),%eax
54f835:	83 c4 28             	add    $0x28,%esp
54f838:	8b 5d c0             	mov    -0x40(%ebp),%ebx
54f83b:	0f c8                	bswap  %eax
54f83d:	89 45 f4             	mov    %eax,-0xc(%ebp)
54f840:	8b 47 04             	mov    0x4(%edi),%eax
54f843:	0f c8                	bswap  %eax
54f845:	89 45 f8             	mov    %eax,-0x8(%ebp)
54f848:	eb 07                	jmp    0x54f851
54f84a:	0f 57 c0             	xorps  %xmm0,%xmm0
54f84d:	0f 11 45 ec          	movups %xmm0,-0x14(%ebp)
54f851:	ff 75 d8             	push   -0x28(%ebp)
54f854:	8d 45 e4             	lea    -0x1c(%ebp),%eax
54f857:	ff 75 cc             	push   -0x34(%ebp)
54f85a:	6a 18                	push   $0x18
54f85c:	50                   	push   %eax
54f85d:	8d 45 88             	lea    -0x78(%ebp),%eax
54f860:	50                   	push   %eax
54f861:	e8 8a 06 01 00       	call   0x55fef0
54f866:	8b f8                	mov    %eax,%edi
54f868:	83 c4 14             	add    $0x14,%esp
54f86b:	85 ff                	test   %edi,%edi
54f86d:	0f 85 05 03 00 00    	jne    0x54fb78
54f873:	8b 4d cc             	mov    -0x34(%ebp),%ecx
54f876:	8b 45 d8             	mov    -0x28(%ebp),%eax
54f879:	83 c1 18             	add    $0x18,%ecx
54f87c:	13 c7                	adc    %edi,%eax
54f87e:	50                   	push   %eax
54f87f:	51                   	push   %ecx
54f880:	ff 75 0c             	push   0xc(%ebp)
54f883:	8d 45 88             	lea    -0x78(%ebp),%eax
54f886:	ff 75 d0             	push   -0x30(%ebp)
54f889:	50                   	push   %eax
54f88a:	e8 61 06 01 00       	call   0x55fef0
54f88f:	8b f8                	mov    %eax,%edi
54f891:	83 c4 14             	add    $0x14,%esp
54f894:	85 ff                	test   %edi,%edi
54f896:	0f 85 dc 02 00 00    	jne    0x54fb78
54f89c:	8b 45 ac             	mov    -0x54(%ebp),%eax
54f89f:	99                   	cltd
54f8a0:	01 45 cc             	add    %eax,-0x34(%ebp)
54f8a3:	89 5d b8             	mov    %ebx,-0x48(%ebp)
54f8a6:	11 55 d8             	adc    %edx,-0x28(%ebp)
54f8a9:	66 83 4b 1c 40       	orw    $0x40,0x1c(%ebx)
54f8ae:	8b 5b 10             	mov    0x10(%ebx),%ebx
54f8b1:	e9 7e fe ff ff       	jmp    0x54f734
54f8b6:	85 c0                	test   %eax,%eax
54f8b8:	0f 84 18 02 00 00    	je     0x54fad6
54f8be:	83 7e 68 00          	cmpl   $0x0,0x68(%esi)
54f8c2:	74 16                	je     0x54f8da
54f8c4:	ff 75 c8             	push   -0x38(%ebp)
54f8c7:	56                   	push   %esi
54f8c8:	e8 43 01 01 00       	call   0x55fa10
54f8cd:	8b f8                	mov    %eax,%edi
54f8cf:	83 c4 08             	add    $0x8,%esp
54f8d2:	85 ff                	test   %edi,%edi
54f8d4:	0f 85 9e 02 00 00    	jne    0x54fb78
54f8da:	83 65 1c 03          	andl   $0x3,0x1c(%ebp)
54f8de:	0f 84 a3 01 00 00    	je     0x54fa87
54f8e4:	80 7e 31 00          	cmpb   $0x0,0x31(%esi)
54f8e8:	0f 84 86 01 00 00    	je     0x54fa74
54f8ee:	8b 4e 08             	mov    0x8(%esi),%ecx
54f8f1:	8b 01                	mov    (%ecx),%eax
54f8f3:	8b 40 2c             	mov    0x2c(%eax),%eax
54f8f6:	85 c0                	test   %eax,%eax
54f8f8:	74 1e                	je     0x54f918
54f8fa:	51                   	push   %ecx
54f8fb:	ff d0                	call   *%eax
54f8fd:	83 c4 04             	add    $0x4,%esp
54f900:	83 f8 20             	cmp    $0x20,%eax
54f903:	7d 07                	jge    0x54f90c
54f905:	b8 00 02 00 00       	mov    $0x200,%eax
54f90a:	eb 11                	jmp    0x54f91d
54f90c:	b9 00 00 01 00       	mov    $0x10000,%ecx
54f911:	3b c1                	cmp    %ecx,%eax
54f913:	0f 4f c1             	cmovg  %ecx,%eax
54f916:	eb 05                	jmp    0x54f91d
54f918:	b8 00 10 00 00       	mov    $0x1000,%eax
54f91d:	8b 5d cc             	mov    -0x34(%ebp),%ebx
54f920:	99                   	cltd
54f921:	8b c8                	mov    %eax,%ecx
54f923:	03 cb                	add    %ebx,%ecx
54f925:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
54f928:	8b ca                	mov    %edx,%ecx
54f92a:	13 4d d8             	adc    -0x28(%ebp),%ecx
54f92d:	83 6d d4 01          	subl   $0x1,-0x2c(%ebp)
54f931:	52                   	push   %edx
54f932:	83 d9 00             	sbb    $0x0,%ecx
54f935:	50                   	push   %eax
54f936:	51                   	push   %ecx
54f937:	ff 75 d4             	push   -0x2c(%ebp)
54f93a:	89 4d d0             	mov    %ecx,-0x30(%ebp)
54f93d:	e8 8e 28 09 00       	call   0x5e21d0
54f942:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
54f945:	2b c8                	sub    %eax,%ecx
54f947:	8b 45 d0             	mov    -0x30(%ebp),%eax
54f94a:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
54f94d:	1b c2                	sbb    %edx,%eax
54f94f:	89 4d 90             	mov    %ecx,-0x70(%ebp)
54f952:	3b cb                	cmp    %ebx,%ecx
54f954:	89 45 d0             	mov    %eax,-0x30(%ebp)
54f957:	8b 4d d8             	mov    -0x28(%ebp),%ecx
54f95a:	89 45 94             	mov    %eax,-0x6c(%ebp)
54f95d:	75 0b                	jne    0x54f96a
54f95f:	c7 45 b4 01 00 00 00 	movl   $0x1,-0x4c(%ebp)
54f966:	3b c1                	cmp    %ecx,%eax
54f968:	74 07                	je     0x54f971
54f96a:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
54f971:	3b c8                	cmp    %eax,%ecx
54f973:	0f 8f f5 00 00 00    	jg     0x54fa6e
54f979:	7c 09                	jl     0x54f984
54f97b:	3b 5d d4             	cmp    -0x2c(%ebp),%ebx
54f97e:	0f 83 ea 00 00 00    	jae    0x54fa6e
54f984:	8b 55 14             	mov    0x14(%ebp),%edx
54f987:	0f ca                	bswap  %edx
54f989:	89 55 a8             	mov    %edx,-0x58(%ebp)
54f98c:	8b 45 b8             	mov    -0x48(%ebp),%eax
54f98f:	8d 7e 4c             	lea    0x4c(%esi),%edi
54f992:	89 55 e8             	mov    %edx,-0x18(%ebp)
54f995:	8b 40 04             	mov    0x4(%eax),%eax
54f998:	89 45 c0             	mov    %eax,-0x40(%ebp)
54f99b:	8b 45 b8             	mov    -0x48(%ebp),%eax
54f99e:	8b 40 18             	mov    0x18(%eax),%eax
54f9a1:	0f c8                	bswap  %eax
54f9a3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
54f9a6:	83 7e 68 00          	cmpl   $0x0,0x68(%esi)
54f9aa:	75 4a                	jne    0x54f9f6
54f9ac:	8b 46 54             	mov    0x54(%esi),%eax
54f9af:	33 db                	xor    %ebx,%ebx
54f9b1:	89 45 ec             	mov    %eax,-0x14(%ebp)
54f9b4:	8b 46 58             	mov    0x58(%esi),%eax
54f9b7:	57                   	push   %edi
54f9b8:	89 45 f0             	mov    %eax,-0x10(%ebp)
54f9bb:	8d 45 e4             	lea    -0x1c(%ebp),%eax
54f9be:	38 5e 41             	cmp    %bl,0x41(%esi)
54f9c1:	57                   	push   %edi
54f9c2:	6a 08                	push   $0x8
54f9c4:	0f 94 c3             	sete   %bl
54f9c7:	50                   	push   %eax
54f9c8:	53                   	push   %ebx
54f9c9:	e8 22 eb 00 00       	call   0x55e4f0
54f9ce:	57                   	push   %edi
54f9cf:	57                   	push   %edi
54f9d0:	ff 76 24             	push   0x24(%esi)
54f9d3:	ff 75 c0             	push   -0x40(%ebp)
54f9d6:	53                   	push   %ebx
54f9d7:	e8 14 eb 00 00       	call   0x55e4f0
54f9dc:	8b 07                	mov    (%edi),%eax
54f9de:	83 c4 28             	add    $0x28,%esp
54f9e1:	8b 5d cc             	mov    -0x34(%ebp),%ebx
54f9e4:	8b 4d d8             	mov    -0x28(%ebp),%ecx
54f9e7:	0f c8                	bswap  %eax
54f9e9:	89 45 f4             	mov    %eax,-0xc(%ebp)
54f9ec:	8b 47 04             	mov    0x4(%edi),%eax
54f9ef:	0f c8                	bswap  %eax
54f9f1:	89 45 f8             	mov    %eax,-0x8(%ebp)
54f9f4:	eb 07                	jmp    0x54f9fd
54f9f6:	0f 57 c0             	xorps  %xmm0,%xmm0
54f9f9:	0f 11 45 ec          	movups %xmm0,-0x14(%ebp)
54f9fd:	51                   	push   %ecx
54f9fe:	53                   	push   %ebx
54f9ff:	6a 18                	push   $0x18
54fa01:	8d 45 e4             	lea    -0x1c(%ebp),%eax
54fa04:	50                   	push   %eax
54fa05:	8d 45 88             	lea    -0x78(%ebp),%eax
54fa08:	50                   	push   %eax
54fa09:	e8 e2 04 01 00       	call   0x55fef0
54fa0e:	8b f8                	mov    %eax,%edi
54fa10:	83 c4 14             	add    $0x14,%esp
54fa13:	85 ff                	test   %edi,%edi
54fa15:	0f 85 5d 01 00 00    	jne    0x54fb78
54fa1b:	8b 45 d8             	mov    -0x28(%ebp),%eax
54fa1e:	8b cb                	mov    %ebx,%ecx
54fa20:	83 c1 18             	add    $0x18,%ecx
54fa23:	13 c7                	adc    %edi,%eax
54fa25:	50                   	push   %eax
54fa26:	51                   	push   %ecx
54fa27:	ff 75 0c             	push   0xc(%ebp)
54fa2a:	8d 45 88             	lea    -0x78(%ebp),%eax
54fa2d:	ff 75 c0             	push   -0x40(%ebp)
54fa30:	50                   	push   %eax
54fa31:	e8 ba 04 01 00       	call   0x55fef0
54fa36:	8b f8                	mov    %eax,%edi
54fa38:	83 c4 14             	add    $0x14,%esp
54fa3b:	85 ff                	test   %edi,%edi
54fa3d:	0f 85 35 01 00 00    	jne    0x54fb78
54fa43:	8b 45 ac             	mov    -0x54(%ebp),%eax
54fa46:	8b 4d d8             	mov    -0x28(%ebp),%ecx
54fa49:	99                   	cltd
54fa4a:	03 d8                	add    %eax,%ebx
54fa4c:	89 5d cc             	mov    %ebx,-0x34(%ebp)
54fa4f:	13 ca                	adc    %edx,%ecx
54fa51:	ff 45 c4             	incl   -0x3c(%ebp)
54fa54:	8b 55 a8             	mov    -0x58(%ebp),%edx
54fa57:	89 4d d8             	mov    %ecx,-0x28(%ebp)
54fa5a:	3b 4d d0             	cmp    -0x30(%ebp),%ecx
54fa5d:	0f 8c 29 ff ff ff    	jl     0x54f98c
54fa63:	7f 09                	jg     0x54fa6e
54fa65:	3b 5d d4             	cmp    -0x2c(%ebp),%ebx
54fa68:	0f 82 1e ff ff ff    	jb     0x54f98c
54fa6e:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
54fa72:	74 13                	je     0x54fa87
54fa74:	8b 4d a0             	mov    -0x60(%ebp),%ecx
54fa77:	ff 75 1c             	push   0x1c(%ebp)
54fa7a:	51                   	push   %ecx
54fa7b:	8b 01                	mov    (%ecx),%eax
54fa7d:	8b 40 14             	mov    0x14(%eax),%eax
54fa80:	ff d0                	call   *%eax
54fa82:	83 c4 08             	add    $0x8,%esp
54fa85:	8b f8                	mov    %eax,%edi
54fa87:	80 7e 2f 00          	cmpb   $0x0,0x2f(%esi)
54fa8b:	74 49                	je     0x54fad6
54fa8d:	83 7e 14 00          	cmpl   $0x0,0x14(%esi)
54fa91:	8b 5e 10             	mov    0x10(%esi),%ebx
54fa94:	7c 40                	jl     0x54fad6
54fa96:	7f 04                	jg     0x54fa9c
54fa98:	85 db                	test   %ebx,%ebx
54fa9a:	72 3a                	jb     0x54fad6
54fa9c:	ff 75 a4             	push   -0x5c(%ebp)
54fa9f:	8b 45 c4             	mov    -0x3c(%ebp),%eax
54faa2:	ff 75 b0             	push   -0x50(%ebp)
54faa5:	03 45 c8             	add    -0x38(%ebp),%eax
54faa8:	6a 00                	push   $0x0
54faaa:	50                   	push   %eax
54faab:	e8 50 20 09 00       	call   0x5e1b00
54fab0:	8b 4e 14             	mov    0x14(%esi),%ecx
54fab3:	83 c0 20             	add    $0x20,%eax
54fab6:	83 d2 00             	adc    $0x0,%edx
54fab9:	3b d1                	cmp    %ecx,%edx
54fabb:	7c 0a                	jl     0x54fac7
54fabd:	7f 04                	jg     0x54fac3
54fabf:	3b c3                	cmp    %ebx,%eax
54fac1:	76 04                	jbe    0x54fac7
54fac3:	8b d8                	mov    %eax,%ebx
54fac5:	8b ca                	mov    %edx,%ecx
54fac7:	51                   	push   %ecx
54fac8:	53                   	push   %ebx
54fac9:	56                   	push   %esi
54faca:	e8 51 fa 00 00       	call   0x55f520
54facf:	83 c4 0c             	add    $0xc,%esp
54fad2:	c6 46 2f 00          	movb   $0x0,0x2f(%esi)
54fad6:	8b 45 bc             	mov    -0x44(%ebp),%eax
54fad9:	8b 5e 44             	mov    0x44(%esi),%ebx
54fadc:	85 c0                	test   %eax,%eax
54fade:	74 2b                	je     0x54fb0b
54fae0:	85 ff                	test   %edi,%edi
54fae2:	0f 85 90 00 00 00    	jne    0x54fb78
54fae8:	f6 40 1c 40          	testb  $0x40,0x1c(%eax)
54faec:	74 13                	je     0x54fb01
54faee:	ff 70 18             	push   0x18(%eax)
54faf1:	43                   	inc    %ebx
54faf2:	53                   	push   %ebx
54faf3:	56                   	push   %esi
54faf4:	e8 b7 ec 00 00       	call   0x55e7b0
54faf9:	8b f8                	mov    %eax,%edi
54fafb:	83 c4 0c             	add    $0xc,%esp
54fafe:	8b 45 bc             	mov    -0x44(%ebp),%eax
54fb01:	8b 40 10             	mov    0x10(%eax),%eax
54fb04:	89 45 bc             	mov    %eax,-0x44(%ebp)
54fb07:	85 c0                	test   %eax,%eax
54fb09:	75 d5                	jne    0x54fae0
54fb0b:	85 ff                	test   %edi,%edi
54fb0d:	75 69                	jne    0x54fb78
54fb0f:	90                   	nop
54fb10:	8b 45 c4             	mov    -0x3c(%ebp),%eax
54fb13:	85 c0                	test   %eax,%eax
54fb15:	7e 2c                	jle    0x54fb43
54fb17:	48                   	dec    %eax
54fb18:	43                   	inc    %ebx
54fb19:	89 45 c4             	mov    %eax,-0x3c(%ebp)
54fb1c:	8b 45 b8             	mov    -0x48(%ebp),%eax
54fb1f:	ff 70 18             	push   0x18(%eax)
54fb22:	53                   	push   %ebx
54fb23:	56                   	push   %esi