4a4e59:	8b 7f 3c             	mov    0x3c(%edi),%edi
4a4e5c:	8b c7                	mov    %edi,%eax
4a4e5e:	8b 74 24 34          	mov    0x34(%esp),%esi
4a4e62:	33 c2                	xor    %edx,%eax
4a4e64:	0f 10 8e 80 00 00 00 	movups 0x80(%esi),%xmm1
4a4e6b:	89 46 7c             	mov    %eax,0x7c(%esi)
4a4e6e:	89 4e 78             	mov    %ecx,0x78(%esi)
4a4e71:	8b 4e 10             	mov    0x10(%esi),%ecx
4a4e74:	0f 28 c1             	movaps %xmm1,%xmm0
4a4e77:	66 0f 7e c8          	movd   %xmm1,%eax
4a4e7b:	66 0f 73 d8 04       	psrldq $0x4,%xmm0
4a4e80:	66 0f 7e c2          	movd   %xmm0,%edx
4a4e84:	0f 28 c1             	movaps %xmm1,%xmm0
4a4e87:	33 c8                	xor    %eax,%ecx
4a4e89:	89 44 24 14          	mov    %eax,0x14(%esp)
4a4e8d:	8b 46 14             	mov    0x14(%esi),%eax
4a4e90:	33 c2                	xor    %edx,%eax
4a4e92:	89 8e 90 00 00 00    	mov    %ecx,0x90(%esi)
4a4e98:	89 86 94 00 00 00    	mov    %eax,0x94(%esi)
4a4e9e:	8b 44 24 34          	mov    0x34(%esp),%eax
4a4ea2:	8b e8                	mov    %eax,%ebp
4a4ea4:	66 0f 73 d8 08       	psrldq $0x8,%xmm0
4a4ea9:	66 0f 7e c6          	movd   %xmm0,%esi
4a4ead:	89 54 24 18          	mov    %edx,0x18(%esp)
4a4eb1:	8b 48 18             	mov    0x18(%eax),%ecx
4a4eb4:	8b 45 1c             	mov    0x1c(%ebp),%eax
4a4eb7:	33 ce                	xor    %esi,%ecx
4a4eb9:	89 8d 98 00 00 00    	mov    %ecx,0x98(%ebp)
4a4ebf:	33 de                	xor    %esi,%ebx
4a4ec1:	31 74 24 10          	xor    %esi,0x10(%esp)
4a4ec5:	8b cd                	mov    %ebp,%ecx
4a4ec7:	66 0f 73 d9 0c       	psrldq $0xc,%xmm1
4a4ecc:	66 0f 7e ca          	movd   %xmm1,%edx
4a4ed0:	33 c2                	xor    %edx,%eax
4a4ed2:	33 fa                	xor    %edx,%edi
4a4ed4:	89 81 9c 00 00 00    	mov    %eax,0x9c(%ecx)
4a4eda:	8b 44 24 38          	mov    0x38(%esp),%eax
4a4ede:	33 44 24 14          	xor    0x14(%esp),%eax
4a4ee2:	89 44 24 38          	mov    %eax,0x38(%esp)
4a4ee6:	8b c8                	mov    %eax,%ecx
4a4ee8:	8b 45 24             	mov    0x24(%ebp),%eax
4a4eeb:	33 44 24 18          	xor    0x18(%esp),%eax
4a4eef:	89 8d a0 00 00 00    	mov    %ecx,0xa0(%ebp)
4a4ef5:	8b cd                	mov    %ebp,%ecx
4a4ef7:	89 81 a4 00 00 00    	mov    %eax,0xa4(%ecx)
4a4efd:	8b 41 2c             	mov    0x2c(%ecx),%eax
4a4f00:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4a4f04:	33 c2                	xor    %edx,%eax
4a4f06:	89 8d a8 00 00 00    	mov    %ecx,0xa8(%ebp)
4a4f0c:	8b cd                	mov    %ebp,%ecx
4a4f0e:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
4a4f12:	33 6c 24 18          	xor    0x18(%esp),%ebp
4a4f16:	89 81 ac 00 00 00    	mov    %eax,0xac(%ecx)
4a4f1c:	8b 41 30             	mov    0x30(%ecx),%eax
4a4f1f:	33 44 24 14          	xor    0x14(%esp),%eax
4a4f23:	89 81 b0 00 00 00    	mov    %eax,0xb0(%ecx)
4a4f29:	89 b9 bc 00 00 00    	mov    %edi,0xbc(%ecx)
4a4f2f:	8b 7c 24 34          	mov    0x34(%esp),%edi
4a4f33:	89 a9 b4 00 00 00    	mov    %ebp,0xb4(%ecx)
4a4f39:	8b 6c 24 14          	mov    0x14(%esp),%ebp
4a4f3d:	89 99 b8 00 00 00    	mov    %ebx,0xb8(%ecx)
4a4f43:	8b cd                	mov    %ebp,%ecx
4a4f45:	33 4f 40             	xor    0x40(%edi),%ecx
4a4f48:	8b 5c 24 18          	mov    0x18(%esp),%ebx
4a4f4c:	8b c3                	mov    %ebx,%eax
4a4f4e:	33 47 44             	xor    0x44(%edi),%eax
4a4f51:	89 8f c0 00 00 00    	mov    %ecx,0xc0(%edi)
4a4f57:	8b 4f 48             	mov    0x48(%edi),%ecx
4a4f5a:	89 87 c4 00 00 00    	mov    %eax,0xc4(%edi)
4a4f60:	33 ce                	xor    %esi,%ecx
4a4f62:	8b 47 4c             	mov    0x4c(%edi),%eax
4a4f65:	33 c2                	xor    %edx,%eax
4a4f67:	89 8f c8 00 00 00    	mov    %ecx,0xc8(%edi)
4a4f6d:	8b 4f 50             	mov    0x50(%edi),%ecx
4a4f70:	89 87 cc 00 00 00    	mov    %eax,0xcc(%edi)
4a4f76:	33 cd                	xor    %ebp,%ecx
4a4f78:	8b 47 54             	mov    0x54(%edi),%eax
4a4f7b:	33 c3                	xor    %ebx,%eax
4a4f7d:	89 8f d0 00 00 00    	mov    %ecx,0xd0(%edi)
4a4f83:	89 87 d4 00 00 00    	mov    %eax,0xd4(%edi)
4a4f89:	8b ce                	mov    %esi,%ecx
4a4f8b:	33 4f 58             	xor    0x58(%edi),%ecx
4a4f8e:	8b c2                	mov    %edx,%eax
4a4f90:	33 47 5c             	xor    0x5c(%edi),%eax
4a4f93:	89 8f d8 00 00 00    	mov    %ecx,0xd8(%edi)
4a4f99:	8b 4f 60             	mov    0x60(%edi),%ecx
4a4f9c:	89 87 dc 00 00 00    	mov    %eax,0xdc(%edi)
4a4fa2:	33 cd                	xor    %ebp,%ecx
4a4fa4:	8b 47 64             	mov    0x64(%edi),%eax
4a4fa7:	33 6f 70             	xor    0x70(%edi),%ebp
4a4faa:	33 c3                	xor    %ebx,%eax
4a4fac:	33 5f 74             	xor    0x74(%edi),%ebx
4a4faf:	89 8f e0 00 00 00    	mov    %ecx,0xe0(%edi)
4a4fb5:	8b ce                	mov    %esi,%ecx
4a4fb7:	33 77 78             	xor    0x78(%edi),%esi
4a4fba:	33 4f 68             	xor    0x68(%edi),%ecx
4a4fbd:	89 87 e4 00 00 00    	mov    %eax,0xe4(%edi)
4a4fc3:	8b c2                	mov    %edx,%eax
4a4fc5:	33 47 6c             	xor    0x6c(%edi),%eax
4a4fc8:	33 57 7c             	xor    0x7c(%edi),%edx
4a4fcb:	89 af f0 00 00 00    	mov    %ebp,0xf0(%edi)
4a4fd1:	89 9f f4 00 00 00    	mov    %ebx,0xf4(%edi)
4a4fd7:	89 b7 f8 00 00 00    	mov    %esi,0xf8(%edi)
4a4fdd:	89 8f e8 00 00 00    	mov    %ecx,0xe8(%edi)
4a4fe3:	89 87 ec 00 00 00    	mov    %eax,0xec(%edi)
4a4fe9:	89 97 fc 00 00 00    	mov    %edx,0xfc(%edi)
4a4fef:	5f                   	pop    %edi
4a4ff0:	5e                   	pop    %esi
4a4ff1:	5d                   	pop    %ebp
4a4ff2:	5b                   	pop    %ebx
4a4ff3:	83 c4 20             	add    $0x20,%esp
4a4ff6:	c3                   	ret
4a4ff7:	cc                   	int3
4a4ff8:	cc                   	int3
4a4ff9:	cc                   	int3
4a4ffa:	cc                   	int3
4a4ffb:	cc                   	int3
4a4ffc:	cc                   	int3
4a4ffd:	cc                   	int3
4a4ffe:	cc                   	int3
4a4fff:	cc                   	int3
4a5000:	53                   	push   %ebx
4a5001:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4a5005:	56                   	push   %esi
4a5006:	8b 74 24 0c          	mov    0xc(%esp),%esi
4a500a:	8b 46 28             	mov    0x28(%esi),%eax
4a500d:	89 44 24 0c          	mov    %eax,0xc(%esp)
4a5011:	85 db                	test   %ebx,%ebx
4a5013:	0f 84 9d 00 00 00    	je     0x4a50b6
4a5019:	80 0e 40             	orb    $0x40,(%esi)
4a501c:	55                   	push   %ebp
4a501d:	57                   	push   %edi
4a501e:	ff 76 2c             	push   0x2c(%esi)
4a5021:	8d 6e 10             	lea    0x10(%esi),%ebp
4a5024:	55                   	push   %ebp
4a5025:	56                   	push   %esi
4a5026:	ff d0                	call   *%eax
4a5028:	83 c4 0c             	add    $0xc,%esp
4a502b:	8b c3                	mov    %ebx,%eax
4a502d:	83 46 20 01          	addl   $0x1,0x20(%esi)
4a5031:	83 56 24 00          	adcl   $0x0,0x24(%esi)
4a5035:	81 fb 00 ff 00 00    	cmp    $0xff00,%ebx
4a503b:	73 10                	jae    0x4a504d
4a503d:	c1 e8 08             	shr    $0x8,%eax
4a5040:	30 45 00             	xor    %al,0x0(%ebp)
4a5043:	b8 02 00 00 00       	mov    $0x2,%eax
4a5048:	30 5e 11             	xor    %bl,0x11(%esi)
4a504b:	eb 25                	jmp    0x4a5072
4a504d:	80 76 11 fe          	xorb   $0xfe,0x11(%esi)
4a5051:	f6 55 00             	notb   0x0(%ebp)
4a5054:	c1 e8 18             	shr    $0x18,%eax
4a5057:	30 46 12             	xor    %al,0x12(%esi)
4a505a:	8b c3                	mov    %ebx,%eax
4a505c:	c1 e8 10             	shr    $0x10,%eax
4a505f:	30 46 13             	xor    %al,0x13(%esi)
4a5062:	8b c3                	mov    %ebx,%eax
4a5064:	c1 e8 08             	shr    $0x8,%eax
4a5067:	30 46 14             	xor    %al,0x14(%esi)
4a506a:	b8 06 00 00 00       	mov    $0x6,%eax
4a506f:	30 5e 15             	xor    %bl,0x15(%esi)
4a5072:	8b 7c 24 18          	mov    0x18(%esp),%edi
4a5076:	83 f8 10             	cmp    $0x10,%eax
4a5079:	73 1f                	jae    0x4a509a
4a507b:	83 c0 10             	add    $0x10,%eax
4a507e:	ba f0 ff ff ff       	mov    $0xfffffff0,%edx
4a5083:	03 c6                	add    %esi,%eax
4a5085:	2b d6                	sub    %esi,%edx
4a5087:	85 db                	test   %ebx,%ebx
4a5089:	74 0f                	je     0x4a509a
4a508b:	8a 0f                	mov    (%edi),%cl
4a508d:	4b                   	dec    %ebx
4a508e:	30 08                	xor    %cl,(%eax)
4a5090:	47                   	inc    %edi
4a5091:	40                   	inc    %eax
4a5092:	8d 0c 02             	lea    (%edx,%eax,1),%ecx
4a5095:	83 f9 10             	cmp    $0x10,%ecx
4a5098:	72 ed                	jb     0x4a5087
4a509a:	ff 76 2c             	push   0x2c(%esi)
4a509d:	55                   	push   %ebp
4a509e:	55                   	push   %ebp
4a509f:	ff 54 24 20          	call   *0x20(%esp)
4a50a3:	83 c4 0c             	add    $0xc,%esp
4a50a6:	83 46 20 01          	addl   $0x1,0x20(%esi)
4a50aa:	83 56 24 00          	adcl   $0x0,0x24(%esi)
4a50ae:	33 c0                	xor    %eax,%eax
4a50b0:	85 db                	test   %ebx,%ebx
4a50b2:	75 c2                	jne    0x4a5076
4a50b4:	5f                   	pop    %edi
4a50b5:	5d                   	pop    %ebp
4a50b6:	5e                   	pop    %esi
4a50b7:	5b                   	pop    %ebx
4a50b8:	c3                   	ret
4a50b9:	cc                   	int3
4a50ba:	cc                   	int3
4a50bb:	cc                   	int3
4a50bc:	cc                   	int3
4a50bd:	cc                   	int3
4a50be:	cc                   	int3
4a50bf:	cc                   	int3
4a50c0:	b8 30 00 00 00       	mov    $0x30,%eax
4a50c5:	e8 26 c4 13 00       	call   0x5e14f0
4a50ca:	a1 d4 89 72 00       	mov    0x7289d4,%eax
4a50cf:	33 c4                	xor    %esp,%eax
4a50d1:	89 44 24 2c          	mov    %eax,0x2c(%esp)
4a50d5:	8b 44 24 3c          	mov    0x3c(%esp),%eax
4a50d9:	53                   	push   %ebx
4a50da:	55                   	push   %ebp
4a50db:	56                   	push   %esi
4a50dc:	8b 74 24 40          	mov    0x40(%esp),%esi
4a50e0:	57                   	push   %edi
4a50e1:	89 44 24 14          	mov    %eax,0x14(%esp)
4a50e5:	89 74 24 24          	mov    %esi,0x24(%esp)
4a50e9:	8a 1e                	mov    (%esi),%bl
4a50eb:	8b 7e 28             	mov    0x28(%esi),%edi
4a50ee:	8b 46 2c             	mov    0x2c(%esi),%eax
4a50f1:	88 5c 24 13          	mov    %bl,0x13(%esp)
4a50f5:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
4a50f9:	89 44 24 18          	mov    %eax,0x18(%esp)
4a50fd:	f6 c3 40             	test   $0x40,%bl
4a5100:	75 0b                	jne    0x4a510d
4a5102:	50                   	push   %eax
4a5103:	8d 46 10             	lea    0x10(%esi),%eax
4a5106:	50                   	push   %eax
4a5107:	56                   	push   %esi
4a5108:	ff d7                	call   *%edi
4a510a:	83 c4 0c             	add    $0xc,%esp
4a510d:	0f b6 c3             	movzbl %bl,%eax
4a5110:	ba 0f 00 00 00       	mov    $0xf,%edx
4a5115:	83 e0 07             	and    $0x7,%eax
4a5118:	33 c9                	xor    %ecx,%ecx
4a511a:	2b d0                	sub    %eax,%edx
4a511c:	88 06                	mov    %al,(%esi)
4a511e:	89 54 24 28          	mov    %edx,0x28(%esp)
4a5122:	83 fa 0f             	cmp    $0xf,%edx
4a5125:	73 1c                	jae    0x4a5143
4a5127:	66 0f 1f 84 00 00 00 	nopw   0x0(%eax,%eax,1)
4a512e:	00 00
4a5130:	0f b6 04 16          	movzbl (%esi,%edx,1),%eax
4a5134:	0b c8                	or     %eax,%ecx
4a5136:	c6 04 16 00          	movb   $0x0,(%esi,%edx,1)
4a513a:	42                   	inc    %edx
4a513b:	c1 e1 08             	shl    $0x8,%ecx
4a513e:	83 fa 0f             	cmp    $0xf,%edx
4a5141:	72 ed                	jb     0x4a5130
4a5143:	0f b6 46 0f          	movzbl 0xf(%esi),%eax
4a5147:	8b 6c 24 50          	mov    0x50(%esp),%ebp
4a514b:	0b c8                	or     %eax,%ecx
4a514d:	c6 46 0f 01          	movb   $0x1,0xf(%esi)
4a5151:	3b cd                	cmp    %ebp,%ecx
4a5153:	74 16                	je     0x4a516b
4a5155:	5f                   	pop    %edi
4a5156:	5e                   	pop    %esi
4a5157:	5d                   	pop    %ebp
4a5158:	83 c8 ff             	or     $0xffffffff,%eax
4a515b:	5b                   	pop    %ebx
4a515c:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
4a5160:	33 cc                	xor    %esp,%ecx
4a5162:	e8 73 c3 13 00       	call   0x5e14da
4a5167:	83 c4 30             	add    $0x30,%esp
4a516a:	c3                   	ret
4a516b:	8b 5c 24 48          	mov    0x48(%esp),%ebx
4a516f:	83 fd 10             	cmp    $0x10,%ebp
4a5172:	0f 82 98 00 00 00    	jb     0x4a5210
4a5178:	bf f8 ff ff ff       	mov    $0xfffffff8,%edi
4a517d:	8b c5                	mov    %ebp,%eax
4a517f:	2b fe                	sub    %esi,%edi
4a5181:	c1 e8 04             	shr    $0x4,%eax
4a5184:	89 44 24 20          	mov    %eax,0x20(%esp)
4a5188:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
4a518f:	00
4a5190:	ff 74 24 18          	push   0x18(%esp)
4a5194:	8d 44 24 30          	lea    0x30(%esp),%eax
4a5198:	50                   	push   %eax
4a5199:	56                   	push   %esi
4a519a:	ff 54 24 28          	call   *0x28(%esp)
4a519e:	83 c4 0c             	add    $0xc,%esp
4a51a1:	8d 46 10             	lea    0x10(%esi),%eax
4a51a4:	80 40 ff 01          	addb   $0x1,-0x1(%eax)
4a51a8:	8d 40 ff             	lea    -0x1(%eax),%eax
4a51ab:	75 07                	jne    0x4a51b4
4a51ad:	8d 0c 07             	lea    (%edi,%eax,1),%ecx
4a51b0:	85 c9                	test   %ecx,%ecx
4a51b2:	75 f0                	jne    0x4a51a4
4a51b4:	8b 0b                	mov    (%ebx),%ecx
4a51b6:	8b 43 04             	mov    0x4(%ebx),%eax
4a51b9:	8b 54 24 14          	mov    0x14(%esp),%edx
4a51bd:	33 44 24 30          	xor    0x30(%esp),%eax
4a51c1:	33 4c 24 2c          	xor    0x2c(%esp),%ecx
4a51c5:	ff 74 24 18          	push   0x18(%esp)
4a51c9:	89 42 04             	mov    %eax,0x4(%edx)
4a51cc:	89 0a                	mov    %ecx,(%edx)
4a51ce:	31 46 14             	xor    %eax,0x14(%esi)
4a51d1:	31 4e 10             	xor    %ecx,0x10(%esi)
4a51d4:	8b 4b 08             	mov    0x8(%ebx),%ecx
4a51d7:	8b 43 0c             	mov    0xc(%ebx),%eax
4a51da:	33 44 24 3c          	xor    0x3c(%esp),%eax
4a51de:	33 4c 24 38          	xor    0x38(%esp),%ecx
4a51e2:	89 42 0c             	mov    %eax,0xc(%edx)
4a51e5:	89 4a 08             	mov    %ecx,0x8(%edx)
4a51e8:	31 46 1c             	xor    %eax,0x1c(%esi)
4a51eb:	8d 46 10             	lea    0x10(%esi),%eax
4a51ee:	31 4e 18             	xor    %ecx,0x18(%esi)
4a51f1:	50                   	push   %eax
4a51f2:	50                   	push   %eax
4a51f3:	ff 54 24 28          	call   *0x28(%esp)
4a51f7:	83 44 24 20 10       	addl   $0x10,0x20(%esp)
4a51fc:	83 c4 0c             	add    $0xc,%esp
4a51ff:	83 c3 10             	add    $0x10,%ebx
4a5202:	83 ed 10             	sub    $0x10,%ebp
4a5205:	83 6c 24 20 01       	subl   $0x1,0x20(%esp)
4a520a:	75 84                	jne    0x4a5190
4a520c:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
4a5210:	85 ed                	test   %ebp,%ebp
4a5212:	74 63                	je     0x4a5277
4a5214:	ff 74 24 18          	push   0x18(%esp)
4a5218:	8d 44 24 30          	lea    0x30(%esp),%eax
4a521c:	50                   	push   %eax
4a521d:	56                   	push   %esi
4a521e:	ff d7                	call   *%edi
4a5220:	83 c4 0c             	add    $0xc,%esp
4a5223:	33 ff                	xor    %edi,%edi
4a5225:	85 ed                	test   %ebp,%ebp
4a5227:	74 39                	je     0x4a5262
4a5229:	8d 44 24 2c          	lea    0x2c(%esp),%eax
4a522d:	2b d8                	sub    %eax,%ebx
4a522f:	29 44 24 14          	sub    %eax,0x14(%esp)
4a5233:	8d 46 10             	lea    0x10(%esi),%eax
4a5236:	8b 74 24 14          	mov    0x14(%esp),%esi
4a523a:	89 44 24 20          	mov    %eax,0x20(%esp)
4a523e:	66 90                	xchg   %ax,%ax
4a5240:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
4a5244:	03 cf                	add    %edi,%ecx
4a5246:	0f b6 14 0b          	movzbl (%ebx,%ecx,1),%edx
4a524a:	0f b6 01             	movzbl (%ecx),%eax
4a524d:	33 d0                	xor    %eax,%edx
4a524f:	8b 44 24 20          	mov    0x20(%esp),%eax
4a5253:	88 14 0e             	mov    %dl,(%esi,%ecx,1)
4a5256:	30 14 38             	xor    %dl,(%eax,%edi,1)
4a5259:	47                   	inc    %edi
4a525a:	3b fd                	cmp    %ebp,%edi
4a525c:	72 e2                	jb     0x4a5240
4a525e:	8b 74 24 24          	mov    0x24(%esp),%esi
4a5262:	8b 5c 24 18          	mov    0x18(%esp),%ebx
4a5266:	8d 46 10             	lea    0x10(%esi),%eax
4a5269:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
4a526d:	53                   	push   %ebx
4a526e:	50                   	push   %eax
4a526f:	50                   	push   %eax
4a5270:	ff d7                	call   *%edi
4a5272:	83 c4 0c             	add    $0xc,%esp