Variables

  • Negative offsets: variables dword ptr -4
  • Positive: parameters!

Global vs local variables

Global:

Local:

You must rename ebp-4 to something more meaningful, otherwise you would not understand anything!!!!

Arithmetic Operations

Just normal add, sub, div, mul. Only the modulo operator is translate as div + mov, as we’re effectively dividing by an integer number and store the remainder of the integer division.

Ifs

If nested, you should check for unconditional jmp.

For

While

Similar to loops, but increment is absent

Switch statements

Just as they would in normal code, they’re a mess.

Usually a JMP table is created.

Arrays

In assembly, arrays are accessed using a base address as a starting point.

The size of each element is not always obvious, but it can be determined by seeing how the array is being indexed.

![[Pasted image 20251019180215.png

Structs

  • TBD

Linked Lists

  • TBD