401e4b:	e8 71 40 00 00       	call   0x405ec1
401e50:	6a 64                	push   $0x64
401e52:	ff 75 08             	push   0x8(%ebp)
401e55:	ff d6                	call   *%esi
401e57:	3d 02 01 00 00       	cmp    $0x102,%eax
401e5c:	74 eb                	je     0x401e49
401e5e:	8d 45 f8             	lea    -0x8(%ebp),%eax
401e61:	50                   	push   %eax
401e62:	ff 75 08             	push   0x8(%ebp)
401e65:	ff 15 08 71 40 00    	call   *0x407108
401e6b:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
401e6e:	7c 0b                	jl     0x401e7b
401e70:	ff 75 f8             	push   -0x8(%ebp)
401e73:	57                   	push   %edi
401e74:	e8 4b 3c 00 00       	call   0x405ac4
401e79:	eb 0c                	jmp    0x401e87
401e7b:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
401e7e:	74 07                	je     0x401e87
401e80:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401e87:	ff 75 08             	push   0x8(%ebp)
401e8a:	ff 15 ec 70 40 00    	call   *0x4070ec
401e90:	e9 f6 09 00 00       	jmp    0x40288b
401e95:	6a 02                	push   $0x2
401e97:	e8 5a 0b 00 00       	call   0x4029f6
401e9c:	50                   	push   %eax
401e9d:	e8 bf 3f 00 00       	call   0x405e61
401ea2:	3b c3                	cmp    %ebx,%eax
401ea4:	89 45 08             	mov    %eax,0x8(%ebp)
401ea7:	74 13                	je     0x401ebc
401ea9:	8b d8                	mov    %eax,%ebx
401eab:	ff 73 14             	push   0x14(%ebx)
401eae:	57                   	push   %edi
401eaf:	e8 10 3c 00 00       	call   0x405ac4
401eb4:	ff 73 18             	push   0x18(%ebx)
401eb7:	e9 a5 f6 ff ff       	jmp    0x401561
401ebc:	88 1e                	mov    %bl,(%esi)
401ebe:	88 1f                	mov    %bl,(%edi)
401ec0:	e9 97 07 00 00       	jmp    0x40265c
401ec5:	6a ee                	push   $0xffffffee
401ec7:	e8 2a 0b 00 00       	call   0x4029f6
401ecc:	8d 4d d0             	lea    -0x30(%ebp),%ecx
401ecf:	89 45 d4             	mov    %eax,-0x2c(%ebp)
401ed2:	51                   	push   %ecx
401ed3:	50                   	push   %eax
401ed4:	e8 7b 4b 00 00       	call   0x406a54
401ed9:	88 1e                	mov    %bl,(%esi)
401edb:	3b c3                	cmp    %ebx,%eax
401edd:	89 45 f8             	mov    %eax,-0x8(%ebp)
401ee0:	88 1f                	mov    %bl,(%edi)
401ee2:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401ee9:	0f 84 9c 09 00 00    	je     0x40288b
401eef:	50                   	push   %eax
401ef0:	6a 40                	push   $0x40
401ef2:	ff 15 00 71 40 00    	call   *0x407100
401ef8:	3b c3                	cmp    %ebx,%eax
401efa:	89 45 08             	mov    %eax,0x8(%ebp)
401efd:	0f 84 88 09 00 00    	je     0x40288b
401f03:	50                   	push   %eax
401f04:	ff 75 f8             	push   -0x8(%ebp)
401f07:	53                   	push   %ebx
401f08:	ff 75 d4             	push   -0x2c(%ebp)
401f0b:	e8 3e 4b 00 00       	call   0x406a4e
401f10:	85 c0                	test   %eax,%eax
401f12:	74 34                	je     0x401f48
401f14:	8d 45 bc             	lea    -0x44(%ebp),%eax
401f17:	50                   	push   %eax
401f18:	8d 45 cc             	lea    -0x34(%ebp),%eax
401f1b:	50                   	push   %eax
401f1c:	68 10 90 40 00       	push   $0x409010
401f21:	ff 75 08             	push   0x8(%ebp)
401f24:	e8 1f 4b 00 00       	call   0x406a48
401f29:	85 c0                	test   %eax,%eax
401f2b:	74 1b                	je     0x401f48
401f2d:	8b 45 cc             	mov    -0x34(%ebp),%eax
401f30:	ff 70 08             	push   0x8(%eax)
401f33:	56                   	push   %esi
401f34:	e8 8b 3b 00 00       	call   0x405ac4
401f39:	8b 45 cc             	mov    -0x34(%ebp),%eax
401f3c:	ff 70 0c             	push   0xc(%eax)
401f3f:	57                   	push   %edi
401f40:	e8 7f 3b 00 00       	call   0x405ac4
401f45:	89 5d fc             	mov    %ebx,-0x4(%ebp)
401f48:	ff 75 08             	push   0x8(%ebp)
401f4b:	e9 25 fc ff ff       	jmp    0x401b75
401f50:	39 1d 58 3f 42 00    	cmp    %ebx,0x423f58
401f56:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401f5d:	0f 8c b6 00 00 00    	jl     0x402019
401f63:	6a f0                	push   $0xfffffff0
401f65:	e8 8c 0a 00 00       	call   0x4029f6
401f6a:	6a 01                	push   $0x1
401f6c:	8b f0                	mov    %eax,%esi
401f6e:	e8 83 0a 00 00       	call   0x4029f6
401f73:	39 5d ec             	cmp    %ebx,-0x14(%ebp)
401f76:	89 45 08             	mov    %eax,0x8(%ebp)
401f79:	74 0d                	je     0x401f88
401f7b:	56                   	push   %esi
401f7c:	ff 15 0c 71 40 00    	call   *0x40710c
401f82:	8b f8                	mov    %eax,%edi
401f84:	3b fb                	cmp    %ebx,%edi
401f86:	75 10                	jne    0x401f98
401f88:	6a 08                	push   $0x8
401f8a:	53                   	push   %ebx
401f8b:	56                   	push   %esi
401f8c:	ff 15 10 71 40 00    	call   *0x407110
401f92:	8b f8                	mov    %eax,%edi
401f94:	3b fb                	cmp    %ebx,%edi
401f96:	74 7a                	je     0x402012
401f98:	ff 75 08             	push   0x8(%ebp)
401f9b:	57                   	push   %edi
401f9c:	ff 15 14 71 40 00    	call   *0x407114
401fa2:	8b f0                	mov    %eax,%esi
401fa4:	3b f3                	cmp    %ebx,%esi
401fa6:	74 3d                	je     0x401fe5
401fa8:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
401fab:	89 5d fc             	mov    %ebx,-0x4(%ebp)
401fae:	74 17                	je     0x401fc7
401fb0:	ff 75 e4             	push   -0x1c(%ebp)
401fb3:	e8 6b f4 ff ff       	call   0x401423
401fb8:	ff d6                	call   *%esi
401fba:	85 c0                	test   %eax,%eax
401fbc:	74 31                	je     0x401fef
401fbe:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401fc5:	eb 28                	jmp    0x401fef
401fc7:	68 00 90 40 00       	push   $0x409000
401fcc:	68 70 af 40 00       	push   $0x40af70
401fd1:	68 00 40 42 00       	push   $0x424000
401fd6:	68 00 04 00 00       	push   $0x400
401fdb:	ff 75 cc             	push   -0x34(%ebp)
401fde:	ff d6                	call   *%esi
401fe0:	83 c4 14             	add    $0x14,%esp
401fe3:	eb 0a                	jmp    0x401fef
401fe5:	ff 75 08             	push   0x8(%ebp)
401fe8:	6a f7                	push   $0xfffffff7
401fea:	e8 15 2f 00 00       	call   0x404f04
401fef:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
401ff2:	0f 85 93 08 00 00    	jne    0x40288b
401ff8:	57                   	push   %edi
401ff9:	e8 51 16 00 00       	call   0x40364f
401ffe:	85 c0                	test   %eax,%eax
402000:	0f 84 85 08 00 00    	je     0x40288b
402006:	57                   	push   %edi
402007:	ff 15 18 71 40 00    	call   *0x407118
40200d:	e9 79 08 00 00       	jmp    0x40288b
402012:	6a f6                	push   $0xfffffff6
402014:	e9 4b 01 00 00       	jmp    0x402164
402019:	6a e7                	push   $0xffffffe7
40201b:	e9 44 01 00 00       	jmp    0x402164
402020:	6a f0                	push   $0xfffffff0
402022:	e8 cf 09 00 00       	call   0x4029f6
402027:	6a df                	push   $0xffffffdf
402029:	89 45 d0             	mov    %eax,-0x30(%ebp)
40202c:	e8 c5 09 00 00       	call   0x4029f6
402031:	6a 02                	push   $0x2
402033:	8b f0                	mov    %eax,%esi
402035:	e8 bc 09 00 00       	call   0x4029f6
40203a:	6a cd                	push   $0xffffffcd
40203c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40203f:	e8 b2 09 00 00       	call   0x4029f6
402044:	6a 45                	push   $0x45
402046:	89 45 f8             	mov    %eax,-0x8(%ebp)
402049:	e8 a8 09 00 00       	call   0x4029f6
40204e:	56                   	push   %esi
40204f:	89 45 bc             	mov    %eax,-0x44(%ebp)
402052:	e8 6f 36 00 00       	call   0x4056c6
402057:	85 c0                	test   %eax,%eax
402059:	75 07                	jne    0x402062
40205b:	6a 21                	push   $0x21
40205d:	e8 94 09 00 00       	call   0x4029f6
402062:	8d 45 08             	lea    0x8(%ebp),%eax
402065:	50                   	push   %eax
402066:	68 74 73 40 00       	push   $0x407374
40206b:	6a 01                	push   $0x1
40206d:	53                   	push   %ebx
40206e:	68 84 73 40 00       	push   $0x407384
402073:	ff 15 84 72 40 00    	call   *0x407284
402079:	3b c3                	cmp    %ebx,%eax
40207b:	0f 8c da 00 00 00    	jl     0x40215b
402081:	8b 45 08             	mov    0x8(%ebp),%eax
402084:	8d 55 cc             	lea    -0x34(%ebp),%edx
402087:	52                   	push   %edx
402088:	68 94 73 40 00       	push   $0x407394
40208d:	8b 08                	mov    (%eax),%ecx
40208f:	50                   	push   %eax
402090:	ff 11                	call   *(%ecx)
402092:	8b f8                	mov    %eax,%edi
402094:	3b fb                	cmp    %ebx,%edi
402096:	0f 8c b2 00 00 00    	jl     0x40214e
40209c:	8b 45 08             	mov    0x8(%ebp),%eax
40209f:	56                   	push   %esi
4020a0:	50                   	push   %eax
4020a1:	8b 08                	mov    (%eax),%ecx
4020a3:	ff 51 50             	call   *0x50(%ecx)
4020a6:	8b f8                	mov    %eax,%edi
4020a8:	8b 45 08             	mov    0x8(%ebp),%eax
4020ab:	68 00 98 42 00       	push   $0x429800
4020b0:	50                   	push   %eax
4020b1:	8b 08                	mov    (%eax),%ecx
4020b3:	ff 51 24             	call   *0x24(%ecx)
4020b6:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4020b9:	be ff 00 00 00       	mov    $0xff,%esi
4020be:	8b c1                	mov    %ecx,%eax
4020c0:	c1 f8 08             	sar    $0x8,%eax
4020c3:	23 c6                	and    %esi,%eax
4020c5:	74 0d                	je     0x4020d4
4020c7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4020ca:	50                   	push   %eax
4020cb:	51                   	push   %ecx
4020cc:	8b 11                	mov    (%ecx),%edx
4020ce:	ff 52 3c             	call   *0x3c(%edx)
4020d1:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4020d4:	8b 45 08             	mov    0x8(%ebp),%eax
4020d7:	c1 f9 10             	sar    $0x10,%ecx
4020da:	8b 10                	mov    (%eax),%edx
4020dc:	51                   	push   %ecx
4020dd:	50                   	push   %eax
4020de:	ff 52 34             	call   *0x34(%edx)
4020e1:	8b 45 f8             	mov    -0x8(%ebp),%eax
4020e4:	38 18                	cmp    %bl,(%eax)
4020e6:	74 12                	je     0x4020fa
4020e8:	8b 55 ec             	mov    -0x14(%ebp),%edx
4020eb:	8b 45 08             	mov    0x8(%ebp),%eax
4020ee:	23 d6                	and    %esi,%edx
4020f0:	8b 08                	mov    (%eax),%ecx
4020f2:	52                   	push   %edx
4020f3:	ff 75 f8             	push   -0x8(%ebp)
4020f6:	50                   	push   %eax
4020f7:	ff 51 44             	call   *0x44(%ecx)
4020fa:	8b 45 08             	mov    0x8(%ebp),%eax
4020fd:	ff 75 d4             	push   -0x2c(%ebp)
402100:	8b 08                	mov    (%eax),%ecx
402102:	50                   	push   %eax
402103:	ff 51 2c             	call   *0x2c(%ecx)
402106:	8b 45 08             	mov    0x8(%ebp),%eax
402109:	ff 75 bc             	push   -0x44(%ebp)
40210c:	8b 08                	mov    (%eax),%ecx
40210e:	50                   	push   %eax
40210f:	ff 51 1c             	call   *0x1c(%ecx)
402112:	3b fb                	cmp    %ebx,%edi
402114:	7c 2f                	jl     0x402145
402116:	be 68 93 40 00       	mov    $0x409368,%esi
40211b:	68 00 04 00 00       	push   $0x400
402120:	56                   	push   %esi
402121:	6a ff                	push   $0xffffffff
402123:	ff 75 d0             	push   -0x30(%ebp)
402126:	bf 05 40 00 80       	mov    $0x80004005,%edi
40212b:	53                   	push   %ebx
40212c:	53                   	push   %ebx
40212d:	ff 15 1c 71 40 00    	call   *0x40711c
402133:	85 c0                	test   %eax,%eax
402135:	74 0e                	je     0x402145
402137:	8b 45 cc             	mov    -0x34(%ebp),%eax
40213a:	6a 01                	push   $0x1
40213c:	56                   	push   %esi
40213d:	50                   	push   %eax
40213e:	8b 08                	mov    (%eax),%ecx
402140:	ff 51 18             	call   *0x18(%ecx)
402143:	8b f8                	mov    %eax,%edi
402145:	8b 45 cc             	mov    -0x34(%ebp),%eax
402148:	50                   	push   %eax
402149:	8b 08                	mov    (%eax),%ecx
40214b:	ff 51 08             	call   *0x8(%ecx)
40214e:	8b 45 08             	mov    0x8(%ebp),%eax
402151:	50                   	push   %eax
402152:	8b 08                	mov    (%eax),%ecx
402154:	ff 51 08             	call   *0x8(%ecx)
402157:	3b fb                	cmp    %ebx,%edi
402159:	7d 13                	jge    0x40216e
40215b:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402162:	6a f0                	push   $0xfffffff0
402164:	e8 ba f2 ff ff       	call   0x401423
402169:	e9 1d 07 00 00       	jmp    0x40288b
40216e:	6a f4                	push   $0xfffffff4
402170:	eb f2                	jmp    0x402164
402172:	53                   	push   %ebx
402173:	e8 7e 08 00 00       	call   0x4029f6
402178:	6a 11                	push   $0x11
40217a:	8b f0                	mov    %eax,%esi
40217c:	e8 75 08 00 00       	call   0x4029f6
402181:	6a 23                	push   $0x23
402183:	8b f8                	mov    %eax,%edi
402185:	e8 6c 08 00 00       	call   0x4029f6
40218a:	56                   	push   %esi
40218b:	89 45 08             	mov    %eax,0x8(%ebp)
40218e:	e8 ce 3c 00 00       	call   0x405e61
402193:	85 c0                	test   %eax,%eax
402195:	75 0d                	jne    0x4021a4
402197:	53                   	push   %ebx
402198:	6a f9                	push   $0xfffffff9
40219a:	e8 65 2d 00 00       	call   0x404f04
40219f:	e9 b8 04 00 00       	jmp    0x40265c
4021a4:	8b 45 cc             	mov    -0x34(%ebp),%eax
4021a7:	56                   	push   %esi
4021a8:	89 45 9c             	mov    %eax,-0x64(%ebp)
4021ab:	c7 45 a0 02 00 00 00 	movl   $0x2,-0x60(%ebp)
4021b2:	e8 c5 39 00 00       	call   0x405b7c
4021b7:	57                   	push   %edi
4021b8:	88 5c 30 01          	mov    %bl,0x1(%eax,%esi,1)
4021bc:	e8 bb 39 00 00       	call   0x405b7c
4021c1:	88 5c 38 01          	mov    %bl,0x1(%eax,%edi,1)
4021c5:	8b 45 08             	mov    0x8(%ebp),%eax
4021c8:	66 8b 4d e4          	mov    -0x1c(%ebp),%cx
4021cc:	50                   	push   %eax
4021cd:	53                   	push   %ebx
4021ce:	89 75 a4             	mov    %esi,-0x5c(%ebp)
4021d1:	89 7d a8             	mov    %edi,-0x58(%ebp)
4021d4:	89 45 b6             	mov    %eax,-0x4a(%ebp)
4021d7:	66 89 4d ac          	mov    %cx,-0x54(%ebp)
4021db:	e8 24 2d 00 00       	call   0x404f04
4021e0:	8d 45 9c             	lea    -0x64(%ebp),%eax
4021e3:	50                   	push   %eax
4021e4:	ff 15 60 71 40 00    	call   *0x407160
4021ea:	85 c0                	test   %eax,%eax
4021ec:	0f 84 99 06 00 00    	je     0x40288b
4021f2:	eb a3                	jmp    0x402197
4021f4:	3d 0d f0 ad 0b       	cmp    $0xbadf00d,%eax
4021f9:	74 1d                	je     0x402218
4021fb:	68 10 00 20 00       	push   $0x200010
402200:	6a e8                	push   $0xffffffe8
402202:	53                   	push   %ebx
402203:	e8 80 39 00 00       	call   0x405b88
402208:	50                   	push   %eax
402209:	e8 19 32 00 00       	call   0x405427
40220e:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
402213:	e9 7e 06 00 00       	jmp    0x402896
402218:	ff 05 34 3f 42 00    	incl   0x423f34
40221e:	e9 68 06 00 00       	jmp    0x40288b
402223:	33 f6                	xor    %esi,%esi
402225:	33 ff                	xor    %edi,%edi
402227:	3b c3                	cmp    %ebx,%eax
402229:	74 0b                	je     0x402236
40222b:	53                   	push   %ebx
40222c:	e8 c5 07 00 00       	call   0x4029f6
402231:	8b 55 e0             	mov    -0x20(%ebp),%edx
402234:	8b f0                	mov    %eax,%esi
402236:	3b d3                	cmp    %ebx,%edx
402238:	74 09                	je     0x402243
40223a:	6a 11                	push   $0x11
40223c:	e8 b5 07 00 00       	call   0x4029f6
402241:	8b f8                	mov    %eax,%edi
402243:	39 5d ec             	cmp    %ebx,-0x14(%ebp)
402246:	74 09                	je     0x402251
402248:	6a 22                	push   $0x22
40224a:	e8 a7 07 00 00       	call   0x4029f6
40224f:	8b d8                	mov    %eax,%ebx
402251:	6a cd                	push   $0xffffffcd
402253:	e8 9e 07 00 00       	call   0x4029f6
402258:	50                   	push   %eax
402259:	53                   	push   %ebx
40225a:	57                   	push   %edi
40225b:	56                   	push   %esi