40b526:	52                   	push   %edx
40b527:	51                   	push   %ecx
40b528:	e8 4c ff ff ff       	call   0x40b479
40b52d:	83 c4 0c             	add    $0xc,%esp
40b530:	8b 45 08             	mov    0x8(%ebp),%eax
40b533:	eb 1a                	jmp    0x40b54f
40b535:	8b 75 0c             	mov    0xc(%ebp),%esi
40b538:	8b 7d 08             	mov    0x8(%ebp),%edi
40b53b:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b53e:	8b d1                	mov    %ecx,%edx
40b540:	c1 e9 02             	shr    $0x2,%ecx
40b543:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40b545:	8b ca                	mov    %edx,%ecx
40b547:	83 e1 03             	and    $0x3,%ecx
40b54a:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40b54c:	8b 45 08             	mov    0x8(%ebp),%eax
40b54f:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40b552:	8b 75 f8             	mov    -0x8(%ebp),%esi
40b555:	8b 7d f4             	mov    -0xc(%ebp),%edi
40b558:	8b e5                	mov    %ebp,%esp
40b55a:	5d                   	pop    %ebp
40b55b:	c3                   	ret
40b55c:	55                   	push   %ebp
40b55d:	8b ec                	mov    %esp,%ebp
40b55f:	81 ec 28 03 00 00    	sub    $0x328,%esp
40b565:	a3 20 db 41 00       	mov    %eax,0x41db20
40b56a:	89 0d 1c db 41 00    	mov    %ecx,0x41db1c
40b570:	89 15 18 db 41 00    	mov    %edx,0x41db18
40b576:	89 1d 14 db 41 00    	mov    %ebx,0x41db14
40b57c:	89 35 10 db 41 00    	mov    %esi,0x41db10
40b582:	89 3d 0c db 41 00    	mov    %edi,0x41db0c
40b588:	66 8c 15 38 db 41 00 	data16 mov %ss,0x41db38
40b58f:	66 8c 0d 2c db 41 00 	data16 mov %cs,0x41db2c
40b596:	66 8c 1d 08 db 41 00 	data16 mov %ds,0x41db08
40b59d:	66 8c 05 04 db 41 00 	data16 mov %es,0x41db04
40b5a4:	66 8c 25 00 db 41 00 	data16 mov %fs,0x41db00
40b5ab:	66 8c 2d fc da 41 00 	data16 mov %gs,0x41dafc
40b5b2:	9c                   	pushf
40b5b3:	8f 05 30 db 41 00    	pop    0x41db30
40b5b9:	8b 45 00             	mov    0x0(%ebp),%eax
40b5bc:	a3 24 db 41 00       	mov    %eax,0x41db24
40b5c1:	8b 45 04             	mov    0x4(%ebp),%eax
40b5c4:	a3 28 db 41 00       	mov    %eax,0x41db28
40b5c9:	8d 45 08             	lea    0x8(%ebp),%eax
40b5cc:	a3 34 db 41 00       	mov    %eax,0x41db34
40b5d1:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40b5d7:	c7 05 70 da 41 00 01 	movl   $0x10001,0x41da70
40b5de:	00 01 00
40b5e1:	a1 28 db 41 00       	mov    0x41db28,%eax
40b5e6:	a3 24 da 41 00       	mov    %eax,0x41da24
40b5eb:	c7 05 18 da 41 00 09 	movl   $0xc0000409,0x41da18
40b5f2:	04 00 c0
40b5f5:	c7 05 1c da 41 00 01 	movl   $0x1,0x41da1c
40b5fc:	00 00 00
40b5ff:	a1 20 c5 41 00       	mov    0x41c520,%eax
40b604:	89 85 d8 fc ff ff    	mov    %eax,-0x328(%ebp)
40b60a:	a1 24 c5 41 00       	mov    0x41c524,%eax
40b60f:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
40b615:	ff 15 d4 70 41 00    	call   *0x4170d4
40b61b:	a3 68 da 41 00       	mov    %eax,0x41da68
40b620:	6a 01                	push   $0x1
40b622:	e8 57 30 00 00       	call   0x40e67e
40b627:	59                   	pop    %ecx
40b628:	6a 00                	push   $0x0
40b62a:	ff 15 d0 70 41 00    	call   *0x4170d0
40b630:	68 b8 7f 41 00       	push   $0x417fb8
40b635:	ff 15 cc 70 41 00    	call   *0x4170cc
40b63b:	83 3d 68 da 41 00 00 	cmpl   $0x0,0x41da68
40b642:	75 08                	jne    0x40b64c
40b644:	6a 01                	push   $0x1
40b646:	e8 33 30 00 00       	call   0x40e67e
40b64b:	59                   	pop    %ecx
40b64c:	68 09 04 00 c0       	push   $0xc0000409
40b651:	ff 15 0c 70 41 00    	call   *0x41700c
40b657:	50                   	push   %eax
40b658:	ff 15 74 70 41 00    	call   *0x417074
40b65e:	c9                   	leave
40b65f:	c3                   	ret
40b660:	55                   	push   %ebp
40b661:	8b ec                	mov    %esp,%ebp
40b663:	51                   	push   %ecx
40b664:	56                   	push   %esi
40b665:	8b 75 0c             	mov    0xc(%ebp),%esi
40b668:	56                   	push   %esi
40b669:	e8 d8 33 00 00       	call   0x40ea46
40b66e:	89 45 0c             	mov    %eax,0xc(%ebp)
40b671:	8b 46 0c             	mov    0xc(%esi),%eax
40b674:	a8 82                	test   $0x82,%al
40b676:	59                   	pop    %ecx
40b677:	75 17                	jne    0x40b690
40b679:	e8 7c dd ff ff       	call   0x4093fa
40b67e:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40b684:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
40b688:	83 c8 ff             	or     $0xffffffff,%eax
40b68b:	e9 2d 01 00 00       	jmp    0x40b7bd
40b690:	a8 40                	test   $0x40,%al
40b692:	74 0d                	je     0x40b6a1
40b694:	e8 61 dd ff ff       	call   0x4093fa
40b699:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
40b69f:	eb e3                	jmp    0x40b684
40b6a1:	53                   	push   %ebx
40b6a2:	33 db                	xor    %ebx,%ebx
40b6a4:	a8 01                	test   $0x1,%al
40b6a6:	74 16                	je     0x40b6be
40b6a8:	a8 10                	test   $0x10,%al
40b6aa:	89 5e 04             	mov    %ebx,0x4(%esi)
40b6ad:	0f 84 85 00 00 00    	je     0x40b738
40b6b3:	8b 4e 08             	mov    0x8(%esi),%ecx
40b6b6:	83 e0 fe             	and    $0xfffffffe,%eax
40b6b9:	89 0e                	mov    %ecx,(%esi)
40b6bb:	89 46 0c             	mov    %eax,0xc(%esi)
40b6be:	8b 46 0c             	mov    0xc(%esi),%eax
40b6c1:	83 e0 ef             	and    $0xffffffef,%eax
40b6c4:	83 c8 02             	or     $0x2,%eax
40b6c7:	66 a9 0c 01          	test   $0x10c,%ax
40b6cb:	89 46 0c             	mov    %eax,0xc(%esi)
40b6ce:	89 5e 04             	mov    %ebx,0x4(%esi)
40b6d1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40b6d4:	75 2c                	jne    0x40b702
40b6d6:	e8 53 d1 ff ff       	call   0x40882e
40b6db:	83 c0 20             	add    $0x20,%eax
40b6de:	3b f0                	cmp    %eax,%esi
40b6e0:	74 0c                	je     0x40b6ee
40b6e2:	e8 47 d1 ff ff       	call   0x40882e
40b6e7:	83 c0 40             	add    $0x40,%eax
40b6ea:	3b f0                	cmp    %eax,%esi
40b6ec:	75 0d                	jne    0x40b6fb
40b6ee:	ff 75 0c             	push   0xc(%ebp)
40b6f1:	e8 98 87 00 00       	call   0x413e8e
40b6f6:	85 c0                	test   %eax,%eax
40b6f8:	59                   	pop    %ecx
40b6f9:	75 07                	jne    0x40b702
40b6fb:	56                   	push   %esi
40b6fc:	e8 5c 36 00 00       	call   0x40ed5d
40b701:	59                   	pop    %ecx
40b702:	66 f7 46 0c 08 01    	testw  $0x108,0xc(%esi)
40b708:	57                   	push   %edi
40b709:	0f 84 80 00 00 00    	je     0x40b78f
40b70f:	8b 46 08             	mov    0x8(%esi),%eax
40b712:	8b 3e                	mov    (%esi),%edi
40b714:	8d 48 01             	lea    0x1(%eax),%ecx
40b717:	89 0e                	mov    %ecx,(%esi)
40b719:	8b 4e 18             	mov    0x18(%esi),%ecx
40b71c:	2b f8                	sub    %eax,%edi
40b71e:	49                   	dec    %ecx
40b71f:	3b fb                	cmp    %ebx,%edi
40b721:	89 4e 04             	mov    %ecx,0x4(%esi)
40b724:	7e 1d                	jle    0x40b743
40b726:	57                   	push   %edi
40b727:	50                   	push   %eax
40b728:	ff 75 0c             	push   0xc(%ebp)
40b72b:	e8 37 3c 00 00       	call   0x40f367
40b730:	83 c4 0c             	add    $0xc,%esp
40b733:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b736:	eb 4d                	jmp    0x40b785
40b738:	83 c8 20             	or     $0x20,%eax
40b73b:	89 46 0c             	mov    %eax,0xc(%esi)
40b73e:	83 c8 ff             	or     $0xffffffff,%eax
40b741:	eb 79                	jmp    0x40b7bc
40b743:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b746:	83 f9 ff             	cmp    $0xffffffff,%ecx
40b749:	74 1b                	je     0x40b766
40b74b:	83 f9 fe             	cmp    $0xfffffffe,%ecx
40b74e:	74 16                	je     0x40b766
40b750:	8b c1                	mov    %ecx,%eax
40b752:	83 e0 1f             	and    $0x1f,%eax
40b755:	6b c0 28             	imul   $0x28,%eax,%eax
40b758:	8b d1                	mov    %ecx,%edx
40b75a:	c1 fa 05             	sar    $0x5,%edx
40b75d:	03 04 95 c0 e4 41 00 	add    0x41e4c0(,%edx,4),%eax
40b764:	eb 05                	jmp    0x40b76b
40b766:	b8 f0 cb 41 00       	mov    $0x41cbf0,%eax
40b76b:	f6 40 04 20          	testb  $0x20,0x4(%eax)
40b76f:	74 14                	je     0x40b785
40b771:	6a 02                	push   $0x2
40b773:	53                   	push   %ebx
40b774:	53                   	push   %ebx
40b775:	51                   	push   %ecx
40b776:	e8 fa 85 00 00       	call   0x413d75
40b77b:	23 c2                	and    %edx,%eax
40b77d:	83 c4 10             	add    $0x10,%esp
40b780:	83 f8 ff             	cmp    $0xffffffff,%eax
40b783:	74 25                	je     0x40b7aa
40b785:	8b 46 08             	mov    0x8(%esi),%eax
40b788:	8a 4d 08             	mov    0x8(%ebp),%cl
40b78b:	88 08                	mov    %cl,(%eax)
40b78d:	eb 16                	jmp    0x40b7a5
40b78f:	33 ff                	xor    %edi,%edi
40b791:	47                   	inc    %edi
40b792:	57                   	push   %edi
40b793:	8d 45 08             	lea    0x8(%ebp),%eax
40b796:	50                   	push   %eax
40b797:	ff 75 0c             	push   0xc(%ebp)
40b79a:	e8 c8 3b 00 00       	call   0x40f367
40b79f:	83 c4 0c             	add    $0xc,%esp
40b7a2:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b7a5:	39 7d fc             	cmp    %edi,-0x4(%ebp)
40b7a8:	74 09                	je     0x40b7b3
40b7aa:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
40b7ae:	83 c8 ff             	or     $0xffffffff,%eax
40b7b1:	eb 08                	jmp    0x40b7bb
40b7b3:	8b 45 08             	mov    0x8(%ebp),%eax
40b7b6:	25 ff 00 00 00       	and    $0xff,%eax
40b7bb:	5f                   	pop    %edi
40b7bc:	5b                   	pop    %ebx
40b7bd:	5e                   	pop    %esi
40b7be:	c9                   	leave
40b7bf:	c3                   	ret
40b7c0:	f6 41 0c 40          	testb  $0x40,0xc(%ecx)
40b7c4:	74 06                	je     0x40b7cc
40b7c6:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
40b7ca:	74 24                	je     0x40b7f0
40b7cc:	ff 49 04             	decl   0x4(%ecx)
40b7cf:	78 0b                	js     0x40b7dc
40b7d1:	8b 11                	mov    (%ecx),%edx
40b7d3:	88 02                	mov    %al,(%edx)
40b7d5:	ff 01                	incl   (%ecx)
40b7d7:	0f b6 c0             	movzbl %al,%eax
40b7da:	eb 0c                	jmp    0x40b7e8
40b7dc:	0f be c0             	movsbl %al,%eax
40b7df:	51                   	push   %ecx
40b7e0:	50                   	push   %eax
40b7e1:	e8 7a fe ff ff       	call   0x40b660
40b7e6:	59                   	pop    %ecx
40b7e7:	59                   	pop    %ecx
40b7e8:	83 f8 ff             	cmp    $0xffffffff,%eax
40b7eb:	75 03                	jne    0x40b7f0
40b7ed:	09 06                	or     %eax,(%esi)
40b7ef:	c3                   	ret
40b7f0:	ff 06                	incl   (%esi)
40b7f2:	c3                   	ret
40b7f3:	55                   	push   %ebp
40b7f4:	8b ec                	mov    %esp,%ebp
40b7f6:	56                   	push   %esi
40b7f7:	8b f0                	mov    %eax,%esi
40b7f9:	eb 13                	jmp    0x40b80e
40b7fb:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b7fe:	8a 45 08             	mov    0x8(%ebp),%al
40b801:	ff 4d 0c             	decl   0xc(%ebp)
40b804:	e8 b7 ff ff ff       	call   0x40b7c0
40b809:	83 3e ff             	cmpl   $0xffffffff,(%esi)
40b80c:	74 06                	je     0x40b814
40b80e:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40b812:	7f e7                	jg     0x40b7fb
40b814:	5e                   	pop    %esi
40b815:	5d                   	pop    %ebp
40b816:	c3                   	ret
40b817:	f6 47 0c 40          	testb  $0x40,0xc(%edi)
40b81b:	53                   	push   %ebx
40b81c:	56                   	push   %esi
40b81d:	8b f0                	mov    %eax,%esi
40b81f:	8b d9                	mov    %ecx,%ebx
40b821:	74 34                	je     0x40b857
40b823:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
40b827:	75 2e                	jne    0x40b857
40b829:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b82d:	01 06                	add    %eax,(%esi)
40b82f:	eb 2d                	jmp    0x40b85e
40b831:	8a 03                	mov    (%ebx),%al
40b833:	ff 4c 24 0c          	decl   0xc(%esp)
40b837:	8b cf                	mov    %edi,%ecx
40b839:	e8 82 ff ff ff       	call   0x40b7c0
40b83e:	43                   	inc    %ebx
40b83f:	83 3e ff             	cmpl   $0xffffffff,(%esi)
40b842:	75 13                	jne    0x40b857
40b844:	e8 b1 db ff ff       	call   0x4093fa
40b849:	83 38 2a             	cmpl   $0x2a,(%eax)
40b84c:	75 10                	jne    0x40b85e
40b84e:	8b cf                	mov    %edi,%ecx
40b850:	b0 3f                	mov    $0x3f,%al
40b852:	e8 69 ff ff ff       	call   0x40b7c0
40b857:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
40b85c:	7f d3                	jg     0x40b831
40b85e:	5e                   	pop    %esi
40b85f:	5b                   	pop    %ebx
40b860:	c3                   	ret
40b861:	55                   	push   %ebp
40b862:	8d ac 24 08 fe ff ff 	lea    -0x1f8(%esp),%ebp
40b869:	81 ec 78 02 00 00    	sub    $0x278,%esp
40b86f:	a1 20 c5 41 00       	mov    0x41c520,%eax
40b874:	33 c5                	xor    %ebp,%eax
40b876:	89 85 f4 01 00 00    	mov    %eax,0x1f4(%ebp)
40b87c:	8b 85 00 02 00 00    	mov    0x200(%ebp),%eax
40b882:	53                   	push   %ebx
40b883:	8b 9d 04 02 00 00    	mov    0x204(%ebp),%ebx
40b889:	56                   	push   %esi
40b88a:	33 f6                	xor    %esi,%esi
40b88c:	57                   	push   %edi
40b88d:	8b bd 0c 02 00 00    	mov    0x20c(%ebp),%edi
40b893:	ff b5 08 02 00 00    	push   0x208(%ebp)
40b899:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
40b89c:	89 45 d0             	mov    %eax,-0x30(%ebp)
40b89f:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40b8a2:	89 75 b4             	mov    %esi,-0x4c(%ebp)
40b8a5:	89 75 e8             	mov    %esi,-0x18(%ebp)
40b8a8:	89 75 c0             	mov    %esi,-0x40(%ebp)
40b8ab:	89 75 e0             	mov    %esi,-0x20(%ebp)
40b8ae:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40b8b1:	89 75 b0             	mov    %esi,-0x50(%ebp)
40b8b4:	89 75 bc             	mov    %esi,-0x44(%ebp)
40b8b7:	e8 08 d1 ff ff       	call   0x4089c4
40b8bc:	39 75 d0             	cmp    %esi,-0x30(%ebp)
40b8bf:	75 2d                	jne    0x40b8ee
40b8c1:	e8 34 db ff ff       	call   0x4093fa
40b8c6:	56                   	push   %esi
40b8c7:	56                   	push   %esi
40b8c8:	56                   	push   %esi
40b8c9:	56                   	push   %esi
40b8ca:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40b8d0:	56                   	push   %esi
40b8d1:	e8 7a bd ff ff       	call   0x407650
40b8d6:	83 c4 14             	add    $0x14,%esp
40b8d9:	80 7d a8 00          	cmpb   $0x0,-0x58(%ebp)
40b8dd:	74 07                	je     0x40b8e6
40b8df:	8b 45 a4             	mov    -0x5c(%ebp),%eax
40b8e2:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40b8e6:	83 c8 ff             	or     $0xffffffff,%eax
40b8e9:	e9 d0 08 00 00       	jmp    0x40c1be
40b8ee:	8b 45 d0             	mov    -0x30(%ebp),%eax
40b8f1:	f6 40 0c 40          	testb  $0x40,0xc(%eax)
40b8f5:	0f 85 a4 00 00 00    	jne    0x40b99f
40b8fb:	50                   	push   %eax
40b8fc:	e8 45 31 00 00       	call   0x40ea46
40b901:	83 f8 ff             	cmp    $0xffffffff,%eax
40b904:	59                   	pop    %ecx
40b905:	74 36                	je     0x40b93d
40b907:	ff 75 d0             	push   -0x30(%ebp)
40b90a:	e8 37 31 00 00       	call   0x40ea46
40b90f:	83 f8 fe             	cmp    $0xfffffffe,%eax
40b912:	59                   	pop    %ecx
40b913:	74 28                	je     0x40b93d
40b915:	ff 75 d0             	push   -0x30(%ebp)
40b918:	e8 29 31 00 00       	call   0x40ea46
40b91d:	ff 75 d0             	push   -0x30(%ebp)
40b920:	c1 f8 05             	sar    $0x5,%eax
40b923:	8d 34 85 c0 e4 41 00 	lea    0x41e4c0(,%eax,4),%esi
40b92a:	e8 17 31 00 00       	call   0x40ea46
40b92f:	83 e0 1f             	and    $0x1f,%eax
40b932:	6b c0 28             	imul   $0x28,%eax,%eax
40b935:	03 06                	add    (%esi),%eax
40b937:	59                   	pop    %ecx
40b938:	59                   	pop    %ecx
40b939:	33 f6                	xor    %esi,%esi
40b93b:	eb 05                	jmp    0x40b942
40b93d:	b8 f0 cb 41 00       	mov    $0x41cbf0,%eax
40b942:	f6 40 24 7f          	testb  $0x7f,0x24(%eax)
40b946:	0f 85 75 ff ff ff    	jne    0x40b8c1
40b94c:	ff 75 d0             	push   -0x30(%ebp)
40b94f:	e8 f2 30 00 00       	call   0x40ea46
40b954:	83 f8 ff             	cmp    $0xffffffff,%eax