40d100:	66 8b 01             	mov    (%ecx),%ax
40d103:	83 c1 02             	add    $0x2,%ecx
40d106:	66 85 c0             	test   %ax,%ax
40d109:	75 f5                	jne    0x40d100
40d10b:	8b b5 24 fd ff ff    	mov    -0x2dc(%ebp),%esi
40d111:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
40d116:	2b 8d dc fc ff ff    	sub    -0x324(%ebp),%ecx
40d11c:	d1 f9                	sar    $1,%ecx
40d11e:	2b 06                	sub    (%esi),%eax
40d120:	8b b5 20 fd ff ff    	mov    -0x2e0(%ebp),%esi
40d126:	3b c1                	cmp    %ecx,%eax
40d128:	0f 82 ef 04 00 00    	jb     0x40d61d
40d12e:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40d132:	8b c6                	mov    %esi,%eax
40d134:	72 02                	jb     0x40d138
40d136:	8b 06                	mov    (%esi),%eax
40d138:	8b b5 24 fd ff ff    	mov    -0x2dc(%ebp),%esi
40d13e:	ff 36                	push   (%esi)
40d140:	50                   	push   %eax
40d141:	51                   	push   %ecx
40d142:	52                   	push   %edx
40d143:	51                   	push   %ecx
40d144:	ff b5 1c fd ff ff    	push   -0x2e4(%ebp)
40d14a:	8d 8d 04 fd ff ff    	lea    -0x2fc(%ebp),%ecx
40d150:	e8 9b 81 ff ff       	call   0x4052f0
40d155:	8b 8d 00 fd ff ff    	mov    -0x300(%ebp),%ecx
40d15b:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40d161:	c6 45 fc 09          	movb   $0x9,-0x4(%ebp)
40d165:	83 bd 18 fd ff ff 08 	cmpl   $0x8,-0x2e8(%ebp)
40d16c:	ff b5 14 fd ff ff    	push   -0x2ec(%ebp)
40d172:	0f 43 85 04 fd ff ff 	cmovae -0x2fc(%ebp),%eax
40d179:	50                   	push   %eax
40d17a:	e8 f1 5b ff ff       	call   0x402d70
40d17f:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40d183:	8b 8d 18 fd ff ff    	mov    -0x2e8(%ebp),%ecx
40d189:	83 f9 08             	cmp    $0x8,%ecx
40d18c:	72 35                	jb     0x40d1c3
40d18e:	8b 95 04 fd ff ff    	mov    -0x2fc(%ebp),%edx
40d194:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40d19b:	8b c2                	mov    %edx,%eax
40d19d:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d1a3:	72 14                	jb     0x40d1b9
40d1a5:	8b 50 fc             	mov    -0x4(%eax),%edx
40d1a8:	83 c1 23             	add    $0x23,%ecx
40d1ab:	2b c2                	sub    %edx,%eax
40d1ad:	83 c0 fc             	add    $0xfffffffc,%eax
40d1b0:	83 f8 1f             	cmp    $0x1f,%eax
40d1b3:	0f 87 73 04 00 00    	ja     0x40d62c
40d1b9:	51                   	push   %ecx
40d1ba:	52                   	push   %edx
40d1bb:	e8 f8 c9 00 00       	call   0x419bb8
40d1c0:	83 c4 08             	add    $0x8,%esp
40d1c3:	8b 85 d8 fc ff ff    	mov    -0x328(%ebp),%eax
40d1c9:	8b d7                	mov    %edi,%edx
40d1cb:	85 c0                	test   %eax,%eax
40d1cd:	0f 45 d0             	cmovne %eax,%edx
40d1d0:	8b ca                	mov    %edx,%ecx
40d1d2:	8d 41 02             	lea    0x2(%ecx),%eax
40d1d5:	89 85 d8 fc ff ff    	mov    %eax,-0x328(%ebp)
40d1db:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
40d1e0:	66 8b 01             	mov    (%ecx),%ax
40d1e3:	83 c1 02             	add    $0x2,%ecx
40d1e6:	66 85 c0             	test   %ax,%ax
40d1e9:	75 f5                	jne    0x40d1e0
40d1eb:	8b b5 24 fd ff ff    	mov    -0x2dc(%ebp),%esi
40d1f1:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
40d1f6:	2b 8d d8 fc ff ff    	sub    -0x328(%ebp),%ecx
40d1fc:	d1 f9                	sar    $1,%ecx
40d1fe:	2b 06                	sub    (%esi),%eax
40d200:	8b b5 20 fd ff ff    	mov    -0x2e0(%ebp),%esi
40d206:	3b c1                	cmp    %ecx,%eax
40d208:	0f 82 0f 04 00 00    	jb     0x40d61d
40d20e:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40d212:	8b c6                	mov    %esi,%eax
40d214:	72 02                	jb     0x40d218
40d216:	8b 06                	mov    (%esi),%eax
40d218:	8b b5 24 fd ff ff    	mov    -0x2dc(%ebp),%esi
40d21e:	ff 36                	push   (%esi)
40d220:	50                   	push   %eax
40d221:	51                   	push   %ecx
40d222:	52                   	push   %edx
40d223:	51                   	push   %ecx
40d224:	ff b5 1c fd ff ff    	push   -0x2e4(%ebp)
40d22a:	8d 8d 04 fd ff ff    	lea    -0x2fc(%ebp),%ecx
40d230:	e8 bb 80 ff ff       	call   0x4052f0
40d235:	8b 8d 00 fd ff ff    	mov    -0x300(%ebp),%ecx
40d23b:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40d241:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
40d245:	83 bd 18 fd ff ff 08 	cmpl   $0x8,-0x2e8(%ebp)
40d24c:	ff b5 14 fd ff ff    	push   -0x2ec(%ebp)
40d252:	0f 43 85 04 fd ff ff 	cmovae -0x2fc(%ebp),%eax
40d259:	50                   	push   %eax
40d25a:	e8 11 5b ff ff       	call   0x402d70
40d25f:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40d263:	8b 8d 18 fd ff ff    	mov    -0x2e8(%ebp),%ecx
40d269:	83 f9 08             	cmp    $0x8,%ecx
40d26c:	72 35                	jb     0x40d2a3
40d26e:	8b 95 04 fd ff ff    	mov    -0x2fc(%ebp),%edx
40d274:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40d27b:	8b c2                	mov    %edx,%eax
40d27d:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d283:	72 14                	jb     0x40d299
40d285:	8b 50 fc             	mov    -0x4(%eax),%edx
40d288:	83 c1 23             	add    $0x23,%ecx
40d28b:	2b c2                	sub    %edx,%eax
40d28d:	83 c0 fc             	add    $0xfffffffc,%eax
40d290:	83 f8 1f             	cmp    $0x1f,%eax
40d293:	0f 87 93 03 00 00    	ja     0x40d62c
40d299:	51                   	push   %ecx
40d29a:	52                   	push   %edx
40d29b:	e8 18 c9 00 00       	call   0x419bb8
40d2a0:	83 c4 08             	add    $0x8,%esp
40d2a3:	8b 85 d4 fc ff ff    	mov    -0x32c(%ebp),%eax
40d2a9:	8b d7                	mov    %edi,%edx
40d2ab:	85 c0                	test   %eax,%eax
40d2ad:	0f 45 d0             	cmovne %eax,%edx
40d2b0:	8b ca                	mov    %edx,%ecx
40d2b2:	8d 41 02             	lea    0x2(%ecx),%eax
40d2b5:	89 85 d4 fc ff ff    	mov    %eax,-0x32c(%ebp)
40d2bb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
40d2c0:	66 8b 01             	mov    (%ecx),%ax
40d2c3:	83 c1 02             	add    $0x2,%ecx
40d2c6:	66 85 c0             	test   %ax,%ax
40d2c9:	75 f5                	jne    0x40d2c0
40d2cb:	8b b5 24 fd ff ff    	mov    -0x2dc(%ebp),%esi
40d2d1:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
40d2d6:	2b 8d d4 fc ff ff    	sub    -0x32c(%ebp),%ecx
40d2dc:	d1 f9                	sar    $1,%ecx
40d2de:	2b 06                	sub    (%esi),%eax
40d2e0:	8b b5 20 fd ff ff    	mov    -0x2e0(%ebp),%esi
40d2e6:	3b c1                	cmp    %ecx,%eax
40d2e8:	0f 82 2f 03 00 00    	jb     0x40d61d
40d2ee:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40d2f2:	8b c6                	mov    %esi,%eax
40d2f4:	72 02                	jb     0x40d2f8
40d2f6:	8b 06                	mov    (%esi),%eax
40d2f8:	8b b5 24 fd ff ff    	mov    -0x2dc(%ebp),%esi
40d2fe:	ff 36                	push   (%esi)
40d300:	50                   	push   %eax
40d301:	51                   	push   %ecx
40d302:	52                   	push   %edx
40d303:	51                   	push   %ecx
40d304:	ff b5 1c fd ff ff    	push   -0x2e4(%ebp)
40d30a:	8d 8d 04 fd ff ff    	lea    -0x2fc(%ebp),%ecx
40d310:	e8 db 7f ff ff       	call   0x4052f0
40d315:	8b 8d 00 fd ff ff    	mov    -0x300(%ebp),%ecx
40d31b:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40d321:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
40d325:	83 bd 18 fd ff ff 08 	cmpl   $0x8,-0x2e8(%ebp)
40d32c:	ff b5 14 fd ff ff    	push   -0x2ec(%ebp)
40d332:	0f 43 85 04 fd ff ff 	cmovae -0x2fc(%ebp),%eax
40d339:	50                   	push   %eax
40d33a:	e8 31 5a ff ff       	call   0x402d70
40d33f:	8b b5 20 fd ff ff    	mov    -0x2e0(%ebp),%esi
40d345:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40d349:	8b 8d 18 fd ff ff    	mov    -0x2e8(%ebp),%ecx
40d34f:	83 f9 08             	cmp    $0x8,%ecx
40d352:	72 35                	jb     0x40d389
40d354:	8b 95 04 fd ff ff    	mov    -0x2fc(%ebp),%edx
40d35a:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40d361:	8b c2                	mov    %edx,%eax
40d363:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d369:	72 14                	jb     0x40d37f
40d36b:	8b 50 fc             	mov    -0x4(%eax),%edx
40d36e:	83 c1 23             	add    $0x23,%ecx
40d371:	2b c2                	sub    %edx,%eax
40d373:	83 c0 fc             	add    $0xfffffffc,%eax
40d376:	83 f8 1f             	cmp    $0x1f,%eax
40d379:	0f 87 ad 02 00 00    	ja     0x40d62c
40d37f:	51                   	push   %ecx
40d380:	52                   	push   %edx
40d381:	e8 32 c8 00 00       	call   0x419bb8
40d386:	83 c4 08             	add    $0x8,%esp
40d389:	8b 85 1c fd ff ff    	mov    -0x2e4(%ebp),%eax
40d38f:	85 c0                	test   %eax,%eax
40d391:	0f 45 f8             	cmovne %eax,%edi
40d394:	8b cf                	mov    %edi,%ecx
40d396:	8d 51 02             	lea    0x2(%ecx),%edx
40d399:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
40d3a0:	66 8b 01             	mov    (%ecx),%ax
40d3a3:	83 c1 02             	add    $0x2,%ecx
40d3a6:	66 85 c0             	test   %ax,%ax
40d3a9:	75 f5                	jne    0x40d3a0
40d3ab:	8b 85 24 fd ff ff    	mov    -0x2dc(%ebp),%eax
40d3b1:	2b ca                	sub    %edx,%ecx
40d3b3:	d1 f9                	sar    $1,%ecx
40d3b5:	8b 10                	mov    (%eax),%edx
40d3b7:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
40d3bc:	2b c2                	sub    %edx,%eax
40d3be:	3b c1                	cmp    %ecx,%eax
40d3c0:	0f 82 57 02 00 00    	jb     0x40d61d
40d3c6:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40d3ca:	8b c6                	mov    %esi,%eax
40d3cc:	72 02                	jb     0x40d3d0
40d3ce:	8b 06                	mov    (%esi),%eax
40d3d0:	52                   	push   %edx
40d3d1:	50                   	push   %eax
40d3d2:	51                   	push   %ecx
40d3d3:	57                   	push   %edi
40d3d4:	51                   	push   %ecx
40d3d5:	ff b5 1c fd ff ff    	push   -0x2e4(%ebp)
40d3db:	8d 8d 04 fd ff ff    	lea    -0x2fc(%ebp),%ecx
40d3e1:	e8 0a 7f ff ff       	call   0x4052f0
40d3e6:	8b bd 00 fd ff ff    	mov    -0x300(%ebp),%edi
40d3ec:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40d3f2:	c6 45 fc 0c          	movb   $0xc,-0x4(%ebp)
40d3f6:	8b cf                	mov    %edi,%ecx
40d3f8:	83 bd 18 fd ff ff 08 	cmpl   $0x8,-0x2e8(%ebp)
40d3ff:	ff b5 14 fd ff ff    	push   -0x2ec(%ebp)
40d405:	0f 43 85 04 fd ff ff 	cmovae -0x2fc(%ebp),%eax
40d40c:	50                   	push   %eax
40d40d:	e8 5e 59 ff ff       	call   0x402d70
40d412:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40d416:	8b 8d 18 fd ff ff    	mov    -0x2e8(%ebp),%ecx
40d41c:	83 f9 08             	cmp    $0x8,%ecx
40d41f:	72 35                	jb     0x40d456
40d421:	8b 95 04 fd ff ff    	mov    -0x2fc(%ebp),%edx
40d427:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40d42e:	8b c2                	mov    %edx,%eax
40d430:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d436:	72 14                	jb     0x40d44c
40d438:	8b 50 fc             	mov    -0x4(%eax),%edx
40d43b:	83 c1 23             	add    $0x23,%ecx
40d43e:	2b c2                	sub    %edx,%eax
40d440:	83 c0 fc             	add    $0xfffffffc,%eax
40d443:	83 f8 1f             	cmp    $0x1f,%eax
40d446:	0f 87 e0 01 00 00    	ja     0x40d62c
40d44c:	51                   	push   %ecx
40d44d:	52                   	push   %edx
40d44e:	e8 65 c7 00 00       	call   0x419bb8
40d453:	83 c4 08             	add    $0x8,%esp
40d456:	68 b0 00 00 00       	push   $0xb0
40d45b:	8d 85 28 fd ff ff    	lea    -0x2d8(%ebp),%eax
40d461:	6a 00                	push   $0x0
40d463:	50                   	push   %eax
40d464:	e8 a7 e7 00 00       	call   0x41bc10
40d469:	83 c4 08             	add    $0x8,%esp
40d46c:	8d 8d 28 fd ff ff    	lea    -0x2d8(%ebp),%ecx
40d472:	e8 f9 a5 ff ff       	call   0x407a70
40d477:	c6 45 fc 0d          	movb   $0xd,-0x4(%ebp)
40d47b:	ff 15 f4 e0 43 00    	call   *0x43e0f4
40d481:	50                   	push   %eax
40d482:	8d 8d 38 fd ff ff    	lea    -0x2c8(%ebp),%ecx
40d488:	e8 f3 25 00 00       	call   0x40fa80
40d48d:	8d 85 a4 fc ff ff    	lea    -0x35c(%ebp),%eax
40d493:	50                   	push   %eax
40d494:	8d 8d 40 fd ff ff    	lea    -0x2c0(%ebp),%ecx
40d49a:	e8 81 27 00 00       	call   0x40fc20
40d49f:	8d 8d 28 fd ff ff    	lea    -0x2d8(%ebp),%ecx
40d4a5:	e8 76 9b ff ff       	call   0x407020
40d4aa:	c6 45 fc 0e          	movb   $0xe,-0x4(%ebp)
40d4ae:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40d4b2:	72 02                	jb     0x40d4b6
40d4b4:	8b 36                	mov    (%esi),%esi
40d4b6:	8b 85 24 fd ff ff    	mov    -0x2dc(%ebp),%eax
40d4bc:	8d 8d a4 fc ff ff    	lea    -0x35c(%ebp),%ecx
40d4c2:	ff 30                	push   (%eax)
40d4c4:	56                   	push   %esi
40d4c5:	e8 a6 58 ff ff       	call   0x402d70
40d4ca:	33 c9                	xor    %ecx,%ecx
40d4cc:	0f 10 08             	movups (%eax),%xmm1
40d4cf:	f3 0f 7e 40 10       	movq   0x10(%eax),%xmm0
40d4d4:	0f 11 8d 04 fd ff ff 	movups %xmm1,-0x2fc(%ebp)
40d4db:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
40d4e2:	66 0f d6 85 14 fd ff 	movq   %xmm0,-0x2ec(%ebp)
40d4e9:	ff
40d4ea:	c7 40 14 07 00 00 00 	movl   $0x7,0x14(%eax)
40d4f1:	66 89 08             	mov    %cx,(%eax)
40d4f4:	c6 45 fc 0f          	movb   $0xf,-0x4(%ebp)
40d4f8:	8d 8d 04 fd ff ff    	lea    -0x2fc(%ebp),%ecx
40d4fe:	83 bd 18 fd ff ff 08 	cmpl   $0x8,-0x2e8(%ebp)
40d505:	ff b5 14 fd ff ff    	push   -0x2ec(%ebp)
40d50b:	66 0f 7e c8          	movd   %xmm1,%eax
40d50f:	0f 43 c8             	cmovae %eax,%ecx
40d512:	51                   	push   %ecx
40d513:	8b cf                	mov    %edi,%ecx
40d515:	e8 56 58 ff ff       	call   0x402d70
40d51a:	c6 45 fc 0e          	movb   $0xe,-0x4(%ebp)
40d51e:	8b 8d 18 fd ff ff    	mov    -0x2e8(%ebp),%ecx
40d524:	83 f9 08             	cmp    $0x8,%ecx
40d527:	72 35                	jb     0x40d55e
40d529:	8b 95 04 fd ff ff    	mov    -0x2fc(%ebp),%edx
40d52f:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40d536:	8b c2                	mov    %edx,%eax
40d538:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d53e:	72 14                	jb     0x40d554
40d540:	8b 50 fc             	mov    -0x4(%eax),%edx
40d543:	83 c1 23             	add    $0x23,%ecx
40d546:	2b c2                	sub    %edx,%eax
40d548:	83 c0 fc             	add    $0xfffffffc,%eax
40d54b:	83 f8 1f             	cmp    $0x1f,%eax
40d54e:	0f 87 d3 00 00 00    	ja     0x40d627
40d554:	51                   	push   %ecx
40d555:	52                   	push   %edx
40d556:	e8 5d c6 00 00       	call   0x419bb8
40d55b:	83 c4 08             	add    $0x8,%esp
40d55e:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40d562:	8b 8d b8 fc ff ff    	mov    -0x348(%ebp),%ecx
40d568:	83 f9 08             	cmp    $0x8,%ecx
40d56b:	72 35                	jb     0x40d5a2
40d56d:	8b 95 a4 fc ff ff    	mov    -0x35c(%ebp),%edx
40d573:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40d57a:	8b c2                	mov    %edx,%eax
40d57c:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d582:	72 14                	jb     0x40d598
40d584:	8b 50 fc             	mov    -0x4(%eax),%edx
40d587:	83 c1 23             	add    $0x23,%ecx
40d58a:	2b c2                	sub    %edx,%eax
40d58c:	83 c0 fc             	add    $0xfffffffc,%eax
40d58f:	83 f8 1f             	cmp    $0x1f,%eax
40d592:	0f 87 8f 00 00 00    	ja     0x40d627
40d598:	51                   	push   %ecx
40d599:	52                   	push   %edx
40d59a:	e8 19 c6 00 00       	call   0x419bb8
40d59f:	83 c4 08             	add    $0x8,%esp
40d5a2:	83 bd ec fd ff ff 08 	cmpl   $0x8,-0x214(%ebp)
40d5a9:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
40d5af:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
40d5b5:	0f 43 85 d8 fd ff ff 	cmovae -0x228(%ebp),%eax
40d5bc:	8b cf                	mov    %edi,%ecx
40d5be:	50                   	push   %eax
40d5bf:	e8 ac 57 ff ff       	call   0x402d70
40d5c4:	8b 8d ec fd ff ff    	mov    -0x214(%ebp),%ecx
40d5ca:	83 f9 08             	cmp    $0x8,%ecx
40d5cd:	72 31                	jb     0x40d600
40d5cf:	8b 95 d8 fd ff ff    	mov    -0x228(%ebp),%edx
40d5d5:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40d5dc:	8b c2                	mov    %edx,%eax
40d5de:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d5e4:	72 10                	jb     0x40d5f6
40d5e6:	8b 50 fc             	mov    -0x4(%eax),%edx
40d5e9:	83 c1 23             	add    $0x23,%ecx
40d5ec:	2b c2                	sub    %edx,%eax
40d5ee:	83 c0 fc             	add    $0xfffffffc,%eax
40d5f1:	83 f8 1f             	cmp    $0x1f,%eax
40d5f4:	77 36                	ja     0x40d62c
40d5f6:	51                   	push   %ecx
40d5f7:	52                   	push   %edx
40d5f8:	e8 bb c5 00 00       	call   0x419bb8
40d5fd:	83 c4 08             	add    $0x8,%esp
40d600:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d603:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d60a:	59                   	pop    %ecx
40d60b:	5f                   	pop    %edi
40d60c:	5e                   	pop    %esi
40d60d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40d610:	33 cd                	xor    %ebp,%ecx
40d612:	e8 93 c5 00 00       	call   0x419baa
40d617:	8b e5                	mov    %ebp,%esp
40d619:	5d                   	pop    %ebp