408274:	50                   	push   %eax
408275:	8d 44 24 24          	lea    0x24(%esp),%eax
408279:	50                   	push   %eax
40827a:	ff 75 18             	push   0x18(%ebp)
40827d:	56                   	push   %esi
40827e:	ff 75 10             	push   0x10(%ebp)
408281:	ff 75 0c             	push   0xc(%ebp)
408284:	53                   	push   %ebx
408285:	57                   	push   %edi
408286:	e8 c5 0d 00 00       	call   0x409050
40828b:	8b 8c 24 84 00 00 00 	mov    0x84(%esp),%ecx
408292:	83 c4 30             	add    $0x30,%esp
408295:	8b c3                	mov    %ebx,%eax
408297:	5f                   	pop    %edi
408298:	5e                   	pop    %esi
408299:	5b                   	pop    %ebx
40829a:	33 cc                	xor    %esp,%ecx
40829c:	e8 09 19 01 00       	call   0x419baa
4082a1:	8b e5                	mov    %ebp,%esp
4082a3:	5d                   	pop    %ebp
4082a4:	c2 18 00             	ret    $0x18
4082a7:	cc                   	int3
4082a8:	cc                   	int3
4082a9:	cc                   	int3
4082aa:	cc                   	int3
4082ab:	cc                   	int3
4082ac:	cc                   	int3
4082ad:	cc                   	int3
4082ae:	cc                   	int3
4082af:	cc                   	int3
4082b0:	55                   	push   %ebp
4082b1:	8b ec                	mov    %esp,%ebp
4082b3:	6a ff                	push   $0xffffffff
4082b5:	68 8d be 43 00       	push   $0x43be8d
4082ba:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4082c0:	50                   	push   %eax
4082c1:	83 ec 3c             	sub    $0x3c,%esp
4082c4:	a1 14 50 45 00       	mov    0x455014,%eax
4082c9:	33 c5                	xor    %ebp,%eax
4082cb:	89 45 f0             	mov    %eax,-0x10(%ebp)
4082ce:	56                   	push   %esi
4082cf:	57                   	push   %edi
4082d0:	50                   	push   %eax
4082d1:	8d 45 f4             	lea    -0xc(%ebp),%eax
4082d4:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4082da:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4082dd:	8b 45 08             	mov    0x8(%ebp),%eax
4082e0:	8b 55 14             	mov    0x14(%ebp),%edx
4082e3:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
4082ea:	89 45 b8             	mov    %eax,-0x48(%ebp)
4082ed:	89 55 c0             	mov    %edx,-0x40(%ebp)
4082f0:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
4082f7:	c7 45 e4 0f 00 00 00 	movl   $0xf,-0x1c(%ebp)
4082fe:	c6 45 d0 00          	movb   $0x0,-0x30(%ebp)
408302:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
408309:	8b 4a 14             	mov    0x14(%edx),%ecx
40830c:	81 e1 00 30 00 00    	and    $0x3000,%ecx
408312:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
408318:	75 18                	jne    0x408332
40831a:	c7 45 c4 ff ff ff ff 	movl   $0xffffffff,-0x3c(%ebp)
408321:	be 0d 00 00 00       	mov    $0xd,%esi
408326:	c7 45 cc ff ff ff ff 	movl   $0xffffffff,-0x34(%ebp)
40832d:	e9 85 00 00 00       	jmp    0x4083b7
408332:	8b 42 18             	mov    0x18(%edx),%eax
408335:	8b 52 1c             	mov    0x1c(%edx),%edx
408338:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40833b:	85 d2                	test   %edx,%edx
40833d:	7c 0a                	jl     0x408349
40833f:	7f 04                	jg     0x408345
408341:	85 c0                	test   %eax,%eax
408343:	74 04                	je     0x408349
408345:	8b f0                	mov    %eax,%esi
408347:	eb 16                	jmp    0x40835f
408349:	0b c2                	or     %edx,%eax
40834b:	75 0d                	jne    0x40835a
40834d:	85 c9                	test   %ecx,%ecx
40834f:	75 05                	jne    0x408356
408351:	8d 70 01             	lea    0x1(%eax),%esi
408354:	eb 61                	jmp    0x4083b7
408356:	33 f6                	xor    %esi,%esi
408358:	eb 05                	jmp    0x40835f
40835a:	be 06 00 00 00       	mov    $0x6,%esi
40835f:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
408365:	75 50                	jne    0x4083b7
408367:	f2 0f 10 4d 1c       	movsd  0x1c(%ebp),%xmm1
40836c:	0f 28 c1             	movaps %xmm1,%xmm0
40836f:	0f 54 05 60 00 45 00 	andps  0x450060,%xmm0
408376:	66 0f 2f 05 50 00 45 	comisd 0x450050,%xmm0
40837d:	00
40837e:	76 37                	jbe    0x4083b7
408380:	8d 45 cc             	lea    -0x34(%ebp),%eax
408383:	50                   	push   %eax
408384:	83 ec 08             	sub    $0x8,%esp
408387:	f2 0f 11 0c 24       	movsd  %xmm1,(%esp)
40838c:	e8 d1 c5 01 00       	call   0x424962
408391:	8b 45 cc             	mov    -0x34(%ebp),%eax
408394:	83 c4 0c             	add    $0xc,%esp
408397:	99                   	cltd
408398:	dd d8                	fstp   %st(0)
40839a:	33 c2                	xor    %edx,%eax
40839c:	2b c2                	sub    %edx,%eax
40839e:	69 c8 97 75 00 00    	imul   $0x7597,%eax,%ecx
4083a4:	b8 89 b5 f8 14       	mov    $0x14f8b589,%eax
4083a9:	f7 e9                	imul   %ecx
4083ab:	c1 fa 0d             	sar    $0xd,%edx
4083ae:	8b c2                	mov    %edx,%eax
4083b0:	c1 e8 1f             	shr    $0x1f,%eax
4083b3:	03 c2                	add    %edx,%eax
4083b5:	03 f0                	add    %eax,%esi
4083b7:	6a 00                	push   $0x0
4083b9:	8d 46 32             	lea    0x32(%esi),%eax
4083bc:	50                   	push   %eax
4083bd:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4083c0:	e8 5b 1a 00 00       	call   0x409e20
4083c5:	83 7d e4 10          	cmpl   $0x10,-0x1c(%ebp)
4083c9:	8d 7d d0             	lea    -0x30(%ebp),%edi
4083cc:	f2 0f 10 45 1c       	movsd  0x1c(%ebp),%xmm0
4083d1:	0f 43 7d d0          	cmovae -0x30(%ebp),%edi
4083d5:	83 ec 08             	sub    $0x8,%esp
4083d8:	8b 45 c0             	mov    -0x40(%ebp),%eax
4083db:	8b 75 e0             	mov    -0x20(%ebp),%esi
4083de:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
4083e3:	ff 75 c4             	push   -0x3c(%ebp)
4083e6:	ff 70 14             	push   0x14(%eax)
4083e9:	8d 45 e8             	lea    -0x18(%ebp),%eax
4083ec:	6a 4c                	push   $0x4c
4083ee:	50                   	push   %eax
4083ef:	ff 75 bc             	push   -0x44(%ebp)
4083f2:	e8 79 15 00 00       	call   0x409970
4083f7:	83 c4 10             	add    $0x10,%esp
4083fa:	50                   	push   %eax
4083fb:	56                   	push   %esi
4083fc:	57                   	push   %edi
4083fd:	e8 2e e5 ff ff       	call   0x406930
408402:	83 7d e4 10          	cmpl   $0x10,-0x1c(%ebp)
408406:	8d 4d d0             	lea    -0x30(%ebp),%ecx
408409:	8b 75 b8             	mov    -0x48(%ebp),%esi
40840c:	0f 43 4d d0          	cmovae -0x30(%ebp),%ecx
408410:	50                   	push   %eax
408411:	51                   	push   %ecx
408412:	ff 75 18             	push   0x18(%ebp)
408415:	ff 75 c0             	push   -0x40(%ebp)
408418:	ff 75 10             	push   0x10(%ebp)
40841b:	ff 75 0c             	push   0xc(%ebp)
40841e:	56                   	push   %esi
40841f:	ff 75 bc             	push   -0x44(%ebp)
408422:	e8 89 10 00 00       	call   0x4094b0
408427:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40842a:	83 c4 38             	add    $0x38,%esp
40842d:	83 f9 10             	cmp    $0x10,%ecx
408430:	72 28                	jb     0x40845a
408432:	8b 55 d0             	mov    -0x30(%ebp),%edx
408435:	41                   	inc    %ecx
408436:	8b c2                	mov    %edx,%eax
408438:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40843e:	72 10                	jb     0x408450
408440:	8b 50 fc             	mov    -0x4(%eax),%edx
408443:	83 c1 23             	add    $0x23,%ecx
408446:	2b c2                	sub    %edx,%eax
408448:	83 c0 fc             	add    $0xfffffffc,%eax
40844b:	83 f8 1f             	cmp    $0x1f,%eax
40844e:	77 29                	ja     0x408479
408450:	51                   	push   %ecx
408451:	52                   	push   %edx
408452:	e8 61 17 01 00       	call   0x419bb8
408457:	83 c4 08             	add    $0x8,%esp
40845a:	8b c6                	mov    %esi,%eax
40845c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40845f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
408466:	59                   	pop    %ecx
408467:	5f                   	pop    %edi
408468:	5e                   	pop    %esi
408469:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40846c:	33 cd                	xor    %ebp,%ecx
40846e:	e8 37 17 01 00       	call   0x419baa
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