+ mov eax, 4
+ mov ebx, 1
+ mov ecx, read_buf
+ add ecx, [ebp-CHAR_PTR]
+ mov edx, 1
+ int 0x80
+
+ ; check for newline
+ mov eax, read_buf
+ add eax, [ebp-CHAR_PTR]
+ cmp DWORD [eax], 0x0a
+ je _readLine_exit
+
+ ; check for eof
+ mov eax, read_buf
+ add eax, [ebp-CHAR_PTR]
+ cmp DWORD [eax], 0x05
+ je _readLine_exit
+
+ add DWORD [ebp-CHAR_PTR], 1
+
+ jmp _readLine_loop
+
+ _readLine_exit:
+
+ %undef _FILE_HANDLE
+ %undef CHAR_PTR