This data is based on the v1.0.0.2 Steam executable of the game.
- int __cdecl sub_8DDE40(const char *a1, _DWORD *a2)
- {
- const char *v2; // ecx@1
- int result; // eax@2
- unsigned int v4; // eax@3
- signed int v5; // edi@3
- unsigned int v6; // ebx@4
- unsigned int v7; // esi@6
- int v8; // ebp@6
- unsigned int v9; // ST1C_4@6
- int v10; // edx@6
- int v11; // [sp+4h] [bp-Ch]@3
- int v12; // [sp+8h] [bp-8h]@3
- v2 = a1;
- if ( a1 )
- {
- v12 = 0;
- v11 = 0;
- v4 = strlen(a1);
- v5 = v4 - 1;
- if ( ((v4 - 1) & 0x80000000) == 0 )
- {
- v6 = v4;
- while ( 1 )
- {
- v7 = v2[v6 - 1];
- v8 = v5 % 0x32;
- v9 = tolower(v7);
- v12 += v6 * dword_B747C0[v7 % 0x32] + v7 * dword_B747C0[v5 % 0x32];
- v10 = v6 * dword_B747C0[v9 % 0x32];
- --v5;
- --v6;
- v11 += v10 + v9 * dword_B747C0[v8];
- if ( v5 < 0 )
- break;
- v2 = a1;
- }
- }
- *a2 = v11;
- result = v12;
- }
- else
- {
- result = 0;
- }
- return result;
- }
- int __usercall sub_8DDC90@<eax>(int result@<eax>, int a2@<ecx>, int a3)
- {
- int v3; // ebx@2
- signed int v4; // esi@2
- int v5; // edi@3
- unsigned int v6; // eax@4
- int v7; // ebp@4
- int v8; // eax@4
- int v9; // [sp+0h] [bp-4h]@3
- if ( result )
- {
- v3 = 0;
- v4 = a3 - 1;
- if ( a3 - 1 >= 0 )
- {
- v5 = a3;
- v9 = a2 + result;
- do
- {
- v6 = tolower(*(_BYTE *)(v9 + v4));
- v7 = v5 * dword_B747C0[v6 % 0x32];
- v8 = v3 + v6 * dword_B747C0[v4-- % 50];
- --v5;
- v3 = v8 + v7;
- }
- while ( v4 >= 0 );
- }
- result = v3;
- }
- return result;
- }