memset32:
        mov   ecx, ebp
        mov   edx, edi
        sub   edx, 4 * 4
        mov   ebp, edx
        add   edi, 4 * 6
        add   edx, 4 * 5
        mov   [edx], ecx

; n_words LOCAL_VAR 1
; (stack-ref-n 3)
        mov   ecx, [ebp + 12]
; mem_offset LOCAL_VAR 1
; (stack-ref-n 1)
        mov   ebx, [ebp + 4]
; mem LOCAL_VAR_ASSIGNMENT 1
; (stack-ref-n 0)
        mov   eax, [ebp]
; (add)
        add   ebx, eax
        shl   ebx, 2 ; ebx = ebx * 4
        mov   edi, esi
        add   edi, ebx
; val LOCAL_VAR 1
; (stack-ref-n 2)
        mov   eax, [ebp + 8]

        rep   stosd

; (proc-end 5)
        mov   ecx, ebp
        mov   edi, ecx
        add   ecx, 4 * 5
        mov   edx, [ecx]
        mov   ebp, edx

; (return)
        ret   
