52df74:	3b d1                	cmp    %ecx,%edx
52df76:	77 04                	ja     0x52df7c
52df78:	3b f8                	cmp    %eax,%edi
52df7a:	73 0b                	jae    0x52df87
52df7c:	8d 4e 3c             	lea    0x3c(%esi),%ecx
52df7f:	3b d1                	cmp    %ecx,%edx
52df81:	77 22                	ja     0x52dfa5
52df83:	3b fe                	cmp    %esi,%edi
52df85:	72 1e                	jb     0x52dfa5
52df87:	2b f0                	sub    %eax,%esi
52df89:	bf 10 00 00 00       	mov    $0x10,%edi
52df8e:	2b d0                	sub    %eax,%edx
52df90:	8b 0c 06             	mov    (%esi,%eax,1),%ecx
52df93:	8d 40 04             	lea    0x4(%eax),%eax
52df96:	03 48 fc             	add    -0x4(%eax),%ecx
52df99:	89 4c 02 fc          	mov    %ecx,-0x4(%edx,%eax,1)
52df9d:	83 ef 01             	sub    $0x1,%edi
52dfa0:	75 ee                	jne    0x52df90
52dfa2:	5f                   	pop    %edi
52dfa3:	5e                   	pop    %esi
52dfa4:	c3                   	ret
52dfa5:	0f 10 0e             	movups (%esi),%xmm1
52dfa8:	5f                   	pop    %edi
52dfa9:	0f 10 00             	movups (%eax),%xmm0
52dfac:	66 0f fe c8          	paddd  %xmm0,%xmm1
52dfb0:	0f 10 40 10          	movups 0x10(%eax),%xmm0
52dfb4:	0f 11 0a             	movups %xmm1,(%edx)
52dfb7:	0f 10 4e 10          	movups 0x10(%esi),%xmm1
52dfbb:	66 0f fe c8          	paddd  %xmm0,%xmm1
52dfbf:	0f 10 40 20          	movups 0x20(%eax),%xmm0
52dfc3:	0f 11 4a 10          	movups %xmm1,0x10(%edx)
52dfc7:	0f 10 4e 20          	movups 0x20(%esi),%xmm1
52dfcb:	66 0f fe c8          	paddd  %xmm0,%xmm1
52dfcf:	0f 10 40 30          	movups 0x30(%eax),%xmm0
52dfd3:	0f 11 4a 20          	movups %xmm1,0x20(%edx)
52dfd7:	0f 10 4e 30          	movups 0x30(%esi),%xmm1
52dfdb:	5e                   	pop    %esi
52dfdc:	66 0f fe c8          	paddd  %xmm0,%xmm1
52dfe0:	0f 11 4a 30          	movups %xmm1,0x30(%edx)
52dfe4:	c3                   	ret
52dfe5:	cc                   	int3
52dfe6:	cc                   	int3
52dfe7:	cc                   	int3
52dfe8:	cc                   	int3
52dfe9:	cc                   	int3
52dfea:	cc                   	int3
52dfeb:	cc                   	int3
52dfec:	cc                   	int3
52dfed:	cc                   	int3
52dfee:	cc                   	int3
52dfef:	cc                   	int3
52dff0:	69 4c 24 08 ff ff ff 	imul   $0xfffffff,0x8(%esp),%ecx
52dff7:	0f
52dff8:	0f 28 25 a0 20 61 00 	movaps 0x6120a0,%xmm4
52dfff:	0f 28 2d 60 90 64 00 	movaps 0x649060,%xmm5
52e006:	8b 54 24 04          	mov    0x4(%esp),%edx
52e00a:	66 0f 6e c1          	movd   %ecx,%xmm0
52e00e:	2b 4c 24 08          	sub    0x8(%esp),%ecx
52e012:	66 0f 70 d0 00       	pshufd $0x0,%xmm0,%xmm2
52e017:	66 0f 6e c1          	movd   %ecx,%xmm0
52e01b:	33 c9                	xor    %ecx,%ecx
52e01d:	66 0f 70 d8 00       	pshufd $0x0,%xmm0,%xmm3
52e022:	66 0f 6e c1          	movd   %ecx,%xmm0
52e026:	8d 41 04             	lea    0x4(%ecx),%eax
52e029:	66 0f 70 c0 00       	pshufd $0x0,%xmm0,%xmm0
52e02e:	66 0f fe c4          	paddd  %xmm4,%xmm0
52e032:	66 0f 76 c5          	pcmpeqd %xmm5,%xmm0
52e036:	0f 28 c8             	movaps %xmm0,%xmm1
52e039:	66 0f db c3          	pand   %xmm3,%xmm0
52e03d:	66 0f df ca          	pandn  %xmm2,%xmm1
52e041:	66 0f eb c8          	por    %xmm0,%xmm1
52e045:	0f 10 04 8a          	movups (%edx,%ecx,4),%xmm0
52e049:	66 0f fe c8          	paddd  %xmm0,%xmm1
52e04d:	66 0f 6e c0          	movd   %eax,%xmm0
52e051:	66 0f 70 c0 00       	pshufd $0x0,%xmm0,%xmm0
52e056:	0f 11 0c 8a          	movups %xmm1,(%edx,%ecx,4)
52e05a:	66 0f fe c4          	paddd  %xmm4,%xmm0
52e05e:	66 0f 76 c5          	pcmpeqd %xmm5,%xmm0
52e062:	0f 28 c8             	movaps %xmm0,%xmm1
52e065:	66 0f db c3          	pand   %xmm3,%xmm0
52e069:	66 0f df ca          	pandn  %xmm2,%xmm1
52e06d:	66 0f eb c8          	por    %xmm0,%xmm1
52e071:	0f 10 44 8a 10       	movups 0x10(%edx,%ecx,4),%xmm0
52e076:	66 0f fe c8          	paddd  %xmm0,%xmm1
52e07a:	0f 11 4c 8a 10       	movups %xmm1,0x10(%edx,%ecx,4)
52e07f:	83 c1 08             	add    $0x8,%ecx
52e082:	83 f9 10             	cmp    $0x10,%ecx
52e085:	72 9b                	jb     0x52e022
52e087:	c3                   	ret
52e088:	cc                   	int3
52e089:	cc                   	int3
52e08a:	cc                   	int3
52e08b:	cc                   	int3
52e08c:	cc                   	int3
52e08d:	cc                   	int3
52e08e:	cc                   	int3
52e08f:	cc                   	int3
52e090:	b8 4c 00 00 00       	mov    $0x4c,%eax
52e095:	e8 16 37 0a 00       	call   0x5d17b0
52e09a:	a1 c0 14 69 00       	mov    0x6914c0,%eax
52e09f:	33 c4                	xor    %esp,%eax
52e0a1:	89 44 24 48          	mov    %eax,0x48(%esp)
52e0a5:	53                   	push   %ebx
52e0a6:	55                   	push   %ebp
52e0a7:	56                   	push   %esi
52e0a8:	8b 74 24 5c          	mov    0x5c(%esp),%esi
52e0ac:	8d 44 24 14          	lea    0x14(%esp),%eax
52e0b0:	57                   	push   %edi
52e0b1:	56                   	push   %esi
52e0b2:	68 a8 8e 64 00       	push   $0x648ea8
52e0b7:	50                   	push   %eax
52e0b8:	e8 43 fd 02 00       	call   0x55de00
52e0bd:	8b 44 24 70          	mov    0x70(%esp),%eax
52e0c1:	8d 6c 24 24          	lea    0x24(%esp),%ebp
52e0c5:	8b d8                	mov    %eax,%ebx
52e0c7:	83 c4 0c             	add    $0xc,%esp
52e0ca:	f7 d3                	not    %ebx
52e0cc:	2b ee                	sub    %esi,%ebp
52e0ce:	bf 10 00 00 00       	mov    $0x10,%edi
52e0d3:	89 44 24 14          	mov    %eax,0x14(%esp)
52e0d7:	8d 76 04             	lea    0x4(%esi),%esi
52e0da:	89 5c 24 10          	mov    %ebx,0x10(%esp)
52e0de:	8b 54 24 10          	mov    0x10(%esp),%edx
52e0e2:	8b 44 24 14          	mov    0x14(%esp),%eax
52e0e6:	23 56 fc             	and    -0x4(%esi),%edx
52e0e9:	8b 4c 2e fc          	mov    -0x4(%esi,%ebp,1),%ecx
52e0ed:	23 c8                	and    %eax,%ecx
52e0ef:	8b 44 24 64          	mov    0x64(%esp),%eax
52e0f3:	0b ca                	or     %edx,%ecx
52e0f5:	89 4e fc             	mov    %ecx,-0x4(%esi)
52e0f8:	83 ef 01             	sub    $0x1,%edi
52e0fb:	75 d6                	jne    0x52e0d3
52e0fd:	8b 4c 24 58          	mov    0x58(%esp),%ecx
52e101:	5f                   	pop    %edi
52e102:	5e                   	pop    %esi
52e103:	5d                   	pop    %ebp
52e104:	5b                   	pop    %ebx
52e105:	33 cc                	xor    %esp,%ecx
52e107:	e8 1a 39 0a 00       	call   0x5d1a26
52e10c:	83 c4 4c             	add    $0x4c,%esp
52e10f:	c3                   	ret
52e110:	8b 44 24 08          	mov    0x8(%esp),%eax
52e114:	53                   	push   %ebx
52e115:	8b 5c 24 10          	mov    0x10(%esp),%ebx
52e119:	56                   	push   %esi
52e11a:	8b 74 24 0c          	mov    0xc(%esp),%esi
52e11e:	8d 50 3c             	lea    0x3c(%eax),%edx
52e121:	66 0f 6e c3          	movd   %ebx,%xmm0
52e125:	66 0f 70 e0 00       	pshufd $0x0,%xmm0,%xmm4
52e12a:	8d 4e 3c             	lea    0x3c(%esi),%ecx
52e12d:	3b c1                	cmp    %ecx,%eax
52e12f:	77 2e                	ja     0x52e15f
52e131:	3b d6                	cmp    %esi,%edx
52e133:	72 2a                	jb     0x52e15f
52e135:	57                   	push   %edi
52e136:	2b f0                	sub    %eax,%esi
52e138:	bf 10 00 00 00       	mov    $0x10,%edi
52e13d:	0f 1f 00             	nopl   (%eax)
52e140:	8b 14 30             	mov    (%eax,%esi,1),%edx
52e143:	8d 40 04             	lea    0x4(%eax),%eax
52e146:	8b 48 fc             	mov    -0x4(%eax),%ecx
52e149:	33 ca                	xor    %edx,%ecx
52e14b:	23 cb                	and    %ebx,%ecx
52e14d:	33 d1                	xor    %ecx,%edx
52e14f:	89 54 30 fc          	mov    %edx,-0x4(%eax,%esi,1)
52e153:	31 48 fc             	xor    %ecx,-0x4(%eax)
52e156:	83 ef 01             	sub    $0x1,%edi
52e159:	75 e5                	jne    0x52e140
52e15b:	5f                   	pop    %edi
52e15c:	5e                   	pop    %esi
52e15d:	5b                   	pop    %ebx
52e15e:	c3                   	ret
52e15f:	2b f0                	sub    %eax,%esi
52e161:	b9 04 00 00 00       	mov    $0x4,%ecx
52e166:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%eax,%eax,1)
52e16d:	00 00 00
52e170:	8d 40 10             	lea    0x10(%eax),%eax
52e173:	0f 10 4c 06 f0       	movups -0x10(%esi,%eax,1),%xmm1
52e178:	0f 10 58 f0          	movups -0x10(%eax),%xmm3
52e17c:	0f 28 d1             	movaps %xmm1,%xmm2
52e17f:	66 0f ef d3          	pxor   %xmm3,%xmm2
52e183:	66 0f db d4          	pand   %xmm4,%xmm2
52e187:	0f 28 c2             	movaps %xmm2,%xmm0
52e18a:	66 0f ef d3          	pxor   %xmm3,%xmm2
52e18e:	66 0f ef c1          	pxor   %xmm1,%xmm0
52e192:	0f 11 44 06 f0       	movups %xmm0,-0x10(%esi,%eax,1)
52e197:	0f 11 50 f0          	movups %xmm2,-0x10(%eax)
52e19b:	83 e9 01             	sub    $0x1,%ecx
52e19e:	75 d0                	jne    0x52e170
52e1a0:	5e                   	pop    %esi
52e1a1:	5b                   	pop    %ebx
52e1a2:	c3                   	ret
52e1a3:	cc                   	int3
52e1a4:	cc                   	int3
52e1a5:	cc                   	int3
52e1a6:	cc                   	int3
52e1a7:	cc                   	int3
52e1a8:	cc                   	int3
52e1a9:	cc                   	int3
52e1aa:	cc                   	int3
52e1ab:	cc                   	int3
52e1ac:	cc                   	int3
52e1ad:	cc                   	int3
52e1ae:	cc                   	int3
52e1af:	cc                   	int3
52e1b0:	8b 44 24 0c          	mov    0xc(%esp),%eax
52e1b4:	8b 54 24 04          	mov    0x4(%esp),%edx
52e1b8:	56                   	push   %esi
52e1b9:	8b 74 24 0c          	mov    0xc(%esp),%esi
52e1bd:	8d 48 3c             	lea    0x3c(%eax),%ecx
52e1c0:	57                   	push   %edi
52e1c1:	8d 7a 3c             	lea    0x3c(%edx),%edi
52e1c4:	3b d1                	cmp    %ecx,%edx
52e1c6:	77 04                	ja     0x52e1cc
52e1c8:	3b f8                	cmp    %eax,%edi
52e1ca:	73 0b                	jae    0x52e1d7
52e1cc:	8d 4e 3c             	lea    0x3c(%esi),%ecx
52e1cf:	3b d1                	cmp    %ecx,%edx
52e1d1:	77 22                	ja     0x52e1f5
52e1d3:	3b fe                	cmp    %esi,%edi
52e1d5:	72 1e                	jb     0x52e1f5
52e1d7:	2b f0                	sub    %eax,%esi
52e1d9:	bf 10 00 00 00       	mov    $0x10,%edi
52e1de:	2b d0                	sub    %eax,%edx
52e1e0:	8b 0c 06             	mov    (%esi,%eax,1),%ecx
52e1e3:	8d 40 04             	lea    0x4(%eax),%eax
52e1e6:	2b 48 fc             	sub    -0x4(%eax),%ecx
52e1e9:	89 4c 02 fc          	mov    %ecx,-0x4(%edx,%eax,1)
52e1ed:	83 ef 01             	sub    $0x1,%edi
52e1f0:	75 ee                	jne    0x52e1e0
52e1f2:	5f                   	pop    %edi
52e1f3:	5e                   	pop    %esi
52e1f4:	c3                   	ret
52e1f5:	0f 10 0e             	movups (%esi),%xmm1
52e1f8:	5f                   	pop    %edi
52e1f9:	0f 10 00             	movups (%eax),%xmm0
52e1fc:	66 0f fa c8          	psubd  %xmm0,%xmm1
52e200:	0f 10 40 10          	movups 0x10(%eax),%xmm0
52e204:	0f 11 0a             	movups %xmm1,(%edx)
52e207:	0f 10 4e 10          	movups 0x10(%esi),%xmm1
52e20b:	66 0f fa c8          	psubd  %xmm0,%xmm1
52e20f:	0f 10 40 20          	movups 0x20(%eax),%xmm0
52e213:	0f 11 4a 10          	movups %xmm1,0x10(%edx)
52e217:	0f 10 4e 20          	movups 0x20(%esi),%xmm1
52e21b:	66 0f fa c8          	psubd  %xmm0,%xmm1
52e21f:	0f 10 40 30          	movups 0x30(%eax),%xmm0
52e223:	0f 11 4a 20          	movups %xmm1,0x20(%edx)
52e227:	0f 10 4e 30          	movups 0x30(%esi),%xmm1
52e22b:	5e                   	pop    %esi
52e22c:	66 0f fa c8          	psubd  %xmm0,%xmm1
52e230:	0f 11 4a 30          	movups %xmm1,0x30(%edx)
52e234:	c3                   	ret
52e235:	cc                   	int3
52e236:	cc                   	int3
52e237:	cc                   	int3
52e238:	cc                   	int3
52e239:	cc                   	int3
52e23a:	cc                   	int3
52e23b:	cc                   	int3
52e23c:	cc                   	int3
52e23d:	cc                   	int3
52e23e:	cc                   	int3
52e23f:	cc                   	int3
52e240:	53                   	push   %ebx
52e241:	55                   	push   %ebp
52e242:	56                   	push   %esi
52e243:	57                   	push   %edi
52e244:	8b 7c 24 14          	mov    0x14(%esp),%edi
52e248:	bd 0f 00 00 00       	mov    $0xf,%ebp
52e24d:	8b 5f 3c             	mov    0x3c(%edi),%ebx
52e250:	8d 47 34             	lea    0x34(%edi),%eax
52e253:	c1 eb 1c             	shr    $0x1c,%ebx
52e256:	01 5f 20             	add    %ebx,0x20(%edi)
52e259:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
52e260:	8b 70 04             	mov    0x4(%eax),%esi
52e263:	8d 40 ec             	lea    -0x14(%eax),%eax
52e266:	8b 50 1c             	mov    0x1c(%eax),%edx
52e269:	8b ce                	mov    %esi,%ecx
52e26b:	c1 e9 1c             	shr    $0x1c,%ecx
52e26e:	81 e2 ff ff ff 0f    	and    $0xfffffff,%edx
52e274:	03 d1                	add    %ecx,%edx
52e276:	81 e6 ff ff ff 0f    	and    $0xfffffff,%esi
52e27c:	89 50 1c             	mov    %edx,0x1c(%eax)
52e27f:	8b 50 14             	mov    0x14(%eax),%edx
52e282:	8b ca                	mov    %edx,%ecx
52e284:	c1 e9 1c             	shr    $0x1c,%ecx
52e287:	81 e2 ff ff ff 0f    	and    $0xfffffff,%edx
52e28d:	03 f1                	add    %ecx,%esi
52e28f:	89 70 18             	mov    %esi,0x18(%eax)
52e292:	8b 70 10             	mov    0x10(%eax),%esi
52e295:	8b ce                	mov    %esi,%ecx
52e297:	c1 e9 1c             	shr    $0x1c,%ecx
52e29a:	81 e6 ff ff ff 0f    	and    $0xfffffff,%esi
52e2a0:	03 ca                	add    %edx,%ecx
52e2a2:	8b 50 0c             	mov    0xc(%eax),%edx
52e2a5:	89 48 14             	mov    %ecx,0x14(%eax)
52e2a8:	8b ca                	mov    %edx,%ecx
52e2aa:	c1 e9 1c             	shr    $0x1c,%ecx
52e2ad:	81 e2 ff ff ff 0f    	and    $0xfffffff,%edx
52e2b3:	03 ce                	add    %esi,%ecx
52e2b5:	89 48 10             	mov    %ecx,0x10(%eax)
52e2b8:	8b 48 08             	mov    0x8(%eax),%ecx
52e2bb:	c1 e9 1c             	shr    $0x1c,%ecx
52e2be:	03 ca                	add    %edx,%ecx
52e2c0:	89 48 0c             	mov    %ecx,0xc(%eax)
52e2c3:	83 ed 05             	sub    $0x5,%ebp
52e2c6:	75 98                	jne    0x52e260
52e2c8:	8b 07                	mov    (%edi),%eax
52e2ca:	25 ff ff ff 0f       	and    $0xfffffff,%eax
52e2cf:	03 c3                	add    %ebx,%eax
52e2d1:	89 07                	mov    %eax,(%edi)
52e2d3:	5f                   	pop    %edi
52e2d4:	5e                   	pop    %esi
52e2d5:	5d                   	pop    %ebp
52e2d6:	5b                   	pop    %ebx
52e2d7:	c3                   	ret
52e2d8:	cc                   	int3
52e2d9:	cc                   	int3
52e2da:	cc                   	int3
52e2db:	cc                   	int3
52e2dc:	cc                   	int3
52e2dd:	cc                   	int3
52e2de:	cc                   	int3
52e2df:	cc                   	int3
52e2e0:	53                   	push   %ebx
52e2e1:	55                   	push   %ebp
52e2e2:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
52e2e6:	56                   	push   %esi
52e2e7:	8b 74 24 14          	mov    0x14(%esp),%esi
52e2eb:	57                   	push   %edi
52e2ec:	56                   	push   %esi
52e2ed:	8d 5d 40             	lea    0x40(%ebp),%ebx
52e2f0:	8d 7e 40             	lea    0x40(%esi),%edi
52e2f3:	57                   	push   %edi
52e2f4:	53                   	push   %ebx
52e2f5:	e8 56 f0 02 00       	call   0x55d350
52e2fa:	56                   	push   %esi
52e2fb:	57                   	push   %edi
52e2fc:	55                   	push   %ebp
52e2fd:	e8 fe fa 02 00       	call   0x55de00
52e302:	55                   	push   %ebp
52e303:	8d 85 c0 00 00 00    	lea    0xc0(%ebp),%eax
52e309:	53                   	push   %ebx
52e30a:	50                   	push   %eax
52e30b:	e8 10 fc 02 00       	call   0x55df20
52e310:	0f 10 05 e8 8e 64 00 	movups 0x648ee8,%xmm0
52e317:	83 c4 24             	add    $0x24,%esp
52e31a:	0f 11 85 80 00 00 00 	movups %xmm0,0x80(%ebp)
52e321:	0f 10 05 f8 8e 64 00 	movups 0x648ef8,%xmm0
52e328:	5f                   	pop    %edi