# 80×86 Architecture: Windows OMF

Assembler code

```
VIRDEF01:00000020 ; VIRDEF, segment _TEXT
VIRDEF01:00000020 ; NOTE: VIRDEF records cannot be represented in assembly!
VIRDEF01:00000020 ; ===========================================================================
VIRDEF01:00000020
VIRDEF01:00000020 ; Segment type: Pure code
VIRDEF01:00000020 VIRDEF01        segment dword public 'CODE' use32
VIRDEF01:00000020                 assume cs:VIRDEF01
VIRDEF01:00000020                 ;org 20h
VIRDEF01:00000020                 assume es:nothing, ss:nothing, ds:DGROUP, fs:nothing, gs:nothing
VIRDEF01:00000020
VIRDEF01:00000020 ; =============== S U B R O U T I N E =======================================
VIRDEF01:00000020
VIRDEF01:00000020 ; Attributes: bp-based frame
VIRDEF01:00000020
VIRDEF01:00000020                 public lread
VIRDEF01:00000020 lread           proc near
VIRDEF01:00000020
VIRDEF01:00000020 arg_0           = dword ptr  8
VIRDEF01:00000020 arg_4           = dword ptr  0Ch
VIRDEF01:00000020 arg_8           = dword ptr  10h
VIRDEF01:00000020
VIRDEF01:00000020                 push    ebp
VIRDEF01:00000021                 mov     ebp, esp
VIRDEF01:00000023                 push    ebx
VIRDEF01:00000024                 mov     ebx, [ebp+arg_8]
VIRDEF01:00000027                 push    ebx
VIRDEF01:00000028                 push    [ebp+arg_4]
VIRDEF01:0000002B                 push    [ebp+arg_0]
VIRDEF01:0000002E                 call    qlread
VIRDEF01:00000033                 cmp     ebx, eax
VIRDEF01:00000035                 jz      short loc_10072
VIRDEF01:00000037                 push    offset aReadError ; "read error\n"
VIRDEF01:0000003C                 call    @error$qpxce    ; error(char *,...)
VIRDEF01:00000041                 pop     ecx
VIRDEF01:00000042
VIRDEF01:00000042 loc_10072:                              ; CODE XREF: lread+15↑j
VIRDEF01:00000042                 pop     ebx
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hex-rays.com/core/disassembler/disassembly-gallery/80-86-architecture-windows-omf.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
