409296:	8b 4d 08             	mov    0x8(%ebp),%ecx
409299:	83 f9 04             	cmp    $0x4,%ecx
40929c:	76 02                	jbe    0x4092a0
40929e:	31 c9                	xor    %ecx,%ecx
4092a0:	b0 45                	mov    $0x45,%al
4092a2:	8a 5d d7             	mov    -0x29(%ebp),%bl
4092a5:	0f bf 55 d4          	movswl -0x2c(%ebp),%edx
4092a9:	4a                   	dec    %edx
4092aa:	e8 21 fe ff ff       	call   0x4090d0
4092af:	c3                   	ret
4092b0:	e8 5e ff ff ff       	call   0x409213
4092b5:	8b 55 08             	mov    0x8(%ebp),%edx
4092b8:	83 fa 12             	cmp    $0x12,%edx
4092bb:	72 05                	jb     0x4092c2
4092bd:	ba 12 00 00 00       	mov    $0x12,%edx
4092c2:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
4092c6:	09 c9                	or     %ecx,%ecx
4092c8:	7f 05                	jg     0x4092cf
4092ca:	b0 30                	mov    $0x30,%al
4092cc:	aa                   	stos   %al,%es:(%edi)
4092cd:	eb 2a                	jmp    0x4092f9
4092cf:	31 db                	xor    %ebx,%ebx
4092d1:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
4092d5:	74 0a                	je     0x4092e1
4092d7:	89 c8                	mov    %ecx,%eax
4092d9:	48                   	dec    %eax
4092da:	b3 03                	mov    $0x3,%bl
4092dc:	f6 f3                	div    %bl
4092de:	88 e3                	mov    %ah,%bl
4092e0:	43                   	inc    %ebx
4092e1:	e8 24 ff ff ff       	call   0x40920a
4092e6:	aa                   	stos   %al,%es:(%edi)
4092e7:	49                   	dec    %ecx
4092e8:	74 0f                	je     0x4092f9
4092ea:	4b                   	dec    %ebx
4092eb:	75 f4                	jne    0x4092e1
4092ed:	8a 45 fa             	mov    -0x6(%ebp),%al
4092f0:	84 c0                	test   %al,%al
4092f2:	74 ed                	je     0x4092e1
4092f4:	aa                   	stos   %al,%es:(%edi)
4092f5:	b3 03                	mov    $0x3,%bl
4092f7:	eb e8                	jmp    0x4092e1
4092f9:	09 d2                	or     %edx,%edx
4092fb:	74 1c                	je     0x409319
4092fd:	8a 45 fb             	mov    -0x5(%ebp),%al
409300:	84 c0                	test   %al,%al
409302:	74 01                	je     0x409305
409304:	aa                   	stos   %al,%es:(%edi)
409305:	e3 09                	jecxz  0x409310
409307:	b0 30                	mov    $0x30,%al
409309:	aa                   	stos   %al,%es:(%edi)
40930a:	4a                   	dec    %edx
40930b:	74 0c                	je     0x409319
40930d:	41                   	inc    %ecx
40930e:	75 f9                	jne    0x409309
409310:	e8 f5 fe ff ff       	call   0x40920a
409315:	aa                   	stos   %al,%es:(%edi)
409316:	4a                   	dec    %edx
409317:	75 f7                	jne    0x409310
409319:	c3                   	ret
40931a:	31 db                	xor    %ebx,%ebx
40931c:	8a 5d f3             	mov    -0xd(%ebp),%bl
40931f:	b9 03 00 00 00       	mov    $0x3,%ecx
409324:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
409328:	74 08                	je     0x409332
40932a:	8a 5d f2             	mov    -0xe(%ebp),%bl
40932d:	b9 0f 04 00 00       	mov    $0x40f,%ecx
409332:	38 cb                	cmp    %cl,%bl
409334:	76 02                	jbe    0x409338
409336:	88 cb                	mov    %cl,%bl
409338:	00 eb                	add    %ch,%bl
40933a:	8d 9c 9b 7d 93 40 00 	lea    0x40937d(%ebx,%ebx,4),%ebx
409341:	03 5d ec             	add    -0x14(%ebp),%ebx
409344:	b9 05 00 00 00       	mov    $0x5,%ecx
409349:	8a 03                	mov    (%ebx),%al
40934b:	3c 40                	cmp    $0x40,%al
40934d:	74 1e                	je     0x40936d
40934f:	51                   	push   %ecx
409350:	53                   	push   %ebx
409351:	3c 24                	cmp    $0x24,%al
409353:	74 07                	je     0x40935c
409355:	3c 2a                	cmp    $0x2a,%al
409357:	74 0a                	je     0x409363
409359:	aa                   	stos   %al,%es:(%edi)
40935a:	eb 0c                	jmp    0x409368
40935c:	e8 0d 00 00 00       	call   0x40936e
409361:	eb 05                	jmp    0x409368
409363:	e8 4d ff ff ff       	call   0x4092b5
409368:	5b                   	pop    %ebx
409369:	59                   	pop    %ecx
40936a:	43                   	inc    %ebx
40936b:	e2 dc                	loop   0x409349
40936d:	c3                   	ret
40936e:	56                   	push   %esi
40936f:	8b 75 f4             	mov    -0xc(%ebp),%esi
409372:	85 f6                	test   %esi,%esi
409374:	74 05                	je     0x40937b
409376:	8b 4e fc             	mov    -0x4(%esi),%ecx
409379:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40937b:	5e                   	pop    %esi
40937c:	c3                   	ret
40937d:	24 2a                	and    $0x2a,%al
40937f:	40                   	inc    %eax
409380:	40                   	inc    %eax
409381:	40                   	inc    %eax
409382:	2a 24 40             	sub    (%eax,%eax,2),%ah
409385:	40                   	inc    %eax
409386:	40                   	inc    %eax
409387:	24 20                	and    $0x20,%al
409389:	2a 40 40             	sub    0x40(%eax),%al
40938c:	2a 20                	sub    (%eax),%ah
40938e:	24 40                	and    $0x40,%al
409390:	40                   	inc    %eax
409391:	28 24 2a             	sub    %ah,(%edx,%ebp,1)
409394:	29 40 2d             	sub    %eax,0x2d(%eax)
409397:	24 2a                	and    $0x2a,%al
409399:	40                   	inc    %eax
40939a:	40                   	inc    %eax
40939b:	24 2d                	and    $0x2d,%al
40939d:	2a 40 40             	sub    0x40(%eax),%al
4093a0:	24 2a                	and    $0x2a,%al
4093a2:	2d 40 40 28 2a       	sub    $0x2a284040,%eax
4093a7:	24 29                	and    $0x29,%al
4093a9:	40                   	inc    %eax
4093aa:	2d 2a 24 40 40       	sub    $0x4040242a,%eax
4093af:	2a 2d 24 40 40 2a    	sub    0x2a404024,%ch
4093b5:	24 2d                	and    $0x2d,%al
4093b7:	40                   	inc    %eax
4093b8:	40                   	inc    %eax
4093b9:	2d 2a 20 24 40       	sub    $0x4024202a,%eax
4093be:	2d 24 20 2a 40       	sub    $0x402a2024,%eax
4093c3:	2a 20                	sub    (%eax),%ah
4093c5:	24 2d                	and    $0x2d,%al
4093c7:	40                   	inc    %eax
4093c8:	24 20                	and    $0x20,%al
4093ca:	2a 2d 40 24 20 2d    	sub    0x2d202440,%ch
4093d0:	2a 40 2a             	sub    0x2a(%eax),%al
4093d3:	2d 20 24 40 28       	sub    $0x28402420,%eax
4093d8:	24 20                	and    $0x20,%al
4093da:	2a 29                	sub    (%ecx),%ch
4093dc:	28 2a                	sub    %ch,(%edx)
4093de:	20 24 29             	and    %ah,(%ecx,%ebp,1)
4093e1:	8b e5                	mov    %ebp,%esp
4093e3:	5d                   	pop    %ebp
4093e4:	c2 0c 00             	ret    $0xc
4093e7:	90                   	nop
4093e8:	55                   	push   %ebp
4093e9:	8b ec                	mov    %esp,%ebp
4093eb:	83 c4 e0             	add    $0xffffffe0,%esp
4093ee:	57                   	push   %edi
4093ef:	56                   	push   %esi
4093f0:	53                   	push   %ebx
4093f1:	89 c3                	mov    %eax,%ebx
4093f3:	89 d6                	mov    %edx,%esi
4093f5:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4093fc:	80 f9 00             	cmp    $0x0,%cl
4093ff:	74 0a                	je     0x40940b
409401:	e8 31 01 00 00       	call   0x409537
409406:	e9 00 02 00 00       	jmp    0x40960b
40940b:	e8 05 00 00 00       	call   0x409415
409410:	e9 f6 01 00 00       	jmp    0x40960b
409415:	66 8b 46 08          	mov    0x8(%esi),%ax
409419:	89 c2                	mov    %eax,%edx
40941b:	25 ff 7f 00 00       	and    $0x7fff,%eax
409420:	74 1e                	je     0x409440
409422:	3d ff 7f 00 00       	cmp    $0x7fff,%eax
409427:	75 22                	jne    0x40944b
409429:	66 f7 46 06 00 80    	testw  $0x8000,0x6(%esi)
40942f:	74 11                	je     0x409442
409431:	83 3e 00             	cmpl   $0x0,(%esi)
409434:	75 09                	jne    0x40943f
409436:	81 7e 04 00 00 00 80 	cmpl   $0x80000000,0x4(%esi)
40943d:	74 03                	je     0x409442
40943f:	40                   	inc    %eax
409440:	31 d2                	xor    %edx,%edx
409442:	c6 43 03 00          	movb   $0x0,0x3(%ebx)
409446:	e9 cd 00 00 00       	jmp    0x409518
40944b:	db 2e                	fldt   (%esi)
40944d:	2d ff 3f 00 00       	sub    $0x3fff,%eax
409452:	69 c0 10 4d 00 00    	imul   $0x4d10,%eax,%eax
409458:	c1 f8 10             	sar    $0x10,%eax
40945b:	40                   	inc    %eax
40945c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40945f:	b8 12 00 00 00       	mov    $0x12,%eax
409464:	2b 45 f8             	sub    -0x8(%ebp),%eax
409467:	d9 e1                	fabs
409469:	53                   	push   %ebx
40946a:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40946d:	e8 92 99 ff ff       	call   0x402e04
409472:	5b                   	pop    %ebx
409473:	d9 fc                	frndint
409475:	8b 7d fc             	mov    -0x4(%ebp),%edi
409478:	db af 68 91 46 00    	fldt   0x469168(%edi)
40947e:	d8 d9                	fcomp  %st(1)
409480:	9b dd 7d f6          	fstsw  -0xa(%ebp)
409484:	9b                   	fwait
409485:	66 f7 45 f6 00 41    	testw  $0x4100,-0xa(%ebp)
40948b:	74 09                	je     0x409496
40948d:	da b7 74 91 46 00    	fidivl 0x469174(%edi)
409493:	ff 45 f8             	incl   -0x8(%ebp)
409496:	df 75 e8             	fbstp  -0x18(%ebp)
409499:	8d 7b 03             	lea    0x3(%ebx),%edi
40949c:	ba 09 00 00 00       	mov    $0x9,%edx
4094a1:	9b                   	fwait
4094a2:	8a 44 2a e7          	mov    -0x19(%edx,%ebp,1),%al
4094a6:	88 c4                	mov    %al,%ah
4094a8:	c0 e8 04             	shr    $0x4,%al
4094ab:	80 e4 0f             	and    $0xf,%ah
4094ae:	66 05 30 30          	add    $0x3030,%ax
4094b2:	66 ab                	stos   %ax,%es:(%edi)
4094b4:	4a                   	dec    %edx
4094b5:	75 eb                	jne    0x4094a2
4094b7:	32 c0                	xor    %al,%al
4094b9:	aa                   	stos   %al,%es:(%edi)
4094ba:	8b 7d f8             	mov    -0x8(%ebp),%edi
4094bd:	03 7d 08             	add    0x8(%ebp),%edi
4094c0:	79 07                	jns    0x4094c9
4094c2:	31 c0                	xor    %eax,%eax
4094c4:	e9 77 ff ff ff       	jmp    0x409440
4094c9:	3b 7d 0c             	cmp    0xc(%ebp),%edi
4094cc:	72 03                	jb     0x4094d1
4094ce:	8b 7d 0c             	mov    0xc(%ebp),%edi
4094d1:	83 ff 12             	cmp    $0x12,%edi
4094d4:	73 27                	jae    0x4094fd
4094d6:	80 7c 3b 03 35       	cmpb   $0x35,0x3(%ebx,%edi,1)
4094db:	72 25                	jb     0x409502
4094dd:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
4094e2:	4f                   	dec    %edi
4094e3:	78 0d                	js     0x4094f2
4094e5:	fe 44 3b 03          	incb   0x3(%ebx,%edi,1)
4094e9:	80 7c 3b 03 39       	cmpb   $0x39,0x3(%ebx,%edi,1)
4094ee:	77 ed                	ja     0x4094dd
4094f0:	eb 1f                	jmp    0x409511
4094f2:	66 c7 43 03 31 00    	movw   $0x31,0x3(%ebx)
4094f8:	ff 45 f8             	incl   -0x8(%ebp)
4094fb:	eb 14                	jmp    0x409511
4094fd:	bf 12 00 00 00       	mov    $0x12,%edi
409502:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
409507:	4f                   	dec    %edi
409508:	78 19                	js     0x409523
40950a:	80 7c 3b 03 30       	cmpb   $0x30,0x3(%ebx,%edi,1)
40950f:	74 f1                	je     0x409502
409511:	66 8b 56 08          	mov    0x8(%esi),%dx
409515:	8b 45 f8             	mov    -0x8(%ebp),%eax
409518:	66 c1 ea 0f          	shr    $0xf,%dx
40951c:	66 89 03             	mov    %ax,(%ebx)
40951f:	88 53 02             	mov    %dl,0x2(%ebx)
409522:	c3                   	ret
409523:	31 d2                	xor    %edx,%edx
409525:	eb ee                	jmp    0x409515
409527:	0a 00                	or     (%eax),%al
409529:	00 00                	add    %al,(%eax)
40952b:	64 00 00             	add    %al,%fs:(%eax)
40952e:	00 e8                	add    %ch,%al
409530:	03 00                	add    (%eax),%eax
409532:	00 10                	add    %dl,(%eax)
409534:	27                   	daa
409535:	00 00                	add    %al,(%eax)
409537:	8b 06                	mov    (%esi),%eax
409539:	8b 56 04             	mov    0x4(%esi),%edx
40953c:	89 c1                	mov    %eax,%ecx
40953e:	09 d1                	or     %edx,%ecx
409540:	0f 84 b7 00 00 00    	je     0x4095fd
409546:	09 d2                	or     %edx,%edx
409548:	79 07                	jns    0x409551
40954a:	f7 da                	neg    %edx
40954c:	f7 d8                	neg    %eax
40954e:	83 da 00             	sbb    $0x0,%edx
409551:	31 c9                	xor    %ecx,%ecx
409553:	8b 7d 08             	mov    0x8(%ebp),%edi
409556:	09 ff                	or     %edi,%edi
409558:	7d 02                	jge    0x40955c
40955a:	31 ff                	xor    %edi,%edi
40955c:	83 ff 04             	cmp    $0x4,%edi
40955f:	7c 1f                	jl     0x409580
409561:	bf 04 00 00 00       	mov    $0x4,%edi
409566:	41                   	inc    %ecx
409567:	2d 00 00 64 a7       	sub    $0xa7640000,%eax
40956c:	81 da b3 b6 e0 0d    	sbb    $0xde0b6b3,%edx
409572:	73 f2                	jae    0x409566
409574:	49                   	dec    %ecx
409575:	05 00 00 64 a7       	add    $0xa7640000,%eax
40957a:	81 d2 b3 b6 e0 0d    	adc    $0xde0b6b3,%edx
409580:	89 45 e0             	mov    %eax,-0x20(%ebp)
409583:	89 55 e4             	mov    %edx,-0x1c(%ebp)
409586:	df 6d e0             	fildll -0x20(%ebp)
409589:	89 fa                	mov    %edi,%edx
40958b:	b8 04 00 00 00       	mov    $0x4,%eax
409590:	29 d0                	sub    %edx,%eax
409592:	74 0a                	je     0x40959e
409594:	8b 7d fc             	mov    -0x4(%ebp),%edi
409597:	da b4 87 23 95 40 00 	fidivl 0x409523(%edi,%eax,4)
40959e:	df 75 e8             	fbstp  -0x18(%ebp)
4095a1:	8d 7b 03             	lea    0x3(%ebx),%edi
4095a4:	9b                   	fwait
4095a5:	09 c9                	or     %ecx,%ecx
4095a7:	75 1b                	jne    0x4095c4
4095a9:	b9 09 00 00 00       	mov    $0x9,%ecx
4095ae:	8a 44 29 e7          	mov    -0x19(%ecx,%ebp,1),%al
4095b2:	88 c4                	mov    %al,%ah
4095b4:	c0 e8 04             	shr    $0x4,%al
4095b7:	75 1e                	jne    0x4095d7
4095b9:	88 e0                	mov    %ah,%al
4095bb:	24 0f                	and    $0xf,%al
4095bd:	75 1f                	jne    0x4095de
4095bf:	49                   	dec    %ecx
4095c0:	75 ec                	jne    0x4095ae
4095c2:	eb 39                	jmp    0x4095fd
4095c4:	88 c8                	mov    %cl,%al
4095c6:	04 30                	add    $0x30,%al
4095c8:	aa                   	stos   %al,%es:(%edi)
4095c9:	b9 09 00 00 00       	mov    $0x9,%ecx
4095ce:	8a 44 29 e7          	mov    -0x19(%ecx,%ebp,1),%al
4095d2:	88 c4                	mov    %al,%ah
4095d4:	c0 e8 04             	shr    $0x4,%al
4095d7:	04 30                	add    $0x30,%al
4095d9:	aa                   	stos   %al,%es:(%edi)
4095da:	88 e0                	mov    %ah,%al
4095dc:	24 0f                	and    $0xf,%al
4095de:	04 30                	add    $0x30,%al
4095e0:	aa                   	stos   %al,%es:(%edi)
4095e1:	49                   	dec    %ecx
4095e2:	75 ea                	jne    0x4095ce
4095e4:	89 f8                	mov    %edi,%eax
4095e6:	8d 4c 13 03          	lea    0x3(%ebx,%edx,1),%ecx
4095ea:	29 c8                	sub    %ecx,%eax
4095ec:	c6 07 00             	movb   $0x0,(%edi)
4095ef:	4f                   	dec    %edi
4095f0:	80 3f 30             	cmpb   $0x30,(%edi)
4095f3:	74 f7                	je     0x4095ec
4095f5:	8b 56 04             	mov    0x4(%esi),%edx
4095f8:	c1 ea 1f             	shr    $0x1f,%edx
4095fb:	eb 07                	jmp    0x409604
4095fd:	31 c0                	xor    %eax,%eax
4095ff:	31 d2                	xor    %edx,%edx
409601:	88 43 03             	mov    %al,0x3(%ebx)
409604:	66 89 03             	mov    %ax,(%ebx)
409607:	88 53 02             	mov    %dl,0x2(%ebx)
40960a:	c3                   	ret
40960b:	5b                   	pop    %ebx
40960c:	5e                   	pop    %esi
40960d:	5f                   	pop    %edi
40960e:	8b e5                	mov    %ebp,%esp
409610:	5d                   	pop    %ebp
409611:	c2 08 00             	ret    $0x8
409614:	55                   	push   %ebp
409615:	8b ec                	mov    %esp,%ebp
409617:	83 c4 f4             	add    $0xfffffff4,%esp
40961a:	57                   	push   %edi
40961b:	56                   	push   %esi