I have decompiled a program with VB Decompiler and it says that my target function (the one which I want to see the code) is at the address 0x00617B70. So once I have disassembled the application I go to that memory address and I see:
CALL 0861BBA1
ADD BYTE PTR [EAX], DH
IN AL, 0
XOR AL, 0
ADD BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
SBB BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
SBB AL, 0
ADD BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
ADD AL, 0
ADD BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
OR AL, FF
ADD EAX, DWORD PTR [EAX]
JE 00617B99
ADD DWORD PTR [EAX], EAX
INSB
INC DWORD PTR [EBX]
ADD BYTE PTR [EAX-1], DH
ADD EAX, DWORD PTR [EAX]
AND BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
ADD EAX, 0
ADD BYTE PTR [EAX-1], AL
ADD DWORD PTR [EAX], EAX
INC ESP
INC DWORD PTR [EBX]
ADD BYTE PTR [EAX-1], BL
ADD AL, BYTE PTR [EAX]
XOR BH, BH
ADD AL, BYTE PTR [EAX]
ADC BH, BH
ADD AL, BYTE PTR [EAX]
INSB
OR AL, 0
OR BYTE PTR [EAX], CL
ADD BYTE PTR [ESI], AL
INC EAX
ADD BYTE PTR [EAX+71], AL
PUSHAD
--
SHL BYTE PTR [EAX-1], 1
PUSH ES
ADD AH, BH
ADC AL, 8
OR BYTE PTR [EAX], AL
MOV DWORD PTR [EAX+6E70AD00], EAX
--
SHL BYTE PTR [EAX-1], 1
POP ES
ADD AH, BH
ADC AL, 8
OR BYTE PTR [EAX], AL
MOV DWORD PTR [EDX+6C70AD00], EAX
JMP FAR FWORD PTR [EBX+6E]
That doesn't look like a function, right? I don't know anything about ASM, but I expect something like this:
PUSH EBP
MOV EBP, ESP
SUB ESP, 8
...more stuff here...
RETN
Specially the RETN
instruction says that it's about a function, right?
Any ideas what I'm doing wrong?