41f896:	5e                   	pop    %esi
41f897:	5d                   	pop    %ebp
41f898:	c2 10 00             	ret    $0x10
41f89b:	55                   	push   %ebp
41f89c:	8b ec                	mov    %esp,%ebp
41f89e:	8b 45 0c             	mov    0xc(%ebp),%eax
41f8a1:	56                   	push   %esi
41f8a2:	85 c0                	test   %eax,%eax
41f8a4:	74 2a                	je     0x41f8d0
41f8a6:	33 c9                	xor    %ecx,%ecx
41f8a8:	66 39 08             	cmp    %cx,(%eax)
41f8ab:	74 23                	je     0x41f8d0
41f8ad:	51                   	push   %ecx
41f8ae:	ff 75 10             	push   0x10(%ebp)
41f8b1:	50                   	push   %eax
41f8b2:	8b 45 08             	mov    0x8(%ebp),%eax
41f8b5:	8b 40 0c             	mov    0xc(%eax),%eax
41f8b8:	05 88 00 00 00       	add    $0x88,%eax
41f8bd:	50                   	push   %eax
41f8be:	e8 d4 88 fe ff       	call   0x408197
41f8c3:	8b f0                	mov    %eax,%esi
41f8c5:	85 f6                	test   %esi,%esi
41f8c7:	79 19                	jns    0x41f8e2
41f8c9:	68 10 a2 45 00       	push   $0x45a210
41f8ce:	eb 0a                	jmp    0x41f8da
41f8d0:	be 57 00 07 80       	mov    $0x80070057,%esi
41f8d5:	68 30 a2 45 00       	push   $0x45a230
41f8da:	56                   	push   %esi
41f8db:	e8 4f 08 02 00       	call   0x44012f
41f8e0:	59                   	pop    %ecx
41f8e1:	59                   	pop    %ecx
41f8e2:	8b c6                	mov    %esi,%eax
41f8e4:	5e                   	pop    %esi
41f8e5:	5d                   	pop    %ebp
41f8e6:	c2 0c 00             	ret    $0xc
41f8e9:	55                   	push   %ebp
41f8ea:	8b ec                	mov    %esp,%ebp
41f8ec:	8b 45 0c             	mov    0xc(%ebp),%eax
41f8ef:	56                   	push   %esi
41f8f0:	85 c0                	test   %eax,%eax
41f8f2:	74 2d                	je     0x41f921
41f8f4:	33 c9                	xor    %ecx,%ecx
41f8f6:	66 39 08             	cmp    %cx,(%eax)
41f8f9:	74 26                	je     0x41f921
41f8fb:	51                   	push   %ecx
41f8fc:	ff 75 14             	push   0x14(%ebp)
41f8ff:	ff 75 10             	push   0x10(%ebp)
41f902:	50                   	push   %eax
41f903:	8b 45 08             	mov    0x8(%ebp),%eax
41f906:	8b 40 0c             	mov    0xc(%eax),%eax
41f909:	05 88 00 00 00       	add    $0x88,%eax
41f90e:	50                   	push   %eax
41f90f:	e8 c4 88 fe ff       	call   0x4081d8
41f914:	8b f0                	mov    %eax,%esi
41f916:	85 f6                	test   %esi,%esi
41f918:	79 19                	jns    0x41f933
41f91a:	68 54 a2 45 00       	push   $0x45a254
41f91f:	eb 0a                	jmp    0x41f92b
41f921:	be 57 00 07 80       	mov    $0x80070057,%esi
41f926:	68 30 a2 45 00       	push   $0x45a230
41f92b:	56                   	push   %esi
41f92c:	e8 fe 07 02 00       	call   0x44012f
41f931:	59                   	pop    %ecx
41f932:	59                   	pop    %ecx
41f933:	8b c6                	mov    %esi,%eax
41f935:	5e                   	pop    %esi
41f936:	5d                   	pop    %ebp
41f937:	c2 10 00             	ret    $0x10
41f93a:	55                   	push   %ebp
41f93b:	8b ec                	mov    %esp,%ebp
41f93d:	83 ec 0c             	sub    $0xc,%esp
41f940:	8b 45 1c             	mov    0x1c(%ebp),%eax
41f943:	33 d2                	xor    %edx,%edx
41f945:	53                   	push   %ebx
41f946:	56                   	push   %esi
41f947:	8b c8                	mov    %eax,%ecx
41f949:	8b f2                	mov    %edx,%esi
41f94b:	81 e1 00 01 00 00    	and    $0x100,%ecx
41f951:	bb 57 00 07 80       	mov    $0x80070057,%ebx
41f956:	57                   	push   %edi
41f957:	8b 7d 0c             	mov    0xc(%ebp),%edi
41f95a:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41f95d:	74 17                	je     0x41f976
41f95f:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f962:	85 c9                	test   %ecx,%ecx
41f964:	75 04                	jne    0x41f96a
41f966:	85 ff                	test   %edi,%edi
41f968:	75 08                	jne    0x41f972
41f96a:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
41f970:	76 15                	jbe    0x41f987
41f972:	8b f3                	mov    %ebx,%esi
41f974:	eb 11                	jmp    0x41f987
41f976:	85 ff                	test   %edi,%edi
41f978:	74 08                	je     0x41f982
41f97a:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
41f980:	76 02                	jbe    0x41f984
41f982:	8b f3                	mov    %ebx,%esi
41f984:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f987:	85 f6                	test   %esi,%esi
41f989:	0f 88 14 01 00 00    	js     0x41faa3
41f98f:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
41f993:	8b d1                	mov    %ecx,%edx
41f995:	8b df                	mov    %edi,%ebx
41f997:	89 55 fc             	mov    %edx,-0x4(%ebp)
41f99a:	89 5d f8             	mov    %ebx,-0x8(%ebp)
41f99d:	74 0f                	je     0x41f9ae
41f99f:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
41f9a3:	be 24 b5 44 00       	mov    $0x44b524,%esi
41f9a8:	0f 45 75 10          	cmovne 0x10(%ebp),%esi
41f9ac:	eb 03                	jmp    0x41f9b1
41f9ae:	8b 75 10             	mov    0x10(%ebp),%esi
41f9b1:	89 75 10             	mov    %esi,0x10(%ebp)
41f9b4:	33 f6                	xor    %esi,%esi
41f9b6:	a9 00 e0 ff ff       	test   $0xffffe000,%eax
41f9bb:	74 17                	je     0x41f9d4
41f9bd:	be 57 00 07 80       	mov    $0x80070057,%esi
41f9c2:	85 ff                	test   %edi,%edi
41f9c4:	0f 84 94 00 00 00    	je     0x41fa5e
41f9ca:	33 d2                	xor    %edx,%edx
41f9cc:	66 89 11             	mov    %dx,(%ecx)
41f9cf:	e9 8a 00 00 00       	jmp    0x41fa5e
41f9d4:	85 ff                	test   %edi,%edi
41f9d6:	75 21                	jne    0x41f9f9
41f9d8:	8b 45 10             	mov    0x10(%ebp),%eax
41f9db:	66 39 38             	cmp    %di,(%eax)
41f9de:	8b 7d 0c             	mov    0xc(%ebp),%edi
41f9e1:	8b 45 1c             	mov    0x1c(%ebp),%eax
41f9e4:	0f 84 a7 00 00 00    	je     0x41fa91
41f9ea:	be 7a 00 07 80       	mov    $0x8007007a,%esi
41f9ef:	85 c9                	test   %ecx,%ecx
41f9f1:	8d 56 dd             	lea    -0x23(%esi),%edx
41f9f4:	0f 44 f2             	cmove  %edx,%esi
41f9f7:	eb 65                	jmp    0x41fa5e
41f9f9:	68 fe ff ff 7f       	push   $0x7ffffffe
41f9fe:	ff 75 10             	push   0x10(%ebp)
41fa01:	33 c0                	xor    %eax,%eax
41fa03:	89 45 0c             	mov    %eax,0xc(%ebp)
41fa06:	8d 45 0c             	lea    0xc(%ebp),%eax
41fa09:	50                   	push   %eax
41fa0a:	57                   	push   %edi
41fa0b:	51                   	push   %ecx
41fa0c:	e8 9d 00 00 00       	call   0x41faae
41fa11:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41fa14:	8b f0                	mov    %eax,%esi
41fa16:	8b 45 08             	mov    0x8(%ebp),%eax
41fa19:	8b df                	mov    %edi,%ebx
41fa1b:	2b d9                	sub    %ecx,%ebx
41fa1d:	89 5d f8             	mov    %ebx,-0x8(%ebp)
41fa20:	8d 14 48             	lea    (%eax,%ecx,2),%edx
41fa23:	89 55 fc             	mov    %edx,-0x4(%ebp)
41fa26:	85 f6                	test   %esi,%esi
41fa28:	78 2e                	js     0x41fa58
41fa2a:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
41fa2d:	f7 c1 00 02 00 00    	test   $0x200,%ecx
41fa33:	74 5c                	je     0x41fa91
41fa35:	83 fb 01             	cmp    $0x1,%ebx
41fa38:	76 57                	jbe    0x41fa91
41fa3a:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
41fa3d:	83 f8 02             	cmp    $0x2,%eax
41fa40:	76 4f                	jbe    0x41fa91
41fa42:	83 c0 fe             	add    $0xfffffffe,%eax
41fa45:	50                   	push   %eax
41fa46:	0f b6 c1             	movzbl %cl,%eax
41fa49:	50                   	push   %eax
41fa4a:	8d 42 02             	lea    0x2(%edx),%eax
41fa4d:	50                   	push   %eax
41fa4e:	e8 1d fc 00 00       	call   0x42f670
41fa53:	83 c4 0c             	add    $0xc,%esp
41fa56:	eb 36                	jmp    0x41fa8e
41fa58:	8b 45 1c             	mov    0x1c(%ebp),%eax
41fa5b:	8b 4d 08             	mov    0x8(%ebp),%ecx
41fa5e:	a9 00 1c 00 00       	test   $0x1c00,%eax
41fa63:	74 1d                	je     0x41fa82
41fa65:	85 ff                	test   %edi,%edi
41fa67:	74 19                	je     0x41fa82
41fa69:	50                   	push   %eax
41fa6a:	8d 45 f8             	lea    -0x8(%ebp),%eax
41fa6d:	50                   	push   %eax
41fa6e:	8d 45 fc             	lea    -0x4(%ebp),%eax
41fa71:	50                   	push   %eax
41fa72:	33 c0                	xor    %eax,%eax
41fa74:	50                   	push   %eax
41fa75:	8d 04 3f             	lea    (%edi,%edi,1),%eax
41fa78:	50                   	push   %eax
41fa79:	51                   	push   %ecx
41fa7a:	e8 8c 00 00 00       	call   0x41fb0b
41fa7f:	8b 5d f8             	mov    -0x8(%ebp),%ebx
41fa82:	85 f6                	test   %esi,%esi
41fa84:	79 08                	jns    0x41fa8e
41fa86:	81 fe 7a 00 07 80    	cmp    $0x8007007a,%esi
41fa8c:	75 15                	jne    0x41faa3
41fa8e:	8b 55 fc             	mov    -0x4(%ebp),%edx
41fa91:	8b 45 14             	mov    0x14(%ebp),%eax
41fa94:	85 c0                	test   %eax,%eax
41fa96:	74 02                	je     0x41fa9a
41fa98:	89 10                	mov    %edx,(%eax)
41fa9a:	8b 45 18             	mov    0x18(%ebp),%eax
41fa9d:	85 c0                	test   %eax,%eax
41fa9f:	74 02                	je     0x41faa3
41faa1:	89 18                	mov    %ebx,(%eax)
41faa3:	5f                   	pop    %edi
41faa4:	8b c6                	mov    %esi,%eax
41faa6:	5e                   	pop    %esi
41faa7:	5b                   	pop    %ebx
41faa8:	8b e5                	mov    %ebp,%esp
41faaa:	5d                   	pop    %ebp
41faab:	c2 18 00             	ret    $0x18
41faae:	55                   	push   %ebp
41faaf:	8b ec                	mov    %esp,%ebp
41fab1:	8b 55 0c             	mov    0xc(%ebp),%edx
41fab4:	8b 45 08             	mov    0x8(%ebp),%eax
41fab7:	56                   	push   %esi
41fab8:	33 f6                	xor    %esi,%esi
41faba:	8b ce                	mov    %esi,%ecx
41fabc:	85 d2                	test   %edx,%edx
41fabe:	74 2d                	je     0x41faed
41fac0:	53                   	push   %ebx
41fac1:	8b 5d 18             	mov    0x18(%ebp),%ebx
41fac4:	57                   	push   %edi
41fac5:	8b 7d 14             	mov    0x14(%ebp),%edi
41fac8:	2b f8                	sub    %eax,%edi
41faca:	85 db                	test   %ebx,%ebx
41facc:	74 16                	je     0x41fae4
41face:	0f b7 34 07          	movzwl (%edi,%eax,1),%esi
41fad2:	66 85 f6             	test   %si,%si
41fad5:	74 0d                	je     0x41fae4
41fad7:	66 89 30             	mov    %si,(%eax)
41fada:	83 c0 02             	add    $0x2,%eax
41fadd:	4b                   	dec    %ebx
41fade:	41                   	inc    %ecx
41fadf:	83 ea 01             	sub    $0x1,%edx
41fae2:	75 e6                	jne    0x41faca
41fae4:	6a 00                	push   $0x0
41fae6:	5e                   	pop    %esi
41fae7:	5f                   	pop    %edi
41fae8:	5b                   	pop    %ebx
41fae9:	85 d2                	test   %edx,%edx
41faeb:	75 09                	jne    0x41faf6
41faed:	83 e8 02             	sub    $0x2,%eax
41faf0:	be 7a 00 07 80       	mov    $0x8007007a,%esi
41faf5:	49                   	dec    %ecx
41faf6:	33 d2                	xor    %edx,%edx
41faf8:	66 89 10             	mov    %dx,(%eax)
41fafb:	8b 45 10             	mov    0x10(%ebp),%eax
41fafe:	85 c0                	test   %eax,%eax
41fb00:	74 02                	je     0x41fb04
41fb02:	89 08                	mov    %ecx,(%eax)
41fb04:	8b c6                	mov    %esi,%eax
41fb06:	5e                   	pop    %esi
41fb07:	5d                   	pop    %ebp
41fb08:	c2 14 00             	ret    $0x14
41fb0b:	55                   	push   %ebp
41fb0c:	8b ec                	mov    %esp,%ebp
41fb0e:	8b 45 1c             	mov    0x1c(%ebp),%eax
41fb11:	53                   	push   %ebx
41fb12:	8b 5d 08             	mov    0x8(%ebp),%ebx
41fb15:	56                   	push   %esi
41fb16:	57                   	push   %edi
41fb17:	8b 7d 0c             	mov    0xc(%ebp),%edi
41fb1a:	d1 ef                	shr    $1,%edi
41fb1c:	74 23                	je     0x41fb41
41fb1e:	a9 00 10 00 00       	test   $0x1000,%eax
41fb23:	74 1c                	je     0x41fb41
41fb25:	8b 4d 10             	mov    0x10(%ebp),%ecx
41fb28:	8b 45 14             	mov    0x14(%ebp),%eax
41fb2b:	8d 14 4b             	lea    (%ebx,%ecx,2),%edx
41fb2e:	89 10                	mov    %edx,(%eax)
41fb30:	8b c7                	mov    %edi,%eax
41fb32:	2b c1                	sub    %ecx,%eax
41fb34:	8b 4d 18             	mov    0x18(%ebp),%ecx
41fb37:	89 01                	mov    %eax,(%ecx)
41fb39:	33 c0                	xor    %eax,%eax
41fb3b:	66 89 02             	mov    %ax,(%edx)
41fb3e:	8b 45 1c             	mov    0x1c(%ebp),%eax
41fb41:	a9 00 04 00 00       	test   $0x400,%eax
41fb46:	74 42                	je     0x41fb8a
41fb48:	ff 75 0c             	push   0xc(%ebp)
41fb4b:	0f b6 f0             	movzbl %al,%esi
41fb4e:	56                   	push   %esi
41fb4f:	53                   	push   %ebx
41fb50:	e8 1b fb 00 00       	call   0x42f670
41fb55:	83 c4 0c             	add    $0xc,%esp
41fb58:	85 f6                	test   %esi,%esi
41fb5a:	75 0f                	jne    0x41fb6b
41fb5c:	8b 55 14             	mov    0x14(%ebp),%edx
41fb5f:	8b 4d 18             	mov    0x18(%ebp),%ecx
41fb62:	89 1a                	mov    %ebx,(%edx)
41fb64:	89 39                	mov    %edi,(%ecx)
41fb66:	8b 45 1c             	mov    0x1c(%ebp),%eax
41fb69:	eb 25                	jmp    0x41fb90
41fb6b:	85 ff                	test   %edi,%edi
41fb6d:	74 35                	je     0x41fba4
41fb6f:	8b 55 14             	mov    0x14(%ebp),%edx
41fb72:	8d 43 fe             	lea    -0x2(%ebx),%eax
41fb75:	8b 4d 18             	mov    0x18(%ebp),%ecx
41fb78:	8d 04 78             	lea    (%eax,%edi,2),%eax
41fb7b:	33 f6                	xor    %esi,%esi
41fb7d:	89 02                	mov    %eax,(%edx)
41fb7f:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
41fb85:	66 89 30             	mov    %si,(%eax)
41fb88:	eb dc                	jmp    0x41fb66
41fb8a:	8b 4d 18             	mov    0x18(%ebp),%ecx
41fb8d:	8b 55 14             	mov    0x14(%ebp),%edx
41fb90:	85 ff                	test   %edi,%edi
41fb92:	74 10                	je     0x41fba4
41fb94:	a9 00 08 00 00       	test   $0x800,%eax
41fb99:	74 09                	je     0x41fba4
41fb9b:	89 1a                	mov    %ebx,(%edx)
41fb9d:	33 c0                	xor    %eax,%eax
41fb9f:	89 39                	mov    %edi,(%ecx)
41fba1:	66 89 03             	mov    %ax,(%ebx)
41fba4:	5f                   	pop    %edi
41fba5:	5e                   	pop    %esi
41fba6:	33 c0                	xor    %eax,%eax
41fba8:	5b                   	pop    %ebx
41fba9:	5d                   	pop    %ebp
41fbaa:	c2 18 00             	ret    $0x18
41fbad:	55                   	push   %ebp
41fbae:	8b ec                	mov    %esp,%ebp
41fbb0:	51                   	push   %ecx
41fbb1:	8b 55 10             	mov    0x10(%ebp),%edx
41fbb4:	33 c9                	xor    %ecx,%ecx
41fbb6:	56                   	push   %esi
41fbb7:	57                   	push   %edi
41fbb8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41fbbb:	be 84 9d 45 00       	mov    $0x459d84,%esi
41fbc0:	8b 04 8e             	mov    (%esi,%ecx,4),%eax
41fbc3:	3b 04 8a             	cmp    (%edx,%ecx,4),%eax
41fbc6:	75 7a                	jne    0x41fc42
41fbc8:	41                   	inc    %ecx
41fbc9:	83 f9 04             	cmp    $0x4,%ecx
41fbcc:	75 f2                	jne    0x41fbc0
41fbce:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41fbd1:	85 c9                	test   %ecx,%ecx
41fbd3:	75 26                	jne    0x41fbfb
41fbd5:	be 05 40 00 80       	mov    $0x80004005,%esi
41fbda:	56                   	push   %esi
41fbdb:	68 7f 03 00 00       	push   $0x37f
41fbe0:	68 94 9d 45 00       	push   $0x459d94
41fbe5:	8b fe                	mov    %esi,%edi
41fbe7:	e8 e7 3b fe ff       	call   0x4037d3
41fbec:	68 10 a4 45 00       	push   $0x45a410
41fbf1:	56                   	push   %esi
41fbf2:	e8 38 05 02 00       	call   0x44012f
41fbf7:	59                   	pop    %ecx
41fbf8:	59                   	pop    %ecx
41fbf9:	eb 4c                	jmp    0x41fc47
41fbfb:	8b 55 14             	mov    0x14(%ebp),%edx
41fbfe:	85 d2                	test   %edx,%edx
41fc00:	75 1e                	jne    0x41fc20