40fab7:	8b 55 08             	mov    0x8(%ebp),%edx
40faba:	8b 55 08             	mov    0x8(%ebp),%edx
40fabd:	89 8c 82 00 ff ff ff 	mov    %ecx,-0x100(%edx,%eax,4)
40fac4:	8b 55 08             	mov    0x8(%ebp),%edx
40fac7:	52                   	push   %edx
40fac8:	48                   	dec    %eax
40fac9:	e8 ae ff ff ff       	call   0x40fa7c
40face:	59                   	pop    %ecx
40facf:	8b d0                	mov    %eax,%edx
40fad1:	8b c2                	mov    %edx,%eax
40fad3:	5e                   	pop    %esi
40fad4:	5b                   	pop    %ebx
40fad5:	5d                   	pop    %ebp
40fad6:	c3                   	ret
40fad7:	90                   	nop
40fad8:	55                   	push   %ebp
40fad9:	8b ec                	mov    %esp,%ebp
40fadb:	81 c4 e8 fc ff ff    	add    $0xfffffce8,%esp
40fae1:	53                   	push   %ebx
40fae2:	56                   	push   %esi
40fae3:	57                   	push   %edi
40fae4:	89 85 fc fc ff ff    	mov    %eax,-0x304(%ebp)
40faea:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40faf0:	f6 40 01 20          	testb  $0x20,0x1(%eax)
40faf4:	75 0a                	jne    0x40fb00
40faf6:	b8 57 00 07 80       	mov    $0x80070057,%eax
40fafb:	e8 20 fe ff ff       	call   0x40f920
40fb00:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fb06:	0f b7 00             	movzwl (%eax),%eax
40fb09:	8b d0                	mov    %eax,%edx
40fb0b:	66 81 e2 ff 0f       	and    $0xfff,%dx
40fb10:	66 83 fa 0c          	cmp    $0xc,%dx
40fb14:	0f 85 22 01 00 00    	jne    0x40fc3c
40fb1a:	8b 95 fc fc ff ff    	mov    -0x304(%ebp),%edx
40fb20:	f6 c4 40             	test   $0x40,%ah
40fb23:	74 13                	je     0x40fb38
40fb25:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fb2b:	8b 40 08             	mov    0x8(%eax),%eax
40fb2e:	8b 00                	mov    (%eax),%eax
40fb30:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
40fb36:	eb 0f                	jmp    0x40fb47
40fb38:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fb3e:	8b 40 08             	mov    0x8(%eax),%eax
40fb41:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
40fb47:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40fb4d:	0f b7 00             	movzwl (%eax),%eax
40fb50:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
40fb56:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40fb5c:	4b                   	dec    %ebx
40fb5d:	85 db                	test   %ebx,%ebx
40fb5f:	7c 6b                	jl     0x40fbcc
40fb61:	43                   	inc    %ebx
40fb62:	33 ff                	xor    %edi,%edi
40fb64:	8d b5 00 fd ff ff    	lea    -0x300(%ebp),%esi
40fb6a:	8b c6                	mov    %esi,%eax
40fb6c:	89 85 e8 fc ff ff    	mov    %eax,-0x318(%ebp)
40fb72:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40fb78:	83 c0 04             	add    $0x4,%eax
40fb7b:	50                   	push   %eax
40fb7c:	8d 47 01             	lea    0x1(%edi),%eax
40fb7f:	50                   	push   %eax
40fb80:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40fb86:	50                   	push   %eax
40fb87:	e8 b4 ef ff ff       	call   0x40eb40
40fb8c:	e8 8f fd ff ff       	call   0x40f920
40fb91:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40fb97:	50                   	push   %eax
40fb98:	8d 47 01             	lea    0x1(%edi),%eax
40fb9b:	50                   	push   %eax
40fb9c:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40fba2:	50                   	push   %eax
40fba3:	e8 a0 ef ff ff       	call   0x40eb48
40fba8:	e8 73 fd ff ff       	call   0x40f920
40fbad:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40fbb3:	8b 95 f4 fc ff ff    	mov    -0x30c(%ebp),%edx
40fbb9:	2b 50 04             	sub    0x4(%eax),%edx
40fbbc:	42                   	inc    %edx
40fbbd:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40fbc3:	89 10                	mov    %edx,(%eax)
40fbc5:	47                   	inc    %edi
40fbc6:	83 c6 08             	add    $0x8,%esi
40fbc9:	4b                   	dec    %ebx
40fbca:	75 9e                	jne    0x40fb6a
40fbcc:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40fbd2:	4b                   	dec    %ebx
40fbd3:	85 db                	test   %ebx,%ebx
40fbd5:	7c 1a                	jl     0x40fbf1
40fbd7:	43                   	inc    %ebx
40fbd8:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40fbde:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40fbe4:	8b 08                	mov    (%eax),%ecx
40fbe6:	89 0a                	mov    %ecx,(%edx)
40fbe8:	83 c2 04             	add    $0x4,%edx
40fbeb:	83 c0 08             	add    $0x8,%eax
40fbee:	4b                   	dec    %ebx
40fbef:	75 f3                	jne    0x40fbe4
40fbf1:	55                   	push   %ebp
40fbf2:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40fbf8:	4b                   	dec    %ebx
40fbf9:	8b c3                	mov    %ebx,%eax
40fbfb:	e8 4c fe ff ff       	call   0x40fa4c
40fc00:	59                   	pop    %ecx
40fc01:	84 c0                	test   %al,%al
40fc03:	74 2a                	je     0x40fc2f
40fc05:	8d 85 ec fc ff ff    	lea    -0x314(%ebp),%eax
40fc0b:	50                   	push   %eax
40fc0c:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40fc12:	50                   	push   %eax
40fc13:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40fc19:	50                   	push   %eax
40fc1a:	e8 31 ef ff ff       	call   0x40eb50
40fc1f:	e8 fc fc ff ff       	call   0x40f920
40fc24:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40fc2a:	e8 a1 00 00 00       	call   0x40fcd0
40fc2f:	55                   	push   %ebp
40fc30:	8b c3                	mov    %ebx,%eax
40fc32:	e8 45 fe ff ff       	call   0x40fa7c
40fc37:	59                   	pop    %ecx
40fc38:	84 c0                	test   %al,%al
40fc3a:	75 b5                	jne    0x40fbf1
40fc3c:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fc42:	50                   	push   %eax
40fc43:	e8 90 ea ff ff       	call   0x40e6d8
40fc48:	e8 d3 fc ff ff       	call   0x40f920
40fc4d:	5f                   	pop    %edi
40fc4e:	5e                   	pop    %esi
40fc4f:	5b                   	pop    %ebx
40fc50:	8b e5                	mov    %ebp,%esp
40fc52:	5d                   	pop    %ebp
40fc53:	c3                   	ret
40fc54:	53                   	push   %ebx
40fc55:	56                   	push   %esi
40fc56:	51                   	push   %ecx
40fc57:	8b d8                	mov    %eax,%ebx
40fc59:	0f b7 33             	movzwl (%ebx),%esi
40fc5c:	66 83 fe 14          	cmp    $0x14,%si
40fc60:	73 0d                	jae    0x40fc6f
40fc62:	53                   	push   %ebx
40fc63:	e8 70 ea ff ff       	call   0x40e6d8
40fc68:	e8 b3 fc ff ff       	call   0x40f920
40fc6d:	eb 5c                	jmp    0x40fccb
40fc6f:	66 81 fe 00 01       	cmp    $0x100,%si
40fc74:	75 0f                	jne    0x40fc85
40fc76:	66 c7 03 00 00       	movw   $0x0,(%ebx)
40fc7b:	8d 43 08             	lea    0x8(%ebx),%eax
40fc7e:	e8 c5 4a ff ff       	call   0x404748
40fc83:	eb 46                	jmp    0x40fccb
40fc85:	66 81 fe 01 01       	cmp    $0x101,%si
40fc8a:	75 0a                	jne    0x40fc96
40fc8c:	8b c3                	mov    %ebx,%eax
40fc8e:	ff 15 98 b2 4a 00    	call   *0x4ab298
40fc94:	eb 35                	jmp    0x40fccb
40fc96:	66 f7 c6 00 20       	test   $0x2000,%si
40fc9b:	74 09                	je     0x40fca6
40fc9d:	8b c3                	mov    %ebx,%eax
40fc9f:	e8 34 fe ff ff       	call   0x40fad8
40fca4:	eb 25                	jmp    0x40fccb
40fca6:	8b d4                	mov    %esp,%edx
40fca8:	8b c6                	mov    %esi,%eax
40fcaa:	e8 81 4c 00 00       	call   0x414930
40fcaf:	84 c0                	test   %al,%al
40fcb1:	74 0c                	je     0x40fcbf
40fcb3:	8b d3                	mov    %ebx,%edx
40fcb5:	8b 04 24             	mov    (%esp),%eax
40fcb8:	8b 08                	mov    (%eax),%ecx
40fcba:	ff 51 24             	call   *0x24(%ecx)
40fcbd:	eb 0c                	jmp    0x40fccb
40fcbf:	53                   	push   %ebx
40fcc0:	e8 13 ea ff ff       	call   0x40e6d8
40fcc5:	53                   	push   %ebx
40fcc6:	e8 05 ea ff ff       	call   0x40e6d0
40fccb:	5a                   	pop    %edx
40fccc:	5e                   	pop    %esi
40fccd:	5b                   	pop    %ebx
40fcce:	c3                   	ret
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