40f3fb:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40f3fe:	89 75 08             	mov    %esi,0x8(%ebp)
40f401:	e8 60 3a ff ff       	call   0x402e66
40f406:	c7 47 28 01 00 00 00 	movl   $0x1,0x28(%edi)
40f40d:	eb 03                	jmp    0x40f412
40f40f:	89 77 28             	mov    %esi,0x28(%edi)
40f412:	39 73 20             	cmp    %esi,0x20(%ebx)
40f415:	74 19                	je     0x40f430
40f417:	8d 4d 08             	lea    0x8(%ebp),%ecx
40f41a:	e8 06 e0 ff ff       	call   0x40d425
40f41f:	50                   	push   %eax
40f420:	8d 4f 20             	lea    0x20(%edi),%ecx
40f423:	e8 3c 3e ff ff       	call   0x403264
40f428:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f42b:	e8 fd 65 ff ff       	call   0x405a2d
40f430:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40f433:	e8 2e 3a ff ff       	call   0x402e66
40f438:	5f                   	pop    %edi
40f439:	5e                   	pop    %esi
40f43a:	5b                   	pop    %ebx
40f43b:	c9                   	leave
40f43c:	c2 04 00             	ret    $0x4
40f43f:	8b d1                	mov    %ecx,%edx
40f441:	33 c0                	xor    %eax,%eax
40f443:	89 02                	mov    %eax,(%edx)
40f445:	8d 4a 30             	lea    0x30(%edx),%ecx
40f448:	89 42 04             	mov    %eax,0x4(%edx)
40f44b:	89 42 10             	mov    %eax,0x10(%edx)
40f44e:	89 42 14             	mov    %eax,0x14(%edx)
40f451:	89 42 18             	mov    %eax,0x18(%edx)
40f454:	89 42 1c             	mov    %eax,0x1c(%edx)
40f457:	89 42 20             	mov    %eax,0x20(%edx)
40f45a:	e8 1a 63 ff ff       	call   0x405779
40f45f:	8b c2                	mov    %edx,%eax
40f461:	c3                   	ret
40f462:	55                   	push   %ebp
40f463:	8b ec                	mov    %esp,%ebp
40f465:	51                   	push   %ecx
40f466:	51                   	push   %ecx
40f467:	56                   	push   %esi
40f468:	8b f1                	mov    %ecx,%esi
40f46a:	83 3e 00             	cmpl   $0x0,(%esi)
40f46d:	74 21                	je     0x40f490
40f46f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f472:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f475:	6a 01                	push   $0x1
40f477:	50                   	push   %eax
40f478:	e8 d1 3b ff ff       	call   0x40304e
40f47d:	50                   	push   %eax
40f47e:	ff 75 08             	push   0x8(%ebp)
40f481:	8b ce                	mov    %esi,%ecx
40f483:	e8 43 fb ff ff       	call   0x40efcb
40f488:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40f48b:	e8 d6 39 ff ff       	call   0x402e66
40f490:	5e                   	pop    %esi
40f491:	c9                   	leave
40f492:	c2 08 00             	ret    $0x8
40f495:	55                   	push   %ebp
40f496:	8b ec                	mov    %esp,%ebp
40f498:	83 ec 0c             	sub    $0xc,%esp
40f49b:	56                   	push   %esi
40f49c:	33 f6                	xor    %esi,%esi
40f49e:	89 75 f4             	mov    %esi,-0xc(%ebp)
40f4a1:	89 75 f8             	mov    %esi,-0x8(%ebp)
40f4a4:	89 75 fc             	mov    %esi,-0x4(%ebp)
40f4a7:	39 31                	cmp    %esi,(%ecx)
40f4a9:	75 10                	jne    0x40f4bb
40f4ab:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f4ae:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f4b1:	50                   	push   %eax
40f4b2:	e8 a3 3f ff ff       	call   0x40345a
40f4b7:	33 c9                	xor    %ecx,%ecx
40f4b9:	eb 3e                	jmp    0x40f4f9
40f4bb:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f4be:	50                   	push   %eax
40f4bf:	ff 75 0c             	push   0xc(%ebp)
40f4c2:	e8 9a fa ff ff       	call   0x40ef61
40f4c7:	85 c0                	test   %eax,%eax
40f4c9:	74 20                	je     0x40f4eb
40f4cb:	8d 45 0c             	lea    0xc(%ebp),%eax
40f4ce:	50                   	push   %eax
40f4cf:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40f4d2:	e8 31 38 ff ff       	call   0x402d08
40f4d7:	50                   	push   %eax
40f4d8:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40f4db:	e8 84 3d ff ff       	call   0x403264
40f4e0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f4e3:	e8 45 65 ff ff       	call   0x405a2d
40f4e8:	8b 75 fc             	mov    -0x4(%ebp),%esi
40f4eb:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f4ee:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f4f1:	50                   	push   %eax
40f4f2:	e8 63 3f ff ff       	call   0x40345a
40f4f7:	8b ce                	mov    %esi,%ecx
40f4f9:	e8 2f 65 ff ff       	call   0x405a2d
40f4fe:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40f501:	e8 60 39 ff ff       	call   0x402e66
40f506:	8b 45 08             	mov    0x8(%ebp),%eax
40f509:	5e                   	pop    %esi
40f50a:	c9                   	leave
40f50b:	c2 08 00             	ret    $0x8
40f50e:	55                   	push   %ebp
40f50f:	8b ec                	mov    %esp,%ebp
40f511:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f514:	6a 1a                	push   $0x1a
40f516:	5a                   	pop    %edx
40f517:	e8 3f e2 ff ff       	call   0x40d75b
40f51c:	8b 45 08             	mov    0x8(%ebp),%eax
40f51f:	5d                   	pop    %ebp
40f520:	c2 04 00             	ret    $0x4
40f523:	55                   	push   %ebp
40f524:	8b ec                	mov    %esp,%ebp
40f526:	81 ec 64 03 00 00    	sub    $0x364,%esp
40f52c:	53                   	push   %ebx
40f52d:	56                   	push   %esi
40f52e:	57                   	push   %edi
40f52f:	8b f9                	mov    %ecx,%edi
40f531:	8d 57 10             	lea    0x10(%edi),%edx
40f534:	e8 96 f9 ff ff       	call   0x40eecf
40f539:	33 db                	xor    %ebx,%ebx
40f53b:	39 5f 68             	cmp    %ebx,0x68(%edi)
40f53e:	74 0d                	je     0x40f54d
40f540:	53                   	push   %ebx
40f541:	ff 35 9c 67 41 00    	push   0x41679c
40f547:	ff 15 88 20 41 00    	call   *0x412088
40f54d:	39 5f 50             	cmp    %ebx,0x50(%edi)
40f550:	74 3d                	je     0x40f58f
40f552:	53                   	push   %ebx
40f553:	68 06 00 02 00       	push   $0x20006
40f558:	8d 47 14             	lea    0x14(%edi),%eax
40f55b:	50                   	push   %eax
40f55c:	ff 77 08             	push   0x8(%edi)
40f55f:	8d 77 04             	lea    0x4(%edi),%esi
40f562:	8b ce                	mov    %esi,%ecx
40f564:	e8 95 fa ff ff       	call   0x40effe
40f569:	8d 47 54             	lea    0x54(%edi),%eax
40f56c:	50                   	push   %eax
40f56d:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40f570:	e8 e5 3e ff ff       	call   0x40345a
40f575:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f578:	8b ce                	mov    %esi,%ecx
40f57a:	50                   	push   %eax
40f57b:	e8 6a f9 ff ff       	call   0x40eeea
40f580:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f583:	e8 a5 64 ff ff       	call   0x405a2d
40f588:	8b ce                	mov    %esi,%ecx
40f58a:	e8 bd f9 ff ff       	call   0x40ef4c
40f58f:	6a 44                	push   $0x44
40f591:	8d 45 a8             	lea    -0x58(%ebp),%eax
40f594:	53                   	push   %ebx
40f595:	50                   	push   %eax
40f596:	e8 b7 1a ff ff       	call   0x401052
40f59b:	33 c0                	xor    %eax,%eax
40f59d:	8d 7d ec             	lea    -0x14(%ebp),%edi
40f5a0:	ab                   	stos   %eax,%es:(%edi)
40f5a1:	83 c4 0c             	add    $0xc,%esp
40f5a4:	ab                   	stos   %eax,%es:(%edi)
40f5a5:	68 04 01 00 00       	push   $0x104
40f5aa:	ab                   	stos   %eax,%es:(%edi)
40f5ab:	ab                   	stos   %eax,%es:(%edi)
40f5ac:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
40f5b2:	50                   	push   %eax
40f5b3:	53                   	push   %ebx
40f5b4:	ff 15 14 22 41 00    	call   *0x412214
40f5ba:	6a 37                	push   $0x37
40f5bc:	8d 85 9c fc ff ff    	lea    -0x364(%ebp),%eax
40f5c2:	68 44 46 41 00       	push   $0x414644
40f5c7:	50                   	push   %eax
40f5c8:	e8 5f 1a ff ff       	call   0x40102c
40f5cd:	6a 01                	push   $0x1
40f5cf:	be 7c 46 41 00       	mov    $0x41467c,%esi
40f5d4:	8d 85 d3 fc ff ff    	lea    -0x32d(%ebp),%eax
40f5da:	56                   	push   %esi
40f5db:	50                   	push   %eax
40f5dc:	e8 4b 1a ff ff       	call   0x40102c
40f5e1:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
40f5e7:	50                   	push   %eax
40f5e8:	e8 e8 1a ff ff       	call   0x4010d5
40f5ed:	50                   	push   %eax
40f5ee:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
40f5f4:	50                   	push   %eax
40f5f5:	8d 85 d4 fc ff ff    	lea    -0x32c(%ebp),%eax
40f5fb:	50                   	push   %eax
40f5fc:	e8 2b 1a ff ff       	call   0x40102c
40f601:	8d 85 a4 fe ff ff    	lea    -0x15c(%ebp),%eax
40f607:	50                   	push   %eax
40f608:	e8 c8 1a ff ff       	call   0x4010d5
40f60d:	83 c0 38             	add    $0x38,%eax
40f610:	8d 8d 9c fc ff ff    	lea    -0x364(%ebp),%ecx
40f616:	6a 02                	push   $0x2
40f618:	03 c1                	add    %ecx,%eax
40f61a:	56                   	push   %esi
40f61b:	50                   	push   %eax
40f61c:	e8 0b 1a ff ff       	call   0x40102c
40f621:	83 c4 38             	add    $0x38,%esp
40f624:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f627:	50                   	push   %eax
40f628:	8d 45 a8             	lea    -0x58(%ebp),%eax
40f62b:	50                   	push   %eax
40f62c:	53                   	push   %ebx
40f62d:	53                   	push   %ebx
40f62e:	68 00 00 00 08       	push   $0x8000000
40f633:	53                   	push   %ebx
40f634:	53                   	push   %ebx
40f635:	53                   	push   %ebx
40f636:	8d 85 9c fc ff ff    	lea    -0x364(%ebp),%eax
40f63c:	50                   	push   %eax
40f63d:	53                   	push   %ebx
40f63e:	ff 15 68 21 41 00    	call   *0x412168
40f644:	ff 75 f0             	push   -0x10(%ebp)
40f647:	8b 35 00 22 41 00    	mov    0x412200,%esi
40f64d:	ff d6                	call   *%esi
40f64f:	ff 75 ec             	push   -0x14(%ebp)
40f652:	ff d6                	call   *%esi
40f654:	53                   	push   %ebx
40f655:	ff 15 b0 21 41 00    	call   *0x4121b0
40f65b:	cc                   	int3
40f65c:	55                   	push   %ebp
40f65d:	8b ec                	mov    %esp,%ebp
40f65f:	51                   	push   %ecx
40f660:	56                   	push   %esi
40f661:	ff 75 0c             	push   0xc(%ebp)
40f664:	ff 15 f4 21 41 00    	call   *0x4121f4
40f66a:	8b f0                	mov    %eax,%esi
40f66c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f66f:	50                   	push   %eax
40f670:	68 06 00 02 00       	push   $0x20006
40f675:	6a 00                	push   $0x0
40f677:	68 e8 46 41 00       	push   $0x4146e8
40f67c:	68 01 00 00 80       	push   $0x80000001
40f681:	ff 15 10 20 41 00    	call   *0x412010
40f687:	85 c0                	test   %eax,%eax
40f689:	74 0b                	je     0x40f696
40f68b:	50                   	push   %eax
40f68c:	ff 15 10 22 41 00    	call   *0x412210
40f692:	32 c0                	xor    %al,%al
40f694:	eb 28                	jmp    0x40f6be
40f696:	56                   	push   %esi
40f697:	ff 75 0c             	push   0xc(%ebp)
40f69a:	6a 01                	push   $0x1
40f69c:	6a 00                	push   $0x0
40f69e:	ff 75 08             	push   0x8(%ebp)
40f6a1:	ff 75 fc             	push   -0x4(%ebp)
40f6a4:	ff 15 68 20 41 00    	call   *0x412068
40f6aa:	ff 75 fc             	push   -0x4(%ebp)
40f6ad:	8b f0                	mov    %eax,%esi
40f6af:	ff 15 20 20 41 00    	call   *0x412020
40f6b5:	85 f6                	test   %esi,%esi
40f6b7:	74 03                	je     0x40f6bc
40f6b9:	56                   	push   %esi
40f6ba:	eb d0                	jmp    0x40f68c
40f6bc:	b0 01                	mov    $0x1,%al
40f6be:	5e                   	pop    %esi
40f6bf:	c9                   	leave
40f6c0:	c3                   	ret
40f6c1:	55                   	push   %ebp
40f6c2:	8b ec                	mov    %esp,%ebp
40f6c4:	83 ec 28             	sub    $0x28,%esp
40f6c7:	8d 45 d8             	lea    -0x28(%ebp),%eax
40f6ca:	56                   	push   %esi
40f6cb:	6a 01                	push   $0x1
40f6cd:	50                   	push   %eax
40f6ce:	ff 15 08 20 41 00    	call   *0x412008
40f6d4:	85 c0                	test   %eax,%eax
40f6d6:	74 60                	je     0x40f738
40f6d8:	33 f6                	xor    %esi,%esi
40f6da:	8d 45 d8             	lea    -0x28(%ebp),%eax
40f6dd:	56                   	push   %esi
40f6de:	56                   	push   %esi
40f6df:	6a 01                	push   $0x1
40f6e1:	50                   	push   %eax
40f6e2:	ff 15 00 20 41 00    	call   *0x412000
40f6e8:	85 c0                	test   %eax,%eax
40f6ea:	74 4c                	je     0x40f738
40f6ec:	8d 45 d8             	lea    -0x28(%ebp),%eax
40f6ef:	c7 45 ec 0c 00 00 00 	movl   $0xc,-0x14(%ebp)
40f6f6:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f6f9:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f6fc:	50                   	push   %eax
40f6fd:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f700:	89 75 f4             	mov    %esi,-0xc(%ebp)
40f703:	50                   	push   %eax
40f704:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f707:	50                   	push   %eax
40f708:	68 06 00 02 00       	push   $0x20006
40f70d:	56                   	push   %esi
40f70e:	56                   	push   %esi
40f70f:	56                   	push   %esi
40f710:	68 e8 46 41 00       	push   $0x4146e8
40f715:	68 01 00 00 80       	push   $0x80000001
40f71a:	ff 15 3c 20 41 00    	call   *0x41203c
40f720:	85 c0                	test   %eax,%eax
40f722:	75 0d                	jne    0x40f731
40f724:	ff 75 fc             	push   -0x4(%ebp)
40f727:	ff 15 20 20 41 00    	call   *0x412020
40f72d:	b0 01                	mov    $0x1,%al
40f72f:	eb 09                	jmp    0x40f73a
40f731:	50                   	push   %eax
40f732:	ff 15 10 22 41 00    	call   *0x412210
40f738:	32 c0                	xor    %al,%al
40f73a:	5e                   	pop    %esi
40f73b:	c9                   	leave
40f73c:	c3                   	ret
40f73d:	55                   	push   %ebp
40f73e:	8b ec                	mov    %esp,%ebp
40f740:	51                   	push   %ecx
40f741:	53                   	push   %ebx
40f742:	56                   	push   %esi
40f743:	57                   	push   %edi
40f744:	68 00 08 00 00       	push   $0x800
40f749:	8b d9                	mov    %ecx,%ebx
40f74b:	e8 5d 19 ff ff       	call   0x4010ad
40f750:	8b f8                	mov    %eax,%edi
40f752:	be 00 3c 41 00       	mov    $0x413c00,%esi
40f757:	59                   	pop    %ecx
40f758:	8b d7                	mov    %edi,%edx
40f75a:	2b f7                	sub    %edi,%esi
40f75c:	b8 01 06 00 00       	mov    $0x601,%eax
40f761:	8a 0c 16             	mov    (%esi,%edx,1),%cl
40f764:	80 f1 45             	xor    $0x45,%cl
40f767:	88 0a                	mov    %cl,(%edx)
40f769:	42                   	inc    %edx
40f76a:	83 e8 01             	sub    $0x1,%eax
40f76d:	75 f2                	jne    0x40f761
40f76f:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f772:	50                   	push   %eax
40f773:	6a 40                	push   $0x40
40f775:	68 d0 07 00 00       	push   $0x7d0
40f77a:	57                   	push   %edi
40f77b:	ff 15 70 21 41 00    	call   *0x412170
40f781:	6a 40                	push   $0x40
40f783:	68 00 10 00 00       	push   $0x1000
40f788:	68 fe 01 00 00       	push   $0x1fe
40f78d:	6a 00                	push   $0x0
40f78f:	ff 15 d8 21 41 00    	call   *0x4121d8
40f795:	8b f0                	mov    %eax,%esi
40f797:	68 04 01 00 00       	push   $0x104
40f79c:	56                   	push   %esi
40f79d:	ff 15 7c 21 41 00    	call   *0x41217c
40f7a3:	6a 28                	push   $0x28
40f7a5:	68 b0 46 41 00       	push   $0x4146b0
40f7aa:	56                   	push   %esi
40f7ab:	ff 15 fc 21 41 00    	call   *0x4121fc
40f7b1:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
40f7b4:	51                   	push   %ecx
40f7b5:	e8 72 18 ff ff       	call   0x40102c
40f7ba:	83 c4 0c             	add    $0xc,%esp
40f7bd:	8d 87 ef 00 00 00    	lea    0xef(%edi),%eax
40f7c3:	6a 00                	push   $0x0
40f7c5:	6a 00                	push   $0x0