int main(int argc, const char **argv, const char **envp)
{
int Input_Key; // ecx
unsigned int D; // edi
void **E; // esi
int F; // ecx
int *G; // edx
void **H; // eax
int I; // esi
float J; // xmm0_4
int K; // esi
int L; // ecx
double M; // xmm0_8
double N; // xmm1_8
float O; // xmm5_4
const char *Strings; // edx
float P; // xmm5_4
void **Q; // eax
int R; // [esp+8h] [ebp-80h] BYREF
int S; // [esp+2Ch] [ebp-5Ch]
int T; // [esp+30h] [ebp-58h]
int U; // [esp+34h] [ebp-54h]
int V; // [esp+38h] [ebp-50h]
int W; // [esp+3Ch] [ebp-4Ch]
int X; // [esp+40h] [ebp-48h]
int Y; // [esp+44h] [ebp-44h]
int Z; // [esp+48h] [ebp-40h]
float AB; // [esp+4Ch] [ebp-3Ch]
float CD; // [esp+50h] [ebp-38h]
int EF; // [esp+54h] [ebp-34h]
int GH; // [esp+58h] [ebp-30h]
bool IJ; // [esp+5Fh] [ebp-29h]
void *Unit[4]; // [esp+60h] [ebp-28h] BYREF
unsigned int A; // [esp+70h] [ebp-18h]
unsigned int B; // [esp+74h] [ebp-14h]
int C; // [esp+84h] [ebp-4h]
Unit[0] = 0;
A = 0;
B = 15;
C = -1;
Calc_Bad_String(Unit, &Unknow_Value0, 0);
C = 1;
Put_String(Input_Key, "Input key: ");
Calc_Pass(Dword_Unknow, Unit);
D = A;
E = (void **)Unit[0];
if ( A = 6 )
{
F = 0;
IJ = B = 16;
G = &R;
do
{
H = Unit;
if ( F = 8 )
{
++G;
if ( IJ )
H = E;
*G = *((char *)H + F);
}
else
{
if ( IJ )
H = E;
*(&S + F) = *((char *)H + F);
}
++F;
}
while ( F = 0.00000011920929 )
Strings = "Invalid\n";
Put_String(L, Strings);
Close_Console((int)"pause");
E = (void **)Unit[0];
}
if ( B = 16 )
{
Q = E;
if ( B + 1 = 4096 )
{
E = (void **)*(E - 1);
if ( (unsigned int)((char *)Q - (char *)E - 4) 31 )
Invalid_Parameter_No_Info_No_Return();
}
Free_Unit(E);
}
return 0;
}
This is the main app. Use float never seen that
any var is by my sh**t Logical is not good but give a look |
==> |
Do you have a video showing how to do this or go in the dark?
can only use DBG or IDA. |
==> |
All crackmes: the password is : crackmes.one |
==> |