40eba6:	56                   	push   %esi
40eba7:	57                   	push   %edi
40eba8:	89 8d f8 fc ff ff    	mov    %ecx,-0x308(%ebp)
40ebae:	8b da                	mov    %edx,%ebx
40ebb0:	89 85 fc fc ff ff    	mov    %eax,-0x304(%ebp)
40ebb6:	f6 43 01 20          	testb  $0x20,0x1(%ebx)
40ebba:	75 0a                	jne    0x40ebc6
40ebbc:	b8 57 00 07 80       	mov    $0x80070057,%eax
40ebc1:	e8 02 fc ff ff       	call   0x40e7c8
40ebc6:	66 8b 03             	mov    (%ebx),%ax
40ebc9:	8b d0                	mov    %eax,%edx
40ebcb:	66 81 e2 ff 0f       	and    $0xfff,%dx
40ebd0:	66 83 fa 0c          	cmp    $0xc,%dx
40ebd4:	0f 85 73 01 00 00    	jne    0x40ed4d
40ebda:	f6 c4 40             	test   $0x40,%ah
40ebdd:	74 0d                	je     0x40ebec
40ebdf:	8b 43 08             	mov    0x8(%ebx),%eax
40ebe2:	8b 00                	mov    (%eax),%eax
40ebe4:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40ebea:	eb 09                	jmp    0x40ebf5
40ebec:	8b 43 08             	mov    0x8(%ebx),%eax
40ebef:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40ebf5:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40ebfb:	0f b7 00             	movzwl (%eax),%eax
40ebfe:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
40ec04:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40ec0a:	4b                   	dec    %ebx
40ec0b:	85 db                	test   %ebx,%ebx
40ec0d:	7c 6b                	jl     0x40ec7a
40ec0f:	43                   	inc    %ebx
40ec10:	33 ff                	xor    %edi,%edi
40ec12:	8d b5 00 fd ff ff    	lea    -0x300(%ebp),%esi
40ec18:	8b c6                	mov    %esi,%eax
40ec1a:	89 85 e0 fc ff ff    	mov    %eax,-0x320(%ebp)
40ec20:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40ec26:	83 c0 04             	add    $0x4,%eax
40ec29:	50                   	push   %eax
40ec2a:	8d 47 01             	lea    0x1(%edi),%eax
40ec2d:	50                   	push   %eax
40ec2e:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40ec34:	50                   	push   %eax
40ec35:	e8 9e ed ff ff       	call   0x40d9d8
40ec3a:	e8 89 fb ff ff       	call   0x40e7c8
40ec3f:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40ec45:	50                   	push   %eax
40ec46:	8d 47 01             	lea    0x1(%edi),%eax
40ec49:	50                   	push   %eax
40ec4a:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40ec50:	50                   	push   %eax
40ec51:	e8 8a ed ff ff       	call   0x40d9e0
40ec56:	e8 6d fb ff ff       	call   0x40e7c8
40ec5b:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40ec61:	8b 95 f4 fc ff ff    	mov    -0x30c(%ebp),%edx
40ec67:	2b 50 04             	sub    0x4(%eax),%edx
40ec6a:	42                   	inc    %edx
40ec6b:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40ec71:	89 10                	mov    %edx,(%eax)
40ec73:	47                   	inc    %edi
40ec74:	83 c6 08             	add    $0x8,%esi
40ec77:	4b                   	dec    %ebx
40ec78:	75 9e                	jne    0x40ec18
40ec7a:	8d 85 00 fd ff ff    	lea    -0x300(%ebp),%eax
40ec80:	50                   	push   %eax
40ec81:	8b 85 f0 fc ff ff    	mov    -0x310(%ebp),%eax
40ec87:	50                   	push   %eax
40ec88:	6a 0c                	push   $0xc
40ec8a:	e8 41 ed ff ff       	call   0x40d9d0
40ec8f:	8b f0                	mov    %eax,%esi
40ec91:	85 f6                	test   %esi,%esi
40ec93:	75 05                	jne    0x40ec9a
40ec95:	e8 86 f8 ff ff       	call   0x40e520
40ec9a:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40eca0:	e8 4f fe ff ff       	call   0x40eaf4
40eca5:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40ecab:	66 c7 00 0c 20       	movw   $0x200c,(%eax)
40ecb0:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40ecb6:	89 70 08             	mov    %esi,0x8(%eax)
40ecb9:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40ecbf:	4b                   	dec    %ebx
40ecc0:	85 db                	test   %ebx,%ebx
40ecc2:	7c 1a                	jl     0x40ecde
40ecc4:	43                   	inc    %ebx
40ecc5:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40eccb:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40ecd1:	8b 08                	mov    (%eax),%ecx
40ecd3:	89 0a                	mov    %ecx,(%edx)
40ecd5:	83 c2 04             	add    $0x4,%edx
40ecd8:	83 c0 08             	add    $0x8,%eax
40ecdb:	4b                   	dec    %ebx
40ecdc:	75 f3                	jne    0x40ecd1
40ecde:	55                   	push   %ebp
40ecdf:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40ece5:	4b                   	dec    %ebx
40ece6:	8b c3                	mov    %ebx,%eax
40ece8:	e8 23 fe ff ff       	call   0x40eb10
40eced:	59                   	pop    %ecx
40ecee:	84 c0                	test   %al,%al
40ecf0:	74 4c                	je     0x40ed3e
40ecf2:	8d 85 e8 fc ff ff    	lea    -0x318(%ebp),%eax
40ecf8:	50                   	push   %eax
40ecf9:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40ecff:	50                   	push   %eax
40ed00:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40ed06:	50                   	push   %eax
40ed07:	e8 dc ec ff ff       	call   0x40d9e8
40ed0c:	e8 b7 fa ff ff       	call   0x40e7c8
40ed11:	8d 85 e4 fc ff ff    	lea    -0x31c(%ebp),%eax
40ed17:	50                   	push   %eax
40ed18:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40ed1e:	50                   	push   %eax
40ed1f:	56                   	push   %esi
40ed20:	e8 c3 ec ff ff       	call   0x40d9e8
40ed25:	e8 9e fa ff ff       	call   0x40e7c8
40ed2a:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40ed30:	8b d0                	mov    %eax,%edx
40ed32:	8b 85 e4 fc ff ff    	mov    -0x31c(%ebp),%eax
40ed38:	ff 95 f8 fc ff ff    	call   *-0x308(%ebp)
40ed3e:	55                   	push   %ebp
40ed3f:	8b c3                	mov    %ebx,%eax
40ed41:	e8 fa fd ff ff       	call   0x40eb40
40ed46:	59                   	pop    %ecx
40ed47:	84 c0                	test   %al,%al
40ed49:	75 93                	jne    0x40ecde
40ed4b:	eb 12                	jmp    0x40ed5f
40ed4d:	53                   	push   %ebx
40ed4e:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40ed54:	50                   	push   %eax
40ed55:	e8 22 e8 ff ff       	call   0x40d57c
40ed5a:	e8 69 fa ff ff       	call   0x40e7c8
40ed5f:	5f                   	pop    %edi
40ed60:	5e                   	pop    %esi
40ed61:	5b                   	pop    %ebx
40ed62:	8b e5                	mov    %ebp,%esp
40ed64:	5d                   	pop    %ebp
40ed65:	c3                   	ret
40ed66:	8b c0                	mov    %eax,%eax
40ed68:	e8 af 00 00 00       	call   0x40ee1c
40ed6d:	c3                   	ret
40ed6e:	8b c0                	mov    %eax,%eax
40ed70:	53                   	push   %ebx
40ed71:	56                   	push   %esi
40ed72:	57                   	push   %edi
40ed73:	51                   	push   %ecx
40ed74:	8b f2                	mov    %edx,%esi
40ed76:	8b d8                	mov    %eax,%ebx
40ed78:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
40ed7d:	74 07                	je     0x40ed86
40ed7f:	8b c3                	mov    %ebx,%eax
40ed81:	e8 f2 fc ff ff       	call   0x40ea78
40ed86:	66 8b 3e             	mov    (%esi),%di
40ed89:	66 83 ff 14          	cmp    $0x14,%di
40ed8d:	73 0e                	jae    0x40ed9d
40ed8f:	56                   	push   %esi
40ed90:	53                   	push   %ebx
40ed91:	e8 e6 e7 ff ff       	call   0x40d57c
40ed96:	e8 2d fa ff ff       	call   0x40e7c8
40ed9b:	eb 79                	jmp    0x40ee16
40ed9d:	66 81 ff 00 01       	cmp    $0x100,%di
40eda2:	75 17                	jne    0x40edbb
40eda4:	66 c7 03 00 01       	movw   $0x100,(%ebx)
40eda9:	33 c0                	xor    %eax,%eax
40edab:	89 43 08             	mov    %eax,0x8(%ebx)
40edae:	8d 43 08             	lea    0x8(%ebx),%eax
40edb1:	8b 56 08             	mov    0x8(%esi),%edx
40edb4:	e8 33 52 ff ff       	call   0x403fec
40edb9:	eb 5b                	jmp    0x40ee16
40edbb:	66 81 ff 01 01       	cmp    $0x101,%di
40edc0:	75 13                	jne    0x40edd5
40edc2:	66 89 3b             	mov    %di,(%ebx)
40edc5:	8b 46 08             	mov    0x8(%esi),%eax
40edc8:	89 43 08             	mov    %eax,0x8(%ebx)
40edcb:	8b c3                	mov    %ebx,%eax
40edcd:	ff 15 18 e8 46 00    	call   *0x46e818
40edd3:	eb 41                	jmp    0x40ee16
40edd5:	66 f7 c7 00 20       	test   $0x2000,%di
40edda:	74 10                	je     0x40edec
40eddc:	b9 68 ed 40 00       	mov    $0x40ed68,%ecx
40ede1:	8b d6                	mov    %esi,%edx
40ede3:	8b c3                	mov    %ebx,%eax
40ede5:	e8 b2 fd ff ff       	call   0x40eb9c
40edea:	eb 2a                	jmp    0x40ee16
40edec:	8b d4                	mov    %esp,%edx
40edee:	8b c7                	mov    %edi,%eax
40edf0:	e8 eb 16 00 00       	call   0x4104e0
40edf5:	84 c0                	test   %al,%al
40edf7:	74 11                	je     0x40ee0a
40edf9:	6a 00                	push   $0x0
40edfb:	8b ce                	mov    %esi,%ecx
40edfd:	8b d3                	mov    %ebx,%edx
40edff:	8b 44 24 04          	mov    0x4(%esp),%eax
40ee03:	8b 18                	mov    (%eax),%ebx
40ee05:	ff 53 28             	call   *0x28(%ebx)
40ee08:	eb 0c                	jmp    0x40ee16
40ee0a:	56                   	push   %esi
40ee0b:	53                   	push   %ebx
40ee0c:	e8 6b e7 ff ff       	call   0x40d57c
40ee11:	e8 b2 f9 ff ff       	call   0x40e7c8
40ee16:	5a                   	pop    %edx
40ee17:	5f                   	pop    %edi
40ee18:	5e                   	pop    %esi
40ee19:	5b                   	pop    %ebx
40ee1a:	c3                   	ret
40ee1b:	90                   	nop
40ee1c:	53                   	push   %ebx
40ee1d:	56                   	push   %esi
40ee1e:	8b da                	mov    %edx,%ebx
40ee20:	8b f0                	mov    %eax,%esi
40ee22:	3b f3                	cmp    %ebx,%esi
40ee24:	74 36                	je     0x40ee5c
40ee26:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
40ee2b:	75 26                	jne    0x40ee53
40ee2d:	66 f7 06 e8 bf       	testw  $0xbfe8,(%esi)
40ee32:	74 07                	je     0x40ee3b
40ee34:	8b c6                	mov    %esi,%eax
40ee36:	e8 3d fc ff ff       	call   0x40ea78
40ee3b:	8b 03                	mov    (%ebx),%eax
40ee3d:	89 06                	mov    %eax,(%esi)
40ee3f:	8b 43 04             	mov    0x4(%ebx),%eax
40ee42:	89 46 04             	mov    %eax,0x4(%esi)
40ee45:	8b 43 08             	mov    0x8(%ebx),%eax
40ee48:	89 46 08             	mov    %eax,0x8(%esi)
40ee4b:	8b 43 0c             	mov    0xc(%ebx),%eax
40ee4e:	89 46 0c             	mov    %eax,0xc(%esi)
40ee51:	eb 09                	jmp    0x40ee5c
40ee53:	8b d3                	mov    %ebx,%edx
40ee55:	8b c6                	mov    %esi,%eax
40ee57:	e8 14 ff ff ff       	call   0x40ed70
40ee5c:	5e                   	pop    %esi
40ee5d:	5b                   	pop    %ebx
40ee5e:	c3                   	ret
40ee5f:	90                   	nop
40ee60:	55                   	push   %ebp
40ee61:	8b ec                	mov    %esp,%ebp
40ee63:	53                   	push   %ebx
40ee64:	8b d8                	mov    %eax,%ebx
40ee66:	8b c3                	mov    %ebx,%eax
40ee68:	e8 0b 58 ff ff       	call   0x404678
40ee6d:	50                   	push   %eax
40ee6e:	6a 00                	push   $0x0
40ee70:	68 00 04 00 00       	push   $0x400
40ee75:	ff 75 0c             	push   0xc(%ebp)
40ee78:	ff 75 08             	push   0x8(%ebp)
40ee7b:	a1 7c da 46 00       	mov    0x46da7c,%eax
40ee80:	8b 00                	mov    (%eax),%eax
40ee82:	ff d0                	call   *%eax
40ee84:	66 b9 08 00          	mov    $0x8,%cx
40ee88:	66 ba 06 00          	mov    $0x6,%dx
40ee8c:	e8 43 f9 ff ff       	call   0x40e7d4
40ee91:	5b                   	pop    %ebx
40ee92:	5d                   	pop    %ebp
40ee93:	c2 08 00             	ret    $0x8
40ee96:	8b c0                	mov    %eax,%eax
40ee98:	55                   	push   %ebp
40ee99:	8b ec                	mov    %esp,%ebp
40ee9b:	53                   	push   %ebx
40ee9c:	8b d8                	mov    %eax,%ebx
40ee9e:	8b c3                	mov    %ebx,%eax
40eea0:	e8 d3 57 ff ff       	call   0x404678
40eea5:	50                   	push   %eax
40eea6:	6a 00                	push   $0x0
40eea8:	68 00 04 00 00       	push   $0x400
40eead:	ff 75 0c             	push   0xc(%ebp)
40eeb0:	ff 75 08             	push   0x8(%ebp)
40eeb3:	a1 14 dc 46 00       	mov    0x46dc14,%eax
40eeb8:	8b 00                	mov    (%eax),%eax
40eeba:	ff d0                	call   *%eax
40eebc:	66 b9 08 00          	mov    $0x8,%cx
40eec0:	66 ba 07 00          	mov    $0x7,%dx
40eec4:	e8 0b f9 ff ff       	call   0x40e7d4
40eec9:	5b                   	pop    %ebx
40eeca:	5d                   	pop    %ebp
40eecb:	c2 08 00             	ret    $0x8
40eece:	8b c0                	mov    %eax,%eax
40eed0:	55                   	push   %ebp
40eed1:	8b ec                	mov    %esp,%ebp
40eed3:	33 c9                	xor    %ecx,%ecx
40eed5:	51                   	push   %ecx
40eed6:	51                   	push   %ecx
40eed7:	51                   	push   %ecx
40eed8:	51                   	push   %ecx
40eed9:	53                   	push   %ebx
40eeda:	56                   	push   %esi
40eedb:	8b da                	mov    %edx,%ebx
40eedd:	8b f0                	mov    %eax,%esi
40eedf:	33 c0                	xor    %eax,%eax
40eee1:	55                   	push   %ebp
40eee2:	68 86 ef 40 00       	push   $0x40ef86
40eee7:	64 ff 30             	push   %fs:(%eax)
40eeea:	64 89 20             	mov    %esp,%fs:(%eax)
40eeed:	8b c3                	mov    %ebx,%eax
40eeef:	e8 84 57 ff ff       	call   0x404678
40eef4:	50                   	push   %eax
40eef5:	6a 00                	push   $0x0
40eef7:	68 00 04 00 00       	push   $0x400
40eefc:	56                   	push   %esi
40eefd:	a1 0c dd 46 00       	mov    0x46dd0c,%eax
40ef02:	8b 00                	mov    (%eax),%eax
40ef04:	ff d0                	call   *%eax
40ef06:	66 b9 08 00          	mov    $0x8,%cx
40ef0a:	66 ba 0b 00          	mov    $0xb,%dx
40ef0e:	e8 c1 f8 ff ff       	call   0x40e7d4
40ef13:	a0 24 33 46 00       	mov    0x463324,%al
40ef18:	2c 01                	sub    $0x1,%al
40ef1a:	72 4f                	jb     0x40ef6b
40ef1c:	74 06                	je     0x40ef24
40ef1e:	fe c8                	dec    %al
40ef20:	74 23                	je     0x40ef45
40ef22:	eb 42                	jmp    0x40ef66
40ef24:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ef27:	8b 13                	mov    (%ebx),%edx
40ef29:	e8 f2 52 ff ff       	call   0x404220
40ef2e:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ef31:	8d 55 fc             	lea    -0x4(%ebp),%edx
40ef34:	e8 67 8c ff ff       	call   0x407ba0
40ef39:	8b 55 fc             	mov    -0x4(%ebp),%edx
40ef3c:	8b c3                	mov    %ebx,%eax
40ef3e:	e8 81 58 ff ff       	call   0x4047c4
40ef43:	eb 26                	jmp    0x40ef6b
40ef45:	8d 45 f0             	lea    -0x10(%ebp),%eax
40ef48:	8b 13                	mov    (%ebx),%edx
40ef4a:	e8 d1 52 ff ff       	call   0x404220
40ef4f:	8b 45 f0             	mov    -0x10(%ebp),%eax
40ef52:	8d 55 f4             	lea    -0xc(%ebp),%edx
40ef55:	e8 0a 8c ff ff       	call   0x407b64
40ef5a:	8b 55 f4             	mov    -0xc(%ebp),%edx
40ef5d:	8b c3                	mov    %ebx,%eax
40ef5f:	e8 60 58 ff ff       	call   0x4047c4
40ef64:	eb 05                	jmp    0x40ef6b
40ef66:	e8 c5 f4 ff ff       	call   0x40e430
40ef6b:	33 c0                	xor    %eax,%eax
40ef6d:	5a                   	pop    %edx
40ef6e:	59                   	pop    %ecx
40ef6f:	59                   	pop    %ecx
40ef70:	64 89 10             	mov    %edx,%fs:(%eax)
40ef73:	68 8d ef 40 00       	push   $0x40ef8d
40ef78:	8d 45 f0             	lea    -0x10(%ebp),%eax
40ef7b:	ba 04 00 00 00       	mov    $0x4,%edx
40ef80:	e8 37 50 ff ff       	call   0x403fbc
40ef85:	c3                   	ret
40ef86:	e9 11 4a ff ff       	jmp    0x40399c
40ef8b:	eb eb                	jmp    0x40ef78
40ef8d:	5e                   	pop    %esi
40ef8e:	5b                   	pop    %ebx
40ef8f:	8b e5                	mov    %ebp,%esp
40ef91:	5d                   	pop    %ebp
40ef92:	c3                   	ret
40ef93:	90                   	nop
40ef94:	55                   	push   %ebp
40ef95:	8b ec                	mov    %esp,%ebp
40ef97:	83 c4 e8             	add    $0xffffffe8,%esp