4090e2:	2a 29                	sub    (%ecx),%ch
4090e4:	28 2a                	sub    %ch,(%edx)
4090e6:	20 24 29             	and    %ah,(%ecx,%ebp,1)
4090e9:	8b e5                	mov    %ebp,%esp
4090eb:	5d                   	pop    %ebp
4090ec:	c2 0c 00             	ret    $0xc
4090ef:	90                   	nop
4090f0:	55                   	push   %ebp
4090f1:	8b ec                	mov    %esp,%ebp
4090f3:	83 c4 e0             	add    $0xffffffe0,%esp
4090f6:	57                   	push   %edi
4090f7:	56                   	push   %esi
4090f8:	53                   	push   %ebx
4090f9:	89 c3                	mov    %eax,%ebx
4090fb:	89 d6                	mov    %edx,%esi
4090fd:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
409104:	80 f9 00             	cmp    $0x0,%cl
409107:	74 0a                	je     0x409113
409109:	e8 31 01 00 00       	call   0x40923f
40910e:	e9 00 02 00 00       	jmp    0x409313
409113:	e8 05 00 00 00       	call   0x40911d
409118:	e9 f6 01 00 00       	jmp    0x409313
40911d:	66 8b 46 08          	mov    0x8(%esi),%ax
409121:	89 c2                	mov    %eax,%edx
409123:	25 ff 7f 00 00       	and    $0x7fff,%eax
409128:	74 1e                	je     0x409148
40912a:	3d ff 7f 00 00       	cmp    $0x7fff,%eax
40912f:	75 22                	jne    0x409153
409131:	66 f7 46 06 00 80    	testw  $0x8000,0x6(%esi)
409137:	74 11                	je     0x40914a
409139:	83 3e 00             	cmpl   $0x0,(%esi)
40913c:	75 09                	jne    0x409147
40913e:	81 7e 04 00 00 00 80 	cmpl   $0x80000000,0x4(%esi)
409145:	74 03                	je     0x40914a
409147:	40                   	inc    %eax
409148:	31 d2                	xor    %edx,%edx
40914a:	c6 43 03 00          	movb   $0x0,0x3(%ebx)
40914e:	e9 cd 00 00 00       	jmp    0x409220
409153:	db 2e                	fldt   (%esi)
409155:	2d ff 3f 00 00       	sub    $0x3fff,%eax
40915a:	69 c0 10 4d 00 00    	imul   $0x4d10,%eax,%eax
409160:	c1 f8 10             	sar    $0x10,%eax
409163:	40                   	inc    %eax
409164:	89 45 f8             	mov    %eax,-0x8(%ebp)
409167:	b8 12 00 00 00       	mov    $0x12,%eax
40916c:	2b 45 f8             	sub    -0x8(%ebp),%eax
40916f:	d9 e1                	fabs
409171:	53                   	push   %ebx
409172:	8b 5d fc             	mov    -0x4(%ebp),%ebx
409175:	e8 46 9c ff ff       	call   0x402dc0
40917a:	5b                   	pop    %ebx
40917b:	d9 fc                	frndint
40917d:	8b 7d fc             	mov    -0x4(%ebp),%edi
409180:	db af 68 d1 45 00    	fldt   0x45d168(%edi)
409186:	d8 d9                	fcomp  %st(1)
409188:	9b dd 7d f6          	fstsw  -0xa(%ebp)
40918c:	9b                   	fwait
40918d:	66 f7 45 f6 00 41    	testw  $0x4100,-0xa(%ebp)
409193:	74 09                	je     0x40919e
409195:	da b7 74 d1 45 00    	fidivl 0x45d174(%edi)
40919b:	ff 45 f8             	incl   -0x8(%ebp)
40919e:	df 75 e8             	fbstp  -0x18(%ebp)
4091a1:	8d 7b 03             	lea    0x3(%ebx),%edi
4091a4:	ba 09 00 00 00       	mov    $0x9,%edx
4091a9:	9b                   	fwait
4091aa:	8a 44 2a e7          	mov    -0x19(%edx,%ebp,1),%al
4091ae:	88 c4                	mov    %al,%ah
4091b0:	c0 e8 04             	shr    $0x4,%al
4091b3:	80 e4 0f             	and    $0xf,%ah
4091b6:	66 05 30 30          	add    $0x3030,%ax
4091ba:	66 ab                	stos   %ax,%es:(%edi)
4091bc:	4a                   	dec    %edx
4091bd:	75 eb                	jne    0x4091aa
4091bf:	32 c0                	xor    %al,%al
4091c1:	aa                   	stos   %al,%es:(%edi)
4091c2:	8b 7d f8             	mov    -0x8(%ebp),%edi
4091c5:	03 7d 08             	add    0x8(%ebp),%edi
4091c8:	79 07                	jns    0x4091d1
4091ca:	31 c0                	xor    %eax,%eax
4091cc:	e9 77 ff ff ff       	jmp    0x409148
4091d1:	3b 7d 0c             	cmp    0xc(%ebp),%edi
4091d4:	72 03                	jb     0x4091d9
4091d6:	8b 7d 0c             	mov    0xc(%ebp),%edi
4091d9:	83 ff 12             	cmp    $0x12,%edi
4091dc:	73 27                	jae    0x409205
4091de:	80 7c 3b 03 35       	cmpb   $0x35,0x3(%ebx,%edi,1)
4091e3:	72 25                	jb     0x40920a
4091e5:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
4091ea:	4f                   	dec    %edi
4091eb:	78 0d                	js     0x4091fa
4091ed:	fe 44 3b 03          	incb   0x3(%ebx,%edi,1)
4091f1:	80 7c 3b 03 39       	cmpb   $0x39,0x3(%ebx,%edi,1)
4091f6:	77 ed                	ja     0x4091e5
4091f8:	eb 1f                	jmp    0x409219
4091fa:	66 c7 43 03 31 00    	movw   $0x31,0x3(%ebx)
409200:	ff 45 f8             	incl   -0x8(%ebp)
409203:	eb 14                	jmp    0x409219
409205:	bf 12 00 00 00       	mov    $0x12,%edi
40920a:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
40920f:	4f                   	dec    %edi
409210:	78 19                	js     0x40922b
409212:	80 7c 3b 03 30       	cmpb   $0x30,0x3(%ebx,%edi,1)
409217:	74 f1                	je     0x40920a
409219:	66 8b 56 08          	mov    0x8(%esi),%dx
40921d:	8b 45 f8             	mov    -0x8(%ebp),%eax
409220:	66 c1 ea 0f          	shr    $0xf,%dx
409224:	66 89 03             	mov    %ax,(%ebx)
409227:	88 53 02             	mov    %dl,0x2(%ebx)
40922a:	c3                   	ret
40922b:	31 d2                	xor    %edx,%edx
40922d:	eb ee                	jmp    0x40921d
40922f:	0a 00                	or     (%eax),%al
409231:	00 00                	add    %al,(%eax)
409233:	64 00 00             	add    %al,%fs:(%eax)
409236:	00 e8                	add    %ch,%al
409238:	03 00                	add    (%eax),%eax
40923a:	00 10                	add    %dl,(%eax)
40923c:	27                   	daa
40923d:	00 00                	add    %al,(%eax)
40923f:	8b 06                	mov    (%esi),%eax
409241:	8b 56 04             	mov    0x4(%esi),%edx
409244:	89 c1                	mov    %eax,%ecx
409246:	09 d1                	or     %edx,%ecx
409248:	0f 84 b7 00 00 00    	je     0x409305
40924e:	09 d2                	or     %edx,%edx
409250:	79 07                	jns    0x409259
409252:	f7 da                	neg    %edx
409254:	f7 d8                	neg    %eax
409256:	83 da 00             	sbb    $0x0,%edx
409259:	31 c9                	xor    %ecx,%ecx
40925b:	8b 7d 08             	mov    0x8(%ebp),%edi
40925e:	09 ff                	or     %edi,%edi
409260:	7d 02                	jge    0x409264
409262:	31 ff                	xor    %edi,%edi
409264:	83 ff 04             	cmp    $0x4,%edi
409267:	7c 1f                	jl     0x409288
409269:	bf 04 00 00 00       	mov    $0x4,%edi
40926e:	41                   	inc    %ecx
40926f:	2d 00 00 64 a7       	sub    $0xa7640000,%eax
409274:	81 da b3 b6 e0 0d    	sbb    $0xde0b6b3,%edx
40927a:	73 f2                	jae    0x40926e
40927c:	49                   	dec    %ecx
40927d:	05 00 00 64 a7       	add    $0xa7640000,%eax
409282:	81 d2 b3 b6 e0 0d    	adc    $0xde0b6b3,%edx
409288:	89 45 e0             	mov    %eax,-0x20(%ebp)
40928b:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40928e:	df 6d e0             	fildll -0x20(%ebp)
409291:	89 fa                	mov    %edi,%edx
409293:	b8 04 00 00 00       	mov    $0x4,%eax
409298:	29 d0                	sub    %edx,%eax
40929a:	74 0a                	je     0x4092a6
40929c:	8b 7d fc             	mov    -0x4(%ebp),%edi
40929f:	da b4 87 2b 92 40 00 	fidivl 0x40922b(%edi,%eax,4)
4092a6:	df 75 e8             	fbstp  -0x18(%ebp)
4092a9:	8d 7b 03             	lea    0x3(%ebx),%edi
4092ac:	9b                   	fwait
4092ad:	09 c9                	or     %ecx,%ecx
4092af:	75 1b                	jne    0x4092cc
4092b1:	b9 09 00 00 00       	mov    $0x9,%ecx
4092b6:	8a 44 29 e7          	mov    -0x19(%ecx,%ebp,1),%al
4092ba:	88 c4                	mov    %al,%ah
4092bc:	c0 e8 04             	shr    $0x4,%al
4092bf:	75 1e                	jne    0x4092df
4092c1:	88 e0                	mov    %ah,%al
4092c3:	24 0f                	and    $0xf,%al
4092c5:	75 1f                	jne    0x4092e6
4092c7:	49                   	dec    %ecx
4092c8:	75 ec                	jne    0x4092b6
4092ca:	eb 39                	jmp    0x409305
4092cc:	88 c8                	mov    %cl,%al
4092ce:	04 30                	add    $0x30,%al
4092d0:	aa                   	stos   %al,%es:(%edi)
4092d1:	b9 09 00 00 00       	mov    $0x9,%ecx
4092d6:	8a 44 29 e7          	mov    -0x19(%ecx,%ebp,1),%al
4092da:	88 c4                	mov    %al,%ah
4092dc:	c0 e8 04             	shr    $0x4,%al
4092df:	04 30                	add    $0x30,%al
4092e1:	aa                   	stos   %al,%es:(%edi)
4092e2:	88 e0                	mov    %ah,%al
4092e4:	24 0f                	and    $0xf,%al
4092e6:	04 30                	add    $0x30,%al
4092e8:	aa                   	stos   %al,%es:(%edi)
4092e9:	49                   	dec    %ecx
4092ea:	75 ea                	jne    0x4092d6
4092ec:	89 f8                	mov    %edi,%eax
4092ee:	8d 4c 13 03          	lea    0x3(%ebx,%edx,1),%ecx
4092f2:	29 c8                	sub    %ecx,%eax
4092f4:	c6 07 00             	movb   $0x0,(%edi)
4092f7:	4f                   	dec    %edi
4092f8:	80 3f 30             	cmpb   $0x30,(%edi)
4092fb:	74 f7                	je     0x4092f4
4092fd:	8b 56 04             	mov    0x4(%esi),%edx
409300:	c1 ea 1f             	shr    $0x1f,%edx
409303:	eb 07                	jmp    0x40930c
409305:	31 c0                	xor    %eax,%eax
409307:	31 d2                	xor    %edx,%edx
409309:	88 43 03             	mov    %al,0x3(%ebx)
40930c:	66 89 03             	mov    %ax,(%ebx)
40930f:	88 53 02             	mov    %dl,0x2(%ebx)
409312:	c3                   	ret
409313:	5b                   	pop    %ebx
409314:	5e                   	pop    %esi
409315:	5f                   	pop    %edi
409316:	8b e5                	mov    %ebp,%esp
409318:	5d                   	pop    %ebp
409319:	c2 08 00             	ret    $0x8
40931c:	55                   	push   %ebp
40931d:	8b ec                	mov    %esp,%ebp
40931f:	83 c4 f4             	add    $0xfffffff4,%esp
409322:	57                   	push   %edi
409323:	56                   	push   %esi
409324:	53                   	push   %ebx
409325:	89 c6                	mov    %eax,%esi
409327:	89 d7                	mov    %edx,%edi
409329:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
409330:	a0 87 96 46 00       	mov    0x469687,%al
409335:	88 45 fb             	mov    %al,-0x5(%ebp)
409338:	89 cb                	mov    %ecx,%ebx
40933a:	9b d9 7d f8          	fstcw  -0x8(%ebp)
40933e:	9b db e2             	fclex
409341:	d9 2d 78 d1 45 00    	fldcw  0x45d178
409347:	d9 ee                	fldz
409349:	e8 85 00 00 00       	call   0x4093d3
40934e:	8a 3e                	mov    (%esi),%bh
409350:	80 ff 2b             	cmp    $0x2b,%bh
409353:	74 05                	je     0x40935a
409355:	80 ff 2d             	cmp    $0x2d,%bh
409358:	75 01                	jne    0x40935b
40935a:	46                   	inc    %esi
40935b:	89 f1                	mov    %esi,%ecx
40935d:	e8 7c 00 00 00       	call   0x4093de
409362:	31 d2                	xor    %edx,%edx
409364:	8a 06                	mov    (%esi),%al
409366:	3a 45 fb             	cmp    -0x5(%ebp),%al
409369:	75 08                	jne    0x409373
40936b:	46                   	inc    %esi
40936c:	e8 6d 00 00 00       	call   0x4093de
409371:	f7 da                	neg    %edx
409373:	39 f1                	cmp    %esi,%ecx
409375:	74 4f                	je     0x4093c6
409377:	8a 06                	mov    (%esi),%al
409379:	24 df                	and    $0xdf,%al
40937b:	3c 45                	cmp    $0x45,%al
40937d:	75 0a                	jne    0x409389
40937f:	46                   	inc    %esi
409380:	52                   	push   %edx
409381:	e8 74 00 00 00       	call   0x4093fa
409386:	58                   	pop    %eax
409387:	01 c2                	add    %eax,%edx
409389:	e8 45 00 00 00       	call   0x4093d3
40938e:	80 3e 00             	cmpb   $0x0,(%esi)
409391:	75 33                	jne    0x4093c6
409393:	89 d0                	mov    %edx,%eax
409395:	80 fb 01             	cmp    $0x1,%bl
409398:	75 03                	jne    0x40939d
40939a:	83 c0 04             	add    $0x4,%eax
40939d:	53                   	push   %ebx
40939e:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4093a1:	e8 1a 9a ff ff       	call   0x402dc0
4093a6:	5b                   	pop    %ebx
4093a7:	80 ff 2d             	cmp    $0x2d,%bh
4093aa:	75 02                	jne    0x4093ae
4093ac:	d9 e0                	fchs
4093ae:	80 fb 00             	cmp    $0x0,%bl
4093b1:	74 04                	je     0x4093b7
4093b3:	df 3f                	fistpll (%edi)
4093b5:	eb 02                	jmp    0x4093b9
4093b7:	db 3f                	fstpt  (%edi)
4093b9:	9b df e0             	fstsw  %ax
4093bc:	66 a9 09 00          	test   $0x9,%ax
4093c0:	75 06                	jne    0x4093c8
4093c2:	b0 01                	mov    $0x1,%al
4093c4:	eb 04                	jmp    0x4093ca
4093c6:	dd d8                	fstp   %st(0)
4093c8:	31 c0                	xor    %eax,%eax
4093ca:	9b db e2             	fclex
4093cd:	d9 6d f8             	fldcw  -0x8(%ebp)
4093d0:	9b                   	fwait
4093d1:	eb 56                	jmp    0x409429
4093d3:	ac                   	lods   %ds:(%esi),%al
4093d4:	08 c0                	or     %al,%al
4093d6:	74 04                	je     0x4093dc
4093d8:	3c 20                	cmp    $0x20,%al
4093da:	74 f7                	je     0x4093d3
4093dc:	4e                   	dec    %esi
4093dd:	c3                   	ret
4093de:	31 c0                	xor    %eax,%eax
4093e0:	31 d2                	xor    %edx,%edx
4093e2:	ac                   	lods   %ds:(%esi),%al
4093e3:	2c 3a                	sub    $0x3a,%al
4093e5:	04 0a                	add    $0xa,%al
4093e7:	73 0f                	jae    0x4093f8
4093e9:	da 0d 74 d1 45 00    	fimull 0x45d174
4093ef:	89 45 f4             	mov    %eax,-0xc(%ebp)
4093f2:	da 45 f4             	fiaddl -0xc(%ebp)
4093f5:	42                   	inc    %edx
4093f6:	eb ea                	jmp    0x4093e2
4093f8:	4e                   	dec    %esi
4093f9:	c3                   	ret
4093fa:	31 c0                	xor    %eax,%eax
4093fc:	31 d2                	xor    %edx,%edx
4093fe:	8a 0e                	mov    (%esi),%cl
409400:	80 f9 2b             	cmp    $0x2b,%cl
409403:	74 05                	je     0x40940a
409405:	80 f9 2d             	cmp    $0x2d,%cl
409408:	75 01                	jne    0x40940b
40940a:	46                   	inc    %esi
40940b:	8a 06                	mov    (%esi),%al
40940d:	2c 3a                	sub    $0x3a,%al
40940f:	04 0a                	add    $0xa,%al
409411:	73 0e                	jae    0x409421
409413:	46                   	inc    %esi
409414:	6b d2 0a             	imul   $0xa,%edx,%edx
409417:	01 c2                	add    %eax,%edx
409419:	81 fa f4 01 00 00    	cmp    $0x1f4,%edx
40941f:	72 ea                	jb     0x40940b
409421:	80 f9 2d             	cmp    $0x2d,%cl
409424:	75 02                	jne    0x409428
409426:	f7 da                	neg    %edx
409428:	c3                   	ret
409429:	5b                   	pop    %ebx
40942a:	5e                   	pop    %esi
40942b:	5f                   	pop    %edi
40942c:	8b e5                	mov    %ebp,%esp
40942e:	5d                   	pop    %ebp
40942f:	c3                   	ret
409430:	55                   	push   %ebp
409431:	8b ec                	mov    %esp,%ebp
409433:	83 c4 c0             	add    $0xffffffc0,%esp
409436:	53                   	push   %ebx
409437:	8b d8                	mov    %eax,%ebx
409439:	6a 00                	push   $0x0
40943b:	6a 0f                	push   $0xf
40943d:	6a 00                	push   $0x0
40943f:	8d 55 08             	lea    0x8(%ebp),%edx
409442:	8d 45 c0             	lea    -0x40(%ebp),%eax
409445:	33 c9                	xor    %ecx,%ecx
409447:	e8 d0 f9 ff ff       	call   0x408e1c
40944c:	8b c8                	mov    %eax,%ecx
40944e:	8d 55 c0             	lea    -0x40(%ebp),%edx
409451:	8b c3                	mov    %ebx,%eax
409453:	e8 54 ac ff ff       	call   0x4040ac
409458:	5b                   	pop    %ebx
409459:	8b e5                	mov    %ebp,%esp
40945b:	5d                   	pop    %ebp
40945c:	c2 0c 00             	ret    $0xc
40945f:	90                   	nop
409460:	55                   	push   %ebp
409461:	8b ec                	mov    %esp,%ebp
409463:	83 c4 c0             	add    $0xffffffc0,%esp