41e683:	83 e8 01             	sub    $0x1,%eax
41e686:	74 15                	je     0x41e69d
41e688:	e8 6e 07 ff ff       	call   0x40edfb
41e68d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41e693:	e8 e9 e9 fe ff       	call   0x40d081
41e698:	83 c8 ff             	or     $0xffffffff,%eax
41e69b:	eb 2a                	jmp    0x41e6c7
41e69d:	b8 00 00 00 c0       	mov    $0xc0000000,%eax
41e6a2:	eb 23                	jmp    0x41e6c7
41e6a4:	f7 c3 00 00 07 00    	test   $0x70000,%ebx
41e6aa:	0f 95 c1             	setne  %cl
41e6ad:	f6 c3 08             	test   $0x8,%bl
41e6b0:	0f 95 c0             	setne  %al
41e6b3:	22 c8                	and    %al,%cl
41e6b5:	0f b6 c1             	movzbl %cl,%eax
41e6b8:	f7 d8                	neg    %eax
41e6ba:	1b c0                	sbb    %eax,%eax
41e6bc:	23 c7                	and    %edi,%eax
41e6be:	05 00 00 00 40       	add    $0x40000000,%eax
41e6c3:	eb 02                	jmp    0x41e6c7
41e6c5:	8b c7                	mov    %edi,%eax
41e6c7:	53                   	push   %ebx
41e6c8:	89 46 04             	mov    %eax,0x4(%esi)
41e6cb:	e8 1d ff ff ff       	call   0x41e5ed
41e6d0:	59                   	pop    %ecx
41e6d1:	89 46 08             	mov    %eax,0x8(%esi)
41e6d4:	8b 45 10             	mov    0x10(%ebp),%eax
41e6d7:	6a 10                	push   $0x10
41e6d9:	59                   	pop    %ecx
41e6da:	2b c1                	sub    %ecx,%eax
41e6dc:	74 3e                	je     0x41e71c
41e6de:	2b c1                	sub    %ecx,%eax
41e6e0:	74 35                	je     0x41e717
41e6e2:	2b c1                	sub    %ecx,%eax
41e6e4:	74 2c                	je     0x41e712
41e6e6:	2b c1                	sub    %ecx,%eax
41e6e8:	74 24                	je     0x41e70e
41e6ea:	83 e8 40             	sub    $0x40,%eax
41e6ed:	74 15                	je     0x41e704
41e6ef:	e8 07 07 ff ff       	call   0x40edfb
41e6f4:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41e6fa:	e8 82 e9 fe ff       	call   0x40d081
41e6ff:	83 c8 ff             	or     $0xffffffff,%eax
41e702:	eb 1a                	jmp    0x41e71e
41e704:	33 c0                	xor    %eax,%eax
41e706:	39 7e 04             	cmp    %edi,0x4(%esi)
41e709:	0f 94 c0             	sete   %al
41e70c:	eb 10                	jmp    0x41e71e
41e70e:	6a 03                	push   $0x3
41e710:	eb 02                	jmp    0x41e714
41e712:	6a 02                	push   $0x2
41e714:	58                   	pop    %eax
41e715:	eb 07                	jmp    0x41e71e
41e717:	33 c0                	xor    %eax,%eax
41e719:	40                   	inc    %eax
41e71a:	eb 02                	jmp    0x41e71e
41e71c:	33 c0                	xor    %eax,%eax
41e71e:	83 66 14 00          	andl   $0x0,0x14(%esi)
41e722:	89 46 0c             	mov    %eax,0xc(%esi)
41e725:	c7 46 10 80 00 00 00 	movl   $0x80,0x10(%esi)
41e72c:	84 db                	test   %bl,%bl
41e72e:	79 03                	jns    0x41e733
41e730:	80 0e 10             	orb    $0x10,(%esi)
41e733:	bf 00 80 00 00       	mov    $0x8000,%edi
41e738:	85 df                	test   %ebx,%edi
41e73a:	75 1e                	jne    0x41e75a
41e73c:	f7 c3 00 40 07 00    	test   $0x74000,%ebx
41e742:	75 13                	jne    0x41e757
41e744:	8d 45 fc             	lea    -0x4(%ebp),%eax
41e747:	50                   	push   %eax
41e748:	e8 34 1e ff ff       	call   0x410581
41e74d:	59                   	pop    %ecx
41e74e:	85 c0                	test   %eax,%eax
41e750:	75 78                	jne    0x41e7ca
41e752:	39 7d fc             	cmp    %edi,-0x4(%ebp)
41e755:	74 03                	je     0x41e75a
41e757:	80 0e 80             	orb    $0x80,(%esi)
41e75a:	b9 00 01 00 00       	mov    $0x100,%ecx
41e75f:	85 d9                	test   %ebx,%ecx
41e761:	74 15                	je     0x41e778
41e763:	a1 f4 4d 43 00       	mov    0x434df4,%eax
41e768:	f7 d0                	not    %eax
41e76a:	23 45 14             	and    0x14(%ebp),%eax
41e76d:	84 c0                	test   %al,%al
41e76f:	78 07                	js     0x41e778
41e771:	c7 46 10 01 00 00 00 	movl   $0x1,0x10(%esi)
41e778:	f6 c3 40             	test   $0x40,%bl
41e77b:	74 12                	je     0x41e78f
41e77d:	81 4e 14 00 00 00 04 	orl    $0x4000000,0x14(%esi)
41e784:	81 4e 04 00 00 01 00 	orl    $0x10000,0x4(%esi)
41e78b:	83 4e 0c 04          	orl    $0x4,0xc(%esi)
41e78f:	f7 c3 00 10 00 00    	test   $0x1000,%ebx
41e795:	74 03                	je     0x41e79a
41e797:	09 4e 10             	or     %ecx,0x10(%esi)
41e79a:	f7 c3 00 20 00 00    	test   $0x2000,%ebx
41e7a0:	74 07                	je     0x41e7a9
41e7a2:	81 4e 14 00 00 00 02 	orl    $0x2000000,0x14(%esi)
41e7a9:	f6 c3 20             	test   $0x20,%bl
41e7ac:	74 09                	je     0x41e7b7
41e7ae:	81 4e 14 00 00 00 08 	orl    $0x8000000,0x14(%esi)
41e7b5:	eb 0c                	jmp    0x41e7c3
41e7b7:	f6 c3 10             	test   $0x10,%bl
41e7ba:	74 07                	je     0x41e7c3
41e7bc:	81 4e 14 00 00 00 10 	orl    $0x10000000,0x14(%esi)
41e7c3:	5f                   	pop    %edi
41e7c4:	8b c6                	mov    %esi,%eax
41e7c6:	5e                   	pop    %esi
41e7c7:	5b                   	pop    %ebx
41e7c8:	c9                   	leave
41e7c9:	c3                   	ret
41e7ca:	33 c0                	xor    %eax,%eax
41e7cc:	50                   	push   %eax
41e7cd:	50                   	push   %eax
41e7ce:	50                   	push   %eax
41e7cf:	50                   	push   %eax
41e7d0:	50                   	push   %eax
41e7d1:	e8 d8 e8 fe ff       	call   0x40d0ae
41e7d6:	cc                   	int3
41e7d7:	8b ff                	mov    %edi,%edi
41e7d9:	55                   	push   %ebp
41e7da:	8b ec                	mov    %esp,%ebp
41e7dc:	51                   	push   %ecx
41e7dd:	53                   	push   %ebx
41e7de:	56                   	push   %esi
41e7df:	8b 75 08             	mov    0x8(%ebp),%esi
41e7e2:	8b d6                	mov    %esi,%edx
41e7e4:	8b c6                	mov    %esi,%eax
41e7e6:	c1 fa 06             	sar    $0x6,%edx
41e7e9:	83 e0 3f             	and    $0x3f,%eax
41e7ec:	6b c8 38             	imul   $0x38,%eax,%ecx
41e7ef:	57                   	push   %edi
41e7f0:	8b 04 95 c0 4a 43 00 	mov    0x434ac0(,%edx,4),%eax
41e7f7:	8a 44 08 28          	mov    0x28(%eax,%ecx,1),%al
41e7fb:	a8 48                	test   $0x48,%al
41e7fd:	75 7b                	jne    0x41e87a
41e7ff:	84 c0                	test   %al,%al
41e801:	79 77                	jns    0x41e87a
41e803:	6a 02                	push   $0x2
41e805:	6a ff                	push   $0xffffffff
41e807:	6a ff                	push   $0xffffffff
41e809:	56                   	push   %esi
41e80a:	e8 3e 95 ff ff       	call   0x417d4d
41e80f:	8b f8                	mov    %eax,%edi
41e811:	8b da                	mov    %edx,%ebx
41e813:	8b cf                	mov    %edi,%ecx
41e815:	83 c4 10             	add    $0x10,%esp
41e818:	23 cb                	and    %ebx,%ecx
41e81a:	83 f9 ff             	cmp    $0xffffffff,%ecx
41e81d:	75 16                	jne    0x41e835
41e81f:	e8 c4 05 ff ff       	call   0x40ede8
41e824:	81 38 83 00 00 00    	cmpl   $0x83,(%eax)
41e82a:	74 4e                	je     0x41e87a
41e82c:	e8 ca 05 ff ff       	call   0x40edfb
41e831:	8b 00                	mov    (%eax),%eax
41e833:	eb 47                	jmp    0x41e87c
41e835:	33 c0                	xor    %eax,%eax
41e837:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
41e83b:	8d 45 fc             	lea    -0x4(%ebp),%eax
41e83e:	6a 01                	push   $0x1
41e840:	50                   	push   %eax
41e841:	56                   	push   %esi
41e842:	e8 b3 8f ff ff       	call   0x4177fa
41e847:	83 c4 0c             	add    $0xc,%esp
41e84a:	85 c0                	test   %eax,%eax
41e84c:	75 17                	jne    0x41e865
41e84e:	66 83 7d fc 1a       	cmpw   $0x1a,-0x4(%ebp)
41e853:	75 10                	jne    0x41e865
41e855:	53                   	push   %ebx
41e856:	57                   	push   %edi
41e857:	56                   	push   %esi
41e858:	e8 a1 30 00 00       	call   0x4218fe
41e85d:	83 c4 0c             	add    $0xc,%esp
41e860:	83 f8 ff             	cmp    $0xffffffff,%eax
41e863:	74 c7                	je     0x41e82c
41e865:	33 c0                	xor    %eax,%eax
41e867:	50                   	push   %eax
41e868:	50                   	push   %eax
41e869:	50                   	push   %eax
41e86a:	56                   	push   %esi
41e86b:	e8 dd 94 ff ff       	call   0x417d4d
41e870:	23 c2                	and    %edx,%eax
41e872:	83 c4 10             	add    $0x10,%esp
41e875:	83 f8 ff             	cmp    $0xffffffff,%eax
41e878:	74 b2                	je     0x41e82c
41e87a:	33 c0                	xor    %eax,%eax
41e87c:	5f                   	pop    %edi
41e87d:	5e                   	pop    %esi
41e87e:	5b                   	pop    %ebx
41e87f:	c9                   	leave
41e880:	c3                   	ret
41e881:	8b ff                	mov    %edi,%edi
41e883:	55                   	push   %ebp
41e884:	8b ec                	mov    %esp,%ebp
41e886:	83 ec 18             	sub    $0x18,%esp
41e889:	33 c0                	xor    %eax,%eax
41e88b:	56                   	push   %esi
41e88c:	89 45 e8             	mov    %eax,-0x18(%ebp)
41e88f:	89 45 ec             	mov    %eax,-0x14(%ebp)
41e892:	89 45 f0             	mov    %eax,-0x10(%ebp)
41e895:	89 45 f4             	mov    %eax,-0xc(%ebp)
41e898:	89 45 f8             	mov    %eax,-0x8(%ebp)
41e89b:	88 45 fc             	mov    %al,-0x4(%ebp)
41e89e:	e8 72 bc ff ff       	call   0x41a515
41e8a3:	50                   	push   %eax
41e8a4:	8d 45 e8             	lea    -0x18(%ebp),%eax
41e8a7:	50                   	push   %eax
41e8a8:	ff 75 10             	push   0x10(%ebp)
41e8ab:	e8 27 0e ff ff       	call   0x40f6d7
41e8b0:	83 c4 0c             	add    $0xc,%esp
41e8b3:	85 c0                	test   %eax,%eax
41e8b5:	74 05                	je     0x41e8bc
41e8b7:	83 ce ff             	or     $0xffffffff,%esi
41e8ba:	eb 1f                	jmp    0x41e8db
41e8bc:	ff 75 20             	push   0x20(%ebp)
41e8bf:	ff 75 1c             	push   0x1c(%ebp)
41e8c2:	ff 75 18             	push   0x18(%ebp)
41e8c5:	ff 75 14             	push   0x14(%ebp)
41e8c8:	ff 75 f0             	push   -0x10(%ebp)
41e8cb:	ff 75 0c             	push   0xc(%ebp)
41e8ce:	ff 75 08             	push   0x8(%ebp)
41e8d1:	e8 39 00 00 00       	call   0x41e90f
41e8d6:	83 c4 1c             	add    $0x1c,%esp
41e8d9:	8b f0                	mov    %eax,%esi
41e8db:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
41e8df:	74 09                	je     0x41e8ea
41e8e1:	ff 75 f0             	push   -0x10(%ebp)
41e8e4:	e8 22 48 ff ff       	call   0x41310b
41e8e9:	59                   	pop    %ecx
41e8ea:	8b c6                	mov    %esi,%eax
41e8ec:	5e                   	pop    %esi
41e8ed:	c9                   	leave
41e8ee:	c3                   	ret
41e8ef:	8b ff                	mov    %edi,%edi
41e8f1:	55                   	push   %ebp
41e8f2:	8b ec                	mov    %esp,%ebp
41e8f4:	6a 01                	push   $0x1
41e8f6:	ff 75 08             	push   0x8(%ebp)
41e8f9:	ff 75 18             	push   0x18(%ebp)
41e8fc:	ff 75 14             	push   0x14(%ebp)
41e8ff:	ff 75 10             	push   0x10(%ebp)
41e902:	ff 75 0c             	push   0xc(%ebp)
41e905:	e8 aa f9 ff ff       	call   0x41e2b4
41e90a:	83 c4 18             	add    $0x18,%esp
41e90d:	5d                   	pop    %ebp
41e90e:	c3                   	ret
41e90f:	8b ff                	mov    %edi,%edi
41e911:	55                   	push   %ebp
41e912:	8b ec                	mov    %esp,%ebp
41e914:	83 ec 44             	sub    $0x44,%esp
41e917:	53                   	push   %ebx
41e918:	56                   	push   %esi
41e919:	57                   	push   %edi
41e91a:	ff 75 1c             	push   0x1c(%ebp)
41e91d:	8d 45 bc             	lea    -0x44(%ebp),%eax
41e920:	ff 75 18             	push   0x18(%ebp)
41e923:	ff 75 14             	push   0x14(%ebp)
41e926:	50                   	push   %eax
41e927:	e8 31 fd ff ff       	call   0x41e65d
41e92c:	83 c4 10             	add    $0x10,%esp
41e92f:	8d 7d d4             	lea    -0x2c(%ebp),%edi
41e932:	8b f0                	mov    %eax,%esi
41e934:	6a 06                	push   $0x6
41e936:	59                   	pop    %ecx
41e937:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
41e939:	83 ce ff             	or     $0xffffffff,%esi
41e93c:	39 75 e0             	cmp    %esi,-0x20(%ebp)
41e93f:	75 19                	jne    0x41e95a
41e941:	e8 a2 04 ff ff       	call   0x40ede8
41e946:	83 20 00             	andl   $0x0,(%eax)
41e949:	8b 45 0c             	mov    0xc(%ebp),%eax
41e94c:	89 30                	mov    %esi,(%eax)
41e94e:	e8 a8 04 ff ff       	call   0x40edfb
41e953:	8b 00                	mov    (%eax),%eax
41e955:	e9 da 02 00 00       	jmp    0x41ec34
41e95a:	e8 f3 cc ff ff       	call   0x41b652
41e95f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41e962:	89 03                	mov    %eax,(%ebx)
41e964:	3b c6                	cmp    %esi,%eax
41e966:	75 17                	jne    0x41e97f
41e968:	e8 7b 04 ff ff       	call   0x40ede8
41e96d:	83 20 00             	andl   $0x0,(%eax)
41e970:	89 33                	mov    %esi,(%ebx)
41e972:	e8 84 04 ff ff       	call   0x40edfb
41e977:	c7 00 18 00 00 00    	movl   $0x18,(%eax)
41e97d:	eb cf                	jmp    0x41e94e
41e97f:	8b 45 08             	mov    0x8(%ebp),%eax
41e982:	8d 75 d4             	lea    -0x2c(%ebp),%esi
41e985:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
41e989:	33 c9                	xor    %ecx,%ecx
41e98b:	41                   	inc    %ecx
41e98c:	c7 45 ec 0c 00 00 00 	movl   $0xc,-0x14(%ebp)
41e993:	83 ec 18             	sub    $0x18,%esp
41e996:	89 08                	mov    %ecx,(%eax)
41e998:	8b 45 14             	mov    0x14(%ebp),%eax
41e99b:	c1 e8 07             	shr    $0x7,%eax
41e99e:	f7 d0                	not    %eax
41e9a0:	23 c1                	and    %ecx,%eax
41e9a2:	6a 06                	push   $0x6
41e9a4:	59                   	pop    %ecx
41e9a5:	89 45 f4             	mov    %eax,-0xc(%ebp)
41e9a8:	8b fc                	mov    %esp,%edi
41e9aa:	8d 45 ec             	lea    -0x14(%ebp),%eax
41e9ad:	50                   	push   %eax
41e9ae:	ff 75 10             	push   0x10(%ebp)
41e9b1:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
41e9b3:	e8 10 fc ff ff       	call   0x41e5c8
41e9b8:	8b f8                	mov    %eax,%edi
41e9ba:	83 c4 20             	add    $0x20,%esp
41e9bd:	89 7d f8             	mov    %edi,-0x8(%ebp)
41e9c0:	ba 00 00 00 c0       	mov    $0xc0000000,%edx
41e9c5:	83 ff ff             	cmp    $0xffffffff,%edi
41e9c8:	75 6b                	jne    0x41ea35
41e9ca:	8b 4d d8             	mov    -0x28(%ebp),%ecx
41e9cd:	8b c1                	mov    %ecx,%eax
41e9cf:	23 c2                	and    %edx,%eax
41e9d1:	3b c2                	cmp    %edx,%eax
41e9d3:	75 35                	jne    0x41ea0a
41e9d5:	f6 45 14 01          	testb  $0x1,0x14(%ebp)
41e9d9:	74 2f                	je     0x41ea0a
41e9db:	83 ec 18             	sub    $0x18,%esp
41e9de:	8d 45 ec             	lea    -0x14(%ebp),%eax
41e9e1:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx
41e9e7:	8d 75 d4             	lea    -0x2c(%ebp),%esi
41e9ea:	89 4d d8             	mov    %ecx,-0x28(%ebp)
41e9ed:	6a 06                	push   $0x6
41e9ef:	59                   	pop    %ecx
41e9f0:	8b fc                	mov    %esp,%edi
41e9f2:	50                   	push   %eax
41e9f3:	ff 75 10             	push   0x10(%ebp)
41e9f6:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
41e9f8:	e8 cb fb ff ff       	call   0x41e5c8
41e9fd:	8b f8                	mov    %eax,%edi
41e9ff:	83 c4 20             	add    $0x20,%esp
41ea02:	89 7d f8             	mov    %edi,-0x8(%ebp)
41ea05:	83 ff ff             	cmp    $0xffffffff,%edi
41ea08:	75 2b                	jne    0x41ea35
41ea0a:	8b 0b                	mov    (%ebx),%ecx
41ea0c:	8b c1                	mov    %ecx,%eax
41ea0e:	83 e1 3f             	and    $0x3f,%ecx
41ea11:	c1 f8 06             	sar    $0x6,%eax
41ea14:	6b c9 38             	imul   $0x38,%ecx,%ecx
41ea17:	8b 04 85 c0 4a 43 00 	mov    0x434ac0(,%eax,4),%eax
41ea1e:	80 64 08 28 fe       	andb   $0xfe,0x28(%eax,%ecx,1)
41ea23:	ff 15 98 40 42 00    	call   *0x424098
41ea29:	50                   	push   %eax
41ea2a:	e8 96 03 ff ff       	call   0x40edc5
41ea2f:	59                   	pop    %ecx
41ea30:	e9 19 ff ff ff       	jmp    0x41e94e
41ea35:	57                   	push   %edi
41ea36:	ff 15 ec 40 42 00    	call   *0x4240ec