I'm using IDA PRO to disassemble a function, which produces a control flow that looks like this:
start_IE proc near Buffer= dword ptr -230h var_22C= byte ptr -22Ch hFile= dword ptr -30h hInternet= dword ptr -2Ch szAgent= byte ptr -28h dwNumberOfBytesRead= dword ptr -8 var_4= dword ptr -4 arg_0= dword ptr 8 ;Do stuff that has nothing to do with ebp+var22C mov al, [ebp+var_22C] jmp short return return: mov esp, ebp pop ebp retn start_IE endp
I've cut out a lot of irrelevant code, but the only 2 times that var_22C appears in this procedure has been shown above.
I'm having a difficult time finding out what value the data pointed to by var_22C will be since it's given no obvious assignment here.
Code before/after the function call in the caller:
mov ecx, [ebp+var_C] push ecx ; command char call start_IE add esp, 4 mov [ebp+var_8], al movsx edx, [ebp+var_8] test edx, edx jnz short success
It only has 1 argument passed to it, which should be
arg_0... We see that the return value from Var_22C is placed into
[ebp+var_8] back in the caller afterwards.