diff options
Diffstat (limited to 'main.asm')
-rw-r--r-- | main.asm | 43 |
1 files changed, 43 insertions, 0 deletions
@@ -110,6 +110,49 @@ _main: pop rax lln_free + dll_alloc + push rax + mov rbx, rax + mov r12, 0xDEADBEEF + dll_push rbx, r12 + push rax + mov rbx, [rsp+8] + mov r12, 0xCAFEBABE + dll_push rbx, r12 + push rax + + mov rbx, [rsp+16] + + mov rax, rbx + mov rax, [rax + dll_value] + REGD rax + + mov rax, rbx + dll_seek + mov rax, [rax + dll_value] + REGD rax + + mov rax, rbx + dll_seek + dll_seek + mov rax, [rax + dll_value] + REGD rax + + mov rax, rbx + dll_end + mov rax, [rax + dll_value] + REGD rax + + pop rax + pop rax + pop rax + dll_end +.free_loop: + mov rbx, [rax + dll_prev] + dll_free + mov rax, rbx + cmp rbx, 0 + jne .free_loop exit_prog |