4101a6:	83 c0 01             	add    $0x1,%eax
4101a9:	0f 92 c1             	setb   %cl
4101ac:	f7 d9                	neg    %ecx
4101ae:	0b c8                	or     %eax,%ecx
4101b0:	51                   	push   %ecx
4101b1:	8b cf                	mov    %edi,%ecx
4101b3:	e8 f8 2e ff ff       	call   0x4030b0
4101b8:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
4101bc:	8b c8                	mov    %eax,%ecx
4101be:	8b 45 f8             	mov    -0x8(%ebp),%eax
4101c1:	89 47 10             	mov    %eax,0x10(%edi)
4101c4:	8b 45 f0             	mov    -0x10(%ebp),%eax
4101c7:	89 77 14             	mov    %esi,0x14(%edi)
4101ca:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4101cd:	8d 14 00             	lea    (%eax,%eax,1),%edx
4101d0:	8b 45 ec             	mov    -0x14(%ebp),%eax
4101d3:	52                   	push   %edx
4101d4:	53                   	push   %ebx
4101d5:	51                   	push   %ecx
4101d6:	8d 34 45 02 00 00 00 	lea    0x2(,%eax,2),%esi
4101dd:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
4101e0:	89 75 ec             	mov    %esi,-0x14(%ebp)
4101e3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4101e6:	72 54                	jb     0x41023c
4101e8:	8b 37                	mov    (%edi),%esi
4101ea:	e8 91 b4 00 00       	call   0x41b680
4101ef:	ff 75 ec             	push   -0x14(%ebp)
4101f2:	56                   	push   %esi
4101f3:	ff 75 f0             	push   -0x10(%ebp)
4101f6:	e8 85 b4 00 00       	call   0x41b680
4101fb:	8b 45 f4             	mov    -0xc(%ebp),%eax
4101fe:	83 c4 18             	add    $0x18,%esp
410201:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
410208:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
41020e:	72 12                	jb     0x410222
410210:	8b 56 fc             	mov    -0x4(%esi),%edx
410213:	83 c1 23             	add    $0x23,%ecx
410216:	2b f2                	sub    %edx,%esi
410218:	8d 46 fc             	lea    -0x4(%esi),%eax
41021b:	83 f8 1f             	cmp    $0x1f,%eax
41021e:	77 43                	ja     0x410263
410220:	8b f2                	mov    %edx,%esi
410222:	51                   	push   %ecx
410223:	56                   	push   %esi
410224:	e8 8f 99 00 00       	call   0x419bb8
410229:	8b 45 fc             	mov    -0x4(%ebp),%eax
41022c:	83 c4 08             	add    $0x8,%esp
41022f:	89 07                	mov    %eax,(%edi)
410231:	8b c7                	mov    %edi,%eax
410233:	5f                   	pop    %edi
410234:	5e                   	pop    %esi
410235:	5b                   	pop    %ebx
410236:	8b e5                	mov    %ebp,%esp
410238:	5d                   	pop    %ebp
410239:	c2 0c 00             	ret    $0xc
41023c:	e8 3f b4 00 00       	call   0x41b680
410241:	56                   	push   %esi
410242:	57                   	push   %edi
410243:	ff 75 f0             	push   -0x10(%ebp)
410246:	e8 35 b4 00 00       	call   0x41b680
41024b:	8b 45 fc             	mov    -0x4(%ebp),%eax
41024e:	83 c4 18             	add    $0x18,%esp
410251:	89 07                	mov    %eax,(%edi)
410253:	8b c7                	mov    %edi,%eax
410255:	5f                   	pop    %edi
410256:	5e                   	pop    %esi
410257:	5b                   	pop    %ebx
410258:	8b e5                	mov    %ebp,%esp
41025a:	5d                   	pop    %ebp
41025b:	c2 0c 00             	ret    $0xc
41025e:	e8 fd 10 ff ff       	call   0x401360
410263:	e8 2b f7 00 00       	call   0x41f993
410268:	cc                   	int3
410269:	cc                   	int3
41026a:	cc                   	int3
41026b:	cc                   	int3
41026c:	cc                   	int3
41026d:	cc                   	int3
41026e:	cc                   	int3
41026f:	cc                   	int3
410270:	55                   	push   %ebp
410271:	8b ec                	mov    %esp,%ebp
410273:	51                   	push   %ecx
410274:	8b 45 08             	mov    0x8(%ebp),%eax
410277:	53                   	push   %ebx
410278:	57                   	push   %edi
410279:	8b 7d 0c             	mov    0xc(%ebp),%edi
41027c:	8b d9                	mov    %ecx,%ebx
41027e:	89 45 fc             	mov    %eax,-0x4(%ebp)
410281:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
410285:	75 71                	jne    0x4102f8
410287:	56                   	push   %esi
410288:	ff 77 08             	push   0x8(%edi)
41028b:	8b cb                	mov    %ebx,%ecx
41028d:	50                   	push   %eax
41028e:	e8 dd ff ff ff       	call   0x410270
410293:	8b f7                	mov    %edi,%esi
410295:	8b 3f                	mov    (%edi),%edi
410297:	8b 4e 24             	mov    0x24(%esi),%ecx
41029a:	83 f9 08             	cmp    $0x8,%ecx
41029d:	72 2e                	jb     0x4102cd
41029f:	8b 46 10             	mov    0x10(%esi),%eax
4102a2:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4102a9:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4102af:	72 12                	jb     0x4102c3
4102b1:	8b 50 fc             	mov    -0x4(%eax),%edx
4102b4:	83 c1 23             	add    $0x23,%ecx
4102b7:	2b c2                	sub    %edx,%eax
4102b9:	83 c0 fc             	add    $0xfffffffc,%eax
4102bc:	83 f8 1f             	cmp    $0x1f,%eax
4102bf:	77 3f                	ja     0x410300
4102c1:	8b c2                	mov    %edx,%eax
4102c3:	51                   	push   %ecx
4102c4:	50                   	push   %eax
4102c5:	e8 ee 98 00 00       	call   0x419bb8
4102ca:	83 c4 08             	add    $0x8,%esp
4102cd:	33 c0                	xor    %eax,%eax
4102cf:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)
4102d6:	6a 2c                	push   $0x2c
4102d8:	56                   	push   %esi
4102d9:	c7 46 24 07 00 00 00 	movl   $0x7,0x24(%esi)
4102e0:	66 89 46 10          	mov    %ax,0x10(%esi)
4102e4:	e8 cf 98 00 00       	call   0x419bb8
4102e9:	83 c4 08             	add    $0x8,%esp
4102ec:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
4102f0:	75 05                	jne    0x4102f7
4102f2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4102f5:	eb 91                	jmp    0x410288
4102f7:	5e                   	pop    %esi
4102f8:	5f                   	pop    %edi
4102f9:	5b                   	pop    %ebx
4102fa:	8b e5                	mov    %ebp,%esp
4102fc:	5d                   	pop    %ebp
4102fd:	c2 08 00             	ret    $0x8
410300:	e8 8e f6 00 00       	call   0x41f993
410305:	cc                   	int3
410306:	cc                   	int3
410307:	cc                   	int3
410308:	cc                   	int3
410309:	cc                   	int3
41030a:	cc                   	int3
41030b:	cc                   	int3
41030c:	cc                   	int3
41030d:	cc                   	int3
41030e:	cc                   	int3
41030f:	cc                   	int3
410310:	55                   	push   %ebp
410311:	8b ec                	mov    %esp,%ebp
410313:	51                   	push   %ecx
410314:	8b 45 08             	mov    0x8(%ebp),%eax
410317:	53                   	push   %ebx
410318:	56                   	push   %esi
410319:	8b 75 0c             	mov    0xc(%ebp),%esi
41031c:	8b d9                	mov    %ecx,%ebx
41031e:	89 45 fc             	mov    %eax,-0x4(%ebp)
410321:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
410325:	75 2d                	jne    0x410354
410327:	57                   	push   %edi
410328:	ff 76 08             	push   0x8(%esi)
41032b:	8b cb                	mov    %ebx,%ecx
41032d:	50                   	push   %eax
41032e:	e8 dd ff ff ff       	call   0x410310
410333:	8b fe                	mov    %esi,%edi
410335:	8b 36                	mov    (%esi),%esi
410337:	8d 4f 10             	lea    0x10(%edi),%ecx
41033a:	e8 d1 09 00 00       	call   0x410d10
41033f:	6a 40                	push   $0x40
410341:	57                   	push   %edi
410342:	e8 71 98 00 00       	call   0x419bb8
410347:	8b 45 fc             	mov    -0x4(%ebp),%eax
41034a:	83 c4 08             	add    $0x8,%esp
41034d:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
410351:	74 d5                	je     0x410328
410353:	5f                   	pop    %edi
410354:	5e                   	pop    %esi
410355:	5b                   	pop    %ebx
410356:	8b e5                	mov    %ebp,%esp
410358:	5d                   	pop    %ebp
410359:	c2 08 00             	ret    $0x8
41035c:	cc                   	int3
41035d:	cc                   	int3
41035e:	cc                   	int3
41035f:	cc                   	int3
410360:	55                   	push   %ebp
410361:	8b ec                	mov    %esp,%ebp
410363:	83 e4 f0             	and    $0xfffffff0,%esp
410366:	83 ec 48             	sub    $0x48,%esp
410369:	a1 14 50 45 00       	mov    0x455014,%eax
41036e:	33 c4                	xor    %esp,%eax
410370:	89 44 24 44          	mov    %eax,0x44(%esp)
410374:	56                   	push   %esi
410375:	57                   	push   %edi
410376:	8b f9                	mov    %ecx,%edi
410378:	89 54 24 10          	mov    %edx,0x10(%esp)
41037c:	8b c2                	mov    %edx,%eax
41037e:	2b c7                	sub    %edi,%eax
410380:	3d 18 03 00 00       	cmp    $0x318,%eax
410385:	8b 45 0c             	mov    0xc(%ebp),%eax
410388:	0f 8c a2 00 00 00    	jl     0x410430
41038e:	8b 75 08             	mov    0x8(%ebp),%esi
410391:	85 f6                	test   %esi,%esi
410393:	0f 8e b3 00 00 00    	jle    0x41044c
410399:	50                   	push   %eax
41039a:	52                   	push   %edx
41039b:	8b d7                	mov    %edi,%edx
41039d:	8d 4c 24 20          	lea    0x20(%esp),%ecx
4103a1:	e8 6a 05 00 00       	call   0x410910
4103a6:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4103aa:	8b c6                	mov    %esi,%eax
4103ac:	2b 4c 24 24          	sub    0x24(%esp),%ecx
4103b0:	83 c4 08             	add    $0x8,%esp
4103b3:	c1 f8 02             	sar    $0x2,%eax
4103b6:	d1 fe                	sar    $1,%esi
4103b8:	03 f0                	add    %eax,%esi
4103ba:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
4103bf:	f7 e9                	imul   %ecx
4103c1:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4103c5:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
4103ca:	c1 fa 02             	sar    $0x2,%edx
4103cd:	2b cf                	sub    %edi,%ecx
4103cf:	89 75 08             	mov    %esi,0x8(%ebp)
4103d2:	8b f2                	mov    %edx,%esi
4103d4:	c1 ee 1f             	shr    $0x1f,%esi
4103d7:	03 f2                	add    %edx,%esi
4103d9:	f7 e9                	imul   %ecx
4103db:	c1 fa 02             	sar    $0x2,%edx
4103de:	8b c2                	mov    %edx,%eax
4103e0:	c1 e8 1f             	shr    $0x1f,%eax
4103e3:	03 c2                	add    %edx,%eax
4103e5:	3b c6                	cmp    %esi,%eax
4103e7:	8b 45 0c             	mov    0xc(%ebp),%eax
4103ea:	8b 75 08             	mov    0x8(%ebp),%esi
4103ed:	50                   	push   %eax
4103ee:	56                   	push   %esi
4103ef:	7d 15                	jge    0x410406
4103f1:	8b 54 24 20          	mov    0x20(%esp),%edx
4103f5:	8b cf                	mov    %edi,%ecx
4103f7:	e8 64 ff ff ff       	call   0x410360
4103fc:	8b 7c 24 24          	mov    0x24(%esp),%edi
410400:	8b 54 24 18          	mov    0x18(%esp),%edx
410404:	eb 15                	jmp    0x41041b
410406:	8b 54 24 18          	mov    0x18(%esp),%edx
41040a:	8b 4c 24 24          	mov    0x24(%esp),%ecx
41040e:	e8 4d ff ff ff       	call   0x410360
410413:	8b 54 24 20          	mov    0x20(%esp),%edx
410417:	89 54 24 18          	mov    %edx,0x18(%esp)
41041b:	8b c2                	mov    %edx,%eax
41041d:	83 c4 08             	add    $0x8,%esp
410420:	2b c7                	sub    %edi,%eax
410422:	3d 18 03 00 00       	cmp    $0x318,%eax
410427:	8b 45 0c             	mov    0xc(%ebp),%eax
41042a:	0f 8d 61 ff ff ff    	jge    0x410391
410430:	50                   	push   %eax
410431:	8b cf                	mov    %edi,%ecx
410433:	e8 d8 01 00 00       	call   0x410610
410438:	83 c4 04             	add    $0x4,%esp
41043b:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
41043f:	5f                   	pop    %edi
410440:	5e                   	pop    %esi
410441:	33 cc                	xor    %esp,%ecx
410443:	e8 62 97 00 00       	call   0x419baa
410448:	8b e5                	mov    %ebp,%esp
41044a:	5d                   	pop    %ebp
41044b:	c3                   	ret
41044c:	8b ca                	mov    %edx,%ecx
41044e:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
410453:	2b cf                	sub    %edi,%ecx
410455:	f7 e9                	imul   %ecx
410457:	c1 fa 02             	sar    $0x2,%edx
41045a:	8b c2                	mov    %edx,%eax
41045c:	c1 e8 1f             	shr    $0x1f,%eax
41045f:	03 c2                	add    %edx,%eax
410461:	8b c8                	mov    %eax,%ecx
410463:	89 44 24 14          	mov    %eax,0x14(%esp)
410467:	d1 f9                	sar    $1,%ecx
410469:	85 c9                	test   %ecx,%ecx
41046b:	0f 8e 99 00 00 00    	jle    0x41050a
410471:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
410474:	8d 34 c7             	lea    (%edi,%eax,8),%esi
410477:	0f 10 46 e8          	movups -0x18(%esi),%xmm0
41047b:	8d 76 e8             	lea    -0x18(%esi),%esi
41047e:	33 c0                	xor    %eax,%eax
410480:	ff 75 0c             	push   0xc(%ebp)
410483:	0f 11 44 24 24       	movups %xmm0,0x24(%esp)
410488:	49                   	dec    %ecx
410489:	f3 0f 7e 46 10       	movq   0x10(%esi),%xmm0
41048e:	8b d1                	mov    %ecx,%edx
410490:	66 89 06             	mov    %ax,(%esi)
410493:	8d 44 24 24          	lea    0x24(%esp),%eax
410497:	50                   	push   %eax
410498:	ff 74 24 1c          	push   0x1c(%esp)
41049c:	89 4c 24 24          	mov    %ecx,0x24(%esp)
4104a0:	8b cf                	mov    %edi,%ecx
4104a2:	66 0f d6 44 24 3c    	movq   %xmm0,0x3c(%esp)
4104a8:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4104af:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
4104b6:	e8 f5 08 00 00       	call   0x410db0
4104bb:	8b 4c 24 40          	mov    0x40(%esp),%ecx
4104bf:	83 c4 0c             	add    $0xc,%esp
4104c2:	83 f9 08             	cmp    $0x8,%ecx
4104c5:	72 33                	jb     0x4104fa
4104c7:	8b 54 24 20          	mov    0x20(%esp),%edx
4104cb:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4104d2:	8b c2                	mov    %edx,%eax
4104d4:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4104da:	72 14                	jb     0x4104f0
4104dc:	8b 50 fc             	mov    -0x4(%eax),%edx
4104df:	83 c1 23             	add    $0x23,%ecx
4104e2:	2b c2                	sub    %edx,%eax
4104e4:	83 c0 fc             	add    $0xfffffffc,%eax
4104e7:	83 f8 1f             	cmp    $0x1f,%eax
4104ea:	0f 87 0d 01 00 00    	ja     0x4105fd
4104f0:	51                   	push   %ecx
4104f1:	52                   	push   %edx
4104f2:	e8 c1 96 00 00       	call   0x419bb8
4104f7:	83 c4 08             	add    $0x8,%esp
4104fa:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4104fe:	85 c9                	test   %ecx,%ecx
410500:	0f 8f 71 ff ff ff    	jg     0x410477
410506:	8b 44 24 14          	mov    0x14(%esp),%eax
41050a:	83 f8 02             	cmp    $0x2,%eax
41050d:	0f 8c 28 ff ff ff    	jl     0x41043b
410513:	8b 74 24 10          	mov    0x10(%esp),%esi
410517:	b8 ec ff ff ff       	mov    $0xffffffec,%eax
41051c:	2b c7                	sub    %edi,%eax
41051e:	83 c6 e8             	add    $0xffffffe8,%esi
410521:	89 44 24 18          	mov    %eax,0x18(%esp)
410525:	b8 18 00 00 00       	mov    $0x18,%eax
41052a:	2b c7                	sub    %edi,%eax
41052c:	89 44 24 14          	mov    %eax,0x14(%esp)
410530:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
410533:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
410538:	f7 e9                	imul   %ecx
41053a:	c1 fa 02             	sar    $0x2,%edx
41053d:	8b c2                	mov    %edx,%eax
41053f:	c1 e8 1f             	shr    $0x1f,%eax
410542:	03 c2                	add    %edx,%eax
410544:	83 f8 02             	cmp    $0x2,%eax
410547:	0f 8c 95 00 00 00    	jl     0x4105e2
41054d:	0f 10 06             	movups (%esi),%xmm0
410550:	33 c0                	xor    %eax,%eax
410552:	8b ce                	mov    %esi,%ecx
410554:	57                   	push   %edi
410555:	0f 11 44 24 24       	movups %xmm0,0x24(%esp)
41055a:	f3 0f 7e 46 10       	movq   0x10(%esi),%xmm0
41055f:	66 0f d6 44 24 34    	movq   %xmm0,0x34(%esp)
410565:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
41056c:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
410573:	66 89 06             	mov    %ax,(%esi)
410576:	e8 95 46 ff ff       	call   0x404c10