40ecf3:	66 c7 00 00 00       	movw   $0x0,(%eax)
40ecf8:	c3                   	ret
40ecf9:	e8 72 ff ff ff       	call   0x40ec70
40ecfe:	c3                   	ret
40ecff:	90                   	nop
40ed00:	50                   	push   %eax
40ed01:	e8 e6 ff ff ff       	call   0x40ecec
40ed06:	58                   	pop    %eax
40ed07:	c3                   	ret
40ed08:	55                   	push   %ebp
40ed09:	8b ec                	mov    %esp,%ebp
40ed0b:	53                   	push   %ebx
40ed0c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ed0f:	81 c1 00 fd ff ff    	add    $0xfffffd00,%ecx
40ed15:	8b 54 c1 04          	mov    0x4(%ecx,%eax,8),%edx
40ed19:	03 14 c1             	add    (%ecx,%eax,8),%edx
40ed1c:	8b 5d 08             	mov    0x8(%ebp),%ebx
40ed1f:	3b 94 83 00 ff ff ff 	cmp    -0x100(%ebx,%eax,4),%edx
40ed26:	0f 9f c2             	setg   %dl
40ed29:	48                   	dec    %eax
40ed2a:	84 d2                	test   %dl,%dl
40ed2c:	74 04                	je     0x40ed32
40ed2e:	85 c0                	test   %eax,%eax
40ed30:	7d e3                	jge    0x40ed15
40ed32:	8b c2                	mov    %edx,%eax
40ed34:	5b                   	pop    %ebx
40ed35:	5d                   	pop    %ebp
40ed36:	c3                   	ret
40ed37:	90                   	nop
40ed38:	55                   	push   %ebp
40ed39:	8b ec                	mov    %esp,%ebp
40ed3b:	53                   	push   %ebx
40ed3c:	56                   	push   %esi
40ed3d:	b2 01                	mov    $0x1,%dl
40ed3f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ed42:	ff 84 81 00 ff ff ff 	incl   -0x100(%ecx,%eax,4)
40ed49:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ed4c:	8b 8c c1 04 fd ff ff 	mov    -0x2fc(%ecx,%eax,8),%ecx
40ed53:	8b d9                	mov    %ecx,%ebx
40ed55:	8b 75 08             	mov    0x8(%ebp),%esi
40ed58:	03 9c c6 00 fd ff ff 	add    -0x300(%esi,%eax,8),%ebx
40ed5f:	8b 75 08             	mov    0x8(%ebp),%esi
40ed62:	3b 9c 86 00 ff ff ff 	cmp    -0x100(%esi,%eax,4),%ebx
40ed69:	7f 22                	jg     0x40ed8d
40ed6b:	85 c0                	test   %eax,%eax
40ed6d:	75 04                	jne    0x40ed73
40ed6f:	33 d2                	xor    %edx,%edx
40ed71:	eb 1a                	jmp    0x40ed8d
40ed73:	8b 55 08             	mov    0x8(%ebp),%edx
40ed76:	8b 55 08             	mov    0x8(%ebp),%edx
40ed79:	89 8c 82 00 ff ff ff 	mov    %ecx,-0x100(%edx,%eax,4)
40ed80:	8b 55 08             	mov    0x8(%ebp),%edx
40ed83:	52                   	push   %edx
40ed84:	48                   	dec    %eax
40ed85:	e8 ae ff ff ff       	call   0x40ed38
40ed8a:	59                   	pop    %ecx
40ed8b:	8b d0                	mov    %eax,%edx
40ed8d:	8b c2                	mov    %edx,%eax
40ed8f:	5e                   	pop    %esi
40ed90:	5b                   	pop    %ebx
40ed91:	5d                   	pop    %ebp
40ed92:	c3                   	ret
40ed93:	90                   	nop
40ed94:	55                   	push   %ebp
40ed95:	8b ec                	mov    %esp,%ebp
40ed97:	81 c4 e0 fc ff ff    	add    $0xfffffce0,%esp
40ed9d:	53                   	push   %ebx
40ed9e:	56                   	push   %esi
40ed9f:	57                   	push   %edi
40eda0:	89 8d f8 fc ff ff    	mov    %ecx,-0x308(%ebp)
40eda6:	8b da                	mov    %edx,%ebx
40eda8:	89 85 fc fc ff ff    	mov    %eax,-0x304(%ebp)
40edae:	f6 43 01 20          	testb  $0x20,0x1(%ebx)
40edb2:	75 0a                	jne    0x40edbe
40edb4:	b8 57 00 07 80       	mov    $0x80070057,%eax
40edb9:	e8 02 fc ff ff       	call   0x40e9c0
40edbe:	66 8b 03             	mov    (%ebx),%ax
40edc1:	8b d0                	mov    %eax,%edx
40edc3:	66 81 e2 ff 0f       	and    $0xfff,%dx
40edc8:	66 83 fa 0c          	cmp    $0xc,%dx
40edcc:	0f 85 73 01 00 00    	jne    0x40ef45
40edd2:	f6 c4 40             	test   $0x40,%ah
40edd5:	74 0d                	je     0x40ede4
40edd7:	8b 43 08             	mov    0x8(%ebx),%eax
40edda:	8b 00                	mov    (%eax),%eax
40eddc:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40ede2:	eb 09                	jmp    0x40eded
40ede4:	8b 43 08             	mov    0x8(%ebx),%eax
40ede7:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40eded:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40edf3:	0f b7 00             	movzwl (%eax),%eax
40edf6:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
40edfc:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40ee02:	4b                   	dec    %ebx
40ee03:	85 db                	test   %ebx,%ebx
40ee05:	7c 6b                	jl     0x40ee72
40ee07:	43                   	inc    %ebx
40ee08:	33 ff                	xor    %edi,%edi
40ee0a:	8d b5 00 fd ff ff    	lea    -0x300(%ebp),%esi
40ee10:	8b c6                	mov    %esi,%eax
40ee12:	89 85 e0 fc ff ff    	mov    %eax,-0x320(%ebp)
40ee18:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40ee1e:	83 c0 04             	add    $0x4,%eax
40ee21:	50                   	push   %eax
40ee22:	8d 47 01             	lea    0x1(%edi),%eax
40ee25:	50                   	push   %eax
40ee26:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40ee2c:	50                   	push   %eax
40ee2d:	e8 9e ed ff ff       	call   0x40dbd0
40ee32:	e8 89 fb ff ff       	call   0x40e9c0
40ee37:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40ee3d:	50                   	push   %eax
40ee3e:	8d 47 01             	lea    0x1(%edi),%eax
40ee41:	50                   	push   %eax
40ee42:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40ee48:	50                   	push   %eax
40ee49:	e8 8a ed ff ff       	call   0x40dbd8
40ee4e:	e8 6d fb ff ff       	call   0x40e9c0
40ee53:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40ee59:	8b 95 f4 fc ff ff    	mov    -0x30c(%ebp),%edx
40ee5f:	2b 50 04             	sub    0x4(%eax),%edx
40ee62:	42                   	inc    %edx
40ee63:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40ee69:	89 10                	mov    %edx,(%eax)
40ee6b:	47                   	inc    %edi
40ee6c:	83 c6 08             	add    $0x8,%esi
40ee6f:	4b                   	dec    %ebx
40ee70:	75 9e                	jne    0x40ee10
40ee72:	8d 85 00 fd ff ff    	lea    -0x300(%ebp),%eax
40ee78:	50                   	push   %eax
40ee79:	8b 85 f0 fc ff ff    	mov    -0x310(%ebp),%eax
40ee7f:	50                   	push   %eax
40ee80:	6a 0c                	push   $0xc
40ee82:	e8 41 ed ff ff       	call   0x40dbc8
40ee87:	8b f0                	mov    %eax,%esi
40ee89:	85 f6                	test   %esi,%esi
40ee8b:	75 05                	jne    0x40ee92
40ee8d:	e8 86 f8 ff ff       	call   0x40e718
40ee92:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40ee98:	e8 4f fe ff ff       	call   0x40ecec
40ee9d:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40eea3:	66 c7 00 0c 20       	movw   $0x200c,(%eax)
40eea8:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40eeae:	89 70 08             	mov    %esi,0x8(%eax)
40eeb1:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40eeb7:	4b                   	dec    %ebx
40eeb8:	85 db                	test   %ebx,%ebx
40eeba:	7c 1a                	jl     0x40eed6
40eebc:	43                   	inc    %ebx
40eebd:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40eec3:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40eec9:	8b 08                	mov    (%eax),%ecx
40eecb:	89 0a                	mov    %ecx,(%edx)
40eecd:	83 c2 04             	add    $0x4,%edx
40eed0:	83 c0 08             	add    $0x8,%eax
40eed3:	4b                   	dec    %ebx
40eed4:	75 f3                	jne    0x40eec9
40eed6:	55                   	push   %ebp
40eed7:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40eedd:	4b                   	dec    %ebx
40eede:	8b c3                	mov    %ebx,%eax
40eee0:	e8 23 fe ff ff       	call   0x40ed08
40eee5:	59                   	pop    %ecx
40eee6:	84 c0                	test   %al,%al
40eee8:	74 4c                	je     0x40ef36
40eeea:	8d 85 e8 fc ff ff    	lea    -0x318(%ebp),%eax
40eef0:	50                   	push   %eax
40eef1:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40eef7:	50                   	push   %eax
40eef8:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40eefe:	50                   	push   %eax
40eeff:	e8 dc ec ff ff       	call   0x40dbe0
40ef04:	e8 b7 fa ff ff       	call   0x40e9c0
40ef09:	8d 85 e4 fc ff ff    	lea    -0x31c(%ebp),%eax
40ef0f:	50                   	push   %eax
40ef10:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40ef16:	50                   	push   %eax
40ef17:	56                   	push   %esi
40ef18:	e8 c3 ec ff ff       	call   0x40dbe0
40ef1d:	e8 9e fa ff ff       	call   0x40e9c0
40ef22:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40ef28:	8b d0                	mov    %eax,%edx
40ef2a:	8b 85 e4 fc ff ff    	mov    -0x31c(%ebp),%eax
40ef30:	ff 95 f8 fc ff ff    	call   *-0x308(%ebp)
40ef36:	55                   	push   %ebp
40ef37:	8b c3                	mov    %ebx,%eax
40ef39:	e8 fa fd ff ff       	call   0x40ed38
40ef3e:	59                   	pop    %ecx
40ef3f:	84 c0                	test   %al,%al
40ef41:	75 93                	jne    0x40eed6
40ef43:	eb 12                	jmp    0x40ef57
40ef45:	53                   	push   %ebx
40ef46:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40ef4c:	50                   	push   %eax
40ef4d:	e8 22 e8 ff ff       	call   0x40d774
40ef52:	e8 69 fa ff ff       	call   0x40e9c0
40ef57:	5f                   	pop    %edi
40ef58:	5e                   	pop    %esi
40ef59:	5b                   	pop    %ebx
40ef5a:	8b e5                	mov    %ebp,%esp
40ef5c:	5d                   	pop    %ebp
40ef5d:	c3                   	ret
40ef5e:	8b c0                	mov    %eax,%eax
40ef60:	e8 af 00 00 00       	call   0x40f014
40ef65:	c3                   	ret
40ef66:	8b c0                	mov    %eax,%eax
40ef68:	53                   	push   %ebx
40ef69:	56                   	push   %esi
40ef6a:	57                   	push   %edi
40ef6b:	51                   	push   %ecx
40ef6c:	8b f2                	mov    %edx,%esi
40ef6e:	8b d8                	mov    %eax,%ebx
40ef70:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
40ef75:	74 07                	je     0x40ef7e
40ef77:	8b c3                	mov    %ebx,%eax
40ef79:	e8 f2 fc ff ff       	call   0x40ec70
40ef7e:	66 8b 3e             	mov    (%esi),%di
40ef81:	66 83 ff 14          	cmp    $0x14,%di
40ef85:	73 0e                	jae    0x40ef95
40ef87:	56                   	push   %esi
40ef88:	53                   	push   %ebx
40ef89:	e8 e6 e7 ff ff       	call   0x40d774
40ef8e:	e8 2d fa ff ff       	call   0x40e9c0
40ef93:	eb 79                	jmp    0x40f00e
40ef95:	66 81 ff 00 01       	cmp    $0x100,%di
40ef9a:	75 17                	jne    0x40efb3
40ef9c:	66 c7 03 00 01       	movw   $0x100,(%ebx)
40efa1:	33 c0                	xor    %eax,%eax
40efa3:	89 43 08             	mov    %eax,0x8(%ebx)
40efa6:	8d 43 08             	lea    0x8(%ebx),%eax
40efa9:	8b 56 08             	mov    0x8(%esi),%edx
40efac:	e8 5f 50 ff ff       	call   0x404010
40efb1:	eb 5b                	jmp    0x40f00e
40efb3:	66 81 ff 01 01       	cmp    $0x101,%di
40efb8:	75 13                	jne    0x40efcd
40efba:	66 89 3b             	mov    %di,(%ebx)
40efbd:	8b 46 08             	mov    0x8(%esi),%eax
40efc0:	89 43 08             	mov    %eax,0x8(%ebx)
40efc3:	8b c3                	mov    %ebx,%eax
40efc5:	ff 15 18 98 46 00    	call   *0x469818
40efcb:	eb 41                	jmp    0x40f00e
40efcd:	66 f7 c7 00 20       	test   $0x2000,%di
40efd2:	74 10                	je     0x40efe4
40efd4:	b9 60 ef 40 00       	mov    $0x40ef60,%ecx
40efd9:	8b d6                	mov    %esi,%edx
40efdb:	8b c3                	mov    %ebx,%eax
40efdd:	e8 b2 fd ff ff       	call   0x40ed94
40efe2:	eb 2a                	jmp    0x40f00e
40efe4:	8b d4                	mov    %esp,%edx
40efe6:	8b c7                	mov    %edi,%eax
40efe8:	e8 eb 16 00 00       	call   0x4106d8
40efed:	84 c0                	test   %al,%al
40efef:	74 11                	je     0x40f002
40eff1:	6a 00                	push   $0x0
40eff3:	8b ce                	mov    %esi,%ecx
40eff5:	8b d3                	mov    %ebx,%edx
40eff7:	8b 44 24 04          	mov    0x4(%esp),%eax
40effb:	8b 18                	mov    (%eax),%ebx
40effd:	ff 53 28             	call   *0x28(%ebx)
40f000:	eb 0c                	jmp    0x40f00e
40f002:	56                   	push   %esi
40f003:	53                   	push   %ebx
40f004:	e8 6b e7 ff ff       	call   0x40d774
40f009:	e8 b2 f9 ff ff       	call   0x40e9c0
40f00e:	5a                   	pop    %edx
40f00f:	5f                   	pop    %edi
40f010:	5e                   	pop    %esi
40f011:	5b                   	pop    %ebx
40f012:	c3                   	ret
40f013:	90                   	nop
40f014:	53                   	push   %ebx
40f015:	56                   	push   %esi
40f016:	8b da                	mov    %edx,%ebx
40f018:	8b f0                	mov    %eax,%esi
40f01a:	3b f3                	cmp    %ebx,%esi
40f01c:	74 36                	je     0x40f054
40f01e:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
40f023:	75 26                	jne    0x40f04b
40f025:	66 f7 06 e8 bf       	testw  $0xbfe8,(%esi)
40f02a:	74 07                	je     0x40f033
40f02c:	8b c6                	mov    %esi,%eax
40f02e:	e8 3d fc ff ff       	call   0x40ec70
40f033:	8b 03                	mov    (%ebx),%eax
40f035:	89 06                	mov    %eax,(%esi)
40f037:	8b 43 04             	mov    0x4(%ebx),%eax
40f03a:	89 46 04             	mov    %eax,0x4(%esi)
40f03d:	8b 43 08             	mov    0x8(%ebx),%eax
40f040:	89 46 08             	mov    %eax,0x8(%esi)
40f043:	8b 43 0c             	mov    0xc(%ebx),%eax
40f046:	89 46 0c             	mov    %eax,0xc(%esi)
40f049:	eb 09                	jmp    0x40f054
40f04b:	8b d3                	mov    %ebx,%edx
40f04d:	8b c6                	mov    %esi,%eax
40f04f:	e8 14 ff ff ff       	call   0x40ef68
40f054:	5e                   	pop    %esi
40f055:	5b                   	pop    %ebx
40f056:	c3                   	ret
40f057:	90                   	nop
40f058:	55                   	push   %ebp
40f059:	8b ec                	mov    %esp,%ebp
40f05b:	53                   	push   %ebx
40f05c:	8b d8                	mov    %eax,%ebx
40f05e:	8b c3                	mov    %ebx,%eax
40f060:	e8 37 56 ff ff       	call   0x40469c
40f065:	50                   	push   %eax
40f066:	6a 00                	push   $0x0
40f068:	68 00 04 00 00       	push   $0x400
40f06d:	ff 75 0c             	push   0xc(%ebp)
40f070:	ff 75 08             	push   0x8(%ebp)
40f073:	a1 f4 7c 46 00       	mov    0x467cf4,%eax
40f078:	8b 00                	mov    (%eax),%eax
40f07a:	ff d0                	call   *%eax
40f07c:	66 b9 08 00          	mov    $0x8,%cx
40f080:	66 ba 06 00          	mov    $0x6,%dx
40f084:	e8 43 f9 ff ff       	call   0x40e9cc
40f089:	5b                   	pop    %ebx
40f08a:	5d                   	pop    %ebp
40f08b:	c2 08 00             	ret    $0x8
40f08e:	8b c0                	mov    %eax,%eax
40f090:	55                   	push   %ebp
40f091:	8b ec                	mov    %esp,%ebp
40f093:	53                   	push   %ebx
40f094:	8b d8                	mov    %eax,%ebx
40f096:	8b c3                	mov    %ebx,%eax
40f098:	e8 ff 55 ff ff       	call   0x40469c
40f09d:	50                   	push   %eax
40f09e:	6a 00                	push   $0x0
40f0a0:	68 00 04 00 00       	push   $0x400
40f0a5:	ff 75 0c             	push   0xc(%ebp)
40f0a8:	ff 75 08             	push   0x8(%ebp)
40f0ab:	a1 88 7e 46 00       	mov    0x467e88,%eax
40f0b0:	8b 00                	mov    (%eax),%eax
40f0b2:	ff d0                	call   *%eax
40f0b4:	66 b9 08 00          	mov    $0x8,%cx
40f0b8:	66 ba 07 00          	mov    $0x7,%dx
40f0bc:	e8 0b f9 ff ff       	call   0x40e9cc
40f0c1:	5b                   	pop    %ebx
40f0c2:	5d                   	pop    %ebp
40f0c3:	c2 08 00             	ret    $0x8
40f0c6:	8b c0                	mov    %eax,%eax
40f0c8:	55                   	push   %ebp
40f0c9:	8b ec                	mov    %esp,%ebp
40f0cb:	33 c9                	xor    %ecx,%ecx
40f0cd:	51                   	push   %ecx
40f0ce:	51                   	push   %ecx
40f0cf:	51                   	push   %ecx
40f0d0:	51                   	push   %ecx
40f0d1:	53                   	push   %ebx
40f0d2:	56                   	push   %esi
40f0d3:	8b da                	mov    %edx,%ebx