408f91:	0f bf 55 d4          	movswl -0x2c(%ebp),%edx
408f95:	4a                   	dec    %edx
408f96:	e8 21 fe ff ff       	call   0x408dbc
408f9b:	c3                   	ret
408f9c:	e8 5e ff ff ff       	call   0x408eff
408fa1:	8b 55 08             	mov    0x8(%ebp),%edx
408fa4:	83 fa 12             	cmp    $0x12,%edx
408fa7:	72 05                	jb     0x408fae
408fa9:	ba 12 00 00 00       	mov    $0x12,%edx
408fae:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
408fb2:	09 c9                	or     %ecx,%ecx
408fb4:	7f 05                	jg     0x408fbb
408fb6:	b0 30                	mov    $0x30,%al
408fb8:	aa                   	stos   %al,%es:(%edi)
408fb9:	eb 2a                	jmp    0x408fe5
408fbb:	31 db                	xor    %ebx,%ebx
408fbd:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
408fc1:	74 0a                	je     0x408fcd
408fc3:	89 c8                	mov    %ecx,%eax
408fc5:	48                   	dec    %eax
408fc6:	b3 03                	mov    $0x3,%bl
408fc8:	f6 f3                	div    %bl
408fca:	88 e3                	mov    %ah,%bl
408fcc:	43                   	inc    %ebx
408fcd:	e8 24 ff ff ff       	call   0x408ef6
408fd2:	aa                   	stos   %al,%es:(%edi)
408fd3:	49                   	dec    %ecx
408fd4:	74 0f                	je     0x408fe5
408fd6:	4b                   	dec    %ebx
408fd7:	75 f4                	jne    0x408fcd
408fd9:	8a 45 fa             	mov    -0x6(%ebp),%al
408fdc:	84 c0                	test   %al,%al
408fde:	74 ed                	je     0x408fcd
408fe0:	aa                   	stos   %al,%es:(%edi)
408fe1:	b3 03                	mov    $0x3,%bl
408fe3:	eb e8                	jmp    0x408fcd
408fe5:	09 d2                	or     %edx,%edx
408fe7:	74 1c                	je     0x409005
408fe9:	8a 45 fb             	mov    -0x5(%ebp),%al
408fec:	84 c0                	test   %al,%al
408fee:	74 01                	je     0x408ff1
408ff0:	aa                   	stos   %al,%es:(%edi)
408ff1:	e3 09                	jecxz  0x408ffc
408ff3:	b0 30                	mov    $0x30,%al
408ff5:	aa                   	stos   %al,%es:(%edi)
408ff6:	4a                   	dec    %edx
408ff7:	74 0c                	je     0x409005
408ff9:	41                   	inc    %ecx
408ffa:	75 f9                	jne    0x408ff5
408ffc:	e8 f5 fe ff ff       	call   0x408ef6
409001:	aa                   	stos   %al,%es:(%edi)
409002:	4a                   	dec    %edx
409003:	75 f7                	jne    0x408ffc
409005:	c3                   	ret
409006:	31 db                	xor    %ebx,%ebx
409008:	8a 5d f3             	mov    -0xd(%ebp),%bl
40900b:	b9 03 00 00 00       	mov    $0x3,%ecx
409010:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
409014:	74 08                	je     0x40901e
409016:	8a 5d f2             	mov    -0xe(%ebp),%bl
409019:	b9 0f 04 00 00       	mov    $0x40f,%ecx
40901e:	38 cb                	cmp    %cl,%bl
409020:	76 02                	jbe    0x409024
409022:	88 cb                	mov    %cl,%bl
409024:	00 eb                	add    %ch,%bl
409026:	8d 9c 9b 69 90 40 00 	lea    0x409069(%ebx,%ebx,4),%ebx
40902d:	03 5d ec             	add    -0x14(%ebp),%ebx
409030:	b9 05 00 00 00       	mov    $0x5,%ecx
409035:	8a 03                	mov    (%ebx),%al
409037:	3c 40                	cmp    $0x40,%al
409039:	74 1e                	je     0x409059
40903b:	51                   	push   %ecx
40903c:	53                   	push   %ebx
40903d:	3c 24                	cmp    $0x24,%al
40903f:	74 07                	je     0x409048
409041:	3c 2a                	cmp    $0x2a,%al
409043:	74 0a                	je     0x40904f
409045:	aa                   	stos   %al,%es:(%edi)
409046:	eb 0c                	jmp    0x409054
409048:	e8 0d 00 00 00       	call   0x40905a
40904d:	eb 05                	jmp    0x409054
40904f:	e8 4d ff ff ff       	call   0x408fa1
409054:	5b                   	pop    %ebx
409055:	59                   	pop    %ecx
409056:	43                   	inc    %ebx
409057:	e2 dc                	loop   0x409035
409059:	c3                   	ret
40905a:	56                   	push   %esi
40905b:	8b 75 f4             	mov    -0xc(%ebp),%esi
40905e:	85 f6                	test   %esi,%esi
409060:	74 05                	je     0x409067
409062:	8b 4e fc             	mov    -0x4(%esi),%ecx
409065:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
409067:	5e                   	pop    %esi
409068:	c3                   	ret
409069:	24 2a                	and    $0x2a,%al
40906b:	40                   	inc    %eax
40906c:	40                   	inc    %eax
40906d:	40                   	inc    %eax
40906e:	2a 24 40             	sub    (%eax,%eax,2),%ah
409071:	40                   	inc    %eax
409072:	40                   	inc    %eax
409073:	24 20                	and    $0x20,%al
409075:	2a 40 40             	sub    0x40(%eax),%al
409078:	2a 20                	sub    (%eax),%ah
40907a:	24 40                	and    $0x40,%al
40907c:	40                   	inc    %eax
40907d:	28 24 2a             	sub    %ah,(%edx,%ebp,1)
409080:	29 40 2d             	sub    %eax,0x2d(%eax)
409083:	24 2a                	and    $0x2a,%al
409085:	40                   	inc    %eax
409086:	40                   	inc    %eax
409087:	24 2d                	and    $0x2d,%al
409089:	2a 40 40             	sub    0x40(%eax),%al
40908c:	24 2a                	and    $0x2a,%al
40908e:	2d 40 40 28 2a       	sub    $0x2a284040,%eax
409093:	24 29                	and    $0x29,%al
409095:	40                   	inc    %eax
409096:	2d 2a 24 40 40       	sub    $0x4040242a,%eax
40909b:	2a 2d 24 40 40 2a    	sub    0x2a404024,%ch
4090a1:	24 2d                	and    $0x2d,%al
4090a3:	40                   	inc    %eax
4090a4:	40                   	inc    %eax
4090a5:	2d 2a 20 24 40       	sub    $0x4024202a,%eax
4090aa:	2d 24 20 2a 40       	sub    $0x402a2024,%eax
4090af:	2a 20                	sub    (%eax),%ah
4090b1:	24 2d                	and    $0x2d,%al
4090b3:	40                   	inc    %eax
4090b4:	24 20                	and    $0x20,%al
4090b6:	2a 2d 40 24 20 2d    	sub    0x2d202440,%ch
4090bc:	2a 40 2a             	sub    0x2a(%eax),%al
4090bf:	2d 20 24 40 28       	sub    $0x28402420,%eax
4090c4:	24 20                	and    $0x20,%al
4090c6:	2a 29                	sub    (%ecx),%ch
4090c8:	28 2a                	sub    %ch,(%edx)
4090ca:	20 24 29             	and    %ah,(%ecx,%ebp,1)
4090cd:	8b e5                	mov    %ebp,%esp
4090cf:	5d                   	pop    %ebp
4090d0:	c2 0c 00             	ret    $0xc
4090d3:	90                   	nop
4090d4:	55                   	push   %ebp
4090d5:	8b ec                	mov    %esp,%ebp
4090d7:	83 c4 e0             	add    $0xffffffe0,%esp
4090da:	57                   	push   %edi
4090db:	56                   	push   %esi
4090dc:	53                   	push   %ebx
4090dd:	89 c3                	mov    %eax,%ebx
4090df:	89 d6                	mov    %edx,%esi
4090e1:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4090e8:	80 f9 00             	cmp    $0x0,%cl
4090eb:	74 0a                	je     0x4090f7
4090ed:	e8 31 01 00 00       	call   0x409223
4090f2:	e9 00 02 00 00       	jmp    0x4092f7
4090f7:	e8 05 00 00 00       	call   0x409101
4090fc:	e9 f6 01 00 00       	jmp    0x4092f7
409101:	66 8b 46 08          	mov    0x8(%esi),%ax
409105:	89 c2                	mov    %eax,%edx
409107:	25 ff 7f 00 00       	and    $0x7fff,%eax
40910c:	74 1e                	je     0x40912c
40910e:	3d ff 7f 00 00       	cmp    $0x7fff,%eax
409113:	75 22                	jne    0x409137
409115:	66 f7 46 06 00 80    	testw  $0x8000,0x6(%esi)
40911b:	74 11                	je     0x40912e
40911d:	83 3e 00             	cmpl   $0x0,(%esi)
409120:	75 09                	jne    0x40912b
409122:	81 7e 04 00 00 00 80 	cmpl   $0x80000000,0x4(%esi)
409129:	74 03                	je     0x40912e
40912b:	40                   	inc    %eax
40912c:	31 d2                	xor    %edx,%edx
40912e:	c6 43 03 00          	movb   $0x0,0x3(%ebx)
409132:	e9 cd 00 00 00       	jmp    0x409204
409137:	db 2e                	fldt   (%esi)
409139:	2d ff 3f 00 00       	sub    $0x3fff,%eax
40913e:	69 c0 10 4d 00 00    	imul   $0x4d10,%eax,%eax
409144:	c1 f8 10             	sar    $0x10,%eax
409147:	40                   	inc    %eax
409148:	89 45 f8             	mov    %eax,-0x8(%ebp)
40914b:	b8 12 00 00 00       	mov    $0x12,%eax
409150:	2b 45 f8             	sub    -0x8(%ebp),%eax
409153:	d9 e1                	fabs
409155:	53                   	push   %ebx
409156:	8b 5d fc             	mov    -0x4(%ebp),%ebx
409159:	e8 3e 9c ff ff       	call   0x402d9c
40915e:	5b                   	pop    %ebx
40915f:	d9 fc                	frndint
409161:	8b 7d fc             	mov    -0x4(%ebp),%edi
409164:	db af 68 31 46 00    	fldt   0x463168(%edi)
40916a:	d8 d9                	fcomp  %st(1)
40916c:	9b dd 7d f6          	fstsw  -0xa(%ebp)
409170:	9b                   	fwait
409171:	66 f7 45 f6 00 41    	testw  $0x4100,-0xa(%ebp)
409177:	74 09                	je     0x409182
409179:	da b7 74 31 46 00    	fidivl 0x463174(%edi)
40917f:	ff 45 f8             	incl   -0x8(%ebp)
409182:	df 75 e8             	fbstp  -0x18(%ebp)
409185:	8d 7b 03             	lea    0x3(%ebx),%edi
409188:	ba 09 00 00 00       	mov    $0x9,%edx
40918d:	9b                   	fwait
40918e:	8a 44 2a e7          	mov    -0x19(%edx,%ebp,1),%al
409192:	88 c4                	mov    %al,%ah
409194:	c0 e8 04             	shr    $0x4,%al
409197:	80 e4 0f             	and    $0xf,%ah
40919a:	66 05 30 30          	add    $0x3030,%ax
40919e:	66 ab                	stos   %ax,%es:(%edi)
4091a0:	4a                   	dec    %edx
4091a1:	75 eb                	jne    0x40918e
4091a3:	32 c0                	xor    %al,%al
4091a5:	aa                   	stos   %al,%es:(%edi)
4091a6:	8b 7d f8             	mov    -0x8(%ebp),%edi
4091a9:	03 7d 08             	add    0x8(%ebp),%edi
4091ac:	79 07                	jns    0x4091b5
4091ae:	31 c0                	xor    %eax,%eax
4091b0:	e9 77 ff ff ff       	jmp    0x40912c
4091b5:	3b 7d 0c             	cmp    0xc(%ebp),%edi
4091b8:	72 03                	jb     0x4091bd
4091ba:	8b 7d 0c             	mov    0xc(%ebp),%edi
4091bd:	83 ff 12             	cmp    $0x12,%edi
4091c0:	73 27                	jae    0x4091e9
4091c2:	80 7c 3b 03 35       	cmpb   $0x35,0x3(%ebx,%edi,1)
4091c7:	72 25                	jb     0x4091ee
4091c9:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
4091ce:	4f                   	dec    %edi
4091cf:	78 0d                	js     0x4091de
4091d1:	fe 44 3b 03          	incb   0x3(%ebx,%edi,1)
4091d5:	80 7c 3b 03 39       	cmpb   $0x39,0x3(%ebx,%edi,1)
4091da:	77 ed                	ja     0x4091c9
4091dc:	eb 1f                	jmp    0x4091fd
4091de:	66 c7 43 03 31 00    	movw   $0x31,0x3(%ebx)
4091e4:	ff 45 f8             	incl   -0x8(%ebp)
4091e7:	eb 14                	jmp    0x4091fd
4091e9:	bf 12 00 00 00       	mov    $0x12,%edi
4091ee:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
4091f3:	4f                   	dec    %edi
4091f4:	78 19                	js     0x40920f
4091f6:	80 7c 3b 03 30       	cmpb   $0x30,0x3(%ebx,%edi,1)
4091fb:	74 f1                	je     0x4091ee
4091fd:	66 8b 56 08          	mov    0x8(%esi),%dx
409201:	8b 45 f8             	mov    -0x8(%ebp),%eax
409204:	66 c1 ea 0f          	shr    $0xf,%dx
409208:	66 89 03             	mov    %ax,(%ebx)
40920b:	88 53 02             	mov    %dl,0x2(%ebx)
40920e:	c3                   	ret
40920f:	31 d2                	xor    %edx,%edx
409211:	eb ee                	jmp    0x409201
409213:	0a 00                	or     (%eax),%al
409215:	00 00                	add    %al,(%eax)
409217:	64 00 00             	add    %al,%fs:(%eax)
40921a:	00 e8                	add    %ch,%al
40921c:	03 00                	add    (%eax),%eax
40921e:	00 10                	add    %dl,(%eax)
409220:	27                   	daa
409221:	00 00                	add    %al,(%eax)
409223:	8b 06                	mov    (%esi),%eax
409225:	8b 56 04             	mov    0x4(%esi),%edx
409228:	89 c1                	mov    %eax,%ecx
40922a:	09 d1                	or     %edx,%ecx
40922c:	0f 84 b7 00 00 00    	je     0x4092e9
409232:	09 d2                	or     %edx,%edx
409234:	79 07                	jns    0x40923d
409236:	f7 da                	neg    %edx
409238:	f7 d8                	neg    %eax
40923a:	83 da 00             	sbb    $0x0,%edx
40923d:	31 c9                	xor    %ecx,%ecx
40923f:	8b 7d 08             	mov    0x8(%ebp),%edi
409242:	09 ff                	or     %edi,%edi
409244:	7d 02                	jge    0x409248
409246:	31 ff                	xor    %edi,%edi
409248:	83 ff 04             	cmp    $0x4,%edi
40924b:	7c 1f                	jl     0x40926c
40924d:	bf 04 00 00 00       	mov    $0x4,%edi
409252:	41                   	inc    %ecx
409253:	2d 00 00 64 a7       	sub    $0xa7640000,%eax
409258:	81 da b3 b6 e0 0d    	sbb    $0xde0b6b3,%edx
40925e:	73 f2                	jae    0x409252
409260:	49                   	dec    %ecx
409261:	05 00 00 64 a7       	add    $0xa7640000,%eax
409266:	81 d2 b3 b6 e0 0d    	adc    $0xde0b6b3,%edx
40926c:	89 45 e0             	mov    %eax,-0x20(%ebp)
40926f:	89 55 e4             	mov    %edx,-0x1c(%ebp)
409272:	df 6d e0             	fildll -0x20(%ebp)
409275:	89 fa                	mov    %edi,%edx
409277:	b8 04 00 00 00       	mov    $0x4,%eax
40927c:	29 d0                	sub    %edx,%eax
40927e:	74 0a                	je     0x40928a
409280:	8b 7d fc             	mov    -0x4(%ebp),%edi
409283:	da b4 87 0f 92 40 00 	fidivl 0x40920f(%edi,%eax,4)
40928a:	df 75 e8             	fbstp  -0x18(%ebp)
40928d:	8d 7b 03             	lea    0x3(%ebx),%edi
409290:	9b                   	fwait
409291:	09 c9                	or     %ecx,%ecx
409293:	75 1b                	jne    0x4092b0
409295:	b9 09 00 00 00       	mov    $0x9,%ecx
40929a:	8a 44 29 e7          	mov    -0x19(%ecx,%ebp,1),%al
40929e:	88 c4                	mov    %al,%ah
4092a0:	c0 e8 04             	shr    $0x4,%al
4092a3:	75 1e                	jne    0x4092c3
4092a5:	88 e0                	mov    %ah,%al
4092a7:	24 0f                	and    $0xf,%al
4092a9:	75 1f                	jne    0x4092ca
4092ab:	49                   	dec    %ecx
4092ac:	75 ec                	jne    0x40929a
4092ae:	eb 39                	jmp    0x4092e9
4092b0:	88 c8                	mov    %cl,%al
4092b2:	04 30                	add    $0x30,%al
4092b4:	aa                   	stos   %al,%es:(%edi)
4092b5:	b9 09 00 00 00       	mov    $0x9,%ecx
4092ba:	8a 44 29 e7          	mov    -0x19(%ecx,%ebp,1),%al
4092be:	88 c4                	mov    %al,%ah
4092c0:	c0 e8 04             	shr    $0x4,%al
4092c3:	04 30                	add    $0x30,%al
4092c5:	aa                   	stos   %al,%es:(%edi)
4092c6:	88 e0                	mov    %ah,%al
4092c8:	24 0f                	and    $0xf,%al
4092ca:	04 30                	add    $0x30,%al
4092cc:	aa                   	stos   %al,%es:(%edi)
4092cd:	49                   	dec    %ecx
4092ce:	75 ea                	jne    0x4092ba
4092d0:	89 f8                	mov    %edi,%eax
4092d2:	8d 4c 13 03          	lea    0x3(%ebx,%edx,1),%ecx
4092d6:	29 c8                	sub    %ecx,%eax
4092d8:	c6 07 00             	movb   $0x0,(%edi)
4092db:	4f                   	dec    %edi
4092dc:	80 3f 30             	cmpb   $0x30,(%edi)
4092df:	74 f7                	je     0x4092d8
4092e1:	8b 56 04             	mov    0x4(%esi),%edx
4092e4:	c1 ea 1f             	shr    $0x1f,%edx
4092e7:	eb 07                	jmp    0x4092f0
4092e9:	31 c0                	xor    %eax,%eax
4092eb:	31 d2                	xor    %edx,%edx
4092ed:	88 43 03             	mov    %al,0x3(%ebx)
4092f0:	66 89 03             	mov    %ax,(%ebx)
4092f3:	88 53 02             	mov    %dl,0x2(%ebx)
4092f6:	c3                   	ret
4092f7:	5b                   	pop    %ebx
4092f8:	5e                   	pop    %esi
4092f9:	5f                   	pop    %edi
4092fa:	8b e5                	mov    %ebp,%esp
4092fc:	5d                   	pop    %ebp
4092fd:	c2 08 00             	ret    $0x8
409300:	55                   	push   %ebp
409301:	8b ec                	mov    %esp,%ebp
409303:	83 c4 f4             	add    $0xfffffff4,%esp
409306:	57                   	push   %edi
409307:	56                   	push   %esi
409308:	53                   	push   %ebx
409309:	89 c6                	mov    %eax,%esi
40930b:	89 d7                	mov    %edx,%edi
40930d:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
409314:	a0 87 e6 46 00       	mov    0x46e687,%al
409319:	88 45 fb             	mov    %al,-0x5(%ebp)