40c9ba:	0f 84 7d 02 00 00    	je     0x40cc3d
40c9c0:	85 db                	test   %ebx,%ebx
40c9c2:	0f 84 75 02 00 00    	je     0x40cc3d
40c9c8:	8b 85 e4 fb ff ff    	mov    -0x41c(%ebp),%eax
40c9ce:	25 ff 0f 00 00       	and    $0xfff,%eax
40c9d3:	6a 08                	push   $0x8
40c9d5:	48                   	dec    %eax
40c9d6:	5e                   	pop    %esi
40c9d7:	3b c6                	cmp    %esi,%eax
40c9d9:	0f 87 55 02 00 00    	ja     0x40cc34
40c9df:	ff 24 85 5f cc 40 00 	jmp    *0x40cc5f(,%eax,4)
40c9e6:	8b 95 14 f9 ff ff    	mov    -0x6ec(%ebp),%edx
40c9ec:	e8 1e c4 ff ff       	call   0x408e0f
40c9f1:	6a 03                	push   $0x3
40c9f3:	5a                   	pop    %edx
40c9f4:	8b cb                	mov    %ebx,%ecx
40c9f6:	89 85 10 f9 ff ff    	mov    %eax,-0x6f0(%ebp)
40c9fc:	e8 0e c4 ff ff       	call   0x408e0f
40ca01:	8b d8                	mov    %eax,%ebx
40ca03:	39 bd 10 f9 ff ff    	cmp    %edi,-0x6f0(%ebp)
40ca09:	0f 84 3b 02 00 00    	je     0x40cc4a
40ca0f:	85 db                	test   %ebx,%ebx
40ca11:	0f 84 33 02 00 00    	je     0x40cc4a
40ca17:	f7 85 e4 fb ff ff 00 	testl  $0x2000,-0x41c(%ebp)
40ca1e:	20 00 00
40ca21:	74 46                	je     0x40ca69
40ca23:	68 fe 00 00 00       	push   $0xfe
40ca28:	8b d3                	mov    %ebx,%edx
40ca2a:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
40ca30:	e8 c1 d9 ff ff       	call   0x40a3f6
40ca35:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40ca3b:	6a 2a                	push   $0x2a
40ca3d:	50                   	push   %eax
40ca3e:	ff 15 58 22 41 00    	call   *0x412258
40ca44:	59                   	pop    %ecx
40ca45:	59                   	pop    %ecx
40ca46:	85 c0                	test   %eax,%eax
40ca48:	74 1f                	je     0x40ca69
40ca4a:	50                   	push   %eax
40ca4b:	ff 15 d4 20 41 00    	call   *0x4120d4
40ca51:	8b f0                	mov    %eax,%esi
40ca53:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40ca59:	50                   	push   %eax
40ca5a:	ff 15 d4 20 41 00    	call   *0x4120d4
40ca60:	8b f8                	mov    %eax,%edi
40ca62:	2b fe                	sub    %esi,%edi
40ca64:	75 03                	jne    0x40ca69
40ca66:	83 cf ff             	or     $0xffffffff,%edi
40ca69:	57                   	push   %edi
40ca6a:	51                   	push   %ecx
40ca6b:	8b 8d 10 f9 ff ff    	mov    -0x6f0(%ebp),%ecx
40ca71:	8b d3                	mov    %ebx,%edx
40ca73:	e8 a5 fe ff ff       	call   0x40c91d
40ca78:	8b f0                	mov    %eax,%esi
40ca7a:	e9 ba 01 00 00       	jmp    0x40cc39
40ca7f:	6a 03                	push   $0x3
40ca81:	5a                   	pop    %edx
40ca82:	8b cb                	mov    %ebx,%ecx
40ca84:	e8 86 c3 ff ff       	call   0x408e0f
40ca89:	89 85 08 f9 ff ff    	mov    %eax,-0x6f8(%ebp)
40ca8f:	85 c0                	test   %eax,%eax
40ca91:	0f 84 b3 01 00 00    	je     0x40cc4a
40ca97:	8b 95 14 f9 ff ff    	mov    -0x6ec(%ebp),%edx
40ca9d:	8b 8d 10 f9 ff ff    	mov    -0x6f0(%ebp),%ecx
40caa3:	e8 82 c3 ff ff       	call   0x408e2a
40caa8:	8b 8d 08 f9 ff ff    	mov    -0x6f8(%ebp),%ecx
40caae:	8b d8                	mov    %eax,%ebx
40cab0:	e8 80 d1 ff ff       	call   0x409c35
40cab5:	3b d8                	cmp    %eax,%ebx
40cab7:	75 08                	jne    0x40cac1
40cab9:	6a 02                	push   $0x2
40cabb:	5e                   	pop    %esi
40cabc:	e9 78 01 00 00       	jmp    0x40cc39
40cac1:	7d 04                	jge    0x40cac7
40cac3:	6a 04                	push   $0x4
40cac5:	eb f4                	jmp    0x40cabb
40cac7:	0f 8f 6c 01 00 00    	jg     0x40cc39
40cacd:	8b f7                	mov    %edi,%esi
40cacf:	e9 65 01 00 00       	jmp    0x40cc39
40cad4:	6a 03                	push   $0x3
40cad6:	5a                   	pop    %edx
40cad7:	8b cb                	mov    %ebx,%ecx
40cad9:	e8 31 c3 ff ff       	call   0x408e0f
40cade:	8b d8                	mov    %eax,%ebx
40cae0:	85 db                	test   %ebx,%ebx
40cae2:	0f 84 62 01 00 00    	je     0x40cc4a
40cae8:	8b 95 14 f9 ff ff    	mov    -0x6ec(%ebp),%edx
40caee:	8b 8d 10 f9 ff ff    	mov    -0x6f0(%ebp),%ecx
40caf4:	e8 31 c3 ff ff       	call   0x408e2a
40caf9:	8b cb                	mov    %ebx,%ecx
40cafb:	8b f8                	mov    %eax,%edi
40cafd:	e8 33 d1 ff ff       	call   0x409c35
40cb02:	3b f8                	cmp    %eax,%edi
40cb04:	74 b3                	je     0x40cab9
40cb06:	72 bb                	jb     0x40cac3
40cb08:	3b c7                	cmp    %edi,%eax
40cb0a:	1b c0                	sbb    %eax,%eax
40cb0c:	23 f0                	and    %eax,%esi
40cb0e:	e9 26 01 00 00       	jmp    0x40cc39
40cb13:	6a 03                	push   $0x3
40cb15:	5a                   	pop    %edx
40cb16:	8b cb                	mov    %ebx,%ecx
40cb18:	e8 f2 c2 ff ff       	call   0x408e0f
40cb1d:	8b d8                	mov    %eax,%ebx
40cb1f:	85 db                	test   %ebx,%ebx
40cb21:	0f 84 23 01 00 00    	je     0x40cc4a
40cb27:	8b 95 14 f9 ff ff    	mov    -0x6ec(%ebp),%edx
40cb2d:	8b 8d 10 f9 ff ff    	mov    -0x6f0(%ebp),%ecx
40cb33:	e8 3f c3 ff ff       	call   0x408e77
40cb38:	d9 9d 08 f9 ff ff    	fstps  -0x6f8(%ebp)
40cb3e:	d9 85 08 f9 ff ff    	flds   -0x6f8(%ebp)
40cb44:	8b cb                	mov    %ebx,%ecx
40cb46:	dd 9d 0c f9 ff ff    	fstpl  -0x6f4(%ebp)
40cb4c:	e8 4d d0 ff ff       	call   0x409b9e
40cb51:	d9 9d 08 f9 ff ff    	fstps  -0x6f8(%ebp)
40cb57:	d9 85 08 f9 ff ff    	flds   -0x6f8(%ebp)
40cb5d:	dd 85 0c f9 ff ff    	fldl   -0x6f4(%ebp)
40cb63:	eb 65                	jmp    0x40cbca
40cb65:	dd d8                	fstp   %st(0)
40cb67:	dd d8                	fstp   %st(0)
40cb69:	e9 4b ff ff ff       	jmp    0x40cab9
40cb6e:	d8 d1                	fcom   %st(1)
40cb70:	df e0                	fnstsw %ax
40cb72:	f6 c4 05             	test   $0x5,%ah
40cb75:	7a 09                	jp     0x40cb80
40cb77:	dd d8                	fstp   %st(0)
40cb79:	dd d8                	fstp   %st(0)
40cb7b:	e9 43 ff ff ff       	jmp    0x40cac3
40cb80:	de d9                	fcompp
40cb82:	df e0                	fnstsw %ax
40cb84:	f6 c4 41             	test   $0x41,%ah
40cb87:	0f 84 ac 00 00 00    	je     0x40cc39
40cb8d:	e9 3b ff ff ff       	jmp    0x40cacd
40cb92:	6a 03                	push   $0x3
40cb94:	5a                   	pop    %edx
40cb95:	8b cb                	mov    %ebx,%ecx
40cb97:	e8 73 c2 ff ff       	call   0x408e0f
40cb9c:	8b d8                	mov    %eax,%ebx
40cb9e:	85 db                	test   %ebx,%ebx
40cba0:	0f 84 a4 00 00 00    	je     0x40cc4a
40cba6:	8b 95 14 f9 ff ff    	mov    -0x6ec(%ebp),%edx
40cbac:	8b 8d 10 f9 ff ff    	mov    -0x6f0(%ebp),%ecx
40cbb2:	e8 e1 c2 ff ff       	call   0x408e98
40cbb7:	dd 9d 04 f9 ff ff    	fstpl  -0x6fc(%ebp)
40cbbd:	8b cb                	mov    %ebx,%ecx
40cbbf:	e8 da cf ff ff       	call   0x409b9e
40cbc4:	dd 85 04 f9 ff ff    	fldl   -0x6fc(%ebp)
40cbca:	dd e1                	fucom  %st(1)
40cbcc:	df e0                	fnstsw %ax
40cbce:	f6 c4 44             	test   $0x44,%ah
40cbd1:	7b 92                	jnp    0x40cb65
40cbd3:	eb 99                	jmp    0x40cb6e
40cbd5:	33 d2                	xor    %edx,%edx
40cbd7:	8b cb                	mov    %ebx,%ecx
40cbd9:	42                   	inc    %edx
40cbda:	e8 30 c2 ff ff       	call   0x408e0f
40cbdf:	6a 02                	push   $0x2
40cbe1:	5a                   	pop    %edx
40cbe2:	8b cb                	mov    %ebx,%ecx
40cbe4:	8b f8                	mov    %eax,%edi
40cbe6:	e8 24 c2 ff ff       	call   0x408e0f
40cbeb:	6a 03                	push   $0x3
40cbed:	5a                   	pop    %edx
40cbee:	8b cb                	mov    %ebx,%ecx
40cbf0:	8b f0                	mov    %eax,%esi
40cbf2:	e8 18 c2 ff ff       	call   0x408e0f
40cbf7:	8b c8                	mov    %eax,%ecx
40cbf9:	85 ff                	test   %edi,%edi
40cbfb:	74 4d                	je     0x40cc4a
40cbfd:	85 f6                	test   %esi,%esi
40cbff:	74 49                	je     0x40cc4a
40cc01:	85 c9                	test   %ecx,%ecx
40cc03:	74 45                	je     0x40cc4a
40cc05:	8b 85 ec fd ff ff    	mov    -0x214(%ebp),%eax
40cc0b:	85 c0                	test   %eax,%eax
40cc0d:	75 06                	jne    0x40cc15
40cc0f:	8d 85 14 f9 ff ff    	lea    -0x6ec(%ebp),%eax
40cc15:	ff b5 10 f9 ff ff    	push   -0x6f0(%ebp)
40cc1b:	50                   	push   %eax
40cc1c:	51                   	push   %ecx
40cc1d:	56                   	push   %esi
40cc1e:	8b b5 e8 fd ff ff    	mov    -0x218(%ebp),%esi
40cc24:	8b ce                	mov    %esi,%ecx
40cc26:	57                   	push   %edi
40cc27:	ff 15 20 23 41 00    	call   *0x412320
40cc2d:	ff d6                	call   *%esi
40cc2f:	e9 44 fe ff ff       	jmp    0x40ca78
40cc34:	be ff 00 00 00       	mov    $0xff,%esi
40cc39:	8b c6                	mov    %esi,%eax
40cc3b:	eb 0f                	jmp    0x40cc4c
40cc3d:	6a 57                	push   $0x57
40cc3f:	ff 15 74 20 41 00    	call   *0x412074
40cc45:	e8 aa cb ff ff       	call   0x4097f4
40cc4a:	33 c0                	xor    %eax,%eax
40cc4c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40cc4f:	5f                   	pop    %edi
40cc50:	5e                   	pop    %esi
40cc51:	33 cd                	xor    %ebp,%ecx
40cc53:	5b                   	pop    %ebx
40cc54:	e8 77 20 00 00       	call   0x40ecd0
40cc59:	c9                   	leave
40cc5a:	c2 dc 04             	ret    $0x4dc
40cc5d:	8b ff                	mov    %edi,%edi
40cc5f:	e6 c9                	out    %al,$0xc9
40cc61:	40                   	inc    %eax
40cc62:	00 7f ca             	add    %bh,-0x36(%edi)
40cc65:	40                   	inc    %eax
40cc66:	00 d4                	add    %dl,%ah
40cc68:	ca 40 00             	lret   $0x40
40cc6b:	34 cc                	xor    $0xcc,%al
40cc6d:	40                   	inc    %eax
40cc6e:	00 34 cc             	add    %dh,(%esp,%ecx,8)
40cc71:	40                   	inc    %eax
40cc72:	00 34 cc             	add    %dh,(%esp,%ecx,8)
40cc75:	40                   	inc    %eax
40cc76:	00 13                	add    %dl,(%ebx)
40cc78:	cb                   	lret
40cc79:	40                   	inc    %eax
40cc7a:	00 92 cb 40 00 d5    	add    %dl,-0x2affbf35(%edx)
40cc80:	cb                   	lret
40cc81:	40                   	inc    %eax
40cc82:	00 8b ff 55 8b ec    	add    %cl,-0x1374aa01(%ebx)
40cc88:	81 ec e4 06 00 00    	sub    $0x6e4,%esp
40cc8e:	a1 44 10 41 00       	mov    0x411044,%eax
40cc93:	33 c5                	xor    %ebp,%eax
40cc95:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cc98:	53                   	push   %ebx
40cc99:	56                   	push   %esi
40cc9a:	57                   	push   %edi
40cc9b:	89 8d f8 fd ff ff    	mov    %ecx,-0x208(%ebp)
40cca1:	8d 75 08             	lea    0x8(%ebp),%esi
40cca4:	b9 37 01 00 00       	mov    $0x137,%ecx
40cca9:	8d bd 1c f9 ff ff    	lea    -0x6e4(%ebp),%edi
40ccaf:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ccb1:	68 fe 01 00 00       	push   $0x1fe
40ccb6:	33 ff                	xor    %edi,%edi
40ccb8:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40ccbe:	57                   	push   %edi
40ccbf:	50                   	push   %eax
40ccc0:	8b da                	mov    %edx,%ebx
40ccc2:	e8 fd 26 00 00       	call   0x40f3c4
40ccc7:	8b 85 f8 fd ff ff    	mov    -0x208(%ebp),%eax
40cccd:	83 c4 0c             	add    $0xc,%esp
40ccd0:	85 c0                	test   %eax,%eax
40ccd2:	0f 84 ec 00 00 00    	je     0x40cdc4
40ccd8:	85 db                	test   %ebx,%ebx
40ccda:	0f 84 e4 00 00 00    	je     0x40cdc4
40cce0:	8b 95 1c f9 ff ff    	mov    -0x6e4(%ebp),%edx
40cce6:	8b c8                	mov    %eax,%ecx
40cce8:	e8 fe c0 ff ff       	call   0x408deb
40cced:	8b f0                	mov    %eax,%esi
40ccef:	89 b5 f8 fd ff ff    	mov    %esi,-0x208(%ebp)
40ccf5:	85 f6                	test   %esi,%esi
40ccf7:	0f 84 d4 00 00 00    	je     0x40cdd1
40ccfd:	8b 95 ec fb ff ff    	mov    -0x414(%ebp),%edx
40cd03:	81 e2 ff 0f 00 00    	and    $0xfff,%edx
40cd09:	83 ea 01             	sub    $0x1,%edx
40cd0c:	0f 85 ae 00 00 00    	jne    0x40cdc0
40cd12:	6a 03                	push   $0x3
40cd14:	5a                   	pop    %edx
40cd15:	8b cb                	mov    %ebx,%ecx
40cd17:	e8 f3 c0 ff ff       	call   0x408e0f
40cd1c:	8b d8                	mov    %eax,%ebx
40cd1e:	85 db                	test   %ebx,%ebx
40cd20:	0f 84 ab 00 00 00    	je     0x40cdd1
40cd26:	f7 85 ec fb ff ff 00 	testl  $0x2000,-0x414(%ebp)
40cd2d:	20 00 00
40cd30:	74 58                	je     0x40cd8a
40cd32:	68 fe 00 00 00       	push   $0xfe
40cd37:	8b d3                	mov    %ebx,%edx
40cd39:	8d 8d fc fd ff ff    	lea    -0x204(%ebp),%ecx
40cd3f:	e8 b2 d6 ff ff       	call   0x40a3f6
40cd44:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40cd4a:	6a 2a                	push   $0x2a
40cd4c:	50                   	push   %eax
40cd4d:	ff 15 58 22 41 00    	call   *0x412258
40cd53:	59                   	pop    %ecx
40cd54:	59                   	pop    %ecx
40cd55:	85 c0                	test   %eax,%eax
40cd57:	74 31                	je     0x40cd8a
40cd59:	50                   	push   %eax
40cd5a:	ff 15 d4 20 41 00    	call   *0x4120d4
40cd60:	8b f0                	mov    %eax,%esi
40cd62:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40cd68:	50                   	push   %eax
40cd69:	ff 15 d4 20 41 00    	call   *0x4120d4
40cd6f:	8b f8                	mov    %eax,%edi
40cd71:	2b fe                	sub    %esi,%edi
40cd73:	75 03                	jne    0x40cd78
40cd75:	83 cf ff             	or     $0xffffffff,%edi
40cd78:	83 ff ff             	cmp    $0xffffffff,%edi
40cd7b:	75 07                	jne    0x40cd84
40cd7d:	bf ff 00 00 00       	mov    $0xff,%edi
40cd82:	eb 3c                	jmp    0x40cdc0
40cd84:	8b b5 f8 fd ff ff    	mov    -0x208(%ebp),%esi
40cd8a:	57                   	push   %edi
40cd8b:	6a 01                	push   $0x1
40cd8d:	53                   	push   %ebx
40cd8e:	ba 00 00 02 00       	mov    $0x20000,%edx
40cd93:	8b ce                	mov    %esi,%ecx
40cd95:	e8 87 bb ff ff       	call   0x408921
40cd9a:	83 f8 ff             	cmp    $0xffffffff,%eax
40cd9d:	75 07                	jne    0x40cda6
40cd9f:	bf fc 00 00 00       	mov    $0xfc,%edi
40cda4:	eb 1a                	jmp    0x40cdc0
40cda6:	8b d0                	mov    %eax,%edx
40cda8:	8b ce                	mov    %esi,%ecx
40cdaa:	e8 60 c0 ff ff       	call   0x408e0f
40cdaf:	85 c0                	test   %eax,%eax
40cdb1:	74 1e                	je     0x40cdd1
40cdb3:	57                   	push   %edi
40cdb4:	51                   	push   %ecx
40cdb5:	8b d3                	mov    %ebx,%edx
40cdb7:	8b c8                	mov    %eax,%ecx
40cdb9:	e8 5f fb ff ff       	call   0x40c91d
40cdbe:	8b f8                	mov    %eax,%edi
40cdc0:	8b c7                	mov    %edi,%eax
40cdc2:	eb 0f                	jmp    0x40cdd3
40cdc4:	6a 57                	push   $0x57
40cdc6:	ff 15 74 20 41 00    	call   *0x412074
40cdcc:	e8 23 ca ff ff       	call   0x4097f4
40cdd1:	33 c0                	xor    %eax,%eax
40cdd3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40cdd6:	5f                   	pop    %edi
40cdd7:	5e                   	pop    %esi
40cdd8:	33 cd                	xor    %ebp,%ecx
40cdda:	5b                   	pop    %ebx
40cddb:	e8 f0 1e 00 00       	call   0x40ecd0
40cde0:	c9                   	leave
40cde1:	c2 dc 04             	ret    $0x4dc
40cde4:	8b ff                	mov    %edi,%edi
40cde6:	55                   	push   %ebp
40cde7:	8b ec                	mov    %esp,%ebp
40cde9:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
40cdef:	a1 44 10 41 00       	mov    0x411044,%eax
40cdf4:	33 c5                	xor    %ebp,%eax
40cdf6:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cdf9:	53                   	push   %ebx
40cdfa:	56                   	push   %esi
40cdfb:	8b 75 08             	mov    0x8(%ebp),%esi
40cdfe:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40ce04:	57                   	push   %edi
40ce05:	68 fe 01 00 00       	push   $0x1fe
40ce0a:	6a 00                	push   $0x0
40ce0c:	50                   	push   %eax
40ce0d:	8b da                	mov    %edx,%ebx
40ce0f:	e8 b0 25 00 00       	call   0x40f3c4
40ce14:	83 c4 0c             	add    $0xc,%esp
40ce17:	85 db                	test   %ebx,%ebx
40ce19:	0f 84 e5 00 00 00    	je     0x40cf04