OKay so the output we need "OMG you did it ..." has a reference XREF unconditional jump which jump into the second function ...
Tetstack
okay one sec I am not great with letters in maths
OKay so what it does is take the character XOR it with the corresponding byte in the table at DAT_00... add that to a running total then return until tevery character is processed.
okay so what the function, which I suppose ... is
checksum = sum over i of (input[i] XOR table[i])
checksum = sum over i of (input[i] XOR table[i])
Tetstack
Photo
param_1[0] = pointer to the string's character buffer
param_1[1]=lenght of the string
param_1[1]=lenght of the string
00104028 81 db 81h
00104029 00 ?? 00h
0010402a 00 ?? 00h
0010402b 00 ?? 00h
0010402c ab ?? ABh
0010402d 00 ?? 00h
0010402e 00 ?? 00h
0010402f 00 ?? 00h
00104030 fe ?? FEh
00104031 00 ?? 00h
00104032 00 ?? 00h
00104033 00 ?? 00h
00104034 7b ?? 7Bh {
00104035 00 ?? 00h
00104036 00 ?? 00h
so this are the first 15 byte now gotta find a way
so after checking the table is not an array of char but an array of unit(4 bit each) they are 32-bit integers
DAT_00104020 XREF[2]: FUN_001014b0:001014c4(*),
FUN_001014b0:001014d5(R)
00104020 04 00 00 00 undefined4 00000004h
DAT_00104024 XREF[1]: FUN_001014b0:001014d5(R)
00104024 4f 00 00 00 undefined4 0000004Fh
00104028 81 db 81h
00104029 00 ?? 00h
0010402a 00 ?? 00h
0010402b 00 ?? 00h
0010402c ab ?? ABh
0010402d 00 ?? 00h
0010402e 00 ?? 00h
0010402f 00 ?? 00h
But there are 2 XREF sooo wait ...