40decf:	59                   	pop    %ecx
40ded0:	85 c0                	test   %eax,%eax
40ded2:	74 54                	je     0x40df28
40ded4:	ff 77 14             	push   0x14(%edi)
40ded7:	83 c7 08             	add    $0x8,%edi
40deda:	57                   	push   %edi
40dedb:	8b 45 08             	mov    0x8(%ebp),%eax
40dede:	ff 70 18             	push   0x18(%eax)
40dee1:	e8 5f fc ff ff       	call   0x40db45
40dee6:	59                   	pop    %ecx
40dee7:	59                   	pop    %ecx
40dee8:	50                   	push   %eax
40dee9:	56                   	push   %esi
40deea:	e8 c1 a5 ff ff       	call   0x4084b0
40deef:	83 c4 0c             	add    $0xc,%esp
40def2:	eb 39                	jmp    0x40df2d
40def4:	e8 5f 7a 00 00       	call   0x415958
40def9:	59                   	pop    %ecx
40defa:	59                   	pop    %ecx
40defb:	85 c0                	test   %eax,%eax
40defd:	74 29                	je     0x40df28
40deff:	53                   	push   %ebx
40df00:	56                   	push   %esi
40df01:	e8 52 7a 00 00       	call   0x415958
40df06:	59                   	pop    %ecx
40df07:	59                   	pop    %ecx
40df08:	85 c0                	test   %eax,%eax
40df0a:	74 1c                	je     0x40df28
40df0c:	ff 77 18             	push   0x18(%edi)
40df0f:	e8 44 7a 00 00       	call   0x415958
40df14:	59                   	pop    %ecx
40df15:	85 c0                	test   %eax,%eax
40df17:	74 0f                	je     0x40df28
40df19:	f6 07 04             	testb  $0x4,(%edi)
40df1c:	6a 00                	push   $0x0
40df1e:	58                   	pop    %eax
40df1f:	0f 95 c0             	setne  %al
40df22:	40                   	inc    %eax
40df23:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40df26:	eb 05                	jmp    0x40df2d
40df28:	e8 aa 06 00 00       	call   0x40e5d7
40df2d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40df34:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40df37:	eb 0e                	jmp    0x40df47
40df39:	33 c0                	xor    %eax,%eax
40df3b:	40                   	inc    %eax
40df3c:	c3                   	ret
40df3d:	8b 65 e8             	mov    -0x18(%ebp),%esp
40df40:	e8 46 06 00 00       	call   0x40e58b
40df45:	33 c0                	xor    %eax,%eax
40df47:	e8 d5 c4 ff ff       	call   0x40a421
40df4c:	c3                   	ret
40df4d:	6a 08                	push   $0x8
40df4f:	68 f8 98 42 00       	push   $0x4298f8
40df54:	e8 83 c4 ff ff       	call   0x40a3dc
40df59:	8b 45 10             	mov    0x10(%ebp),%eax
40df5c:	f7 00 00 00 00 80    	testl  $0x80000000,(%eax)
40df62:	74 05                	je     0x40df69
40df64:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40df67:	eb 0a                	jmp    0x40df73
40df69:	8b 48 08             	mov    0x8(%eax),%ecx
40df6c:	8b 55 0c             	mov    0xc(%ebp),%edx
40df6f:	8d 5c 11 0c          	lea    0xc(%ecx,%edx,1),%ebx
40df73:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40df77:	8b 75 14             	mov    0x14(%ebp),%esi
40df7a:	56                   	push   %esi
40df7b:	50                   	push   %eax
40df7c:	ff 75 0c             	push   0xc(%ebp)
40df7f:	8b 7d 08             	mov    0x8(%ebp),%edi
40df82:	57                   	push   %edi
40df83:	e8 46 fe ff ff       	call   0x40ddce
40df88:	83 c4 10             	add    $0x10,%esp
40df8b:	48                   	dec    %eax
40df8c:	74 1f                	je     0x40dfad
40df8e:	48                   	dec    %eax
40df8f:	75 34                	jne    0x40dfc5
40df91:	6a 01                	push   $0x1
40df93:	8d 46 08             	lea    0x8(%esi),%eax
40df96:	50                   	push   %eax
40df97:	ff 77 18             	push   0x18(%edi)
40df9a:	e8 a6 fb ff ff       	call   0x40db45
40df9f:	59                   	pop    %ecx
40dfa0:	59                   	pop    %ecx
40dfa1:	50                   	push   %eax
40dfa2:	ff 76 18             	push   0x18(%esi)
40dfa5:	53                   	push   %ebx
40dfa6:	e8 c7 82 ff ff       	call   0x406272
40dfab:	eb 18                	jmp    0x40dfc5
40dfad:	8d 46 08             	lea    0x8(%esi),%eax
40dfb0:	50                   	push   %eax
40dfb1:	ff 77 18             	push   0x18(%edi)
40dfb4:	e8 8c fb ff ff       	call   0x40db45
40dfb9:	59                   	pop    %ecx
40dfba:	59                   	pop    %ecx
40dfbb:	50                   	push   %eax
40dfbc:	ff 76 18             	push   0x18(%esi)
40dfbf:	53                   	push   %ebx
40dfc0:	e8 ad 82 ff ff       	call   0x406272
40dfc5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40dfcc:	e8 50 c4 ff ff       	call   0x40a421
40dfd1:	c3                   	ret
40dfd2:	33 c0                	xor    %eax,%eax
40dfd4:	40                   	inc    %eax
40dfd5:	c3                   	ret
40dfd6:	8b 65 e8             	mov    -0x18(%ebp),%esp
40dfd9:	e8 ad 05 00 00       	call   0x40e58b
40dfde:	cc                   	int3
40dfdf:	8b ff                	mov    %edi,%edi
40dfe1:	55                   	push   %ebp
40dfe2:	8b ec                	mov    %esp,%ebp
40dfe4:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40dfe8:	74 10                	je     0x40dffa
40dfea:	ff 75 18             	push   0x18(%ebp)
40dfed:	53                   	push   %ebx
40dfee:	56                   	push   %esi
40dfef:	ff 75 08             	push   0x8(%ebp)
40dff2:	e8 56 ff ff ff       	call   0x40df4d
40dff7:	83 c4 10             	add    $0x10,%esp
40dffa:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
40dffe:	ff 75 08             	push   0x8(%ebp)
40e001:	75 03                	jne    0x40e006
40e003:	56                   	push   %esi
40e004:	eb 03                	jmp    0x40e009
40e006:	ff 75 20             	push   0x20(%ebp)
40e009:	e8 6b 82 ff ff       	call   0x406279
40e00e:	ff 37                	push   (%edi)
40e010:	ff 75 14             	push   0x14(%ebp)
40e013:	ff 75 10             	push   0x10(%ebp)
40e016:	56                   	push   %esi
40e017:	e8 ae f9 ff ff       	call   0x40d9ca
40e01c:	8b 47 04             	mov    0x4(%edi),%eax
40e01f:	68 00 01 00 00       	push   $0x100
40e024:	ff 75 1c             	push   0x1c(%ebp)
40e027:	40                   	inc    %eax
40e028:	ff 75 14             	push   0x14(%ebp)
40e02b:	89 46 08             	mov    %eax,0x8(%esi)
40e02e:	ff 75 0c             	push   0xc(%ebp)
40e031:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40e034:	56                   	push   %esi
40e035:	ff 75 08             	push   0x8(%ebp)
40e038:	e8 f5 fb ff ff       	call   0x40dc32
40e03d:	83 c4 28             	add    $0x28,%esp
40e040:	85 c0                	test   %eax,%eax
40e042:	74 07                	je     0x40e04b
40e044:	56                   	push   %esi
40e045:	50                   	push   %eax
40e046:	e8 f5 81 ff ff       	call   0x406240
40e04b:	5d                   	pop    %ebp
40e04c:	c3                   	ret
40e04d:	8b ff                	mov    %edi,%edi
40e04f:	55                   	push   %ebp
40e050:	8b ec                	mov    %esp,%ebp
40e052:	51                   	push   %ecx
40e053:	51                   	push   %ecx
40e054:	56                   	push   %esi
40e055:	8b 75 08             	mov    0x8(%ebp),%esi
40e058:	81 3e 03 00 00 80    	cmpl   $0x80000003,(%esi)
40e05e:	0f 84 da 00 00 00    	je     0x40e13e
40e064:	57                   	push   %edi
40e065:	e8 d7 c9 ff ff       	call   0x40aa41
40e06a:	83 b8 80 00 00 00 00 	cmpl   $0x0,0x80(%eax)
40e071:	74 3f                	je     0x40e0b2
40e073:	e8 c9 c9 ff ff       	call   0x40aa41
40e078:	8d b8 80 00 00 00    	lea    0x80(%eax),%edi
40e07e:	e8 69 c7 ff ff       	call   0x40a7ec
40e083:	39 07                	cmp    %eax,(%edi)
40e085:	74 2b                	je     0x40e0b2
40e087:	81 3e 4d 4f 43 e0    	cmpl   $0xe0434f4d,(%esi)
40e08d:	74 23                	je     0x40e0b2
40e08f:	ff 75 24             	push   0x24(%ebp)
40e092:	ff 75 20             	push   0x20(%ebp)
40e095:	ff 75 18             	push   0x18(%ebp)
40e098:	ff 75 14             	push   0x14(%ebp)
40e09b:	ff 75 10             	push   0x10(%ebp)
40e09e:	ff 75 0c             	push   0xc(%ebp)
40e0a1:	56                   	push   %esi
40e0a2:	e8 8f 82 ff ff       	call   0x406336
40e0a7:	83 c4 1c             	add    $0x1c,%esp
40e0aa:	85 c0                	test   %eax,%eax
40e0ac:	0f 85 8b 00 00 00    	jne    0x40e13d
40e0b2:	8b 7d 18             	mov    0x18(%ebp),%edi
40e0b5:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
40e0b9:	75 05                	jne    0x40e0c0
40e0bb:	e8 17 05 00 00       	call   0x40e5d7
40e0c0:	8b 75 1c             	mov    0x1c(%ebp),%esi
40e0c3:	8d 45 f8             	lea    -0x8(%ebp),%eax
40e0c6:	50                   	push   %eax
40e0c7:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e0ca:	50                   	push   %eax
40e0cb:	56                   	push   %esi
40e0cc:	ff 75 20             	push   0x20(%ebp)
40e0cf:	57                   	push   %edi
40e0d0:	e8 d7 83 ff ff       	call   0x4064ac
40e0d5:	8b f8                	mov    %eax,%edi
40e0d7:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e0da:	83 c4 14             	add    $0x14,%esp
40e0dd:	3b 45 f8             	cmp    -0x8(%ebp),%eax
40e0e0:	73 5b                	jae    0x40e13d
40e0e2:	53                   	push   %ebx
40e0e3:	3b 37                	cmp    (%edi),%esi
40e0e5:	7c 47                	jl     0x40e12e
40e0e7:	3b 77 04             	cmp    0x4(%edi),%esi
40e0ea:	7f 42                	jg     0x40e12e
40e0ec:	8b 47 0c             	mov    0xc(%edi),%eax
40e0ef:	8b 4f 10             	mov    0x10(%edi),%ecx
40e0f2:	c1 e0 04             	shl    $0x4,%eax
40e0f5:	03 c1                	add    %ecx,%eax
40e0f7:	8b 48 f4             	mov    -0xc(%eax),%ecx
40e0fa:	85 c9                	test   %ecx,%ecx
40e0fc:	74 06                	je     0x40e104
40e0fe:	80 79 08 00          	cmpb   $0x0,0x8(%ecx)
40e102:	75 2a                	jne    0x40e12e
40e104:	8d 58 f0             	lea    -0x10(%eax),%ebx
40e107:	f6 03 40             	testb  $0x40,(%ebx)
40e10a:	75 22                	jne    0x40e12e
40e10c:	ff 75 24             	push   0x24(%ebp)
40e10f:	8b 75 0c             	mov    0xc(%ebp),%esi
40e112:	ff 75 20             	push   0x20(%ebp)
40e115:	6a 00                	push   $0x0
40e117:	ff 75 18             	push   0x18(%ebp)
40e11a:	ff 75 14             	push   0x14(%ebp)
40e11d:	ff 75 10             	push   0x10(%ebp)
40e120:	ff 75 08             	push   0x8(%ebp)
40e123:	e8 b7 fe ff ff       	call   0x40dfdf
40e128:	8b 75 1c             	mov    0x1c(%ebp),%esi
40e12b:	83 c4 1c             	add    $0x1c,%esp
40e12e:	ff 45 fc             	incl   -0x4(%ebp)
40e131:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e134:	83 c7 14             	add    $0x14,%edi
40e137:	3b 45 f8             	cmp    -0x8(%ebp),%eax
40e13a:	72 a7                	jb     0x40e0e3
40e13c:	5b                   	pop    %ebx
40e13d:	5f                   	pop    %edi
40e13e:	5e                   	pop    %esi
40e13f:	c9                   	leave
40e140:	c3                   	ret
40e141:	8b ff                	mov    %edi,%edi
40e143:	55                   	push   %ebp
40e144:	8b ec                	mov    %esp,%ebp
40e146:	83 ec 2c             	sub    $0x2c,%esp
40e149:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e14c:	53                   	push   %ebx
40e14d:	8b 5d 18             	mov    0x18(%ebp),%ebx
40e150:	8b 43 04             	mov    0x4(%ebx),%eax
40e153:	3d 80 00 00 00       	cmp    $0x80,%eax
40e158:	56                   	push   %esi
40e159:	57                   	push   %edi
40e15a:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40e15e:	7f 06                	jg     0x40e166
40e160:	0f be 49 08          	movsbl 0x8(%ecx),%ecx
40e164:	eb 03                	jmp    0x40e169
40e166:	8b 49 08             	mov    0x8(%ecx),%ecx
40e169:	83 f9 ff             	cmp    $0xffffffff,%ecx
40e16c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40e16f:	7c 04                	jl     0x40e175
40e171:	3b c8                	cmp    %eax,%ecx
40e173:	7c 05                	jl     0x40e17a
40e175:	e8 5d 04 00 00       	call   0x40e5d7
40e17a:	8b 75 08             	mov    0x8(%ebp),%esi
40e17d:	bf 63 73 6d e0       	mov    $0xe06d7363,%edi
40e182:	39 3e                	cmp    %edi,(%esi)
40e184:	0f 85 ba 02 00 00    	jne    0x40e444
40e18a:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
40e18e:	bb 20 05 93 19       	mov    $0x19930520,%ebx
40e193:	0f 85 18 01 00 00    	jne    0x40e2b1
40e199:	8b 46 14             	mov    0x14(%esi),%eax
40e19c:	3b c3                	cmp    %ebx,%eax
40e19e:	74 12                	je     0x40e1b2
40e1a0:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40e1a5:	74 0b                	je     0x40e1b2
40e1a7:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40e1ac:	0f 85 ff 00 00 00    	jne    0x40e2b1
40e1b2:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
40e1b6:	0f 85 f5 00 00 00    	jne    0x40e2b1
40e1bc:	e8 80 c8 ff ff       	call   0x40aa41
40e1c1:	83 b8 88 00 00 00 00 	cmpl   $0x0,0x88(%eax)
40e1c8:	0f 84 b5 02 00 00    	je     0x40e483
40e1ce:	e8 6e c8 ff ff       	call   0x40aa41
40e1d3:	8b b0 88 00 00 00    	mov    0x88(%eax),%esi
40e1d9:	89 75 08             	mov    %esi,0x8(%ebp)
40e1dc:	e8 60 c8 ff ff       	call   0x40aa41
40e1e1:	8b 80 8c 00 00 00    	mov    0x8c(%eax),%eax
40e1e7:	6a 01                	push   $0x1
40e1e9:	56                   	push   %esi
40e1ea:	89 45 10             	mov    %eax,0x10(%ebp)
40e1ed:	e8 66 77 00 00       	call   0x415958
40e1f2:	59                   	pop    %ecx
40e1f3:	59                   	pop    %ecx
40e1f4:	85 c0                	test   %eax,%eax
40e1f6:	75 05                	jne    0x40e1fd
40e1f8:	e8 da 03 00 00       	call   0x40e5d7
40e1fd:	39 3e                	cmp    %edi,(%esi)
40e1ff:	75 26                	jne    0x40e227
40e201:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
40e205:	75 20                	jne    0x40e227
40e207:	8b 46 14             	mov    0x14(%esi),%eax
40e20a:	3b c3                	cmp    %ebx,%eax
40e20c:	74 0e                	je     0x40e21c
40e20e:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40e213:	74 07                	je     0x40e21c
40e215:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40e21a:	75 0b                	jne    0x40e227
40e21c:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
40e220:	75 05                	jne    0x40e227
40e222:	e8 b0 03 00 00       	call   0x40e5d7
40e227:	e8 15 c8 ff ff       	call   0x40aa41
40e22c:	83 b8 94 00 00 00 00 	cmpl   $0x0,0x94(%eax)
40e233:	74 7c                	je     0x40e2b1
40e235:	e8 07 c8 ff ff       	call   0x40aa41
40e23a:	8b b8 94 00 00 00    	mov    0x94(%eax),%edi
40e240:	e8 fc c7 ff ff       	call   0x40aa41
40e245:	ff 75 08             	push   0x8(%ebp)
40e248:	33 f6                	xor    %esi,%esi
40e24a:	89 b0 94 00 00 00    	mov    %esi,0x94(%eax)
40e250:	e8 19 f9 ff ff       	call   0x40db6e
40e255:	59                   	pop    %ecx
40e256:	84 c0                	test   %al,%al
40e258:	75 4f                	jne    0x40e2a9
40e25a:	33 db                	xor    %ebx,%ebx
40e25c:	39 1f                	cmp    %ebx,(%edi)
40e25e:	7e 1d                	jle    0x40e27d
40e260:	8b 47 04             	mov    0x4(%edi),%eax
40e263:	8b 4c 03 04          	mov    0x4(%ebx,%eax,1),%ecx
40e267:	68 9c b8 42 00       	push   $0x42b89c
40e26c:	e8 de 74 ff ff       	call   0x40574f
40e271:	84 c0                	test   %al,%al
40e273:	75 0d                	jne    0x40e282
40e275:	46                   	inc    %esi
40e276:	83 c3 10             	add    $0x10,%ebx
40e279:	3b 37                	cmp    (%edi),%esi
40e27b:	7c e3                	jl     0x40e260
40e27d:	e8 09 03 00 00       	call   0x40e58b
40e282:	6a 01                	push   $0x1
40e284:	ff 75 08             	push   0x8(%ebp)
40e287:	e8 64 f8 ff ff       	call   0x40daf0
40e28c:	59                   	pop    %ecx
40e28d:	59                   	pop    %ecx
40e28e:	68 e8 cb 41 00       	push   $0x41cbe8
40e293:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40e296:	e8 37 f6 ff ff       	call   0x40d8d2
40e29b:	68 14 99 42 00       	push   $0x429914
40e2a0:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40e2a3:	50                   	push   %eax
40e2a4:	e8 09 84 ff ff       	call   0x4066b2
40e2a9:	8b 75 08             	mov    0x8(%ebp),%esi
40e2ac:	bf 63 73 6d e0       	mov    $0xe06d7363,%edi
40e2b1:	39 3e                	cmp    %edi,(%esi)
40e2b3:	0f 85 88 01 00 00    	jne    0x40e441
40e2b9:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
40e2bd:	0f 85 7e 01 00 00    	jne    0x40e441