40ed96:	99                   	cltd
40ed97:	2b c8                	sub    %eax,%ecx
40ed99:	1b fa                	sbb    %edx,%edi
40ed9b:	8b c1                	mov    %ecx,%eax
40ed9d:	8b d7                	mov    %edi,%edx
40ed9f:	e9 df 02 00 00       	jmp    0x40f083
40eda4:	8b 3b                	mov    (%ebx),%edi
40eda6:	8b f7                	mov    %edi,%esi
40eda8:	2b 73 08             	sub    0x8(%ebx),%esi
40edab:	f6 43 0c 03          	testb  $0x3,0xc(%ebx)
40edaf:	0f 84 90 01 00 00    	je     0x40ef45
40edb5:	80 bd fb ef ff ff 01 	cmpb   $0x1,-0x1005(%ebp)
40edbc:	0f 85 44 01 00 00    	jne    0x40ef06
40edc2:	8b 85 ec ef ff ff    	mov    -0x1014(%ebp),%eax
40edc8:	8b 14 85 20 2a 42 00 	mov    0x422a20(,%eax,4),%edx
40edcf:	8b 85 f0 ef ff ff    	mov    -0x1010(%ebp),%eax
40edd5:	83 7c 0a 30 00       	cmpl   $0x0,0x30(%edx,%ecx,1)
40edda:	8b 95 f4 ef ff ff    	mov    -0x100c(%ebp),%edx
40ede0:	0f 84 20 01 00 00    	je     0x40ef06
40ede6:	d1 ee                	shr    $1,%esi
40ede8:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
40edec:	0f 84 91 02 00 00    	je     0x40f083
40edf2:	8b 95 ec ef ff ff    	mov    -0x1014(%ebp),%edx
40edf8:	8b 9d e8 ef ff ff    	mov    -0x1018(%ebp),%ebx
40edfe:	8b 04 95 20 2a 42 00 	mov    0x422a20(,%edx,4),%eax
40ee05:	6a 00                	push   $0x0
40ee07:	ff 74 08 2c          	push   0x2c(%eax,%ecx,1)
40ee0b:	ff 74 08 28          	push   0x28(%eax,%ecx,1)
40ee0f:	53                   	push   %ebx
40ee10:	e8 7d 02 00 00       	call   0x40f092
40ee15:	8b f8                	mov    %eax,%edi
40ee17:	8b 85 ec ef ff ff    	mov    -0x1014(%ebp),%eax
40ee1d:	83 c4 10             	add    $0x10,%esp
40ee20:	8b 0c 85 20 2a 42 00 	mov    0x422a20(,%eax,4),%ecx
40ee27:	8b 85 e0 ef ff ff    	mov    -0x1020(%ebp),%eax
40ee2d:	89 bd dc ef ff ff    	mov    %edi,-0x1024(%ebp)
40ee33:	89 95 e4 ef ff ff    	mov    %edx,-0x101c(%ebp)
40ee39:	3b 7c 01 28          	cmp    0x28(%ecx,%eax,1),%edi
40ee3d:	0f 85 fd fe ff ff    	jne    0x40ed40
40ee43:	3b 54 01 2c          	cmp    0x2c(%ecx,%eax,1),%edx
40ee47:	0f 85 f3 fe ff ff    	jne    0x40ed40
40ee4d:	6a 00                	push   $0x0
40ee4f:	8d 95 e8 ef ff ff    	lea    -0x1018(%ebp),%edx
40ee55:	52                   	push   %edx
40ee56:	68 00 10 00 00       	push   $0x1000
40ee5b:	8d 95 fc ef ff ff    	lea    -0x1004(%ebp),%edx
40ee61:	52                   	push   %edx
40ee62:	ff 34 01             	push   (%ecx,%eax,1)
40ee65:	ff 15 fc 90 41 00    	call   *0x4190fc
40ee6b:	85 c0                	test   %eax,%eax
40ee6d:	0f 84 cd fe ff ff    	je     0x40ed40
40ee73:	8b bd f4 ef ff ff    	mov    -0x100c(%ebp),%edi
40ee79:	8b 8d f0 ef ff ff    	mov    -0x1010(%ebp),%ecx
40ee7f:	6a 00                	push   $0x0
40ee81:	57                   	push   %edi
40ee82:	51                   	push   %ecx
40ee83:	53                   	push   %ebx
40ee84:	e8 09 02 00 00       	call   0x40f092
40ee89:	83 c4 10             	add    $0x10,%esp
40ee8c:	85 d2                	test   %edx,%edx
40ee8e:	7f 0e                	jg     0x40ee9e
40ee90:	0f 8c aa fe ff ff    	jl     0x40ed40
40ee96:	85 c0                	test   %eax,%eax
40ee98:	0f 82 a2 fe ff ff    	jb     0x40ed40
40ee9e:	8b 85 e8 ef ff ff    	mov    -0x1018(%ebp),%eax
40eea4:	3b f0                	cmp    %eax,%esi
40eea6:	0f 87 94 fe ff ff    	ja     0x40ed40
40eeac:	8d 8d fc ef ff ff    	lea    -0x1004(%ebp),%ecx
40eeb2:	85 f6                	test   %esi,%esi
40eeb4:	74 33                	je     0x40eee9
40eeb6:	8b d1                	mov    %ecx,%edx
40eeb8:	03 d0                	add    %eax,%edx
40eeba:	4e                   	dec    %esi
40eebb:	3b ca                	cmp    %edx,%ecx
40eebd:	73 2a                	jae    0x40eee9
40eebf:	8a 01                	mov    (%ecx),%al
40eec1:	3c 0d                	cmp    $0xd,%al
40eec3:	75 13                	jne    0x40eed8
40eec5:	8d 42 ff             	lea    -0x1(%edx),%eax
40eec8:	3b c8                	cmp    %eax,%ecx
40eeca:	73 18                	jae    0x40eee4
40eecc:	8d 41 01             	lea    0x1(%ecx),%eax
40eecf:	80 38 0a             	cmpb   $0xa,(%eax)
40eed2:	75 10                	jne    0x40eee4
40eed4:	8b c8                	mov    %eax,%ecx
40eed6:	eb 0c                	jmp    0x40eee4
40eed8:	0f b6 c0             	movzbl %al,%eax
40eedb:	0f be 80 90 12 42 00 	movsbl 0x421290(%eax),%eax
40eee2:	03 c8                	add    %eax,%ecx
40eee4:	41                   	inc    %ecx
40eee5:	85 f6                	test   %esi,%esi
40eee7:	75 d1                	jne    0x40eeba
40eee9:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
40eeef:	2b c8                	sub    %eax,%ecx
40eef1:	33 d2                	xor    %edx,%edx
40eef3:	03 8d dc ef ff ff    	add    -0x1024(%ebp),%ecx
40eef9:	13 95 e4 ef ff ff    	adc    -0x101c(%ebp),%edx
40eeff:	8b c1                	mov    %ecx,%eax
40ef01:	e9 7d 01 00 00       	jmp    0x40f083
40ef06:	8b 95 ec ef ff ff    	mov    -0x1014(%ebp),%edx
40ef0c:	8b 04 95 20 2a 42 00 	mov    0x422a20(,%edx,4),%eax
40ef13:	8b 95 f4 ef ff ff    	mov    -0x100c(%ebp),%edx
40ef19:	f6 44 08 04 80       	testb  $0x80,0x4(%eax,%ecx,1)
40ef1e:	8b 85 f0 ef ff ff    	mov    -0x1010(%ebp),%eax
40ef24:	74 10                	je     0x40ef36
40ef26:	8b 4b 08             	mov    0x8(%ebx),%ecx
40ef29:	eb 07                	jmp    0x40ef32
40ef2b:	80 39 0a             	cmpb   $0xa,(%ecx)
40ef2e:	75 01                	jne    0x40ef31
40ef30:	46                   	inc    %esi
40ef31:	41                   	inc    %ecx
40ef32:	3b cf                	cmp    %edi,%ecx
40ef34:	72 f5                	jb     0x40ef2b
40ef36:	8b c8                	mov    %eax,%ecx
40ef38:	0b ca                	or     %edx,%ecx
40ef3a:	75 1f                	jne    0x40ef5b
40ef3c:	8b c6                	mov    %esi,%eax
40ef3e:	33 d2                	xor    %edx,%edx
40ef40:	e9 3e 01 00 00       	jmp    0x40f083
40ef45:	f6 43 0c 80          	testb  $0x80,0xc(%ebx)
40ef49:	75 eb                	jne    0x40ef36
40ef4b:	e8 2d 92 ff ff       	call   0x40817d
40ef50:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ef56:	e9 e5 fd ff ff       	jmp    0x40ed40
40ef5b:	f6 43 0c 01          	testb  $0x1,0xc(%ebx)
40ef5f:	0f 84 09 01 00 00    	je     0x40f06e
40ef65:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
40ef69:	75 07                	jne    0x40ef72
40ef6b:	33 f6                	xor    %esi,%esi
40ef6d:	e9 fc 00 00 00       	jmp    0x40f06e
40ef72:	8b 95 ec ef ff ff    	mov    -0x1014(%ebp),%edx
40ef78:	2b 7b 08             	sub    0x8(%ebx),%edi
40ef7b:	8b 04 95 20 2a 42 00 	mov    0x422a20(,%edx,4),%eax
40ef82:	8b 8d e0 ef ff ff    	mov    -0x1020(%ebp),%ecx
40ef88:	03 7b 04             	add    0x4(%ebx),%edi
40ef8b:	f6 44 08 04 80       	testb  $0x80,0x4(%eax,%ecx,1)
40ef90:	8b 85 f0 ef ff ff    	mov    -0x1010(%ebp),%eax
40ef96:	8b 95 f4 ef ff ff    	mov    -0x100c(%ebp),%edx
40ef9c:	0f 84 b6 00 00 00    	je     0x40f058
40efa2:	6a 02                	push   $0x2
40efa4:	6a 00                	push   $0x0
40efa6:	6a 00                	push   $0x0
40efa8:	ff b5 e8 ef ff ff    	push   -0x1018(%ebp)
40efae:	e8 df 00 00 00       	call   0x40f092
40efb3:	8b 8d f0 ef ff ff    	mov    -0x1010(%ebp),%ecx
40efb9:	83 c4 10             	add    $0x10,%esp
40efbc:	89 95 e4 ef ff ff    	mov    %edx,-0x101c(%ebp)
40efc2:	8b 95 f4 ef ff ff    	mov    -0x100c(%ebp),%edx
40efc8:	3b c1                	cmp    %ecx,%eax
40efca:	75 24                	jne    0x40eff0
40efcc:	39 95 e4 ef ff ff    	cmp    %edx,-0x101c(%ebp)
40efd2:	75 1c                	jne    0x40eff0
40efd4:	8b 43 08             	mov    0x8(%ebx),%eax
40efd7:	8d 0c 38             	lea    (%eax,%edi,1),%ecx
40efda:	eb 07                	jmp    0x40efe3
40efdc:	80 38 0a             	cmpb   $0xa,(%eax)
40efdf:	75 01                	jne    0x40efe2
40efe1:	47                   	inc    %edi
40efe2:	40                   	inc    %eax
40efe3:	3b c1                	cmp    %ecx,%eax
40efe5:	72 f5                	jb     0x40efdc
40efe7:	f7 43 0c 00 20 00 00 	testl  $0x2000,0xc(%ebx)
40efee:	eb 5f                	jmp    0x40f04f
40eff0:	6a 00                	push   $0x0
40eff2:	52                   	push   %edx
40eff3:	51                   	push   %ecx
40eff4:	ff b5 e8 ef ff ff    	push   -0x1018(%ebp)
40effa:	e8 93 00 00 00       	call   0x40f092
40efff:	83 c4 10             	add    $0x10,%esp
40f002:	85 d2                	test   %edx,%edx
40f004:	7f 0e                	jg     0x40f014
40f006:	0f 8c 34 fd ff ff    	jl     0x40ed40
40f00c:	85 c0                	test   %eax,%eax
40f00e:	0f 82 2c fd ff ff    	jb     0x40ed40
40f014:	b8 00 02 00 00       	mov    $0x200,%eax
40f019:	3b f8                	cmp    %eax,%edi
40f01b:	77 11                	ja     0x40f02e
40f01d:	f6 43 0c 08          	testb  $0x8,0xc(%ebx)
40f021:	74 0b                	je     0x40f02e
40f023:	f7 43 0c 00 04 00 00 	testl  $0x400,0xc(%ebx)
40f02a:	8b f8                	mov    %eax,%edi
40f02c:	74 03                	je     0x40f031
40f02e:	8b 7b 18             	mov    0x18(%ebx),%edi
40f031:	8b 85 ec ef ff ff    	mov    -0x1014(%ebp),%eax
40f037:	8b 8d e0 ef ff ff    	mov    -0x1020(%ebp),%ecx
40f03d:	8b 04 85 20 2a 42 00 	mov    0x422a20(,%eax,4),%eax
40f044:	8b 95 f4 ef ff ff    	mov    -0x100c(%ebp),%edx
40f04a:	f6 44 08 04 04       	testb  $0x4,0x4(%eax,%ecx,1)
40f04f:	8b 85 f0 ef ff ff    	mov    -0x1010(%ebp),%eax
40f055:	74 01                	je     0x40f058
40f057:	47                   	inc    %edi
40f058:	80 bd fb ef ff ff 01 	cmpb   $0x1,-0x1005(%ebp)
40f05f:	75 02                	jne    0x40f063
40f061:	d1 ef                	shr    $1,%edi
40f063:	2b c7                	sub    %edi,%eax
40f065:	83 da 00             	sbb    $0x0,%edx
40f068:	89 95 f4 ef ff ff    	mov    %edx,-0x100c(%ebp)
40f06e:	80 bd fb ef ff ff 01 	cmpb   $0x1,-0x1005(%ebp)
40f075:	75 02                	jne    0x40f079
40f077:	d1 ee                	shr    $1,%esi
40f079:	33 d2                	xor    %edx,%edx
40f07b:	03 c6                	add    %esi,%eax
40f07d:	13 95 f4 ef ff ff    	adc    -0x100c(%ebp),%edx
40f083:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f086:	5f                   	pop    %edi
40f087:	5e                   	pop    %esi
40f088:	33 cd                	xor    %ebp,%ecx
40f08a:	5b                   	pop    %ebx
40f08b:	e8 a9 56 ff ff       	call   0x404739
40f090:	c9                   	leave
40f091:	c3                   	ret
40f092:	6a 18                	push   $0x18
40f094:	68 f8 e6 41 00       	push   $0x41e6f8
40f099:	e8 12 bd ff ff       	call   0x40adb0
40f09e:	83 ce ff             	or     $0xffffffff,%esi
40f0a1:	89 75 d8             	mov    %esi,-0x28(%ebp)
40f0a4:	89 75 dc             	mov    %esi,-0x24(%ebp)
40f0a7:	8b 7d 08             	mov    0x8(%ebp),%edi
40f0aa:	83 ff fe             	cmp    $0xfffffffe,%edi
40f0ad:	75 18                	jne    0x40f0c7
40f0af:	e8 95 90 ff ff       	call   0x408149
40f0b4:	83 20 00             	andl   $0x0,(%eax)
40f0b7:	e8 c1 90 ff ff       	call   0x40817d
40f0bc:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f0c2:	e9 ca 00 00 00       	jmp    0x40f191
40f0c7:	e8 26 e5 ff ff       	call   0x40d5f2
40f0cc:	85 c0                	test   %eax,%eax
40f0ce:	0f 88 bd 00 00 00    	js     0x40f191
40f0d4:	85 ff                	test   %edi,%edi
40f0d6:	0f 88 9d 00 00 00    	js     0x40f179
40f0dc:	3b 3d 14 2a 42 00    	cmp    0x422a14,%edi
40f0e2:	0f 83 91 00 00 00    	jae    0x40f179
40f0e8:	8b c7                	mov    %edi,%eax
40f0ea:	c1 f8 05             	sar    $0x5,%eax
40f0ed:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f0f0:	8b df                	mov    %edi,%ebx
40f0f2:	83 e3 1f             	and    $0x1f,%ebx
40f0f5:	c1 e3 06             	shl    $0x6,%ebx
40f0f8:	8b 04 85 20 2a 42 00 	mov    0x422a20(,%eax,4),%eax
40f0ff:	0f be 44 18 04       	movsbl 0x4(%eax,%ebx,1),%eax
40f104:	83 e0 01             	and    $0x1,%eax
40f107:	74 70                	je     0x40f179
40f109:	57                   	push   %edi
40f10a:	e8 88 4a 00 00       	call   0x413b97
40f10f:	59                   	pop    %ecx
40f110:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f114:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40f117:	8b 04 85 20 2a 42 00 	mov    0x422a20(,%eax,4),%eax
40f11e:	f6 44 18 04 01       	testb  $0x1,0x4(%eax,%ebx,1)
40f123:	74 18                	je     0x40f13d
40f125:	ff 75 14             	push   0x14(%ebp)
40f128:	ff 75 10             	push   0x10(%ebp)
40f12b:	ff 75 0c             	push   0xc(%ebp)
40f12e:	57                   	push   %edi
40f12f:	e8 67 00 00 00       	call   0x40f19b
40f134:	83 c4 10             	add    $0x10,%esp
40f137:	8b f0                	mov    %eax,%esi
40f139:	8b da                	mov    %edx,%ebx
40f13b:	eb 15                	jmp    0x40f152
40f13d:	e8 3b 90 ff ff       	call   0x40817d
40f142:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f148:	e8 fc 8f ff ff       	call   0x408149
40f14d:	83 20 00             	andl   $0x0,(%eax)
40f150:	8b de                	mov    %esi,%ebx
40f152:	89 75 d8             	mov    %esi,-0x28(%ebp)
40f155:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40f158:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40f15f:	e8 0d 00 00 00       	call   0x40f171
40f164:	8b d3                	mov    %ebx,%edx
40f166:	eb 2b                	jmp    0x40f193
40f168:	8b 7d 08             	mov    0x8(%ebp),%edi
40f16b:	8b 5d dc             	mov    -0x24(%ebp),%ebx
40f16e:	8b 75 d8             	mov    -0x28(%ebp),%esi
40f171:	57                   	push   %edi
40f172:	e8 a4 4b 00 00       	call   0x413d1b
40f177:	59                   	pop    %ecx
40f178:	c3                   	ret
40f179:	e8 cb 8f ff ff       	call   0x408149
40f17e:	83 20 00             	andl   $0x0,(%eax)
40f181:	e8 f7 8f ff ff       	call   0x40817d
40f186:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f18c:	e8 64 c4 ff ff       	call   0x40b5f5
40f191:	8b d6                	mov    %esi,%edx
40f193:	8b c6                	mov    %esi,%eax
40f195:	e8 5b bc ff ff       	call   0x40adf5
40f19a:	c3                   	ret
40f19b:	55                   	push   %ebp
40f19c:	8b ec                	mov    %esp,%ebp
40f19e:	51                   	push   %ecx
40f19f:	51                   	push   %ecx
40f1a0:	56                   	push   %esi
40f1a1:	8b 75 08             	mov    0x8(%ebp),%esi
40f1a4:	57                   	push   %edi
40f1a5:	56                   	push   %esi
40f1a6:	e8 fe 4a 00 00       	call   0x413ca9
40f1ab:	83 cf ff             	or     $0xffffffff,%edi
40f1ae:	59                   	pop    %ecx
40f1af:	3b c7                	cmp    %edi,%eax
40f1b1:	75 11                	jne    0x40f1c4
40f1b3:	e8 c5 8f ff ff       	call   0x40817d
40f1b8:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f1be:	8b c7                	mov    %edi,%eax
40f1c0:	8b d7                	mov    %edi,%edx
40f1c2:	eb 44                	jmp    0x40f208
40f1c4:	ff 75 14             	push   0x14(%ebp)
40f1c7:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40f1ca:	51                   	push   %ecx
40f1cb:	ff 75 10             	push   0x10(%ebp)
40f1ce:	ff 75 0c             	push   0xc(%ebp)
40f1d1:	50                   	push   %eax
40f1d2:	ff 15 00 91 41 00    	call   *0x419100
40f1d8:	85 c0                	test   %eax,%eax
40f1da:	75 0f                	jne    0x40f1eb
40f1dc:	ff 15 18 90 41 00    	call   *0x419018
40f1e2:	50                   	push   %eax
40f1e3:	e8 74 8f ff ff       	call   0x40815c
40f1e8:	59                   	pop    %ecx
40f1e9:	eb d3                	jmp    0x40f1be
40f1eb:	8b c6                	mov    %esi,%eax
40f1ed:	c1 f8 05             	sar    $0x5,%eax
40f1f0:	83 e6 1f             	and    $0x1f,%esi
40f1f3:	8b 04 85 20 2a 42 00 	mov    0x422a20(,%eax,4),%eax
40f1fa:	c1 e6 06             	shl    $0x6,%esi
40f1fd:	80 64 30 04 fd       	andb   $0xfd,0x4(%eax,%esi,1)
40f202:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f205:	8b 55 fc             	mov    -0x4(%ebp),%edx
40f208:	5f                   	pop    %edi
40f209:	5e                   	pop    %esi
40f20a:	c9                   	leave
40f20b:	c3                   	ret
40f20c:	55                   	push   %ebp
40f20d:	8b ec                	mov    %esp,%ebp
40f20f:	ff 05 50 1c 42 00    	incl   0x421c50
40f215:	56                   	push   %esi
40f216:	be 00 10 00 00       	mov    $0x1000,%esi
40f21b:	56                   	push   %esi
40f21c:	e8 81 98 ff ff       	call   0x408aa2
40f221:	59                   	pop    %ecx
40f222:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f225:	89 41 08             	mov    %eax,0x8(%ecx)
40f228:	85 c0                	test   %eax,%eax
40f22a:	74 09                	je     0x40f235
40f22c:	83 49 0c 08          	orl    $0x8,0xc(%ecx)
40f230:	89 71 18             	mov    %esi,0x18(%ecx)
40f233:	eb 11                	jmp    0x40f246
40f235:	83 49 0c 04          	orl    $0x4,0xc(%ecx)
40f239:	8d 41 14             	lea    0x14(%ecx),%eax
40f23c:	89 41 08             	mov    %eax,0x8(%ecx)
40f23f:	c7 41 18 02 00 00 00 	movl   $0x2,0x18(%ecx)
40f246:	8b 41 08             	mov    0x8(%ecx),%eax