40a001:	01 d1                	add    %edx,%ecx
40a003:	03 54 24 1c          	add    0x1c(%esp),%edx
40a007:	8d 1c 0b             	lea    (%ebx,%ecx,1),%ebx
40a00a:	c4 e3 7b f0 ca 06    	rorx   $0x6,%edx,%ecx
40a010:	c4 e3 7b f0 f2 0b    	rorx   $0xb,%edx,%esi
40a016:	89 54 24 1c          	mov    %edx,0x1c(%esp)
40a01a:	c4 e3 7b f0 fa 19    	rorx   $0x19,%edx,%edi
40a020:	31 f1                	xor    %esi,%ecx
40a022:	c4 e2 68 f2 74 24 04 	andn   0x4(%esp),%edx,%esi
40a029:	31 f9                	xor    %edi,%ecx
40a02b:	23 14 24             	and    (%esp),%edx
40a02e:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
40a032:	09 f2                	or     %esi,%edx
40a034:	c4 e3 7b f0 fb 02    	rorx   $0x2,%ebx,%edi
40a03a:	c4 e3 7b f0 f3 0d    	rorx   $0xd,%ebx,%esi
40a040:	8d 14 0a             	lea    (%edx,%ecx,1),%edx
40a043:	c4 e3 7b f0 cb 16    	rorx   $0x16,%ebx,%ecx
40a049:	31 fe                	xor    %edi,%esi
40a04b:	8b 7c 24 10          	mov    0x10(%esp),%edi
40a04f:	31 f1                	xor    %esi,%ecx
40a051:	31 fb                	xor    %edi,%ebx
40a053:	03 54 24 08          	add    0x8(%esp),%edx
40a057:	21 d8                	and    %ebx,%eax
40a059:	03 54 24 54          	add    0x54(%esp),%edx
40a05d:	31 f8                	xor    %edi,%eax
40a05f:	01 d1                	add    %edx,%ecx
40a061:	03 54 24 18          	add    0x18(%esp),%edx
40a065:	8d 04 08             	lea    (%eax,%ecx,1),%eax
40a068:	c4 e3 7b f0 ca 06    	rorx   $0x6,%edx,%ecx
40a06e:	c4 e3 7b f0 f2 0b    	rorx   $0xb,%edx,%esi
40a074:	89 54 24 18          	mov    %edx,0x18(%esp)
40a078:	c4 e3 7b f0 fa 19    	rorx   $0x19,%edx,%edi
40a07e:	31 f1                	xor    %esi,%ecx
40a080:	c4 e2 68 f2 34 24    	andn   (%esp),%edx,%esi
40a086:	31 f9                	xor    %edi,%ecx
40a088:	23 54 24 1c          	and    0x1c(%esp),%edx
40a08c:	89 44 24 08          	mov    %eax,0x8(%esp)
40a090:	09 f2                	or     %esi,%edx
40a092:	c4 e3 7b f0 f8 02    	rorx   $0x2,%eax,%edi
40a098:	c4 e3 7b f0 f0 0d    	rorx   $0xd,%eax,%esi
40a09e:	8d 14 0a             	lea    (%edx,%ecx,1),%edx
40a0a1:	c4 e3 7b f0 c8 16    	rorx   $0x16,%eax,%ecx
40a0a7:	31 fe                	xor    %edi,%esi
40a0a9:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40a0ad:	31 f1                	xor    %esi,%ecx
40a0af:	31 f8                	xor    %edi,%eax
40a0b1:	03 54 24 04          	add    0x4(%esp),%edx
40a0b5:	21 c3                	and    %eax,%ebx
40a0b7:	03 54 24 58          	add    0x58(%esp),%edx
40a0bb:	31 fb                	xor    %edi,%ebx
40a0bd:	01 d1                	add    %edx,%ecx
40a0bf:	03 54 24 14          	add    0x14(%esp),%edx
40a0c3:	8d 1c 0b             	lea    (%ebx,%ecx,1),%ebx
40a0c6:	c4 e3 7b f0 ca 06    	rorx   $0x6,%edx,%ecx
40a0cc:	c4 e3 7b f0 f2 0b    	rorx   $0xb,%edx,%esi
40a0d2:	89 54 24 14          	mov    %edx,0x14(%esp)
40a0d6:	c4 e3 7b f0 fa 19    	rorx   $0x19,%edx,%edi
40a0dc:	31 f1                	xor    %esi,%ecx
40a0de:	c4 e2 68 f2 74 24 1c 	andn   0x1c(%esp),%edx,%esi
40a0e5:	31 f9                	xor    %edi,%ecx
40a0e7:	23 54 24 18          	and    0x18(%esp),%edx
40a0eb:	89 5c 24 04          	mov    %ebx,0x4(%esp)
40a0ef:	09 f2                	or     %esi,%edx
40a0f1:	c4 e3 7b f0 fb 02    	rorx   $0x2,%ebx,%edi
40a0f7:	c4 e3 7b f0 f3 0d    	rorx   $0xd,%ebx,%esi
40a0fd:	8d 14 0a             	lea    (%edx,%ecx,1),%edx
40a100:	c4 e3 7b f0 cb 16    	rorx   $0x16,%ebx,%ecx
40a106:	31 fe                	xor    %edi,%esi
40a108:	8b 7c 24 08          	mov    0x8(%esp),%edi
40a10c:	31 f1                	xor    %esi,%ecx
40a10e:	31 fb                	xor    %edi,%ebx
40a110:	03 14 24             	add    (%esp),%edx
40a113:	21 d8                	and    %ebx,%eax
40a115:	03 54 24 5c          	add    0x5c(%esp),%edx
40a119:	31 f8                	xor    %edi,%eax
40a11b:	01 d1                	add    %edx,%ecx
40a11d:	03 54 24 10          	add    0x10(%esp),%edx
40a121:	8d 04 08             	lea    (%eax,%ecx,1),%eax
40a124:	8b 74 24 60          	mov    0x60(%esp),%esi
40a128:	31 fb                	xor    %edi,%ebx
40a12a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40a12e:	03 06                	add    (%esi),%eax
40a130:	03 5e 04             	add    0x4(%esi),%ebx
40a133:	03 7e 08             	add    0x8(%esi),%edi
40a136:	03 4e 0c             	add    0xc(%esi),%ecx
40a139:	89 06                	mov    %eax,(%esi)
40a13b:	89 5e 04             	mov    %ebx,0x4(%esi)
40a13e:	89 7e 08             	mov    %edi,0x8(%esi)
40a141:	89 4e 0c             	mov    %ecx,0xc(%esi)
40a144:	89 5c 24 04          	mov    %ebx,0x4(%esp)
40a148:	31 fb                	xor    %edi,%ebx
40a14a:	89 7c 24 08          	mov    %edi,0x8(%esp)
40a14e:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
40a152:	8b 7c 24 14          	mov    0x14(%esp),%edi
40a156:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40a15a:	03 56 10             	add    0x10(%esi),%edx
40a15d:	03 7e 14             	add    0x14(%esi),%edi
40a160:	03 4e 18             	add    0x18(%esi),%ecx
40a163:	89 56 10             	mov    %edx,0x10(%esi)
40a166:	89 7e 14             	mov    %edi,0x14(%esi)
40a169:	89 7c 24 14          	mov    %edi,0x14(%esp)
40a16d:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
40a171:	89 4e 18             	mov    %ecx,0x18(%esi)
40a174:	03 7e 1c             	add    0x1c(%esi),%edi
40a177:	89 4c 24 18          	mov    %ecx,0x18(%esp)
40a17b:	89 7e 1c             	mov    %edi,0x1c(%esi)
40a17e:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
40a182:	8b 7c 24 64          	mov    0x64(%esp),%edi
40a186:	c5 f9 6f 7d 40       	vmovdqa 0x40(%ebp),%xmm7
40a18b:	81 ed c0 00 00 00    	sub    $0xc0,%ebp
40a191:	3b 7c 24 68          	cmp    0x68(%esp),%edi
40a195:	0f 82 e5 f0 ff ff    	jb     0x409280
40a19b:	8b 64 24 6c          	mov    0x6c(%esp),%esp
40a19f:	c5 fc 77             	vzeroall
40a1a2:	5f                   	pop    %edi
40a1a3:	5e                   	pop    %esi
40a1a4:	5b                   	pop    %ebx
40a1a5:	5d                   	pop    %ebp
40a1a6:	c3                   	ret
40a1a7:	cc                   	int3
40a1a8:	cc                   	int3
40a1a9:	cc                   	int3
40a1aa:	cc                   	int3
40a1ab:	cc                   	int3
40a1ac:	cc                   	int3
40a1ad:	cc                   	int3
40a1ae:	cc                   	int3
40a1af:	cc                   	int3
40a1b0:	cc                   	int3
40a1b1:	cc                   	int3
40a1b2:	cc                   	int3
40a1b3:	cc                   	int3
40a1b4:	cc                   	int3
40a1b5:	cc                   	int3
40a1b6:	cc                   	int3
40a1b7:	cc                   	int3
40a1b8:	cc                   	int3
40a1b9:	cc                   	int3
40a1ba:	cc                   	int3
40a1bb:	cc                   	int3
40a1bc:	cc                   	int3
40a1bd:	cc                   	int3
40a1be:	cc                   	int3
40a1bf:	cc                   	int3
40a1c0:	55                   	push   %ebp
40a1c1:	53                   	push   %ebx
40a1c2:	56                   	push   %esi
40a1c3:	57                   	push   %edi
40a1c4:	8b 74 24 14          	mov    0x14(%esp),%esi
40a1c8:	8b 7c 24 18          	mov    0x18(%esp),%edi
40a1cc:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40a1d0:	89 e3                	mov    %esp,%ebx
40a1d2:	e8 00 00 00 00       	call   0x40a1d7
40a1d7:	5d                   	pop    %ebp
40a1d8:	8d ad 69 26 00 00    	lea    0x2669(%ebp),%ebp
40a1de:	83 ec 10             	sub    $0x10,%esp
40a1e1:	83 e4 c0             	and    $0xffffffc0,%esp
40a1e4:	c1 e0 07             	shl    $0x7,%eax
40a1e7:	01 f8                	add    %edi,%eax
40a1e9:	89 34 24             	mov    %esi,(%esp)
40a1ec:	89 7c 24 04          	mov    %edi,0x4(%esp)
40a1f0:	89 44 24 08          	mov    %eax,0x8(%esp)
40a1f4:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
40a1f8:	8d 15 a0 73 71 00    	lea    0x7173a0,%edx
40a1fe:	8b 0a                	mov    (%edx),%ecx
40a200:	f7 c1 00 00 00 04    	test   $0x4000000,%ecx
40a206:	0f 84 34 21 00 00    	je     0x40c340
40a20c:	8b 52 04             	mov    0x4(%edx),%edx
40a20f:	0f 6f 06             	movq   (%esi),%mm0
40a212:	81 e1 00 00 00 01    	and    $0x1000000,%ecx
40a218:	0f 6f 4e 08          	movq   0x8(%esi),%mm1
40a21c:	81 e2 00 02 00 00    	and    $0x200,%edx
40a222:	0f 6f 56 10          	movq   0x10(%esi),%mm2
40a226:	09 d1                	or     %edx,%ecx
40a228:	0f 6f 5e 18          	movq   0x18(%esi),%mm3
40a22c:	0f 6f 66 20          	movq   0x20(%esi),%mm4
40a230:	0f 6f 6e 28          	movq   0x28(%esi),%mm5
40a234:	0f 6f 76 30          	movq   0x30(%esi),%mm6
40a238:	0f 6f 7e 38          	movq   0x38(%esi),%mm7
40a23c:	81 f9 00 02 00 01    	cmp    $0x1000200,%ecx
40a242:	0f 84 b8 04 00 00    	je     0x40a700
40a248:	83 ec 50             	sub    $0x50,%esp
40a24b:	e9 00 00 00 00       	jmp    0x40a250
40a250:	0f 7f 4c 24 08       	movq   %mm1,0x8(%esp)
40a255:	0f 7f 54 24 10       	movq   %mm2,0x10(%esp)
40a25a:	0f 7f 5c 24 18       	movq   %mm3,0x18(%esp)
40a25f:	0f 7f 6c 24 28       	movq   %mm5,0x28(%esp)
40a264:	0f 7f 74 24 30       	movq   %mm6,0x30(%esp)
40a269:	0f ef d1             	pxor   %mm1,%mm2
40a26c:	0f 7f 7c 24 38       	movq   %mm7,0x38(%esp)
40a271:	0f 6f d8             	movq   %mm0,%mm3
40a274:	8b 07                	mov    (%edi),%eax
40a276:	8b 5f 04             	mov    0x4(%edi),%ebx
40a279:	83 c7 08             	add    $0x8,%edi
40a27c:	ba 0f 00 00 00       	mov    $0xf,%edx
40a281:	0f c8                	bswap  %eax
40a283:	0f cb                	bswap  %ebx
40a285:	e9 06 00 00 00       	jmp    0x40a290
40a28a:	90                   	nop
40a28b:	90                   	nop
40a28c:	90                   	nop
40a28d:	90                   	nop
40a28e:	90                   	nop
40a28f:	90                   	nop
40a290:	0f 6e c8             	movd   %eax,%mm1
40a293:	8b 07                	mov    (%edi),%eax
40a295:	0f 6e fb             	movd   %ebx,%mm7
40a298:	8b 5f 04             	mov    0x4(%edi),%ebx
40a29b:	83 c7 08             	add    $0x8,%edi
40a29e:	0f c8                	bswap  %eax
40a2a0:	0f cb                	bswap  %ebx
40a2a2:	0f 62 f9             	punpckldq %mm1,%mm7
40a2a5:	0f 6f cc             	movq   %mm4,%mm1
40a2a8:	0f ef ee             	pxor   %mm6,%mm5
40a2ab:	0f 73 d1 0e          	psrlq  $0xe,%mm1
40a2af:	0f 7f 64 24 20       	movq   %mm4,0x20(%esp)
40a2b4:	0f db ec             	pand   %mm4,%mm5
40a2b7:	0f 73 f4 17          	psllq  $0x17,%mm4
40a2bb:	0f 6f c3             	movq   %mm3,%mm0
40a2be:	0f 7f 7c 24 48       	movq   %mm7,0x48(%esp)
40a2c3:	0f 6f d9             	movq   %mm1,%mm3
40a2c6:	0f 73 d1 04          	psrlq  $0x4,%mm1
40a2ca:	0f ef ee             	pxor   %mm6,%mm5
40a2cd:	0f ef dc             	pxor   %mm4,%mm3
40a2d0:	0f 73 f4 17          	psllq  $0x17,%mm4
40a2d4:	0f ef d9             	pxor   %mm1,%mm3
40a2d7:	0f 7f 04 24          	movq   %mm0,(%esp)
40a2db:	0f d4 fd             	paddq  %mm5,%mm7
40a2de:	0f ef dc             	pxor   %mm4,%mm3
40a2e1:	0f 73 d1 17          	psrlq  $0x17,%mm1
40a2e5:	0f d4 7c 24 38       	paddq  0x38(%esp),%mm7
40a2ea:	0f ef d9             	pxor   %mm1,%mm3
40a2ed:	0f 73 f4 04          	psllq  $0x4,%mm4
40a2f1:	0f d4 7d 00          	paddq  0x0(%ebp),%mm7
40a2f5:	0f ef dc             	pxor   %mm4,%mm3
40a2f8:	0f 6f 64 24 18       	movq   0x18(%esp),%mm4
40a2fd:	0f d4 df             	paddq  %mm7,%mm3
40a300:	0f 6f e8             	movq   %mm0,%mm5
40a303:	0f 73 d5 1c          	psrlq  $0x1c,%mm5
40a307:	0f d4 e3             	paddq  %mm3,%mm4
40a30a:	0f 6f f0             	movq   %mm0,%mm6
40a30d:	0f 6f fd             	movq   %mm5,%mm7
40a310:	0f 73 f6 19          	psllq  $0x19,%mm6
40a314:	0f 6f 4c 24 08       	movq   0x8(%esp),%mm1
40a319:	0f 73 d5 06          	psrlq  $0x6,%mm5
40a31d:	0f ef fe             	pxor   %mm6,%mm7
40a320:	83 ec 08             	sub    $0x8,%esp
40a323:	0f 73 f6 05          	psllq  $0x5,%mm6
40a327:	0f ef fd             	pxor   %mm5,%mm7
40a32a:	0f ef c1             	pxor   %mm1,%mm0
40a32d:	0f 73 d5 05          	psrlq  $0x5,%mm5
40a331:	0f ef fe             	pxor   %mm6,%mm7
40a334:	0f db d0             	pand   %mm0,%mm2
40a337:	0f 73 f6 06          	psllq  $0x6,%mm6
40a33b:	0f ef fd             	pxor   %mm5,%mm7
40a33e:	0f ef d1             	pxor   %mm1,%mm2
40a341:	0f ef f7             	pxor   %mm7,%mm6
40a344:	0f 6f 6c 24 28       	movq   0x28(%esp),%mm5
40a349:	0f d4 da             	paddq  %mm2,%mm3
40a34c:	0f 6f d0             	movq   %mm0,%mm2
40a34f:	83 c5 08             	add    $0x8,%ebp
40a352:	0f d4 de             	paddq  %mm6,%mm3
40a355:	0f 6f 74 24 30       	movq   0x30(%esp),%mm6
40a35a:	4a                   	dec    %edx
40a35b:	0f 85 2f ff ff ff    	jne    0x40a290
40a361:	0f 6e c8             	movd   %eax,%mm1
40a364:	0f 6e fb             	movd   %ebx,%mm7
40a367:	0f 62 f9             	punpckldq %mm1,%mm7
40a36a:	0f 6f cc             	movq   %mm4,%mm1
40a36d:	0f ef ee             	pxor   %mm6,%mm5
40a370:	0f 73 d1 0e          	psrlq  $0xe,%mm1
40a374:	0f 7f 64 24 20       	movq   %mm4,0x20(%esp)
40a379:	0f db ec             	pand   %mm4,%mm5
40a37c:	0f 73 f4 17          	psllq  $0x17,%mm4
40a380:	0f 6f c3             	movq   %mm3,%mm0
40a383:	0f 7f 7c 24 48       	movq   %mm7,0x48(%esp)
40a388:	0f 6f d9             	movq   %mm1,%mm3
40a38b:	0f 73 d1 04          	psrlq  $0x4,%mm1
40a38f:	0f ef ee             	pxor   %mm6,%mm5
40a392:	0f ef dc             	pxor   %mm4,%mm3
40a395:	0f 73 f4 17          	psllq  $0x17,%mm4
40a399:	0f ef d9             	pxor   %mm1,%mm3
40a39c:	0f 7f 04 24          	movq   %mm0,(%esp)
40a3a0:	0f d4 fd             	paddq  %mm5,%mm7
40a3a3:	0f ef dc             	pxor   %mm4,%mm3
40a3a6:	0f 73 d1 17          	psrlq  $0x17,%mm1
40a3aa:	0f d4 7c 24 38       	paddq  0x38(%esp),%mm7
40a3af:	0f ef d9             	pxor   %mm1,%mm3
40a3b2:	0f 73 f4 04          	psllq  $0x4,%mm4
40a3b6:	0f d4 7d 00          	paddq  0x0(%ebp),%mm7
40a3ba:	0f ef dc             	pxor   %mm4,%mm3
40a3bd:	0f 6f 64 24 18       	movq   0x18(%esp),%mm4
40a3c2:	0f d4 df             	paddq  %mm7,%mm3
40a3c5:	0f 6f e8             	movq   %mm0,%mm5
40a3c8:	0f 73 d5 1c          	psrlq  $0x1c,%mm5
40a3cc:	0f d4 e3             	paddq  %mm3,%mm4
40a3cf:	0f 6f f0             	movq   %mm0,%mm6
40a3d2:	0f 6f fd             	movq   %mm5,%mm7
40a3d5:	0f 73 f6 19          	psllq  $0x19,%mm6
40a3d9:	0f 6f 4c 24 08       	movq   0x8(%esp),%mm1
40a3de:	0f 73 d5 06          	psrlq  $0x6,%mm5
40a3e2:	0f ef fe             	pxor   %mm6,%mm7
40a3e5:	83 ec 08             	sub    $0x8,%esp
40a3e8:	0f 73 f6 05          	psllq  $0x5,%mm6
40a3ec:	0f ef fd             	pxor   %mm5,%mm7
40a3ef:	0f ef c1             	pxor   %mm1,%mm0
40a3f2:	0f 73 d5 05          	psrlq  $0x5,%mm5
40a3f6:	0f ef fe             	pxor   %mm6,%mm7
40a3f9:	0f db d0             	pand   %mm0,%mm2
40a3fc:	0f 73 f6 06          	psllq  $0x6,%mm6
40a400:	0f ef fd             	pxor   %mm5,%mm7
40a403:	0f ef d1             	pxor   %mm1,%mm2
40a406:	0f ef f7             	pxor   %mm7,%mm6
40a409:	0f 6f bc 24 c0 00 00 	movq   0xc0(%esp),%mm7
40a410:	00
40a411:	0f d4 da             	paddq  %mm2,%mm3
40a414:	0f 6f d0             	movq   %mm0,%mm2
40a417:	83 c5 08             	add    $0x8,%ebp
40a41a:	0f d4 de             	paddq  %mm6,%mm3
40a41d:	0f ef c0             	pxor   %mm0,%mm0
40a420:	ba 20 00 00 00       	mov    $0x20,%edx
40a425:	e9 06 00 00 00       	jmp    0x40a430
40a42a:	90                   	nop
40a42b:	90                   	nop
40a42c:	90                   	nop
40a42d:	90                   	nop
40a42e:	90                   	nop
40a42f:	90                   	nop
40a430:	0f 6f 6c 24 58       	movq   0x58(%esp),%mm5
40a435:	0f 6f cf             	movq   %mm7,%mm1
40a438:	0f 73 d7 01          	psrlq  $0x1,%mm7
40a43c:	0f 6f f5             	movq   %mm5,%mm6
40a43f:	0f 73 d5 06          	psrlq  $0x6,%mm5
40a443:	0f 73 f1 38          	psllq  $0x38,%mm1
40a447:	0f d4 c3             	paddq  %mm3,%mm0
40a44a:	0f 6f df             	movq   %mm7,%mm3
40a44d:	0f 73 d7 06          	psrlq  $0x6,%mm7
40a451:	0f ef d9             	pxor   %mm1,%mm3
40a454:	0f 73 f1 07          	psllq  $0x7,%mm1
40a458:	0f ef df             	pxor   %mm7,%mm3
40a45b:	0f 73 d7 01          	psrlq  $0x1,%mm7
40a45f:	0f ef d9             	pxor   %mm1,%mm3
40a462:	0f 6f cd             	movq   %mm5,%mm1
40a465:	0f 73 d5 0d          	psrlq  $0xd,%mm5
40a469:	0f ef fb             	pxor   %mm3,%mm7
40a46c:	0f 73 f6 03          	psllq  $0x3,%mm6
40a470:	0f ef cd             	pxor   %mm5,%mm1
40a473:	0f d4 bc 24 c8 00 00 	paddq  0xc8(%esp),%mm7
40a47a:	00
40a47b:	0f ef ce             	pxor   %mm6,%mm1