40fccf:	90                   	nop
40fcd0:	66 f7 00 e8 bf       	testw  $0xbfe8,(%eax)
40fcd5:	75 06                	jne    0x40fcdd
40fcd7:	66 c7 00 00 00       	movw   $0x0,(%eax)
40fcdc:	c3                   	ret
40fcdd:	e8 72 ff ff ff       	call   0x40fc54
40fce2:	c3                   	ret
40fce3:	90                   	nop
40fce4:	50                   	push   %eax
40fce5:	e8 e6 ff ff ff       	call   0x40fcd0
40fcea:	58                   	pop    %eax
40fceb:	c3                   	ret
40fcec:	55                   	push   %ebp
40fced:	8b ec                	mov    %esp,%ebp
40fcef:	53                   	push   %ebx
40fcf0:	8b 4d 08             	mov    0x8(%ebp),%ecx
40fcf3:	81 c1 00 fd ff ff    	add    $0xfffffd00,%ecx
40fcf9:	8b 54 c1 04          	mov    0x4(%ecx,%eax,8),%edx
40fcfd:	03 14 c1             	add    (%ecx,%eax,8),%edx
40fd00:	8b 5d 08             	mov    0x8(%ebp),%ebx
40fd03:	3b 94 83 00 ff ff ff 	cmp    -0x100(%ebx,%eax,4),%edx
40fd0a:	0f 9f c2             	setg   %dl
40fd0d:	48                   	dec    %eax
40fd0e:	84 d2                	test   %dl,%dl
40fd10:	74 04                	je     0x40fd16
40fd12:	85 c0                	test   %eax,%eax
40fd14:	7d e3                	jge    0x40fcf9
40fd16:	8b c2                	mov    %edx,%eax
40fd18:	5b                   	pop    %ebx
40fd19:	5d                   	pop    %ebp
40fd1a:	c3                   	ret
40fd1b:	90                   	nop
40fd1c:	55                   	push   %ebp
40fd1d:	8b ec                	mov    %esp,%ebp
40fd1f:	53                   	push   %ebx
40fd20:	56                   	push   %esi
40fd21:	b2 01                	mov    $0x1,%dl
40fd23:	8b 4d 08             	mov    0x8(%ebp),%ecx
40fd26:	ff 84 81 00 ff ff ff 	incl   -0x100(%ecx,%eax,4)
40fd2d:	8b 4d 08             	mov    0x8(%ebp),%ecx
40fd30:	8b 8c c1 04 fd ff ff 	mov    -0x2fc(%ecx,%eax,8),%ecx
40fd37:	8b d9                	mov    %ecx,%ebx
40fd39:	8b 75 08             	mov    0x8(%ebp),%esi
40fd3c:	03 9c c6 00 fd ff ff 	add    -0x300(%esi,%eax,8),%ebx
40fd43:	8b 75 08             	mov    0x8(%ebp),%esi
40fd46:	3b 9c 86 00 ff ff ff 	cmp    -0x100(%esi,%eax,4),%ebx
40fd4d:	7f 22                	jg     0x40fd71
40fd4f:	85 c0                	test   %eax,%eax
40fd51:	75 04                	jne    0x40fd57
40fd53:	33 d2                	xor    %edx,%edx
40fd55:	eb 1a                	jmp    0x40fd71
40fd57:	8b 55 08             	mov    0x8(%ebp),%edx
40fd5a:	8b 55 08             	mov    0x8(%ebp),%edx
40fd5d:	89 8c 82 00 ff ff ff 	mov    %ecx,-0x100(%edx,%eax,4)
40fd64:	8b 55 08             	mov    0x8(%ebp),%edx
40fd67:	52                   	push   %edx
40fd68:	48                   	dec    %eax
40fd69:	e8 ae ff ff ff       	call   0x40fd1c
40fd6e:	59                   	pop    %ecx
40fd6f:	8b d0                	mov    %eax,%edx
40fd71:	8b c2                	mov    %edx,%eax
40fd73:	5e                   	pop    %esi
40fd74:	5b                   	pop    %ebx
40fd75:	5d                   	pop    %ebp
40fd76:	c3                   	ret
40fd77:	90                   	nop
40fd78:	55                   	push   %ebp
40fd79:	8b ec                	mov    %esp,%ebp
40fd7b:	81 c4 e0 fc ff ff    	add    $0xfffffce0,%esp
40fd81:	53                   	push   %ebx
40fd82:	56                   	push   %esi
40fd83:	57                   	push   %edi
40fd84:	89 8d f8 fc ff ff    	mov    %ecx,-0x308(%ebp)
40fd8a:	8b da                	mov    %edx,%ebx
40fd8c:	89 85 fc fc ff ff    	mov    %eax,-0x304(%ebp)
40fd92:	f6 43 01 20          	testb  $0x20,0x1(%ebx)
40fd96:	75 0a                	jne    0x40fda2
40fd98:	b8 57 00 07 80       	mov    $0x80070057,%eax
40fd9d:	e8 7e fb ff ff       	call   0x40f920
40fda2:	0f b7 03             	movzwl (%ebx),%eax
40fda5:	8b d0                	mov    %eax,%edx
40fda7:	66 81 e2 ff 0f       	and    $0xfff,%dx
40fdac:	66 83 fa 0c          	cmp    $0xc,%dx
40fdb0:	0f 85 73 01 00 00    	jne    0x40ff29
40fdb6:	f6 c4 40             	test   $0x40,%ah
40fdb9:	74 0d                	je     0x40fdc8
40fdbb:	8b 43 08             	mov    0x8(%ebx),%eax
40fdbe:	8b 00                	mov    (%eax),%eax
40fdc0:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40fdc6:	eb 09                	jmp    0x40fdd1
40fdc8:	8b 43 08             	mov    0x8(%ebx),%eax
40fdcb:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40fdd1:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40fdd7:	0f b7 00             	movzwl (%eax),%eax
40fdda:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
40fde0:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40fde6:	4b                   	dec    %ebx
40fde7:	85 db                	test   %ebx,%ebx
40fde9:	7c 6b                	jl     0x40fe56
40fdeb:	43                   	inc    %ebx
40fdec:	33 ff                	xor    %edi,%edi
40fdee:	8d b5 00 fd ff ff    	lea    -0x300(%ebp),%esi
40fdf4:	8b c6                	mov    %esi,%eax
40fdf6:	89 85 e0 fc ff ff    	mov    %eax,-0x320(%ebp)
40fdfc:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40fe02:	83 c0 04             	add    $0x4,%eax
40fe05:	50                   	push   %eax
40fe06:	8d 47 01             	lea    0x1(%edi),%eax
40fe09:	50                   	push   %eax
40fe0a:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40fe10:	50                   	push   %eax
40fe11:	e8 2a ed ff ff       	call   0x40eb40
40fe16:	e8 05 fb ff ff       	call   0x40f920
40fe1b:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40fe21:	50                   	push   %eax
40fe22:	8d 47 01             	lea    0x1(%edi),%eax
40fe25:	50                   	push   %eax
40fe26:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40fe2c:	50                   	push   %eax
40fe2d:	e8 16 ed ff ff       	call   0x40eb48
40fe32:	e8 e9 fa ff ff       	call   0x40f920
40fe37:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40fe3d:	8b 95 f4 fc ff ff    	mov    -0x30c(%ebp),%edx
40fe43:	2b 50 04             	sub    0x4(%eax),%edx
40fe46:	42                   	inc    %edx
40fe47:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40fe4d:	89 10                	mov    %edx,(%eax)
40fe4f:	47                   	inc    %edi
40fe50:	83 c6 08             	add    $0x8,%esi
40fe53:	4b                   	dec    %ebx
40fe54:	75 9e                	jne    0x40fdf4
40fe56:	8d 85 00 fd ff ff    	lea    -0x300(%ebp),%eax
40fe5c:	50                   	push   %eax
40fe5d:	8b 85 f0 fc ff ff    	mov    -0x310(%ebp),%eax
40fe63:	50                   	push   %eax
40fe64:	6a 0c                	push   $0xc
40fe66:	e8 cd ec ff ff       	call   0x40eb38
40fe6b:	8b f0                	mov    %eax,%esi
40fe6d:	85 f6                	test   %esi,%esi
40fe6f:	75 05                	jne    0x40fe76
40fe71:	e8 02 f8 ff ff       	call   0x40f678
40fe76:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fe7c:	e8 4f fe ff ff       	call   0x40fcd0
40fe81:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fe87:	66 c7 00 0c 20       	movw   $0x200c,(%eax)
40fe8c:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fe92:	89 70 08             	mov    %esi,0x8(%eax)
40fe95:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40fe9b:	4b                   	dec    %ebx
40fe9c:	85 db                	test   %ebx,%ebx
40fe9e:	7c 1a                	jl     0x40feba
40fea0:	43                   	inc    %ebx
40fea1:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40fea7:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40fead:	8b 08                	mov    (%eax),%ecx
40feaf:	89 0a                	mov    %ecx,(%edx)
40feb1:	83 c2 04             	add    $0x4,%edx
40feb4:	83 c0 08             	add    $0x8,%eax
40feb7:	4b                   	dec    %ebx
40feb8:	75 f3                	jne    0x40fead
40feba:	55                   	push   %ebp
40febb:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40fec1:	4b                   	dec    %ebx
40fec2:	8b c3                	mov    %ebx,%eax
40fec4:	e8 23 fe ff ff       	call   0x40fcec
40fec9:	59                   	pop    %ecx
40feca:	84 c0                	test   %al,%al
40fecc:	74 4c                	je     0x40ff1a
40fece:	8d 85 e8 fc ff ff    	lea    -0x318(%ebp),%eax
40fed4:	50                   	push   %eax
40fed5:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40fedb:	50                   	push   %eax
40fedc:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40fee2:	50                   	push   %eax
40fee3:	e8 68 ec ff ff       	call   0x40eb50
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