REDIVIVUS

Proposals / #1474

Mac BigBuffer_Add: void __fastcc (BigBuffer* pDest ECX, BigBuffer* pSourceA EDX, BigBuffer* pSourceB)

checked · by KierTaylor · submitted 2026-11-08

ECX -> [EBP-0x1c] is the destination: it is grown (0x0000bdc8 with ECX's buffer) and each sum word is stored into its +8 data (0x0000a683). EDX -> [EBP-0x20] and [EBP+8] are the two addends (count +4, data +8, base +0x10), added with ADC carry. The only caller, SBigAdd 0x0000a63b, passes ECX=[EBP+8] (its result), EDX=[EBP+0xc], [ESP]=[EBP+0x10] and returns void. Same three buffers as Windows twin 0x00422300 void (pSourceA, pSourceB, pDest), in Mac register order.

Changes 1, applied together

  1. Set prototype mac 0x0000a645

    signatureundefined BigBuffer_Add(void)→void BigBuffer_Add(BigBuffer* pDest, BigBuffer* pSourceA, BigBuffer* pSourceB)
    conventionunknown→__fastcc