Little knowledge of assembly can be a problem sometimes.  push       ebp lea        eax,[ebp-3C0] call       005A0E30 pop        ecx mov        edx,dword ptr [ebp-3C0] lea        eax,[ebp-20] call       @UStrLAsg push       ebp lea        eax,[ebp-3C4] call       005A1568 pop        ecxJust as the above code, I am trying to understand what is happening but I cannot understand the instructions lea followed by a call. Maybe if I had an idea of what @UstrLAsg means I would start to get what is going on there or maybe someone out there can give me a hint.
what is the meaning of UsrLAsg in assembly?
assembly;x86
mov        edx,dword ptr [ebp-3C0]This instruction sets register edx to the value of the DWORD at memory address (ebp-3C0).lea        eax,[ebp-20]This instruction sets register eax to the value (ebp-20); despite the square brackets in the instruction, there is no memory dereferencing involved.call       @UStrLAsgThis instruction calls the Delphi library function UStrLAsg(), which receives its input arguments via eax and edx. A little Googling shows that that function is used to assign a local Unicode string to a global variable, where edx points to the source string and eax points to the global variable.