40845f:	ff 15 30 f1 40 00    	call   *0x40f130
408465:	6a f5                	push   $0xfffffff5
408467:	ff 15 38 f1 40 00    	call   *0x40f138
40846d:	a3 88 a3 40 00       	mov    %eax,0x40a388
408472:	83 f8 ff             	cmp    $0xffffffff,%eax
408475:	75 08                	jne    0x40847f
408477:	6a 57                	push   $0x57
408479:	58                   	pop    %eax
40847a:	e9 0b 02 00 00       	jmp    0x40868a
40847f:	50                   	push   %eax
408480:	ff 15 f0 f0 40 00    	call   *0x40f0f0
408486:	57                   	push   %edi
408487:	57                   	push   %edi
408488:	6a 01                	push   $0x1
40848a:	57                   	push   %edi
40848b:	a3 a0 e3 40 00       	mov    %eax,0x40e3a0
408490:	ff 15 10 f1 40 00    	call   *0x40f110
408496:	e8 f2 0b 00 00       	call   0x40908d
40849b:	84 c0                	test   %al,%al
40849d:	74 0c                	je     0x4084ab
40849f:	57                   	push   %edi
4084a0:	68 e0 11 40 00       	push   $0x4011e0
4084a5:	ff 15 7c f1 40 00    	call   *0x40f17c
4084ab:	8d 44 24 0c          	lea    0xc(%esp),%eax
4084af:	50                   	push   %eax
4084b0:	ff 15 54 f0 40 00    	call   *0x40f054
4084b6:	85 c0                	test   %eax,%eax
4084b8:	75 19                	jne    0x4084d3
4084ba:	ff 74 24 14          	push   0x14(%esp)
4084be:	ff 74 24 14          	push   0x14(%esp)
4084c2:	ff 74 24 14          	push   0x14(%esp)
4084c6:	68 8b 04 00 00       	push   $0x48b
4084cb:	e8 bf a4 ff ff       	call   0x40298f
4084d0:	83 c4 10             	add    $0x10,%esp
4084d3:	8d 44 24 18          	lea    0x18(%esp),%eax
4084d7:	50                   	push   %eax
4084d8:	68 01 01 00 00       	push   $0x101
4084dd:	ff 15 c4 f0 40 00    	call   *0x40f0c4
4084e3:	8b f0                	mov    %eax,%esi
4084e5:	85 f6                	test   %esi,%esi
4084e7:	0f 85 51 01 00 00    	jne    0x40863e
4084ed:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
4084f1:	0f 85 30 01 00 00    	jne    0x408627
4084f7:	57                   	push   %edi
4084f8:	e8 7c 0b 00 00       	call   0x409079
4084fd:	59                   	pop    %ecx
4084fe:	50                   	push   %eax
4084ff:	ff 15 98 f1 40 00    	call   *0x40f198
408505:	59                   	pop    %ecx
408506:	85 c0                	test   %eax,%eax
408508:	0f 85 28 01 00 00    	jne    0x408636
40850e:	bb a0 a3 40 00       	mov    $0x40a3a0,%ebx
408513:	8d 84 24 e8 01 00 00 	lea    0x1e8(%esp),%eax
40851a:	50                   	push   %eax
40851b:	ff 15 78 f0 40 00    	call   *0x40f078
408521:	8b f0                	mov    %eax,%esi
408523:	85 f6                	test   %esi,%esi
408525:	0f 85 b0 00 00 00    	jne    0x4085db
40852b:	8d 84 24 e8 01 00 00 	lea    0x1e8(%esp),%eax
408532:	50                   	push   %eax
408533:	68 8c 04 00 00       	push   $0x48c
408538:	e8 52 a4 ff ff       	call   0x40298f
40853d:	57                   	push   %edi
40853e:	e8 36 0b 00 00       	call   0x409079
408543:	83 c4 0c             	add    $0xc,%esp
408546:	50                   	push   %eax
408547:	68 00 10 00 00       	push   $0x1000
40854c:	68 a0 c3 40 00       	push   $0x40c3a0
408551:	ff 15 94 f1 40 00    	call   *0x40f194
408557:	83 c4 0c             	add    $0xc,%esp
40855a:	85 c0                	test   %eax,%eax
40855c:	74 64                	je     0x4085c2
40855e:	be 00 10 00 00       	mov    $0x1000,%esi
408563:	8b cb                	mov    %ebx,%ecx
408565:	68 28 24 40 00       	push   $0x402428
40856a:	8b d6                	mov    %esi,%edx
40856c:	e8 ef a1 ff ff       	call   0x402760
408571:	68 a0 c3 40 00       	push   $0x40c3a0
408576:	8b d6                	mov    %esi,%edx
408578:	8b cb                	mov    %ebx,%ecx
40857a:	e8 16 a2 ff ff       	call   0x402795
40857f:	8b cb                	mov    %ebx,%ecx
408581:	8d 51 02             	lea    0x2(%ecx),%edx
408584:	66 8b 01             	mov    (%ecx),%ax
408587:	83 c1 02             	add    $0x2,%ecx
40858a:	66 3b c7             	cmp    %di,%ax
40858d:	75 f5                	jne    0x408584
40858f:	2b ca                	sub    %edx,%ecx
408591:	d1 f9                	sar    $1,%ecx
408593:	8d 0c 4d fe ff ff ff 	lea    -0x2(,%ecx,2),%ecx
40859a:	66 83 b9 a0 a3 40 00 	cmpw   $0xa,0x40a3a0(%ecx)
4085a1:	0a
4085a2:	75 15                	jne    0x4085b9
4085a4:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
4085aa:	0f 83 ef 00 00 00    	jae    0x40869f
4085b0:	33 c0                	xor    %eax,%eax
4085b2:	66 89 81 a0 a3 40 00 	mov    %ax,0x40a3a0(%ecx)
4085b9:	8b cb                	mov    %ebx,%ecx
4085bb:	e8 71 f7 ff ff       	call   0x407d31
4085c0:	8b f0                	mov    %eax,%esi
4085c2:	57                   	push   %edi
4085c3:	e8 b1 0a 00 00       	call   0x409079
4085c8:	59                   	pop    %ecx
4085c9:	50                   	push   %eax
4085ca:	ff 15 98 f1 40 00    	call   *0x40f198
4085d0:	59                   	pop    %ecx
4085d1:	85 c0                	test   %eax,%eax
4085d3:	0f 84 3a ff ff ff    	je     0x408513
4085d9:	eb 5b                	jmp    0x408636
4085db:	6a 20                	push   $0x20
4085dd:	8d 84 24 ac 01 00 00 	lea    0x1ac(%esp),%eax
4085e4:	50                   	push   %eax
4085e5:	68 8d 04 00 00       	push   $0x48d
4085ea:	57                   	push   %edi
4085eb:	ff 15 20 f1 40 00    	call   *0x40f120
4085f1:	85 c0                	test   %eax,%eax
4085f3:	75 08                	jne    0x4085fd
4085f5:	66 89 84 24 a8 01 00 	mov    %ax,0x1a8(%esp)
4085fc:	00
4085fd:	56                   	push   %esi
4085fe:	ba 04 01 00 00       	mov    $0x104,%edx
408603:	8d 8c 24 ac 03 00 00 	lea    0x3ac(%esp),%ecx
40860a:	e8 d6 a8 ff ff       	call   0x402ee5
40860f:	50                   	push   %eax
408610:	8d 84 24 ac 01 00 00 	lea    0x1ac(%esp),%eax
408617:	50                   	push   %eax
408618:	68 a0 19 40 00       	push   $0x4019a0
40861d:	e8 98 a2 ff ff       	call   0x4028ba
408622:	83 c4 0c             	add    $0xc,%esp
408625:	eb 0f                	jmp    0x408636
408627:	ff 15 3c f1 40 00    	call   *0x40f13c
40862d:	8b c8                	mov    %eax,%ecx
40862f:	e8 fd f6 ff ff       	call   0x407d31
408634:	8b f0                	mov    %eax,%esi
408636:	ff 15 bc f0 40 00    	call   *0x40f0bc
40863c:	eb 4a                	jmp    0x408688
40863e:	6a 20                	push   $0x20
408640:	8d 84 24 ac 01 00 00 	lea    0x1ac(%esp),%eax
408647:	50                   	push   %eax
408648:	68 8f 04 00 00       	push   $0x48f
40864d:	57                   	push   %edi
40864e:	ff 15 20 f1 40 00    	call   *0x40f120
408654:	85 c0                	test   %eax,%eax
408656:	75 08                	jne    0x408660
408658:	66 89 84 24 a8 01 00 	mov    %ax,0x1a8(%esp)
40865f:	00
408660:	56                   	push   %esi
408661:	ba 04 01 00 00       	mov    $0x104,%edx
408666:	8d 8c 24 ac 03 00 00 	lea    0x3ac(%esp),%ecx
40866d:	e8 73 a8 ff ff       	call   0x402ee5
408672:	50                   	push   %eax
408673:	8d 84 24 ac 01 00 00 	lea    0x1ac(%esp),%eax
40867a:	50                   	push   %eax
40867b:	68 a0 19 40 00       	push   $0x4019a0
408680:	e8 35 a2 ff ff       	call   0x4028ba
408685:	83 c4 0c             	add    $0xc,%esp
408688:	8b c6                	mov    %esi,%eax
40868a:	8b 8c 24 b4 05 00 00 	mov    0x5b4(%esp),%ecx
408691:	5f                   	pop    %edi
408692:	5e                   	pop    %esi
408693:	5b                   	pop    %ebx
408694:	33 cc                	xor    %esp,%ecx
408696:	e8 35 04 00 00       	call   0x408ad0
40869b:	8b e5                	mov    %ebp,%esp
40869d:	5d                   	pop    %ebp
40869e:	c3                   	ret
40869f:	e8 74 05 00 00       	call   0x408c18
4086a4:	cc                   	int3
4086a5:	8b ff                	mov    %edi,%edi
4086a7:	55                   	push   %ebp
4086a8:	8b ec                	mov    %esp,%ebp
4086aa:	83 ec 1c             	sub    $0x1c,%esp
4086ad:	53                   	push   %ebx
4086ae:	8b 5d 08             	mov    0x8(%ebp),%ebx
4086b1:	56                   	push   %esi
4086b2:	57                   	push   %edi
4086b3:	68 24 02 00 00       	push   $0x224
4086b8:	6a 00                	push   $0x0
4086ba:	53                   	push   %ebx
4086bb:	8b f1                	mov    %ecx,%esi
4086bd:	e8 22 0a 00 00       	call   0x4090e4
4086c2:	83 c4 0c             	add    $0xc,%esp
4086c5:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4086c8:	33 ff                	xor    %edi,%edi
4086ca:	47                   	inc    %edi
4086cb:	50                   	push   %eax
4086cc:	57                   	push   %edi
4086cd:	56                   	push   %esi
4086ce:	ff 15 b4 f0 40 00    	call   *0x40f0b4
4086d4:	8b d0                	mov    %eax,%edx
4086d6:	85 d2                	test   %edx,%edx
4086d8:	75 31                	jne    0x40870b
4086da:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
4086dd:	75 08                	jne    0x4086e7
4086df:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4086e2:	89 4b 04             	mov    %ecx,0x4(%ebx)
4086e5:	eb 19                	jmp    0x408700
4086e7:	8b 45 e8             	mov    -0x18(%ebp),%eax
4086ea:	8d 7b 08             	lea    0x8(%ebx),%edi
4086ed:	8d 75 f0             	lea    -0x10(%ebp),%esi
4086f0:	89 43 18             	mov    %eax,0x18(%ebx)
4086f3:	8b 45 ec             	mov    -0x14(%ebp),%eax
4086f6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4086f7:	6a 02                	push   $0x2
4086f9:	89 43 1c             	mov    %eax,0x1c(%ebx)
4086fc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4086fd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4086fe:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4086ff:	5f                   	pop    %edi
408700:	b8 00 02 00 00       	mov    $0x200,%eax
408705:	89 3b                	mov    %edi,(%ebx)
408707:	66 89 43 20          	mov    %ax,0x20(%ebx)
40870b:	5f                   	pop    %edi
40870c:	5e                   	pop    %esi
40870d:	8b c2                	mov    %edx,%eax
40870f:	5b                   	pop    %ebx
408710:	c9                   	leave
408711:	c2 04 00             	ret    $0x4
408714:	8b ff                	mov    %edi,%edi
408716:	55                   	push   %ebp
408717:	8b ec                	mov    %esp,%ebp
408719:	51                   	push   %ecx
40871a:	51                   	push   %ecx
40871b:	53                   	push   %ebx
40871c:	56                   	push   %esi
40871d:	57                   	push   %edi
40871e:	8d 45 fc             	lea    -0x4(%ebp),%eax
408721:	8b d9                	mov    %ecx,%ebx
408723:	50                   	push   %eax
408724:	6a 00                	push   $0x0
408726:	6a 00                	push   $0x0
408728:	8b fa                	mov    %edx,%edi
40872a:	53                   	push   %ebx
40872b:	89 7d f8             	mov    %edi,-0x8(%ebp)
40872e:	ff 15 fc f0 40 00    	call   *0x40f0fc
408734:	85 c0                	test   %eax,%eax
408736:	74 04                	je     0x40873c
408738:	33 f6                	xor    %esi,%esi
40873a:	eb 61                	jmp    0x40879d
40873c:	ff 15 e0 f0 40 00    	call   *0x40f0e0
408742:	8b f0                	mov    %eax,%esi
408744:	81 fe ea 00 00 00    	cmp    $0xea,%esi
40874a:	75 4d                	jne    0x408799
40874c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40874f:	03 c0                	add    %eax,%eax
408751:	50                   	push   %eax
408752:	ff 15 a4 f0 40 00    	call   *0x40f0a4
408758:	8b f8                	mov    %eax,%edi
40875a:	85 ff                	test   %edi,%edi
40875c:	74 5c                	je     0x4087ba
40875e:	8d 45 fc             	lea    -0x4(%ebp),%eax
408761:	50                   	push   %eax
408762:	ff 75 fc             	push   -0x4(%ebp)
408765:	57                   	push   %edi
408766:	53                   	push   %ebx
408767:	ff 15 fc f0 40 00    	call   *0x40f0fc
40876d:	85 c0                	test   %eax,%eax
40876f:	74 04                	je     0x408775
408771:	33 f6                	xor    %esi,%esi
408773:	eb 0c                	jmp    0x408781
408775:	ff 15 e0 f0 40 00    	call   *0x40f0e0
40877b:	8b f0                	mov    %eax,%esi
40877d:	85 f6                	test   %esi,%esi
40877f:	75 0f                	jne    0x408790
408781:	8b 45 f8             	mov    -0x8(%ebp),%eax
408784:	8b 4d 08             	mov    0x8(%ebp),%ecx
408787:	89 38                	mov    %edi,(%eax)
408789:	8b 45 fc             	mov    -0x4(%ebp),%eax
40878c:	89 01                	mov    %eax,(%ecx)
40878e:	eb 37                	jmp    0x4087c7
408790:	57                   	push   %edi
408791:	ff 15 b0 f0 40 00    	call   *0x40f0b0
408797:	eb 2e                	jmp    0x4087c7
408799:	85 f6                	test   %esi,%esi
40879b:	75 22                	jne    0x4087bf
40879d:	6a 04                	push   $0x4
40879f:	ff 15 a4 f0 40 00    	call   *0x40f0a4
4087a5:	85 c0                	test   %eax,%eax
4087a7:	74 11                	je     0x4087ba
4087a9:	33 c9                	xor    %ecx,%ecx
4087ab:	89 07                	mov    %eax,(%edi)
4087ad:	89 08                	mov    %ecx,(%eax)
4087af:	8b 45 08             	mov    0x8(%ebp),%eax
4087b2:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
4087b8:	eb 0d                	jmp    0x4087c7
4087ba:	6a 08                	push   $0x8
4087bc:	5e                   	pop    %esi
4087bd:	eb 08                	jmp    0x4087c7
4087bf:	ff 15 e0 f0 40 00    	call   *0x40f0e0
4087c5:	8b f0                	mov    %eax,%esi
4087c7:	5f                   	pop    %edi
4087c8:	8b c6                	mov    %esi,%eax
4087ca:	5e                   	pop    %esi
4087cb:	5b                   	pop    %ebx
4087cc:	c9                   	leave
4087cd:	c2 04 00             	ret    $0x4
4087d0:	e8 48 02 00 00       	call   0x408a1d
4087d5:	6a 01                	push   $0x1
4087d7:	a3 38 a0 40 00       	mov    %eax,0x40a038
4087dc:	e8 d7 05 00 00       	call   0x408db8
4087e1:	50                   	push   %eax
4087e2:	ff 15 b0 f1 40 00    	call   *0x40f1b0
4087e8:	83 0d 74 a3 40 00 ff 	orl    $0xffffffff,0x40a374
4087ef:	83 0d 78 a3 40 00 ff 	orl    $0xffffffff,0x40a378
4087f6:	59                   	pop    %ecx
4087f7:	59                   	pop    %ecx
4087f8:	ff 15 c0 f1 40 00    	call   *0x40f1c0
4087fe:	8b 0d 68 a3 40 00    	mov    0x40a368,%ecx
408804:	89 08                	mov    %ecx,(%eax)
408806:	ff 15 a4 f1 40 00    	call   *0x40f1a4
40880c:	8b 0d 5c a3 40 00    	mov    0x40a35c,%ecx
408812:	89 08                	mov    %ecx,(%eax)
408814:	e8 e7 05 00 00       	call   0x408e00
408819:	83 3d 00 a0 40 00 00 	cmpl   $0x0,0x40a000
408820:	75 0c                	jne    0x40882e
408822:	68 00 8e 40 00       	push   $0x408e00
408827:	ff 15 c8 f1 40 00    	call   *0x40f1c8
40882d:	59                   	pop    %ecx
40882e:	e8 ba 07 00 00       	call   0x408fed
408833:	33 c0                	xor    %eax,%eax
408835:	c3                   	ret
408836:	cc                   	int3
408837:	cc                   	int3
408838:	cc                   	int3
408839:	cc                   	int3
40883a:	cc                   	int3
40883b:	cc                   	int3
40883c:	cc                   	int3
40883d:	cc                   	int3
40883e:	cc                   	int3
40883f:	cc                   	int3
408840:	a1 64 a3 40 00       	mov    0x40a364,%eax
408845:	68 3c a0 40 00       	push   $0x40a03c
40884a:	ff 35 60 a3 40 00    	push   0x40a360
408850:	a3 3c a0 40 00       	mov    %eax,0x40a03c
408855:	68 30 a0 40 00       	push   $0x40a030
40885a:	68 2c a0 40 00       	push   $0x40a02c
40885f:	68 28 a0 40 00       	push   $0x40a028
408864:	ff 15 ac f1 40 00    	call   *0x40f1ac
40886a:	83 c4 14             	add    $0x14,%esp
40886d:	a3 34 a0 40 00       	mov    %eax,0x40a034
408872:	c3                   	ret
408873:	6a 0c                	push   $0xc
408875:	68 10 91 40 00       	push   $0x409110
40887a:	e8 89 07 00 00       	call   0x409008
40887f:	33 db                	xor    %ebx,%ebx
408881:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408884:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
40888a:	8b 70 04             	mov    0x4(%eax),%esi
40888d:	8b fb                	mov    %ebx,%edi