402037:	68 14 a0 40 00       	push   $0x40a014
40203c:	ff 75 08             	push   0x8(%ebp)
40203f:	ff 55 c4             	call   *-0x3c(%ebp)
402042:	85 c0                	test   %eax,%eax
402044:	74 1b                	je     0x402061
402046:	8b 45 f8             	mov    -0x8(%ebp),%eax
402049:	ff 70 08             	push   0x8(%eax)
40204c:	56                   	push   %esi
40204d:	e8 72 40 00 00       	call   0x4060c4
402052:	8b 45 f8             	mov    -0x8(%ebp),%eax
402055:	ff 70 0c             	push   0xc(%eax)
402058:	57                   	push   %edi
402059:	e8 66 40 00 00       	call   0x4060c4
40205e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402061:	ff 75 08             	push   0x8(%ebp)
402064:	e9 69 fb ff ff       	jmp    0x401bd2
402069:	39 1d f8 f4 42 00    	cmp    %ebx,0x42f4f8
40206f:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402076:	0f 8c b5 00 00 00    	jl     0x402131
40207c:	6a f0                	push   $0xfffffff0
40207e:	e8 a9 0a 00 00       	call   0x402b2c
402083:	6a 01                	push   $0x1
402085:	8b f0                	mov    %eax,%esi
402087:	e8 a0 0a 00 00       	call   0x402b2c
40208c:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
40208f:	89 45 08             	mov    %eax,0x8(%ebp)
402092:	74 0d                	je     0x4020a1
402094:	56                   	push   %esi
402095:	ff 15 54 81 40 00    	call   *0x408154
40209b:	8b f8                	mov    %eax,%edi
40209d:	3b fb                	cmp    %ebx,%edi
40209f:	75 10                	jne    0x4020b1
4020a1:	6a 08                	push   $0x8
4020a3:	53                   	push   %ebx
4020a4:	56                   	push   %esi
4020a5:	ff 15 50 81 40 00    	call   *0x408150
4020ab:	8b f8                	mov    %eax,%edi
4020ad:	3b fb                	cmp    %ebx,%edi
4020af:	74 79                	je     0x40212a
4020b1:	ff 75 08             	push   0x8(%ebp)
4020b4:	57                   	push   %edi
4020b5:	e8 b3 44 00 00       	call   0x40656d
4020ba:	8b f0                	mov    %eax,%esi
4020bc:	3b f3                	cmp    %ebx,%esi
4020be:	74 3d                	je     0x4020fd
4020c0:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
4020c3:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4020c6:	74 17                	je     0x4020df
4020c8:	ff 75 d4             	push   -0x2c(%ebp)
4020cb:	e8 53 f3 ff ff       	call   0x401423
4020d0:	ff d6                	call   *%esi
4020d2:	85 c0                	test   %eax,%eax
4020d4:	74 31                	je     0x402107
4020d6:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4020dd:	eb 28                	jmp    0x402107
4020df:	68 00 a0 40 00       	push   $0x40a000
4020e4:	68 70 b8 40 00       	push   $0x40b870
4020e9:	68 00 00 43 00       	push   $0x430000
4020ee:	68 00 04 00 00       	push   $0x400
4020f3:	ff 75 f8             	push   -0x8(%ebp)
4020f6:	ff d6                	call   *%esi
4020f8:	83 c4 14             	add    $0x14,%esp
4020fb:	eb 0a                	jmp    0x402107
4020fd:	ff 75 08             	push   0x8(%ebp)
402100:	6a f7                	push   $0xfffffff7
402102:	e8 86 31 00 00       	call   0x40528d
402107:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
40210a:	0f 85 a8 08 00 00    	jne    0x4029b8
402110:	57                   	push   %edi
402111:	e8 0d 18 00 00       	call   0x403923
402116:	85 c0                	test   %eax,%eax
402118:	0f 84 9a 08 00 00    	je     0x4029b8
40211e:	57                   	push   %edi
40211f:	ff 15 4c 81 40 00    	call   *0x40814c
402125:	e9 8e 08 00 00       	jmp    0x4029b8
40212a:	6a f6                	push   $0xfffffff6
40212c:	e9 73 01 00 00       	jmp    0x4022a4
402131:	6a e7                	push   $0xffffffe7
402133:	e9 6c 01 00 00       	jmp    0x4022a4
402138:	6a f0                	push   $0xfffffff0
40213a:	e8 ed 09 00 00       	call   0x402b2c
40213f:	6a df                	push   $0xffffffdf
402141:	89 45 f0             	mov    %eax,-0x10(%ebp)
402144:	e8 e3 09 00 00       	call   0x402b2c
402149:	6a 02                	push   $0x2
40214b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40214e:	e8 d9 09 00 00       	call   0x402b2c
402153:	6a cd                	push   $0xffffffcd
402155:	89 45 bc             	mov    %eax,-0x44(%ebp)
402158:	e8 cf 09 00 00       	call   0x402b2c
40215d:	6a 45                	push   $0x45
40215f:	89 45 c0             	mov    %eax,-0x40(%ebp)
402162:	e8 c5 09 00 00       	call   0x402b2c
402167:	ff 75 f4             	push   -0xc(%ebp)
40216a:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40216d:	8b 45 dc             	mov    -0x24(%ebp),%eax
402170:	8b c8                	mov    %eax,%ecx
402172:	8b f8                	mov    %eax,%edi
402174:	8b f0                	mov    %eax,%esi
402176:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
40217c:	c1 f8 10             	sar    $0x10,%eax
40217f:	c1 fe 0c             	sar    $0xc,%esi
402182:	25 ff ff 00 00       	and    $0xffff,%eax
402187:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
40218d:	81 e7 00 80 00 00    	and    $0x8000,%edi
402193:	83 e6 07             	and    $0x7,%esi
402196:	89 45 c4             	mov    %eax,-0x3c(%ebp)
402199:	e8 cd 39 00 00       	call   0x405b6b
40219e:	85 c0                	test   %eax,%eax
4021a0:	75 07                	jne    0x4021a9
4021a2:	6a 21                	push   $0x21
4021a4:	e8 83 09 00 00       	call   0x402b2c
4021a9:	8d 45 08             	lea    0x8(%ebp),%eax
4021ac:	50                   	push   %eax
4021ad:	68 0c 85 40 00       	push   $0x40850c
4021b2:	6a 01                	push   $0x1
4021b4:	53                   	push   %ebx
4021b5:	68 1c 85 40 00       	push   $0x40851c
4021ba:	ff 15 8c 82 40 00    	call   *0x40828c
4021c0:	3b c3                	cmp    %ebx,%eax
4021c2:	0f 8c d3 00 00 00    	jl     0x40229b
4021c8:	8b 45 08             	mov    0x8(%ebp),%eax
4021cb:	8d 55 e4             	lea    -0x1c(%ebp),%edx
4021ce:	52                   	push   %edx
4021cf:	68 2c 85 40 00       	push   $0x40852c
4021d4:	8b 08                	mov    (%eax),%ecx
4021d6:	50                   	push   %eax
4021d7:	ff 11                	call   *(%ecx)
4021d9:	3b c3                	cmp    %ebx,%eax
4021db:	89 45 f8             	mov    %eax,-0x8(%ebp)
4021de:	0f 8c a9 00 00 00    	jl     0x40228d
4021e4:	8b 45 08             	mov    0x8(%ebp),%eax
4021e7:	ff 75 f4             	push   -0xc(%ebp)
4021ea:	8b 08                	mov    (%eax),%ecx
4021ec:	50                   	push   %eax
4021ed:	ff 51 50             	call   *0x50(%ecx)
4021f0:	3b fb                	cmp    %ebx,%edi
4021f2:	89 45 f8             	mov    %eax,-0x8(%ebp)
4021f5:	75 0e                	jne    0x402205
4021f7:	8b 45 08             	mov    0x8(%ebp),%eax
4021fa:	68 00 58 43 00       	push   $0x435800
4021ff:	50                   	push   %eax
402200:	8b 08                	mov    (%eax),%ecx
402202:	ff 51 24             	call   *0x24(%ecx)
402205:	3b f3                	cmp    %ebx,%esi
402207:	74 0a                	je     0x402213
402209:	8b 45 08             	mov    0x8(%ebp),%eax
40220c:	56                   	push   %esi
40220d:	50                   	push   %eax
40220e:	8b 08                	mov    (%eax),%ecx
402210:	ff 51 3c             	call   *0x3c(%ecx)
402213:	8b 45 08             	mov    0x8(%ebp),%eax
402216:	ff 75 c4             	push   -0x3c(%ebp)
402219:	8b 08                	mov    (%eax),%ecx
40221b:	50                   	push   %eax
40221c:	ff 51 34             	call   *0x34(%ecx)
40221f:	8b 4d c0             	mov    -0x40(%ebp),%ecx
402222:	38 19                	cmp    %bl,(%ecx)
402224:	74 10                	je     0x402236
402226:	8b 45 08             	mov    0x8(%ebp),%eax
402229:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
40222f:	8b 10                	mov    (%eax),%edx
402231:	51                   	push   %ecx
402232:	50                   	push   %eax
402233:	ff 52 44             	call   *0x44(%edx)
402236:	8b 45 08             	mov    0x8(%ebp),%eax
402239:	ff 75 bc             	push   -0x44(%ebp)
40223c:	8b 08                	mov    (%eax),%ecx
40223e:	50                   	push   %eax
40223f:	ff 51 2c             	call   *0x2c(%ecx)
402242:	8b 45 08             	mov    0x8(%ebp),%eax
402245:	ff 75 b4             	push   -0x4c(%ebp)
402248:	8b 08                	mov    (%eax),%ecx
40224a:	50                   	push   %eax
40224b:	ff 51 1c             	call   *0x1c(%ecx)
40224e:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
402251:	7c 31                	jl     0x402284
402253:	68 00 04 00 00       	push   $0x400
402258:	c7 45 f8 05 40 00 80 	movl   $0x80004005,-0x8(%ebp)
40225f:	ff 75 f4             	push   -0xc(%ebp)
402262:	6a ff                	push   $0xffffffff
402264:	ff 75 f0             	push   -0x10(%ebp)
402267:	53                   	push   %ebx
402268:	53                   	push   %ebx
402269:	ff 15 48 81 40 00    	call   *0x408148
40226f:	85 c0                	test   %eax,%eax
402271:	74 11                	je     0x402284
402273:	8b 45 e4             	mov    -0x1c(%ebp),%eax
402276:	6a 01                	push   $0x1
402278:	ff 75 f4             	push   -0xc(%ebp)
40227b:	8b 08                	mov    (%eax),%ecx
40227d:	50                   	push   %eax
40227e:	ff 51 18             	call   *0x18(%ecx)
402281:	89 45 f8             	mov    %eax,-0x8(%ebp)
402284:	8b 45 e4             	mov    -0x1c(%ebp),%eax
402287:	50                   	push   %eax
402288:	8b 08                	mov    (%eax),%ecx
40228a:	ff 51 08             	call   *0x8(%ecx)
40228d:	8b 45 08             	mov    0x8(%ebp),%eax
402290:	50                   	push   %eax
402291:	8b 08                	mov    (%eax),%ecx
402293:	ff 51 08             	call   *0x8(%ecx)
402296:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
402299:	7d 13                	jge    0x4022ae
40229b:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4022a2:	6a f0                	push   $0xfffffff0
4022a4:	e8 7a f1 ff ff       	call   0x401423
4022a9:	e9 0a 07 00 00       	jmp    0x4029b8
4022ae:	6a f4                	push   $0xfffffff4
4022b0:	eb f2                	jmp    0x4022a4
4022b2:	53                   	push   %ebx
4022b3:	e8 74 08 00 00       	call   0x402b2c
4022b8:	6a 11                	push   $0x11
4022ba:	8b f0                	mov    %eax,%esi
4022bc:	e8 6b 08 00 00       	call   0x402b2c
4022c1:	6a 23                	push   $0x23
4022c3:	8b f8                	mov    %eax,%edi
4022c5:	e8 62 08 00 00       	call   0x402b2c
4022ca:	56                   	push   %esi
4022cb:	89 45 08             	mov    %eax,0x8(%ebp)
4022ce:	e8 96 41 00 00       	call   0x406469
4022d3:	85 c0                	test   %eax,%eax
4022d5:	75 0d                	jne    0x4022e4
4022d7:	53                   	push   %ebx
4022d8:	6a f9                	push   $0xfffffff9
4022da:	e8 ae 2f 00 00       	call   0x40528d
4022df:	e9 9f 04 00 00       	jmp    0x402783
4022e4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4022e7:	56                   	push   %esi
4022e8:	89 45 98             	mov    %eax,-0x68(%ebp)
4022eb:	c7 45 9c 02 00 00 00 	movl   $0x2,-0x64(%ebp)
4022f2:	e8 85 3e 00 00       	call   0x40617c
4022f7:	57                   	push   %edi
4022f8:	88 5c 30 01          	mov    %bl,0x1(%eax,%esi,1)
4022fc:	e8 7b 3e 00 00       	call   0x40617c
402301:	88 5c 38 01          	mov    %bl,0x1(%eax,%edi,1)
402305:	8b 45 08             	mov    0x8(%ebp),%eax
402308:	66 8b 4d d4          	mov    -0x2c(%ebp),%cx
40230c:	50                   	push   %eax
40230d:	53                   	push   %ebx
40230e:	89 75 a0             	mov    %esi,-0x60(%ebp)
402311:	89 7d a4             	mov    %edi,-0x5c(%ebp)
402314:	89 45 b2             	mov    %eax,-0x4e(%ebp)
402317:	66 89 4d a8          	mov    %cx,-0x58(%ebp)
40231b:	e8 6d 2f 00 00       	call   0x40528d
402320:	8d 45 98             	lea    -0x68(%ebp),%eax
402323:	50                   	push   %eax
402324:	ff 15 7c 81 40 00    	call   *0x40817c
40232a:	85 c0                	test   %eax,%eax
40232c:	0f 84 86 06 00 00    	je     0x4029b8
402332:	eb a3                	jmp    0x4022d7
402334:	3d 0d f0 ad 0b       	cmp    $0xbadf00d,%eax
402339:	74 1d                	je     0x402358
40233b:	68 10 00 20 00       	push   $0x200010
402340:	6a e8                	push   $0xffffffe8
402342:	53                   	push   %ebx
402343:	e8 40 3e 00 00       	call   0x406188
402348:	50                   	push   %eax
402349:	e8 34 35 00 00       	call   0x405882
40234e:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
402353:	e9 6b 06 00 00       	jmp    0x4029c3
402358:	ff 05 d4 f4 42 00    	incl   0x42f4d4
40235e:	e9 55 06 00 00       	jmp    0x4029b8
402363:	33 f6                	xor    %esi,%esi
402365:	33 ff                	xor    %edi,%edi
402367:	3b c3                	cmp    %ebx,%eax
402369:	74 0b                	je     0x402376
40236b:	53                   	push   %ebx
40236c:	e8 bb 07 00 00       	call   0x402b2c
402371:	8b 55 d0             	mov    -0x30(%ebp),%edx
402374:	8b f0                	mov    %eax,%esi
402376:	3b d3                	cmp    %ebx,%edx
402378:	74 09                	je     0x402383
40237a:	6a 11                	push   $0x11
40237c:	e8 ab 07 00 00       	call   0x402b2c
402381:	8b f8                	mov    %eax,%edi
402383:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
402386:	74 09                	je     0x402391
402388:	6a 22                	push   $0x22
40238a:	e8 9d 07 00 00       	call   0x402b2c
40238f:	8b d8                	mov    %eax,%ebx
402391:	6a cd                	push   $0xffffffcd
402393:	e8 94 07 00 00       	call   0x402b2c
402398:	50                   	push   %eax
402399:	53                   	push   %ebx
40239a:	57                   	push   %edi
40239b:	56                   	push   %esi
40239c:	ff 15 40 81 40 00    	call   *0x408140
4023a2:	e9 07 f2 ff ff       	jmp    0x4015ae
4023a7:	66 a1 10 a0 40 00    	mov    0x40a010,%ax
4023ad:	6a 01                	push   $0x1
4023af:	66 89 45 0a          	mov    %ax,0xa(%ebp)
4023b3:	e8 74 07 00 00       	call   0x402b2c
4023b8:	6a 12                	push   $0x12
4023ba:	8b f8                	mov    %eax,%edi
4023bc:	e8 6b 07 00 00       	call   0x402b2c
4023c1:	6a dd                	push   $0xffffffdd
4023c3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4023c6:	e8 61 07 00 00       	call   0x402b2c
4023cb:	50                   	push   %eax
4023cc:	68 ff 03 00 00       	push   $0x3ff
4023d1:	8d 45 0a             	lea    0xa(%ebp),%eax
4023d4:	56                   	push   %esi
4023d5:	50                   	push   %eax
4023d6:	ff 75 f0             	push   -0x10(%ebp)
4023d9:	57                   	push   %edi
4023da:	ff 15 3c 81 40 00    	call   *0x40813c
4023e0:	80 3e 0a             	cmpb   $0xa,(%esi)
4023e3:	e9 53 f3 ff ff       	jmp    0x40173b
4023e8:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
4023eb:	8b f2                	mov    %edx,%esi
4023ed:	75 2b                	jne    0x40241a
4023ef:	6a 02                	push   $0x2
4023f1:	e8 76 07 00 00       	call   0x402b6c
4023f6:	8b f0                	mov    %eax,%esi
4023f8:	3b f3                	cmp    %ebx,%esi
4023fa:	0f 84 83 03 00 00    	je     0x402783
402400:	6a 33                	push   $0x33
402402:	e8 25 07 00 00       	call   0x402b2c
402407:	50                   	push   %eax
402408:	56                   	push   %esi
402409:	ff 15 20 80 40 00    	call   *0x408020
40240f:	56                   	push   %esi
402410:	8b f8                	mov    %eax,%edi
402412:	ff 15 24 80 40 00    	call   *0x408024
402418:	eb 16                	jmp    0x402430
40241a:	6a 22                	push   $0x22
40241c:	e8 0b 07 00 00       	call   0x402b2c
402421:	8b 4d dc             	mov    -0x24(%ebp),%ecx
402424:	d1 f9                	sar    $1,%ecx
402426:	51                   	push   %ecx
402427:	50                   	push   %eax
402428:	56                   	push   %esi
402429:	e8 bc 07 00 00       	call   0x402bea
40242e:	8b f8                	mov    %eax,%edi
402430:	3b fb                	cmp    %ebx,%edi
402432:	0f 84 80 05 00 00    	je     0x4029b8
402438:	e9 46 03 00 00       	jmp    0x402783
40243d:	8b 75 dc             	mov    -0x24(%ebp),%esi
402440:	8b f8                	mov    %eax,%edi
402442:	8b 45 e0             	mov    -0x20(%ebp),%eax
402445:	6a 02                	push   $0x2
402447:	89 45 f0             	mov    %eax,-0x10(%ebp)
40244a:	e8 dd 06 00 00       	call   0x402b2c
40244f:	6a 11                	push   $0x11
402451:	89 45 b4             	mov    %eax,-0x4c(%ebp)
402454:	e8 d3 06 00 00       	call   0x402b2c
402459:	6a 02                	push   $0x2
40245b:	50                   	push   %eax
40245c:	57                   	push   %edi