49cc24:	8b 77 04             	mov    0x4(%edi),%esi
49cc27:	8b 45 08             	mov    0x8(%ebp),%eax
49cc2a:	89 06                	mov    %eax,(%esi)
49cc2c:	8b 50 04             	mov    0x4(%eax),%edx
49cc2f:	89 1a                	mov    %ebx,(%edx)
49cc31:	8b 4b 04             	mov    0x4(%ebx),%ecx
49cc34:	89 39                	mov    %edi,(%ecx)
49cc36:	89 53 04             	mov    %edx,0x4(%ebx)
49cc39:	89 70 04             	mov    %esi,0x4(%eax)
49cc3c:	89 4f 04             	mov    %ecx,0x4(%edi)
49cc3f:	eb cb                	jmp    0x49cc0c
49cc41:	68 3c 64 60 00       	push   $0x60643c
49cc46:	e8 8b 3f 13 00       	call   0x5d0bd6
49cc4b:	cc                   	int3
49cc4c:	cc                   	int3
49cc4d:	cc                   	int3
49cc4e:	cc                   	int3
49cc4f:	cc                   	int3
49cc50:	55                   	push   %ebp
49cc51:	8b ec                	mov    %esp,%ebp
49cc53:	83 ec 10             	sub    $0x10,%esp
49cc56:	8b 55 08             	mov    0x8(%ebp),%edx
49cc59:	b8 ff ff ff 1f       	mov    $0x1fffffff,%eax
49cc5e:	53                   	push   %ebx
49cc5f:	8b d9                	mov    %ecx,%ebx
49cc61:	0f bd c8             	bsr    %eax,%ecx
49cc64:	56                   	push   %esi
49cc65:	be 01 00 00 00       	mov    $0x1,%esi
49cc6a:	89 5d f4             	mov    %ebx,-0xc(%ebp)
49cc6d:	8b c6                	mov    %esi,%eax
49cc6f:	d3 e0                	shl    %cl,%eax
49cc71:	3b d0                	cmp    %eax,%edx
49cc73:	0f 87 52 01 00 00    	ja     0x49cdcb
49cc79:	8d 42 ff             	lea    -0x1(%edx),%eax
49cc7c:	0b c6                	or     %esi,%eax
49cc7e:	0f bd c8             	bsr    %eax,%ecx
49cc81:	8b 43 04             	mov    0x4(%ebx),%eax
49cc84:	50                   	push   %eax
49cc85:	89 45 08             	mov    %eax,0x8(%ebp)
49cc88:	8d 49 01             	lea    0x1(%ecx),%ecx
49cc8b:	d3 e6                	shl    %cl,%esi
49cc8d:	8d 4b 0c             	lea    0xc(%ebx),%ecx
49cc90:	8d 04 36             	lea    (%esi,%esi,1),%eax
49cc93:	50                   	push   %eax
49cc94:	e8 47 bc fb ff       	call   0x4588e0
49cc99:	8b 4d 08             	mov    0x8(%ebp),%ecx
49cc9c:	8d 46 ff             	lea    -0x1(%esi),%eax
49cc9f:	89 73 1c             	mov    %esi,0x1c(%ebx)
49cca2:	8b 73 04             	mov    0x4(%ebx),%esi
49cca5:	89 43 18             	mov    %eax,0x18(%ebx)
49cca8:	8b 36                	mov    (%esi),%esi
49ccaa:	8b c6                	mov    %esi,%eax
49ccac:	3b f1                	cmp    %ecx,%esi
49ccae:	0f 84 f0 00 00 00    	je     0x49cda4
49ccb4:	57                   	push   %edi
49ccb5:	8b 5e 08             	mov    0x8(%esi),%ebx
49ccb8:	33 d2                	xor    %edx,%edx
49ccba:	8b 7e 0c             	mov    0xc(%esi),%edi
49ccbd:	8b 00                	mov    (%eax),%eax
49ccbf:	03 fb                	add    %ebx,%edi
49ccc1:	89 45 fc             	mov    %eax,-0x4(%ebp)
49ccc4:	89 7d f8             	mov    %edi,-0x8(%ebp)
49ccc7:	3b df                	cmp    %edi,%ebx
49ccc9:	73 15                	jae    0x49cce0
49cccb:	8b cf                	mov    %edi,%ecx
49cccd:	0f 1f 00             	nopl   (%eax)
49ccd0:	0f be 3b             	movsbl (%ebx),%edi
49ccd3:	8d 14 92             	lea    (%edx,%edx,4),%edx
49ccd6:	43                   	inc    %ebx
49ccd7:	03 d7                	add    %edi,%edx
49ccd9:	3b d9                	cmp    %ecx,%ebx
49ccdb:	72 f3                	jb     0x49ccd0
49ccdd:	8b 4d 08             	mov    0x8(%ebp),%ecx
49cce0:	8b 5d f4             	mov    -0xc(%ebp),%ebx
49cce3:	8b 7b 18             	mov    0x18(%ebx),%edi
49cce6:	23 fa                	and    %edx,%edi
49cce8:	8b 53 0c             	mov    0xc(%ebx),%edx
49cceb:	8d 1c fa             	lea    (%edx,%edi,8),%ebx
49ccee:	89 5d f8             	mov    %ebx,-0x8(%ebp)
49ccf1:	39 0b                	cmp    %ecx,(%ebx)
49ccf3:	75 0a                	jne    0x49ccff
49ccf5:	89 33                	mov    %esi,(%ebx)
49ccf7:	89 73 04             	mov    %esi,0x4(%ebx)
49ccfa:	e9 9a 00 00 00       	jmp    0x49cd99
49ccff:	8b 7b 04             	mov    0x4(%ebx),%edi
49cd02:	ff 77 0c             	push   0xc(%edi)
49cd05:	ff 77 08             	push   0x8(%edi)
49cd08:	ff 76 0c             	push   0xc(%esi)
49cd0b:	ff 76 08             	push   0x8(%esi)
49cd0e:	e8 7d 15 fe ff       	call   0x47e290
49cd13:	83 c4 10             	add    $0x10,%esp
49cd16:	84 c0                	test   %al,%al
49cd18:	74 2f                	je     0x49cd49
49cd1a:	8b 0f                	mov    (%edi),%ecx
49cd1c:	8b 45 fc             	mov    -0x4(%ebp),%eax
49cd1f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
49cd22:	3b ce                	cmp    %esi,%ecx
49cd24:	74 1e                	je     0x49cd44
49cd26:	8b 7e 04             	mov    0x4(%esi),%edi
49cd29:	8b 5d f0             	mov    -0x10(%ebp),%ebx
49cd2c:	89 07                	mov    %eax,(%edi)
49cd2e:	8b 50 04             	mov    0x4(%eax),%edx
49cd31:	89 0a                	mov    %ecx,(%edx)
49cd33:	8b 49 04             	mov    0x4(%ecx),%ecx
49cd36:	89 31                	mov    %esi,(%ecx)
49cd38:	89 53 04             	mov    %edx,0x4(%ebx)
49cd3b:	8b 5d f8             	mov    -0x8(%ebp),%ebx
49cd3e:	89 78 04             	mov    %edi,0x4(%eax)
49cd41:	89 4e 04             	mov    %ecx,0x4(%esi)
49cd44:	89 73 04             	mov    %esi,0x4(%ebx)
49cd47:	eb 4d                	jmp    0x49cd96
49cd49:	8b 45 f8             	mov    -0x8(%ebp),%eax
49cd4c:	8b df                	mov    %edi,%ebx
49cd4e:	39 38                	cmp    %edi,(%eax)
49cd50:	74 24                	je     0x49cd76
49cd52:	8b 7f 04             	mov    0x4(%edi),%edi
49cd55:	8b df                	mov    %edi,%ebx
49cd57:	ff 73 0c             	push   0xc(%ebx)
49cd5a:	ff 73 08             	push   0x8(%ebx)
49cd5d:	ff 76 0c             	push   0xc(%esi)
49cd60:	ff 76 08             	push   0x8(%esi)
49cd63:	e8 28 15 fe ff       	call   0x47e290
49cd68:	83 c4 10             	add    $0x10,%esp
49cd6b:	84 c0                	test   %al,%al
49cd6d:	75 3d                	jne    0x49cdac
49cd6f:	8b 45 f8             	mov    -0x8(%ebp),%eax
49cd72:	39 38                	cmp    %edi,(%eax)
49cd74:	75 dc                	jne    0x49cd52
49cd76:	8b 7e 04             	mov    0x4(%esi),%edi
49cd79:	8b 45 fc             	mov    -0x4(%ebp),%eax
49cd7c:	89 07                	mov    %eax,(%edi)
49cd7e:	8b 50 04             	mov    0x4(%eax),%edx
49cd81:	89 1a                	mov    %ebx,(%edx)
49cd83:	8b 4b 04             	mov    0x4(%ebx),%ecx
49cd86:	89 31                	mov    %esi,(%ecx)
49cd88:	89 53 04             	mov    %edx,0x4(%ebx)
49cd8b:	89 78 04             	mov    %edi,0x4(%eax)
49cd8e:	89 4e 04             	mov    %ecx,0x4(%esi)
49cd91:	8b 4d f8             	mov    -0x8(%ebp),%ecx
49cd94:	89 31                	mov    %esi,(%ecx)
49cd96:	8b 4d 08             	mov    0x8(%ebp),%ecx
49cd99:	8b f0                	mov    %eax,%esi
49cd9b:	3b c1                	cmp    %ecx,%eax
49cd9d:	0f 85 12 ff ff ff    	jne    0x49ccb5
49cda3:	5f                   	pop    %edi
49cda4:	5e                   	pop    %esi
49cda5:	5b                   	pop    %ebx
49cda6:	8b e5                	mov    %ebp,%esp
49cda8:	5d                   	pop    %ebp
49cda9:	c2 04 00             	ret    $0x4
49cdac:	8b 1f                	mov    (%edi),%ebx
49cdae:	8b 7e 04             	mov    0x4(%esi),%edi
49cdb1:	8b 45 fc             	mov    -0x4(%ebp),%eax
49cdb4:	89 07                	mov    %eax,(%edi)
49cdb6:	8b 50 04             	mov    0x4(%eax),%edx
49cdb9:	89 1a                	mov    %ebx,(%edx)
49cdbb:	8b 4b 04             	mov    0x4(%ebx),%ecx
49cdbe:	89 31                	mov    %esi,(%ecx)
49cdc0:	89 53 04             	mov    %edx,0x4(%ebx)
49cdc3:	89 78 04             	mov    %edi,0x4(%eax)
49cdc6:	89 4e 04             	mov    %ecx,0x4(%esi)
49cdc9:	eb cb                	jmp    0x49cd96
49cdcb:	68 3c 64 60 00       	push   $0x60643c
49cdd0:	e8 01 3e 13 00       	call   0x5d0bd6
49cdd5:	cc                   	int3
49cdd6:	cc                   	int3
49cdd7:	cc                   	int3
49cdd8:	cc                   	int3
49cdd9:	cc                   	int3
49cdda:	cc                   	int3
49cddb:	cc                   	int3
49cddc:	cc                   	int3
49cddd:	cc                   	int3
49cdde:	cc                   	int3
49cddf:	cc                   	int3
49cde0:	55                   	push   %ebp
49cde1:	8b ec                	mov    %esp,%ebp
49cde3:	83 ec 0c             	sub    $0xc,%esp
49cde6:	8b 55 08             	mov    0x8(%ebp),%edx
49cde9:	b8 ff ff ff 1f       	mov    $0x1fffffff,%eax
49cdee:	53                   	push   %ebx
49cdef:	56                   	push   %esi
49cdf0:	57                   	push   %edi
49cdf1:	8b f9                	mov    %ecx,%edi
49cdf3:	be 01 00 00 00       	mov    $0x1,%esi
49cdf8:	0f bd c8             	bsr    %eax,%ecx
49cdfb:	8b c6                	mov    %esi,%eax
49cdfd:	89 7d fc             	mov    %edi,-0x4(%ebp)
49ce00:	d3 e0                	shl    %cl,%eax
49ce02:	3b d0                	cmp    %eax,%edx
49ce04:	0f 87 2b 01 00 00    	ja     0x49cf35
49ce0a:	8b 5f 04             	mov    0x4(%edi),%ebx
49ce0d:	8d 42 ff             	lea    -0x1(%edx),%eax
49ce10:	0b c6                	or     %esi,%eax
49ce12:	89 5d f8             	mov    %ebx,-0x8(%ebp)
49ce15:	0f bd c8             	bsr    %eax,%ecx
49ce18:	53                   	push   %ebx
49ce19:	8d 49 01             	lea    0x1(%ecx),%ecx
49ce1c:	d3 e6                	shl    %cl,%esi
49ce1e:	8d 4f 0c             	lea    0xc(%edi),%ecx
49ce21:	8d 04 36             	lea    (%esi,%esi,1),%eax
49ce24:	50                   	push   %eax
49ce25:	e8 b6 ba fb ff       	call   0x4588e0
49ce2a:	8b 57 04             	mov    0x4(%edi),%edx
49ce2d:	8d 46 ff             	lea    -0x1(%esi),%eax
49ce30:	89 47 18             	mov    %eax,0x18(%edi)
49ce33:	89 77 1c             	mov    %esi,0x1c(%edi)
49ce36:	8b 12                	mov    (%edx),%edx
49ce38:	3b d3                	cmp    %ebx,%edx
49ce3a:	0f 84 d0 00 00 00    	je     0x49cf10
49ce40:	8b ca                	mov    %edx,%ecx
49ce42:	0f b6 41 08          	movzbl 0x8(%ecx),%eax
49ce46:	35 c5 9d 1c 81       	xor    $0x811c9dc5,%eax
49ce4b:	8b 12                	mov    (%edx),%edx
49ce4d:	69 f0 93 01 00 01    	imul   $0x1000193,%eax,%esi
49ce53:	0f b6 41 09          	movzbl 0x9(%ecx),%eax
49ce57:	33 f0                	xor    %eax,%esi
49ce59:	0f b6 41 0a          	movzbl 0xa(%ecx),%eax
49ce5d:	69 f6 93 01 00 01    	imul   $0x1000193,%esi,%esi
49ce63:	33 f0                	xor    %eax,%esi
49ce65:	0f b6 41 0b          	movzbl 0xb(%ecx),%eax
49ce69:	69 f6 93 01 00 01    	imul   $0x1000193,%esi,%esi
49ce6f:	33 f0                	xor    %eax,%esi
49ce71:	69 c6 93 01 00 01    	imul   $0x1000193,%esi,%eax
49ce77:	8b 77 18             	mov    0x18(%edi),%esi
49ce7a:	23 f0                	and    %eax,%esi
49ce7c:	8b 47 0c             	mov    0xc(%edi),%eax
49ce7f:	8d 1c f0             	lea    (%eax,%esi,8),%ebx
49ce82:	8b 45 f8             	mov    -0x8(%ebp),%eax
49ce85:	89 5d 08             	mov    %ebx,0x8(%ebp)
49ce88:	39 03                	cmp    %eax,(%ebx)
49ce8a:	75 07                	jne    0x49ce93
49ce8c:	89 0b                	mov    %ecx,(%ebx)
49ce8e:	89 4b 04             	mov    %ecx,0x4(%ebx)
49ce91:	eb 6d                	jmp    0x49cf00
49ce93:	8b 43 04             	mov    0x4(%ebx),%eax
49ce96:	8b 79 08             	mov    0x8(%ecx),%edi
49ce99:	3b 78 08             	cmp    0x8(%eax),%edi
49ce9c:	75 2c                	jne    0x49ceca
49ce9e:	8b 00                	mov    (%eax),%eax
49cea0:	89 45 f4             	mov    %eax,-0xc(%ebp)
49cea3:	3b c1                	cmp    %ecx,%eax
49cea5:	74 1e                	je     0x49cec5
49cea7:	8b 79 04             	mov    0x4(%ecx),%edi
49ceaa:	8b 5d f4             	mov    -0xc(%ebp),%ebx
49cead:	89 17                	mov    %edx,(%edi)
49ceaf:	8b 72 04             	mov    0x4(%edx),%esi
49ceb2:	89 06                	mov    %eax,(%esi)
49ceb4:	8b 40 04             	mov    0x4(%eax),%eax
49ceb7:	89 08                	mov    %ecx,(%eax)
49ceb9:	89 73 04             	mov    %esi,0x4(%ebx)
49cebc:	8b 5d 08             	mov    0x8(%ebp),%ebx
49cebf:	89 7a 04             	mov    %edi,0x4(%edx)
49cec2:	89 41 04             	mov    %eax,0x4(%ecx)
49cec5:	89 4b 04             	mov    %ecx,0x4(%ebx)
49cec8:	eb 33                	jmp    0x49cefd
49ceca:	8b 1b                	mov    (%ebx),%ebx
49cecc:	8b f0                	mov    %eax,%esi
49cece:	3b d8                	cmp    %eax,%ebx
49ced0:	74 0e                	je     0x49cee0
49ced2:	8b 40 04             	mov    0x4(%eax),%eax
49ced5:	8b f0                	mov    %eax,%esi
49ced7:	3b 78 08             	cmp    0x8(%eax),%edi
49ceda:	74 3d                	je     0x49cf19
49cedc:	3b d8                	cmp    %eax,%ebx
49cede:	75 f2                	jne    0x49ced2
49cee0:	8b 59 04             	mov    0x4(%ecx),%ebx
49cee3:	89 13                	mov    %edx,(%ebx)
49cee5:	8b 7a 04             	mov    0x4(%edx),%edi
49cee8:	89 37                	mov    %esi,(%edi)
49ceea:	8b 46 04             	mov    0x4(%esi),%eax
49ceed:	89 08                	mov    %ecx,(%eax)
49ceef:	89 7e 04             	mov    %edi,0x4(%esi)
49cef2:	89 5a 04             	mov    %ebx,0x4(%edx)
49cef5:	89 41 04             	mov    %eax,0x4(%ecx)
49cef8:	8b 45 08             	mov    0x8(%ebp),%eax
49cefb:	89 08                	mov    %ecx,(%eax)
49cefd:	8b 7d fc             	mov    -0x4(%ebp),%edi
49cf00:	8b ca                	mov    %edx,%ecx
49cf02:	3b 55 f8             	cmp    -0x8(%ebp),%edx
49cf05:	0f 85 37 ff ff ff    	jne    0x49ce42
49cf0b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
49cf10:	5f                   	pop    %edi
49cf11:	5e                   	pop    %esi
49cf12:	5b                   	pop    %ebx
49cf13:	8b e5                	mov    %ebp,%esp
49cf15:	5d                   	pop    %ebp
49cf16:	c2 04 00             	ret    $0x4
49cf19:	8b 79 04             	mov    0x4(%ecx),%edi
49cf1c:	8b 18                	mov    (%eax),%ebx
49cf1e:	89 17                	mov    %edx,(%edi)
49cf20:	8b 72 04             	mov    0x4(%edx),%esi
49cf23:	89 1e                	mov    %ebx,(%esi)
49cf25:	8b 43 04             	mov    0x4(%ebx),%eax
49cf28:	89 08                	mov    %ecx,(%eax)
49cf2a:	89 73 04             	mov    %esi,0x4(%ebx)
49cf2d:	89 7a 04             	mov    %edi,0x4(%edx)
49cf30:	89 41 04             	mov    %eax,0x4(%ecx)
49cf33:	eb c8                	jmp    0x49cefd
49cf35:	68 3c 64 60 00       	push   $0x60643c
49cf3a:	e8 97 3c 13 00       	call   0x5d0bd6
49cf3f:	cc                   	int3
49cf40:	55                   	push   %ebp
49cf41:	8b ec                	mov    %esp,%ebp
49cf43:	83 ec 14             	sub    $0x14,%esp
49cf46:	8b 55 08             	mov    0x8(%ebp),%edx
49cf49:	b8 ff ff ff 1f       	mov    $0x1fffffff,%eax
49cf4e:	53                   	push   %ebx
49cf4f:	56                   	push   %esi
49cf50:	57                   	push   %edi
49cf51:	8b f9                	mov    %ecx,%edi
49cf53:	be 01 00 00 00       	mov    $0x1,%esi
49cf58:	0f bd c8             	bsr    %eax,%ecx
49cf5b:	8b c6                	mov    %esi,%eax
49cf5d:	89 7d ec             	mov    %edi,-0x14(%ebp)
49cf60:	d3 e0                	shl    %cl,%eax
49cf62:	3b d0                	cmp    %eax,%edx
49cf64:	0f 87 95 01 00 00    	ja     0x49d0ff
49cf6a:	8b 5f 04             	mov    0x4(%edi),%ebx
49cf6d:	8d 42 ff             	lea    -0x1(%edx),%eax
49cf70:	0b c6                	or     %esi,%eax
49cf72:	89 5d f0             	mov    %ebx,-0x10(%ebp)
49cf75:	0f bd c8             	bsr    %eax,%ecx
49cf78:	53                   	push   %ebx
49cf79:	8d 49 01             	lea    0x1(%ecx),%ecx
49cf7c:	d3 e6                	shl    %cl,%esi
49cf7e:	8d 4f 0c             	lea    0xc(%edi),%ecx
49cf81:	8d 04 36             	lea    (%esi,%esi,1),%eax
49cf84:	50                   	push   %eax
49cf85:	e8 56 b9 fb ff       	call   0x4588e0
49cf8a:	8d 46 ff             	lea    -0x1(%esi),%eax
49cf8d:	89 77 1c             	mov    %esi,0x1c(%edi)
49cf90:	89 47 18             	mov    %eax,0x18(%edi)
49cf93:	8b 47 04             	mov    0x4(%edi),%eax
49cf96:	8b 00                	mov    (%eax),%eax
49cf98:	3b c3                	cmp    %ebx,%eax
49cf9a:	0f 84 37 01 00 00    	je     0x49d0d7
49cfa0:	8b f8                	mov    %eax,%edi
49cfa2:	83 7f 1c 10          	cmpl   $0x10,0x1c(%edi)
49cfa6:	8d 5f 08             	lea    0x8(%edi),%ebx
49cfa9:	8b 00                	mov    (%eax),%eax
49cfab:	89 45 08             	mov    %eax,0x8(%ebp)
49cfae:	89 5d fc             	mov    %ebx,-0x4(%ebp)
49cfb1:	72 05                	jb     0x49cfb8
49cfb3:	8b 0b                	mov    (%ebx),%ecx
49cfb5:	89 4d fc             	mov    %ecx,-0x4(%ebp)
49cfb8:	8b 53 10             	mov    0x10(%ebx),%edx
49cfbb:	33 c9                	xor    %ecx,%ecx
49cfbd:	89 55 f4             	mov    %edx,-0xc(%ebp)
49cfc0:	be c5 9d 1c 81       	mov    $0x811c9dc5,%esi