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
40ce1f:	85 f6                	test   %esi,%esi
40ce21:	0f 84 dd 00 00 00    	je     0x40cf04
40ce27:	8d 83 04 02 00 00    	lea    0x204(%ebx),%eax
40ce2d:	33 ff                	xor    %edi,%edi
40ce2f:	89 85 f8 fd ff ff    	mov    %eax,-0x208(%ebp)
40ce35:	68 fe 00 00 00       	push   $0xfe
40ce3a:	8b d0                	mov    %eax,%edx
40ce3c:	8d 8d fc fd ff ff    	lea    -0x204(%ebp),%ecx
40ce42:	e8 af d5 ff ff       	call   0x40a3f6
40ce47:	68 a4 19 40 00       	push   $0x4019a4
40ce4c:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40ce52:	50                   	push   %eax
40ce53:	eb 7c                	jmp    0x40ced1
40ce55:	51                   	push   %ecx
40ce56:	6a 01                	push   $0x1
40ce58:	50                   	push   %eax
40ce59:	68 00 00 02 00       	push   $0x20000
40ce5e:	33 d2                	xor    %edx,%edx
40ce60:	8b ce                	mov    %esi,%ecx
40ce62:	e8 79 bb ff ff       	call   0x4089e0
40ce67:	8b d8                	mov    %eax,%ebx
40ce69:	83 fb ff             	cmp    $0xffffffff,%ebx
40ce6c:	75 24                	jne    0x40ce92
40ce6e:	33 d2                	xor    %edx,%edx
40ce70:	8b ce                	mov    %esi,%ecx
40ce72:	e8 14 be ff ff       	call   0x408c8b
40ce77:	8b d8                	mov    %eax,%ebx
40ce79:	83 fb ff             	cmp    $0xffffffff,%ebx
40ce7c:	0f 84 8f 00 00 00    	je     0x40cf11
40ce82:	51                   	push   %ecx
40ce83:	ff b5 f4 fd ff ff    	push   -0x20c(%ebp)
40ce89:	8b d3                	mov    %ebx,%edx
40ce8b:	8b ce                	mov    %esi,%ecx
40ce8d:	e8 a8 be ff ff       	call   0x408d3a
40ce92:	6a 00                	push   $0x0
40ce94:	8b d3                	mov    %ebx,%edx
40ce96:	8b ce                	mov    %esi,%ecx
40ce98:	e8 79 b9 ff ff       	call   0x408816
40ce9d:	85 c0                	test   %eax,%eax
40ce9f:	74 13                	je     0x40ceb4
40cea1:	81 78 04 00 00 08 00 	cmpl   $0x80000,0x4(%eax)
40cea8:	75 0a                	jne    0x40ceb4
40ceaa:	8b 48 0c             	mov    0xc(%eax),%ecx
40cead:	8b d7                	mov    %edi,%edx
40ceaf:	e8 b1 bc ff ff       	call   0x408b65
40ceb4:	8b 85 f8 fd ff ff    	mov    -0x208(%ebp),%eax
40ceba:	8b d3                	mov    %ebx,%edx
40cebc:	51                   	push   %ecx
40cebd:	05 00 fe ff ff       	add    $0xfffffe00,%eax
40cec2:	8b ce                	mov    %esi,%ecx
40cec4:	50                   	push   %eax
40cec5:	e8 70 be ff ff       	call   0x408d3a
40ceca:	68 a4 19 40 00       	push   $0x4019a4
40cecf:	6a 00                	push   $0x0
40ced1:	ff 15 60 22 41 00    	call   *0x412260
40ced7:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
40cedd:	59                   	pop    %ecx
40cede:	59                   	pop    %ecx
40cedf:	85 c0                	test   %eax,%eax
40cee1:	0f 85 6e ff ff ff    	jne    0x40ce55
40cee7:	8b 85 f8 fd ff ff    	mov    -0x208(%ebp),%eax
40ceed:	47                   	inc    %edi
40ceee:	05 dc 04 00 00       	add    $0x4dc,%eax
40cef3:	89 85 f8 fd ff ff    	mov    %eax,-0x208(%ebp)
40cef9:	83 ff 0b             	cmp    $0xb,%edi
40cefc:	0f 82 33 ff ff ff    	jb     0x40ce35
40cf02:	eb 0d                	jmp    0x40cf11
40cf04:	6a 57                	push   $0x57
40cf06:	ff 15 74 20 41 00    	call   *0x412074
40cf0c:	e8 e3 c8 ff ff       	call   0x4097f4
40cf11:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40cf14:	5f                   	pop    %edi
40cf15:	5e                   	pop    %esi
40cf16:	33 cd                	xor    %ebp,%ecx
40cf18:	5b                   	pop    %ebx
40cf19:	e8 b2 1d 00 00       	call   0x40ecd0
40cf1e:	c9                   	leave
40cf1f:	c2 04 00             	ret    $0x4
40cf22:	8b ff                	mov    %edi,%edi
40cf24:	55                   	push   %ebp
40cf25:	8b ec                	mov    %esp,%ebp
40cf27:	81 ec e4 06 00 00    	sub    $0x6e4,%esp
40cf2d:	a1 44 10 41 00       	mov    0x411044,%eax
40cf32:	33 c5                	xor    %ebp,%eax
40cf34:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cf37:	53                   	push   %ebx
40cf38:	56                   	push   %esi
40cf39:	57                   	push   %edi
40cf3a:	89 8d 1c f9 ff ff    	mov    %ecx,-0x6e4(%ebp)
40cf40:	8d 75 08             	lea    0x8(%ebp),%esi
40cf43:	68 fe 01 00 00       	push   $0x1fe
40cf48:	b9 37 01 00 00       	mov    $0x137,%ecx
40cf4d:	8d bd 20 f9 ff ff    	lea    -0x6e0(%ebp),%edi
40cf53:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40cf59:	8b da                	mov    %edx,%ebx
40cf5b:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40cf5d:	8b b5 e4 04 00 00    	mov    0x4e4(%ebp),%esi
40cf63:	6a 00                	push   $0x0
40cf65:	50                   	push   %eax
40cf66:	e8 59 24 00 00       	call   0x40f3c4
40cf6b:	83 c4 0c             	add    $0xc,%esp
40cf6e:	83 bd 1c f9 ff ff 00 	cmpl   $0x0,-0x6e4(%ebp)
40cf75:	0f 84 27 01 00 00    	je     0x40d0a2
40cf7b:	85 db                	test   %ebx,%ebx
40cf7d:	0f 84 1f 01 00 00    	je     0x40d0a2
40cf83:	85 f6                	test   %esi,%esi
40cf85:	0f 84 17 01 00 00    	je     0x40d0a2
40cf8b:	56                   	push   %esi
40cf8c:	ff 15 d4 20 41 00    	call   *0x4120d4
40cf92:	85 c0                	test   %eax,%eax
40cf94:	0f 84 15 01 00 00    	je     0x40d0af
40cf9a:	8b 8d f0 fb ff ff    	mov    -0x410(%ebp),%ecx
40cfa0:	8b c1                	mov    %ecx,%eax
40cfa2:	25 ff 0f 00 00       	and    $0xfff,%eax
40cfa7:	48                   	dec    %eax
40cfa8:	83 f8 08             	cmp    $0x8,%eax
40cfab:	0f 87 fe 00 00 00    	ja     0x40d0af
40cfb1:	ff 24 85 c2 d0 40 00 	jmp    *0x40d0c2(,%eax,4)
40cfb8:	f7 c1 00 20 00 00    	test   $0x2000,%ecx
40cfbe:	74 4d                	je     0x40d00d
40cfc0:	68 fe 00 00 00       	push   $0xfe
40cfc5:	8b d6                	mov    %esi,%edx
40cfc7:	8d 8d fc fd ff ff    	lea    -0x204(%ebp),%ecx
40cfcd:	e8 24 d4 ff ff       	call   0x40a3f6
40cfd2:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40cfd8:	6a 2a                	push   $0x2a
40cfda:	50                   	push   %eax
40cfdb:	ff 15 58 22 41 00    	call   *0x412258
40cfe1:	8b f8                	mov    %eax,%edi
40cfe3:	59                   	pop    %ecx
40cfe4:	59                   	pop    %ecx
40cfe5:	85 ff                	test   %edi,%edi
40cfe7:	74 1e                	je     0x40d007
40cfe9:	57                   	push   %edi
40cfea:	ff 15 d4 20 41 00    	call   *0x4120d4
40cff0:	83 f8 01             	cmp    $0x1,%eax
40cff3:	0f 85 b6 00 00 00    	jne    0x40d0af
40cff9:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40cfff:	3b f8                	cmp    %eax,%edi
40d001:	0f 84 a8 00 00 00    	je     0x40d0af
40d007:	8b 8d f0 fb ff ff    	mov    -0x410(%ebp),%ecx
40d00d:	f7 c1 00 10 00 00    	test   $0x1000,%ecx
40d013:	0f 84 84 00 00 00    	je     0x40d09d
40d019:	8d 95 f4 fb ff ff    	lea    -0x40c(%ebp),%edx
40d01f:	8b ce                	mov    %esi,%ecx
40d021:	6a 01                	push   $0x1
40d023:	e8 c0 cd ff ff       	call   0x409de8
40d028:	e9 84 00 00 00       	jmp    0x40d0b1
40d02d:	6a 01                	push   $0x1
40d02f:	8b ce                	mov    %esi,%ecx
40d031:	e8 b6 cc ff ff       	call   0x409cec
40d036:	85 c0                	test   %eax,%eax
40d038:	74 75                	je     0x40d0af
40d03a:	f7 85 f0 fb ff ff 00 	testl  $0x1000,-0x410(%ebp)
40d041:	10 00 00
40d044:	74 57                	je     0x40d09d
40d046:	8b d6                	mov    %esi,%edx
40d048:	8d 8d f4 fb ff ff    	lea    -0x40c(%ebp),%ecx
40d04e:	eb d1                	jmp    0x40d021
40d050:	6a 00                	push   $0x0
40d052:	eb db                	jmp    0x40d02f
40d054:	8b ce                	mov    %esi,%ecx
40d056:	e8 43 cb ff ff       	call   0x409b9e
40d05b:	dd d8                	fstp   %st(0)
40d05d:	ff 15 48 20 41 00    	call   *0x412048
40d063:	f7 d8                	neg    %eax
40d065:	1b c0                	sbb    %eax,%eax
40d067:	40                   	inc    %eax
40d068:	eb 47                	jmp    0x40d0b1
40d06a:	8b bd f4 fd ff ff    	mov    -0x20c(%ebp),%edi
40d070:	85 ff                	test   %edi,%edi
40d072:	74 3b                	je     0x40d0af
40d074:	8b 85 f8 fd ff ff    	mov    -0x208(%ebp),%eax
40d07a:	85 c0                	test   %eax,%eax
40d07c:	75 06                	jne    0x40d084