40406c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40406f:	e8 e0 4c 00 00       	call   0x408d54
404074:	8b d8                	mov    %eax,%ebx
404076:	59                   	pop    %ecx
404077:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40407a:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40407e:	85 db                	test   %ebx,%ebx
404080:	74 32                	je     0x4040b4
404082:	83 63 04 00          	andl   $0x0,0x4(%ebx)
404086:	c7 03 94 15 40 00    	movl   $0x401594,(%ebx)
40408c:	89 7b 0c             	mov    %edi,0xc(%ebx)
40408f:	8b 3d a4 c5 40 00    	mov    0x40c5a4,%edi
404095:	c7 43 08 50 15 40 00 	movl   $0x401550,0x8(%ebx)
40409c:	8b 07                	mov    (%edi),%eax
40409e:	8b 70 04             	mov    0x4(%eax),%esi
4040a1:	8b ce                	mov    %esi,%ecx
4040a3:	ff 15 20 f2 40 00    	call   *0x40f220
4040a9:	8b cf                	mov    %edi,%ecx
4040ab:	ff d6                	call   *%esi
4040ad:	be 0e 00 07 80       	mov    $0x8007000e,%esi
4040b2:	eb 10                	jmp    0x4040c4
4040b4:	33 db                	xor    %ebx,%ebx
4040b6:	eb 0c                	jmp    0x4040c4
4040b8:	b8 be 40 40 00       	mov    $0x4040be,%eax
4040bd:	c3                   	ret
4040be:	8b 75 ec             	mov    -0x14(%ebp),%esi
4040c1:	8b 5d e8             	mov    -0x18(%ebp),%ebx
4040c4:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4040c8:	85 db                	test   %ebx,%ebx
4040ca:	74 34                	je     0x404100
4040cc:	ff 75 08             	push   0x8(%ebp)
4040cf:	8b 03                	mov    (%ebx),%eax
4040d1:	ff 75 e4             	push   -0x1c(%ebp)
4040d4:	53                   	push   %ebx
4040d5:	8b 30                	mov    (%eax),%esi
4040d7:	8b ce                	mov    %esi,%ecx
4040d9:	ff 15 20 f2 40 00    	call   *0x40f220
4040df:	ff d6                	call   *%esi
4040e1:	8b f0                	mov    %eax,%esi
4040e3:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4040e6:	85 f6                	test   %esi,%esi
4040e8:	74 16                	je     0x404100
4040ea:	8b 13                	mov    (%ebx),%edx
4040ec:	6a 01                	push   $0x1
4040ee:	8b 72 0c             	mov    0xc(%edx),%esi
4040f1:	8b ce                	mov    %esi,%ecx
4040f3:	ff 15 20 f2 40 00    	call   *0x40f220
4040f9:	8b cb                	mov    %ebx,%ecx
4040fb:	ff d6                	call   *%esi
4040fd:	8b 75 e4             	mov    -0x1c(%ebp),%esi
404100:	8b c6                	mov    %esi,%eax
404102:	e8 95 5c 00 00       	call   0x409d9c
404107:	c2 04 00             	ret    $0x4
40410a:	6a 14                	push   $0x14
40410c:	b8 33 a4 40 00       	mov    $0x40a433,%eax
404111:	e8 21 5d 00 00       	call   0x409e37
404116:	89 55 e4             	mov    %edx,-0x1c(%ebp)
404119:	8b 45 08             	mov    0x8(%ebp),%eax
40411c:	85 c0                	test   %eax,%eax
40411e:	75 0a                	jne    0x40412a
404120:	b8 03 40 00 80       	mov    $0x80004003,%eax
404125:	e9 b4 00 00 00       	jmp    0x4041de
40412a:	33 ff                	xor    %edi,%edi
40412c:	be 0e 00 07 80       	mov    $0x8007000e,%esi
404131:	6a 08                	push   $0x8
404133:	89 38                	mov    %edi,(%eax)
404135:	89 75 ec             	mov    %esi,-0x14(%ebp)
404138:	89 7d e8             	mov    %edi,-0x18(%ebp)
40413b:	89 7d fc             	mov    %edi,-0x4(%ebp)
40413e:	e8 11 4c 00 00       	call   0x408d54
404143:	8b d8                	mov    %eax,%ebx
404145:	59                   	pop    %ecx
404146:	89 5d e0             	mov    %ebx,-0x20(%ebp)
404149:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40414d:	85 db                	test   %ebx,%ebx
40414f:	74 27                	je     0x404178
404151:	89 7b 04             	mov    %edi,0x4(%ebx)
404154:	8b 3d a4 c5 40 00    	mov    0x40c5a4,%edi
40415a:	c7 03 70 15 40 00    	movl   $0x401570,(%ebx)
404160:	8b 07                	mov    (%edi),%eax
404162:	8b 70 04             	mov    0x4(%eax),%esi
404165:	8b ce                	mov    %esi,%ecx
404167:	ff 15 20 f2 40 00    	call   *0x40f220
40416d:	8b cf                	mov    %edi,%ecx
40416f:	ff d6                	call   *%esi
404171:	be 0e 00 07 80       	mov    $0x8007000e,%esi
404176:	eb 10                	jmp    0x404188
404178:	8b df                	mov    %edi,%ebx
40417a:	eb 0c                	jmp    0x404188
40417c:	b8 82 41 40 00       	mov    $0x404182,%eax
404181:	c3                   	ret
404182:	8b 75 ec             	mov    -0x14(%ebp),%esi
404185:	8b 5d e8             	mov    -0x18(%ebp),%ebx
404188:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40418c:	85 db                	test   %ebx,%ebx
40418e:	74 4c                	je     0x4041dc
404190:	8b 43 04             	mov    0x4(%ebx),%eax
404193:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
404198:	3b c1                	cmp    %ecx,%eax
40419a:	74 0c                	je     0x4041a8
40419c:	40                   	inc    %eax
40419d:	89 43 04             	mov    %eax,0x4(%ebx)
4041a0:	3b c1                	cmp    %ecx,%eax
4041a2:	74 04                	je     0x4041a8
4041a4:	48                   	dec    %eax
4041a5:	89 43 04             	mov    %eax,0x4(%ebx)
4041a8:	ff 75 08             	push   0x8(%ebp)
4041ab:	8b 03                	mov    (%ebx),%eax
4041ad:	ff 75 e4             	push   -0x1c(%ebp)
4041b0:	53                   	push   %ebx
4041b1:	8b 30                	mov    (%eax),%esi
4041b3:	8b ce                	mov    %esi,%ecx
4041b5:	ff 15 20 f2 40 00    	call   *0x40f220
4041bb:	ff d6                	call   *%esi
4041bd:	8b f0                	mov    %eax,%esi
4041bf:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4041c2:	85 f6                	test   %esi,%esi
4041c4:	74 16                	je     0x4041dc
4041c6:	8b 13                	mov    (%ebx),%edx
4041c8:	6a 01                	push   $0x1
4041ca:	8b 72 20             	mov    0x20(%edx),%esi
4041cd:	8b ce                	mov    %esi,%ecx
4041cf:	ff 15 20 f2 40 00    	call   *0x40f220
4041d5:	8b cb                	mov    %ebx,%ecx
4041d7:	ff d6                	call   *%esi
4041d9:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4041dc:	8b c6                	mov    %esi,%eax
4041de:	e8 b9 5b 00 00       	call   0x409d9c
4041e3:	c2 04 00             	ret    $0x4
4041e6:	8b ff                	mov    %edi,%edi
4041e8:	56                   	push   %esi
4041e9:	8b f1                	mov    %ecx,%esi
4041eb:	56                   	push   %esi
4041ec:	c7 06 cc 15 40 00    	movl   $0x4015cc,(%esi)
4041f2:	c7 46 04 01 00 00 c0 	movl   $0xc0000001,0x4(%esi)
4041f9:	ff 15 04 f2 40 00    	call   *0x40f204
4041ff:	59                   	pop    %ecx
404200:	8b c6                	mov    %esi,%eax
404202:	5e                   	pop    %esi
404203:	c2 04 00             	ret    $0x4
404206:	cc                   	int3
404207:	cc                   	int3
404208:	cc                   	int3
404209:	cc                   	int3
40420a:	cc                   	int3
40420b:	cc                   	int3
40420c:	cc                   	int3
40420d:	cc                   	int3
40420e:	cc                   	int3
40420f:	cc                   	int3
404210:	8b ff                	mov    %edi,%edi
404212:	55                   	push   %ebp
404213:	8b ec                	mov    %esp,%ebp
404215:	8b 45 08             	mov    0x8(%ebp),%eax
404218:	56                   	push   %esi
404219:	ff 75 10             	push   0x10(%ebp)
40421c:	8b 40 04             	mov    0x4(%eax),%eax
40421f:	ff 75 0c             	push   0xc(%ebp)
404222:	50                   	push   %eax
404223:	8b 08                	mov    (%eax),%ecx
404225:	8b 31                	mov    (%ecx),%esi
404227:	8b ce                	mov    %esi,%ecx
404229:	ff 15 20 f2 40 00    	call   *0x40f220
40422f:	ff d6                	call   *%esi
404231:	5e                   	pop    %esi
404232:	5d                   	pop    %ebp
404233:	c2 0c 00             	ret    $0xc
404236:	cc                   	int3
404237:	cc                   	int3
404238:	cc                   	int3
404239:	cc                   	int3
40423a:	cc                   	int3
40423b:	cc                   	int3
40423c:	cc                   	int3
40423d:	cc                   	int3
40423e:	cc                   	int3
40423f:	cc                   	int3
404240:	8b ff                	mov    %edi,%edi
404242:	55                   	push   %ebp
404243:	8b ec                	mov    %esp,%ebp
404245:	8b 45 08             	mov    0x8(%ebp),%eax
404248:	56                   	push   %esi
404249:	8b 40 04             	mov    0x4(%eax),%eax
40424c:	50                   	push   %eax
40424d:	8b 08                	mov    (%eax),%ecx
40424f:	8b 71 08             	mov    0x8(%ecx),%esi
404252:	8b ce                	mov    %esi,%ecx
404254:	ff 15 20 f2 40 00    	call   *0x40f220
40425a:	ff d6                	call   *%esi
40425c:	5e                   	pop    %esi
40425d:	5d                   	pop    %ebp
40425e:	c2 04 00             	ret    $0x4
404261:	cc                   	int3
404262:	cc                   	int3
404263:	cc                   	int3
404264:	cc                   	int3
404265:	cc                   	int3
404266:	cc                   	int3
404267:	cc                   	int3
404268:	cc                   	int3
404269:	cc                   	int3
40426a:	cc                   	int3
40426b:	cc                   	int3
40426c:	cc                   	int3
40426d:	cc                   	int3
40426e:	cc                   	int3
40426f:	cc                   	int3
404270:	8b ff                	mov    %edi,%edi
404272:	55                   	push   %ebp
404273:	8b ec                	mov    %esp,%ebp
404275:	8b 45 08             	mov    0x8(%ebp),%eax
404278:	56                   	push   %esi
404279:	8b 40 04             	mov    0x4(%eax),%eax
40427c:	50                   	push   %eax
40427d:	8b 08                	mov    (%eax),%ecx
40427f:	8b 71 04             	mov    0x4(%ecx),%esi
404282:	8b ce                	mov    %esi,%ecx
404284:	ff 15 20 f2 40 00    	call   *0x40f220
40428a:	ff d6                	call   *%esi
40428c:	5e                   	pop    %esi
40428d:	5d                   	pop    %ebp
40428e:	c2 04 00             	ret    $0x4
404291:	cc                   	int3
404292:	cc                   	int3
404293:	cc                   	int3
404294:	cc                   	int3
404295:	cc                   	int3
404296:	cc                   	int3
404297:	cc                   	int3
404298:	cc                   	int3
404299:	cc                   	int3
40429a:	cc                   	int3
40429b:	cc                   	int3
40429c:	cc                   	int3
40429d:	cc                   	int3
40429e:	cc                   	int3
40429f:	cc                   	int3
4042a0:	8b ff                	mov    %edi,%edi
4042a2:	55                   	push   %ebp
4042a3:	8b ec                	mov    %esp,%ebp
4042a5:	ff 75 10             	push   0x10(%ebp)
4042a8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4042ab:	ba 90 16 40 00       	mov    $0x401690,%edx
4042b0:	ff 75 0c             	push   0xc(%ebp)
4042b3:	e8 36 1b 00 00       	call   0x405dee
4042b8:	5d                   	pop    %ebp
4042b9:	c2 0c 00             	ret    $0xc
4042bc:	cc                   	int3
4042bd:	cc                   	int3
4042be:	cc                   	int3
4042bf:	cc                   	int3
4042c0:	8b ff                	mov    %edi,%edi
4042c2:	55                   	push   %ebp
4042c3:	8b ec                	mov    %esp,%ebp
4042c5:	8b 45 08             	mov    0x8(%ebp),%eax
4042c8:	53                   	push   %ebx
4042c9:	8b 58 04             	mov    0x4(%eax),%ebx
4042cc:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
4042d2:	75 03                	jne    0x4042d7
4042d4:	4b                   	dec    %ebx
4042d5:	eb 43                	jmp    0x40431a
4042d7:	83 eb 01             	sub    $0x1,%ebx
4042da:	89 58 04             	mov    %ebx,0x4(%eax)
4042dd:	75 1b                	jne    0x4042fa
4042df:	85 c0                	test   %eax,%eax
4042e1:	74 37                	je     0x40431a
4042e3:	50                   	push   %eax
4042e4:	c7 00 cc 15 40 00    	movl   $0x4015cc,(%eax)
4042ea:	c7 40 04 01 00 00 c0 	movl   $0xc0000001,0x4(%eax)
4042f1:	ff 15 04 f2 40 00    	call   *0x40f204
4042f7:	59                   	pop    %ecx
4042f8:	eb 20                	jmp    0x40431a
4042fa:	83 fb 01             	cmp    $0x1,%ebx
4042fd:	75 1b                	jne    0x40431a
4042ff:	56                   	push   %esi
404300:	57                   	push   %edi
404301:	8b 3d a4 c5 40 00    	mov    0x40c5a4,%edi
404307:	8b 17                	mov    (%edi),%edx
404309:	8b 72 08             	mov    0x8(%edx),%esi
40430c:	8b ce                	mov    %esi,%ecx
40430e:	ff 15 20 f2 40 00    	call   *0x40f220
404314:	8b cf                	mov    %edi,%ecx
404316:	ff d6                	call   *%esi
404318:	5f                   	pop    %edi
404319:	5e                   	pop    %esi
40431a:	8b c3                	mov    %ebx,%eax
40431c:	5b                   	pop    %ebx
40431d:	5d                   	pop    %ebp
40431e:	c2 04 00             	ret    $0x4
404321:	cc                   	int3
404322:	cc                   	int3
404323:	cc                   	int3
404324:	cc                   	int3
404325:	cc                   	int3
404326:	cc                   	int3
404327:	cc                   	int3
404328:	cc                   	int3
404329:	cc                   	int3
40432a:	cc                   	int3
40432b:	cc                   	int3
40432c:	cc                   	int3
40432d:	cc                   	int3
40432e:	cc                   	int3
40432f:	cc                   	int3
404330:	8b ff                	mov    %edi,%edi
404332:	55                   	push   %ebp
404333:	8b ec                	mov    %esp,%ebp
404335:	8b 45 08             	mov    0x8(%ebp),%eax
404338:	53                   	push   %ebx
404339:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
40433e:	8b 48 04             	mov    0x4(%eax),%ecx
404341:	3b cb                	cmp    %ebx,%ecx
404343:	74 26                	je     0x40436b
404345:	8d 59 01             	lea    0x1(%ecx),%ebx
404348:	89 58 04             	mov    %ebx,0x4(%eax)
40434b:	83 fb 02             	cmp    $0x2,%ebx
40434e:	75 1b                	jne    0x40436b
404350:	56                   	push   %esi
404351:	57                   	push   %edi
404352:	8b 3d a4 c5 40 00    	mov    0x40c5a4,%edi
404358:	8b 17                	mov    (%edi),%edx
40435a:	8b 72 04             	mov    0x4(%edx),%esi
40435d:	8b ce                	mov    %esi,%ecx
40435f:	ff 15 20 f2 40 00    	call   *0x40f220
404365:	8b cf                	mov    %edi,%ecx
404367:	ff d6                	call   *%esi
404369:	5f                   	pop    %edi
40436a:	5e                   	pop    %esi
40436b:	8b c3                	mov    %ebx,%eax
40436d:	5b                   	pop    %ebx
40436e:	5d                   	pop    %ebp
40436f:	c2 04 00             	ret    $0x4
404372:	8b ff                	mov    %edi,%edi
404374:	55                   	push   %ebp
404375:	8b ec                	mov    %esp,%ebp
404377:	6a ff                	push   $0xffffffff
404379:	68 4e a4 40 00       	push   $0x40a44e
40437e:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
404384:	50                   	push   %eax
404385:	56                   	push   %esi
404386:	57                   	push   %edi
404387:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
40438c:	33 c5                	xor    %ebp,%eax
40438e:	50                   	push   %eax
40438f:	8d 45 f4             	lea    -0xc(%ebp),%eax
404392:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
404398:	8b f9                	mov    %ecx,%edi
40439a:	c7 07 b8 15 40 00    	movl   $0x4015b8,(%edi)
4043a0:	8b 4f 2c             	mov    0x2c(%edi),%ecx
4043a3:	85 c9                	test   %ecx,%ecx