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
49cfc5:	85 d2                	test   %edx,%edx
49cfc7:	74 1e                	je     0x49cfe7
49cfc9:	8b 5d fc             	mov    -0x4(%ebp),%ebx
49cfcc:	8b c2                	mov    %edx,%eax
49cfce:	66 90                	xchg   %ax,%ax
49cfd0:	0f b6 14 19          	movzbl (%ecx,%ebx,1),%edx
49cfd4:	41                   	inc    %ecx
49cfd5:	33 d6                	xor    %esi,%edx
49cfd7:	69 f2 93 01 00 01    	imul   $0x1000193,%edx,%esi
49cfdd:	3b c8                	cmp    %eax,%ecx
49cfdf:	72 ef                	jb     0x49cfd0
49cfe1:	8b 45 08             	mov    0x8(%ebp),%eax
49cfe4:	8d 5f 08             	lea    0x8(%edi),%ebx
49cfe7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
49cfea:	8b 51 18             	mov    0x18(%ecx),%edx
49cfed:	8b 49 0c             	mov    0xc(%ecx),%ecx
49cff0:	23 d6                	and    %esi,%edx
49cff2:	8d 0c d1             	lea    (%ecx,%edx,8),%ecx
49cff5:	8b 11                	mov    (%ecx),%edx
49cff7:	89 4d f4             	mov    %ecx,-0xc(%ebp)
49cffa:	89 55 f8             	mov    %edx,-0x8(%ebp)
49cffd:	3b 55 f0             	cmp    -0x10(%ebp),%edx
49d000:	75 0a                	jne    0x49d00c
49d002:	89 39                	mov    %edi,(%ecx)
49d004:	89 79 04             	mov    %edi,0x4(%ecx)
49d007:	e9 c0 00 00 00       	jmp    0x49d0cc
49d00c:	8b 71 04             	mov    0x4(%ecx),%esi
49d00f:	83 7e 1c 10          	cmpl   $0x10,0x1c(%esi)
49d013:	8d 56 08             	lea    0x8(%esi),%edx
49d016:	72 03                	jb     0x49d01b
49d018:	8b 56 08             	mov    0x8(%esi),%edx
49d01b:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
49d01f:	8b cb                	mov    %ebx,%ecx
49d021:	72 02                	jb     0x49d025
49d023:	8b 0b                	mov    (%ebx),%ecx
49d025:	ff 76 18             	push   0x18(%esi)
49d028:	8b 43 10             	mov    0x10(%ebx),%eax
49d02b:	52                   	push   %edx
49d02c:	50                   	push   %eax
49d02d:	51                   	push   %ecx
49d02e:	e8 fd d4 fd ff       	call   0x47a530
49d033:	83 c4 10             	add    $0x10,%esp
49d036:	84 c0                	test   %al,%al
49d038:	74 29                	je     0x49d063
49d03a:	8b 1e                	mov    (%esi),%ebx
49d03c:	8b 45 08             	mov    0x8(%ebp),%eax
49d03f:	3b df                	cmp    %edi,%ebx
49d041:	74 18                	je     0x49d05b
49d043:	8b 77 04             	mov    0x4(%edi),%esi
49d046:	89 06                	mov    %eax,(%esi)
49d048:	8b 50 04             	mov    0x4(%eax),%edx
49d04b:	89 1a                	mov    %ebx,(%edx)
49d04d:	8b 4b 04             	mov    0x4(%ebx),%ecx
49d050:	89 39                	mov    %edi,(%ecx)
49d052:	89 53 04             	mov    %edx,0x4(%ebx)
49d055:	89 70 04             	mov    %esi,0x4(%eax)
49d058:	89 4f 04             	mov    %ecx,0x4(%edi)
49d05b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
49d05e:	89 79 04             	mov    %edi,0x4(%ecx)
49d061:	eb 69                	jmp    0x49d0cc
49d063:	8b ce                	mov    %esi,%ecx
49d065:	89 4d fc             	mov    %ecx,-0x4(%ebp)
49d068:	39 75 f8             	cmp    %esi,-0x8(%ebp)
49d06b:	74 3c                	je     0x49d0a9
49d06d:	0f 1f 00             	nopl   (%eax)
49d070:	8b 76 04             	mov    0x4(%esi),%esi
49d073:	89 75 fc             	mov    %esi,-0x4(%ebp)
49d076:	83 7e 1c 10          	cmpl   $0x10,0x1c(%esi)
49d07a:	8d 56 08             	lea    0x8(%esi),%edx
49d07d:	72 03                	jb     0x49d082
49d07f:	8b 56 08             	mov    0x8(%esi),%edx
49d082:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
49d086:	8b cb                	mov    %ebx,%ecx
49d088:	72 02                	jb     0x49d08c
49d08a:	8b 0b                	mov    (%ebx),%ecx
49d08c:	ff 76 18             	push   0x18(%esi)
49d08f:	8b 43 10             	mov    0x10(%ebx),%eax
49d092:	52                   	push   %edx
49d093:	50                   	push   %eax
49d094:	51                   	push   %ecx
49d095:	e8 96 d4 fd ff       	call   0x47a530
49d09a:	83 c4 10             	add    $0x10,%esp
49d09d:	84 c0                	test   %al,%al
49d09f:	75 3f                	jne    0x49d0e0
49d0a1:	39 75 f8             	cmp    %esi,-0x8(%ebp)
49d0a4:	75 ca                	jne    0x49d070
49d0a6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
49d0a9:	8b 77 04             	mov    0x4(%edi),%esi
49d0ac:	8b 45 08             	mov    0x8(%ebp),%eax
49d0af:	8b 5d fc             	mov    -0x4(%ebp),%ebx
49d0b2:	89 06                	mov    %eax,(%esi)
49d0b4:	8b 50 04             	mov    0x4(%eax),%edx
49d0b7:	89 0a                	mov    %ecx,(%edx)
49d0b9:	8b 49 04             	mov    0x4(%ecx),%ecx
49d0bc:	89 39                	mov    %edi,(%ecx)
49d0be:	89 53 04             	mov    %edx,0x4(%ebx)
49d0c1:	89 70 04             	mov    %esi,0x4(%eax)
49d0c4:	89 4f 04             	mov    %ecx,0x4(%edi)
49d0c7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
49d0ca:	89 39                	mov    %edi,(%ecx)
49d0cc:	8b f8                	mov    %eax,%edi
49d0ce:	3b 45 f0             	cmp    -0x10(%ebp),%eax
49d0d1:	0f 85 cb fe ff ff    	jne    0x49cfa2
49d0d7:	5f                   	pop    %edi
49d0d8:	5e                   	pop    %esi
49d0d9:	5b                   	pop    %ebx
49d0da:	8b e5                	mov    %ebp,%esp
49d0dc:	5d                   	pop    %ebp
49d0dd:	c2 04 00             	ret    $0x4
49d0e0:	8b 1e                	mov    (%esi),%ebx
49d0e2:	8b 77 04             	mov    0x4(%edi),%esi
49d0e5:	8b 45 08             	mov    0x8(%ebp),%eax
49d0e8:	89 06                	mov    %eax,(%esi)
49d0ea:	8b 50 04             	mov    0x4(%eax),%edx
49d0ed:	89 1a                	mov    %ebx,(%edx)
49d0ef:	8b 4b 04             	mov    0x4(%ebx),%ecx
49d0f2:	89 39                	mov    %edi,(%ecx)
49d0f4:	89 53 04             	mov    %edx,0x4(%ebx)
49d0f7:	89 70 04             	mov    %esi,0x4(%eax)
49d0fa:	89 4f 04             	mov    %ecx,0x4(%edi)
49d0fd:	eb cd                	jmp    0x49d0cc
49d0ff:	68 3c 64 60 00       	push   $0x60643c
49d104:	e8 cd 3a 13 00       	call   0x5d0bd6
49d109:	cc                   	int3
49d10a:	cc                   	int3
49d10b:	cc                   	int3
49d10c:	cc                   	int3
49d10d:	cc                   	int3
49d10e:	cc                   	int3
49d10f:	cc                   	int3
49d110:	55                   	push   %ebp
49d111:	8b ec                	mov    %esp,%ebp
49d113:	53                   	push   %ebx
49d114:	56                   	push   %esi
49d115:	8b 75 10             	mov    0x10(%ebp),%esi
49d118:	8b d1                	mov    %ecx,%edx
49d11a:	57                   	push   %edi
49d11b:	8b 7d 0c             	mov    0xc(%ebp),%edi
49d11e:	8b 5f 04             	mov    0x4(%edi),%ebx
49d121:	ff 42 08             	incl   0x8(%edx)
49d124:	89 3e                	mov    %edi,(%esi)
49d126:	89 5e 04             	mov    %ebx,0x4(%esi)
49d129:	89 33                	mov    %esi,(%ebx)
49d12b:	89 77 04             	mov    %esi,0x4(%edi)
49d12e:	8b 42 18             	mov    0x18(%edx),%eax
49d131:	8b 4a 0c             	mov    0xc(%edx),%ecx
49d134:	23 45 08             	and    0x8(%ebp),%eax
49d137:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
49d13a:	8b 08                	mov    (%eax),%ecx
49d13c:	3b 4a 04             	cmp    0x4(%edx),%ecx
49d13f:	75 0e                	jne    0x49d14f
49d141:	89 30                	mov    %esi,(%eax)
49d143:	89 70 04             	mov    %esi,0x4(%eax)
49d146:	8b c6                	mov    %esi,%eax
49d148:	5f                   	pop    %edi
49d149:	5e                   	pop    %esi
49d14a:	5b                   	pop    %ebx
49d14b:	5d                   	pop    %ebp
49d14c:	c2 0c 00             	ret    $0xc
49d14f:	3b cf                	cmp    %edi,%ecx
49d151:	75 0b                	jne    0x49d15e
49d153:	89 30                	mov    %esi,(%eax)
49d155:	8b c6                	mov    %esi,%eax
49d157:	5f                   	pop    %edi
49d158:	5e                   	pop    %esi
49d159:	5b                   	pop    %ebx
49d15a:	5d                   	pop    %ebp
49d15b:	c2 0c 00             	ret    $0xc
49d15e:	39 58 04             	cmp    %ebx,0x4(%eax)
49d161:	75 03                	jne    0x49d166
49d163:	89 70 04             	mov    %esi,0x4(%eax)
49d166:	5f                   	pop    %edi
49d167:	8b c6                	mov    %esi,%eax
49d169:	5e                   	pop    %esi
49d16a:	5b                   	pop    %ebx