40c1ad:	e8 ec d9 ff ff       	call   0x409b9e
40c1b2:	dd 55 c4             	fstl   -0x3c(%ebp)
40c1b5:	83 e7 01             	and    $0x1,%edi
40c1b8:	33 c9                	xor    %ecx,%ecx
40c1ba:	0b f9                	or     %ecx,%edi
40c1bc:	74 7b                	je     0x40c239
40c1be:	d9 45 e4             	flds   -0x1c(%ebp)
40c1c1:	8b de                	mov    %esi,%ebx
40c1c3:	8b 75 f8             	mov    -0x8(%ebp),%esi
40c1c6:	8b 43 10             	mov    0x10(%ebx),%eax
40c1c9:	25 00 40 00 00       	and    $0x4000,%eax
40c1ce:	0b c1                	or     %ecx,%eax
40c1d0:	74 3a                	je     0x40c20c
40c1d2:	83 7b 08 07          	cmpl   $0x7,0x8(%ebx)
40c1d6:	51                   	push   %ecx
40c1d7:	51                   	push   %ecx
40c1d8:	8b 0e                	mov    (%esi),%ecx
40c1da:	75 0f                	jne    0x40c1eb
40c1dc:	dd d9                	fstp   %st(1)
40c1de:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c1e1:	d9 5d d0             	fstps  -0x30(%ebp)
40c1e4:	ba 00 00 06 00       	mov    $0x60000,%edx
40c1e9:	eb 0d                	jmp    0x40c1f8
40c1eb:	dd d8                	fstp   %st(0)
40c1ed:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c1f0:	dd 5d cc             	fstpl  -0x34(%ebp)
40c1f3:	ba 00 00 07 00       	mov    $0x70000,%edx
40c1f8:	50                   	push   %eax
40c1f9:	e8 23 c7 ff ff       	call   0x408921
40c1fe:	83 f8 ff             	cmp    $0xffffffff,%eax
40c201:	0f 85 23 ff ff ff    	jne    0x40c12a
40c207:	d9 45 e4             	flds   -0x1c(%ebp)
40c20a:	eb 02                	jmp    0x40c20e
40c20c:	dd d9                	fstp   %st(1)
40c20e:	83 7b 08 07          	cmpl   $0x7,0x8(%ebx)
40c212:	51                   	push   %ecx
40c213:	75 0f                	jne    0x40c224
40c215:	8b 0e                	mov    (%esi),%ecx
40c217:	d9 1c 24             	fstps  (%esp)
40c21a:	e8 d8 c9 ff ff       	call   0x408bf7
40c21f:	e9 78 fd ff ff       	jmp    0x40bf9c
40c224:	dd d8                	fstp   %st(0)
40c226:	dd 45 c4             	fldl   -0x3c(%ebp)
40c229:	51                   	push   %ecx
40c22a:	8b 0e                	mov    (%esi),%ecx
40c22c:	dd 1c 24             	fstpl  (%esp)
40c22f:	e8 0d ca ff ff       	call   0x408c41
40c234:	e9 63 fd ff ff       	jmp    0x40bf9c
40c239:	83 7e 08 07          	cmpl   $0x7,0x8(%esi)
40c23d:	8b 75 f8             	mov    -0x8(%ebp),%esi
40c240:	75 0c                	jne    0x40c24e
40c242:	dd d8                	fstp   %st(0)
40c244:	d9 45 e4             	flds   -0x1c(%ebp)
40c247:	d9 1e                	fstps  (%esi)
40c249:	e9 dc fe ff ff       	jmp    0x40c12a
40c24e:	dd 1e                	fstpl  (%esi)
40c250:	e9 d5 fe ff ff       	jmp    0x40c12a
40c255:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c258:	51                   	push   %ecx
40c259:	ff 72 38             	push   0x38(%edx)
40c25c:	53                   	push   %ebx
40c25d:	56                   	push   %esi
40c25e:	8b 72 34             	mov    0x34(%edx),%esi
40c261:	8b ce                	mov    %esi,%ecx
40c263:	ff 15 20 23 41 00    	call   *0x412320
40c269:	ff d6                	call   *%esi
40c26b:	e9 dd fb ff ff       	jmp    0x40be4d
40c270:	85 db                	test   %ebx,%ebx
40c272:	74 54                	je     0x40c2c8
40c274:	85 f6                	test   %esi,%esi
40c276:	74 26                	je     0x40c29e
40c278:	56                   	push   %esi
40c279:	ff 15 d4 20 41 00    	call   *0x4120d4
40c27f:	85 c0                	test   %eax,%eax
40c281:	74 1b                	je     0x40c29e
40c283:	b9 f3 15 00 00       	mov    $0x15f3,%ecx
40c288:	ff 75 f4             	push   -0xc(%ebp)
40c28b:	56                   	push   %esi
40c28c:	e8 c0 d7 ff ff       	call   0x409a51
40c291:	50                   	push   %eax
40c292:	6a 02                	push   $0x2
40c294:	e8 d2 d4 ff ff       	call   0x40976b
40c299:	83 c4 10             	add    $0x10,%esp
40c29c:	eb 1a                	jmp    0x40c2b8
40c29e:	ff 15 48 20 41 00    	call   *0x412048
40c2a4:	85 c0                	test   %eax,%eax
40c2a6:	75 0b                	jne    0x40c2b3
40c2a8:	68 2b 04 00 00       	push   $0x42b
40c2ad:	ff 15 74 20 41 00    	call   *0x412074
40c2b3:	e8 3c d5 ff ff       	call   0x4097f4
40c2b8:	68 e4 01 04 80       	push   $0x800401e4
40c2bd:	ff 15 74 20 41 00    	call   *0x412074
40c2c3:	e9 83 fb ff ff       	jmp    0x40be4b
40c2c8:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
40c2ce:	e9 57 fe ff ff       	jmp    0x40c12a
40c2d3:	8d 49 00             	lea    0x0(%ecx),%ecx
40c2d6:	74 be                	je     0x40c296
40c2d8:	40                   	inc    %eax
40c2d9:	00 31                	add    %dh,(%ecx)
40c2db:	c0 40 00 31          	rolb   $0x31,0x0(%eax)
40c2df:	c0 40 00 2a          	rolb   $0x2a,0x0(%eax)
40c2e3:	c1 40 00 2a          	roll   $0x2a,0x0(%eax)
40c2e7:	c1 40 00 2a          	roll   $0x2a,0x0(%eax)
40c2eb:	c1 40 00 26          	roll   $0x26,0x0(%eax)
40c2ef:	c1 40 00 26          	roll   $0x26,0x0(%eax)
40c2f3:	c1 40 00 55          	roll   $0x55,0x0(%eax)
40c2f7:	c2 40 00             	ret    $0x40
40c2fa:	70 c2                	jo     0x40c2be
40c2fc:	40                   	inc    %eax
40c2fd:	00 8b ff 55 8b ec    	add    %cl,-0x1374aa01(%ebx)
40c303:	51                   	push   %ecx
40c304:	53                   	push   %ebx
40c305:	56                   	push   %esi
40c306:	57                   	push   %edi
40c307:	6a 00                	push   $0x0
40c309:	8b f2                	mov    %edx,%esi
40c30b:	ff 15 74 20 41 00    	call   *0x412074
40c311:	85 f6                	test   %esi,%esi
40c313:	0f 84 96 00 00 00    	je     0x40c3af
40c319:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c31c:	85 db                	test   %ebx,%ebx
40c31e:	0f 84 8b 00 00 00    	je     0x40c3af
40c324:	8b cb                	mov    %ebx,%ecx
40c326:	e8 12 f4 ff ff       	call   0x40b73d
40c32b:	85 c0                	test   %eax,%eax
40c32d:	75 0a                	jne    0x40c339
40c32f:	68 90 04 00 00       	push   $0x490
40c334:	e9 82 00 00 00       	jmp    0x40c3bb
40c339:	33 ff                	xor    %edi,%edi
40c33b:	83 c6 20             	add    $0x20,%esi
40c33e:	8d 46 e0             	lea    -0x20(%esi),%eax
40c341:	85 c0                	test   %eax,%eax
40c343:	74 4c                	je     0x40c391
40c345:	8b 46 f0             	mov    -0x10(%esi),%eax
40c348:	25 00 00 10 00       	and    $0x100000,%eax
40c34d:	83 c8 00             	or     $0x0,%eax
40c350:	74 06                	je     0x40c358
40c352:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c356:	eb 07                	jmp    0x40c35f
40c358:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40c35f:	83 3e 00             	cmpl   $0x0,(%esi)
40c362:	74 1e                	je     0x40c382
40c364:	ff 36                	push   (%esi)
40c366:	ff 15 d4 20 41 00    	call   *0x4120d4
40c36c:	85 c0                	test   %eax,%eax
40c36e:	7e 12                	jle    0x40c382
40c370:	ff 75 fc             	push   -0x4(%ebp)
40c373:	8b 16                	mov    (%esi),%edx
40c375:	8d 4b 02             	lea    0x2(%ebx),%ecx
40c378:	e8 6b da ff ff       	call   0x409de8
40c37d:	83 f8 01             	cmp    $0x1,%eax
40c380:	74 0b                	je     0x40c38d
40c382:	47                   	inc    %edi
40c383:	83 c6 50             	add    $0x50,%esi
40c386:	83 ff 0b             	cmp    $0xb,%edi
40c389:	72 b3                	jb     0x40c33e
40c38b:	eb a2                	jmp    0x40c32f
40c38d:	8b c7                	mov    %edi,%eax
40c38f:	eb 33                	jmp    0x40c3c4
40c391:	ff 15 48 20 41 00    	call   *0x412048
40c397:	85 c0                	test   %eax,%eax
40c399:	75 0b                	jne    0x40c3a6
40c39b:	68 2b 04 00 00       	push   $0x42b
40c3a0:	ff 15 74 20 41 00    	call   *0x412074
40c3a6:	e8 49 d4 ff ff       	call   0x4097f4
40c3ab:	33 c0                	xor    %eax,%eax
40c3ad:	eb 15                	jmp    0x40c3c4
40c3af:	ff 15 48 20 41 00    	call   *0x412048
40c3b5:	85 c0                	test   %eax,%eax
40c3b7:	75 08                	jne    0x40c3c1
40c3b9:	6a 57                	push   $0x57
40c3bb:	ff 15 74 20 41 00    	call   *0x412074
40c3c1:	83 c8 ff             	or     $0xffffffff,%eax
40c3c4:	5f                   	pop    %edi
40c3c5:	5e                   	pop    %esi
40c3c6:	5b                   	pop    %ebx
40c3c7:	c9                   	leave
40c3c8:	c2 04 00             	ret    $0x4
40c3cb:	8b ff                	mov    %edi,%edi
40c3cd:	55                   	push   %ebp
40c3ce:	8b ec                	mov    %esp,%ebp
40c3d0:	83 ec 0c             	sub    $0xc,%esp
40c3d3:	53                   	push   %ebx
40c3d4:	56                   	push   %esi
40c3d5:	57                   	push   %edi
40c3d6:	8b da                	mov    %edx,%ebx
40c3d8:	6a 00                	push   $0x0
40c3da:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40c3dd:	ff 15 74 20 41 00    	call   *0x412074
40c3e3:	85 db                	test   %ebx,%ebx
40c3e5:	0f 84 b2 00 00 00    	je     0x40c49d
40c3eb:	8b 7d 08             	mov    0x8(%ebp),%edi
40c3ee:	85 ff                	test   %edi,%edi
40c3f0:	0f 84 a7 00 00 00    	je     0x40c49d
40c3f6:	8b 75 0c             	mov    0xc(%ebp),%esi
40c3f9:	85 f6                	test   %esi,%esi
40c3fb:	0f 84 9c 00 00 00    	je     0x40c49d
40c401:	83 26 00             	andl   $0x0,(%esi)
40c404:	83 66 04 00          	andl   $0x0,0x4(%esi)
40c408:	51                   	push   %ecx
40c409:	51                   	push   %ecx
40c40a:	6a 3a                	push   $0x3a
40c40c:	5a                   	pop    %edx
40c40d:	8b cf                	mov    %edi,%ecx
40c40f:	e8 8c d9 ff ff       	call   0x409da0
40c414:	8b d8                	mov    %eax,%ebx
40c416:	83 fb ff             	cmp    $0xffffffff,%ebx
40c419:	0f 84 90 00 00 00    	je     0x40c4af
40c41f:	57                   	push   %edi
40c420:	ff 15 d4 20 41 00    	call   *0x4120d4
40c426:	2b c3                	sub    %ebx,%eax
40c428:	33 d2                	xor    %edx,%edx
40c42a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c42d:	48                   	dec    %eax
40c42e:	6a 01                	push   $0x1
40c430:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c433:	8d 43 05             	lea    0x5(%ebx),%eax
40c436:	50                   	push   %eax
40c437:	6a 08                	push   $0x8
40c439:	59                   	pop    %ecx
40c43a:	e8 64 d1 ff ff       	call   0x4095a3
40c43f:	89 06                	mov    %eax,(%esi)
40c441:	85 c0                	test   %eax,%eax
40c443:	75 0e                	jne    0x40c453
40c445:	ff 15 48 20 41 00    	call   *0x412048
40c44b:	85 c0                	test   %eax,%eax
40c44d:	75 60                	jne    0x40c4af
40c44f:	6a 08                	push   $0x8
40c451:	eb 56                	jmp    0x40c4a9
40c453:	8b 45 fc             	mov    -0x4(%ebp),%eax
40c456:	33 d2                	xor    %edx,%edx
40c458:	6a 01                	push   $0x1
40c45a:	83 c0 05             	add    $0x5,%eax
40c45d:	50                   	push   %eax
40c45e:	6a 09                	push   $0x9
40c460:	59                   	pop    %ecx
40c461:	e8 3d d1 ff ff       	call   0x4095a3
40c466:	89 46 04             	mov    %eax,0x4(%esi)
40c469:	85 c0                	test   %eax,%eax
40c46b:	74 d8                	je     0x40c445
40c46d:	8b 0e                	mov    (%esi),%ecx
40c46f:	8d 43 01             	lea    0x1(%ebx),%eax
40c472:	50                   	push   %eax
40c473:	8b d7                	mov    %edi,%edx
40c475:	e8 7c df ff ff       	call   0x40a3f6
40c47a:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40c47e:	74 11                	je     0x40c491
40c480:	ff 75 f8             	push   -0x8(%ebp)
40c483:	8b 4e 04             	mov    0x4(%esi),%ecx
40c486:	8d 57 02             	lea    0x2(%edi),%edx
40c489:	8d 14 5a             	lea    (%edx,%ebx,2),%edx
40c48c:	e8 65 df ff ff       	call   0x40a3f6
40c491:	ff 36                	push   (%esi)
40c493:	8b 55 f4             	mov    -0xc(%ebp),%edx
40c496:	e8 63 fe ff ff       	call   0x40c2fe
40c49b:	eb 15                	jmp    0x40c4b2
40c49d:	ff 15 48 20 41 00    	call   *0x412048
40c4a3:	85 c0                	test   %eax,%eax
40c4a5:	75 08                	jne    0x40c4af
40c4a7:	6a 57                	push   $0x57
40c4a9:	ff 15 74 20 41 00    	call   *0x412074
40c4af:	83 c8 ff             	or     $0xffffffff,%eax
40c4b2:	5f                   	pop    %edi
40c4b3:	5e                   	pop    %esi
40c4b4:	5b                   	pop    %ebx
40c4b5:	c9                   	leave
40c4b6:	c2 08 00             	ret    $0x8
40c4b9:	8b ff                	mov    %edi,%edi
40c4bb:	55                   	push   %ebp
40c4bc:	8b ec                	mov    %esp,%ebp
40c4be:	51                   	push   %ecx
40c4bf:	56                   	push   %esi
40c4c0:	8b f2                	mov    %edx,%esi
40c4c2:	57                   	push   %edi
40c4c3:	85 f6                	test   %esi,%esi
40c4c5:	74 6e                	je     0x40c535
40c4c7:	ff 15 48 20 41 00    	call   *0x412048
40c4cd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c4d0:	e8 17 d2 ff ff       	call   0x4096ec
40c4d5:	85 c0                	test   %eax,%eax
40c4d7:	75 0a                	jne    0x40c4e3
40c4d9:	6a 07                	push   $0x7
40c4db:	59                   	pop    %ecx
40c4dc:	e8 76 d0 ff ff       	call   0x409557
40c4e1:	eb 0e                	jmp    0x40c4f1
40c4e3:	6a 00                	push   $0x0
40c4e5:	6a 00                	push   $0x0
40c4e7:	6a 07                	push   $0x7
40c4e9:	8b d0                	mov    %eax,%edx
40c4eb:	59                   	pop    %ecx
40c4ec:	e8 b2 d0 ff ff       	call   0x4095a3
40c4f1:	8b f8                	mov    %eax,%edi
40c4f3:	85 ff                	test   %edi,%edi
40c4f5:	74 3e                	je     0x40c535
40c4f7:	53                   	push   %ebx
40c4f8:	6a 0b                	push   $0xb
40c4fa:	83 c6 2c             	add    $0x2c,%esi
40c4fd:	5b                   	pop    %ebx
40c4fe:	83 3e 00             	cmpl   $0x0,(%esi)
40c501:	74 14                	je     0x40c517
40c503:	8b 46 e4             	mov    -0x1c(%esi),%eax
40c506:	25 00 00 01 00       	and    $0x10000,%eax
40c50b:	83 c8 00             	or     $0x0,%eax
40c50e:	74 07                	je     0x40c517
40c510:	8b ce                	mov    %esi,%ecx
40c512:	e8 af e6 ff ff       	call   0x40abc6
40c517:	83 c6 50             	add    $0x50,%esi
40c51a:	83 eb 01             	sub    $0x1,%ebx
40c51d:	75 df                	jne    0x40c4fe
40c51f:	8b cf                	mov    %edi,%ecx
40c521:	e8 e6 d1 ff ff       	call   0x40970c
40c526:	ff 75 fc             	push   -0x4(%ebp)
40c529:	ff 15 74 20 41 00    	call   *0x412074
40c52f:	33 c0                	xor    %eax,%eax
40c531:	40                   	inc    %eax
40c532:	5b                   	pop    %ebx
40c533:	eb 02                	jmp    0x40c537
40c535:	33 c0                	xor    %eax,%eax
40c537:	5f                   	pop    %edi
40c538:	5e                   	pop    %esi
40c539:	c9                   	leave
40c53a:	c3                   	ret
40c53b:	8b ff                	mov    %edi,%edi
40c53d:	55                   	push   %ebp
40c53e:	8b ec                	mov    %esp,%ebp
40c540:	83 e4 f8             	and    $0xfffffff8,%esp
40c543:	83 ec 3c             	sub    $0x3c,%esp
40c546:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
40c54b:	53                   	push   %ebx
40c54c:	56                   	push   %esi
40c54d:	57                   	push   %edi
40c54e:	8b da                	mov    %edx,%ebx
40c550:	8b f9                	mov    %ecx,%edi
40c552:	6a 00                	push   $0x0
40c554:	89 5c 24 30          	mov    %ebx,0x30(%esp)
40c558:	89 7c 24 2c          	mov    %edi,0x2c(%esp)
40c55c:	ff 15 74 20 41 00    	call   *0x412074
40c562:	85 ff                	test   %edi,%edi
40c564:	0f 84 2e 03 00 00    	je     0x40c898
40c56a:	85 db                	test   %ebx,%ebx
40c56c:	0f 84 26 03 00 00    	je     0x40c898
40c572:	8b 75 10             	mov    0x10(%ebp),%esi
40c575:	85 f6                	test   %esi,%esi
40c577:	0f 84 1b 03 00 00    	je     0x40c898
40c57d:	e8 33 d4 ff ff       	call   0x4099b5
40c582:	85 c0                	test   %eax,%eax
40c584:	75 21                	jne    0x40c5a7
40c586:	b9 7f 15 00 00       	mov    $0x157f,%ecx
40c58b:	e8 c1 d4 ff ff       	call   0x409a51
40c590:	8b c8                	mov    %eax,%ecx