40b16f:	59                   	pop    %ecx
40b170:	59                   	pop    %ecx
40b171:	85 c0                	test   %eax,%eax
40b173:	7e 24                	jle    0x40b199
40b175:	6a 03                	push   $0x3
40b177:	ff 75 fc             	push   -0x4(%ebp)
40b17a:	ff 57 40             	call   *0x40(%edi)
40b17d:	59                   	pop    %ecx
40b17e:	59                   	pop    %ecx
40b17f:	50                   	push   %eax
40b180:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40b183:	e8 64 80 ff ff       	call   0x4031ec
40b188:	50                   	push   %eax
40b189:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b18c:	e8 c1 7d ff ff       	call   0x402f52
40b191:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40b194:	e8 94 a8 ff ff       	call   0x405a2d
40b199:	6a 05                	push   $0x5
40b19b:	ff 75 fc             	push   -0x4(%ebp)
40b19e:	ff 57 5c             	call   *0x5c(%edi)
40b1a1:	59                   	pop    %ecx
40b1a2:	59                   	pop    %ecx
40b1a3:	85 c0                	test   %eax,%eax
40b1a5:	7e 4c                	jle    0x40b1f3
40b1a7:	6a 05                	push   $0x5
40b1a9:	ff 75 fc             	push   -0x4(%ebp)
40b1ac:	ff 57 5c             	call   *0x5c(%edi)
40b1af:	6a 05                	push   $0x5
40b1b1:	ff 75 fc             	push   -0x4(%ebp)
40b1b4:	89 45 b0             	mov    %eax,-0x50(%ebp)
40b1b7:	ff 57 54             	call   *0x54(%edi)
40b1ba:	83 c4 10             	add    $0x10,%esp
40b1bd:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40b1c0:	8d 45 b8             	lea    -0x48(%ebp),%eax
40b1c3:	50                   	push   %eax
40b1c4:	56                   	push   %esi
40b1c5:	33 c0                	xor    %eax,%eax
40b1c7:	50                   	push   %eax
40b1c8:	50                   	push   %eax
40b1c9:	50                   	push   %eax
40b1ca:	50                   	push   %eax
40b1cb:	8d 45 b0             	lea    -0x50(%ebp),%eax
40b1ce:	50                   	push   %eax
40b1cf:	ff 15 80 20 41 00    	call   *0x412080
40b1d5:	85 c0                	test   %eax,%eax
40b1d7:	74 1a                	je     0x40b1f3
40b1d9:	ff 75 b8             	push   -0x48(%ebp)
40b1dc:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b1df:	ff 75 bc             	push   -0x44(%ebp)
40b1e2:	e8 da 7b ff ff       	call   0x402dc1
40b1e7:	ff 75 bc             	push   -0x44(%ebp)
40b1ea:	ff 15 d4 20 41 00    	call   *0x4120d4
40b1f0:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
40b1f3:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b1f6:	e8 be 7c ff ff       	call   0x402eb9
40b1fb:	85 c0                	test   %eax,%eax
40b1fd:	7f 08                	jg     0x40b207
40b1ff:	85 db                	test   %ebx,%ebx
40b201:	0f 84 bd 00 00 00    	je     0x40b2c4
40b207:	33 c0                	xor    %eax,%eax
40b209:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40b20c:	89 45 a0             	mov    %eax,-0x60(%ebp)
40b20f:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40b212:	89 45 a8             	mov    %eax,-0x58(%ebp)
40b215:	e8 9f 7c ff ff       	call   0x402eb9
40b21a:	85 c0                	test   %eax,%eax
40b21c:	7e 21                	jle    0x40b23f
40b21e:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b221:	50                   	push   %eax
40b222:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40b225:	e8 a0 7c ff ff       	call   0x402eca
40b22a:	50                   	push   %eax
40b22b:	8d 4d a0             	lea    -0x60(%ebp),%ecx
40b22e:	e8 31 80 ff ff       	call   0x403264
40b233:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40b236:	e8 f2 a7 ff ff       	call   0x405a2d
40b23b:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
40b23f:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b242:	e8 72 7c ff ff       	call   0x402eb9
40b247:	85 c0                	test   %eax,%eax
40b249:	7e 21                	jle    0x40b26c
40b24b:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40b24e:	50                   	push   %eax
40b24f:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b252:	e8 73 7c ff ff       	call   0x402eca
40b257:	50                   	push   %eax
40b258:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40b25b:	e8 04 80 ff ff       	call   0x403264
40b260:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40b263:	e8 c5 a7 ff ff       	call   0x405a2d
40b268:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40b26c:	85 db                	test   %ebx,%ebx
40b26e:	74 34                	je     0x40b2a4
40b270:	8d 45 e0             	lea    -0x20(%ebp),%eax
40b273:	50                   	push   %eax
40b274:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b277:	50                   	push   %eax
40b278:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b27b:	e8 d9 7a ff ff       	call   0x402d59
40b280:	8b c8                	mov    %eax,%ecx
40b282:	e8 43 7c ff ff       	call   0x402eca
40b287:	50                   	push   %eax
40b288:	8d 4d a8             	lea    -0x58(%ebp),%ecx
40b28b:	e8 d4 7f ff ff       	call   0x403264
40b290:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40b293:	e8 95 a7 ff ff       	call   0x405a2d
40b298:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40b29b:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
40b29f:	e8 89 a7 ff ff       	call   0x405a2d
40b2a4:	83 ec 10             	sub    $0x10,%esp
40b2a7:	89 75 ac             	mov    %esi,-0x54(%ebp)
40b2aa:	8d 45 a0             	lea    -0x60(%ebp),%eax
40b2ad:	8b cc                	mov    %esp,%ecx
40b2af:	50                   	push   %eax
40b2b0:	e8 04 6c ff ff       	call   0x401eb9
40b2b5:	8b cf                	mov    %edi,%ecx
40b2b7:	e8 33 6c ff ff       	call   0x401eef
40b2bc:	8d 4d a0             	lea    -0x60(%ebp),%ecx
40b2bf:	e8 cb 60 ff ff       	call   0x40138f
40b2c4:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40b2c7:	e8 61 a7 ff ff       	call   0x405a2d
40b2cc:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40b2cf:	e8 59 a7 ff ff       	call   0x405a2d
40b2d4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b2d7:	e8 51 a7 ff ff       	call   0x405a2d
40b2dc:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b2df:	e8 82 7b ff ff       	call   0x402e66
40b2e4:	ff 75 fc             	push   -0x4(%ebp)
40b2e7:	ff 57 44             	call   *0x44(%edi)
40b2ea:	59                   	pop    %ecx
40b2eb:	83 f8 64             	cmp    $0x64,%eax
40b2ee:	0f 84 0a fe ff ff    	je     0x40b0fe
40b2f4:	ff 75 fc             	push   -0x4(%ebp)
40b2f7:	ff 57 60             	call   *0x60(%edi)
40b2fa:	ff 75 dc             	push   -0x24(%ebp)
40b2fd:	ff 57 34             	call   *0x34(%edi)
40b300:	59                   	pop    %ecx
40b301:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b304:	8b cc                	mov    %esp,%ecx
40b306:	50                   	push   %eax
40b307:	e8 4e 81 ff ff       	call   0x40345a
40b30c:	e8 98 2b 00 00       	call   0x40dea9
40b311:	59                   	pop    %ecx
40b312:	e9 a2 fd ff ff       	jmp    0x40b0b9
40b317:	33 c0                	xor    %eax,%eax
40b319:	89 01                	mov    %eax,(%ecx)
40b31b:	89 41 04             	mov    %eax,0x4(%ecx)
40b31e:	89 41 08             	mov    %eax,0x8(%ecx)
40b321:	8b c1                	mov    %ecx,%eax
40b323:	c3                   	ret
40b324:	a1 34 7c 41 00       	mov    0x417c34,%eax
40b329:	85 c0                	test   %eax,%eax
40b32b:	74 07                	je     0x40b334
40b32d:	50                   	push   %eax
40b32e:	ff 15 00 22 41 00    	call   *0x412200
40b334:	b9 2c 7c 41 00       	mov    $0x417c2c,%ecx
40b339:	e8 28 7b ff ff       	call   0x402e66
40b33e:	b9 24 7c 41 00       	mov    $0x417c24,%ecx
40b343:	e8 1e 7b ff ff       	call   0x402e66
40b348:	8b 0d 10 7c 41 00    	mov    0x417c10,%ecx
40b34e:	85 c9                	test   %ecx,%ecx
40b350:	74 06                	je     0x40b358
40b352:	51                   	push   %ecx
40b353:	e8 c6 66 ff ff       	call   0x401a1e
40b358:	33 c0                	xor    %eax,%eax
40b35a:	a3 10 7c 41 00       	mov    %eax,0x417c10
40b35f:	a3 18 7c 41 00       	mov    %eax,0x417c18
40b364:	a3 14 7c 41 00       	mov    %eax,0x417c14
40b369:	c3                   	ret
40b36a:	55                   	push   %ebp
40b36b:	8b ec                	mov    %esp,%ebp
40b36d:	8b 0d 10 7c 41 00    	mov    0x417c10,%ecx
40b373:	85 c9                	test   %ecx,%ecx
40b375:	74 06                	je     0x40b37d
40b377:	51                   	push   %ecx
40b378:	e8 a1 66 ff ff       	call   0x401a1e
40b37d:	33 c0                	xor    %eax,%eax
40b37f:	6a 0c                	push   $0xc
40b381:	59                   	pop    %ecx
40b382:	a3 10 7c 41 00       	mov    %eax,0x417c10
40b387:	a3 18 7c 41 00       	mov    %eax,0x417c18
40b38c:	a3 14 7c 41 00       	mov    %eax,0x417c14
40b391:	e8 f1 a6 ff ff       	call   0x405a87
40b396:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b399:	50                   	push   %eax
40b39a:	68 58 ae 40 00       	push   $0x40ae58
40b39f:	89 48 08             	mov    %ecx,0x8(%eax)
40b3a2:	b9 34 7c 41 00       	mov    $0x417c34,%ecx
40b3a7:	c7 40 04 b8 6c 41 00 	movl   $0x416cb8,0x4(%eax)
40b3ae:	c7 00 10 7c 41 00    	movl   $0x417c10,(%eax)
40b3b4:	e8 b6 6a ff ff       	call   0x401e6f
40b3b9:	5d                   	pop    %ebp
40b3ba:	c2 08 00             	ret    $0x8
40b3bd:	83 25 18 7c 41 00 00 	andl   $0x0,0x417c18
40b3c4:	56                   	push   %esi
40b3c5:	6a 05                	push   $0x5
40b3c7:	58                   	pop    %eax
40b3c8:	be 10 7c 41 00       	mov    $0x417c10,%esi
40b3cd:	a3 1c 7c 41 00       	mov    %eax,0x417c1c
40b3d2:	8b ce                	mov    %esi,%ecx
40b3d4:	a3 14 7c 41 00       	mov    %eax,0x417c14
40b3d9:	e8 56 6c ff ff       	call   0x402034
40b3de:	83 25 94 7c 41 00 00 	andl   $0x0,0x417c94
40b3e5:	0f 57 c0             	xorps  %xmm0,%xmm0
40b3e8:	83 25 98 7c 41 00 00 	andl   $0x0,0x417c98
40b3ef:	8b c6                	mov    %esi,%eax
40b3f1:	0f 11 05 24 7c 41 00 	movups %xmm0,0x417c24
40b3f8:	5e                   	pop    %esi
40b3f9:	0f 11 05 34 7c 41 00 	movups %xmm0,0x417c34
40b400:	0f 11 05 44 7c 41 00 	movups %xmm0,0x417c44
40b407:	0f 11 05 54 7c 41 00 	movups %xmm0,0x417c54
40b40e:	0f 11 05 64 7c 41 00 	movups %xmm0,0x417c64
40b415:	0f 11 05 74 7c 41 00 	movups %xmm0,0x417c74
40b41c:	0f 11 05 84 7c 41 00 	movups %xmm0,0x417c84
40b423:	c3                   	ret
40b424:	55                   	push   %ebp
40b425:	8b ec                	mov    %esp,%ebp
40b427:	b8 00 10 00 00       	mov    $0x1000,%eax
40b42c:	e8 ff 5c ff ff       	call   0x401130
40b431:	53                   	push   %ebx
40b432:	56                   	push   %esi
40b433:	bb 00 10 00 00       	mov    $0x1000,%ebx
40b438:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
40b43e:	53                   	push   %ebx
40b43f:	6a 00                	push   $0x0
40b441:	50                   	push   %eax
40b442:	e8 0b 5c ff ff       	call   0x401052
40b447:	8b 75 08             	mov    0x8(%ebp),%esi
40b44a:	eb 23                	jmp    0x40b46f
40b44c:	8b 4e 04             	mov    0x4(%esi),%ecx
40b44f:	8d 95 00 f0 ff ff    	lea    -0x1000(%ebp),%edx
40b455:	50                   	push   %eax
40b456:	e8 d3 01 00 00       	call   0x40b62e
40b45b:	59                   	pop    %ecx
40b45c:	84 c0                	test   %al,%al
40b45e:	74 29                	je     0x40b489
40b460:	53                   	push   %ebx
40b461:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
40b467:	6a 00                	push   $0x0
40b469:	50                   	push   %eax
40b46a:	e8 e3 5b ff ff       	call   0x401052
40b46f:	83 c4 0c             	add    $0xc,%esp
40b472:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
40b478:	6a 00                	push   $0x0
40b47a:	53                   	push   %ebx
40b47b:	50                   	push   %eax
40b47c:	ff 36                	push   (%esi)
40b47e:	ff 15 10 23 41 00    	call   *0x412310
40b484:	83 f8 ff             	cmp    $0xffffffff,%eax
40b487:	75 c3                	jne    0x40b44c
40b489:	5e                   	pop    %esi
40b48a:	33 c0                	xor    %eax,%eax
40b48c:	5b                   	pop    %ebx
40b48d:	c9                   	leave
40b48e:	c2 04 00             	ret    $0x4
40b491:	55                   	push   %ebp
40b492:	8b ec                	mov    %esp,%ebp
40b494:	b8 00 10 00 00       	mov    $0x1000,%eax
40b499:	e8 92 5c ff ff       	call   0x401130
40b49e:	53                   	push   %ebx
40b49f:	56                   	push   %esi
40b4a0:	bb 00 10 00 00       	mov    $0x1000,%ebx
40b4a5:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
40b4ab:	53                   	push   %ebx
40b4ac:	6a 00                	push   $0x0
40b4ae:	50                   	push   %eax
40b4af:	e8 9e 5b ff ff       	call   0x401052
40b4b4:	8b 75 08             	mov    0x8(%ebp),%esi
40b4b7:	eb 22                	jmp    0x40b4db
40b4b9:	8b 0e                	mov    (%esi),%ecx
40b4bb:	8d 95 00 f0 ff ff    	lea    -0x1000(%ebp),%edx
40b4c1:	50                   	push   %eax
40b4c2:	e8 67 01 00 00       	call   0x40b62e
40b4c7:	59                   	pop    %ecx
40b4c8:	84 c0                	test   %al,%al
40b4ca:	74 2a                	je     0x40b4f6
40b4cc:	53                   	push   %ebx
40b4cd:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
40b4d3:	6a 00                	push   $0x0
40b4d5:	50                   	push   %eax
40b4d6:	e8 77 5b ff ff       	call   0x401052
40b4db:	83 c4 0c             	add    $0xc,%esp
40b4de:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
40b4e4:	6a 00                	push   $0x0
40b4e6:	53                   	push   %ebx
40b4e7:	50                   	push   %eax
40b4e8:	ff 76 04             	push   0x4(%esi)
40b4eb:	ff 15 10 23 41 00    	call   *0x412310
40b4f1:	83 f8 ff             	cmp    $0xffffffff,%eax
40b4f4:	75 c3                	jne    0x40b4b9
40b4f6:	5e                   	pop    %esi
40b4f7:	33 c0                	xor    %eax,%eax
40b4f9:	5b                   	pop    %ebx
40b4fa:	c9                   	leave
40b4fb:	c2 04 00             	ret    $0x4
40b4fe:	55                   	push   %ebp
40b4ff:	8b ec                	mov    %esp,%ebp
40b501:	51                   	push   %ecx
40b502:	51                   	push   %ecx
40b503:	53                   	push   %ebx
40b504:	56                   	push   %esi
40b505:	57                   	push   %edi
40b506:	8b f9                	mov    %ecx,%edi
40b508:	8d 9f d8 03 00 00    	lea    0x3d8(%edi),%ebx
40b50e:	53                   	push   %ebx
40b50f:	ff 15 3c 21 41 00    	call   *0x41213c
40b515:	83 bf ec 01 00 00 00 	cmpl   $0x0,0x1ec(%edi)
40b51c:	8b 75 08             	mov    0x8(%ebp),%esi
40b51f:	75 1e                	jne    0x40b53f
40b521:	ff 76 0c             	push   0xc(%esi)
40b524:	8d 46 08             	lea    0x8(%esi),%eax
40b527:	51                   	push   %ecx
40b528:	8b cc                	mov    %esp,%ecx
40b52a:	50                   	push   %eax
40b52b:	e8 f2 7c ff ff       	call   0x403222
40b530:	8d 8f e4 01 00 00    	lea    0x1e4(%edi),%ecx
40b536:	e8 54 9e ff ff       	call   0x40538f
40b53b:	85 c0                	test   %eax,%eax
40b53d:	74 1e                	je     0x40b55d
40b53f:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
40b543:	75 27                	jne    0x40b56c
40b545:	ff 76 04             	push   0x4(%esi)
40b548:	51                   	push   %ecx
40b549:	8b cc                	mov    %esp,%ecx
40b54b:	56                   	push   %esi
40b54c:	e8 d1 7c ff ff       	call   0x403222
40b551:	8d 4f 04             	lea    0x4(%edi),%ecx
40b554:	e8 36 9e ff ff       	call   0x40538f
40b559:	85 c0                	test   %eax,%eax
40b55b:	75 0f                	jne    0x40b56c
40b55d:	53                   	push   %ebx
40b55e:	ff 15 40 21 41 00    	call   *0x412140
40b564:	33 c0                	xor    %eax,%eax
40b566:	40                   	inc    %eax
40b567:	e9 a8 00 00 00       	jmp    0x40b614
40b56c:	8d b7 c4 03 00 00    	lea    0x3c4(%edi),%esi
40b572:	6a 00                	push   $0x0
40b574:	8b ce                	mov    %esi,%ecx
40b576:	e8 39 6b ff ff       	call   0x4020b4
40b57b:	85 c0                	test   %eax,%eax
40b57d:	75 07                	jne    0x40b586
40b57f:	8b ce                	mov    %esi,%ecx
40b581:	e8 14 69 ff ff       	call   0x401e9a
40b586:	8d 8f cc 03 00 00    	lea    0x3cc(%edi),%ecx
40b58c:	6a 00                	push   $0x0
40b58e:	e8 21 6b ff ff       	call   0x4020b4
40b593:	85 c0                	test   %eax,%eax
40b595:	75 0b                	jne    0x40b5a2
40b597:	8d 8f cc 03 00 00    	lea    0x3cc(%edi),%ecx
40b59d:	e8 f8 68 ff ff       	call   0x401e9a