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 71 40 00    	call   *0x407148
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 0a 40 00 00       	call   0x4062dd
4022d3:	85 c0                	test   %eax,%eax
4022d5:	75 0d                	jne    0x4022e4
4022d7:	53                   	push   %ebx
4022d8:	6a f9                	push   $0xfffffff9
4022da:	e8 22 2e 00 00       	call   0x405101
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 f9 3c 00 00       	call   0x405ff0
4022f7:	57                   	push   %edi
4022f8:	88 5c 30 01          	mov    %bl,0x1(%eax,%esi,1)
4022fc:	e8 ef 3c 00 00       	call   0x405ff0
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 e1 2d 00 00       	call   0x405101
402320:	8d 45 98             	lea    -0x68(%ebp),%eax
402323:	50                   	push   %eax
402324:	ff 15 7c 71 40 00    	call   *0x40717c
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 b4 3c 00 00       	call   0x405ffc
402348:	50                   	push   %eax
402349:	e8 a8 33 00 00       	call   0x4056f6
40234e:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
402353:	e9 6b 06 00 00       	jmp    0x4029c3
402358:	ff 05 b4 37 42 00    	incl   0x4237b4
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 71 40 00    	call   *0x407140
4023a2:	e9 07 f2 ff ff       	jmp    0x4015ae
4023a7:	66 a1 10 90 40 00    	mov    0x409010,%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 71 40 00    	call   *0x40713c
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 70 40 00    	call   *0x407020
40240f:	56                   	push   %esi
402410:	8b f8                	mov    %eax,%edi
402412:	ff 15 24 70 40 00    	call   *0x407024
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
40245d:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402464:	e8 53 07 00 00       	call   0x402bbc
402469:	3b c3                	cmp    %ebx,%eax
40246b:	89 45 08             	mov    %eax,0x8(%ebp)
40246e:	0f 84 44 05 00 00    	je     0x4029b8
402474:	33 c0                	xor    %eax,%eax
402476:	83 fe 01             	cmp    $0x1,%esi
402479:	bf e8 9b 40 00       	mov    $0x409be8,%edi
40247e:	75 0e                	jne    0x40248e
402480:	6a 23                	push   $0x23
402482:	e8 a5 06 00 00       	call   0x402b2c
402487:	57                   	push   %edi
402488:	e8 63 3b 00 00       	call   0x405ff0
40248d:	40                   	inc    %eax
40248e:	83 fe 04             	cmp    $0x4,%esi
402491:	75 12                	jne    0x4024a5
402493:	6a 03                	push   $0x3
402495:	e8 70 06 00 00       	call   0x402b0a
40249a:	59                   	pop    %ecx
40249b:	a3 e8 9b 40 00       	mov    %eax,0x409be8
4024a0:	56                   	push   %esi
4024a1:	89 55 bc             	mov    %edx,-0x44(%ebp)
4024a4:	58                   	pop    %eax
4024a5:	83 fe 03             	cmp    $0x3,%esi
4024a8:	75 0f                	jne    0x4024b9
4024aa:	68 00 0c 00 00       	push   $0xc00
4024af:	57                   	push   %edi
4024b0:	53                   	push   %ebx
4024b1:	ff 75 d8             	push   -0x28(%ebp)
4024b4:	e8 42 0b 00 00       	call   0x402ffb
4024b9:	50                   	push   %eax
4024ba:	57                   	push   %edi
4024bb:	ff 75 f0             	push   -0x10(%ebp)
4024be:	53                   	push   %ebx
4024bf:	ff 75 b4             	push   -0x4c(%ebp)
4024c2:	ff 75 08             	push   0x8(%ebp)
4024c5:	ff 15 28 70 40 00    	call   *0x407028
4024cb:	85 c0                	test   %eax,%eax
4024cd:	75 03                	jne    0x4024d2
4024cf:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4024d2:	ff 75 08             	push   0x8(%ebp)
4024d5:	e9 cf 00 00 00       	jmp    0x4025a9
4024da:	68 19 00 02 00       	push   $0x20019
4024df:	e8 88 06 00 00       	call   0x402b6c
4024e4:	6a 33                	push   $0x33
4024e6:	8b f8                	mov    %eax,%edi
4024e8:	e8 3f 06 00 00       	call   0x402b2c
4024ed:	3b fb                	cmp    %ebx,%edi
4024ef:	88 1e                	mov    %bl,(%esi)
4024f1:	0f 84 8c 02 00 00    	je     0x402783
4024f7:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4024fa:	c7 45 f0 00 04 00 00 	movl   $0x400,-0x10(%ebp)
402501:	51                   	push   %ecx
402502:	8d 4d 08             	lea    0x8(%ebp),%ecx
402505:	56                   	push   %esi
402506:	51                   	push   %ecx
402507:	53                   	push   %ebx
402508:	50                   	push   %eax
402509:	57                   	push   %edi
40250a:	ff 15 2c 70 40 00    	call   *0x40702c
402510:	33 c9                	xor    %ecx,%ecx
402512:	41                   	inc    %ecx
402513:	85 c0                	test   %eax,%eax
402515:	75 2e                	jne    0x402545
402517:	83 7d 08 04          	cmpl   $0x4,0x8(%ebp)
40251b:	74 13                	je     0x402530
40251d:	39 4d 08             	cmp    %ecx,0x8(%ebp)
402520:	74 06                	je     0x402528
402522:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
402526:	75 1d                	jne    0x402545
402528:	8b 45 dc             	mov    -0x24(%ebp),%eax
40252b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40252e:	eb 72                	jmp    0x4025a2
402530:	ff 36                	push   (%esi)
402532:	33 c0                	xor    %eax,%eax
402534:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
402537:	56                   	push   %esi
402538:	0f 94 c0             	sete   %al
40253b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40253e:	e8 f5 39 00 00       	call   0x405f38
402543:	eb 63                	jmp    0x4025a8
402545:	88 1e                	mov    %bl,(%esi)
402547:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40254a:	eb 5c                	jmp    0x4025a8
40254c:	68 19 00 02 00       	push   $0x20019
402551:	e8 16 06 00 00       	call   0x402b6c
402556:	6a 03                	push   $0x3
402558:	8b f8                	mov    %eax,%edi
40255a:	e8 ab 05 00 00       	call   0x402b0a
40255f:	3b fb                	cmp    %ebx,%edi
402561:	59                   	pop    %ecx
402562:	89 55 f0             	mov    %edx,-0x10(%ebp)
402565:	88 1e                	mov    %bl,(%esi)
402567:	0f 84 16 02 00 00    	je     0x402783
40256d:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
402570:	b9 ff 03 00 00       	mov    $0x3ff,%ecx
402575:	89 4d 08             	mov    %ecx,0x8(%ebp)
402578:	74 0c                	je     0x402586
40257a:	51                   	push   %ecx
40257b:	56                   	push   %esi
40257c:	50                   	push   %eax
40257d:	57                   	push   %edi
40257e:	ff 15 30 70 40 00    	call   *0x407030
402584:	eb 1c                	jmp    0x4025a2
402586:	53                   	push   %ebx
402587:	53                   	push   %ebx
402588:	53                   	push   %ebx
402589:	8d 4d 08             	lea    0x8(%ebp),%ecx
40258c:	53                   	push   %ebx
40258d:	51                   	push   %ecx
40258e:	56                   	push   %esi
40258f:	50                   	push   %eax
402590:	57                   	push   %edi
402591:	ff 15 18 70 40 00    	call   *0x407018
402597:	85 c0                	test   %eax,%eax
402599:	74 07                	je     0x4025a2
40259b:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4025a2:	88 9e ff 03 00 00    	mov    %bl,0x3ff(%esi)
4025a8:	57                   	push   %edi
4025a9:	ff 15 24 70 40 00    	call   *0x407024
4025af:	e9 04 04 00 00       	jmp    0x4029b8
4025b4:	56                   	push   %esi
4025b5:	e8 97 39 00 00       	call   0x405f51
4025ba:	3b c3                	cmp    %ebx,%eax
4025bc:	0f 84 f6 03 00 00    	je     0x4029b8
4025c2:	50                   	push   %eax
4025c3:	e9 c5 f9 ff ff       	jmp    0x401f8d
4025c8:	6a ed                	push   $0xffffffed
4025ca:	e8 5d 05 00 00       	call   0x402b2c
4025cf:	ff 75 d4             	push   -0x2c(%ebp)
4025d2:	ff 75 d0             	push   -0x30(%ebp)
4025d5:	50                   	push   %eax
4025d6:	e8 98 35 00 00       	call   0x405b73
4025db:	83 f8 ff             	cmp    $0xffffffff,%eax
4025de:	0f 84 9d 01 00 00    	je     0x402781
4025e4:	50                   	push   %eax
4025e5:	e9 7f ef ff ff       	jmp    0x401569
4025ea:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
4025ed:	74 14                	je     0x402603
4025ef:	33 ff                	xor    %edi,%edi
4025f1:	47                   	inc    %edi
4025f2:	57                   	push   %edi
4025f3:	e8 12 05 00 00       	call   0x402b0a
4025f8:	59                   	pop    %ecx
4025f9:	89 55 f0             	mov    %edx,-0x10(%ebp)
4025fc:	a2 e8 97 40 00       	mov    %al,0x4097e8
402601:	eb 0f                	jmp    0x402612
402603:	6a 11                	push   $0x11
402605:	e8 22 05 00 00       	call   0x402b2c
40260a:	50                   	push   %eax
40260b:	e8 e0 39 00 00       	call   0x405ff0
402610:	8b f8                	mov    %eax,%edi
402612:	38 1e                	cmp    %bl,(%esi)
402614:	0f 84 69 01 00 00    	je     0x402783
40261a:	56                   	push   %esi
40261b:	e8 31 39 00 00       	call   0x405f51
402620:	57                   	push   %edi
402621:	68 e8 97 40 00       	push   $0x4097e8
402626:	50                   	push   %eax
402627:	e8 ee 35 00 00       	call   0x405c1a
40262c:	e9 7d ef ff ff       	jmp    0x4015ae
402631:	6a 02                	push   $0x2
402633:	89 5d f8             	mov    %ebx,-0x8(%ebp)
402636:	e8 cf 04 00 00       	call   0x402b0a
40263b:	83 f8 01             	cmp    $0x1,%eax
40263e:	59                   	pop    %ecx
40263f:	89 55 f0             	mov    %edx,-0x10(%ebp)
402642:	89 45 f4             	mov    %eax,-0xc(%ebp)
402645:	0f 8c 6d 03 00 00    	jl     0x4029b8
40264b:	b9 ff 03 00 00       	mov    $0x3ff,%ecx
402650:	3b c1                	cmp    %ecx,%eax
402652:	7e 03                	jle    0x402657
402654:	89 4d f4             	mov    %ecx,-0xc(%ebp)
402657:	38 1e                	cmp    %bl,(%esi)
402659:	0f 84 82 00 00 00    	je     0x4026e1