Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char __fastcall sub_105097C0(int a1, int a2)
- {
- int v2; // ebx@1
- int v3; // eax@4
- signed int v4; // edi@4
- char v5; // al@5
- int v6; // eax@5
- int v7; // esi@6
- int v8; // edx@7
- unsigned int v9; // eax@8
- unsigned int v10; // eax@8
- int v11; // edx@12
- unsigned int v12; // ecx@13
- unsigned int v13; // ecx@13
- int v14; // eax@18
- signed __int64 v15; // rax@18
- unsigned __int8 v16; // cf@18
- signed __int64 v17; // rax@18
- signed __int64 v18; // rax@18
- char v20; // [sp+Bh] [bp-25h]@5
- __int64 v21; // [sp+Ch] [bp-24h]@4
- int v22; // [sp+14h] [bp-1Ch]@4
- char v23; // [sp+18h] [bp-18h]@4
- __int64 v24; // [sp+1Ch] [bp-14h]@4
- char v25[3]; // [sp+24h] [bp-Ch]@8
- char v26; // [sp+27h] [bp-9h]@10
- __int64 v27; // [sp+28h] [bp-8h]@7
- char vars0[4]; // [sp+30h] [bp+0h]@8
- v2 = a2;
- if ( strlen((const char *)a1) == 15 && *(_BYTE *)(a1 + 4) == 45 && *(_BYTE *)(a1 + 10) == 45 )
- {
- v23 = 0;
- v3 = *(_DWORD *)a1;
- v4 = 13;
- _mm_storel_epi64((__m128i *)&v21, 0i64);
- LODWORD(v21) = v3;
- HIDWORD(v21) = *(_DWORD *)(a1 + 5);
- LOBYTE(v3) = *(_BYTE *)(a1 + 9);
- v22 = 0;
- LOBYTE(v22) = v3;
- *(int *)((char *)&v22 + 1) = *(_DWORD *)(a1 + 11);
- _mm_storel_epi64((__m128i *)&v24, 0i64);
- while ( 1 )
- {
- v5 = *(&v20 + v4--);
- v6 = sub_109EDF80("ABCDEFGHJKLMNPQRSTUVWXYZ23456789", v5);
- if ( !v6 )
- break;
- v7 = v6 - (_DWORD)"ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
- if ( (unsigned int)(v6 - (_DWORD)"ABCDEFGHJKLMNPQRSTUVWXYZ23456789") >= 0x20 )
- break;
- v8 = 0;
- _mm_storel_epi64((__m128i *)&v27, 0i64);
- do
- {
- --v8;
- v9 = (unsigned __int8)vars0[v8] + 32 * (unsigned __int8)v25[v8];
- vars0[v8] = v9;
- v10 = v9 >> 8;
- if ( v10 )
- {
- if ( v8 == -8 )
- return 0;
- *(&v26 + v8 + 8) += v10;
- }
- }
- while ( v8 + 8 > 0 );
- v11 = 0;
- _mm_storel_epi64((__m128i *)&v24, _mm_loadl_epi64((const __m128i *)&v27));
- _mm_storel_epi64((__m128i *)&v27, 0i64);
- do
- {
- --v11;
- v12 = (unsigned __int8)vars0[v11] + v7 + (unsigned __int8)v25[v11];
- v7 = 0;
- vars0[v11] = v12;
- v13 = v12 >> 8;
- if ( v13 )
- {
- if ( v11 == -8 )
- return 0;
- *(&v26 + v11 + 8) += v13;
- }
- }
- while ( v11 + 8 > 0 );
- _mm_storel_epi64((__m128i *)&v24, _mm_loadl_epi64((const __m128i *)&v27));
- if ( v4 <= 0 )
- {
- *(_DWORD *)v2 = (unsigned __int8)v24;
- v14 = BYTE1(v24);
- *(_DWORD *)(v2 + 4) = 0;
- v15 = (signed __int64)v14 << 8;
- v16 = __CFADD__((_DWORD)v15, *(_DWORD *)v2);
- *(_DWORD *)v2 += v15;
- LODWORD(v15) = BYTE2(v24);
- *(_DWORD *)(v2 + 4) += HIDWORD(v15) + v16;
- v17 = (signed __int64)(signed int)v15 << 16;
- v16 = __CFADD__((_DWORD)v17, *(_DWORD *)v2);
- *(_DWORD *)v2 += v17;
- LODWORD(v17) = BYTE3(v24);
- *(_DWORD *)(v2 + 4) += HIDWORD(v17) + v16;
- v18 = (signed __int64)(signed int)v17 << 24;
- v16 = __CFADD__((_DWORD)v18, *(_DWORD *)v2);
- *(_DWORD *)v2 += v18;
- LODWORD(v18) = BYTE4(v24);
- *(_DWORD *)(v2 + 4) += HIDWORD(v18) + v16;
- *(_DWORD *)v2 = *(_DWORD *)v2;
- *(_DWORD *)(v2 + 4) += v18;
- *(_QWORD *)v2 += __PAIR__((unsigned int)BYTE5(v24) << 8, 0);
- *(_QWORD *)v2 += __PAIR__((unsigned int)BYTE6(v24) << 16, 0);
- LODWORD(v18) = BYTE7(v24) << 24;
- *(_DWORD *)v2 = *(_DWORD *)v2;
- *(_DWORD *)(v2 + 4) += v18;
- return 1;
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement