40fec6:	8b 45 d0             	mov    -0x30(%ebp),%eax
40fec9:	89 47 60             	mov    %eax,0x60(%edi)
40fecc:	83 fe 08             	cmp    $0x8,%esi
40fecf:	75 06                	jne    0x40fed7
40fed1:	8b 45 cc             	mov    -0x34(%ebp),%eax
40fed4:	89 47 64             	mov    %eax,0x64(%edi)
40fed7:	33 c0                	xor    %eax,%eax
40fed9:	e8 17 af ff ff       	call   0x40adf5
40fede:	c3                   	ret
40fedf:	55                   	push   %ebp
40fee0:	8b ec                	mov    %esp,%ebp
40fee2:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40fee5:	8b 15 f8 bb 41 00    	mov    0x41bbf8,%edx
40feeb:	56                   	push   %esi
40feec:	8b 75 08             	mov    0x8(%ebp),%esi
40feef:	39 71 04             	cmp    %esi,0x4(%ecx)
40fef2:	74 0f                	je     0x40ff03
40fef4:	8b c2                	mov    %edx,%eax
40fef6:	6b c0 0c             	imul   $0xc,%eax,%eax
40fef9:	03 45 0c             	add    0xc(%ebp),%eax
40fefc:	83 c1 0c             	add    $0xc,%ecx
40feff:	3b c8                	cmp    %eax,%ecx
40ff01:	72 ec                	jb     0x40feef
40ff03:	6b d2 0c             	imul   $0xc,%edx,%edx
40ff06:	03 55 0c             	add    0xc(%ebp),%edx
40ff09:	3b ca                	cmp    %edx,%ecx
40ff0b:	73 09                	jae    0x40ff16
40ff0d:	39 71 04             	cmp    %esi,0x4(%ecx)
40ff10:	75 04                	jne    0x40ff16
40ff12:	8b c1                	mov    %ecx,%eax
40ff14:	eb 02                	jmp    0x40ff18
40ff16:	33 c0                	xor    %eax,%eax
40ff18:	5e                   	pop    %esi
40ff19:	5d                   	pop    %ebp
40ff1a:	c3                   	ret
40ff1b:	55                   	push   %ebp
40ff1c:	8b ec                	mov    %esp,%ebp
40ff1e:	dd 45 08             	fldl   0x8(%ebp)
40ff21:	57                   	push   %edi
40ff22:	d9 ee                	fldz
40ff24:	dd e1                	fucom  %st(1)
40ff26:	df e0                	fnstsw %ax
40ff28:	f6 c4 44             	test   $0x44,%ah
40ff2b:	7a 09                	jp     0x40ff36
40ff2d:	dd d9                	fstp   %st(1)
40ff2f:	33 ff                	xor    %edi,%edi
40ff31:	e9 af 00 00 00       	jmp    0x40ffe5
40ff36:	56                   	push   %esi
40ff37:	66 8b 75 0e          	mov    0xe(%ebp),%si
40ff3b:	0f b7 c6             	movzwl %si,%eax
40ff3e:	a9 f0 7f 00 00       	test   $0x7ff0,%eax
40ff43:	75 7c                	jne    0x40ffc1
40ff45:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ff48:	8b 55 08             	mov    0x8(%ebp),%edx
40ff4b:	f7 c1 ff ff 0f 00    	test   $0xfffff,%ecx
40ff51:	75 04                	jne    0x40ff57
40ff53:	85 d2                	test   %edx,%edx
40ff55:	74 6a                	je     0x40ffc1
40ff57:	de d9                	fcompp
40ff59:	bf 03 fc ff ff       	mov    $0xfffffc03,%edi
40ff5e:	df e0                	fnstsw %ax
40ff60:	f6 c4 41             	test   $0x41,%ah
40ff63:	75 05                	jne    0x40ff6a
40ff65:	33 c0                	xor    %eax,%eax
40ff67:	40                   	inc    %eax
40ff68:	eb 02                	jmp    0x40ff6c
40ff6a:	33 c0                	xor    %eax,%eax
40ff6c:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
40ff70:	75 1f                	jne    0x40ff91
40ff72:	03 c9                	add    %ecx,%ecx
40ff74:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40ff77:	85 d2                	test   %edx,%edx
40ff79:	79 06                	jns    0x40ff81
40ff7b:	83 c9 01             	or     $0x1,%ecx
40ff7e:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40ff81:	03 d2                	add    %edx,%edx
40ff83:	4f                   	dec    %edi
40ff84:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
40ff88:	74 e8                	je     0x40ff72
40ff8a:	66 8b 75 0e          	mov    0xe(%ebp),%si
40ff8e:	89 55 08             	mov    %edx,0x8(%ebp)
40ff91:	b9 ef ff 00 00       	mov    $0xffef,%ecx
40ff96:	66 23 f1             	and    %cx,%si
40ff99:	66 89 75 0e          	mov    %si,0xe(%ebp)
40ff9d:	85 c0                	test   %eax,%eax
40ff9f:	74 0c                	je     0x40ffad
40ffa1:	b8 00 80 00 00       	mov    $0x8000,%eax
40ffa6:	66 0b f0             	or     %ax,%si
40ffa9:	66 89 75 0e          	mov    %si,0xe(%ebp)
40ffad:	dd 45 08             	fldl   0x8(%ebp)
40ffb0:	6a 00                	push   $0x0
40ffb2:	51                   	push   %ecx
40ffb3:	51                   	push   %ecx
40ffb4:	dd 1c 24             	fstpl  (%esp)
40ffb7:	e8 31 00 00 00       	call   0x40ffed
40ffbc:	83 c4 0c             	add    $0xc,%esp
40ffbf:	eb 23                	jmp    0x40ffe4
40ffc1:	6a 00                	push   $0x0
40ffc3:	dd d8                	fstp   %st(0)
40ffc5:	51                   	push   %ecx
40ffc6:	51                   	push   %ecx
40ffc7:	dd 1c 24             	fstpl  (%esp)
40ffca:	e8 1e 00 00 00       	call   0x40ffed
40ffcf:	0f b7 fe             	movzwl %si,%edi
40ffd2:	c1 ef 04             	shr    $0x4,%edi
40ffd5:	81 e7 ff 07 00 00    	and    $0x7ff,%edi
40ffdb:	83 c4 0c             	add    $0xc,%esp
40ffde:	81 ef fe 03 00 00    	sub    $0x3fe,%edi
40ffe4:	5e                   	pop    %esi
40ffe5:	8b 45 10             	mov    0x10(%ebp),%eax
40ffe8:	89 38                	mov    %edi,(%eax)
40ffea:	5f                   	pop    %edi
40ffeb:	5d                   	pop    %ebp
40ffec:	c3                   	ret
40ffed:	55                   	push   %ebp
40ffee:	8b ec                	mov    %esp,%ebp
40fff0:	51                   	push   %ecx
40fff1:	51                   	push   %ecx
40fff2:	8b 4d 10             	mov    0x10(%ebp),%ecx
40fff5:	dd 45 08             	fldl   0x8(%ebp)
40fff8:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
40fffc:	dd 5d f8             	fstpl  -0x8(%ebp)
40ffff:	8d 89 fe 03 00 00    	lea    0x3fe(%ecx),%ecx
410005:	c1 e1 04             	shl    $0x4,%ecx
410008:	25 0f 80 00 00       	and    $0x800f,%eax
41000d:	0b c8                	or     %eax,%ecx
41000f:	66 89 4d fe          	mov    %cx,-0x2(%ebp)
410013:	dd 45 f8             	fldl   -0x8(%ebp)
410016:	c9                   	leave
410017:	c3                   	ret
410018:	55                   	push   %ebp
410019:	8b ec                	mov    %esp,%ebp
41001b:	83 ec 0c             	sub    $0xc,%esp
41001e:	53                   	push   %ebx
41001f:	8b 5d 08             	mov    0x8(%ebp),%ebx
410022:	56                   	push   %esi
410023:	8b f3                	mov    %ebx,%esi
410025:	83 e6 1f             	and    $0x1f,%esi
410028:	f6 c3 08             	test   $0x8,%bl
41002b:	74 16                	je     0x410043
41002d:	f6 45 10 01          	testb  $0x1,0x10(%ebp)
410031:	74 10                	je     0x410043
410033:	6a 01                	push   $0x1
410035:	e8 9b 05 00 00       	call   0x4105d5
41003a:	59                   	pop    %ecx
41003b:	83 e6 f7             	and    $0xfffffff7,%esi
41003e:	e9 90 01 00 00       	jmp    0x4101d3
410043:	f6 c3 04             	test   $0x4,%bl
410046:	74 16                	je     0x41005e
410048:	f6 45 10 04          	testb  $0x4,0x10(%ebp)
41004c:	74 10                	je     0x41005e
41004e:	6a 04                	push   $0x4
410050:	e8 80 05 00 00       	call   0x4105d5
410055:	59                   	pop    %ecx
410056:	83 e6 fb             	and    $0xfffffffb,%esi
410059:	e9 75 01 00 00       	jmp    0x4101d3
41005e:	f6 c3 01             	test   $0x1,%bl
410061:	0f 84 9a 00 00 00    	je     0x410101
410067:	f6 45 10 08          	testb  $0x8,0x10(%ebp)
41006b:	0f 84 90 00 00 00    	je     0x410101
410071:	6a 08                	push   $0x8
410073:	e8 5d 05 00 00       	call   0x4105d5
410078:	8b 45 10             	mov    0x10(%ebp),%eax
41007b:	59                   	pop    %ecx
41007c:	b9 00 0c 00 00       	mov    $0xc00,%ecx
410081:	23 c1                	and    %ecx,%eax
410083:	74 54                	je     0x4100d9
410085:	3d 00 04 00 00       	cmp    $0x400,%eax
41008a:	74 37                	je     0x4100c3
41008c:	3d 00 08 00 00       	cmp    $0x800,%eax
410091:	74 1a                	je     0x4100ad
410093:	3b c1                	cmp    %ecx,%eax
410095:	75 62                	jne    0x4100f9
410097:	d9 ee                	fldz
410099:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41009c:	dc 19                	fcompl (%ecx)
41009e:	df e0                	fnstsw %ax
4100a0:	dd 05 80 10 42 00    	fldl   0x421080
4100a6:	f6 c4 05             	test   $0x5,%ah
4100a9:	7b 4c                	jnp    0x4100f7
4100ab:	eb 48                	jmp    0x4100f5
4100ad:	d9 ee                	fldz
4100af:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4100b2:	dc 19                	fcompl (%ecx)
4100b4:	df e0                	fnstsw %ax
4100b6:	f6 c4 05             	test   $0x5,%ah
4100b9:	7b 2c                	jnp    0x4100e7
4100bb:	dd 05 80 10 42 00    	fldl   0x421080
4100c1:	eb 32                	jmp    0x4100f5
4100c3:	d9 ee                	fldz
4100c5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4100c8:	dc 19                	fcompl (%ecx)
4100ca:	df e0                	fnstsw %ax
4100cc:	f6 c4 05             	test   $0x5,%ah
4100cf:	7a 1e                	jp     0x4100ef
4100d1:	dd 05 80 10 42 00    	fldl   0x421080
4100d7:	eb 1e                	jmp    0x4100f7
4100d9:	d9 ee                	fldz
4100db:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4100de:	dc 19                	fcompl (%ecx)
4100e0:	df e0                	fnstsw %ax
4100e2:	f6 c4 05             	test   $0x5,%ah
4100e5:	7a 08                	jp     0x4100ef
4100e7:	dd 05 70 10 42 00    	fldl   0x421070
4100ed:	eb 08                	jmp    0x4100f7
4100ef:	dd 05 70 10 42 00    	fldl   0x421070
4100f5:	d9 e0                	fchs
4100f7:	dd 19                	fstpl  (%ecx)
4100f9:	83 e6 fe             	and    $0xfffffffe,%esi
4100fc:	e9 d2 00 00 00       	jmp    0x4101d3
410101:	f6 c3 02             	test   $0x2,%bl
410104:	0f 84 c9 00 00 00    	je     0x4101d3
41010a:	f6 45 10 10          	testb  $0x10,0x10(%ebp)
41010e:	0f 84 bf 00 00 00    	je     0x4101d3
410114:	57                   	push   %edi
410115:	33 ff                	xor    %edi,%edi
410117:	f6 c3 10             	test   $0x10,%bl
41011a:	74 01                	je     0x41011d
41011c:	47                   	inc    %edi
41011d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
410120:	dd 01                	fldl   (%ecx)
410122:	d9 ee                	fldz
410124:	da e9                	fucompp
410126:	df e0                	fnstsw %ax
410128:	f6 c4 44             	test   $0x44,%ah
41012b:	0f 8b 8f 00 00 00    	jnp    0x4101c0
410131:	dd 01                	fldl   (%ecx)
410133:	8d 45 08             	lea    0x8(%ebp),%eax
410136:	50                   	push   %eax
410137:	51                   	push   %ecx
410138:	51                   	push   %ecx
410139:	dd 1c 24             	fstpl  (%esp)
41013c:	e8 da fd ff ff       	call   0x40ff1b
410141:	8b 45 08             	mov    0x8(%ebp),%eax
410144:	dd 55 f4             	fstl   -0xc(%ebp)
410147:	d9 ee                	fldz
410149:	05 00 fa ff ff       	add    $0xfffffa00,%eax
41014e:	83 c4 0c             	add    $0xc,%esp
410151:	89 45 08             	mov    %eax,0x8(%ebp)
410154:	3d ce fb ff ff       	cmp    $0xfffffbce,%eax
410159:	7d 07                	jge    0x410162
41015b:	33 ff                	xor    %edi,%edi
41015d:	de c9                	fmulp  %st,%st(1)
41015f:	47                   	inc    %edi
410160:	eb 57                	jmp    0x4101b9
410162:	de d9                	fcompp
410164:	33 d2                	xor    %edx,%edx
410166:	df e0                	fnstsw %ax
410168:	f6 c4 41             	test   $0x41,%ah
41016b:	75 01                	jne    0x41016e
41016d:	42                   	inc    %edx
41016e:	8b 45 fa             	mov    -0x6(%ebp),%eax
410171:	83 e0 0f             	and    $0xf,%eax
410174:	83 c8 10             	or     $0x10,%eax
410177:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
41017b:	8b 45 08             	mov    0x8(%ebp),%eax
41017e:	b9 03 fc ff ff       	mov    $0xfffffc03,%ecx
410183:	3b c1                	cmp    %ecx,%eax
410185:	7d 29                	jge    0x4101b0
410187:	2b c8                	sub    %eax,%ecx
410189:	8b 45 f4             	mov    -0xc(%ebp),%eax
41018c:	f6 45 f4 01          	testb  $0x1,-0xc(%ebp)
410190:	74 05                	je     0x410197
410192:	85 ff                	test   %edi,%edi
410194:	75 01                	jne    0x410197
410196:	47                   	inc    %edi
410197:	d1 e8                	shr    $1,%eax
410199:	f6 45 f8 01          	testb  $0x1,-0x8(%ebp)
41019d:	89 45 f4             	mov    %eax,-0xc(%ebp)
4101a0:	74 08                	je     0x4101aa
4101a2:	0d 00 00 00 80       	or     $0x80000000,%eax
4101a7:	89 45 f4             	mov    %eax,-0xc(%ebp)
4101aa:	d1 6d f8             	shrl   $1,-0x8(%ebp)
4101ad:	49                   	dec    %ecx
4101ae:	75 dc                	jne    0x41018c
4101b0:	dd 45 f4             	fldl   -0xc(%ebp)
4101b3:	85 d2                	test   %edx,%edx
4101b5:	74 02                	je     0x4101b9
4101b7:	d9 e0                	fchs
4101b9:	8b 45 0c             	mov    0xc(%ebp),%eax
4101bc:	dd 18                	fstpl  (%eax)
4101be:	eb 03                	jmp    0x4101c3
4101c0:	33 ff                	xor    %edi,%edi
4101c2:	47                   	inc    %edi
4101c3:	85 ff                	test   %edi,%edi
4101c5:	5f                   	pop    %edi
4101c6:	74 08                	je     0x4101d0
4101c8:	6a 10                	push   $0x10
4101ca:	e8 06 04 00 00       	call   0x4105d5
4101cf:	59                   	pop    %ecx
4101d0:	83 e6 fd             	and    $0xfffffffd,%esi
4101d3:	f6 c3 10             	test   $0x10,%bl
4101d6:	74 11                	je     0x4101e9
4101d8:	f6 45 10 20          	testb  $0x20,0x10(%ebp)
4101dc:	74 0b                	je     0x4101e9
4101de:	6a 20                	push   $0x20
4101e0:	e8 f0 03 00 00       	call   0x4105d5
4101e5:	59                   	pop    %ecx
4101e6:	83 e6 ef             	and    $0xffffffef,%esi
4101e9:	33 c0                	xor    %eax,%eax
4101eb:	85 f6                	test   %esi,%esi
4101ed:	5e                   	pop    %esi
4101ee:	0f 94 c0             	sete   %al
4101f1:	5b                   	pop    %ebx
4101f2:	c9                   	leave
4101f3:	c3                   	ret
4101f4:	55                   	push   %ebp
4101f5:	8b ec                	mov    %esp,%ebp
4101f7:	6a 00                	push   $0x0
4101f9:	ff 75 1c             	push   0x1c(%ebp)
4101fc:	ff 75 18             	push   0x18(%ebp)
4101ff:	ff 75 14             	push   0x14(%ebp)
410202:	ff 75 10             	push   0x10(%ebp)
410205:	ff 75 0c             	push   0xc(%ebp)
410208:	ff 75 08             	push   0x8(%ebp)
41020b:	e8 05 00 00 00       	call   0x410215
410210:	83 c4 1c             	add    $0x1c,%esp
410213:	5d                   	pop    %ebp
410214:	c3                   	ret
410215:	55                   	push   %ebp
410216:	8b ec                	mov    %esp,%ebp
410218:	8b 45 08             	mov    0x8(%ebp),%eax
41021b:	33 c9                	xor    %ecx,%ecx
41021d:	89 48 04             	mov    %ecx,0x4(%eax)
410220:	8b 45 08             	mov    0x8(%ebp),%eax
410223:	53                   	push   %ebx
410224:	89 48 08             	mov    %ecx,0x8(%eax)
410227:	8b 45 08             	mov    0x8(%ebp),%eax
41022a:	33 db                	xor    %ebx,%ebx
41022c:	89 48 0c             	mov    %ecx,0xc(%eax)
41022f:	8b 4d 10             	mov    0x10(%ebp),%ecx
410232:	43                   	inc    %ebx
410233:	57                   	push   %edi
410234:	f6 c1 10             	test   $0x10,%cl
410237:	74 0d                	je     0x410246
410239:	8b 45 08             	mov    0x8(%ebp),%eax
41023c:	bf 8f 00 00 c0       	mov    $0xc000008f,%edi
410241:	09 58 04             	or     %ebx,0x4(%eax)
410244:	eb 03                	jmp    0x410249
410246:	8b 7d 08             	mov    0x8(%ebp),%edi
410249:	f6 c1 02             	test   $0x2,%cl
41024c:	74 0c                	je     0x41025a
41024e:	8b 45 08             	mov    0x8(%ebp),%eax
410251:	bf 93 00 00 c0       	mov    $0xc0000093,%edi
410256:	83 48 04 02          	orl    $0x2,0x4(%eax)
41025a:	f6 c1 01             	test   $0x1,%cl
41025d:	74 0c                	je     0x41026b
41025f:	8b 45 08             	mov    0x8(%ebp),%eax
410262:	bf 91 00 00 c0       	mov    $0xc0000091,%edi
410267:	83 48 04 04          	orl    $0x4,0x4(%eax)