package QuickVerifyCrap; import de.nplusc.izc.tools.baseTools.Tools; import java.nio.charset.StandardCharsets; import java.util.Locale; public class SplitSecondChecksumCheck { public static void main(String[] args) { String checkthis = "Environments\\Levels\\nem_training\\Cameras\\TakedownSequences\\TakeDownSequences.xml"; long cs = wiggleChecksum(checkthis); System.out.println(cs); //1183085413 = 0x46847365 } static long wiggleChecksum(String checksumtarget) { byte[] raw = checksumtarget.toLowerCase(Locale.ROOT).getBytes(StandardCharsets.UTF_8); long csum = 0; for(byte c:raw) { //long massagedChar = massage_character(c&0xFF); //System.out.println(c); csum =csum*0x1f+c; csum = csum&0xFFFFFFFFL; } //System.out.println(Long.toHexString(csum)); return csum; } static long massage_character(int param_1) { //System.out.println(param_1); if (0x19 < param_1 - 0x41) { if (0xbf < (int)param_1) { if (param_1 == 0xd7) { return 0xd7; } if ((int)param_1 < 0xdf) { return param_1 + 0x20; //was LAB_005312fc: } if (0xff < (int)param_1) { if (0x137 < (int)param_1) { if (param_1 == 0x138) { return 0x138; } if (0x148 < (int)param_1) { if (param_1 == 0x149) { return 0x149; } if ((int)param_1 < 0x178) { return param_1 | 1; //was goto:LAB_0053132b: } if (param_1 == 0x178) { return 0xff; } if (0x17e < (int)param_1) { return param_1; } } return (param_1 & 1) + param_1; } //LAB_0053132b: return param_1 | 1; } } return param_1; } //LAB_005312fc: return param_1 + 0x20; } }