40eb86:	e9 d9 00 00 00       	jmp    0x40ec64
40eb8b:	83 c8 01             	or     $0x1,%eax
40eb8e:	89 47 0c             	mov    %eax,0xc(%edi)
40eb91:	a9 0c 01 00 00       	test   $0x10c,%eax
40eb96:	75 09                	jne    0x40eba1
40eb98:	57                   	push   %edi
40eb99:	e8 6e 06 00 00       	call   0x40f20c
40eb9e:	59                   	pop    %ecx
40eb9f:	eb 05                	jmp    0x40eba6
40eba1:	8b 47 08             	mov    0x8(%edi),%eax
40eba4:	89 07                	mov    %eax,(%edi)
40eba6:	ff 77 18             	push   0x18(%edi)
40eba9:	ff 77 08             	push   0x8(%edi)
40ebac:	57                   	push   %edi
40ebad:	e8 87 f3 ff ff       	call   0x40df39
40ebb2:	59                   	pop    %ecx
40ebb3:	50                   	push   %eax
40ebb4:	e8 02 53 00 00       	call   0x413ebb
40ebb9:	83 c4 0c             	add    $0xc,%esp
40ebbc:	89 47 04             	mov    %eax,0x4(%edi)
40ebbf:	85 c0                	test   %eax,%eax
40ebc1:	0f 84 8c 00 00 00    	je     0x40ec53
40ebc7:	83 f8 ff             	cmp    $0xffffffff,%eax
40ebca:	0f 84 83 00 00 00    	je     0x40ec53
40ebd0:	f6 47 0c 82          	testb  $0x82,0xc(%edi)
40ebd4:	75 51                	jne    0x40ec27
40ebd6:	57                   	push   %edi
40ebd7:	e8 5d f3 ff ff       	call   0x40df39
40ebdc:	59                   	pop    %ecx
40ebdd:	83 f8 ff             	cmp    $0xffffffff,%eax
40ebe0:	74 30                	je     0x40ec12
40ebe2:	57                   	push   %edi
40ebe3:	e8 51 f3 ff ff       	call   0x40df39
40ebe8:	59                   	pop    %ecx
40ebe9:	83 f8 fe             	cmp    $0xfffffffe,%eax
40ebec:	74 24                	je     0x40ec12
40ebee:	56                   	push   %esi
40ebef:	57                   	push   %edi
40ebf0:	e8 44 f3 ff ff       	call   0x40df39
40ebf5:	8b f0                	mov    %eax,%esi
40ebf7:	57                   	push   %edi
40ebf8:	c1 fe 05             	sar    $0x5,%esi
40ebfb:	e8 39 f3 ff ff       	call   0x40df39
40ec00:	83 e0 1f             	and    $0x1f,%eax
40ec03:	59                   	pop    %ecx
40ec04:	c1 e0 06             	shl    $0x6,%eax
40ec07:	03 04 b5 20 2a 42 00 	add    0x422a20(,%esi,4),%eax
40ec0e:	59                   	pop    %ecx
40ec0f:	5e                   	pop    %esi
40ec10:	eb 05                	jmp    0x40ec17
40ec12:	b8 18 10 42 00       	mov    $0x421018,%eax
40ec17:	8a 40 04             	mov    0x4(%eax),%al
40ec1a:	24 82                	and    $0x82,%al
40ec1c:	3c 82                	cmp    $0x82,%al
40ec1e:	75 07                	jne    0x40ec27
40ec20:	81 4f 0c 00 20 00 00 	orl    $0x2000,0xc(%edi)
40ec27:	81 7f 18 00 02 00 00 	cmpl   $0x200,0x18(%edi)
40ec2e:	75 16                	jne    0x40ec46
40ec30:	f6 47 0c 08          	testb  $0x8,0xc(%edi)
40ec34:	74 10                	je     0x40ec46
40ec36:	f7 47 0c 00 04 00 00 	testl  $0x400,0xc(%edi)
40ec3d:	75 07                	jne    0x40ec46
40ec3f:	c7 47 18 00 10 00 00 	movl   $0x1000,0x18(%edi)
40ec46:	8b 0f                	mov    (%edi),%ecx
40ec48:	ff 4f 04             	decl   0x4(%edi)
40ec4b:	0f b6 01             	movzbl (%ecx),%eax
40ec4e:	41                   	inc    %ecx
40ec4f:	89 0f                	mov    %ecx,(%edi)
40ec51:	eb 14                	jmp    0x40ec67
40ec53:	f7 d8                	neg    %eax
40ec55:	1b c0                	sbb    %eax,%eax
40ec57:	83 e0 10             	and    $0x10,%eax
40ec5a:	83 c0 10             	add    $0x10,%eax
40ec5d:	09 47 0c             	or     %eax,0xc(%edi)
40ec60:	83 67 04 00          	andl   $0x0,0x4(%edi)
40ec64:	83 c8 ff             	or     $0xffffffff,%eax
40ec67:	5f                   	pop    %edi
40ec68:	5d                   	pop    %ebp
40ec69:	c3                   	ret
40ec6a:	6a 10                	push   $0x10
40ec6c:	68 d8 e6 41 00       	push   $0x41e6d8
40ec71:	e8 3a c1 ff ff       	call   0x40adb0
40ec76:	33 c0                	xor    %eax,%eax
40ec78:	8b 75 08             	mov    0x8(%ebp),%esi
40ec7b:	85 f6                	test   %esi,%esi
40ec7d:	0f 95 c0             	setne  %al
40ec80:	85 c0                	test   %eax,%eax
40ec82:	75 17                	jne    0x40ec9b
40ec84:	e8 f4 94 ff ff       	call   0x40817d
40ec89:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ec8f:	e8 61 c9 ff ff       	call   0x40b5f5
40ec94:	83 c8 ff             	or     $0xffffffff,%eax
40ec97:	0b d0                	or     %eax,%edx
40ec99:	eb 35                	jmp    0x40ecd0
40ec9b:	e8 52 e9 ff ff       	call   0x40d5f2
40eca0:	85 c0                	test   %eax,%eax
40eca2:	78 f0                	js     0x40ec94
40eca4:	56                   	push   %esi
40eca5:	e8 71 76 ff ff       	call   0x40631b
40ecaa:	59                   	pop    %ecx
40ecab:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ecaf:	56                   	push   %esi
40ecb0:	e8 32 00 00 00       	call   0x40ece7
40ecb5:	59                   	pop    %ecx
40ecb6:	8b f8                	mov    %eax,%edi
40ecb8:	89 7d e0             	mov    %edi,-0x20(%ebp)
40ecbb:	8b da                	mov    %edx,%ebx
40ecbd:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40ecc0:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ecc7:	e8 13 00 00 00       	call   0x40ecdf
40eccc:	8b c7                	mov    %edi,%eax
40ecce:	8b d3                	mov    %ebx,%edx
40ecd0:	e8 20 c1 ff ff       	call   0x40adf5
40ecd5:	c3                   	ret
40ecd6:	8b 75 08             	mov    0x8(%ebp),%esi
40ecd9:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40ecdc:	8b 7d e0             	mov    -0x20(%ebp),%edi
40ecdf:	56                   	push   %esi
40ece0:	e8 a5 76 ff ff       	call   0x40638a
40ece5:	59                   	pop    %ecx
40ece6:	c3                   	ret
40ece7:	55                   	push   %ebp
40ece8:	8b ec                	mov    %esp,%ebp
40ecea:	b8 24 10 00 00       	mov    $0x1024,%eax
40ecef:	e8 9c 51 00 00       	call   0x413e90
40ecf4:	a1 90 08 42 00       	mov    0x420890,%eax
40ecf9:	33 c5                	xor    %ebp,%eax
40ecfb:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ecfe:	53                   	push   %ebx
40ecff:	8b 5d 08             	mov    0x8(%ebp),%ebx
40ed02:	56                   	push   %esi
40ed03:	57                   	push   %edi
40ed04:	53                   	push   %ebx
40ed05:	e8 2f f2 ff ff       	call   0x40df39
40ed0a:	33 ff                	xor    %edi,%edi
40ed0c:	8b f0                	mov    %eax,%esi
40ed0e:	59                   	pop    %ecx
40ed0f:	89 b5 e8 ef ff ff    	mov    %esi,-0x1018(%ebp)
40ed15:	39 7b 04             	cmp    %edi,0x4(%ebx)
40ed18:	7d 03                	jge    0x40ed1d
40ed1a:	89 7b 04             	mov    %edi,0x4(%ebx)
40ed1d:	6a 01                	push   $0x1
40ed1f:	57                   	push   %edi
40ed20:	57                   	push   %edi
40ed21:	56                   	push   %esi
40ed22:	e8 6b 03 00 00       	call   0x40f092
40ed27:	83 c4 10             	add    $0x10,%esp
40ed2a:	89 85 f0 ef ff ff    	mov    %eax,-0x1010(%ebp)
40ed30:	89 95 f4 ef ff ff    	mov    %edx,-0x100c(%ebp)
40ed36:	3b d7                	cmp    %edi,%edx
40ed38:	7f 10                	jg     0x40ed4a
40ed3a:	7c 04                	jl     0x40ed40
40ed3c:	3b c7                	cmp    %edi,%eax
40ed3e:	73 0a                	jae    0x40ed4a
40ed40:	83 c8 ff             	or     $0xffffffff,%eax
40ed43:	0b d0                	or     %eax,%edx
40ed45:	e9 39 03 00 00       	jmp    0x40f083
40ed4a:	8b c6                	mov    %esi,%eax
40ed4c:	c1 f8 05             	sar    $0x5,%eax
40ed4f:	8b ce                	mov    %esi,%ecx
40ed51:	8b 34 85 20 2a 42 00 	mov    0x422a20(,%eax,4),%esi
40ed58:	83 e1 1f             	and    $0x1f,%ecx
40ed5b:	c1 e1 06             	shl    $0x6,%ecx
40ed5e:	89 85 ec ef ff ff    	mov    %eax,-0x1014(%ebp)
40ed64:	8a 44 0e 24          	mov    0x24(%esi,%ecx,1),%al
40ed68:	02 c0                	add    %al,%al
40ed6a:	d0 f8                	sar    $1,%al
40ed6c:	f7 43 0c 08 01 00 00 	testl  $0x108,0xc(%ebx)
40ed73:	88 85 fb ef ff ff    	mov    %al,-0x1005(%ebp)
40ed79:	8b 85 f0 ef ff ff    	mov    -0x1010(%ebp),%eax
40ed7f:	89 8d e0 ef ff ff    	mov    %ecx,-0x1020(%ebp)
40ed85:	75 1d                	jne    0x40eda4
40ed87:	8b 43 04             	mov    0x4(%ebx),%eax
40ed8a:	8b 8d f0 ef ff ff    	mov    -0x1010(%ebp),%ecx
40ed90:	8b bd f4 ef ff ff    	mov    -0x100c(%ebp),%edi
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