40fee8:	e8 33 fa ff ff       	call   0x40f920
40feed:	8d 85 e4 fc ff ff    	lea    -0x31c(%ebp),%eax
40fef3:	50                   	push   %eax
40fef4:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40fefa:	50                   	push   %eax
40fefb:	56                   	push   %esi
40fefc:	e8 4f ec ff ff       	call   0x40eb50
40ff01:	e8 1a fa ff ff       	call   0x40f920
40ff06:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40ff0c:	8b d0                	mov    %eax,%edx
40ff0e:	8b 85 e4 fc ff ff    	mov    -0x31c(%ebp),%eax
40ff14:	ff 95 f8 fc ff ff    	call   *-0x308(%ebp)
40ff1a:	55                   	push   %ebp
40ff1b:	8b c3                	mov    %ebx,%eax
40ff1d:	e8 fa fd ff ff       	call   0x40fd1c
40ff22:	59                   	pop    %ecx
40ff23:	84 c0                	test   %al,%al
40ff25:	75 93                	jne    0x40feba
40ff27:	eb 12                	jmp    0x40ff3b
40ff29:	53                   	push   %ebx
40ff2a:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40ff30:	50                   	push   %eax
40ff31:	e8 aa e7 ff ff       	call   0x40e6e0
40ff36:	e8 e5 f9 ff ff       	call   0x40f920
40ff3b:	5f                   	pop    %edi
40ff3c:	5e                   	pop    %esi
40ff3d:	5b                   	pop    %ebx
40ff3e:	8b e5                	mov    %ebp,%esp
40ff40:	5d                   	pop    %ebp
40ff41:	c3                   	ret
40ff42:	8b c0                	mov    %eax,%eax
40ff44:	e8 af 00 00 00       	call   0x40fff8
40ff49:	c3                   	ret
40ff4a:	8b c0                	mov    %eax,%eax
40ff4c:	53                   	push   %ebx
40ff4d:	56                   	push   %esi
40ff4e:	57                   	push   %edi
40ff4f:	51                   	push   %ecx
40ff50:	8b f2                	mov    %edx,%esi
40ff52:	8b d8                	mov    %eax,%ebx
40ff54:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
40ff59:	74 07                	je     0x40ff62
40ff5b:	8b c3                	mov    %ebx,%eax
40ff5d:	e8 f2 fc ff ff       	call   0x40fc54
40ff62:	0f b7 3e             	movzwl (%esi),%edi
40ff65:	66 83 ff 14          	cmp    $0x14,%di
40ff69:	73 0e                	jae    0x40ff79
40ff6b:	56                   	push   %esi
40ff6c:	53                   	push   %ebx
40ff6d:	e8 6e e7 ff ff       	call   0x40e6e0
40ff72:	e8 a9 f9 ff ff       	call   0x40f920
40ff77:	eb 79                	jmp    0x40fff2
40ff79:	66 81 ff 00 01       	cmp    $0x100,%di
40ff7e:	75 17                	jne    0x40ff97
40ff80:	66 c7 03 00 01       	movw   $0x100,(%ebx)
40ff85:	33 c0                	xor    %eax,%eax
40ff87:	89 43 08             	mov    %eax,0x8(%ebx)
40ff8a:	8d 43 08             	lea    0x8(%ebx),%eax
40ff8d:	8b 56 08             	mov    0x8(%esi),%edx
40ff90:	e8 07 48 ff ff       	call   0x40479c
40ff95:	eb 5b                	jmp    0x40fff2
40ff97:	66 81 ff 01 01       	cmp    $0x101,%di
40ff9c:	75 13                	jne    0x40ffb1
40ff9e:	66 89 3b             	mov    %di,(%ebx)
40ffa1:	8b 46 08             	mov    0x8(%esi),%eax
40ffa4:	89 43 08             	mov    %eax,0x8(%ebx)
40ffa7:	8b c3                	mov    %ebx,%eax
40ffa9:	ff 15 a0 b2 4a 00    	call   *0x4ab2a0
40ffaf:	eb 41                	jmp    0x40fff2
40ffb1:	66 f7 c7 00 20       	test   $0x2000,%di
40ffb6:	74 10                	je     0x40ffc8
40ffb8:	b9 44 ff 40 00       	mov    $0x40ff44,%ecx
40ffbd:	8b d6                	mov    %esi,%edx
40ffbf:	8b c3                	mov    %ebx,%eax
40ffc1:	e8 b2 fd ff ff       	call   0x40fd78
40ffc6:	eb 2a                	jmp    0x40fff2
40ffc8:	8b d4                	mov    %esp,%edx
40ffca:	8b c7                	mov    %edi,%eax
40ffcc:	e8 5f 49 00 00       	call   0x414930
40ffd1:	84 c0                	test   %al,%al
40ffd3:	74 11                	je     0x40ffe6
40ffd5:	6a 00                	push   $0x0
40ffd7:	8b ce                	mov    %esi,%ecx
40ffd9:	8b d3                	mov    %ebx,%edx
40ffdb:	8b 44 24 04          	mov    0x4(%esp),%eax
40ffdf:	8b 18                	mov    (%eax),%ebx
40ffe1:	ff 53 28             	call   *0x28(%ebx)
40ffe4:	eb 0c                	jmp    0x40fff2
40ffe6:	56                   	push   %esi
40ffe7:	53                   	push   %ebx
40ffe8:	e8 f3 e6 ff ff       	call   0x40e6e0
40ffed:	e8 2e f9 ff ff       	call   0x40f920
40fff2:	5a                   	pop    %edx
40fff3:	5f                   	pop    %edi
40fff4:	5e                   	pop    %esi
40fff5:	5b                   	pop    %ebx
40fff6:	c3                   	ret
40fff7:	90                   	nop
40fff8:	53                   	push   %ebx
40fff9:	56                   	push   %esi
40fffa:	8b da                	mov    %edx,%ebx
40fffc:	8b f0                	mov    %eax,%esi
40fffe:	3b f3                	cmp    %ebx,%esi
410000:	74 36                	je     0x410038
410002:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
410007:	75 26                	jne    0x41002f
410009:	66 f7 06 e8 bf       	testw  $0xbfe8,(%esi)
41000e:	74 07                	je     0x410017
410010:	8b c6                	mov    %esi,%eax
410012:	e8 3d fc ff ff       	call   0x40fc54
410017:	8b 03                	mov    (%ebx),%eax
410019:	89 06                	mov    %eax,(%esi)
41001b:	8b 43 04             	mov    0x4(%ebx),%eax
41001e:	89 46 04             	mov    %eax,0x4(%esi)
410021:	8b 43 08             	mov    0x8(%ebx),%eax
410024:	89 46 08             	mov    %eax,0x8(%esi)
410027:	8b 43 0c             	mov    0xc(%ebx),%eax
41002a:	89 46 0c             	mov    %eax,0xc(%esi)
41002d:	eb 09                	jmp    0x410038
41002f:	8b d3                	mov    %ebx,%edx
410031:	8b c6                	mov    %esi,%eax
410033:	e8 14 ff ff ff       	call   0x40ff4c
410038:	5e                   	pop    %esi
410039:	5b                   	pop    %ebx
41003a:	c3                   	ret
41003b:	90                   	nop
41003c:	55                   	push   %ebp
41003d:	8b ec                	mov    %esp,%ebp
41003f:	83 c4 f0             	add    $0xfffffff0,%esp
410042:	53                   	push   %ebx
410043:	56                   	push   %esi
410044:	57                   	push   %edi
410045:	8b f9                	mov    %ecx,%edi
410047:	8b f2                	mov    %edx,%esi
410049:	8b d8                	mov    %eax,%ebx
41004b:	8d 45 f0             	lea    -0x10(%ebp),%eax
41004e:	50                   	push   %eax
41004f:	e8 7c e6 ff ff       	call   0x40e6d0
410054:	33 c0                	xor    %eax,%eax
410056:	55                   	push   %ebp
410057:	68 98 00 41 00       	push   $0x410098
41005c:	64 ff 30             	push   %fs:(%eax)
41005f:	64 89 20             	mov    %esp,%fs:(%eax)
410062:	8b d6                	mov    %esi,%edx
410064:	8d 45 f0             	lea    -0x10(%ebp),%eax
410067:	e8 8c ff ff ff       	call   0x40fff8
41006c:	8d 45 f0             	lea    -0x10(%ebp),%eax
41006f:	ff 15 9c b2 4a 00    	call   *0x4ab29c
410075:	0f b7 cf             	movzwl %di,%ecx
410078:	8d 55 f0             	lea    -0x10(%ebp),%edx
41007b:	8b c3                	mov    %ebx,%eax
41007d:	e8 42 02 00 00       	call   0x4102c4
410082:	33 c0                	xor    %eax,%eax
410084:	5a                   	pop    %edx
410085:	59                   	pop    %ecx
410086:	59                   	pop    %ecx
410087:	64 89 10             	mov    %edx,%fs:(%eax)
41008a:	68 9f 00 41 00       	push   $0x41009f
41008f:	8d 45 f0             	lea    -0x10(%ebp),%eax
410092:	e8 39 fc ff ff       	call   0x40fcd0
410097:	c3                   	ret
410098:	e9 13 40 ff ff       	jmp    0x4040b0
41009d:	eb f0                	jmp    0x41008f
41009f:	5f                   	pop    %edi
4100a0:	5e                   	pop    %esi
4100a1:	5b                   	pop    %ebx
4100a2:	8b e5                	mov    %ebp,%esp
4100a4:	5d                   	pop    %ebp
4100a5:	c3                   	ret
4100a6:	8b c0                	mov    %eax,%eax
4100a8:	55                   	push   %ebp
4100a9:	8b ec                	mov    %esp,%ebp
4100ab:	6a 00                	push   $0x0
4100ad:	53                   	push   %ebx
4100ae:	8b d8                	mov    %eax,%ebx
4100b0:	33 c0                	xor    %eax,%eax
4100b2:	55                   	push   %ebp
4100b3:	68 e6 00 41 00       	push   $0x4100e6
4100b8:	64 ff 30             	push   %fs:(%eax)
4100bb:	64 89 20             	mov    %esp,%fs:(%eax)
4100be:	8d 45 fc             	lea    -0x4(%ebp),%eax
4100c1:	e8 2e 36 00 00       	call   0x4136f4
4100c6:	8b c3                	mov    %ebx,%eax
4100c8:	8b 55 fc             	mov    -0x4(%ebp),%edx
4100cb:	e8 c8 3f 00 00       	call   0x414098
4100d0:	33 c0                	xor    %eax,%eax
4100d2:	5a                   	pop    %edx
4100d3:	59                   	pop    %ecx
4100d4:	59                   	pop    %ecx
4100d5:	64 89 10             	mov    %edx,%fs:(%eax)
4100d8:	68 ed 00 41 00       	push   $0x4100ed
4100dd:	8d 45 fc             	lea    -0x4(%ebp),%eax
4100e0:	e8 6f 4e ff ff       	call   0x404f54
4100e5:	c3                   	ret
4100e6:	e9 c5 3f ff ff       	jmp    0x4040b0
4100eb:	eb f0                	jmp    0x4100dd
4100ed:	5b                   	pop    %ebx
4100ee:	59                   	pop    %ecx
4100ef:	5d                   	pop    %ebp
4100f0:	c3                   	ret
4100f1:	8d 40 00             	lea    0x0(%eax),%eax
4100f4:	55                   	push   %ebp
4100f5:	8b ec                	mov    %esp,%ebp
4100f7:	6a 00                	push   $0x0
4100f9:	53                   	push   %ebx
4100fa:	8b d8                	mov    %eax,%ebx
4100fc:	33 c0                	xor    %eax,%eax
4100fe:	55                   	push   %ebp
4100ff:	68 32 01 41 00       	push   $0x410132
410104:	64 ff 30             	push   %fs:(%eax)
410107:	64 89 20             	mov    %esp,%fs:(%eax)
41010a:	8d 45 fc             	lea    -0x4(%ebp),%eax
41010d:	e8 c2 2e 00 00       	call   0x412fd4
410112:	8b c3                	mov    %ebx,%eax
410114:	8b 55 fc             	mov    -0x4(%ebp),%edx
410117:	e8 50 3f 00 00       	call   0x41406c
41011c:	33 c0                	xor    %eax,%eax
41011e:	5a                   	pop    %edx
41011f:	59                   	pop    %ecx
410120:	59                   	pop    %ecx
410121:	64 89 10             	mov    %edx,%fs:(%eax)
410124:	68 39 01 41 00       	push   $0x410139
410129:	8d 45 fc             	lea    -0x4(%ebp),%eax
41012c:	e8 17 46 ff ff       	call   0x404748
410131:	c3                   	ret
410132:	e9 79 3f ff ff       	jmp    0x4040b0
410137:	eb f0                	jmp    0x410129
410139:	5b                   	pop    %ebx
41013a:	59                   	pop    %ecx
41013b:	5d                   	pop    %ebp
41013c:	c3                   	ret
41013d:	8d 40 00             	lea    0x0(%eax),%eax
410140:	55                   	push   %ebp
410141:	8b ec                	mov    %esp,%ebp
410143:	6a 00                	push   $0x0
410145:	53                   	push   %ebx
410146:	8b d8                	mov    %eax,%ebx
410148:	33 c0                	xor    %eax,%eax
41014a:	55                   	push   %ebp
41014b:	68 7e 01 41 00       	push   $0x41017e
410150:	64 ff 30             	push   %fs:(%eax)
410153:	64 89 20             	mov    %esp,%fs:(%eax)
410156:	8d 45 fc             	lea    -0x4(%ebp),%eax
410159:	e8 2e 3c 00 00       	call   0x413d8c
41015e:	8b c3                	mov    %ebx,%eax
410160:	8b 55 fc             	mov    -0x4(%ebp),%edx
410163:	e8 94 3f 00 00       	call   0x4140fc
410168:	33 c0                	xor    %eax,%eax
41016a:	5a                   	pop    %edx
41016b:	59                   	pop    %ecx
41016c:	59                   	pop    %ecx
41016d:	64 89 10             	mov    %edx,%fs:(%eax)
410170:	68 85 01 41 00       	push   $0x410185
410175:	8d 45 fc             	lea    -0x4(%ebp),%eax
410178:	e8 fb 5f ff ff       	call   0x406178
41017d:	c3                   	ret
41017e:	e9 2d 3f ff ff       	jmp    0x4040b0
410183:	eb f0                	jmp    0x410175
410185:	5b                   	pop    %ebx
410186:	59                   	pop    %ecx
410187:	5d                   	pop    %ebp
410188:	c3                   	ret
410189:	8d 40 00             	lea    0x0(%eax),%eax
41018c:	55                   	push   %ebp
41018d:	8b ec                	mov    %esp,%ebp
41018f:	6a 00                	push   $0x0
410191:	53                   	push   %ebx
410192:	8b d8                	mov    %eax,%ebx
410194:	33 c0                	xor    %eax,%eax
410196:	55                   	push   %ebp
410197:	68 ca 01 41 00       	push   $0x4101ca
41019c:	64 ff 30             	push   %fs:(%eax)
41019f:	64 89 20             	mov    %esp,%fs:(%eax)
4101a2:	8d 45 fc             	lea    -0x4(%ebp),%eax
4101a5:	e8 16 3b 00 00       	call   0x413cc0
4101aa:	8b c3                	mov    %ebx,%eax
4101ac:	8b 55 fc             	mov    -0x4(%ebp),%edx
4101af:	e8 1c 3f 00 00       	call   0x4140d0
4101b4:	33 c0                	xor    %eax,%eax
4101b6:	5a                   	pop    %edx
4101b7:	59                   	pop    %ecx
4101b8:	59                   	pop    %ecx
4101b9:	64 89 10             	mov    %edx,%fs:(%eax)
4101bc:	68 d1 01 41 00       	push   $0x4101d1
4101c1:	8d 45 fc             	lea    -0x4(%ebp),%eax
4101c4:	e8 af 5f ff ff       	call   0x406178
4101c9:	c3                   	ret
4101ca:	e9 e1 3e ff ff       	jmp    0x4040b0
4101cf:	eb f0                	jmp    0x4101c1
4101d1:	5b                   	pop    %ebx
4101d2:	59                   	pop    %ecx
4101d3:	5d                   	pop    %ebp
4101d4:	c3                   	ret
4101d5:	8d 40 00             	lea    0x0(%eax),%eax
4101d8:	53                   	push   %ebx
4101d9:	56                   	push   %esi
4101da:	57                   	push   %edi
4101db:	8b f1                	mov    %ecx,%esi
4101dd:	8b da                	mov    %edx,%ebx
4101df:	8b f8                	mov    %eax,%edi
4101e1:	0f b7 03             	movzwl (%ebx),%eax
4101e4:	8b d0                	mov    %eax,%edx
4101e6:	66 81 e2 ff 0f       	and    $0xfff,%dx
4101eb:	66 83 fa 14          	cmp    $0x14,%dx
4101ef:	72 2d                	jb     0x41021e
4101f1:	8b d3                	mov    %ebx,%edx
4101f3:	8b c7                	mov    %edi,%eax
4101f5:	b9 08 00 00 00       	mov    $0x8,%ecx
4101fa:	e8 c5 00 00 00       	call   0x4102c4
4101ff:	56                   	push   %esi
410200:	6a 00                	push   $0x0
410202:	68 00 04 00 00       	push   $0x400
410207:	57                   	push   %edi
410208:	57                   	push   %edi
410209:	a1 48 77 4a 00       	mov    0x4a7748,%eax
41020e:	8b 00                	mov    (%eax),%eax
410210:	ff d0                	call   *%eax
410212:	0f b7 13             	movzwl (%ebx),%edx
410215:	8b ce                	mov    %esi,%ecx
410217:	e8 10 f7 ff ff       	call   0x40f92c
41021c:	eb 33                	jmp    0x410251
41021e:	8b d6                	mov    %esi,%edx
410220:	66 81 e2 ff 0f       	and    $0xfff,%dx
410225:	66 83 fa 14          	cmp    $0x14,%dx
410229:	73 1f                	jae    0x41024a
41022b:	56                   	push   %esi
41022c:	6a 00                	push   $0x0
41022e:	68 00 04 00 00       	push   $0x400
410233:	53                   	push   %ebx
410234:	57                   	push   %edi
410235:	a1 48 77 4a 00       	mov    0x4a7748,%eax
41023a:	8b 00                	mov    (%eax),%eax
41023c:	ff d0                	call   *%eax
41023e:	0f b7 13             	movzwl (%ebx),%edx
410241:	8b ce                	mov    %esi,%ecx
410243:	e8 e4 f6 ff ff       	call   0x40f92c
410248:	eb 07                	jmp    0x410251
41024a:	8b d6                	mov    %esi,%edx
41024c:	e8 9b f2 ff ff       	call   0x40f4ec
410251:	5f                   	pop    %edi
410252:	5e                   	pop    %esi
410253:	5b                   	pop    %ebx
410254:	c3                   	ret
410255:	8d 40 00             	lea    0x0(%eax),%eax
410258:	53                   	push   %ebx
410259:	56                   	push   %esi
41025a:	57                   	push   %edi
41025b:	55                   	push   %ebp
41025c:	51                   	push   %ecx
41025d:	8b f1                	mov    %ecx,%esi