40fcc6:	ff 15 90 90 41 00    	call   *0x419090
40fccc:	8b c8                	mov    %eax,%ecx
40fcce:	85 c9                	test   %ecx,%ecx
40fcd0:	75 2a                	jne    0x40fcfc
40fcd2:	83 3d 90 28 42 00 00 	cmpl   $0x0,0x422890
40fcd9:	74 14                	je     0x40fcef
40fcdb:	56                   	push   %esi
40fcdc:	e8 31 b7 ff ff       	call   0x40b412
40fce1:	59                   	pop    %ecx
40fce2:	85 c0                	test   %eax,%eax
40fce4:	75 d0                	jne    0x40fcb6
40fce6:	8b 45 10             	mov    0x10(%ebp),%eax
40fce9:	85 c0                	test   %eax,%eax
40fceb:	74 bc                	je     0x40fca9
40fced:	eb b4                	jmp    0x40fca3
40fcef:	8b 45 10             	mov    0x10(%ebp),%eax
40fcf2:	85 c0                	test   %eax,%eax
40fcf4:	74 06                	je     0x40fcfc
40fcf6:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40fcfc:	8b c1                	mov    %ecx,%eax
40fcfe:	5e                   	pop    %esi
40fcff:	5d                   	pop    %ebp
40fd00:	c3                   	ret
40fd01:	ff 35 9c 28 42 00    	push   0x42289c
40fd07:	ff 15 5c 90 41 00    	call   *0x41905c
40fd0d:	c3                   	ret
40fd0e:	55                   	push   %ebp
40fd0f:	8b ec                	mov    %esp,%ebp
40fd11:	8b 45 08             	mov    0x8(%ebp),%eax
40fd14:	a3 94 28 42 00       	mov    %eax,0x422894
40fd19:	a3 98 28 42 00       	mov    %eax,0x422898
40fd1e:	a3 9c 28 42 00       	mov    %eax,0x42289c
40fd23:	a3 a0 28 42 00       	mov    %eax,0x4228a0
40fd28:	5d                   	pop    %ebp
40fd29:	c3                   	ret
40fd2a:	6a 24                	push   $0x24
40fd2c:	68 18 e7 41 00       	push   $0x41e718
40fd31:	e8 7a b0 ff ff       	call   0x40adb0
40fd36:	33 db                	xor    %ebx,%ebx
40fd38:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40fd3b:	33 ff                	xor    %edi,%edi
40fd3d:	89 7d d8             	mov    %edi,-0x28(%ebp)
40fd40:	8b 75 08             	mov    0x8(%ebp),%esi
40fd43:	83 fe 0b             	cmp    $0xb,%esi
40fd46:	7f 50                	jg     0x40fd98
40fd48:	74 15                	je     0x40fd5f
40fd4a:	8b c6                	mov    %esi,%eax
40fd4c:	6a 02                	push   $0x2
40fd4e:	59                   	pop    %ecx
40fd4f:	2b c1                	sub    %ecx,%eax
40fd51:	74 22                	je     0x40fd75
40fd53:	2b c1                	sub    %ecx,%eax
40fd55:	74 08                	je     0x40fd5f
40fd57:	2b c1                	sub    %ecx,%eax
40fd59:	74 5e                	je     0x40fdb9
40fd5b:	2b c1                	sub    %ecx,%eax
40fd5d:	75 48                	jne    0x40fda7
40fd5f:	e8 8a c6 ff ff       	call   0x40c3ee
40fd64:	8b f8                	mov    %eax,%edi
40fd66:	89 7d d8             	mov    %edi,-0x28(%ebp)
40fd69:	85 ff                	test   %edi,%edi
40fd6b:	75 16                	jne    0x40fd83
40fd6d:	83 c8 ff             	or     $0xffffffff,%eax
40fd70:	e9 64 01 00 00       	jmp    0x40fed9
40fd75:	c7 45 e4 94 28 42 00 	movl   $0x422894,-0x1c(%ebp)
40fd7c:	a1 94 28 42 00       	mov    0x422894,%eax
40fd81:	eb 5e                	jmp    0x40fde1
40fd83:	ff 77 5c             	push   0x5c(%edi)
40fd86:	56                   	push   %esi
40fd87:	e8 53 01 00 00       	call   0x40fedf
40fd8c:	59                   	pop    %ecx
40fd8d:	59                   	pop    %ecx
40fd8e:	83 c0 08             	add    $0x8,%eax
40fd91:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40fd94:	8b 00                	mov    (%eax),%eax
40fd96:	eb 56                	jmp    0x40fdee
40fd98:	8b c6                	mov    %esi,%eax
40fd9a:	83 e8 0f             	sub    $0xf,%eax
40fd9d:	74 36                	je     0x40fdd5
40fd9f:	83 e8 06             	sub    $0x6,%eax
40fda2:	74 23                	je     0x40fdc7
40fda4:	48                   	dec    %eax
40fda5:	74 12                	je     0x40fdb9
40fda7:	e8 d1 83 ff ff       	call   0x40817d
40fdac:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40fdb2:	e8 3e b8 ff ff       	call   0x40b5f5
40fdb7:	eb b4                	jmp    0x40fd6d
40fdb9:	c7 45 e4 9c 28 42 00 	movl   $0x42289c,-0x1c(%ebp)
40fdc0:	a1 9c 28 42 00       	mov    0x42289c,%eax
40fdc5:	eb 1a                	jmp    0x40fde1
40fdc7:	c7 45 e4 98 28 42 00 	movl   $0x422898,-0x1c(%ebp)
40fdce:	a1 98 28 42 00       	mov    0x422898,%eax
40fdd3:	eb 0c                	jmp    0x40fde1
40fdd5:	c7 45 e4 a0 28 42 00 	movl   $0x4228a0,-0x1c(%ebp)
40fddc:	a1 a0 28 42 00       	mov    0x4228a0,%eax
40fde1:	33 db                	xor    %ebx,%ebx
40fde3:	43                   	inc    %ebx
40fde4:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40fde7:	50                   	push   %eax
40fde8:	ff 15 5c 90 41 00    	call   *0x41905c
40fdee:	89 45 dc             	mov    %eax,-0x24(%ebp)
40fdf1:	83 f8 01             	cmp    $0x1,%eax
40fdf4:	0f 84 dd 00 00 00    	je     0x40fed7
40fdfa:	85 c0                	test   %eax,%eax
40fdfc:	75 07                	jne    0x40fe05
40fdfe:	6a 03                	push   $0x3
40fe00:	e8 91 ad ff ff       	call   0x40ab96
40fe05:	85 db                	test   %ebx,%ebx
40fe07:	74 08                	je     0x40fe11
40fe09:	6a 00                	push   $0x0
40fe0b:	e8 97 86 ff ff       	call   0x4084a7
40fe10:	59                   	pop    %ecx
40fe11:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40fe15:	83 fe 08             	cmp    $0x8,%esi
40fe18:	74 0a                	je     0x40fe24
40fe1a:	83 fe 0b             	cmp    $0xb,%esi
40fe1d:	74 05                	je     0x40fe24
40fe1f:	83 fe 04             	cmp    $0x4,%esi
40fe22:	75 1c                	jne    0x40fe40
40fe24:	8b 47 60             	mov    0x60(%edi),%eax
40fe27:	89 45 d0             	mov    %eax,-0x30(%ebp)
40fe2a:	83 67 60 00          	andl   $0x0,0x60(%edi)
40fe2e:	83 fe 08             	cmp    $0x8,%esi
40fe31:	75 41                	jne    0x40fe74
40fe33:	8b 47 64             	mov    0x64(%edi),%eax
40fe36:	89 45 cc             	mov    %eax,-0x34(%ebp)
40fe39:	c7 47 64 8c 00 00 00 	movl   $0x8c,0x64(%edi)
40fe40:	83 fe 08             	cmp    $0x8,%esi
40fe43:	75 2f                	jne    0x40fe74
40fe45:	8b 0d 00 bc 41 00    	mov    0x41bc00,%ecx
40fe4b:	8b d1                	mov    %ecx,%edx
40fe4d:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40fe50:	a1 04 bc 41 00       	mov    0x41bc04,%eax
40fe55:	03 c1                	add    %ecx,%eax
40fe57:	3b d0                	cmp    %eax,%edx
40fe59:	7d 26                	jge    0x40fe81
40fe5b:	8b ca                	mov    %edx,%ecx
40fe5d:	6b c9 0c             	imul   $0xc,%ecx,%ecx
40fe60:	8b 47 5c             	mov    0x5c(%edi),%eax
40fe63:	83 64 01 08 00       	andl   $0x0,0x8(%ecx,%eax,1)
40fe68:	42                   	inc    %edx
40fe69:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40fe6c:	8b 0d 00 bc 41 00    	mov    0x41bc00,%ecx
40fe72:	eb dc                	jmp    0x40fe50
40fe74:	6a 00                	push   $0x0
40fe76:	ff 15 58 90 41 00    	call   *0x419058
40fe7c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40fe7f:	89 01                	mov    %eax,(%ecx)
40fe81:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40fe88:	e8 18 00 00 00       	call   0x40fea5
40fe8d:	83 fe 08             	cmp    $0x8,%esi
40fe90:	75 20                	jne    0x40feb2
40fe92:	ff 77 64             	push   0x64(%edi)
40fe95:	56                   	push   %esi
40fe96:	ff 55 dc             	call   *-0x24(%ebp)
40fe99:	59                   	pop    %ecx
40fe9a:	eb 1a                	jmp    0x40feb6
40fe9c:	8b 75 08             	mov    0x8(%ebp),%esi
40fe9f:	8b 5d e0             	mov    -0x20(%ebp),%ebx
40fea2:	8b 7d d8             	mov    -0x28(%ebp),%edi
40fea5:	85 db                	test   %ebx,%ebx
40fea7:	74 08                	je     0x40feb1
40fea9:	6a 00                	push   $0x0
40feab:	e8 5b 87 ff ff       	call   0x40860b
40feb0:	59                   	pop    %ecx
40feb1:	c3                   	ret
40feb2:	56                   	push   %esi
40feb3:	ff 55 dc             	call   *-0x24(%ebp)
40feb6:	59                   	pop    %ecx
40feb7:	83 fe 08             	cmp    $0x8,%esi
40feba:	74 0a                	je     0x40fec6
40febc:	83 fe 0b             	cmp    $0xb,%esi
40febf:	74 05                	je     0x40fec6
40fec1:	83 fe 04             	cmp    $0x4,%esi
40fec4:	75 11                	jne    0x40fed7
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