41f89b:	8b f0                	mov    %eax,%esi
41f89d:	8d 7d f0             	lea    -0x10(%ebp),%edi
41f8a0:	59                   	pop    %ecx
41f8a1:	59                   	pop    %ecx
41f8a2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41f8a3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41f8a4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41f8a5:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
41f8a9:	5f                   	pop    %edi
41f8aa:	5e                   	pop    %esi
41f8ab:	74 57                	je     0x41f904
41f8ad:	68 80 01 00 00       	push   $0x180
41f8b2:	ff 75 10             	push   0x10(%ebp)
41f8b5:	8d 45 fc             	lea    -0x4(%ebp),%eax
41f8b8:	ff 75 f0             	push   -0x10(%ebp)
41f8bb:	ff 75 08             	push   0x8(%ebp)
41f8be:	50                   	push   %eax
41f8bf:	e8 c0 96 00 00       	call   0x428f84
41f8c4:	83 c4 14             	add    $0x14,%esp
41f8c7:	85 c0                	test   %eax,%eax
41f8c9:	75 39                	jne    0x41f904
41f8cb:	8b 45 14             	mov    0x14(%ebp),%eax
41f8ce:	ff 05 f0 f7 43 00    	incl   0x43f7f0
41f8d4:	83 c0 0c             	add    $0xc,%eax
41f8d7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41f8da:	f0 09 08             	lock or %ecx,(%eax)
41f8dd:	8b 45 14             	mov    0x14(%ebp),%eax
41f8e0:	33 c9                	xor    %ecx,%ecx
41f8e2:	89 48 08             	mov    %ecx,0x8(%eax)
41f8e5:	8b 45 14             	mov    0x14(%ebp),%eax
41f8e8:	89 48 1c             	mov    %ecx,0x1c(%eax)
41f8eb:	8b 45 14             	mov    0x14(%ebp),%eax
41f8ee:	89 48 04             	mov    %ecx,0x4(%eax)
41f8f1:	8b 45 14             	mov    0x14(%ebp),%eax
41f8f4:	89 08                	mov    %ecx,(%eax)
41f8f6:	8b 4d 14             	mov    0x14(%ebp),%ecx
41f8f9:	8b 45 fc             	mov    -0x4(%ebp),%eax
41f8fc:	89 41 10             	mov    %eax,0x10(%ecx)
41f8ff:	8b 45 14             	mov    0x14(%ebp),%eax
41f902:	c9                   	leave
41f903:	c3                   	ret
41f904:	33 c0                	xor    %eax,%eax
41f906:	c9                   	leave
41f907:	c3                   	ret
41f908:	8b ff                	mov    %edi,%edi
41f90a:	55                   	push   %ebp
41f90b:	8b ec                	mov    %esp,%ebp
41f90d:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f910:	8b 01                	mov    (%ecx),%eax
41f912:	a8 40                	test   $0x40,%al
41f914:	74 04                	je     0x41f91a
41f916:	32 c0                	xor    %al,%al
41f918:	5d                   	pop    %ebp
41f919:	c3                   	ret
41f91a:	83 c8 40             	or     $0x40,%eax
41f91d:	89 01                	mov    %eax,(%ecx)
41f91f:	b0 01                	mov    $0x1,%al
41f921:	5d                   	pop    %ebp
41f922:	c3                   	ret
41f923:	8b ff                	mov    %edi,%edi
41f925:	55                   	push   %ebp
41f926:	8b ec                	mov    %esp,%ebp
41f928:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f92b:	ba 00 10 00 00       	mov    $0x1000,%edx
41f930:	8b 01                	mov    (%ecx),%eax
41f932:	85 c2                	test   %eax,%edx
41f934:	74 04                	je     0x41f93a
41f936:	32 c0                	xor    %al,%al
41f938:	5d                   	pop    %ebp
41f939:	c3                   	ret
41f93a:	0b c2                	or     %edx,%eax
41f93c:	89 01                	mov    %eax,(%ecx)
41f93e:	b0 01                	mov    $0x1,%al
41f940:	5d                   	pop    %ebp
41f941:	c3                   	ret
41f942:	8b ff                	mov    %edi,%edi
41f944:	55                   	push   %ebp
41f945:	8b ec                	mov    %esp,%ebp
41f947:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f94a:	8b 01                	mov    (%ecx),%eax
41f94c:	a9 00 c0 00 00       	test   $0xc000,%eax
41f951:	74 04                	je     0x41f957
41f953:	32 c0                	xor    %al,%al
41f955:	5d                   	pop    %ebp
41f956:	c3                   	ret
41f957:	0d 00 80 00 00       	or     $0x8000,%eax
41f95c:	89 01                	mov    %eax,(%ecx)
41f95e:	b0 01                	mov    $0x1,%al
41f960:	5d                   	pop    %ebp
41f961:	c3                   	ret
41f962:	8b ff                	mov    %edi,%edi
41f964:	55                   	push   %ebp
41f965:	8b ec                	mov    %esp,%ebp
41f967:	8b 45 0c             	mov    0xc(%ebp),%eax
41f96a:	80 38 00             	cmpb   $0x0,(%eax)
41f96d:	74 04                	je     0x41f973
41f96f:	32 c0                	xor    %al,%al
41f971:	5d                   	pop    %ebp
41f972:	c3                   	ret
41f973:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f976:	c6 00 01             	movb   $0x1,(%eax)
41f979:	b0 01                	mov    $0x1,%al
41f97b:	81 49 04 00 08 00 00 	orl    $0x800,0x4(%ecx)
41f982:	5d                   	pop    %ebp
41f983:	c3                   	ret
41f984:	8b ff                	mov    %edi,%edi
41f986:	55                   	push   %ebp
41f987:	8b ec                	mov    %esp,%ebp
41f989:	8b 45 0c             	mov    0xc(%ebp),%eax
41f98c:	80 38 00             	cmpb   $0x0,(%eax)
41f98f:	74 04                	je     0x41f995
41f991:	32 c0                	xor    %al,%al
41f993:	5d                   	pop    %ebp
41f994:	c3                   	ret
41f995:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f998:	c6 00 01             	movb   $0x1,(%eax)
41f99b:	b0 01                	mov    $0x1,%al
41f99d:	81 61 04 ff f7 ff ff 	andl   $0xfffff7ff,0x4(%ecx)
41f9a4:	5d                   	pop    %ebp
41f9a5:	c3                   	ret
41f9a6:	8b ff                	mov    %edi,%edi
41f9a8:	55                   	push   %ebp
41f9a9:	8b ec                	mov    %esp,%ebp
41f9ab:	8b 45 0c             	mov    0xc(%ebp),%eax
41f9ae:	80 38 00             	cmpb   $0x0,(%eax)
41f9b1:	75 25                	jne    0x41f9d8
41f9b3:	8b 55 08             	mov    0x8(%ebp),%edx
41f9b6:	c6 00 01             	movb   $0x1,(%eax)
41f9b9:	8b 0a                	mov    (%edx),%ecx
41f9bb:	f6 c1 02             	test   $0x2,%cl
41f9be:	75 18                	jne    0x41f9d8
41f9c0:	83 e1 fe             	and    $0xfffffffe,%ecx
41f9c3:	b0 01                	mov    $0x1,%al
41f9c5:	83 c9 02             	or     $0x2,%ecx
41f9c8:	89 0a                	mov    %ecx,(%edx)
41f9ca:	8b 4a 04             	mov    0x4(%edx),%ecx
41f9cd:	83 e1 fc             	and    $0xfffffffc,%ecx
41f9d0:	83 c9 04             	or     $0x4,%ecx
41f9d3:	89 4a 04             	mov    %ecx,0x4(%edx)
41f9d6:	5d                   	pop    %ebp
41f9d7:	c3                   	ret
41f9d8:	32 c0                	xor    %al,%al
41f9da:	5d                   	pop    %ebp
41f9db:	c3                   	ret
41f9dc:	8b ff                	mov    %edi,%edi
41f9de:	55                   	push   %ebp
41f9df:	8b ec                	mov    %esp,%ebp
41f9e1:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f9e4:	8b 01                	mov    (%ecx),%eax
41f9e6:	a9 00 c0 00 00       	test   $0xc000,%eax
41f9eb:	74 04                	je     0x41f9f1
41f9ed:	32 c0                	xor    %al,%al
41f9ef:	5d                   	pop    %ebp
41f9f0:	c3                   	ret
41f9f1:	0d 00 40 00 00       	or     $0x4000,%eax
41f9f6:	89 01                	mov    %eax,(%ecx)
41f9f8:	b0 01                	mov    $0x1,%al
41f9fa:	5d                   	pop    %ebp
41f9fb:	c3                   	ret
41f9fc:	8b ff                	mov    %edi,%edi
41f9fe:	55                   	push   %ebp
41f9ff:	8b ec                	mov    %esp,%ebp
41fa01:	8b 4d 08             	mov    0x8(%ebp),%ecx
41fa04:	8b 01                	mov    (%ecx),%eax
41fa06:	a9 00 02 00 00       	test   $0x200,%eax
41fa0b:	75 04                	jne    0x41fa11
41fa0d:	32 c0                	xor    %al,%al
41fa0f:	5d                   	pop    %ebp
41fa10:	c3                   	ret
41fa11:	0d 00 04 00 00       	or     $0x400,%eax
41fa16:	89 01                	mov    %eax,(%ecx)
41fa18:	b0 01                	mov    $0x1,%al
41fa1a:	5d                   	pop    %ebp
41fa1b:	c3                   	ret
41fa1c:	8b ff                	mov    %edi,%edi
41fa1e:	55                   	push   %ebp
41fa1f:	8b ec                	mov    %esp,%ebp
41fa21:	5d                   	pop    %ebp
41fa22:	e9 5e fe ff ff       	jmp    0x41f885
41fa27:	6a 0c                	push   $0xc
41fa29:	68 e0 ae 43 00       	push   $0x43aee0
41fa2e:	e8 9d aa fe ff       	call   0x40a4d0
41fa33:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
41fa37:	8b 45 08             	mov    0x8(%ebp),%eax
41fa3a:	ff 30                	push   (%eax)
41fa3c:	e8 df 0e 00 00       	call   0x420920
41fa41:	59                   	pop    %ecx
41fa42:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41fa46:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41fa49:	8b 01                	mov    (%ecx),%eax
41fa4b:	8b 38                	mov    (%eax),%edi
41fa4d:	8b 71 04             	mov    0x4(%ecx),%esi
41fa50:	8b d7                	mov    %edi,%edx
41fa52:	c1 fa 06             	sar    $0x6,%edx
41fa55:	8b c7                	mov    %edi,%eax
41fa57:	83 e0 3f             	and    $0x3f,%eax
41fa5a:	6b c8 38             	imul   $0x38,%eax,%ecx
41fa5d:	8b 04 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%eax
41fa64:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
41fa69:	74 0d                	je     0x41fa78
41fa6b:	56                   	push   %esi
41fa6c:	57                   	push   %edi
41fa6d:	e8 19 01 00 00       	call   0x41fb8b
41fa72:	59                   	pop    %ecx
41fa73:	59                   	pop    %ecx
41fa74:	8b f0                	mov    %eax,%esi
41fa76:	eb 0e                	jmp    0x41fa86
41fa78:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
41fa7c:	c7 46 18 09 00 00 00 	movl   $0x9,0x18(%esi)
41fa83:	83 ce ff             	or     $0xffffffff,%esi
41fa86:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41fa89:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41fa90:	e8 17 00 00 00       	call   0x41faac
41fa95:	8b c6                	mov    %esi,%eax
41fa97:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41fa9a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41faa1:	59                   	pop    %ecx
41faa2:	5f                   	pop    %edi
41faa3:	5e                   	pop    %esi
41faa4:	5b                   	pop    %ebx
41faa5:	c9                   	leave
41faa6:	c2 0c 00             	ret    $0xc
41faa9:	8b 75 e4             	mov    -0x1c(%ebp),%esi
41faac:	8b 45 10             	mov    0x10(%ebp),%eax
41faaf:	ff 30                	push   (%eax)
41fab1:	e8 1f 0f 00 00       	call   0x4209d5
41fab6:	59                   	pop    %ecx
41fab7:	c3                   	ret
41fab8:	8b ff                	mov    %edi,%edi
41faba:	55                   	push   %ebp
41fabb:	8b ec                	mov    %esp,%ebp
41fabd:	83 ec 14             	sub    $0x14,%esp
41fac0:	56                   	push   %esi
41fac1:	8b 75 08             	mov    0x8(%ebp),%esi
41fac4:	83 fe fe             	cmp    $0xfffffffe,%esi
41fac7:	75 18                	jne    0x41fae1
41fac9:	8b 45 0c             	mov    0xc(%ebp),%eax
41facc:	83 60 20 00          	andl   $0x0,0x20(%eax)
41fad0:	c6 40 24 01          	movb   $0x1,0x24(%eax)
41fad4:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41fad8:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
41fadf:	eb 74                	jmp    0x41fb55
41fae1:	85 f6                	test   %esi,%esi
41fae3:	78 4b                	js     0x41fb30
41fae5:	3b 35 00 fa 43 00    	cmp    0x43fa00,%esi
41faeb:	73 43                	jae    0x41fb30
41faed:	8b c6                	mov    %esi,%eax
41faef:	8b d6                	mov    %esi,%edx
41faf1:	83 e0 3f             	and    $0x3f,%eax
41faf4:	c1 fa 06             	sar    $0x6,%edx
41faf7:	6b c8 38             	imul   $0x38,%eax,%ecx
41fafa:	8b 04 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%eax
41fb01:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
41fb06:	74 28                	je     0x41fb30
41fb08:	8d 45 08             	lea    0x8(%ebp),%eax
41fb0b:	89 75 f8             	mov    %esi,-0x8(%ebp)
41fb0e:	89 45 ec             	mov    %eax,-0x14(%ebp)
41fb11:	8d 4d ff             	lea    -0x1(%ebp),%ecx
41fb14:	8b 45 0c             	mov    0xc(%ebp),%eax
41fb17:	89 45 f0             	mov    %eax,-0x10(%ebp)
41fb1a:	8d 45 f8             	lea    -0x8(%ebp),%eax
41fb1d:	50                   	push   %eax
41fb1e:	8d 45 ec             	lea    -0x14(%ebp),%eax
41fb21:	89 75 f4             	mov    %esi,-0xc(%ebp)
41fb24:	50                   	push   %eax
41fb25:	8d 45 f4             	lea    -0xc(%ebp),%eax
41fb28:	50                   	push   %eax
41fb29:	e8 f9 fe ff ff       	call   0x41fa27
41fb2e:	eb 28                	jmp    0x41fb58
41fb30:	8b 45 0c             	mov    0xc(%ebp),%eax
41fb33:	33 c9                	xor    %ecx,%ecx
41fb35:	50                   	push   %eax
41fb36:	51                   	push   %ecx
41fb37:	51                   	push   %ecx
41fb38:	51                   	push   %ecx
41fb39:	c6 40 24 01          	movb   $0x1,0x24(%eax)
41fb3d:	51                   	push   %ecx
41fb3e:	89 48 20             	mov    %ecx,0x20(%eax)
41fb41:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41fb45:	51                   	push   %ecx
41fb46:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
41fb4d:	e8 1f d8 fe ff       	call   0x40d371
41fb52:	83 c4 18             	add    $0x18,%esp
41fb55:	83 c8 ff             	or     $0xffffffff,%eax
41fb58:	5e                   	pop    %esi
41fb59:	c9                   	leave
41fb5a:	c3                   	ret
41fb5b:	8b ff                	mov    %edi,%edi
41fb5d:	55                   	push   %ebp
41fb5e:	8b ec                	mov    %esp,%ebp
41fb60:	83 ec 28             	sub    $0x28,%esp
41fb63:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41fb66:	56                   	push   %esi
41fb67:	6a 00                	push   $0x0
41fb69:	e8 74 d5 fe ff       	call   0x40d0e2
41fb6e:	8d 45 d8             	lea    -0x28(%ebp),%eax
41fb71:	50                   	push   %eax
41fb72:	ff 75 08             	push   0x8(%ebp)
41fb75:	e8 11 00 00 00       	call   0x41fb8b
41fb7a:	59                   	pop    %ecx
41fb7b:	59                   	pop    %ecx
41fb7c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41fb7f:	8b f0                	mov    %eax,%esi
41fb81:	e8 a4 d5 fe ff       	call   0x40d12a
41fb86:	8b c6                	mov    %esi,%eax
41fb88:	5e                   	pop    %esi
41fb89:	c9                   	leave
41fb8a:	c3                   	ret
41fb8b:	8b ff                	mov    %edi,%edi
41fb8d:	55                   	push   %ebp
41fb8e:	8b ec                	mov    %esp,%ebp
41fb90:	56                   	push   %esi
41fb91:	57                   	push   %edi
41fb92:	8b 7d 08             	mov    0x8(%ebp),%edi
41fb95:	57                   	push   %edi
41fb96:	e8 01 10 00 00       	call   0x420b9c
41fb9b:	59                   	pop    %ecx
41fb9c:	83 f8 ff             	cmp    $0xffffffff,%eax
41fb9f:	75 04                	jne    0x41fba5
41fba1:	33 f6                	xor    %esi,%esi
41fba3:	eb 4e                	jmp    0x41fbf3
41fba5:	a1 00 f8 43 00       	mov    0x43f800,%eax
41fbaa:	83 ff 01             	cmp    $0x1,%edi
41fbad:	75 09                	jne    0x41fbb8
41fbaf:	f6 80 98 00 00 00 01 	testb  $0x1,0x98(%eax)
41fbb6:	75 0b                	jne    0x41fbc3
41fbb8:	83 ff 02             	cmp    $0x2,%edi
41fbbb:	75 1c                	jne    0x41fbd9
41fbbd:	f6 40 60 01          	testb  $0x1,0x60(%eax)
41fbc1:	74 16                	je     0x41fbd9
41fbc3:	6a 02                	push   $0x2
41fbc5:	e8 d2 0f 00 00       	call   0x420b9c
41fbca:	6a 01                	push   $0x1
41fbcc:	8b f0                	mov    %eax,%esi
41fbce:	e8 c9 0f 00 00       	call   0x420b9c
41fbd3:	59                   	pop    %ecx
41fbd4:	59                   	pop    %ecx
41fbd5:	3b c6                	cmp    %esi,%eax
41fbd7:	74 c8                	je     0x41fba1
41fbd9:	57                   	push   %edi
41fbda:	e8 bd 0f 00 00       	call   0x420b9c
41fbdf:	59                   	pop    %ecx
41fbe0:	50                   	push   %eax
41fbe1:	ff 15 20 10 43 00    	call   *0x431020
41fbe7:	85 c0                	test   %eax,%eax
41fbe9:	75 b6                	jne    0x41fba1
41fbeb:	ff 15 08 11 43 00    	call   *0x431108
41fbf1:	8b f0                	mov    %eax,%esi
41fbf3:	57                   	push   %edi
41fbf4:	e8 12 0f 00 00       	call   0x420b0b