4092fd:	b9 03 00 00 00       	mov    $0x3,%ecx
409302:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
409304:	eb 2d                	jmp    0x409333
409306:	8d 75 d7             	lea    -0x29(%ebp),%esi
409309:	0f b6 5d 10          	movzbl 0x10(%ebp),%ebx
40930d:	80 fb 01             	cmp    $0x1,%bl
409310:	74 10                	je     0x409322
409312:	80 fb 04             	cmp    $0x4,%bl
409315:	77 09                	ja     0x409320
409317:	0f bf 45 d4          	movswl -0x2c(%ebp),%eax
40931b:	3b 45 0c             	cmp    0xc(%ebp),%eax
40931e:	7e 02                	jle    0x409322
409320:	b3 00                	mov    $0x0,%bl
409322:	8d 1c 9d 40 93 40 00 	lea    0x409340(,%ebx,4),%ebx
409329:	03 5d ec             	add    -0x14(%ebp),%ebx
40932c:	8b 1b                	mov    (%ebx),%ebx
40932e:	03 5d ec             	add    -0x14(%ebp),%ebx
409331:	ff d3                	call   *%ebx
409333:	89 f8                	mov    %edi,%eax
409335:	2b 45 fc             	sub    -0x4(%ebp),%eax
409338:	5b                   	pop    %ebx
409339:	5e                   	pop    %esi
40933a:	5f                   	pop    %edi
40933b:	e9 f1 01 00 00       	jmp    0x409531
409340:	6d                   	insl   (%dx),%es:(%edi)
409341:	93                   	xchg   %eax,%ebx
409342:	40                   	inc    %eax
409343:	00 c9                	add    %cl,%cl
409345:	93                   	xchg   %eax,%ebx
409346:	40                   	inc    %eax
409347:	00 00                	add    %al,(%eax)
409349:	94                   	xchg   %eax,%esp
40934a:	40                   	inc    %eax
40934b:	00 00                	add    %al,(%eax)
40934d:	94                   	xchg   %eax,%esp
40934e:	40                   	inc    %eax
40934f:	00 6a 94             	add    %ch,-0x6c(%edx)
409352:	40                   	inc    %eax
409353:	00 49 4e             	add    %cl,0x4e(%ecx)
409356:	46                   	inc    %esi
409357:	4e                   	dec    %esi
409358:	41                   	inc    %ecx
409359:	4e                   	dec    %esi
40935a:	ac                   	lods   %ds:(%esi),%al
40935b:	08 c0                	or     %al,%al
40935d:	75 03                	jne    0x409362
40935f:	b0 30                	mov    $0x30,%al
409361:	4e                   	dec    %esi
409362:	c3                   	ret
409363:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
409367:	74 03                	je     0x40936c
409369:	b0 2d                	mov    $0x2d,%al
40936b:	aa                   	stos   %al,%es:(%edi)
40936c:	c3                   	ret
40936d:	e8 f1 ff ff ff       	call   0x409363
409372:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
409376:	31 d2                	xor    %edx,%edx
409378:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
40937b:	7f 1d                	jg     0x40939a
40937d:	83 f9 fd             	cmp    $0xfffffffd,%ecx
409380:	7c 18                	jl     0x40939a
409382:	09 c9                	or     %ecx,%ecx
409384:	7f 1a                	jg     0x4093a0
409386:	b0 30                	mov    $0x30,%al
409388:	aa                   	stos   %al,%es:(%edi)
409389:	80 3e 00             	cmpb   $0x0,(%esi)
40938c:	74 3a                	je     0x4093c8
40938e:	8a 45 fb             	mov    -0x5(%ebp),%al
409391:	aa                   	stos   %al,%es:(%edi)
409392:	f7 d9                	neg    %ecx
409394:	b0 30                	mov    $0x30,%al
409396:	f3 aa                	rep stos %al,%es:(%edi)
409398:	eb 1a                	jmp    0x4093b4
40939a:	b9 01 00 00 00       	mov    $0x1,%ecx
40939f:	42                   	inc    %edx
4093a0:	ac                   	lods   %ds:(%esi),%al
4093a1:	08 c0                	or     %al,%al
4093a3:	74 17                	je     0x4093bc
4093a5:	aa                   	stos   %al,%es:(%edi)
4093a6:	e2 f8                	loop   0x4093a0
4093a8:	ac                   	lods   %ds:(%esi),%al
4093a9:	08 c0                	or     %al,%al
4093ab:	74 13                	je     0x4093c0
4093ad:	88 c4                	mov    %al,%ah
4093af:	8a 45 fb             	mov    -0x5(%ebp),%al
4093b2:	66 ab                	stos   %ax,%es:(%edi)
4093b4:	ac                   	lods   %ds:(%esi),%al
4093b5:	08 c0                	or     %al,%al
4093b7:	74 07                	je     0x4093c0
4093b9:	aa                   	stos   %al,%es:(%edi)
4093ba:	eb f8                	jmp    0x4093b4
4093bc:	b0 30                	mov    $0x30,%al
4093be:	f3 aa                	rep stos %al,%es:(%edi)
4093c0:	09 d2                	or     %edx,%edx
4093c2:	74 04                	je     0x4093c8
4093c4:	31 c0                	xor    %eax,%eax
4093c6:	eb 1e                	jmp    0x4093e6
4093c8:	c3                   	ret
4093c9:	e8 95 ff ff ff       	call   0x409363
4093ce:	e8 87 ff ff ff       	call   0x40935a
4093d3:	8a 65 fb             	mov    -0x5(%ebp),%ah
4093d6:	66 ab                	stos   %ax,%es:(%edi)
4093d8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4093db:	49                   	dec    %ecx
4093dc:	e8 79 ff ff ff       	call   0x40935a
4093e1:	aa                   	stos   %al,%es:(%edi)
4093e2:	e2 f8                	loop   0x4093dc
4093e4:	b4 2b                	mov    $0x2b,%ah
4093e6:	8b 4d 08             	mov    0x8(%ebp),%ecx
4093e9:	83 f9 04             	cmp    $0x4,%ecx
4093ec:	76 02                	jbe    0x4093f0
4093ee:	31 c9                	xor    %ecx,%ecx
4093f0:	b0 45                	mov    $0x45,%al
4093f2:	8a 5d d7             	mov    -0x29(%ebp),%bl
4093f5:	0f bf 55 d4          	movswl -0x2c(%ebp),%edx
4093f9:	4a                   	dec    %edx
4093fa:	e8 21 fe ff ff       	call   0x409220
4093ff:	c3                   	ret
409400:	e8 5e ff ff ff       	call   0x409363
409405:	8b 55 08             	mov    0x8(%ebp),%edx
409408:	83 fa 12             	cmp    $0x12,%edx
40940b:	72 05                	jb     0x409412
40940d:	ba 12 00 00 00       	mov    $0x12,%edx
409412:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
409416:	09 c9                	or     %ecx,%ecx
409418:	7f 05                	jg     0x40941f
40941a:	b0 30                	mov    $0x30,%al
40941c:	aa                   	stos   %al,%es:(%edi)
40941d:	eb 2a                	jmp    0x409449
40941f:	31 db                	xor    %ebx,%ebx
409421:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
409425:	74 0a                	je     0x409431
409427:	89 c8                	mov    %ecx,%eax
409429:	48                   	dec    %eax
40942a:	b3 03                	mov    $0x3,%bl
40942c:	f6 f3                	div    %bl
40942e:	88 e3                	mov    %ah,%bl
409430:	43                   	inc    %ebx
409431:	e8 24 ff ff ff       	call   0x40935a
409436:	aa                   	stos   %al,%es:(%edi)
409437:	49                   	dec    %ecx
409438:	74 0f                	je     0x409449
40943a:	4b                   	dec    %ebx
40943b:	75 f4                	jne    0x409431
40943d:	8a 45 fa             	mov    -0x6(%ebp),%al
409440:	84 c0                	test   %al,%al
409442:	74 ed                	je     0x409431
409444:	aa                   	stos   %al,%es:(%edi)
409445:	b3 03                	mov    $0x3,%bl
409447:	eb e8                	jmp    0x409431
409449:	09 d2                	or     %edx,%edx
40944b:	74 1c                	je     0x409469
40944d:	8a 45 fb             	mov    -0x5(%ebp),%al
409450:	84 c0                	test   %al,%al
409452:	74 01                	je     0x409455
409454:	aa                   	stos   %al,%es:(%edi)
409455:	e3 09                	jecxz  0x409460
409457:	b0 30                	mov    $0x30,%al
409459:	aa                   	stos   %al,%es:(%edi)
40945a:	4a                   	dec    %edx
40945b:	74 0c                	je     0x409469
40945d:	41                   	inc    %ecx
40945e:	75 f9                	jne    0x409459
409460:	e8 f5 fe ff ff       	call   0x40935a
409465:	aa                   	stos   %al,%es:(%edi)
409466:	4a                   	dec    %edx
409467:	75 f7                	jne    0x409460
409469:	c3                   	ret
40946a:	31 db                	xor    %ebx,%ebx
40946c:	8a 5d f3             	mov    -0xd(%ebp),%bl
40946f:	b9 03 00 00 00       	mov    $0x3,%ecx
409474:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
409478:	74 08                	je     0x409482
40947a:	8a 5d f2             	mov    -0xe(%ebp),%bl
40947d:	b9 0f 04 00 00       	mov    $0x40f,%ecx
409482:	38 cb                	cmp    %cl,%bl
409484:	76 02                	jbe    0x409488
409486:	88 cb                	mov    %cl,%bl
409488:	00 eb                	add    %ch,%bl
40948a:	8d 9c 9b cd 94 40 00 	lea    0x4094cd(%ebx,%ebx,4),%ebx
409491:	03 5d ec             	add    -0x14(%ebp),%ebx
409494:	b9 05 00 00 00       	mov    $0x5,%ecx
409499:	8a 03                	mov    (%ebx),%al
40949b:	3c 40                	cmp    $0x40,%al
40949d:	74 1e                	je     0x4094bd
40949f:	51                   	push   %ecx
4094a0:	53                   	push   %ebx
4094a1:	3c 24                	cmp    $0x24,%al
4094a3:	74 07                	je     0x4094ac
4094a5:	3c 2a                	cmp    $0x2a,%al
4094a7:	74 0a                	je     0x4094b3
4094a9:	aa                   	stos   %al,%es:(%edi)
4094aa:	eb 0c                	jmp    0x4094b8
4094ac:	e8 0d 00 00 00       	call   0x4094be
4094b1:	eb 05                	jmp    0x4094b8
4094b3:	e8 4d ff ff ff       	call   0x409405
4094b8:	5b                   	pop    %ebx
4094b9:	59                   	pop    %ecx
4094ba:	43                   	inc    %ebx
4094bb:	e2 dc                	loop   0x409499
4094bd:	c3                   	ret
4094be:	56                   	push   %esi
4094bf:	8b 75 f4             	mov    -0xc(%ebp),%esi
4094c2:	85 f6                	test   %esi,%esi
4094c4:	74 05                	je     0x4094cb
4094c6:	8b 4e fc             	mov    -0x4(%esi),%ecx
4094c9:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4094cb:	5e                   	pop    %esi
4094cc:	c3                   	ret
4094cd:	24 2a                	and    $0x2a,%al
4094cf:	40                   	inc    %eax
4094d0:	40                   	inc    %eax
4094d1:	40                   	inc    %eax
4094d2:	2a 24 40             	sub    (%eax,%eax,2),%ah
4094d5:	40                   	inc    %eax
4094d6:	40                   	inc    %eax
4094d7:	24 20                	and    $0x20,%al
4094d9:	2a 40 40             	sub    0x40(%eax),%al
4094dc:	2a 20                	sub    (%eax),%ah
4094de:	24 40                	and    $0x40,%al
4094e0:	40                   	inc    %eax
4094e1:	28 24 2a             	sub    %ah,(%edx,%ebp,1)
4094e4:	29 40 2d             	sub    %eax,0x2d(%eax)
4094e7:	24 2a                	and    $0x2a,%al
4094e9:	40                   	inc    %eax
4094ea:	40                   	inc    %eax
4094eb:	24 2d                	and    $0x2d,%al
4094ed:	2a 40 40             	sub    0x40(%eax),%al
4094f0:	24 2a                	and    $0x2a,%al
4094f2:	2d 40 40 28 2a       	sub    $0x2a284040,%eax
4094f7:	24 29                	and    $0x29,%al
4094f9:	40                   	inc    %eax
4094fa:	2d 2a 24 40 40       	sub    $0x4040242a,%eax
4094ff:	2a 2d 24 40 40 2a    	sub    0x2a404024,%ch
409505:	24 2d                	and    $0x2d,%al
409507:	40                   	inc    %eax
409508:	40                   	inc    %eax
409509:	2d 2a 20 24 40       	sub    $0x4024202a,%eax
40950e:	2d 24 20 2a 40       	sub    $0x402a2024,%eax
409513:	2a 20                	sub    (%eax),%ah
409515:	24 2d                	and    $0x2d,%al
409517:	40                   	inc    %eax
409518:	24 20                	and    $0x20,%al
40951a:	2a 2d 40 24 20 2d    	sub    0x2d202440,%ch
409520:	2a 40 2a             	sub    0x2a(%eax),%al
409523:	2d 20 24 40 28       	sub    $0x28402420,%eax
409528:	24 20                	and    $0x20,%al
40952a:	2a 29                	sub    (%ecx),%ch
40952c:	28 2a                	sub    %ch,(%edx)
40952e:	20 24 29             	and    %ah,(%ecx,%ebp,1)
409531:	8b e5                	mov    %ebp,%esp
409533:	5d                   	pop    %ebp
409534:	c2 0c 00             	ret    $0xc
409537:	90                   	nop
409538:	55                   	push   %ebp
409539:	8b ec                	mov    %esp,%ebp
40953b:	83 c4 e0             	add    $0xffffffe0,%esp
40953e:	57                   	push   %edi
40953f:	56                   	push   %esi
409540:	53                   	push   %ebx
409541:	89 c3                	mov    %eax,%ebx
409543:	89 d6                	mov    %edx,%esi
409545:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40954c:	80 f9 00             	cmp    $0x0,%cl
40954f:	74 0a                	je     0x40955b
409551:	e8 31 01 00 00       	call   0x409687
409556:	e9 00 02 00 00       	jmp    0x40975b
40955b:	e8 05 00 00 00       	call   0x409565
409560:	e9 f6 01 00 00       	jmp    0x40975b
409565:	66 8b 46 08          	mov    0x8(%esi),%ax
409569:	89 c2                	mov    %eax,%edx
40956b:	25 ff 7f 00 00       	and    $0x7fff,%eax
409570:	74 1e                	je     0x409590
409572:	3d ff 7f 00 00       	cmp    $0x7fff,%eax
409577:	75 22                	jne    0x40959b
409579:	66 f7 46 06 00 80    	testw  $0x8000,0x6(%esi)
40957f:	74 11                	je     0x409592
409581:	83 3e 00             	cmpl   $0x0,(%esi)
409584:	75 09                	jne    0x40958f
409586:	81 7e 04 00 00 00 80 	cmpl   $0x80000000,0x4(%esi)
40958d:	74 03                	je     0x409592
40958f:	40                   	inc    %eax
409590:	31 d2                	xor    %edx,%edx
409592:	c6 43 03 00          	movb   $0x0,0x3(%ebx)
409596:	e9 cd 00 00 00       	jmp    0x409668
40959b:	db 2e                	fldt   (%esi)
40959d:	2d ff 3f 00 00       	sub    $0x3fff,%eax
4095a2:	69 c0 10 4d 00 00    	imul   $0x4d10,%eax,%eax
4095a8:	c1 f8 10             	sar    $0x10,%eax
4095ab:	40                   	inc    %eax
4095ac:	89 45 f8             	mov    %eax,-0x8(%ebp)
4095af:	b8 12 00 00 00       	mov    $0x12,%eax
4095b4:	2b 45 f8             	sub    -0x8(%ebp),%eax
4095b7:	d9 e1                	fabs
4095b9:	53                   	push   %ebx
4095ba:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4095bd:	e8 8a 9d ff ff       	call   0x40334c
4095c2:	5b                   	pop    %ebx
4095c3:	d9 fc                	frndint
4095c5:	8b 7d fc             	mov    -0x4(%ebp),%edi
4095c8:	db af 94 51 45 00    	fldt   0x455194(%edi)
4095ce:	d8 d9                	fcomp  %st(1)
4095d0:	9b dd 7d f6          	fstsw  -0xa(%ebp)
4095d4:	9b                   	fwait
4095d5:	66 f7 45 f6 00 41    	testw  $0x4100,-0xa(%ebp)
4095db:	74 09                	je     0x4095e6
4095dd:	da b7 a0 51 45 00    	fidivl 0x4551a0(%edi)
4095e3:	ff 45 f8             	incl   -0x8(%ebp)
4095e6:	df 75 e8             	fbstp  -0x18(%ebp)
4095e9:	8d 7b 03             	lea    0x3(%ebx),%edi
4095ec:	ba 09 00 00 00       	mov    $0x9,%edx
4095f1:	9b                   	fwait
4095f2:	8a 44 2a e7          	mov    -0x19(%edx,%ebp,1),%al
4095f6:	88 c4                	mov    %al,%ah
4095f8:	c0 e8 04             	shr    $0x4,%al
4095fb:	80 e4 0f             	and    $0xf,%ah
4095fe:	66 05 30 30          	add    $0x3030,%ax
409602:	66 ab                	stos   %ax,%es:(%edi)
409604:	4a                   	dec    %edx
409605:	75 eb                	jne    0x4095f2
409607:	32 c0                	xor    %al,%al
409609:	aa                   	stos   %al,%es:(%edi)
40960a:	8b 7d f8             	mov    -0x8(%ebp),%edi
40960d:	03 7d 08             	add    0x8(%ebp),%edi
409610:	79 07                	jns    0x409619
409612:	31 c0                	xor    %eax,%eax
409614:	e9 77 ff ff ff       	jmp    0x409590
409619:	3b 7d 0c             	cmp    0xc(%ebp),%edi
40961c:	72 03                	jb     0x409621
40961e:	8b 7d 0c             	mov    0xc(%ebp),%edi
409621:	83 ff 12             	cmp    $0x12,%edi
409624:	73 27                	jae    0x40964d
409626:	80 7c 3b 03 35       	cmpb   $0x35,0x3(%ebx,%edi,1)
40962b:	72 25                	jb     0x409652
40962d:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
409632:	4f                   	dec    %edi
409633:	78 0d                	js     0x409642
409635:	fe 44 3b 03          	incb   0x3(%ebx,%edi,1)
409639:	80 7c 3b 03 39       	cmpb   $0x39,0x3(%ebx,%edi,1)
40963e:	77 ed                	ja     0x40962d
409640:	eb 1f                	jmp    0x409661
409642:	66 c7 43 03 31 00    	movw   $0x31,0x3(%ebx)
409648:	ff 45 f8             	incl   -0x8(%ebp)
40964b:	eb 14                	jmp    0x409661
40964d:	bf 12 00 00 00       	mov    $0x12,%edi
409652:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
409657:	4f                   	dec    %edi
409658:	78 19                	js     0x409673
40965a:	80 7c 3b 03 30       	cmpb   $0x30,0x3(%ebx,%edi,1)
40965f:	74 f1                	je     0x409652