408473:	8b e5                	mov    %ebp,%esp
408475:	5d                   	pop    %ebp
408476:	c2 1c 00             	ret    $0x1c
408479:	e8 15 75 01 00       	call   0x41f993
40847e:	cc                   	int3
40847f:	cc                   	int3
408480:	55                   	push   %ebp
408481:	8b ec                	mov    %esp,%ebp
408483:	6a ff                	push   $0xffffffff
408485:	68 8d be 43 00       	push   $0x43be8d
40848a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
408490:	50                   	push   %eax
408491:	83 ec 3c             	sub    $0x3c,%esp
408494:	a1 14 50 45 00       	mov    0x455014,%eax
408499:	33 c5                	xor    %ebp,%eax
40849b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40849e:	56                   	push   %esi
40849f:	57                   	push   %edi
4084a0:	50                   	push   %eax
4084a1:	8d 45 f4             	lea    -0xc(%ebp),%eax
4084a4:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4084aa:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4084ad:	8b 45 08             	mov    0x8(%ebp),%eax
4084b0:	8b 55 14             	mov    0x14(%ebp),%edx
4084b3:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
4084ba:	89 45 b8             	mov    %eax,-0x48(%ebp)
4084bd:	89 55 c0             	mov    %edx,-0x40(%ebp)
4084c0:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
4084c7:	c7 45 e4 0f 00 00 00 	movl   $0xf,-0x1c(%ebp)
4084ce:	c6 45 d0 00          	movb   $0x0,-0x30(%ebp)
4084d2:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4084d9:	8b 4a 14             	mov    0x14(%edx),%ecx
4084dc:	81 e1 00 30 00 00    	and    $0x3000,%ecx
4084e2:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
4084e8:	75 18                	jne    0x408502
4084ea:	c7 45 c4 ff ff ff ff 	movl   $0xffffffff,-0x3c(%ebp)
4084f1:	be 0d 00 00 00       	mov    $0xd,%esi
4084f6:	c7 45 cc ff ff ff ff 	movl   $0xffffffff,-0x34(%ebp)
4084fd:	e9 85 00 00 00       	jmp    0x408587
408502:	8b 42 18             	mov    0x18(%edx),%eax
408505:	8b 52 1c             	mov    0x1c(%edx),%edx
408508:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40850b:	85 d2                	test   %edx,%edx
40850d:	7c 0a                	jl     0x408519
40850f:	7f 04                	jg     0x408515
408511:	85 c0                	test   %eax,%eax
408513:	74 04                	je     0x408519
408515:	8b f0                	mov    %eax,%esi
408517:	eb 16                	jmp    0x40852f
408519:	0b c2                	or     %edx,%eax
40851b:	75 0d                	jne    0x40852a
40851d:	85 c9                	test   %ecx,%ecx
40851f:	75 05                	jne    0x408526
408521:	8d 70 01             	lea    0x1(%eax),%esi
408524:	eb 61                	jmp    0x408587
408526:	33 f6                	xor    %esi,%esi
408528:	eb 05                	jmp    0x40852f
40852a:	be 06 00 00 00       	mov    $0x6,%esi
40852f:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
408535:	75 50                	jne    0x408587
408537:	f2 0f 10 4d 1c       	movsd  0x1c(%ebp),%xmm1
40853c:	0f 28 c1             	movaps %xmm1,%xmm0
40853f:	0f 54 05 60 00 45 00 	andps  0x450060,%xmm0
408546:	66 0f 2f 05 50 00 45 	comisd 0x450050,%xmm0
40854d:	00
40854e:	76 37                	jbe    0x408587
408550:	8d 45 cc             	lea    -0x34(%ebp),%eax
408553:	50                   	push   %eax
408554:	83 ec 08             	sub    $0x8,%esp
408557:	f2 0f 11 0c 24       	movsd  %xmm1,(%esp)
40855c:	e8 01 c4 01 00       	call   0x424962
408561:	8b 45 cc             	mov    -0x34(%ebp),%eax
408564:	83 c4 0c             	add    $0xc,%esp
408567:	99                   	cltd
408568:	dd d8                	fstp   %st(0)
40856a:	33 c2                	xor    %edx,%eax
40856c:	2b c2                	sub    %edx,%eax
40856e:	69 c8 97 75 00 00    	imul   $0x7597,%eax,%ecx
408574:	b8 89 b5 f8 14       	mov    $0x14f8b589,%eax
408579:	f7 e9                	imul   %ecx
40857b:	c1 fa 0d             	sar    $0xd,%edx
40857e:	8b c2                	mov    %edx,%eax
408580:	c1 e8 1f             	shr    $0x1f,%eax
408583:	03 c2                	add    %edx,%eax
408585:	03 f0                	add    %eax,%esi
408587:	6a 00                	push   $0x0
408589:	8d 46 32             	lea    0x32(%esi),%eax
40858c:	50                   	push   %eax
40858d:	8d 4d d0             	lea    -0x30(%ebp),%ecx
408590:	e8 8b 18 00 00       	call   0x409e20
408595:	83 7d e4 10          	cmpl   $0x10,-0x1c(%ebp)
408599:	8d 7d d0             	lea    -0x30(%ebp),%edi
40859c:	f2 0f 10 45 1c       	movsd  0x1c(%ebp),%xmm0
4085a1:	0f 43 7d d0          	cmovae -0x30(%ebp),%edi
4085a5:	83 ec 08             	sub    $0x8,%esp
4085a8:	8b 45 c0             	mov    -0x40(%ebp),%eax
4085ab:	8b 75 e0             	mov    -0x20(%ebp),%esi
4085ae:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
4085b3:	ff 75 c4             	push   -0x3c(%ebp)
4085b6:	ff 70 14             	push   0x14(%eax)
4085b9:	8d 45 e8             	lea    -0x18(%ebp),%eax
4085bc:	6a 00                	push   $0x0
4085be:	50                   	push   %eax
4085bf:	ff 75 bc             	push   -0x44(%ebp)
4085c2:	e8 a9 13 00 00       	call   0x409970
4085c7:	83 c4 10             	add    $0x10,%esp
4085ca:	50                   	push   %eax
4085cb:	56                   	push   %esi
4085cc:	57                   	push   %edi
4085cd:	e8 5e e3 ff ff       	call   0x406930
4085d2:	83 7d e4 10          	cmpl   $0x10,-0x1c(%ebp)
4085d6:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4085d9:	8b 75 b8             	mov    -0x48(%ebp),%esi
4085dc:	0f 43 4d d0          	cmovae -0x30(%ebp),%ecx
4085e0:	50                   	push   %eax
4085e1:	51                   	push   %ecx
4085e2:	ff 75 18             	push   0x18(%ebp)
4085e5:	ff 75 c0             	push   -0x40(%ebp)
4085e8:	ff 75 10             	push   0x10(%ebp)
4085eb:	ff 75 0c             	push   0xc(%ebp)
4085ee:	56                   	push   %esi
4085ef:	ff 75 bc             	push   -0x44(%ebp)
4085f2:	e8 b9 0e 00 00       	call   0x4094b0
4085f7:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4085fa:	83 c4 38             	add    $0x38,%esp
4085fd:	83 f9 10             	cmp    $0x10,%ecx
408600:	72 28                	jb     0x40862a
408602:	8b 55 d0             	mov    -0x30(%ebp),%edx
408605:	41                   	inc    %ecx
408606:	8b c2                	mov    %edx,%eax
408608:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40860e:	72 10                	jb     0x408620
408610:	8b 50 fc             	mov    -0x4(%eax),%edx
408613:	83 c1 23             	add    $0x23,%ecx
408616:	2b c2                	sub    %edx,%eax
408618:	83 c0 fc             	add    $0xfffffffc,%eax
40861b:	83 f8 1f             	cmp    $0x1f,%eax
40861e:	77 29                	ja     0x408649
408620:	51                   	push   %ecx
408621:	52                   	push   %edx
408622:	e8 91 15 01 00       	call   0x419bb8
408627:	83 c4 08             	add    $0x8,%esp
40862a:	8b c6                	mov    %esi,%eax
40862c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40862f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
408636:	59                   	pop    %ecx
408637:	5f                   	pop    %edi
408638:	5e                   	pop    %esi
408639:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40863c:	33 cd                	xor    %ebp,%ecx
40863e:	e8 67 15 01 00       	call   0x419baa
408643:	8b e5                	mov    %ebp,%esp
408645:	5d                   	pop    %ebp
408646:	c2 1c 00             	ret    $0x1c
408649:	e8 45 73 01 00       	call   0x41f993
40864e:	cc                   	int3
40864f:	cc                   	int3
408650:	55                   	push   %ebp
408651:	8b ec                	mov    %esp,%ebp
408653:	83 e4 f8             	and    $0xfffffff8,%esp
408656:	83 ec 5c             	sub    $0x5c,%esp
408659:	a1 14 50 45 00       	mov    0x455014,%eax
40865e:	33 c4                	xor    %esp,%eax
408660:	89 44 24 58          	mov    %eax,0x58(%esp)
408664:	0f b6 44 24 0d       	movzbl 0xd(%esp),%eax
408669:	53                   	push   %ebx
40866a:	56                   	push   %esi
40866b:	8b 75 14             	mov    0x14(%ebp),%esi
40866e:	89 4c 24 10          	mov    %ecx,0x10(%esp)
408672:	8b 5c 24 10          	mov    0x10(%esp),%ebx
408676:	c7 44 24 0c 2b 00 00 	movl   $0x2b,0xc(%esp)
40867d:	00
40867e:	8b 4e 14             	mov    0x14(%esi),%ecx
408681:	8b d1                	mov    %ecx,%edx
408683:	f7 c1 20 00 00 00    	test   $0x20,%ecx
408689:	c6 44 24 14 25       	movb   $0x25,0x14(%esp)
40868e:	57                   	push   %edi
40868f:	0f 45 44 24 10       	cmovne 0x10(%esp),%eax
408694:	f7 c2 20 00 00 00    	test   $0x20,%edx
40869a:	8b 7d 08             	mov    0x8(%ebp),%edi
40869d:	8d 54 24 1a          	lea    0x1a(%esp),%edx
4086a1:	88 44 24 19          	mov    %al,0x19(%esp)
4086a5:	8d 44 24 19          	lea    0x19(%esp),%eax
4086a9:	0f 45 c2             	cmovne %edx,%eax
4086ac:	f6 c1 08             	test   $0x8,%cl
4086af:	74 04                	je     0x4086b5
4086b1:	c6 00 23             	movb   $0x23,(%eax)
4086b4:	40                   	inc    %eax
4086b5:	8b d1                	mov    %ecx,%edx
4086b7:	66 c7 00 49 36       	movw   $0x3649,(%eax)
4086bc:	81 e2 00 0e 00 00    	and    $0xe00,%edx
4086c2:	c6 40 02 34          	movb   $0x34,0x2(%eax)
4086c6:	81 fa 00 04 00 00    	cmp    $0x400,%edx
4086cc:	75 04                	jne    0x4086d2
4086ce:	b1 6f                	mov    $0x6f,%cl
4086d0:	eb 17                	jmp    0x4086e9
4086d2:	81 fa 00 08 00 00    	cmp    $0x800,%edx
4086d8:	74 04                	je     0x4086de
4086da:	b1 75                	mov    $0x75,%cl
4086dc:	eb 0b                	jmp    0x4086e9
4086de:	c0 e1 03             	shl    $0x3,%cl
4086e1:	f6 d1                	not    %cl
4086e3:	80 e1 20             	and    $0x20,%cl
4086e6:	80 c9 58             	or     $0x58,%cl
4086e9:	ff 75 20             	push   0x20(%ebp)
4086ec:	88 48 03             	mov    %cl,0x3(%eax)
4086ef:	ff 75 1c             	push   0x1c(%ebp)
4086f2:	c6 40 04 00          	movb   $0x0,0x4(%eax)
4086f6:	8d 44 24 20          	lea    0x20(%esp),%eax
4086fa:	50                   	push   %eax
4086fb:	8d 44 24 2c          	lea    0x2c(%esp),%eax
4086ff:	6a 40                	push   $0x40
408701:	50                   	push   %eax
408702:	e8 29 e2 ff ff       	call   0x406930
408707:	83 c4 14             	add    $0x14,%esp
40870a:	50                   	push   %eax
40870b:	8d 44 24 24          	lea    0x24(%esp),%eax
40870f:	50                   	push   %eax
408710:	ff 75 18             	push   0x18(%ebp)
408713:	56                   	push   %esi
408714:	ff 75 10             	push   0x10(%ebp)
408717:	ff 75 0c             	push   0xc(%ebp)
40871a:	57                   	push   %edi
40871b:	53                   	push   %ebx
40871c:	e8 2f 09 00 00       	call   0x409050
408721:	8b 8c 24 84 00 00 00 	mov    0x84(%esp),%ecx
408728:	83 c4 20             	add    $0x20,%esp
40872b:	8b c7                	mov    %edi,%eax
40872d:	5f                   	pop    %edi
40872e:	5e                   	pop    %esi
40872f:	5b                   	pop    %ebx
408730:	33 cc                	xor    %esp,%ecx
408732:	e8 73 14 01 00       	call   0x419baa
408737:	8b e5                	mov    %ebp,%esp
408739:	5d                   	pop    %ebp
40873a:	c2 1c 00             	ret    $0x1c
40873d:	cc                   	int3
40873e:	cc                   	int3
40873f:	cc                   	int3
408740:	55                   	push   %ebp
408741:	8b ec                	mov    %esp,%ebp
408743:	83 e4 f8             	and    $0xfffffff8,%esp
408746:	83 ec 5c             	sub    $0x5c,%esp
408749:	a1 14 50 45 00       	mov    0x455014,%eax
40874e:	33 c4                	xor    %esp,%eax
408750:	89 44 24 58          	mov    %eax,0x58(%esp)
408754:	0f b6 44 24 0d       	movzbl 0xd(%esp),%eax
408759:	53                   	push   %ebx
40875a:	56                   	push   %esi
40875b:	8b 75 14             	mov    0x14(%ebp),%esi
40875e:	89 4c 24 10          	mov    %ecx,0x10(%esp)
408762:	8b 5c 24 10          	mov    0x10(%esp),%ebx
408766:	c7 44 24 0c 2b 00 00 	movl   $0x2b,0xc(%esp)
40876d:	00
40876e:	8b 4e 14             	mov    0x14(%esi),%ecx
408771:	8b d1                	mov    %ecx,%edx
408773:	f7 c1 20 00 00 00    	test   $0x20,%ecx
408779:	c6 44 24 14 25       	movb   $0x25,0x14(%esp)
40877e:	57                   	push   %edi
40877f:	0f 45 44 24 10       	cmovne 0x10(%esp),%eax
408784:	f7 c2 20 00 00 00    	test   $0x20,%edx
40878a:	8b 7d 08             	mov    0x8(%ebp),%edi
40878d:	8d 54 24 1a          	lea    0x1a(%esp),%edx
408791:	88 44 24 19          	mov    %al,0x19(%esp)
408795:	8d 44 24 19          	lea    0x19(%esp),%eax
408799:	0f 45 c2             	cmovne %edx,%eax
40879c:	f6 c1 08             	test   $0x8,%cl
40879f:	74 04                	je     0x4087a5
4087a1:	c6 00 23             	movb   $0x23,(%eax)
4087a4:	40                   	inc    %eax
4087a5:	8b d1                	mov    %ecx,%edx
4087a7:	66 c7 00 49 36       	movw   $0x3649,(%eax)
4087ac:	81 e2 00 0e 00 00    	and    $0xe00,%edx
4087b2:	c6 40 02 34          	movb   $0x34,0x2(%eax)
4087b6:	81 fa 00 04 00 00    	cmp    $0x400,%edx
4087bc:	75 04                	jne    0x4087c2
4087be:	b1 6f                	mov    $0x6f,%cl
4087c0:	eb 17                	jmp    0x4087d9
4087c2:	81 fa 00 08 00 00    	cmp    $0x800,%edx
4087c8:	74 04                	je     0x4087ce
4087ca:	b1 64                	mov    $0x64,%cl
4087cc:	eb 0b                	jmp    0x4087d9
4087ce:	c0 e1 03             	shl    $0x3,%cl
4087d1:	f6 d1                	not    %cl
4087d3:	80 e1 20             	and    $0x20,%cl
4087d6:	80 c9 58             	or     $0x58,%cl
4087d9:	ff 75 20             	push   0x20(%ebp)
4087dc:	88 48 03             	mov    %cl,0x3(%eax)
4087df:	ff 75 1c             	push   0x1c(%ebp)
4087e2:	c6 40 04 00          	movb   $0x0,0x4(%eax)
4087e6:	8d 44 24 20          	lea    0x20(%esp),%eax
4087ea:	50                   	push   %eax
4087eb:	8d 44 24 2c          	lea    0x2c(%esp),%eax
4087ef:	6a 40                	push   $0x40
4087f1:	50                   	push   %eax
4087f2:	e8 39 e1 ff ff       	call   0x406930
4087f7:	83 c4 14             	add    $0x14,%esp
4087fa:	50                   	push   %eax
4087fb:	8d 44 24 24          	lea    0x24(%esp),%eax
4087ff:	50                   	push   %eax
408800:	ff 75 18             	push   0x18(%ebp)
408803:	56                   	push   %esi
408804:	ff 75 10             	push   0x10(%ebp)
408807:	ff 75 0c             	push   0xc(%ebp)
40880a:	57                   	push   %edi
40880b:	53                   	push   %ebx
40880c:	e8 3f 08 00 00       	call   0x409050
408811:	8b 8c 24 84 00 00 00 	mov    0x84(%esp),%ecx
408818:	83 c4 20             	add    $0x20,%esp
40881b:	8b c7                	mov    %edi,%eax
40881d:	5f                   	pop    %edi
40881e:	5e                   	pop    %esi
40881f:	5b                   	pop    %ebx
408820:	33 cc                	xor    %esp,%ecx
408822:	e8 83 13 01 00       	call   0x419baa
408827:	8b e5                	mov    %ebp,%esp
408829:	5d                   	pop    %ebp
40882a:	c2 1c 00             	ret    $0x1c
40882d:	cc                   	int3
40882e:	cc                   	int3
40882f:	cc                   	int3
408830:	55                   	push   %ebp
408831:	8b ec                	mov    %esp,%ebp
408833:	83 e4 f8             	and    $0xfffffff8,%esp
408836:	83 ec 5c             	sub    $0x5c,%esp
408839:	a1 14 50 45 00       	mov    0x455014,%eax
40883e:	33 c4                	xor    %esp,%eax
408840:	89 44 24 58          	mov    %eax,0x58(%esp)
408844:	0f b6 44 24 0d       	movzbl 0xd(%esp),%eax
408849:	53                   	push   %ebx
40884a:	56                   	push   %esi
40884b:	8b 75 14             	mov    0x14(%ebp),%esi
40884e:	89 4c 24 10          	mov    %ecx,0x10(%esp)
408852:	8b 5c 24 10          	mov    0x10(%esp),%ebx
408856:	c7 44 24 0c 2b 00 00 	movl   $0x2b,0xc(%esp)
40885d:	00
40885e:	8b 4e 14             	mov    0x14(%esi),%ecx
408861:	8b d1                	mov    %ecx,%edx
408863:	f7 c1 20 00 00 00    	test   $0x20,%ecx
408869:	c6 44 24 14 25       	movb   $0x25,0x14(%esp)
40886e:	57                   	push   %edi
40886f:	0f 45 44 24 10       	cmovne 0x10(%esp),%eax
408874:	f7 c2 20 00 00 00    	test   $0x20,%edx
40887a:	8b 7d 08             	mov    0x8(%ebp),%edi
40887d:	8d 54 24 1a          	lea    0x1a(%esp),%edx
408881:	88 44 24 19          	mov    %al,0x19(%esp)
408885:	8d 44 24 19          	lea    0x19(%esp),%eax
408889:	0f 45 c2             	cmovne %edx,%eax
40888c:	f6 c1 08             	test   $0x8,%cl
40888f:	74 04                	je     0x408895