40a1e0:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40a1e7:	c7 45 e4 07 00 00 00 	movl   $0x7,-0x1c(%ebp)
40a1ee:	66 89 45 d0          	mov    %ax,-0x30(%ebp)
40a1f2:	0f 57 c0             	xorps  %xmm0,%xmm0
40a1f5:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40a1f9:	66 0f 13 45 e8       	movlpd %xmm0,-0x18(%ebp)
40a1fe:	68 c8 00 00 00       	push   $0xc8
40a203:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a206:	e8 cd f7 05 00       	call   0x4699d8
40a20b:	68 c8 00 00 00       	push   $0xc8
40a210:	8b f0                	mov    %eax,%esi
40a212:	6a 00                	push   $0x0
40a214:	56                   	push   %esi
40a215:	89 75 cc             	mov    %esi,-0x34(%ebp)
40a218:	e8 93 19 06 00       	call   0x46bbb0
40a21d:	83 c4 10             	add    $0x10,%esp
40a220:	8b ce                	mov    %esi,%ecx
40a222:	e8 b9 ff 01 00       	call   0x42a1e0
40a227:	8b c8                	mov    %eax,%ecx
40a229:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40a22c:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40a230:	8d 45 0c             	lea    0xc(%ebp),%eax
40a233:	83 7d 20 08          	cmpl   $0x8,0x20(%ebp)
40a237:	0f 43 45 0c          	cmovae 0xc(%ebp),%eax
40a23b:	8b f0                	mov    %eax,%esi
40a23d:	89 45 cc             	mov    %eax,-0x34(%ebp)
40a240:	8d 56 02             	lea    0x2(%esi),%edx
40a243:	66 8b 06             	mov    (%esi),%ax
40a246:	83 c6 02             	add    $0x2,%esi
40a249:	66 85 c0             	test   %ax,%ax
40a24c:	75 f5                	jne    0x40a243
40a24e:	2b f2                	sub    %edx,%esi
40a250:	d1 fe                	sar    $1,%esi
40a252:	e8 99 00 02 00       	call   0x42a2f0
40a257:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40a25a:	e8 11 00 02 00       	call   0x42a270
40a25f:	8b 45 e8             	mov    -0x18(%ebp),%eax
40a262:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40a265:	8b 10                	mov    (%eax),%edx
40a267:	83 c0 04             	add    $0x4,%eax
40a26a:	50                   	push   %eax
40a26b:	83 ec 10             	sub    $0x10,%esp
40a26e:	8d 04 36             	lea    (%esi,%esi,1),%eax
40a271:	50                   	push   %eax
40a272:	ff 75 cc             	push   -0x34(%ebp)
40a275:	52                   	push   %edx
40a276:	e8 85 fb 01 00       	call   0x429e00
40a27b:	83 c4 20             	add    $0x20,%esp
40a27e:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
40a282:	0f 84 f8 00 00 00    	je     0x40a380
40a288:	0f 10 45 0c          	movups 0xc(%ebp),%xmm0
40a28c:	8b 75 e8             	mov    -0x18(%ebp),%esi
40a28f:	33 c0                	xor    %eax,%eax
40a291:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40a297:	8b ce                	mov    %esi,%ecx
40a299:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
40a2a0:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)
40a2a7:	0f 11 07             	movups %xmm0,(%edi)
40a2aa:	66 89 45 0c          	mov    %ax,0xc(%ebp)
40a2ae:	f3 0f 7e 45 1c       	movq   0x1c(%ebp),%xmm0
40a2b3:	66 0f d6 47 10       	movq   %xmm0,0x10(%edi)
40a2b8:	c7 45 1c 00 00 00 00 	movl   $0x0,0x1c(%ebp)
40a2bf:	c7 45 20 07 00 00 00 	movl   $0x7,0x20(%ebp)
40a2c6:	e8 25 00 02 00       	call   0x42a2f0
40a2cb:	68 c8 00 00 00       	push   $0xc8
40a2d0:	56                   	push   %esi
40a2d1:	e8 32 f7 05 00       	call   0x469a08
40a2d6:	8b 4d 20             	mov    0x20(%ebp),%ecx
40a2d9:	83 c4 08             	add    $0x8,%esp
40a2dc:	83 f9 08             	cmp    $0x8,%ecx
40a2df:	72 32                	jb     0x40a313
40a2e1:	8b 55 0c             	mov    0xc(%ebp),%edx
40a2e4:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40a2eb:	8b c2                	mov    %edx,%eax
40a2ed:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a2f3:	72 14                	jb     0x40a309
40a2f5:	8b 50 fc             	mov    -0x4(%eax),%edx
40a2f8:	83 c1 23             	add    $0x23,%ecx
40a2fb:	2b c2                	sub    %edx,%eax
40a2fd:	83 c0 fc             	add    $0xfffffffc,%eax
40a300:	83 f8 1f             	cmp    $0x1f,%eax
40a303:	0f 87 00 02 00 00    	ja     0x40a509
40a309:	51                   	push   %ecx
40a30a:	52                   	push   %edx
40a30b:	e8 f8 f6 05 00       	call   0x469a08
40a310:	83 c4 08             	add    $0x8,%esp
40a313:	8b 4d 38             	mov    0x38(%ebp),%ecx
40a316:	33 c0                	xor    %eax,%eax
40a318:	c7 45 1c 00 00 00 00 	movl   $0x0,0x1c(%ebp)
40a31f:	c7 45 20 07 00 00 00 	movl   $0x7,0x20(%ebp)
40a326:	66 89 45 0c          	mov    %ax,0xc(%ebp)
40a32a:	83 f9 08             	cmp    $0x8,%ecx
40a32d:	72 32                	jb     0x40a361
40a32f:	8b 55 24             	mov    0x24(%ebp),%edx
40a332:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40a339:	8b c2                	mov    %edx,%eax
40a33b:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a341:	72 14                	jb     0x40a357
40a343:	8b 50 fc             	mov    -0x4(%eax),%edx
40a346:	83 c1 23             	add    $0x23,%ecx
40a349:	2b c2                	sub    %edx,%eax
40a34b:	83 c0 fc             	add    $0xfffffffc,%eax
40a34e:	83 f8 1f             	cmp    $0x1f,%eax
40a351:	0f 87 b2 01 00 00    	ja     0x40a509
40a357:	51                   	push   %ecx
40a358:	52                   	push   %edx
40a359:	e8 aa f6 05 00       	call   0x469a08
40a35e:	83 c4 08             	add    $0x8,%esp
40a361:	8b c7                	mov    %edi,%eax
40a363:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a366:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a36d:	59                   	pop    %ecx
40a36e:	5f                   	pop    %edi
40a36f:	5e                   	pop    %esi
40a370:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a373:	33 cd                	xor    %ebp,%ecx
40a375:	e8 50 f6 05 00       	call   0x4699ca
40a37a:	8b e5                	mov    %ebp,%esp
40a37c:	5d                   	pop    %ebp
40a37d:	c2 34 00             	ret    $0x34
40a380:	8b 45 e8             	mov    -0x18(%ebp),%eax
40a383:	8b 10                	mov    (%eax),%edx
40a385:	85 d2                	test   %edx,%edx
40a387:	74 1d                	je     0x40a3a6
40a389:	8b 52 10             	mov    0x10(%edx),%edx
40a38c:	85 d2                	test   %edx,%edx
40a38e:	74 16                	je     0x40a3a6
40a390:	8b 0a                	mov    (%edx),%ecx
40a392:	8b c2                	mov    %edx,%eax
40a394:	c1 e9 08             	shr    $0x8,%ecx
40a397:	2b c1                	sub    %ecx,%eax
40a399:	8b 08                	mov    (%eax),%ecx
40a39b:	8d 41 e0             	lea    -0x20(%ecx),%eax
40a39e:	f7 d9                	neg    %ecx
40a3a0:	1b c9                	sbb    %ecx,%ecx
40a3a2:	85 c8                	test   %ecx,%eax
40a3a4:	75 02                	jne    0x40a3a8
40a3a6:	33 d2                	xor    %edx,%edx
40a3a8:	6a 0a                	push   $0xa
40a3aa:	68 24 fd 4a 00       	push   $0x4afd24
40a3af:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40a3b2:	89 55 cc             	mov    %edx,-0x34(%ebp)
40a3b5:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
40a3bc:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
40a3c3:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
40a3ca:	e8 91 7c ff ff       	call   0x402060
40a3cf:	8d 45 ac             	lea    -0x54(%ebp),%eax
40a3d2:	50                   	push   %eax
40a3d3:	8d 45 cc             	lea    -0x34(%ebp),%eax
40a3d6:	50                   	push   %eax
40a3d7:	8d 45 24             	lea    0x24(%ebp),%eax
40a3da:	50                   	push   %eax
40a3db:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40a3de:	50                   	push   %eax
40a3df:	e8 fc 8d 00 00       	call   0x4131e0
40a3e4:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40a3e7:	83 f9 08             	cmp    $0x8,%ecx
40a3ea:	72 32                	jb     0x40a41e
40a3ec:	8b 55 b4             	mov    -0x4c(%ebp),%edx
40a3ef:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40a3f6:	8b c2                	mov    %edx,%eax
40a3f8:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a3fe:	72 14                	jb     0x40a414
40a400:	8b 50 fc             	mov    -0x4(%eax),%edx
40a403:	83 c1 23             	add    $0x23,%ecx
40a406:	2b c2                	sub    %edx,%eax
40a408:	83 c0 fc             	add    $0xfffffffc,%eax
40a40b:	83 f8 1f             	cmp    $0x1f,%eax
40a40e:	0f 87 f5 00 00 00    	ja     0x40a509
40a414:	51                   	push   %ecx
40a415:	52                   	push   %edx
40a416:	e8 ed f5 05 00       	call   0x469a08
40a41b:	83 c4 08             	add    $0x8,%esp
40a41e:	8d 45 d0             	lea    -0x30(%ebp),%eax
40a421:	50                   	push   %eax
40a422:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40a425:	e8 c6 8b 00 00       	call   0x412ff0
40a42a:	0f 10 45 d0          	movups -0x30(%ebp),%xmm0
40a42e:	8b 75 ec             	mov    -0x14(%ebp),%esi
40a431:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40a437:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
40a43e:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)
40a445:	0f 11 07             	movups %xmm0,(%edi)
40a448:	f3 0f 7e 45 e0       	movq   -0x20(%ebp),%xmm0
40a44d:	66 0f d6 47 10       	movq   %xmm0,0x10(%edi)
40a452:	85 f6                	test   %esi,%esi
40a454:	74 15                	je     0x40a46b
40a456:	8b ce                	mov    %esi,%ecx
40a458:	e8 93 fe 01 00       	call   0x42a2f0
40a45d:	68 c8 00 00 00       	push   $0xc8
40a462:	56                   	push   %esi
40a463:	e8 a0 f5 05 00       	call   0x469a08
40a468:	83 c4 08             	add    $0x8,%esp
40a46b:	8b 75 e8             	mov    -0x18(%ebp),%esi
40a46e:	85 f6                	test   %esi,%esi
40a470:	74 15                	je     0x40a487
40a472:	8b ce                	mov    %esi,%ecx
40a474:	e8 77 fe 01 00       	call   0x42a2f0
40a479:	68 c8 00 00 00       	push   $0xc8
40a47e:	56                   	push   %esi
40a47f:	e8 84 f5 05 00       	call   0x469a08
40a484:	83 c4 08             	add    $0x8,%esp
40a487:	8b 4d 20             	mov    0x20(%ebp),%ecx
40a48a:	83 f9 08             	cmp    $0x8,%ecx
40a48d:	72 2e                	jb     0x40a4bd
40a48f:	8b 55 0c             	mov    0xc(%ebp),%edx
40a492:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40a499:	8b c2                	mov    %edx,%eax
40a49b:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a4a1:	72 10                	jb     0x40a4b3
40a4a3:	8b 50 fc             	mov    -0x4(%eax),%edx
40a4a6:	83 c1 23             	add    $0x23,%ecx
40a4a9:	2b c2                	sub    %edx,%eax
40a4ab:	83 c0 fc             	add    $0xfffffffc,%eax
40a4ae:	83 f8 1f             	cmp    $0x1f,%eax
40a4b1:	77 56                	ja     0x40a509
40a4b3:	51                   	push   %ecx
40a4b4:	52                   	push   %edx
40a4b5:	e8 4e f5 05 00       	call   0x469a08
40a4ba:	83 c4 08             	add    $0x8,%esp
40a4bd:	8b 4d 38             	mov    0x38(%ebp),%ecx
40a4c0:	33 c0                	xor    %eax,%eax
40a4c2:	c7 45 1c 00 00 00 00 	movl   $0x0,0x1c(%ebp)
40a4c9:	c7 45 20 07 00 00 00 	movl   $0x7,0x20(%ebp)
40a4d0:	66 89 45 0c          	mov    %ax,0xc(%ebp)
40a4d4:	83 f9 08             	cmp    $0x8,%ecx
40a4d7:	0f 82 84 fe ff ff    	jb     0x40a361
40a4dd:	8b 55 24             	mov    0x24(%ebp),%edx
40a4e0:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40a4e7:	8b c2                	mov    %edx,%eax
40a4e9:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a4ef:	0f 82 62 fe ff ff    	jb     0x40a357
40a4f5:	8b 50 fc             	mov    -0x4(%eax),%edx
40a4f8:	83 c1 23             	add    $0x23,%ecx
40a4fb:	2b c2                	sub    %edx,%eax
40a4fd:	83 c0 fc             	add    $0xfffffffc,%eax
40a500:	83 f8 1f             	cmp    $0x1f,%eax
40a503:	0f 86 4e fe ff ff    	jbe    0x40a357
40a509:	e8 23 f1 06 00       	call   0x479631
40a50e:	cc                   	int3
40a50f:	cc                   	int3
40a510:	56                   	push   %esi
40a511:	8b f1                	mov    %ecx,%esi
40a513:	8b 06                	mov    (%esi),%eax
40a515:	85 c0                	test   %eax,%eax
40a517:	74 40                	je     0x40a559
40a519:	8b 4e 08             	mov    0x8(%esi),%ecx
40a51c:	2b c8                	sub    %eax,%ecx
40a51e:	83 e1 fc             	and    $0xfffffffc,%ecx
40a521:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a527:	72 12                	jb     0x40a53b
40a529:	8b 50 fc             	mov    -0x4(%eax),%edx
40a52c:	83 c1 23             	add    $0x23,%ecx
40a52f:	2b c2                	sub    %edx,%eax
40a531:	83 c0 fc             	add    $0xfffffffc,%eax
40a534:	83 f8 1f             	cmp    $0x1f,%eax
40a537:	77 22                	ja     0x40a55b
40a539:	8b c2                	mov    %edx,%eax
40a53b:	51                   	push   %ecx
40a53c:	50                   	push   %eax
40a53d:	e8 c6 f4 05 00       	call   0x469a08
40a542:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40a548:	83 c4 08             	add    $0x8,%esp
40a54b:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
40a552:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40a559:	5e                   	pop    %esi
40a55a:	c3                   	ret
40a55b:	e8 d1 f0 06 00       	call   0x479631
40a560:	cc                   	int3
40a561:	cc                   	int3
40a562:	cc                   	int3
40a563:	cc                   	int3
40a564:	cc                   	int3
40a565:	cc                   	int3
40a566:	cc                   	int3
40a567:	cc                   	int3
40a568:	cc                   	int3
40a569:	cc                   	int3
40a56a:	cc                   	int3
40a56b:	cc                   	int3
40a56c:	cc                   	int3
40a56d:	cc                   	int3
40a56e:	cc                   	int3
40a56f:	cc                   	int3
40a570:	55                   	push   %ebp
40a571:	8b ec                	mov    %esp,%ebp
40a573:	56                   	push   %esi
40a574:	57                   	push   %edi
40a575:	8b 7d 08             	mov    0x8(%ebp),%edi
40a578:	8b f1                	mov    %ecx,%esi
40a57a:	3b f7                	cmp    %edi,%esi
40a57c:	74 6a                	je     0x40a5e8
40a57e:	8b 06                	mov    (%esi),%eax
40a580:	85 c0                	test   %eax,%eax
40a582:	74 40                	je     0x40a5c4
40a584:	8b 4e 08             	mov    0x8(%esi),%ecx
40a587:	2b c8                	sub    %eax,%ecx
40a589:	83 e1 fc             	and    $0xfffffffc,%ecx
40a58c:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a592:	72 12                	jb     0x40a5a6
40a594:	8b 50 fc             	mov    -0x4(%eax),%edx
40a597:	83 c1 23             	add    $0x23,%ecx
40a59a:	2b c2                	sub    %edx,%eax
40a59c:	83 c0 fc             	add    $0xfffffffc,%eax
40a59f:	83 f8 1f             	cmp    $0x1f,%eax
40a5a2:	77 4c                	ja     0x40a5f0
40a5a4:	8b c2                	mov    %edx,%eax
40a5a6:	51                   	push   %ecx
40a5a7:	50                   	push   %eax
40a5a8:	e8 5b f4 05 00       	call   0x469a08
40a5ad:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40a5b3:	83 c4 08             	add    $0x8,%esp
40a5b6:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
40a5bd:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40a5c4:	8b 07                	mov    (%edi),%eax
40a5c6:	89 06                	mov    %eax,(%esi)
40a5c8:	8b 47 04             	mov    0x4(%edi),%eax
40a5cb:	89 46 04             	mov    %eax,0x4(%esi)
40a5ce:	8b 47 08             	mov    0x8(%edi),%eax
40a5d1:	89 46 08             	mov    %eax,0x8(%esi)
40a5d4:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40a5da:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
40a5e1:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
40a5e8:	5f                   	pop    %edi
40a5e9:	8b c6                	mov    %esi,%eax
40a5eb:	5e                   	pop    %esi
40a5ec:	5d                   	pop    %ebp
40a5ed:	c2 04 00             	ret    $0x4
40a5f0:	e8 3c f0 06 00       	call   0x479631
40a5f5:	cc                   	int3
40a5f6:	cc                   	int3
40a5f7:	cc                   	int3
40a5f8:	cc                   	int3
40a5f9:	cc                   	int3
40a5fa:	cc                   	int3
40a5fb:	cc                   	int3
40a5fc:	cc                   	int3
40a5fd:	cc                   	int3
40a5fe:	cc                   	int3
40a5ff:	cc                   	int3
40a600:	55                   	push   %ebp
40a601:	8b ec                	mov    %esp,%ebp
40a603:	6a ff                	push   $0xffffffff
40a605:	68 8d 7e 49 00       	push   $0x497e8d
40a60a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a610:	50                   	push   %eax
40a611:	51                   	push   %ecx
40a612:	53                   	push   %ebx
40a613:	56                   	push   %esi
40a614:	57                   	push   %edi