40ede1:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40ede7:	8b 40 08             	mov    0x8(%eax),%eax
40edea:	8b 00                	mov    (%eax),%eax
40edec:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
40edf2:	eb 0f                	jmp    0x40ee03
40edf4:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40edfa:	8b 40 08             	mov    0x8(%eax),%eax
40edfd:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
40ee03:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40ee09:	0f b7 00             	movzwl (%eax),%eax
40ee0c:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
40ee12:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40ee18:	4b                   	dec    %ebx
40ee19:	85 db                	test   %ebx,%ebx
40ee1b:	7c 6b                	jl     0x40ee88
40ee1d:	43                   	inc    %ebx
40ee1e:	33 ff                	xor    %edi,%edi
40ee20:	8d b5 00 fd ff ff    	lea    -0x300(%ebp),%esi
40ee26:	8b c6                	mov    %esi,%eax
40ee28:	89 85 e8 fc ff ff    	mov    %eax,-0x318(%ebp)
40ee2e:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40ee34:	83 c0 04             	add    $0x4,%eax
40ee37:	50                   	push   %eax
40ee38:	8d 47 01             	lea    0x1(%edi),%eax
40ee3b:	50                   	push   %eax
40ee3c:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40ee42:	50                   	push   %eax
40ee43:	e8 1c f0 ff ff       	call   0x40de64
40ee48:	e8 13 fe ff ff       	call   0x40ec60
40ee4d:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40ee53:	50                   	push   %eax
40ee54:	8d 47 01             	lea    0x1(%edi),%eax
40ee57:	50                   	push   %eax
40ee58:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40ee5e:	50                   	push   %eax
40ee5f:	e8 08 f0 ff ff       	call   0x40de6c
40ee64:	e8 f7 fd ff ff       	call   0x40ec60
40ee69:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40ee6f:	8b 95 f4 fc ff ff    	mov    -0x30c(%ebp),%edx
40ee75:	2b 50 04             	sub    0x4(%eax),%edx
40ee78:	42                   	inc    %edx
40ee79:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40ee7f:	89 10                	mov    %edx,(%eax)
40ee81:	47                   	inc    %edi
40ee82:	83 c6 08             	add    $0x8,%esi
40ee85:	4b                   	dec    %ebx
40ee86:	75 9e                	jne    0x40ee26
40ee88:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40ee8e:	4b                   	dec    %ebx
40ee8f:	85 db                	test   %ebx,%ebx
40ee91:	7c 1a                	jl     0x40eead
40ee93:	43                   	inc    %ebx
40ee94:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40ee9a:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40eea0:	8b 08                	mov    (%eax),%ecx
40eea2:	89 0a                	mov    %ecx,(%edx)
40eea4:	83 c2 04             	add    $0x4,%edx
40eea7:	83 c0 08             	add    $0x8,%eax
40eeaa:	4b                   	dec    %ebx
40eeab:	75 f3                	jne    0x40eea0
40eead:	55                   	push   %ebp
40eeae:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40eeb4:	4b                   	dec    %ebx
40eeb5:	8b c3                	mov    %ebx,%eax
40eeb7:	e8 4c fe ff ff       	call   0x40ed08
40eebc:	59                   	pop    %ecx
40eebd:	84 c0                	test   %al,%al
40eebf:	74 2a                	je     0x40eeeb
40eec1:	8d 85 ec fc ff ff    	lea    -0x314(%ebp),%eax
40eec7:	50                   	push   %eax
40eec8:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40eece:	50                   	push   %eax
40eecf:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40eed5:	50                   	push   %eax
40eed6:	e8 99 ef ff ff       	call   0x40de74
40eedb:	e8 80 fd ff ff       	call   0x40ec60
40eee0:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40eee6:	e8 a1 00 00 00       	call   0x40ef8c
40eeeb:	55                   	push   %ebp
40eeec:	8b c3                	mov    %ebx,%eax
40eeee:	e8 45 fe ff ff       	call   0x40ed38
40eef3:	59                   	pop    %ecx
40eef4:	84 c0                	test   %al,%al
40eef6:	75 b5                	jne    0x40eead
40eef8:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40eefe:	50                   	push   %eax
40eeff:	e8 fc ea ff ff       	call   0x40da00
40ef04:	e8 57 fd ff ff       	call   0x40ec60
40ef09:	5f                   	pop    %edi
40ef0a:	5e                   	pop    %esi
40ef0b:	5b                   	pop    %ebx
40ef0c:	8b e5                	mov    %ebp,%esp
40ef0e:	5d                   	pop    %ebp
40ef0f:	c3                   	ret
40ef10:	53                   	push   %ebx
40ef11:	56                   	push   %esi
40ef12:	51                   	push   %ecx
40ef13:	8b d8                	mov    %eax,%ebx
40ef15:	66 8b 33             	mov    (%ebx),%si
40ef18:	66 83 fe 14          	cmp    $0x14,%si
40ef1c:	73 0d                	jae    0x40ef2b
40ef1e:	53                   	push   %ebx
40ef1f:	e8 dc ea ff ff       	call   0x40da00
40ef24:	e8 37 fd ff ff       	call   0x40ec60
40ef29:	eb 5c                	jmp    0x40ef87
40ef2b:	66 81 fe 00 01       	cmp    $0x100,%si
40ef30:	75 0f                	jne    0x40ef41
40ef32:	66 c7 03 00 00       	movw   $0x0,(%ebx)
40ef37:	8d 43 08             	lea    0x8(%ebx),%eax
40ef3a:	e8 31 56 ff ff       	call   0x404570
40ef3f:	eb 46                	jmp    0x40ef87
40ef41:	66 81 fe 01 01       	cmp    $0x101,%si
40ef46:	75 0a                	jne    0x40ef52
40ef48:	8b c3                	mov    %ebx,%eax
40ef4a:	ff 15 14 18 46 00    	call   *0x461814
40ef50:	eb 35                	jmp    0x40ef87
40ef52:	66 f7 c6 00 20       	test   $0x2000,%si
40ef57:	74 09                	je     0x40ef62
40ef59:	8b c3                	mov    %ebx,%eax
40ef5b:	e8 34 fe ff ff       	call   0x40ed94
40ef60:	eb 25                	jmp    0x40ef87
40ef62:	8b d4                	mov    %esp,%edx
40ef64:	8b c6                	mov    %esi,%eax
40ef66:	e8 0d 1a 00 00       	call   0x410978
40ef6b:	84 c0                	test   %al,%al
40ef6d:	74 0c                	je     0x40ef7b
40ef6f:	8b d3                	mov    %ebx,%edx
40ef71:	8b 04 24             	mov    (%esp),%eax
40ef74:	8b 08                	mov    (%eax),%ecx
40ef76:	ff 51 24             	call   *0x24(%ecx)
40ef79:	eb 0c                	jmp    0x40ef87
40ef7b:	53                   	push   %ebx
40ef7c:	e8 7f ea ff ff       	call   0x40da00
40ef81:	53                   	push   %ebx
40ef82:	e8 71 ea ff ff       	call   0x40d9f8
40ef87:	5a                   	pop    %edx
40ef88:	5e                   	pop    %esi
40ef89:	5b                   	pop    %ebx
40ef8a:	c3                   	ret
40ef8b:	90                   	nop
40ef8c:	66 f7 00 e8 bf       	testw  $0xbfe8,(%eax)
40ef91:	75 06                	jne    0x40ef99
40ef93:	66 c7 00 00 00       	movw   $0x0,(%eax)
40ef98:	c3                   	ret
40ef99:	e8 72 ff ff ff       	call   0x40ef10
40ef9e:	c3                   	ret
40ef9f:	90                   	nop
40efa0:	50                   	push   %eax
40efa1:	e8 e6 ff ff ff       	call   0x40ef8c
40efa6:	58                   	pop    %eax
40efa7:	c3                   	ret
40efa8:	55                   	push   %ebp
40efa9:	8b ec                	mov    %esp,%ebp
40efab:	53                   	push   %ebx
40efac:	8b 4d 08             	mov    0x8(%ebp),%ecx
40efaf:	81 c1 00 fd ff ff    	add    $0xfffffd00,%ecx
40efb5:	8b 54 c1 04          	mov    0x4(%ecx,%eax,8),%edx
40efb9:	03 14 c1             	add    (%ecx,%eax,8),%edx
40efbc:	8b 5d 08             	mov    0x8(%ebp),%ebx
40efbf:	3b 94 83 00 ff ff ff 	cmp    -0x100(%ebx,%eax,4),%edx
40efc6:	0f 9f c2             	setg   %dl
40efc9:	48                   	dec    %eax
40efca:	84 d2                	test   %dl,%dl
40efcc:	74 04                	je     0x40efd2
40efce:	85 c0                	test   %eax,%eax
40efd0:	7d e3                	jge    0x40efb5
40efd2:	8b c2                	mov    %edx,%eax
40efd4:	5b                   	pop    %ebx
40efd5:	5d                   	pop    %ebp
40efd6:	c3                   	ret
40efd7:	90                   	nop
40efd8:	55                   	push   %ebp
40efd9:	8b ec                	mov    %esp,%ebp
40efdb:	53                   	push   %ebx
40efdc:	56                   	push   %esi
40efdd:	b2 01                	mov    $0x1,%dl
40efdf:	8b 4d 08             	mov    0x8(%ebp),%ecx
40efe2:	ff 84 81 00 ff ff ff 	incl   -0x100(%ecx,%eax,4)
40efe9:	8b 4d 08             	mov    0x8(%ebp),%ecx
40efec:	8b 8c c1 04 fd ff ff 	mov    -0x2fc(%ecx,%eax,8),%ecx
40eff3:	8b d9                	mov    %ecx,%ebx
40eff5:	8b 75 08             	mov    0x8(%ebp),%esi
40eff8:	03 9c c6 00 fd ff ff 	add    -0x300(%esi,%eax,8),%ebx
40efff:	8b 75 08             	mov    0x8(%ebp),%esi
40f002:	3b 9c 86 00 ff ff ff 	cmp    -0x100(%esi,%eax,4),%ebx
40f009:	7f 22                	jg     0x40f02d
40f00b:	85 c0                	test   %eax,%eax
40f00d:	75 04                	jne    0x40f013
40f00f:	33 d2                	xor    %edx,%edx
40f011:	eb 1a                	jmp    0x40f02d
40f013:	8b 55 08             	mov    0x8(%ebp),%edx
40f016:	8b 55 08             	mov    0x8(%ebp),%edx
40f019:	89 8c 82 00 ff ff ff 	mov    %ecx,-0x100(%edx,%eax,4)
40f020:	8b 55 08             	mov    0x8(%ebp),%edx
40f023:	52                   	push   %edx
40f024:	48                   	dec    %eax
40f025:	e8 ae ff ff ff       	call   0x40efd8
40f02a:	59                   	pop    %ecx
40f02b:	8b d0                	mov    %eax,%edx
40f02d:	8b c2                	mov    %edx,%eax
40f02f:	5e                   	pop    %esi
40f030:	5b                   	pop    %ebx
40f031:	5d                   	pop    %ebp
40f032:	c3                   	ret
40f033:	90                   	nop
40f034:	55                   	push   %ebp
40f035:	8b ec                	mov    %esp,%ebp
40f037:	81 c4 dc fc ff ff    	add    $0xfffffcdc,%esp
40f03d:	53                   	push   %ebx
40f03e:	56                   	push   %esi
40f03f:	57                   	push   %edi
40f040:	89 8d f8 fc ff ff    	mov    %ecx,-0x308(%ebp)
40f046:	8b da                	mov    %edx,%ebx
40f048:	89 85 fc fc ff ff    	mov    %eax,-0x304(%ebp)
40f04e:	f6 43 01 20          	testb  $0x20,0x1(%ebx)
40f052:	75 0a                	jne    0x40f05e
40f054:	b8 57 00 07 80       	mov    $0x80070057,%eax
40f059:	e8 02 fc ff ff       	call   0x40ec60
40f05e:	66 8b 03             	mov    (%ebx),%ax
40f061:	8b d0                	mov    %eax,%edx
40f063:	66 81 e2 ff 0f       	and    $0xfff,%dx
40f068:	66 83 fa 0c          	cmp    $0xc,%dx
40f06c:	0f 85 88 01 00 00    	jne    0x40f1fa
40f072:	f6 c4 40             	test   $0x40,%ah
40f075:	74 0d                	je     0x40f084
40f077:	8b 43 08             	mov    0x8(%ebx),%eax
40f07a:	8b 00                	mov    (%eax),%eax
40f07c:	89 85 e8 fc ff ff    	mov    %eax,-0x318(%ebp)
40f082:	eb 09                	jmp    0x40f08d
40f084:	8b 43 08             	mov    0x8(%ebx),%eax
40f087:	89 85 e8 fc ff ff    	mov    %eax,-0x318(%ebp)
40f08d:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f093:	0f b7 00             	movzwl (%eax),%eax
40f096:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
40f09c:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40f0a2:	4b                   	dec    %ebx
40f0a3:	85 db                	test   %ebx,%ebx
40f0a5:	7c 6b                	jl     0x40f112
40f0a7:	43                   	inc    %ebx
40f0a8:	33 ff                	xor    %edi,%edi
40f0aa:	8d b5 00 fd ff ff    	lea    -0x300(%ebp),%esi
40f0b0:	8b c6                	mov    %esi,%eax
40f0b2:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
40f0b8:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
40f0be:	83 c0 04             	add    $0x4,%eax
40f0c1:	50                   	push   %eax
40f0c2:	8d 47 01             	lea    0x1(%edi),%eax
40f0c5:	50                   	push   %eax
40f0c6:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f0cc:	50                   	push   %eax
40f0cd:	e8 92 ed ff ff       	call   0x40de64
40f0d2:	e8 89 fb ff ff       	call   0x40ec60
40f0d7:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40f0dd:	50                   	push   %eax
40f0de:	8d 47 01             	lea    0x1(%edi),%eax
40f0e1:	50                   	push   %eax
40f0e2:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f0e8:	50                   	push   %eax
40f0e9:	e8 7e ed ff ff       	call   0x40de6c
40f0ee:	e8 6d fb ff ff       	call   0x40ec60
40f0f3:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
40f0f9:	8b 95 f4 fc ff ff    	mov    -0x30c(%ebp),%edx
40f0ff:	2b 50 04             	sub    0x4(%eax),%edx
40f102:	42                   	inc    %edx
40f103:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
40f109:	89 10                	mov    %edx,(%eax)
40f10b:	47                   	inc    %edi
40f10c:	83 c6 08             	add    $0x8,%esi
40f10f:	4b                   	dec    %ebx
40f110:	75 9e                	jne    0x40f0b0
40f112:	8d 85 00 fd ff ff    	lea    -0x300(%ebp),%eax
40f118:	50                   	push   %eax
40f119:	8b 85 f0 fc ff ff    	mov    -0x310(%ebp),%eax
40f11f:	50                   	push   %eax
40f120:	6a 0c                	push   $0xc
40f122:	e8 35 ed ff ff       	call   0x40de5c
40f127:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40f12d:	83 bd ec fc ff ff 00 	cmpl   $0x0,-0x314(%ebp)
40f134:	75 05                	jne    0x40f13b
40f136:	e8 7d f8 ff ff       	call   0x40e9b8
40f13b:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f141:	e8 46 fe ff ff       	call   0x40ef8c
40f146:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f14c:	66 c7 00 0c 20       	movw   $0x200c,(%eax)
40f151:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f157:	8b 95 ec fc ff ff    	mov    -0x314(%ebp),%edx
40f15d:	89 50 08             	mov    %edx,0x8(%eax)
40f160:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40f166:	4b                   	dec    %ebx
40f167:	85 db                	test   %ebx,%ebx
40f169:	7c 1a                	jl     0x40f185
40f16b:	43                   	inc    %ebx
40f16c:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40f172:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40f178:	8b 08                	mov    (%eax),%ecx
40f17a:	89 0a                	mov    %ecx,(%edx)
40f17c:	83 c2 04             	add    $0x4,%edx
40f17f:	83 c0 08             	add    $0x8,%eax
40f182:	4b                   	dec    %ebx
40f183:	75 f3                	jne    0x40f178
40f185:	55                   	push   %ebp
40f186:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40f18c:	4b                   	dec    %ebx
40f18d:	8b c3                	mov    %ebx,%eax
40f18f:	e8 14 fe ff ff       	call   0x40efa8
40f194:	59                   	pop    %ecx
40f195:	84 c0                	test   %al,%al
40f197:	74 52                	je     0x40f1eb
40f199:	8d 85 e4 fc ff ff    	lea    -0x31c(%ebp),%eax
40f19f:	50                   	push   %eax
40f1a0:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40f1a6:	50                   	push   %eax
40f1a7:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f1ad:	50                   	push   %eax
40f1ae:	e8 c1 ec ff ff       	call   0x40de74
40f1b3:	e8 a8 fa ff ff       	call   0x40ec60
40f1b8:	8d 85 e0 fc ff ff    	lea    -0x320(%ebp),%eax
40f1be:	50                   	push   %eax
40f1bf:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40f1c5:	50                   	push   %eax
40f1c6:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40f1cc:	50                   	push   %eax
40f1cd:	e8 a2 ec ff ff       	call   0x40de74
40f1d2:	e8 89 fa ff ff       	call   0x40ec60
40f1d7:	8b 85 e4 fc ff ff    	mov    -0x31c(%ebp),%eax
40f1dd:	8b d0                	mov    %eax,%edx
40f1df:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40f1e5:	ff 95 f8 fc ff ff    	call   *-0x308(%ebp)
40f1eb:	55                   	push   %ebp
40f1ec:	8b c3                	mov    %ebx,%eax
40f1ee:	e8 e5 fd ff ff       	call   0x40efd8
40f1f3:	59                   	pop    %ecx
40f1f4:	84 c0                	test   %al,%al
40f1f6:	75 8d                	jne    0x40f185
40f1f8:	eb 12                	jmp    0x40f20c
40f1fa:	53                   	push   %ebx
40f1fb:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f201:	50                   	push   %eax
40f202:	e8 01 e8 ff ff       	call   0x40da08
40f207:	e8 54 fa ff ff       	call   0x40ec60
40f20c:	5f                   	pop    %edi
40f20d:	5e                   	pop    %esi
40f20e:	5b                   	pop    %ebx
40f20f:	8b e5                	mov    %ebp,%esp
40f211:	5d                   	pop    %ebp
40f212:	c3                   	ret
40f213:	90                   	nop
40f214:	e8 af 00 00 00       	call   0x40f2c8
40f219:	c3                   	ret
40f21a:	8b c0                	mov    %eax,%eax