404ef8:	8b 01                	mov    (%ecx),%eax
404efa:	a8 10                	test   $0x10,%al
404efc:	75 3b                	jne    0x404f39
404efe:	a8 40                	test   $0x40,%al
404f00:	74 11                	je     0x404f13
404f02:	35 80 00 00 00       	xor    $0x80,%eax
404f07:	84 c0                	test   %al,%al
404f09:	79 04                	jns    0x404f0f
404f0b:	0c 01                	or     $0x1,%al
404f0d:	eb 07                	jmp    0x404f16
404f0f:	24 fe                	and    $0xfe,%al
404f11:	eb 03                	jmp    0x404f16
404f13:	83 f0 01             	xor    $0x1,%eax
404f16:	57                   	push   %edi
404f17:	89 01                	mov    %eax,(%ecx)
404f19:	e8 5f c2 ff ff       	call   0x40117d
404f1e:	a1 3c f4 42 00       	mov    0x42f43c,%eax
404f23:	47                   	inc    %edi
404f24:	f7 d0                	not    %eax
404f26:	c1 e8 08             	shr    $0x8,%eax
404f29:	83 e0 01             	and    $0x1,%eax
404f2c:	89 7d 10             	mov    %edi,0x10(%ebp)
404f2f:	89 45 14             	mov    %eax,0x14(%ebp)
404f32:	c7 45 0c 0f 04 00 00 	movl   $0x40f,0xc(%ebp)
404f39:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
404f3c:	74 4e                	je     0x404f8c
404f3e:	8b 45 f4             	mov    -0xc(%ebp),%eax
404f41:	81 78 08 6e fe ff ff 	cmpl   $0xfffffe6e,0x8(%eax)
404f48:	75 0e                	jne    0x404f58
404f4a:	ff 70 5c             	push   0x5c(%eax)
404f4d:	53                   	push   %ebx
404f4e:	68 19 04 00 00       	push   $0x419
404f53:	ff 75 fc             	push   -0x4(%ebp)
404f56:	ff d6                	call   *%esi
404f58:	8b 45 f4             	mov    -0xc(%ebp),%eax
404f5b:	81 78 08 6a fe ff ff 	cmpl   $0xfffffe6a,0x8(%eax)
404f62:	75 28                	jne    0x404f8c
404f64:	83 78 0c 02          	cmpl   $0x2,0xc(%eax)
404f68:	8b 4d ec             	mov    -0x14(%ebp),%ecx
404f6b:	8b 40 5c             	mov    0x5c(%eax),%eax
404f6e:	75 0f                	jne    0x404f7f
404f70:	69 c0 18 04 00 00    	imul   $0x418,%eax,%eax
404f76:	8d 44 08 08          	lea    0x8(%eax,%ecx,1),%eax
404f7a:	83 08 20             	orl    $0x20,(%eax)
404f7d:	eb 0d                	jmp    0x404f8c
404f7f:	69 c0 18 04 00 00    	imul   $0x418,%eax,%eax
404f85:	8d 44 08 08          	lea    0x8(%eax,%ecx,1),%eax
404f89:	83 20 df             	andl   $0xffffffdf,(%eax)
404f8c:	81 7d 0c 11 01 00 00 	cmpl   $0x111,0xc(%ebp)
404f93:	75 6f                	jne    0x405004
404f95:	66 81 7d 10 f9 03    	cmpw   $0x3f9,0x10(%ebp)
404f9b:	0f 85 4b 02 00 00    	jne    0x4051ec
404fa1:	8b 45 10             	mov    0x10(%ebp),%eax
404fa4:	c1 e8 10             	shr    $0x10,%eax
404fa7:	66 3d 01 00          	cmp    $0x1,%ax
404fab:	0f 85 3b 02 00 00    	jne    0x4051ec
404fb1:	53                   	push   %ebx
404fb2:	53                   	push   %ebx
404fb3:	68 47 01 00 00       	push   $0x147
404fb8:	ff 75 f8             	push   -0x8(%ebp)
404fbb:	ff d6                	call   *%esi
404fbd:	83 f8 ff             	cmp    $0xffffffff,%eax
404fc0:	0f 84 26 02 00 00    	je     0x4051ec
404fc6:	53                   	push   %ebx
404fc7:	50                   	push   %eax
404fc8:	68 50 01 00 00       	push   $0x150
404fcd:	ff 75 f8             	push   -0x8(%ebp)
404fd0:	ff d6                	call   *%esi
404fd2:	8b f8                	mov    %eax,%edi
404fd4:	83 ff ff             	cmp    $0xffffffff,%edi
404fd7:	74 08                	je     0x404fe1
404fd9:	8b 45 e8             	mov    -0x18(%ebp),%eax
404fdc:	39 1c b8             	cmp    %ebx,(%eax,%edi,4)
404fdf:	75 03                	jne    0x404fe4
404fe1:	6a 20                	push   $0x20
404fe3:	5f                   	pop    %edi
404fe4:	57                   	push   %edi
404fe5:	e8 af c2 ff ff       	call   0x401299
404fea:	57                   	push   %edi
404feb:	53                   	push   %ebx
404fec:	68 20 04 00 00       	push   $0x420
404ff1:	ff 75 08             	push   0x8(%ebp)
404ff4:	ff d6                	call   *%esi
404ff6:	83 4d 10 ff          	orl    $0xffffffff,0x10(%ebp)
404ffa:	89 5d 14             	mov    %ebx,0x14(%ebp)
404ffd:	c7 45 0c 0f 04 00 00 	movl   $0x40f,0xc(%ebp)
405004:	b8 00 02 00 00       	mov    $0x200,%eax
405009:	39 45 0c             	cmp    %eax,0xc(%ebp)
40500c:	75 08                	jne    0x405016
40500e:	53                   	push   %ebx
40500f:	53                   	push   %ebx
405010:	50                   	push   %eax
405011:	ff 75 fc             	push   -0x4(%ebp)
405014:	ff d6                	call   *%esi
405016:	81 7d 0c 0b 04 00 00 	cmpl   $0x40b,0xc(%ebp)
40501d:	75 32                	jne    0x405051
40501f:	a1 7c a8 42 00       	mov    0x42a87c,%eax
405024:	3b c3                	cmp    %ebx,%eax
405026:	74 07                	je     0x40502f
405028:	50                   	push   %eax
405029:	ff 15 44 80 40 00    	call   *0x408044
40502f:	a1 90 a8 42 00       	mov    0x42a890,%eax
405034:	3b c3                	cmp    %ebx,%eax
405036:	74 07                	je     0x40503f
405038:	50                   	push   %eax
405039:	ff 15 5c 81 40 00    	call   *0x40815c
40503f:	89 1d 7c a8 42 00    	mov    %ebx,0x42a87c
405045:	89 1d 90 a8 42 00    	mov    %ebx,0x42a890
40504b:	89 1d a0 f4 42 00    	mov    %ebx,0x42f4a0
405051:	81 7d 0c 0f 04 00 00 	cmpl   $0x40f,0xc(%ebp)
405058:	0f 85 50 01 00 00    	jne    0x4051ae
40505e:	53                   	push   %ebx
40505f:	53                   	push   %ebx
405060:	e8 8a c1 ff ff       	call   0x4011ef
405065:	8b 45 10             	mov    0x10(%ebp),%eax
405068:	3b c3                	cmp    %ebx,%eax
40506a:	74 0e                	je     0x40507a
40506c:	83 f8 ff             	cmp    $0xffffffff,%eax
40506f:	74 01                	je     0x405072
405071:	48                   	dec    %eax
405072:	50                   	push   %eax
405073:	6a 08                	push   $0x8
405075:	e8 4d fb ff ff       	call   0x404bc7
40507a:	39 5d 14             	cmp    %ebx,0x14(%ebp)
40507d:	74 3f                	je     0x4050be
40507f:	ff 35 90 a8 42 00    	push   0x42a890
405085:	e8 58 c2 ff ff       	call   0x4012e2
40508a:	8b f8                	mov    %eax,%edi
40508c:	57                   	push   %edi
40508d:	e8 07 c2 ff ff       	call   0x401299
405092:	33 c0                	xor    %eax,%eax
405094:	33 c9                	xor    %ecx,%ecx
405096:	3b fb                	cmp    %ebx,%edi
405098:	7e 0e                	jle    0x4050a8
40509a:	8b 55 e8             	mov    -0x18(%ebp),%edx
40509d:	39 1c 82             	cmp    %ebx,(%edx,%eax,4)
4050a0:	74 01                	je     0x4050a3
4050a2:	41                   	inc    %ecx
4050a3:	40                   	inc    %eax
4050a4:	3b c7                	cmp    %edi,%eax
4050a6:	7c f2                	jl     0x40509a
4050a8:	53                   	push   %ebx
4050a9:	51                   	push   %ecx
4050aa:	68 4e 01 00 00       	push   $0x14e
4050af:	ff 75 f8             	push   -0x8(%ebp)
4050b2:	ff d6                	call   *%esi
4050b4:	89 7d 14             	mov    %edi,0x14(%ebp)
4050b7:	c7 45 0c 20 04 00 00 	movl   $0x420,0xc(%ebp)
4050be:	53                   	push   %ebx
4050bf:	53                   	push   %ebx
4050c0:	e8 2a c1 ff ff       	call   0x4011ef
4050c5:	a1 90 a8 42 00       	mov    0x42a890,%eax
4050ca:	39 1d 6c f4 42 00    	cmp    %ebx,0x42f46c
4050d0:	89 45 e0             	mov    %eax,-0x20(%ebp)
4050d3:	a1 68 f4 42 00       	mov    0x42f468,%eax
4050d8:	c7 45 c4 30 f0 00 00 	movl   $0xf030,-0x3c(%ebp)
4050df:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4050e2:	0f 8e 9c 00 00 00    	jle    0x405184
4050e8:	8d 78 08             	lea    0x8(%eax),%edi
4050eb:	8b 45 e0             	mov    -0x20(%ebp),%eax
4050ee:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4050f1:	8b 04 88             	mov    (%eax,%ecx,4),%eax
4050f4:	3b c3                	cmp    %ebx,%eax
4050f6:	74 74                	je     0x40516c
4050f8:	8b 0f                	mov    (%edi),%ecx
4050fa:	89 45 bc             	mov    %eax,-0x44(%ebp)
4050fd:	f6 c5 01             	test   $0x1,%ch
405100:	c7 45 b8 08 00 00 00 	movl   $0x8,-0x48(%ebp)
405107:	74 11                	je     0x40511a
405109:	8d 47 10             	lea    0x10(%edi),%eax
40510c:	c7 45 b8 09 00 00 00 	movl   $0x9,-0x48(%ebp)
405113:	89 45 c8             	mov    %eax,-0x38(%ebp)
405116:	80 67 01 fe          	andb   $0xfe,0x1(%edi)
40511a:	f6 c1 40             	test   $0x40,%cl
40511d:	74 05                	je     0x405124
40511f:	6a 03                	push   $0x3
405121:	58                   	pop    %eax
405122:	eb 0e                	jmp    0x405132
405124:	8b c1                	mov    %ecx,%eax
405126:	83 e0 01             	and    $0x1,%eax
405129:	40                   	inc    %eax
40512a:	f6 c1 10             	test   $0x10,%cl
40512d:	74 03                	je     0x405132
40512f:	83 c0 03             	add    $0x3,%eax
405132:	8b d1                	mov    %ecx,%edx
405134:	ff 75 bc             	push   -0x44(%ebp)
405137:	c1 e0 0b             	shl    $0xb,%eax
40513a:	83 e2 08             	and    $0x8,%edx
40513d:	0b c2                	or     %edx,%eax
40513f:	8b d1                	mov    %ecx,%edx
405141:	c1 f9 05             	sar    $0x5,%ecx
405144:	03 c0                	add    %eax,%eax
405146:	83 e2 20             	and    $0x20,%edx
405149:	83 e1 01             	and    $0x1,%ecx
40514c:	0b c2                	or     %edx,%eax
40514e:	41                   	inc    %ecx
40514f:	89 45 c0             	mov    %eax,-0x40(%ebp)
405152:	51                   	push   %ecx
405153:	68 02 11 00 00       	push   $0x1102
405158:	ff 75 fc             	push   -0x4(%ebp)
40515b:	ff d6                	call   *%esi
40515d:	8d 45 b8             	lea    -0x48(%ebp),%eax
405160:	50                   	push   %eax
405161:	53                   	push   %ebx
405162:	68 0d 11 00 00       	push   $0x110d
405167:	ff 75 fc             	push   -0x4(%ebp)
40516a:	ff d6                	call   *%esi
40516c:	ff 45 ec             	incl   -0x14(%ebp)
40516f:	81 c7 18 04 00 00    	add    $0x418,%edi
405175:	8b 45 ec             	mov    -0x14(%ebp),%eax
405178:	3b 05 6c f4 42 00    	cmp    0x42f46c,%eax
40517e:	0f 8c 67 ff ff ff    	jl     0x4050eb
405184:	6a 01                	push   $0x1
405186:	53                   	push   %ebx
405187:	ff 75 fc             	push   -0x4(%ebp)
40518a:	ff 15 fc 81 40 00    	call   *0x4081fc
405190:	a1 fc eb 42 00       	mov    0x42ebfc,%eax
405195:	39 58 10             	cmp    %ebx,0x10(%eax)
405198:	74 14                	je     0x4051ae
40519a:	6a 05                	push   $0x5
40519c:	e8 79 f9 ff ff       	call   0x404b1a
4051a1:	50                   	push   %eax
4051a2:	6a fb                	push   $0xfffffffb
4051a4:	68 ff 03 00 00       	push   $0x3ff
4051a9:	e8 54 f9 ff ff       	call   0x404b02
4051ae:	81 7d 0c 20 04 00 00 	cmpl   $0x420,0xc(%ebp)
4051b5:	75 35                	jne    0x4051ec
4051b7:	f6 05 3d f4 42 00 01 	testb  $0x1,0x42f43d
4051be:	74 2c                	je     0x4051ec
4051c0:	33 c0                	xor    %eax,%eax
4051c2:	83 7d 14 20          	cmpl   $0x20,0x14(%ebp)
4051c6:	8b 35 48 82 40 00    	mov    0x408248,%esi
4051cc:	0f 94 c0             	sete   %al
4051cf:	c1 e0 03             	shl    $0x3,%eax
4051d2:	8b f8                	mov    %eax,%edi
4051d4:	57                   	push   %edi
4051d5:	ff 75 fc             	push   -0x4(%ebp)
4051d8:	ff d6                	call   *%esi
4051da:	57                   	push   %edi
4051db:	68 fe 03 00 00       	push   $0x3fe
4051e0:	ff 75 08             	push   0x8(%ebp)
4051e3:	ff 15 d0 81 40 00    	call   *0x4081d0
4051e9:	50                   	push   %eax
4051ea:	ff d6                	call   *%esi
4051ec:	ff 75 14             	push   0x14(%ebp)
4051ef:	ff 75 10             	push   0x10(%ebp)
4051f2:	ff 75 0c             	push   0xc(%ebp)
4051f5:	e8 61 f0 ff ff       	call   0x40425b
4051fa:	5f                   	pop    %edi
4051fb:	5e                   	pop    %esi
4051fc:	5b                   	pop    %ebx
4051fd:	c9                   	leave
4051fe:	c2 10 00             	ret    $0x10
405201:	55                   	push   %ebp
405202:	8b ec                	mov    %esp,%ebp
405204:	53                   	push   %ebx
405205:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405208:	81 fb 02 01 00 00    	cmp    $0x102,%ebx
40520e:	57                   	push   %edi
40520f:	75 14                	jne    0x405225
405211:	83 7d 10 20          	cmpl   $0x20,0x10(%ebp)
405215:	75 59                	jne    0x405270
405217:	68 13 04 00 00       	push   $0x413
40521c:	e8 1f f0 ff ff       	call   0x404240
405221:	33 c0                	xor    %eax,%eax
405223:	eb 62                	jmp    0x405287
405225:	81 fb 00 02 00 00    	cmp    $0x200,%ebx
40522b:	75 20                	jne    0x40524d
40522d:	ff 75 08             	push   0x8(%ebp)
405230:	ff 15 b4 81 40 00    	call   *0x4081b4
405236:	85 c0                	test   %eax,%eax
405238:	74 36                	je     0x405270
40523a:	6a 01                	push   $0x1
40523c:	ff 75 08             	push   0x8(%ebp)
40523f:	e8 03 f9 ff ff       	call   0x404b47
405244:	8b f8                	mov    %eax,%edi
405246:	bb 19 04 00 00       	mov    $0x419,%ebx
40524b:	eb 03                	jmp    0x405250
40524d:	8b 7d 14             	mov    0x14(%ebp),%edi
405250:	81 fb 19 04 00 00    	cmp    $0x419,%ebx
405256:	75 1b                	jne    0x405273
405258:	39 3d 84 a8 42 00    	cmp    %edi,0x42a884
40525e:	74 13                	je     0x405273
405260:	57                   	push   %edi
405261:	6a 06                	push   $0x6
405263:	89 3d 84 a8 42 00    	mov    %edi,0x42a884
405269:	e8 59 f9 ff ff       	call   0x404bc7
40526e:	eb 03                	jmp    0x405273
405270:	8b 7d 14             	mov    0x14(%ebp),%edi
405273:	57                   	push   %edi
405274:	ff 75 10             	push   0x10(%ebp)
405277:	53                   	push   %ebx
405278:	ff 75 08             	push   0x8(%ebp)
40527b:	ff 35 8c a8 42 00    	push   0x42a88c
405281:	ff 15 b0 81 40 00    	call   *0x4081b0
405287:	5f                   	pop    %edi
405288:	5b                   	pop    %ebx
405289:	5d                   	pop    %ebp
40528a:	c2 10 00             	ret    $0x10
40528d:	55                   	push   %ebp
40528e:	8b ec                	mov    %esp,%ebp
405290:	83 ec 30             	sub    $0x30,%esp
405293:	a1 04 ec 42 00       	mov    0x42ec04,%eax
405298:	53                   	push   %ebx
405299:	33 db                	xor    %ebx,%ebx
40529b:	56                   	push   %esi
40529c:	3b c3                	cmp    %ebx,%eax
40529e:	57                   	push   %edi
40529f:	89 45 fc             	mov    %eax,-0x4(%ebp)
4052a2:	0f 84 b0 00 00 00    	je     0x405358
4052a8:	a1 f4 f4 42 00       	mov    0x42f4f4,%eax
4052ad:	be 78 a0 42 00       	mov    $0x42a078,%esi
4052b2:	8b f8                	mov    %eax,%edi
4052b4:	89 45 f8             	mov    %eax,-0x8(%ebp)
4052b7:	83 e7 01             	and    $0x1,%edi
4052ba:	75 09                	jne    0x4052c5
4052bc:	ff 75 08             	push   0x8(%ebp)
4052bf:	56                   	push   %esi
4052c0:	e8 c3 0e 00 00       	call   0x406188
4052c5:	56                   	push   %esi
4052c6:	e8 b1 0e 00 00       	call   0x40617c
4052cb:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
4052ce:	89 45 08             	mov    %eax,0x8(%ebp)
4052d1:	74 1b                	je     0x4052ee
4052d3:	ff 75 0c             	push   0xc(%ebp)
4052d6:	e8 a1 0e 00 00       	call   0x40617c
4052db:	03 45 08             	add    0x8(%ebp),%eax
4052de:	3d 00 08 00 00       	cmp    $0x800,%eax
4052e3:	73 73                	jae    0x405358
4052e5:	ff 75 0c             	push   0xc(%ebp)
4052e8:	56                   	push   %esi
4052e9:	e8 94 0e 00 00       	call   0x406182
4052ee:	f6 45 f8 04          	testb  $0x4,-0x8(%ebp)
4052f2:	75 0d                	jne    0x405301
4052f4:	56                   	push   %esi
4052f5:	ff 35 e8 eb 42 00    	push   0x42ebe8
4052fb:	ff 15 40 82 40 00    	call   *0x408240
405301:	f6 45 f8 02          	testb  $0x2,-0x8(%ebp)
405305:	75 44                	jne    0x40534b
405307:	53                   	push   %ebx
405308:	53                   	push   %ebx
405309:	68 04 10 00 00       	push   $0x1004
40530e:	89 75 e4             	mov    %esi,-0x1c(%ebp)
405311:	ff 75 fc             	push   -0x4(%ebp)
405314:	8b 35 00 82 40 00    	mov    0x408200,%esi
40531a:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%ebp)
405321:	ff d6                	call   *%esi
405323:	2b c7                	sub    %edi,%eax
405325:	89 5d d8             	mov    %ebx,-0x28(%ebp)
405328:	89 45 d4             	mov    %eax,-0x2c(%ebp)