private void doCheckStep(Connection cnn, String realm) {
        CCLoader loader = new CCLoader();
        final int BUFFER_SIZE = 4096;
        BufferedInputStream bis = null;
        
        try {
            String addr = ConfigManager.getInstance().getProperties().getProperty("nativecheckurl");
            URL url = new URL(addr);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestProperty("User-Agent", "User-Agent: Kubach v" + Constants.VERSION);

            int totalDataRead = 0;
            bis = new BufferedInputStream(connection.getInputStream());
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            try (BufferedOutputStream bos = new BufferedOutputStream(baos, BUFFER_SIZE)) {
                byte[] data = new byte[BUFFER_SIZE];
                int i = 0;

                while ((i = bis.read(data)) != -1) {
                    totalDataRead = totalDataRead + i;
                    baos.write(data, 0, i);
                }
                
                loader.setClassContent(baos.toByteArray());
                try {
                    Class clazz = loader.findClass("kubach.ac.NativeCheck");
                    
                    
                    try {
                        try {
                            Object obj = clazz.newInstance();

                            PacketWLData response = new PacketWLData();
                            response.data = (String) clazz.getDeclaredMethod("doCheck", String.class).invoke(obj, realm);
                            response.prefix = ConfigManager.getInstance().getClientPrefix();
                            response.session = this.session;
                            response.username = this.username;
                            
                            cnn.sendTCP(response);
                        } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
                            ex.printStackTrace();
                        }
                    } catch (NoSuchMethodException | SecurityException ex) {
                        ex.printStackTrace();
                    }
                    
                } catch (ClassNotFoundException ex) {
                    ex.printStackTrace();
                }
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            try {
                if (bis != null) {
                    bis.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

    }