408b2f:	59                   	pop    %ecx
408b30:	85 c0                	test   %eax,%eax
408b32:	75 f0                	jne    0x408b24
408b34:	56                   	push   %esi
408b35:	e8 ea 0c 00 00       	call   0x409824
408b3a:	59                   	pop    %ecx
408b3b:	5f                   	pop    %edi
408b3c:	5e                   	pop    %esi
408b3d:	5d                   	pop    %ebp
408b3e:	c3                   	ret
408b3f:	8b ff                	mov    %edi,%edi
408b41:	57                   	push   %edi
408b42:	8b 3d 50 41 42 00    	mov    0x424150,%edi
408b48:	85 ff                	test   %edi,%edi
408b4a:	75 05                	jne    0x408b51
408b4c:	83 c8 ff             	or     $0xffffffff,%eax
408b4f:	5f                   	pop    %edi
408b50:	c3                   	ret
408b51:	53                   	push   %ebx
408b52:	56                   	push   %esi
408b53:	33 db                	xor    %ebx,%ebx
408b55:	eb 51                	jmp    0x408ba8
408b57:	53                   	push   %ebx
408b58:	53                   	push   %ebx
408b59:	53                   	push   %ebx
408b5a:	53                   	push   %ebx
408b5b:	6a ff                	push   $0xffffffff
408b5d:	ff 37                	push   (%edi)
408b5f:	53                   	push   %ebx
408b60:	53                   	push   %ebx
408b61:	ff 15 30 b1 41 00    	call   *0x41b130
408b67:	8b d8                	mov    %eax,%ebx
408b69:	85 db                	test   %ebx,%ebx
408b6b:	74 4c                	je     0x408bb9
408b6d:	6a 01                	push   $0x1
408b6f:	53                   	push   %ebx
408b70:	e8 37 0d 00 00       	call   0x4098ac
408b75:	8b f0                	mov    %eax,%esi
408b77:	59                   	pop    %ecx
408b78:	59                   	pop    %ecx
408b79:	85 f6                	test   %esi,%esi
408b7b:	74 35                	je     0x408bb2
408b7d:	6a 00                	push   $0x0
408b7f:	6a 00                	push   $0x0
408b81:	53                   	push   %ebx
408b82:	56                   	push   %esi
408b83:	6a ff                	push   $0xffffffff
408b85:	ff 37                	push   (%edi)
408b87:	33 db                	xor    %ebx,%ebx
408b89:	53                   	push   %ebx
408b8a:	53                   	push   %ebx
408b8b:	ff 15 30 b1 41 00    	call   *0x41b130
408b91:	85 c0                	test   %eax,%eax
408b93:	74 1d                	je     0x408bb2
408b95:	53                   	push   %ebx
408b96:	56                   	push   %esi
408b97:	e8 35 78 00 00       	call   0x4103d1
408b9c:	53                   	push   %ebx
408b9d:	e8 82 0c 00 00       	call   0x409824
408ba2:	83 c4 0c             	add    $0xc,%esp
408ba5:	83 c7 04             	add    $0x4,%edi
408ba8:	39 1f                	cmp    %ebx,(%edi)
408baa:	75 ab                	jne    0x408b57
408bac:	33 c0                	xor    %eax,%eax
408bae:	5e                   	pop    %esi
408baf:	5b                   	pop    %ebx
408bb0:	5f                   	pop    %edi
408bb1:	c3                   	ret
408bb2:	56                   	push   %esi
408bb3:	e8 6c 0c 00 00       	call   0x409824
408bb8:	59                   	pop    %ecx
408bb9:	83 c8 ff             	or     $0xffffffff,%eax
408bbc:	eb f0                	jmp    0x408bae
408bbe:	8b ff                	mov    %edi,%edi
408bc0:	57                   	push   %edi
408bc1:	8b 3d 4c 41 42 00    	mov    0x42414c,%edi
408bc7:	85 ff                	test   %edi,%edi
408bc9:	75 05                	jne    0x408bd0
408bcb:	83 c8 ff             	or     $0xffffffff,%eax
408bce:	5f                   	pop    %edi
408bcf:	c3                   	ret
408bd0:	53                   	push   %ebx
408bd1:	56                   	push   %esi
408bd2:	33 db                	xor    %ebx,%ebx
408bd4:	eb 4b                	jmp    0x408c21
408bd6:	53                   	push   %ebx
408bd7:	53                   	push   %ebx
408bd8:	6a ff                	push   $0xffffffff
408bda:	ff 37                	push   (%edi)
408bdc:	53                   	push   %ebx
408bdd:	53                   	push   %ebx
408bde:	ff 15 2c b1 41 00    	call   *0x41b12c
408be4:	8b d8                	mov    %eax,%ebx
408be6:	85 db                	test   %ebx,%ebx
408be8:	74 48                	je     0x408c32
408bea:	6a 02                	push   $0x2
408bec:	53                   	push   %ebx
408bed:	e8 ba 0c 00 00       	call   0x4098ac
408bf2:	8b f0                	mov    %eax,%esi
408bf4:	59                   	pop    %ecx
408bf5:	59                   	pop    %ecx
408bf6:	85 f6                	test   %esi,%esi
408bf8:	74 31                	je     0x408c2b
408bfa:	53                   	push   %ebx
408bfb:	56                   	push   %esi
408bfc:	6a ff                	push   $0xffffffff
408bfe:	ff 37                	push   (%edi)
408c00:	33 db                	xor    %ebx,%ebx
408c02:	53                   	push   %ebx
408c03:	53                   	push   %ebx
408c04:	ff 15 2c b1 41 00    	call   *0x41b12c
408c0a:	85 c0                	test   %eax,%eax
408c0c:	74 1d                	je     0x408c2b
408c0e:	53                   	push   %ebx
408c0f:	56                   	push   %esi
408c10:	e8 c7 77 00 00       	call   0x4103dc
408c15:	53                   	push   %ebx
408c16:	e8 09 0c 00 00       	call   0x409824
408c1b:	83 c4 0c             	add    $0xc,%esp
408c1e:	83 c7 04             	add    $0x4,%edi
408c21:	39 1f                	cmp    %ebx,(%edi)
408c23:	75 b1                	jne    0x408bd6
408c25:	33 c0                	xor    %eax,%eax
408c27:	5e                   	pop    %esi
408c28:	5b                   	pop    %ebx
408c29:	5f                   	pop    %edi
408c2a:	c3                   	ret
408c2b:	56                   	push   %esi
408c2c:	e8 f3 0b 00 00       	call   0x409824
408c31:	59                   	pop    %ecx
408c32:	83 c8 ff             	or     $0xffffffff,%eax
408c35:	eb f0                	jmp    0x408c27
408c37:	8b ff                	mov    %edi,%edi
408c39:	55                   	push   %ebp
408c3a:	8b ec                	mov    %esp,%ebp
408c3c:	51                   	push   %ecx
408c3d:	a1 0c 30 42 00       	mov    0x42300c,%eax
408c42:	33 c5                	xor    %ebp,%eax
408c44:	89 45 fc             	mov    %eax,-0x4(%ebp)
408c47:	56                   	push   %esi
408c48:	8b f1                	mov    %ecx,%esi
408c4a:	57                   	push   %edi
408c4b:	8d 7e 04             	lea    0x4(%esi),%edi
408c4e:	eb 11                	jmp    0x408c61
408c50:	8b 4d 08             	mov    0x8(%ebp),%ecx
408c53:	56                   	push   %esi
408c54:	ff 15 a8 b1 41 00    	call   *0x41b1a8
408c5a:	ff 55 08             	call   *0x8(%ebp)
408c5d:	59                   	pop    %ecx
408c5e:	83 c6 04             	add    $0x4,%esi
408c61:	3b f7                	cmp    %edi,%esi
408c63:	75 eb                	jne    0x408c50
408c65:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408c68:	5f                   	pop    %edi
408c69:	33 cd                	xor    %ebp,%ecx
408c6b:	5e                   	pop    %esi
408c6c:	e8 e5 a2 ff ff       	call   0x402f56
408c71:	8b e5                	mov    %ebp,%esp
408c73:	5d                   	pop    %ebp
408c74:	c2 04 00             	ret    $0x4
408c77:	8b ff                	mov    %edi,%edi
408c79:	55                   	push   %ebp
408c7a:	8b ec                	mov    %esp,%ebp
408c7c:	8b 45 08             	mov    0x8(%ebp),%eax
408c7f:	8b 00                	mov    (%eax),%eax
408c81:	3b 05 58 41 42 00    	cmp    0x424158,%eax
408c87:	74 07                	je     0x408c90
408c89:	50                   	push   %eax
408c8a:	e8 81 fe ff ff       	call   0x408b10
408c8f:	59                   	pop    %ecx
408c90:	5d                   	pop    %ebp
408c91:	c3                   	ret
408c92:	8b ff                	mov    %edi,%edi
408c94:	55                   	push   %ebp
408c95:	8b ec                	mov    %esp,%ebp
408c97:	8b 45 08             	mov    0x8(%ebp),%eax
408c9a:	8b 00                	mov    (%eax),%eax
408c9c:	3b 05 54 41 42 00    	cmp    0x424154,%eax
408ca2:	74 07                	je     0x408cab
408ca4:	50                   	push   %eax
408ca5:	e8 66 fe ff ff       	call   0x408b10
408caa:	59                   	pop    %ecx
408cab:	5d                   	pop    %ebp
408cac:	c3                   	ret
408cad:	e9 88 fb ff ff       	jmp    0x40883a
408cb2:	e9 b2 fb ff ff       	jmp    0x408869
408cb7:	68 77 8c 40 00       	push   $0x408c77
408cbc:	b9 4c 41 42 00       	mov    $0x42414c,%ecx
408cc1:	e8 71 ff ff ff       	call   0x408c37
408cc6:	68 92 8c 40 00       	push   $0x408c92
408ccb:	b9 50 41 42 00       	mov    $0x424150,%ecx
408cd0:	e8 62 ff ff ff       	call   0x408c37
408cd5:	ff 35 58 41 42 00    	push   0x424158
408cdb:	e8 30 fe ff ff       	call   0x408b10
408ce0:	ff 35 54 41 42 00    	push   0x424154
408ce6:	e8 25 fe ff ff       	call   0x408b10
408ceb:	59                   	pop    %ecx
408cec:	59                   	pop    %ecx
408ced:	c3                   	ret
408cee:	a1 54 41 42 00       	mov    0x424154,%eax
408cf3:	85 c0                	test   %eax,%eax
408cf5:	75 0a                	jne    0x408d01
408cf7:	e8 6d fb ff ff       	call   0x408869
408cfc:	a3 54 41 42 00       	mov    %eax,0x424154
408d01:	c3                   	ret
408d02:	e9 ea fb ff ff       	jmp    0x4088f1
408d07:	6a 0c                	push   $0xc
408d09:	68 00 1c 42 00       	push   $0x421c00
408d0e:	e8 3d ae ff ff       	call   0x403b50
408d13:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
408d17:	8b 45 08             	mov    0x8(%ebp),%eax
408d1a:	ff 30                	push   (%eax)
408d1c:	e8 84 61 00 00       	call   0x40eea5
408d21:	59                   	pop    %ecx
408d22:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408d26:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408d29:	e8 eb 01 00 00       	call   0x408f19
408d2e:	8b f0                	mov    %eax,%esi
408d30:	89 75 e4             	mov    %esi,-0x1c(%ebp)
408d33:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
408d3a:	e8 0d 00 00 00       	call   0x408d4c
408d3f:	8b c6                	mov    %esi,%eax
408d41:	e8 50 ae ff ff       	call   0x403b96
408d46:	c2 0c 00             	ret    $0xc
408d49:	8b 75 e4             	mov    -0x1c(%ebp),%esi
408d4c:	8b 45 10             	mov    0x10(%ebp),%eax
408d4f:	ff 30                	push   (%eax)
408d51:	e8 97 61 00 00       	call   0x40eeed
408d56:	59                   	pop    %ecx
408d57:	c3                   	ret
408d58:	6a 0c                	push   $0xc
408d5a:	68 20 1c 42 00       	push   $0x421c20
408d5f:	e8 ec ad ff ff       	call   0x403b50
408d64:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
408d68:	8b 45 08             	mov    0x8(%ebp),%eax
408d6b:	ff 30                	push   (%eax)
408d6d:	e8 33 61 00 00       	call   0x40eea5
408d72:	59                   	pop    %ecx
408d73:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408d77:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408d7a:	e8 7a 00 00 00       	call   0x408df9
408d7f:	8b f0                	mov    %eax,%esi
408d81:	89 75 e4             	mov    %esi,-0x1c(%ebp)
408d84:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
408d8b:	e8 0d 00 00 00       	call   0x408d9d
408d90:	8b c6                	mov    %esi,%eax
408d92:	e8 ff ad ff ff       	call   0x403b96
408d97:	c2 0c 00             	ret    $0xc
408d9a:	8b 75 e4             	mov    -0x1c(%ebp),%esi
408d9d:	8b 45 10             	mov    0x10(%ebp),%eax
408da0:	ff 30                	push   (%eax)
408da2:	e8 46 61 00 00       	call   0x40eeed
408da7:	59                   	pop    %ecx
408da8:	c3                   	ret
408da9:	8b ff                	mov    %edi,%edi
408dab:	55                   	push   %ebp
408dac:	8b ec                	mov    %esp,%ebp
408dae:	83 ec 0c             	sub    $0xc,%esp
408db1:	8b 45 08             	mov    0x8(%ebp),%eax
408db4:	8d 4d ff             	lea    -0x1(%ebp),%ecx
408db7:	89 45 f8             	mov    %eax,-0x8(%ebp)
408dba:	89 45 f4             	mov    %eax,-0xc(%ebp)
408dbd:	8d 45 f8             	lea    -0x8(%ebp),%eax
408dc0:	50                   	push   %eax
408dc1:	ff 75 0c             	push   0xc(%ebp)
408dc4:	8d 45 f4             	lea    -0xc(%ebp),%eax
408dc7:	50                   	push   %eax
408dc8:	e8 8b ff ff ff       	call   0x408d58
408dcd:	8b e5                	mov    %ebp,%esp
408dcf:	5d                   	pop    %ebp
408dd0:	c3                   	ret
408dd1:	8b ff                	mov    %edi,%edi
408dd3:	55                   	push   %ebp
408dd4:	8b ec                	mov    %esp,%ebp
408dd6:	83 ec 0c             	sub    $0xc,%esp
408dd9:	8b 45 08             	mov    0x8(%ebp),%eax
408ddc:	8d 4d ff             	lea    -0x1(%ebp),%ecx
408ddf:	89 45 f8             	mov    %eax,-0x8(%ebp)
408de2:	89 45 f4             	mov    %eax,-0xc(%ebp)
408de5:	8d 45 f8             	lea    -0x8(%ebp),%eax
408de8:	50                   	push   %eax
408de9:	ff 75 0c             	push   0xc(%ebp)
408dec:	8d 45 f4             	lea    -0xc(%ebp),%eax
408def:	50                   	push   %eax
408df0:	e8 12 ff ff ff       	call   0x408d07
408df5:	8b e5                	mov    %ebp,%esp
408df7:	5d                   	pop    %ebp
408df8:	c3                   	ret
408df9:	8b ff                	mov    %edi,%edi
408dfb:	55                   	push   %ebp
408dfc:	8b ec                	mov    %esp,%ebp
408dfe:	83 ec 18             	sub    $0x18,%esp
408e01:	a1 0c 30 42 00       	mov    0x42300c,%eax
408e06:	33 c5                	xor    %ebp,%eax
408e08:	89 45 fc             	mov    %eax,-0x4(%ebp)
408e0b:	8b c1                	mov    %ecx,%eax
408e0d:	89 45 e8             	mov    %eax,-0x18(%ebp)
408e10:	53                   	push   %ebx
408e11:	8b 00                	mov    (%eax),%eax
408e13:	8b 18                	mov    (%eax),%ebx
408e15:	85 db                	test   %ebx,%ebx
408e17:	75 08                	jne    0x408e21
408e19:	83 c8 ff             	or     $0xffffffff,%eax
408e1c:	e9 e9 00 00 00       	jmp    0x408f0a
408e21:	8b 15 0c 30 42 00    	mov    0x42300c,%edx
408e27:	56                   	push   %esi
408e28:	57                   	push   %edi
408e29:	8b 3b                	mov    (%ebx),%edi
408e2b:	8b f2                	mov    %edx,%esi
408e2d:	8b 5b 04             	mov    0x4(%ebx),%ebx
408e30:	83 e6 1f             	and    $0x1f,%esi
408e33:	33 fa                	xor    %edx,%edi
408e35:	89 75 ec             	mov    %esi,-0x14(%ebp)
408e38:	8b ce                	mov    %esi,%ecx
408e3a:	33 da                	xor    %edx,%ebx
408e3c:	d3 cf                	ror    %cl,%edi
408e3e:	d3 cb                	ror    %cl,%ebx
408e40:	85 ff                	test   %edi,%edi
408e42:	0f 84 be 00 00 00    	je     0x408f06
408e48:	83 ff ff             	cmp    $0xffffffff,%edi
408e4b:	0f 84 b5 00 00 00    	je     0x408f06
408e51:	89 7d f4             	mov    %edi,-0xc(%ebp)
408e54:	89 5d f0             	mov    %ebx,-0x10(%ebp)
408e57:	6a 20                	push   $0x20
408e59:	59                   	pop    %ecx
408e5a:	2b ce                	sub    %esi,%ecx
408e5c:	33 c0                	xor    %eax,%eax
408e5e:	d3 c8                	ror    %cl,%eax
408e60:	33 c2                	xor    %edx,%eax
408e62:	83 eb 04             	sub    $0x4,%ebx
408e65:	3b df                	cmp    %edi,%ebx
408e67:	72 60                	jb     0x408ec9
408e69:	39 03                	cmp    %eax,(%ebx)
408e6b:	74 f5                	je     0x408e62
408e6d:	8b 33                	mov    (%ebx),%esi
408e6f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
408e72:	33 f2                	xor    %edx,%esi
408e74:	d3 ce                	ror    %cl,%esi
408e76:	8b ce                	mov    %esi,%ecx
408e78:	89 03                	mov    %eax,(%ebx)
408e7a:	ff 15 a8 b1 41 00    	call   *0x41b1a8
408e80:	ff d6                	call   *%esi
408e82:	8b 45 e8             	mov    -0x18(%ebp),%eax
408e85:	8b 15 0c 30 42 00    	mov    0x42300c,%edx
408e8b:	8b f2                	mov    %edx,%esi
408e8d:	83 e6 1f             	and    $0x1f,%esi
408e90:	89 75 ec             	mov    %esi,-0x14(%ebp)
408e93:	8b 00                	mov    (%eax),%eax
408e95:	8b 00                	mov    (%eax),%eax
408e97:	8b 08                	mov    (%eax),%ecx