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
40225c:	ff 15 20 71 40 00    	call   *0x407120
402262:	e9 3f f3 ff ff       	jmp    0x4015a6
402267:	6a 01                	push   $0x1
402269:	c7 45 08 21 4e 7e 00 	movl   $0x7e4e21,0x8(%ebp)
402270:	e8 81 07 00 00       	call   0x4029f6
402275:	6a 12                	push   $0x12
402277:	8b f8                	mov    %eax,%edi
402279:	e8 78 07 00 00       	call   0x4029f6
40227e:	6a dd                	push   $0xffffffdd
402280:	89 45 d0             	mov    %eax,-0x30(%ebp)
402283:	e8 6e 07 00 00       	call   0x4029f6
402288:	50                   	push   %eax
402289:	68 ff 03 00 00       	push   $0x3ff
40228e:	8d 45 08             	lea    0x8(%ebp),%eax
402291:	56                   	push   %esi
402292:	50                   	push   %eax
402293:	ff 75 d0             	push   -0x30(%ebp)
402296:	57                   	push   %edi
402297:	ff 15 24 71 40 00    	call   *0x407124
40229d:	8b 06                	mov    (%esi),%eax
40229f:	3b 45 08             	cmp    0x8(%ebp),%eax
4022a2:	e9 6f f4 ff ff       	jmp    0x401716
4022a7:	39 5d ec             	cmp    %ebx,-0x14(%ebp)
4022aa:	75 2b                	jne    0x4022d7
4022ac:	6a 02                	push   $0x2
4022ae:	e8 4d 08 00 00       	call   0x402b00
4022b3:	8b f0                	mov    %eax,%esi
4022b5:	3b f3                	cmp    %ebx,%esi
4022b7:	0f 84 9f 03 00 00    	je     0x40265c
4022bd:	6a 33                	push   $0x33
4022bf:	e8 32 07 00 00       	call   0x4029f6
4022c4:	50                   	push   %eax
4022c5:	56                   	push   %esi
4022c6:	ff 15 18 70 40 00    	call   *0x407018
4022cc:	56                   	push   %esi
4022cd:	8b f8                	mov    %eax,%edi
4022cf:	ff 15 1c 70 40 00    	call   *0x40701c
4022d5:	eb 1f                	jmp    0x4022f6
4022d7:	6a 22                	push   $0x22
4022d9:	e8 18 07 00 00       	call   0x4029f6
4022de:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4022e1:	83 e1 02             	and    $0x2,%ecx
4022e4:	51                   	push   %ecx
4022e5:	50                   	push   %eax
4022e6:	ff 75 e0             	push   -0x20(%ebp)
4022e9:	e8 fd 07 00 00       	call   0x402aeb
4022ee:	50                   	push   %eax
4022ef:	e8 42 07 00 00       	call   0x402a36
4022f4:	8b f8                	mov    %eax,%edi
4022f6:	3b fb                	cmp    %ebx,%edi
4022f8:	0f 84 8d 05 00 00    	je     0x40288b
4022fe:	e9 59 03 00 00       	jmp    0x40265c
402303:	50                   	push   %eax
402304:	e8 e2 07 00 00       	call   0x402aeb
402309:	8b 75 ec             	mov    -0x14(%ebp),%esi
40230c:	8b f8                	mov    %eax,%edi
40230e:	8b 45 f0             	mov    -0x10(%ebp),%eax
402311:	6a 02                	push   $0x2
402313:	89 45 d0             	mov    %eax,-0x30(%ebp)
402316:	e8 db 06 00 00       	call   0x4029f6
40231b:	6a 11                	push   $0x11
40231d:	89 45 bc             	mov    %eax,-0x44(%ebp)
402320:	e8 d1 06 00 00       	call   0x4029f6
402325:	8d 4d 08             	lea    0x8(%ebp),%ecx
402328:	53                   	push   %ebx
402329:	51                   	push   %ecx
40232a:	8b 0d 50 3f 42 00    	mov    0x423f50,%ecx
402330:	83 c9 02             	or     $0x2,%ecx
402333:	53                   	push   %ebx
402334:	51                   	push   %ecx
402335:	53                   	push   %ebx
402336:	53                   	push   %ebx
402337:	53                   	push   %ebx
402338:	50                   	push   %eax
402339:	57                   	push   %edi
40233a:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402341:	ff 15 20 70 40 00    	call   *0x407020
402347:	85 c0                	test   %eax,%eax
402349:	0f 85 3c 05 00 00    	jne    0x40288b
40234f:	83 fe 01             	cmp    $0x1,%esi
402352:	bf 70 a3 40 00       	mov    $0x40a370,%edi
402357:	75 0e                	jne    0x402367
402359:	6a 23                	push   $0x23
40235b:	e8 96 06 00 00       	call   0x4029f6
402360:	57                   	push   %edi
402361:	e8 16 38 00 00       	call   0x405b7c
402366:	40                   	inc    %eax
402367:	83 fe 04             	cmp    $0x4,%esi
40236a:	75 0e                	jne    0x40237a
40236c:	6a 03                	push   $0x3
40236e:	e8 66 06 00 00       	call   0x4029d9
402373:	56                   	push   %esi
402374:	a3 70 a3 40 00       	mov    %eax,0x40a370
402379:	58                   	pop    %eax
40237a:	83 fe 03             	cmp    $0x3,%esi
40237d:	75 0f                	jne    0x40238e
40237f:	68 00 0c 00 00       	push   $0xc00
402384:	57                   	push   %edi
402385:	53                   	push   %ebx
402386:	ff 75 e8             	push   -0x18(%ebp)
402389:	e8 8a 0b 00 00       	call   0x402f18
40238e:	50                   	push   %eax
40238f:	57                   	push   %edi
402390:	ff 75 d0             	push   -0x30(%ebp)
402393:	53                   	push   %ebx
402394:	ff 75 bc             	push   -0x44(%ebp)
402397:	ff 75 08             	push   0x8(%ebp)
40239a:	ff 15 04 70 40 00    	call   *0x407004
4023a0:	85 c0                	test   %eax,%eax
4023a2:	75 03                	jne    0x4023a7
4023a4:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4023a7:	ff 75 08             	push   0x8(%ebp)
4023aa:	e9 ce 00 00 00       	jmp    0x40247d
4023af:	68 19 00 02 00       	push   $0x20019
4023b4:	e8 47 07 00 00       	call   0x402b00
4023b9:	6a 33                	push   $0x33
4023bb:	8b f8                	mov    %eax,%edi
4023bd:	e8 34 06 00 00       	call   0x4029f6
4023c2:	3b fb                	cmp    %ebx,%edi
4023c4:	88 1e                	mov    %bl,(%esi)
4023c6:	0f 84 90 02 00 00    	je     0x40265c
4023cc:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4023cf:	c7 45 f8 ff 03 00 00 	movl   $0x3ff,-0x8(%ebp)
4023d6:	51                   	push   %ecx
4023d7:	8d 4d 08             	lea    0x8(%ebp),%ecx
4023da:	56                   	push   %esi
4023db:	51                   	push   %ecx
4023dc:	53                   	push   %ebx
4023dd:	50                   	push   %eax
4023de:	57                   	push   %edi
4023df:	ff 15 00 70 40 00    	call   *0x407000
4023e5:	33 c9                	xor    %ecx,%ecx
4023e7:	41                   	inc    %ecx
4023e8:	85 c0                	test   %eax,%eax
4023ea:	75 34                	jne    0x402420
4023ec:	83 7d 08 04          	cmpl   $0x4,0x8(%ebp)
4023f0:	74 19                	je     0x40240b
4023f2:	39 4d 08             	cmp    %ecx,0x8(%ebp)
4023f5:	74 06                	je     0x4023fd
4023f7:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
4023fb:	75 23                	jne    0x402420
4023fd:	8b 45 ec             	mov    -0x14(%ebp),%eax
402400:	89 45 fc             	mov    %eax,-0x4(%ebp)
402403:	8b 45 f8             	mov    -0x8(%ebp),%eax
402406:	88 1c 30             	mov    %bl,(%eax,%esi,1)
402409:	eb 71                	jmp    0x40247c
40240b:	ff 36                	push   (%esi)
40240d:	33 c0                	xor    %eax,%eax
40240f:	39 5d ec             	cmp    %ebx,-0x14(%ebp)
402412:	56                   	push   %esi
402413:	0f 94 c0             	sete   %al
402416:	89 45 fc             	mov    %eax,-0x4(%ebp)
402419:	e8 a6 36 00 00       	call   0x405ac4
40241e:	eb 5c                	jmp    0x40247c
402420:	88 1e                	mov    %bl,(%esi)
402422:	89 4d fc             	mov    %ecx,-0x4(%ebp)
402425:	eb 55                	jmp    0x40247c
402427:	68 19 00 02 00       	push   $0x20019
40242c:	e8 cf 06 00 00       	call   0x402b00
402431:	6a 03                	push   $0x3
402433:	8b f8                	mov    %eax,%edi
402435:	e8 9f 05 00 00       	call   0x4029d9
40243a:	3b fb                	cmp    %ebx,%edi
40243c:	88 1e                	mov    %bl,(%esi)
40243e:	0f 84 18 02 00 00    	je     0x40265c
402444:	39 5d ec             	cmp    %ebx,-0x14(%ebp)
402447:	b9 ff 03 00 00       	mov    $0x3ff,%ecx
40244c:	89 4d 08             	mov    %ecx,0x8(%ebp)
40244f:	74 0c                	je     0x40245d
402451:	51                   	push   %ecx
402452:	56                   	push   %esi
402453:	50                   	push   %eax
402454:	57                   	push   %edi
402455:	ff 15 08 70 40 00    	call   *0x407008
40245b:	eb 19                	jmp    0x402476