41bb81:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
41bb84:	75 24                	jne    0x41bbaa
41bb86:	8b da                	mov    %edx,%ebx
41bb88:	eb 11                	jmp    0x41bb9b
41bb8a:	8b 4b 04             	mov    0x4(%ebx),%ecx
41bb8d:	8b 3b                	mov    (%ebx),%edi
41bb8f:	23 4d f8             	and    -0x8(%ebp),%ecx
41bb92:	23 fe                	and    %esi,%edi
41bb94:	0b cf                	or     %edi,%ecx
41bb96:	75 0a                	jne    0x41bba2
41bb98:	83 c3 14             	add    $0x14,%ebx
41bb9b:	3b d8                	cmp    %eax,%ebx
41bb9d:	89 5d 08             	mov    %ebx,0x8(%ebp)
41bba0:	72 e8                	jb     0x41bb8a
41bba2:	3b d8                	cmp    %eax,%ebx
41bba4:	0f 84 94 00 00 00    	je     0x41bc3e
41bbaa:	89 1d 3c e1 4a 00    	mov    %ebx,0x4ae13c
41bbb0:	8b 43 10             	mov    0x10(%ebx),%eax
41bbb3:	8b 10                	mov    (%eax),%edx
41bbb5:	83 fa ff             	cmp    $0xffffffff,%edx
41bbb8:	89 55 fc             	mov    %edx,-0x4(%ebp)
41bbbb:	74 14                	je     0x41bbd1
41bbbd:	8b 8c 90 c4 00 00 00 	mov    0xc4(%eax,%edx,4),%ecx
41bbc4:	8b 7c 90 44          	mov    0x44(%eax,%edx,4),%edi
41bbc8:	23 4d f8             	and    -0x8(%ebp),%ecx
41bbcb:	23 fe                	and    %esi,%edi
41bbcd:	0b cf                	or     %edi,%ecx
41bbcf:	75 36                	jne    0x41bc07
41bbd1:	8b 90 c4 00 00 00    	mov    0xc4(%eax),%edx
41bbd7:	23 55 f8             	and    -0x8(%ebp),%edx
41bbda:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41bbde:	8d 48 44             	lea    0x44(%eax),%ecx
41bbe1:	8b 31                	mov    (%ecx),%esi
41bbe3:	23 75 f4             	and    -0xc(%ebp),%esi
41bbe6:	0b d6                	or     %esi,%edx
41bbe8:	8b 75 f4             	mov    -0xc(%ebp),%esi
41bbeb:	75 17                	jne    0x41bc04
41bbed:	8b 91 84 00 00 00    	mov    0x84(%ecx),%edx
41bbf3:	23 55 f8             	and    -0x8(%ebp),%edx
41bbf6:	ff 45 fc             	incl   -0x4(%ebp)
41bbf9:	83 c1 04             	add    $0x4,%ecx
41bbfc:	8b 39                	mov    (%ecx),%edi
41bbfe:	23 fe                	and    %esi,%edi
41bc00:	0b d7                	or     %edi,%edx
41bc02:	74 e9                	je     0x41bbed
41bc04:	8b 55 fc             	mov    -0x4(%ebp),%edx
41bc07:	8b ca                	mov    %edx,%ecx
41bc09:	69 c9 04 02 00 00    	imul   $0x204,%ecx,%ecx
41bc0f:	8d 8c 01 44 01 00 00 	lea    0x144(%ecx,%eax,1),%ecx
41bc16:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41bc19:	8b 4c 90 44          	mov    0x44(%eax,%edx,4),%ecx
41bc1d:	33 ff                	xor    %edi,%edi
41bc1f:	23 ce                	and    %esi,%ecx
41bc21:	75 6d                	jne    0x41bc90
41bc23:	8b 8c 90 c4 00 00 00 	mov    0xc4(%eax,%edx,4),%ecx
41bc2a:	23 4d f8             	and    -0x8(%ebp),%ecx
41bc2d:	6a 20                	push   $0x20
41bc2f:	5f                   	pop    %edi
41bc30:	eb 5e                	jmp    0x41bc90
41bc32:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
41bc36:	75 0b                	jne    0x41bc43
41bc38:	83 c3 14             	add    $0x14,%ebx
41bc3b:	89 5d 08             	mov    %ebx,0x8(%ebp)
41bc3e:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
41bc41:	72 ef                	jb     0x41bc32
41bc43:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
41bc46:	75 26                	jne    0x41bc6e
41bc48:	8b da                	mov    %edx,%ebx
41bc4a:	eb 09                	jmp    0x41bc55
41bc4c:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
41bc50:	75 0a                	jne    0x41bc5c
41bc52:	83 c3 14             	add    $0x14,%ebx
41bc55:	3b d8                	cmp    %eax,%ebx
41bc57:	89 5d 08             	mov    %ebx,0x8(%ebp)
41bc5a:	72 f0                	jb     0x41bc4c
41bc5c:	3b d8                	cmp    %eax,%ebx
41bc5e:	75 0e                	jne    0x41bc6e
41bc60:	e8 ca f5 ff ff       	call   0x41b22f
41bc65:	8b d8                	mov    %eax,%ebx
41bc67:	85 db                	test   %ebx,%ebx
41bc69:	89 5d 08             	mov    %ebx,0x8(%ebp)
41bc6c:	74 18                	je     0x41bc86
41bc6e:	53                   	push   %ebx
41bc6f:	e8 72 f6 ff ff       	call   0x41b2e6
41bc74:	59                   	pop    %ecx
41bc75:	8b 4b 10             	mov    0x10(%ebx),%ecx
41bc78:	89 01                	mov    %eax,(%ecx)
41bc7a:	8b 43 10             	mov    0x10(%ebx),%eax
41bc7d:	83 38 ff             	cmpl   $0xffffffff,(%eax)
41bc80:	0f 85 24 ff ff ff    	jne    0x41bbaa
41bc86:	33 c0                	xor    %eax,%eax
41bc88:	e9 7a 01 00 00       	jmp    0x41be07
41bc8d:	d1 e1                	shl    $1,%ecx
41bc8f:	47                   	inc    %edi
41bc90:	85 c9                	test   %ecx,%ecx
41bc92:	7d f9                	jge    0x41bc8d
41bc94:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41bc97:	8b 54 f9 04          	mov    0x4(%ecx,%edi,8),%edx
41bc9b:	8b 0a                	mov    (%edx),%ecx
41bc9d:	2b 4d f0             	sub    -0x10(%ebp),%ecx
41bca0:	8b f1                	mov    %ecx,%esi
41bca2:	c1 fe 04             	sar    $0x4,%esi
41bca5:	4e                   	dec    %esi
41bca6:	83 fe 3f             	cmp    $0x3f,%esi
41bca9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41bcac:	7e 03                	jle    0x41bcb1
41bcae:	6a 3f                	push   $0x3f
41bcb0:	5e                   	pop    %esi
41bcb1:	3b f7                	cmp    %edi,%esi
41bcb3:	0f 84 01 01 00 00    	je     0x41bdba
41bcb9:	8b 4a 04             	mov    0x4(%edx),%ecx
41bcbc:	3b 4a 08             	cmp    0x8(%edx),%ecx
41bcbf:	75 5c                	jne    0x41bd1d
41bcc1:	83 ff 20             	cmp    $0x20,%edi
41bcc4:	bb 00 00 00 80       	mov    $0x80000000,%ebx
41bcc9:	7d 26                	jge    0x41bcf1
41bccb:	8b cf                	mov    %edi,%ecx
41bccd:	d3 eb                	shr    %cl,%ebx
41bccf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41bcd2:	8d 7c 38 04          	lea    0x4(%eax,%edi,1),%edi
41bcd6:	f7 d3                	not    %ebx
41bcd8:	89 5d ec             	mov    %ebx,-0x14(%ebp)
41bcdb:	23 5c 88 44          	and    0x44(%eax,%ecx,4),%ebx
41bcdf:	89 5c 88 44          	mov    %ebx,0x44(%eax,%ecx,4)
41bce3:	fe 0f                	decb   (%edi)
41bce5:	75 33                	jne    0x41bd1a
41bce7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41bcea:	8b 5d 08             	mov    0x8(%ebp),%ebx
41bced:	21 0b                	and    %ecx,(%ebx)
41bcef:	eb 2c                	jmp    0x41bd1d
41bcf1:	8d 4f e0             	lea    -0x20(%edi),%ecx
41bcf4:	d3 eb                	shr    %cl,%ebx
41bcf6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41bcf9:	8d 8c 88 c4 00 00 00 	lea    0xc4(%eax,%ecx,4),%ecx
41bd00:	8d 7c 38 04          	lea    0x4(%eax,%edi,1),%edi
41bd04:	f7 d3                	not    %ebx
41bd06:	21 19                	and    %ebx,(%ecx)
41bd08:	fe 0f                	decb   (%edi)
41bd0a:	89 5d ec             	mov    %ebx,-0x14(%ebp)
41bd0d:	75 0b                	jne    0x41bd1a
41bd0f:	8b 5d 08             	mov    0x8(%ebp),%ebx
41bd12:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41bd15:	21 4b 04             	and    %ecx,0x4(%ebx)
41bd18:	eb 03                	jmp    0x41bd1d
41bd1a:	8b 5d 08             	mov    0x8(%ebp),%ebx
41bd1d:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
41bd21:	8b 4a 08             	mov    0x8(%edx),%ecx
41bd24:	8b 7a 04             	mov    0x4(%edx),%edi
41bd27:	89 79 04             	mov    %edi,0x4(%ecx)
41bd2a:	8b 4a 04             	mov    0x4(%edx),%ecx
41bd2d:	8b 7a 08             	mov    0x8(%edx),%edi
41bd30:	89 79 08             	mov    %edi,0x8(%ecx)
41bd33:	0f 84 8d 00 00 00    	je     0x41bdc6
41bd39:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41bd3c:	8d 0c f1             	lea    (%ecx,%esi,8),%ecx
41bd3f:	8b 79 04             	mov    0x4(%ecx),%edi
41bd42:	89 4a 08             	mov    %ecx,0x8(%edx)
41bd45:	89 7a 04             	mov    %edi,0x4(%edx)
41bd48:	89 51 04             	mov    %edx,0x4(%ecx)
41bd4b:	8b 4a 04             	mov    0x4(%edx),%ecx
41bd4e:	89 51 08             	mov    %edx,0x8(%ecx)
41bd51:	8b 4a 04             	mov    0x4(%edx),%ecx
41bd54:	3b 4a 08             	cmp    0x8(%edx),%ecx
41bd57:	75 5e                	jne    0x41bdb7
41bd59:	8a 4c 06 04          	mov    0x4(%esi,%eax,1),%cl
41bd5d:	88 4d 0b             	mov    %cl,0xb(%ebp)
41bd60:	fe c1                	inc    %cl
41bd62:	83 fe 20             	cmp    $0x20,%esi
41bd65:	88 4c 06 04          	mov    %cl,0x4(%esi,%eax,1)
41bd69:	7d 23                	jge    0x41bd8e
41bd6b:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
41bd6f:	75 0b                	jne    0x41bd7c
41bd71:	bf 00 00 00 80       	mov    $0x80000000,%edi
41bd76:	8b ce                	mov    %esi,%ecx
41bd78:	d3 ef                	shr    %cl,%edi
41bd7a:	09 3b                	or     %edi,(%ebx)
41bd7c:	8b ce                	mov    %esi,%ecx
41bd7e:	bf 00 00 00 80       	mov    $0x80000000,%edi
41bd83:	d3 ef                	shr    %cl,%edi
41bd85:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41bd88:	09 7c 88 44          	or     %edi,0x44(%eax,%ecx,4)
41bd8c:	eb 29                	jmp    0x41bdb7
41bd8e:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
41bd92:	75 0d                	jne    0x41bda1
41bd94:	8d 4e e0             	lea    -0x20(%esi),%ecx
41bd97:	bf 00 00 00 80       	mov    $0x80000000,%edi
41bd9c:	d3 ef                	shr    %cl,%edi
41bd9e:	09 7b 04             	or     %edi,0x4(%ebx)
41bda1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41bda4:	8d bc 88 c4 00 00 00 	lea    0xc4(%eax,%ecx,4),%edi
41bdab:	8d 4e e0             	lea    -0x20(%esi),%ecx
41bdae:	be 00 00 00 80       	mov    $0x80000000,%esi
41bdb3:	d3 ee                	shr    %cl,%esi
41bdb5:	09 37                	or     %esi,(%edi)
41bdb7:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41bdba:	85 c9                	test   %ecx,%ecx
41bdbc:	74 0b                	je     0x41bdc9
41bdbe:	89 0a                	mov    %ecx,(%edx)
41bdc0:	89 4c 11 fc          	mov    %ecx,-0x4(%ecx,%edx,1)
41bdc4:	eb 03                	jmp    0x41bdc9
41bdc6:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41bdc9:	8b 75 f0             	mov    -0x10(%ebp),%esi
41bdcc:	03 d1                	add    %ecx,%edx
41bdce:	8d 4e 01             	lea    0x1(%esi),%ecx
41bdd1:	89 0a                	mov    %ecx,(%edx)
41bdd3:	89 4c 32 fc          	mov    %ecx,-0x4(%edx,%esi,1)
41bdd7:	8b 75 f4             	mov    -0xc(%ebp),%esi
41bdda:	8b 0e                	mov    (%esi),%ecx
41bddc:	85 c9                	test   %ecx,%ecx
41bdde:	8d 79 01             	lea    0x1(%ecx),%edi
41bde1:	89 3e                	mov    %edi,(%esi)
41bde3:	75 1a                	jne    0x41bdff
41bde5:	3b 1d 2c e1 4a 00    	cmp    0x4ae12c,%ebx
41bdeb:	75 12                	jne    0x41bdff
41bded:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41bdf0:	3b 0d 44 e1 4a 00    	cmp    0x4ae144,%ecx
41bdf6:	75 07                	jne    0x41bdff
41bdf8:	83 25 2c e1 4a 00 00 	andl   $0x0,0x4ae12c
41bdff:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41be02:	89 08                	mov    %ecx,(%eax)
41be04:	8d 42 04             	lea    0x4(%edx),%eax
41be07:	5f                   	pop    %edi
41be08:	5e                   	pop    %esi
41be09:	5b                   	pop    %ebx
41be0a:	c9                   	leave
41be0b:	c3                   	ret
41be0c:	56                   	push   %esi
41be0d:	6a 04                	push   $0x4
41be0f:	e8 5a ef ff ff       	call   0x41ad6e
41be14:	8b 44 24 0c          	mov    0xc(%esp),%eax
41be18:	8b 35 a0 c8 4a 00    	mov    0x4ac8a0,%esi
41be1e:	6a 04                	push   $0x4
41be20:	a3 a0 c8 4a 00       	mov    %eax,0x4ac8a0
41be25:	e8 77 ee ff ff       	call   0x41aca1
41be2a:	59                   	pop    %ecx
41be2b:	59                   	pop    %ecx
41be2c:	8b c6                	mov    %esi,%eax
41be2e:	5e                   	pop    %esi
41be2f:	c3                   	ret
41be30:	a1 a0 c8 4a 00       	mov    0x4ac8a0,%eax
41be35:	c3                   	ret
41be36:	a1 a0 c8 4a 00       	mov    0x4ac8a0,%eax
41be3b:	85 c0                	test   %eax,%eax
41be3d:	74 0f                	je     0x41be4e
41be3f:	ff 74 24 04          	push   0x4(%esp)
41be43:	ff d0                	call   *%eax
41be45:	85 c0                	test   %eax,%eax
41be47:	59                   	pop    %ecx
41be48:	74 04                	je     0x41be4e
41be4a:	33 c0                	xor    %eax,%eax
41be4c:	40                   	inc    %eax
41be4d:	c3                   	ret
41be4e:	33 c0                	xor    %eax,%eax
41be50:	c3                   	ret
41be51:	55                   	push   %ebp
41be52:	8b ec                	mov    %esp,%ebp
41be54:	83 ec 20             	sub    $0x20,%esp
41be57:	53                   	push   %ebx
41be58:	56                   	push   %esi
41be59:	8b 75 08             	mov    0x8(%ebp),%esi
41be5c:	8b 5e 08             	mov    0x8(%esi),%ebx
41be5f:	f6 c3 03             	test   $0x3,%bl
41be62:	75 1b                	jne    0x41be7f
41be64:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
41be6a:	89 45 08             	mov    %eax,0x8(%ebp)
41be6d:	8b 45 08             	mov    0x8(%ebp),%eax
41be70:	8b 48 08             	mov    0x8(%eax),%ecx
41be73:	3b d9                	cmp    %ecx,%ebx
41be75:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41be78:	72 0c                	jb     0x41be86
41be7a:	3b 58 04             	cmp    0x4(%eax),%ebx
41be7d:	73 07                	jae    0x41be86
41be7f:	33 c0                	xor    %eax,%eax
41be81:	e9 f0 01 00 00       	jmp    0x41c076
41be86:	57                   	push   %edi
41be87:	8b 7e 0c             	mov    0xc(%esi),%edi
41be8a:	83 ff ff             	cmp    $0xffffffff,%edi
41be8d:	75 08                	jne    0x41be97
41be8f:	33 c0                	xor    %eax,%eax
41be91:	40                   	inc    %eax
41be92:	e9 de 01 00 00       	jmp    0x41c075
41be97:	33 d2                	xor    %edx,%edx
41be99:	89 55 08             	mov    %edx,0x8(%ebp)
41be9c:	8b c3                	mov    %ebx,%eax
41be9e:	8b 08                	mov    (%eax),%ecx
41bea0:	83 f9 ff             	cmp    $0xffffffff,%ecx
41bea3:	74 08                	je     0x41bead
41bea5:	3b ca                	cmp    %edx,%ecx
41bea7:	0f 83 45 01 00 00    	jae    0x41bff2
41bead:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
41beb1:	74 03                	je     0x41beb6
41beb3:	ff 45 08             	incl   0x8(%ebp)
41beb6:	42                   	inc    %edx
41beb7:	83 c0 0c             	add    $0xc,%eax
41beba:	3b d7                	cmp    %edi,%edx
41bebc:	76 e0                	jbe    0x41be9e
41bebe:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
41bec2:	74 14                	je     0x41bed8
41bec4:	8b 46 f8             	mov    -0x8(%esi),%eax
41bec7:	3b 45 fc             	cmp    -0x4(%ebp),%eax
41beca:	0f 82 22 01 00 00    	jb     0x41bff2
41bed0:	3b c6                	cmp    %esi,%eax
41bed2:	0f 83 1a 01 00 00    	jae    0x41bff2
41bed8:	a1 a8 c8 4a 00       	mov    0x4ac8a8,%eax
41bedd:	8b fb                	mov    %ebx,%edi
41bedf:	81 e7 00 f0 ff ff    	and    $0xfffff000,%edi
41bee5:	33 f6                	xor    %esi,%esi
41bee7:	85 c0                	test   %eax,%eax
41bee9:	7e 12                	jle    0x41befd
41beeb:	39 3c b5 b0 c8 4a 00 	cmp    %edi,0x4ac8b0(,%esi,4)
41bef2:	0f 84 fe 00 00 00    	je     0x41bff6
41bef8:	46                   	inc    %esi
41bef9:	3b f0                	cmp    %eax,%esi
41befb:	7c ee                	jl     0x41beeb
41befd:	6a 1c                	push   $0x1c
41beff:	8d 45 e0             	lea    -0x20(%ebp),%eax
41bf02:	50                   	push   %eax
41bf03:	53                   	push   %ebx
41bf04:	ff 15 2c 01 4b 00    	call   *0x4b012c
41bf0a:	85 c0                	test   %eax,%eax
41bf0c:	0f 84 60 01 00 00    	je     0x41c072
41bf12:	81 7d f8 00 00 00 01 	cmpl   $0x1000000,-0x8(%ebp)
41bf19:	0f 85 53 01 00 00    	jne    0x41c072
41bf1f:	f6 45 f4 cc          	testb  $0xcc,-0xc(%ebp)
41bf23:	74 56                	je     0x41bf7b
41bf25:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
41bf28:	66 81 39 4d 5a       	cmpw   $0x5a4d,(%ecx)
41bf2d:	0f 85 3f 01 00 00    	jne    0x41c072
41bf33:	8b 41 3c             	mov    0x3c(%ecx),%eax
41bf36:	03 c1                	add    %ecx,%eax
41bf38:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
41bf3e:	0f 85 2e 01 00 00    	jne    0x41c072
41bf44:	66 81 78 18 0b 01    	cmpw   $0x10b,0x18(%eax)
41bf4a:	0f 85 22 01 00 00    	jne    0x41c072
41bf50:	2b d9                	sub    %ecx,%ebx
41bf52:	66 83 78 06 00       	cmpw   $0x0,0x6(%eax)
41bf57:	0f b7 48 14          	movzwl 0x14(%eax),%ecx
41bf5b:	8d 4c 01 18          	lea    0x18(%ecx,%eax,1),%ecx
41bf5f:	0f 86 0d 01 00 00    	jbe    0x41c072
41bf65:	8b 41 0c             	mov    0xc(%ecx),%eax
41bf68:	3b d8                	cmp    %eax,%ebx
41bf6a:	72 0f                	jb     0x41bf7b
41bf6c:	8b 51 08             	mov    0x8(%ecx),%edx
41bf6f:	03 d0                	add    %eax,%edx
41bf71:	3b da                	cmp    %edx,%ebx
41bf73:	73 06                	jae    0x41bf7b
41bf75:	f6 41 27 80          	testb  $0x80,0x27(%ecx)
41bf79:	75 77                	jne    0x41bff2
41bf7b:	6a 01                	push   $0x1
41bf7d:	68 f0 c8 4a 00       	push   $0x4ac8f0