40c38b:	eb e7                	jmp    0x40c374
40c38d:	ff 75 f4             	push   -0xc(%ebp)
40c390:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c393:	ff 75 f8             	push   -0x8(%ebp)
40c396:	ff 75 f0             	push   -0x10(%ebp)
40c399:	50                   	push   %eax
40c39a:	e8 8e fa ff ff       	call   0x40be2d
40c39f:	eb d3                	jmp    0x40c374
40c3a1:	8b 4c 08 18          	mov    0x18(%eax,%ecx,1),%ecx
40c3a5:	8d 7d d0             	lea    -0x30(%ebp),%edi
40c3a8:	33 c0                	xor    %eax,%eax
40c3aa:	ab                   	stos   %eax,%es:(%edi)
40c3ab:	56                   	push   %esi
40c3ac:	ab                   	stos   %eax,%es:(%edi)
40c3ad:	ab                   	stos   %eax,%es:(%edi)
40c3ae:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40c3b1:	50                   	push   %eax
40c3b2:	ff 75 f4             	push   -0xc(%ebp)
40c3b5:	ff 75 f8             	push   -0x8(%ebp)
40c3b8:	51                   	push   %ecx
40c3b9:	ff 15 94 f0 40 00    	call   *0x40f094
40c3bf:	85 c0                	test   %eax,%eax
40c3c1:	75 09                	jne    0x40c3cc
40c3c3:	ff 15 58 f0 40 00    	call   *0x40f058
40c3c9:	89 45 d0             	mov    %eax,-0x30(%ebp)
40c3cc:	8d 75 d0             	lea    -0x30(%ebp),%esi
40c3cf:	8d 7d dc             	lea    -0x24(%ebp),%edi
40c3d2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c3d3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c3d4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c3d5:	8b 45 e0             	mov    -0x20(%ebp),%eax
40c3d8:	85 c0                	test   %eax,%eax
40c3da:	75 68                	jne    0x40c444
40c3dc:	8b 7d dc             	mov    -0x24(%ebp),%edi
40c3df:	33 f6                	xor    %esi,%esi
40c3e1:	8b 55 ec             	mov    -0x14(%ebp),%edx
40c3e4:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40c3e7:	85 ff                	test   %edi,%edi
40c3e9:	74 2c                	je     0x40c417
40c3eb:	6a 05                	push   $0x5
40c3ed:	58                   	pop    %eax
40c3ee:	3b f8                	cmp    %eax,%edi
40c3f0:	75 17                	jne    0x40c409
40c3f2:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
40c3f6:	c7 43 18 09 00 00 00 	movl   $0x9,0x18(%ebx)
40c3fd:	c6 43 24 01          	movb   $0x1,0x24(%ebx)
40c401:	89 43 20             	mov    %eax,0x20(%ebx)
40c404:	e9 79 fe ff ff       	jmp    0x40c282
40c409:	53                   	push   %ebx
40c40a:	57                   	push   %edi
40c40b:	e8 09 b5 ff ff       	call   0x407919
40c410:	59                   	pop    %ecx
40c411:	59                   	pop    %ecx
40c412:	e9 6b fe ff ff       	jmp    0x40c282
40c417:	8b 04 95 78 70 41 00 	mov    0x417078(,%edx,4),%eax
40c41e:	f6 44 08 28 40       	testb  $0x40,0x28(%eax,%ecx,1)
40c423:	74 08                	je     0x40c42d
40c425:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c428:	80 38 1a             	cmpb   $0x1a,(%eax)
40c42b:	74 1c                	je     0x40c449
40c42d:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
40c431:	c7 43 18 1c 00 00 00 	movl   $0x1c,0x18(%ebx)
40c438:	c6 43 24 01          	movb   $0x1,0x24(%ebx)
40c43c:	89 73 20             	mov    %esi,0x20(%ebx)
40c43f:	e9 3e fe ff ff       	jmp    0x40c282
40c444:	2b 45 e4             	sub    -0x1c(%ebp),%eax
40c447:	eb 02                	jmp    0x40c44b
40c449:	33 c0                	xor    %eax,%eax
40c44b:	5f                   	pop    %edi
40c44c:	5e                   	pop    %esi
40c44d:	5b                   	pop    %ebx
40c44e:	c9                   	leave
40c44f:	c3                   	ret
40c450:	6a 10                	push   $0x10
40c452:	68 f8 4c 41 00       	push   $0x414cf8
40c457:	e8 b4 6f ff ff       	call   0x403410
40c45c:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40c460:	6a 08                	push   $0x8
40c462:	e8 65 b3 ff ff       	call   0x4077cc
40c467:	59                   	pop    %ecx
40c468:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c46c:	6a 03                	push   $0x3
40c46e:	5e                   	pop    %esi
40c46f:	89 75 e0             	mov    %esi,-0x20(%ebp)
40c472:	3b 35 80 73 41 00    	cmp    0x417380,%esi
40c478:	74 59                	je     0x40c4d3
40c47a:	a1 84 73 41 00       	mov    0x417384,%eax
40c47f:	8b 04 b0             	mov    (%eax,%esi,4),%eax
40c482:	85 c0                	test   %eax,%eax
40c484:	74 4a                	je     0x40c4d0
40c486:	8b 40 0c             	mov    0xc(%eax),%eax
40c489:	90                   	nop
40c48a:	c1 e8 0d             	shr    $0xd,%eax
40c48d:	a8 01                	test   $0x1,%al
40c48f:	74 16                	je     0x40c4a7
40c491:	a1 84 73 41 00       	mov    0x417384,%eax
40c496:	ff 34 b0             	push   (%eax,%esi,4)
40c499:	e8 af 05 00 00       	call   0x40ca4d
40c49e:	59                   	pop    %ecx
40c49f:	83 f8 ff             	cmp    $0xffffffff,%eax
40c4a2:	74 03                	je     0x40c4a7
40c4a4:	ff 45 e4             	incl   -0x1c(%ebp)
40c4a7:	a1 84 73 41 00       	mov    0x417384,%eax
40c4ac:	8b 04 b0             	mov    (%eax,%esi,4),%eax
40c4af:	83 c0 20             	add    $0x20,%eax
40c4b2:	50                   	push   %eax
40c4b3:	ff 15 6c f0 40 00    	call   *0x40f06c
40c4b9:	a1 84 73 41 00       	mov    0x417384,%eax
40c4be:	ff 34 b0             	push   (%eax,%esi,4)
40c4c1:	e8 b3 b3 ff ff       	call   0x407879
40c4c6:	59                   	pop    %ecx
40c4c7:	a1 84 73 41 00       	mov    0x417384,%eax
40c4cc:	83 24 b0 00          	andl   $0x0,(%eax,%esi,4)
40c4d0:	46                   	inc    %esi
40c4d1:	eb 9c                	jmp    0x40c46f
40c4d3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c4da:	e8 13 00 00 00       	call   0x40c4f2
40c4df:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c4e2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c4e5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c4ec:	59                   	pop    %ecx
40c4ed:	5f                   	pop    %edi
40c4ee:	5e                   	pop    %esi
40c4ef:	5b                   	pop    %ebx
40c4f0:	c9                   	leave
40c4f1:	c3                   	ret
40c4f2:	6a 08                	push   $0x8
40c4f4:	e8 1b b3 ff ff       	call   0x407814
40c4f9:	59                   	pop    %ecx
40c4fa:	c3                   	ret
40c4fb:	8b ff                	mov    %edi,%edi
40c4fd:	55                   	push   %ebp
40c4fe:	8b ec                	mov    %esp,%ebp
40c500:	56                   	push   %esi
40c501:	8b 75 08             	mov    0x8(%ebp),%esi
40c504:	57                   	push   %edi
40c505:	8d 7e 0c             	lea    0xc(%esi),%edi
40c508:	8b 07                	mov    (%edi),%eax
40c50a:	90                   	nop
40c50b:	c1 e8 0d             	shr    $0xd,%eax
40c50e:	a8 01                	test   $0x1,%al
40c510:	74 25                	je     0x40c537
40c512:	8b 07                	mov    (%edi),%eax
40c514:	90                   	nop
40c515:	c1 e8 06             	shr    $0x6,%eax
40c518:	a8 01                	test   $0x1,%al
40c51a:	74 1b                	je     0x40c537
40c51c:	ff 76 04             	push   0x4(%esi)
40c51f:	e8 55 b3 ff ff       	call   0x407879
40c524:	59                   	pop    %ecx
40c525:	b8 bf fe ff ff       	mov    $0xfffffebf,%eax
40c52a:	f0 21 07             	lock and %eax,(%edi)
40c52d:	33 c0                	xor    %eax,%eax
40c52f:	89 46 04             	mov    %eax,0x4(%esi)
40c532:	89 06                	mov    %eax,(%esi)
40c534:	89 46 08             	mov    %eax,0x8(%esi)
40c537:	5f                   	pop    %edi
40c538:	5e                   	pop    %esi
40c539:	5d                   	pop    %ebp
40c53a:	c3                   	ret
40c53b:	8b ff                	mov    %edi,%edi
40c53d:	55                   	push   %ebp
40c53e:	8b ec                	mov    %esp,%ebp
40c540:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c543:	83 f9 fe             	cmp    $0xfffffffe,%ecx
40c546:	75 0d                	jne    0x40c555
40c548:	e8 03 b4 ff ff       	call   0x407950
40c54d:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c553:	eb 38                	jmp    0x40c58d
40c555:	85 c9                	test   %ecx,%ecx
40c557:	78 24                	js     0x40c57d
40c559:	3b 0d 78 72 41 00    	cmp    0x417278,%ecx
40c55f:	73 1c                	jae    0x40c57d
40c561:	8b c1                	mov    %ecx,%eax
40c563:	83 e1 3f             	and    $0x3f,%ecx
40c566:	c1 e8 06             	shr    $0x6,%eax
40c569:	6b c9 38             	imul   $0x38,%ecx,%ecx
40c56c:	8b 04 85 78 70 41 00 	mov    0x417078(,%eax,4),%eax
40c573:	0f b6 44 08 28       	movzbl 0x28(%eax,%ecx,1),%eax
40c578:	83 e0 40             	and    $0x40,%eax
40c57b:	5d                   	pop    %ebp
40c57c:	c3                   	ret
40c57d:	e8 ce b3 ff ff       	call   0x407950
40c582:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c588:	e8 8f 97 ff ff       	call   0x405d1c
40c58d:	33 c0                	xor    %eax,%eax
40c58f:	5d                   	pop    %ebp
40c590:	c3                   	ret
40c591:	6a 08                	push   $0x8
40c593:	68 18 4d 41 00       	push   $0x414d18
40c598:	e8 73 6e ff ff       	call   0x403410
40c59d:	83 3d bc 69 41 00 01 	cmpl   $0x1,0x4169bc
40c5a4:	7c 5b                	jl     0x40c601
40c5a6:	8b 45 08             	mov    0x8(%ebp),%eax
40c5a9:	a8 40                	test   $0x40,%al
40c5ab:	74 4a                	je     0x40c5f7
40c5ad:	83 3d 50 67 41 00 00 	cmpl   $0x0,0x416750
40c5b4:	74 41                	je     0x40c5f7
40c5b6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c5ba:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
40c5be:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c5c5:	eb 3a                	jmp    0x40c601
40c5c7:	8b 45 ec             	mov    -0x14(%ebp),%eax
40c5ca:	8b 00                	mov    (%eax),%eax
40c5cc:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
40c5d2:	74 0b                	je     0x40c5df
40c5d4:	81 38 1d 00 00 c0    	cmpl   $0xc000001d,(%eax)
40c5da:	74 03                	je     0x40c5df
40c5dc:	33 c0                	xor    %eax,%eax
40c5de:	c3                   	ret
40c5df:	33 c0                	xor    %eax,%eax
40c5e1:	40                   	inc    %eax
40c5e2:	c3                   	ret
40c5e3:	8b 65 e8             	mov    -0x18(%ebp),%esp
40c5e6:	83 25 50 67 41 00 00 	andl   $0x0,0x416750
40c5ed:	83 65 08 bf          	andl   $0xffffffbf,0x8(%ebp)
40c5f1:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
40c5f5:	eb c7                	jmp    0x40c5be
40c5f7:	83 e0 bf             	and    $0xffffffbf,%eax
40c5fa:	89 45 08             	mov    %eax,0x8(%ebp)
40c5fd:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
40c601:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c604:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c60b:	59                   	pop    %ecx
40c60c:	5f                   	pop    %edi
40c60d:	5e                   	pop    %esi
40c60e:	5b                   	pop    %ebx
40c60f:	c9                   	leave
40c610:	c3                   	ret
40c611:	8b ff                	mov    %edi,%edi
40c613:	55                   	push   %ebp
40c614:	8b ec                	mov    %esp,%ebp
40c616:	51                   	push   %ecx
40c617:	dd 7d fc             	fnstsw -0x4(%ebp)
40c61a:	db e2                	fnclex
40c61c:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
40c620:	c9                   	leave
40c621:	c3                   	ret
40c622:	8b ff                	mov    %edi,%edi
40c624:	55                   	push   %ebp
40c625:	8b ec                	mov    %esp,%ebp
40c627:	51                   	push   %ecx
40c628:	51                   	push   %ecx
40c629:	9b d9 7d fc          	fstcw  -0x4(%ebp)
40c62d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c630:	8b 45 08             	mov    0x8(%ebp),%eax
40c633:	f7 d1                	not    %ecx
40c635:	66 23 4d fc          	and    -0x4(%ebp),%cx
40c639:	23 45 0c             	and    0xc(%ebp),%eax
40c63c:	66 0b c8             	or     %ax,%cx
40c63f:	66 89 4d f8          	mov    %cx,-0x8(%ebp)
40c643:	d9 6d f8             	fldcw  -0x8(%ebp)
40c646:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
40c64a:	c9                   	leave
40c64b:	c3                   	ret
40c64c:	8b ff                	mov    %edi,%edi
40c64e:	55                   	push   %ebp
40c64f:	8b ec                	mov    %esp,%ebp
40c651:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c654:	83 ec 0c             	sub    $0xc,%esp
40c657:	f6 c1 01             	test   $0x1,%cl
40c65a:	74 0a                	je     0x40c666
40c65c:	db 2d 98 30 41 00    	fldt   0x413098
40c662:	db 5d fc             	fistpl -0x4(%ebp)
40c665:	9b                   	fwait
40c666:	f6 c1 08             	test   $0x8,%cl
40c669:	74 10                	je     0x40c67b
40c66b:	9b df e0             	fstsw  %ax
40c66e:	db 2d 98 30 41 00    	fldt   0x413098
40c674:	dd 5d f4             	fstpl  -0xc(%ebp)
40c677:	9b 9b df e0          	fstsw  %ax
40c67b:	f6 c1 10             	test   $0x10,%cl
40c67e:	74 0a                	je     0x40c68a
40c680:	db 2d a4 30 41 00    	fldt   0x4130a4
40c686:	dd 5d f4             	fstpl  -0xc(%ebp)
40c689:	9b                   	fwait
40c68a:	f6 c1 04             	test   $0x4,%cl
40c68d:	74 09                	je     0x40c698
40c68f:	d9 ee                	fldz
40c691:	d9 e8                	fld1
40c693:	de f1                	fdivp  %st,%st(1)
40c695:	dd d8                	fstp   %st(0)
40c697:	9b                   	fwait
40c698:	f6 c1 20             	test   $0x20,%cl
40c69b:	74 06                	je     0x40c6a3
40c69d:	d9 eb                	fldpi
40c69f:	dd 5d f4             	fstpl  -0xc(%ebp)
40c6a2:	9b                   	fwait
40c6a3:	c9                   	leave
40c6a4:	c3                   	ret
40c6a5:	8b ff                	mov    %edi,%edi
40c6a7:	55                   	push   %ebp
40c6a8:	8b ec                	mov    %esp,%ebp
40c6aa:	51                   	push   %ecx
40c6ab:	9b dd 7d fc          	fstsw  -0x4(%ebp)
40c6af:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
40c6b3:	c9                   	leave
40c6b4:	c3                   	ret
40c6b5:	e8 72 07 00 00       	call   0x40ce2c
40c6ba:	50                   	push   %eax
40c6bb:	e8 4a 07 00 00       	call   0x40ce0a
40c6c0:	59                   	pop    %ecx
40c6c1:	c3                   	ret
40c6c2:	8b ff                	mov    %edi,%edi
40c6c4:	55                   	push   %ebp
40c6c5:	8b ec                	mov    %esp,%ebp
40c6c7:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c6ca:	80 39 00             	cmpb   $0x0,(%ecx)
40c6cd:	75 05                	jne    0x40c6d4
40c6cf:	33 c0                	xor    %eax,%eax
40c6d1:	40                   	inc    %eax
40c6d2:	eb 16                	jmp    0x40c6ea
40c6d4:	80 79 01 00          	cmpb   $0x0,0x1(%ecx)
40c6d8:	75 05                	jne    0x40c6df
40c6da:	6a 02                	push   $0x2
40c6dc:	58                   	pop    %eax
40c6dd:	eb 0b                	jmp    0x40c6ea
40c6df:	33 c0                	xor    %eax,%eax
40c6e1:	38 41 02             	cmp    %al,0x2(%ecx)
40c6e4:	0f 95 c0             	setne  %al
40c6e7:	83 c0 03             	add    $0x3,%eax
40c6ea:	5d                   	pop    %ebp
40c6eb:	c2 04 00             	ret    $0x4
40c6ee:	8b ff                	mov    %edi,%edi
40c6f0:	55                   	push   %ebp
40c6f1:	8b ec                	mov    %esp,%ebp
40c6f3:	51                   	push   %ecx
40c6f4:	ff 75 18             	push   0x18(%ebp)
40c6f7:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c6fa:	ff 75 14             	push   0x14(%ebp)
40c6fd:	ff 75 10             	push   0x10(%ebp)
40c700:	ff 75 0c             	push   0xc(%ebp)
40c703:	50                   	push   %eax
40c704:	e8 d9 07 00 00       	call   0x40cee2
40c709:	8b d0                	mov    %eax,%edx
40c70b:	83 c4 14             	add    $0x14,%esp
40c70e:	83 fa 04             	cmp    $0x4,%edx
40c711:	77 1a                	ja     0x40c72d
40c713:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c716:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
40c71c:	76 05                	jbe    0x40c723
40c71e:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
40c723:	8b 45 08             	mov    0x8(%ebp),%eax
40c726:	85 c0                	test   %eax,%eax
40c728:	74 03                	je     0x40c72d
40c72a:	66 89 08             	mov    %cx,(%eax)
40c72d:	8b c2                	mov    %edx,%eax
40c72f:	c9                   	leave
40c730:	c3                   	ret
40c731:	8b ff                	mov    %edi,%edi