40c274:	50                   	push   %eax
40c275:	8b 45 d0             	mov    -0x30(%ebp),%eax
40c278:	8b 00                	mov    (%eax),%eax
40c27a:	ff 75 d0             	push   -0x30(%ebp)
40c27d:	ff 50 0c             	call   *0xc(%eax)
40c280:	db e2                	fnclex
40c282:	89 45 88             	mov    %eax,-0x78(%ebp)
40c285:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40c289:	7d 1a                	jge    0x40c2a5
40c28b:	6a 0c                	push   $0xc
40c28d:	68 c0 47 40 00       	push   $0x4047c0
40c292:	ff 75 d0             	push   -0x30(%ebp)
40c295:	ff 75 88             	push   -0x78(%ebp)
40c298:	e8 37 52 ff ff       	call   0x4014d4
40c29d:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
40c2a3:	eb 07                	jmp    0x40c2ac
40c2a5:	83 a5 28 ff ff ff 00 	andl   $0x0,-0xd8(%ebp)
40c2ac:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
40c2b2:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
40c2b6:	0f 8e 9a 00 00 00    	jle    0x40c356
40c2bc:	6a 00                	push   $0x0
40c2be:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
40c2c4:	8b 40 18             	mov    0x18(%eax),%eax
40c2c7:	48                   	dec    %eax
40c2c8:	50                   	push   %eax
40c2c9:	6a 01                	push   $0x1
40c2cb:	6a 11                	push   $0x11
40c2cd:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
40c2d3:	83 c0 1c             	add    $0x1c,%eax
40c2d6:	50                   	push   %eax
40c2d7:	6a 01                	push   $0x1
40c2d9:	68 80 00 00 00       	push   $0x80
40c2de:	e8 21 52 ff ff       	call   0x401504
40c2e3:	83 c4 1c             	add    $0x1c,%esp
40c2e6:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
40c2ec:	ff 70 1c             	push   0x1c(%eax)
40c2ef:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c2f2:	50                   	push   %eax
40c2f3:	e8 e8 51 ff ff       	call   0x4014e0
40c2f8:	8d 45 90             	lea    -0x70(%ebp),%eax
40c2fb:	50                   	push   %eax
40c2fc:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
40c302:	ff 70 18             	push   0x18(%eax)
40c305:	8b 45 cc             	mov    -0x34(%ebp),%eax
40c308:	33 c9                	xor    %ecx,%ecx
40c30a:	2b 48 14             	sub    0x14(%eax),%ecx
40c30d:	8b 45 cc             	mov    -0x34(%ebp),%eax
40c310:	8b 40 0c             	mov    0xc(%eax),%eax
40c313:	03 c1                	add    %ecx,%eax
40c315:	50                   	push   %eax
40c316:	8b 45 d0             	mov    -0x30(%ebp),%eax
40c319:	8b 00                	mov    (%eax),%eax
40c31b:	ff 75 d0             	push   -0x30(%ebp)
40c31e:	ff 50 0c             	call   *0xc(%eax)
40c321:	db e2                	fnclex
40c323:	89 45 88             	mov    %eax,-0x78(%ebp)
40c326:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40c32a:	7d 1a                	jge    0x40c346
40c32c:	6a 0c                	push   $0xc
40c32e:	68 c0 47 40 00       	push   $0x4047c0
40c333:	ff 75 d0             	push   -0x30(%ebp)
40c336:	ff 75 88             	push   -0x78(%ebp)
40c339:	e8 96 51 ff ff       	call   0x4014d4
40c33e:	89 85 24 ff ff ff    	mov    %eax,-0xdc(%ebp)
40c344:	eb 07                	jmp    0x40c34d
40c346:	83 a5 24 ff ff ff 00 	andl   $0x0,-0xdc(%ebp)
40c34d:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c350:	50                   	push   %eax
40c351:	e8 84 51 ff ff       	call   0x4014da
40c356:	e9 f1 00 00 00       	jmp    0x40c44c
40c35b:	8d 45 90             	lea    -0x70(%ebp),%eax
40c35e:	50                   	push   %eax
40c35f:	6a 04                	push   $0x4
40c361:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
40c367:	83 c0 18             	add    $0x18,%eax
40c36a:	50                   	push   %eax
40c36b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c36e:	8b 00                	mov    (%eax),%eax
40c370:	ff 75 e4             	push   -0x1c(%ebp)
40c373:	ff 50 0c             	call   *0xc(%eax)
40c376:	db e2                	fnclex
40c378:	89 45 88             	mov    %eax,-0x78(%ebp)
40c37b:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40c37f:	7d 1a                	jge    0x40c39b
40c381:	6a 0c                	push   $0xc
40c383:	68 c0 47 40 00       	push   $0x4047c0
40c388:	ff 75 e4             	push   -0x1c(%ebp)
40c38b:	ff 75 88             	push   -0x78(%ebp)
40c38e:	e8 41 51 ff ff       	call   0x4014d4
40c393:	89 85 20 ff ff ff    	mov    %eax,-0xe0(%ebp)
40c399:	eb 07                	jmp    0x40c3a2
40c39b:	83 a5 20 ff ff ff 00 	andl   $0x0,-0xe0(%ebp)
40c3a2:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
40c3a8:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
40c3ac:	0f 8e 9a 00 00 00    	jle    0x40c44c
40c3b2:	6a 00                	push   $0x0
40c3b4:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
40c3ba:	8b 40 18             	mov    0x18(%eax),%eax
40c3bd:	48                   	dec    %eax
40c3be:	50                   	push   %eax
40c3bf:	6a 01                	push   $0x1
40c3c1:	6a 11                	push   $0x11
40c3c3:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
40c3c9:	83 c0 1c             	add    $0x1c,%eax
40c3cc:	50                   	push   %eax
40c3cd:	6a 01                	push   $0x1
40c3cf:	68 80 00 00 00       	push   $0x80
40c3d4:	e8 2b 51 ff ff       	call   0x401504
40c3d9:	83 c4 1c             	add    $0x1c,%esp
40c3dc:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
40c3e2:	ff 70 1c             	push   0x1c(%eax)
40c3e5:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c3e8:	50                   	push   %eax
40c3e9:	e8 f2 50 ff ff       	call   0x4014e0
40c3ee:	8d 45 90             	lea    -0x70(%ebp),%eax
40c3f1:	50                   	push   %eax
40c3f2:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
40c3f8:	ff 70 18             	push   0x18(%eax)
40c3fb:	8b 45 cc             	mov    -0x34(%ebp),%eax
40c3fe:	33 c9                	xor    %ecx,%ecx
40c400:	2b 48 14             	sub    0x14(%eax),%ecx
40c403:	8b 45 cc             	mov    -0x34(%ebp),%eax
40c406:	8b 40 0c             	mov    0xc(%eax),%eax
40c409:	03 c1                	add    %ecx,%eax
40c40b:	50                   	push   %eax
40c40c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c40f:	8b 00                	mov    (%eax),%eax
40c411:	ff 75 e4             	push   -0x1c(%ebp)
40c414:	ff 50 0c             	call   *0xc(%eax)
40c417:	db e2                	fnclex
40c419:	89 45 88             	mov    %eax,-0x78(%ebp)
40c41c:	83 7d 88 00          	cmpl   $0x0,-0x78(%ebp)
40c420:	7d 1a                	jge    0x40c43c
40c422:	6a 0c                	push   $0xc
40c424:	68 c0 47 40 00       	push   $0x4047c0
40c429:	ff 75 e4             	push   -0x1c(%ebp)
40c42c:	ff 75 88             	push   -0x78(%ebp)
40c42f:	e8 a0 50 ff ff       	call   0x4014d4
40c434:	89 85 1c ff ff ff    	mov    %eax,-0xe4(%ebp)
40c43a:	eb 07                	jmp    0x40c443
40c43c:	83 a5 1c ff ff ff 00 	andl   $0x0,-0xe4(%ebp)
40c443:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c446:	50                   	push   %eax
40c447:	e8 8e 50 ff ff       	call   0x4014da
40c44c:	83 a5 7c ff ff ff 00 	andl   $0x0,-0x84(%ebp)
40c453:	8d 45 84             	lea    -0x7c(%ebp),%eax
40c456:	50                   	push   %eax
40c457:	e8 7e 50 ff ff       	call   0x4014da
40c45c:	e9 ea fa ff ff       	jmp    0x40bf4b
40c461:	83 65 80 00          	andl   $0x0,-0x80(%ebp)
40c465:	66 83 4d dc ff       	orw    $0xffff,-0x24(%ebp)
40c46a:	68 d5 c4 40 00       	push   $0x40c4d5
40c46f:	eb 2c                	jmp    0x40c49d
40c471:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c474:	50                   	push   %eax
40c475:	e8 60 50 ff ff       	call   0x4014da
40c47a:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40c47d:	e8 3a 50 ff ff       	call   0x4014bc
40c482:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40c485:	e8 62 50 ff ff       	call   0x4014ec
40c48a:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40c48d:	50                   	push   %eax
40c48e:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40c491:	50                   	push   %eax
40c492:	6a 02                	push   $0x2
40c494:	e8 f9 4f ff ff       	call   0x401492
40c499:	83 c4 0c             	add    $0xc,%esp
40c49c:	c3                   	ret
40c49d:	8d 45 84             	lea    -0x7c(%ebp),%eax
40c4a0:	50                   	push   %eax
40c4a1:	e8 34 50 ff ff       	call   0x4014da
40c4a6:	8d 45 ec             	lea    -0x14(%ebp),%eax
40c4a9:	50                   	push   %eax
40c4aa:	6a 00                	push   $0x0
40c4ac:	e8 1d 50 ff ff       	call   0x4014ce
40c4b1:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40c4b4:	e8 33 50 ff ff       	call   0x4014ec
40c4b9:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40c4bc:	e8 2b 50 ff ff       	call   0x4014ec
40c4c1:	8d 45 d8             	lea    -0x28(%ebp),%eax
40c4c4:	50                   	push   %eax
40c4c5:	6a 00                	push   $0x0
40c4c7:	e8 02 50 ff ff       	call   0x4014ce
40c4cc:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40c4cf:	e8 18 50 ff ff       	call   0x4014ec
40c4d4:	c3                   	ret
40c4d5:	66 8b 45 dc          	mov    -0x24(%ebp),%ax
40c4d9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c4dc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c4e3:	5f                   	pop    %edi
40c4e4:	5e                   	pop    %esi
40c4e5:	5b                   	pop    %ebx
40c4e6:	c9                   	leave
40c4e7:	c2 0c 00             	ret    $0xc
40c4ea:	55                   	push   %ebp
40c4eb:	8b ec                	mov    %esp,%ebp
40c4ed:	83 ec 0c             	sub    $0xc,%esp
40c4f0:	68 36 13 40 00       	push   $0x401336
40c4f5:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40c4fb:	50                   	push   %eax
40c4fc:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40c503:	6a 58                	push   $0x58
40c505:	58                   	pop    %eax
40c506:	e8 25 4e ff ff       	call   0x401330
40c50b:	53                   	push   %ebx
40c50c:	56                   	push   %esi
40c50d:	57                   	push   %edi
40c50e:	89 65 f4             	mov    %esp,-0xc(%ebp)
40c511:	c7 45 f8 48 12 40 00 	movl   $0x401248,-0x8(%ebp)
40c518:	ff 75 0c             	push   0xc(%ebp)
40c51b:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40c51e:	50                   	push   %eax
40c51f:	e8 c2 4f ff ff       	call   0x4014e6
40c524:	8d 45 ac             	lea    -0x54(%ebp),%eax
40c527:	50                   	push   %eax
40c528:	6a 04                	push   $0x4
40c52a:	8d 45 e8             	lea    -0x18(%ebp),%eax
40c52d:	50                   	push   %eax
40c52e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c531:	8b 00                	mov    (%eax),%eax
40c533:	ff 75 e4             	push   -0x1c(%ebp)
40c536:	ff 50 0c             	call   *0xc(%eax)
40c539:	db e2                	fnclex
40c53b:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40c53e:	83 7d a4 00          	cmpl   $0x0,-0x5c(%ebp)
40c542:	7d 17                	jge    0x40c55b
40c544:	6a 0c                	push   $0xc
40c546:	68 c0 47 40 00       	push   $0x4047c0
40c54b:	ff 75 e4             	push   -0x1c(%ebp)
40c54e:	ff 75 a4             	push   -0x5c(%ebp)
40c551:	e8 7e 4f ff ff       	call   0x4014d4
40c556:	89 45 98             	mov    %eax,-0x68(%ebp)
40c559:	eb 04                	jmp    0x40c55f
40c55b:	83 65 98 00          	andl   $0x0,-0x68(%ebp)
40c55f:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40c563:	7e 09                	jle    0x40c56e
40c565:	81 7d e8 ff 7f 00 00 	cmpl   $0x7fff,-0x18(%ebp)
40c56c:	7e 05                	jle    0x40c573
40c56e:	e9 8a 00 00 00       	jmp    0x40c5fd
40c573:	6a 20                	push   $0x20
40c575:	8d 45 c0             	lea    -0x40(%ebp),%eax
40c578:	50                   	push   %eax
40c579:	e8 90 4e ff ff       	call   0x40140e
40c57e:	8d 45 c0             	lea    -0x40(%ebp),%eax
40c581:	50                   	push   %eax
40c582:	ff 75 e8             	push   -0x18(%ebp)
40c585:	8d 45 b0             	lea    -0x50(%ebp),%eax
40c588:	50                   	push   %eax
40c589:	e8 8c 4e ff ff       	call   0x40141a
40c58e:	8d 55 b0             	lea    -0x50(%ebp),%edx
40c591:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40c594:	e8 f3 4e ff ff       	call   0x40148c
40c599:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40c59c:	e8 03 4f ff ff       	call   0x4014a4
40c5a1:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40c5a4:	50                   	push   %eax
40c5a5:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c5a8:	50                   	push   %eax
40c5a9:	e8 90 4e ff ff       	call   0x40143e
40c5ae:	50                   	push   %eax
40c5af:	e8 02 4f ff ff       	call   0x4014b6
40c5b4:	89 45 a8             	mov    %eax,-0x58(%ebp)
40c5b7:	8d 45 ac             	lea    -0x54(%ebp),%eax
40c5ba:	50                   	push   %eax
40c5bb:	8b 45 e8             	mov    -0x18(%ebp),%eax
40c5be:	d1 e0                	shl    $1,%eax
40c5c0:	50                   	push   %eax
40c5c1:	ff 75 a8             	push   -0x58(%ebp)
40c5c4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c5c7:	8b 00                	mov    (%eax),%eax
40c5c9:	ff 75 e4             	push   -0x1c(%ebp)
40c5cc:	ff 50 0c             	call   *0xc(%eax)
40c5cf:	db e2                	fnclex
40c5d1:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40c5d4:	83 7d a4 00          	cmpl   $0x0,-0x5c(%ebp)
40c5d8:	7d 17                	jge    0x40c5f1
40c5da:	6a 0c                	push   $0xc
40c5dc:	68 c0 47 40 00       	push   $0x4047c0
40c5e1:	ff 75 e4             	push   -0x1c(%ebp)
40c5e4:	ff 75 a4             	push   -0x5c(%ebp)
40c5e7:	e8 e8 4e ff ff       	call   0x4014d4
40c5ec:	89 45 94             	mov    %eax,-0x6c(%ebp)
40c5ef:	eb 04                	jmp    0x40c5f5
40c5f1:	83 65 94 00          	andl   $0x0,-0x6c(%ebp)
40c5f5:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40c5f8:	e8 bf 4e ff ff       	call   0x4014bc
40c5fd:	68 3a c6 40 00       	push   $0x40c63a
40c602:	eb 2d                	jmp    0x40c631
40c604:	8b 45 fc             	mov    -0x4(%ebp),%eax
40c607:	83 e0 04             	and    $0x4,%eax
40c60a:	85 c0                	test   %eax,%eax
40c60c:	74 08                	je     0x40c616
40c60e:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40c611:	e8 8e 4e ff ff       	call   0x4014a4
40c616:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40c619:	e8 9e 4e ff ff       	call   0x4014bc
40c61e:	8d 45 b0             	lea    -0x50(%ebp),%eax
40c621:	50                   	push   %eax
40c622:	8d 45 c0             	lea    -0x40(%ebp),%eax
40c625:	50                   	push   %eax
40c626:	6a 02                	push   $0x2
40c628:	e8 65 4e ff ff       	call   0x401492
40c62d:	83 c4 0c             	add    $0xc,%esp
40c630:	c3                   	ret
40c631:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40c634:	e8 b3 4e ff ff       	call   0x4014ec
40c639:	c3                   	ret
40c63a:	8d 75 d4             	lea    -0x2c(%ebp),%esi
40c63d:	8b 7d 08             	mov    0x8(%ebp),%edi
40c640:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c641:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c642:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c643:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c644:	8b 45 08             	mov    0x8(%ebp),%eax
40c647:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40c64a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c651:	5f                   	pop    %edi
40c652:	5e                   	pop    %esi
40c653:	5b                   	pop    %ebx
40c654:	c9                   	leave
40c655:	c2 08 00             	ret    $0x8
40c658:	55                   	push   %ebp
40c659:	8b ec                	mov    %esp,%ebp
40c65b:	83 ec 0c             	sub    $0xc,%esp
40c65e:	68 36 13 40 00       	push   $0x401336
40c663:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40c669:	50                   	push   %eax
40c66a:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40c671:	6a 58                	push   $0x58
40c673:	58                   	pop    %eax
40c674:	e8 b7 4c ff ff       	call   0x401330
40c679:	53                   	push   %ebx
40c67a:	56                   	push   %esi
40c67b:	57                   	push   %edi
40c67c:	89 65 f4             	mov    %esp,-0xc(%ebp)
40c67f:	c7 45 f8 58 12 40 00 	movl   $0x401258,-0x8(%ebp)
40c686:	ff 75 0c             	push   0xc(%ebp)
40c689:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40c68c:	50                   	push   %eax
40c68d:	e8 54 4e ff ff       	call   0x4014e6
40c692:	8d 45 a8             	lea    -0x58(%ebp),%eax
40c695:	50                   	push   %eax
40c696:	6a 04                	push   $0x4
40c698:	8d 45 d8             	lea    -0x28(%ebp),%eax
40c69b:	50                   	push   %eax
40c69c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40c69f:	8b 00                	mov    (%eax),%eax
40c6a1:	ff 75 d4             	push   -0x2c(%ebp)
40c6a4:	ff 50 0c             	call   *0xc(%eax)
40c6a7:	db e2                	fnclex