40fabd:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40fac4:	59                   	pop    %ecx
40fac5:	5f                   	pop    %edi
40fac6:	5e                   	pop    %esi
40fac7:	5b                   	pop    %ebx
40fac8:	c9                   	leave
40fac9:	c3                   	ret
40faca:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40facd:	6a 00                	push   $0x0
40facf:	e8 97 d6 ff ff       	call   0x40d16b
40fad4:	59                   	pop    %ecx
40fad5:	c3                   	ret
40fad6:	8b ff                	mov    %edi,%edi
40fad8:	55                   	push   %ebp
40fad9:	8b ec                	mov    %esp,%ebp
40fadb:	51                   	push   %ecx
40fadc:	53                   	push   %ebx
40fadd:	56                   	push   %esi
40fade:	57                   	push   %edi
40fadf:	e8 46 48 00 00       	call   0x41432a
40fae4:	8b f0                	mov    %eax,%esi
40fae6:	85 f6                	test   %esi,%esi
40fae8:	0f 84 39 01 00 00    	je     0x40fc27
40faee:	8b 16                	mov    (%esi),%edx
40faf0:	33 db                	xor    %ebx,%ebx
40faf2:	8b ca                	mov    %edx,%ecx
40faf4:	8d 82 90 00 00 00    	lea    0x90(%edx),%eax
40fafa:	3b d0                	cmp    %eax,%edx
40fafc:	74 0e                	je     0x40fb0c
40fafe:	8b 7d 08             	mov    0x8(%ebp),%edi
40fb01:	39 39                	cmp    %edi,(%ecx)
40fb03:	74 09                	je     0x40fb0e
40fb05:	83 c1 0c             	add    $0xc,%ecx
40fb08:	3b c8                	cmp    %eax,%ecx
40fb0a:	75 f5                	jne    0x40fb01
40fb0c:	8b cb                	mov    %ebx,%ecx
40fb0e:	85 c9                	test   %ecx,%ecx
40fb10:	0f 84 11 01 00 00    	je     0x40fc27
40fb16:	8b 79 08             	mov    0x8(%ecx),%edi
40fb19:	85 ff                	test   %edi,%edi
40fb1b:	0f 84 06 01 00 00    	je     0x40fc27
40fb21:	83 ff 05             	cmp    $0x5,%edi
40fb24:	75 0b                	jne    0x40fb31
40fb26:	33 c0                	xor    %eax,%eax
40fb28:	89 59 08             	mov    %ebx,0x8(%ecx)
40fb2b:	40                   	inc    %eax
40fb2c:	e9 f8 00 00 00       	jmp    0x40fc29
40fb31:	83 ff 01             	cmp    $0x1,%edi
40fb34:	75 08                	jne    0x40fb3e
40fb36:	83 c8 ff             	or     $0xffffffff,%eax
40fb39:	e9 eb 00 00 00       	jmp    0x40fc29
40fb3e:	8b 46 04             	mov    0x4(%esi),%eax
40fb41:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fb44:	8b 45 0c             	mov    0xc(%ebp),%eax
40fb47:	89 46 04             	mov    %eax,0x4(%esi)
40fb4a:	83 79 04 08          	cmpl   $0x8,0x4(%ecx)
40fb4e:	0f 85 b7 00 00 00    	jne    0x40fc0b
40fb54:	8d 42 24             	lea    0x24(%edx),%eax
40fb57:	8d 50 6c             	lea    0x6c(%eax),%edx
40fb5a:	eb 06                	jmp    0x40fb62
40fb5c:	89 58 08             	mov    %ebx,0x8(%eax)
40fb5f:	83 c0 0c             	add    $0xc,%eax
40fb62:	3b c2                	cmp    %edx,%eax
40fb64:	75 f6                	jne    0x40fb5c
40fb66:	8b 5e 08             	mov    0x8(%esi),%ebx
40fb69:	b8 91 00 00 c0       	mov    $0xc0000091,%eax
40fb6e:	39 01                	cmp    %eax,(%ecx)
40fb70:	77 47                	ja     0x40fbb9
40fb72:	74 3e                	je     0x40fbb2
40fb74:	81 39 8d 00 00 c0    	cmpl   $0xc000008d,(%ecx)
40fb7a:	74 2f                	je     0x40fbab
40fb7c:	81 39 8e 00 00 c0    	cmpl   $0xc000008e,(%ecx)
40fb82:	74 20                	je     0x40fba4
40fb84:	81 39 8f 00 00 c0    	cmpl   $0xc000008f,(%ecx)
40fb8a:	74 11                	je     0x40fb9d
40fb8c:	81 39 90 00 00 c0    	cmpl   $0xc0000090,(%ecx)
40fb92:	8b c3                	mov    %ebx,%eax
40fb94:	75 62                	jne    0x40fbf8
40fb96:	b8 81 00 00 00       	mov    $0x81,%eax
40fb9b:	eb 58                	jmp    0x40fbf5
40fb9d:	b8 86 00 00 00       	mov    $0x86,%eax
40fba2:	eb 51                	jmp    0x40fbf5
40fba4:	b8 83 00 00 00       	mov    $0x83,%eax
40fba9:	eb 4a                	jmp    0x40fbf5
40fbab:	b8 82 00 00 00       	mov    $0x82,%eax
40fbb0:	eb 43                	jmp    0x40fbf5
40fbb2:	b8 84 00 00 00       	mov    $0x84,%eax
40fbb7:	eb 3c                	jmp    0x40fbf5
40fbb9:	81 39 92 00 00 c0    	cmpl   $0xc0000092,(%ecx)
40fbbf:	74 2f                	je     0x40fbf0
40fbc1:	81 39 93 00 00 c0    	cmpl   $0xc0000093,(%ecx)
40fbc7:	74 20                	je     0x40fbe9
40fbc9:	81 39 b4 02 00 c0    	cmpl   $0xc00002b4,(%ecx)
40fbcf:	74 11                	je     0x40fbe2
40fbd1:	81 39 b5 02 00 c0    	cmpl   $0xc00002b5,(%ecx)
40fbd7:	8b c3                	mov    %ebx,%eax
40fbd9:	75 1d                	jne    0x40fbf8
40fbdb:	b8 8d 00 00 00       	mov    $0x8d,%eax
40fbe0:	eb 13                	jmp    0x40fbf5
40fbe2:	b8 8e 00 00 00       	mov    $0x8e,%eax
40fbe7:	eb 0c                	jmp    0x40fbf5
40fbe9:	b8 85 00 00 00       	mov    $0x85,%eax
40fbee:	eb 05                	jmp    0x40fbf5
40fbf0:	b8 8a 00 00 00       	mov    $0x8a,%eax
40fbf5:	89 46 08             	mov    %eax,0x8(%esi)
40fbf8:	50                   	push   %eax
40fbf9:	6a 08                	push   $0x8
40fbfb:	8b cf                	mov    %edi,%ecx
40fbfd:	ff 15 54 41 42 00    	call   *0x424154
40fc03:	ff d7                	call   *%edi
40fc05:	59                   	pop    %ecx
40fc06:	89 5e 08             	mov    %ebx,0x8(%esi)
40fc09:	eb 10                	jmp    0x40fc1b
40fc0b:	ff 71 04             	push   0x4(%ecx)
40fc0e:	89 59 08             	mov    %ebx,0x8(%ecx)
40fc11:	8b cf                	mov    %edi,%ecx
40fc13:	ff 15 54 41 42 00    	call   *0x424154
40fc19:	ff d7                	call   *%edi
40fc1b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40fc1e:	59                   	pop    %ecx
40fc1f:	89 46 04             	mov    %eax,0x4(%esi)
40fc22:	e9 0f ff ff ff       	jmp    0x40fb36
40fc27:	33 c0                	xor    %eax,%eax
40fc29:	5f                   	pop    %edi
40fc2a:	5e                   	pop    %esi
40fc2b:	5b                   	pop    %ebx
40fc2c:	c9                   	leave
40fc2d:	c3                   	ret
40fc2e:	a1 88 47 43 00       	mov    0x434788,%eax
40fc33:	c3                   	ret
40fc34:	8b ff                	mov    %edi,%edi
40fc36:	55                   	push   %ebp
40fc37:	8b ec                	mov    %esp,%ebp
40fc39:	8b 45 08             	mov    0x8(%ebp),%eax
40fc3c:	a3 88 47 43 00       	mov    %eax,0x434788
40fc41:	5d                   	pop    %ebp
40fc42:	c3                   	ret
40fc43:	8b ff                	mov    %edi,%edi
40fc45:	55                   	push   %ebp
40fc46:	8b ec                	mov    %esp,%ebp
40fc48:	a1 14 30 43 00       	mov    0x433014,%eax
40fc4d:	83 e0 1f             	and    $0x1f,%eax
40fc50:	6a 20                	push   $0x20
40fc52:	59                   	pop    %ecx
40fc53:	2b c8                	sub    %eax,%ecx
40fc55:	8b 45 08             	mov    0x8(%ebp),%eax
40fc58:	d3 c8                	ror    %cl,%eax
40fc5a:	33 05 14 30 43 00    	xor    0x433014,%eax
40fc60:	5d                   	pop    %ebp
40fc61:	c3                   	ret
40fc62:	a1 14 30 43 00       	mov    0x433014,%eax
40fc67:	8b c8                	mov    %eax,%ecx
40fc69:	33 05 8c 47 43 00    	xor    0x43478c,%eax
40fc6f:	83 e1 1f             	and    $0x1f,%ecx
40fc72:	d3 c8                	ror    %cl,%eax
40fc74:	85 c0                	test   %eax,%eax
40fc76:	0f 95 c0             	setne  %al
40fc79:	c3                   	ret
40fc7a:	8b ff                	mov    %edi,%edi
40fc7c:	55                   	push   %ebp
40fc7d:	8b ec                	mov    %esp,%ebp
40fc7f:	8b 45 08             	mov    0x8(%ebp),%eax
40fc82:	a3 8c 47 43 00       	mov    %eax,0x43478c
40fc87:	5d                   	pop    %ebp
40fc88:	c3                   	ret
40fc89:	8b ff                	mov    %edi,%edi
40fc8b:	55                   	push   %ebp
40fc8c:	8b ec                	mov    %esp,%ebp
40fc8e:	56                   	push   %esi
40fc8f:	8b 35 14 30 43 00    	mov    0x433014,%esi
40fc95:	8b ce                	mov    %esi,%ecx
40fc97:	33 35 8c 47 43 00    	xor    0x43478c,%esi
40fc9d:	83 e1 1f             	and    $0x1f,%ecx
40fca0:	d3 ce                	ror    %cl,%esi
40fca2:	85 f6                	test   %esi,%esi
40fca4:	75 04                	jne    0x40fcaa
40fca6:	33 c0                	xor    %eax,%eax
40fca8:	eb 0e                	jmp    0x40fcb8
40fcaa:	ff 75 08             	push   0x8(%ebp)
40fcad:	8b ce                	mov    %esi,%ecx
40fcaf:	ff 15 54 41 42 00    	call   *0x424154
40fcb5:	ff d6                	call   *%esi
40fcb7:	59                   	pop    %ecx
40fcb8:	5e                   	pop    %esi
40fcb9:	5d                   	pop    %ebp
40fcba:	c3                   	ret
40fcbb:	8b ff                	mov    %edi,%edi
40fcbd:	55                   	push   %ebp
40fcbe:	8b ec                	mov    %esp,%ebp
40fcc0:	ff 75 08             	push   0x8(%ebp)
40fcc3:	e8 7b ff ff ff       	call   0x40fc43
40fcc8:	59                   	pop    %ecx
40fcc9:	a3 8c 47 43 00       	mov    %eax,0x43478c
40fcce:	5d                   	pop    %ebp
40fccf:	c3                   	ret
40fcd0:	8b ff                	mov    %edi,%edi
40fcd2:	55                   	push   %ebp
40fcd3:	8b ec                	mov    %esp,%ebp
40fcd5:	83 ec 10             	sub    $0x10,%esp
40fcd8:	53                   	push   %ebx
40fcd9:	8b 5d 08             	mov    0x8(%ebp),%ebx
40fcdc:	85 db                	test   %ebx,%ebx
40fcde:	75 07                	jne    0x40fce7
40fce0:	33 c0                	xor    %eax,%eax
40fce2:	e9 15 01 00 00       	jmp    0x40fdfc
40fce7:	56                   	push   %esi
40fce8:	83 fb 02             	cmp    $0x2,%ebx
40fceb:	74 1b                	je     0x40fd08
40fced:	83 fb 01             	cmp    $0x1,%ebx
40fcf0:	74 16                	je     0x40fd08
40fcf2:	e8 04 f1 ff ff       	call   0x40edfb
40fcf7:	6a 16                	push   $0x16
40fcf9:	5e                   	pop    %esi
40fcfa:	89 30                	mov    %esi,(%eax)
40fcfc:	e8 80 d3 ff ff       	call   0x40d081
40fd01:	8b c6                	mov    %esi,%eax
40fd03:	e9 f3 00 00 00       	jmp    0x40fdfb
40fd08:	57                   	push   %edi
40fd09:	68 04 01 00 00       	push   $0x104
40fd0e:	be 90 47 43 00       	mov    $0x434790,%esi
40fd13:	33 ff                	xor    %edi,%edi
40fd15:	56                   	push   %esi
40fd16:	57                   	push   %edi
40fd17:	ff 15 c4 40 42 00    	call   *0x4240c4
40fd1d:	a1 e4 4d 43 00       	mov    0x434de4,%eax
40fd22:	89 35 d0 4d 43 00    	mov    %esi,0x434dd0
40fd28:	89 45 f0             	mov    %eax,-0x10(%ebp)
40fd2b:	85 c0                	test   %eax,%eax
40fd2d:	74 05                	je     0x40fd34
40fd2f:	66 39 38             	cmp    %di,(%eax)
40fd32:	75 05                	jne    0x40fd39
40fd34:	8b c6                	mov    %esi,%eax
40fd36:	89 75 f0             	mov    %esi,-0x10(%ebp)
40fd39:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40fd3c:	89 7d fc             	mov    %edi,-0x4(%ebp)
40fd3f:	51                   	push   %ecx
40fd40:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40fd43:	89 7d f4             	mov    %edi,-0xc(%ebp)
40fd46:	51                   	push   %ecx
40fd47:	57                   	push   %edi
40fd48:	57                   	push   %edi
40fd49:	50                   	push   %eax
40fd4a:	e8 b0 00 00 00       	call   0x40fdff
40fd4f:	6a 02                	push   $0x2
40fd51:	ff 75 f4             	push   -0xc(%ebp)
40fd54:	ff 75 fc             	push   -0x4(%ebp)
40fd57:	e8 37 02 00 00       	call   0x40ff93
40fd5c:	8b f0                	mov    %eax,%esi
40fd5e:	83 c4 20             	add    $0x20,%esp
40fd61:	85 f6                	test   %esi,%esi
40fd63:	75 0c                	jne    0x40fd71
40fd65:	e8 91 f0 ff ff       	call   0x40edfb
40fd6a:	6a 0c                	push   $0xc
40fd6c:	5f                   	pop    %edi
40fd6d:	89 38                	mov    %edi,(%eax)
40fd6f:	eb 32                	jmp    0x40fda3
40fd71:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fd74:	50                   	push   %eax
40fd75:	8d 45 fc             	lea    -0x4(%ebp),%eax
40fd78:	50                   	push   %eax
40fd79:	8b 45 fc             	mov    -0x4(%ebp),%eax
40fd7c:	8d 04 86             	lea    (%esi,%eax,4),%eax
40fd7f:	50                   	push   %eax
40fd80:	56                   	push   %esi
40fd81:	ff 75 f0             	push   -0x10(%ebp)
40fd84:	e8 76 00 00 00       	call   0x40fdff
40fd89:	83 c4 14             	add    $0x14,%esp
40fd8c:	83 fb 01             	cmp    $0x1,%ebx
40fd8f:	75 16                	jne    0x40fda7
40fd91:	8b 45 fc             	mov    -0x4(%ebp),%eax
40fd94:	48                   	dec    %eax
40fd95:	a3 d4 4d 43 00       	mov    %eax,0x434dd4
40fd9a:	8b c6                	mov    %esi,%eax
40fd9c:	8b f7                	mov    %edi,%esi
40fd9e:	a3 dc 4d 43 00       	mov    %eax,0x434ddc
40fda3:	8b df                	mov    %edi,%ebx
40fda5:	eb 4a                	jmp    0x40fdf1
40fda7:	8d 45 f8             	lea    -0x8(%ebp),%eax
40fdaa:	89 7d f8             	mov    %edi,-0x8(%ebp)
40fdad:	50                   	push   %eax
40fdae:	56                   	push   %esi
40fdaf:	e8 36 ae 00 00       	call   0x41abea
40fdb4:	8b d8                	mov    %eax,%ebx
40fdb6:	59                   	pop    %ecx
40fdb7:	59                   	pop    %ecx
40fdb8:	85 db                	test   %ebx,%ebx
40fdba:	74 05                	je     0x40fdc1
40fdbc:	8b 45 f8             	mov    -0x8(%ebp),%eax
40fdbf:	eb 26                	jmp    0x40fde7
40fdc1:	8b 55 f8             	mov    -0x8(%ebp),%edx
40fdc4:	8b cf                	mov    %edi,%ecx
40fdc6:	8b c2                	mov    %edx,%eax
40fdc8:	39 3a                	cmp    %edi,(%edx)
40fdca:	74 08                	je     0x40fdd4
40fdcc:	8d 40 04             	lea    0x4(%eax),%eax
40fdcf:	41                   	inc    %ecx
40fdd0:	39 38                	cmp    %edi,(%eax)
40fdd2:	75 f8                	jne    0x40fdcc
40fdd4:	8b c7                	mov    %edi,%eax
40fdd6:	89 0d d4 4d 43 00    	mov    %ecx,0x434dd4
40fddc:	89 45 f8             	mov    %eax,-0x8(%ebp)
40fddf:	8b df                	mov    %edi,%ebx
40fde1:	89 15 dc 4d 43 00    	mov    %edx,0x434ddc
40fde7:	50                   	push   %eax
40fde8:	e8 1e 33 00 00       	call   0x41310b
40fded:	59                   	pop    %ecx
40fdee:	89 7d f8             	mov    %edi,-0x8(%ebp)
40fdf1:	56                   	push   %esi
40fdf2:	e8 14 33 00 00       	call   0x41310b
40fdf7:	59                   	pop    %ecx
40fdf8:	8b c3                	mov    %ebx,%eax
40fdfa:	5f                   	pop    %edi
40fdfb:	5e                   	pop    %esi
40fdfc:	5b                   	pop    %ebx
40fdfd:	c9                   	leave
40fdfe:	c3                   	ret
40fdff:	8b ff                	mov    %edi,%edi
40fe01:	55                   	push   %ebp
40fe02:	8b ec                	mov    %esp,%ebp
40fe04:	8b 45 14             	mov    0x14(%ebp),%eax
40fe07:	83 ec 10             	sub    $0x10,%esp
40fe0a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40fe0d:	8b 55 10             	mov    0x10(%ebp),%edx
40fe10:	56                   	push   %esi
40fe11:	8b 75 0c             	mov    0xc(%ebp),%esi
40fe14:	57                   	push   %edi
40fe15:	8b 7d 18             	mov    0x18(%ebp),%edi
40fe18:	83 27 00             	andl   $0x0,(%edi)
40fe1b:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40fe21:	85 f6                	test   %esi,%esi
40fe23:	74 08                	je     0x40fe2d
40fe25:	89 16                	mov    %edx,(%esi)
40fe27:	83 c6 04             	add    $0x4,%esi
40fe2a:	89 75 0c             	mov    %esi,0xc(%ebp)
40fe2d:	53                   	push   %ebx
40fe2e:	32 db                	xor    %bl,%bl
40fe30:	c7 45 f8 20 00 00 00 	movl   $0x20,-0x8(%ebp)
40fe37:	c7 45 f4 09 00 00 00 	movl   $0x9,-0xc(%ebp)
40fe3e:	6a 22                	push   $0x22
40fe40:	58                   	pop    %eax
40fe41:	66 39 01             	cmp    %ax,(%ecx)
40fe44:	75 0a                	jne    0x40fe50
40fe46:	84 db                	test   %bl,%bl
40fe48:	0f 94 c3             	sete   %bl
40fe4b:	83 c1 02             	add    $0x2,%ecx
40fe4e:	eb 1a                	jmp    0x40fe6a
40fe50:	ff 07                	incl   (%edi)
40fe52:	85 d2                	test   %edx,%edx
40fe54:	74 09                	je     0x40fe5f
40fe56:	66 8b 01             	mov    (%ecx),%ax