I don't think the code makes very much sense but I ofcourse haven't seen most of it. Would this be better?
[pascal]function PyArg_Parse(args: PPyObject; format: PChar;
argp: array of Pointer): Integer; cdecl;
begin
{$IFDEF DELPHI6_OR_HIGHER}
Result := 0;
{ Do not optimize this to a "pure" assembler routine, because such
a routine does not copy the array arguments in the prologue code }
asm
lea edx, format
push [edx]

sub edx, TYPE PChar
push [edx]

mov eax, DLL_PyArg_Parse
call eax

pop edx
pop edx
mov Result, eax
end;
{$ELSE}
Result := DLL_PyArg_Parse(args, format);
{$ENDIF}
end;[/pascal]