.L32:
+ mov di, offset _formatted_command
+ push di
+
+ xor al, al
+
+ mov cx, 255
+ rep stosb
+
+ push bx
+
+ call _expand_vars
+ add sp, 4
+
lodsw
+ mov bx, offset _formatted_command
call cs:[si]
+
jmp .L5
.L23:
jmp .L11
+;******************************************************************************
+; @function _get_env
+;******************************************************************************
+_get_env:
+
+ push bp
+ mov bp, sp
+
+ push bx
+ push cx
+ push dx
+ push si
+ push di
+ push es
+
+ xor ax, ax
+
+ mov si, cs:[_vec_env]
+ mov cx, cs:[_vec_env + 4]
+
+ mov es, si
+ xor di, di
+
+.L91:
+
+ and cx, cx
+ jz .L92
+
+ push es
+ mov ax, es:[di]
+
+ mov es, ax
+ push es
+
+ xor bx, bx
+ mov ax, es:[bx]
+
+ push cx
+ push es
+ push ds
+
+ mov cx, ds
+ mov es, cx
+ mov ds, ax
+
+ xor ax, ax
+ push ax
+
+ mov ax, offset _temp
+ push ax
+
+ call _strcpy
+ add sp, 4
+
+ pop ds
+
+ mov ax, ds
+ mov es, ax
+
+ mov ax, word ptr [bp + 4]
+ push ax
+
+ mov ax, offset _temp
+ push ax
+
+ call _strcmp
+ add sp, 4
+
+ pop es
+ pop cx
+
+ and ax, ax
+ jz .L93
+
+ pop ax
+ pop es
+
+ add di, 2
+ dec cx
+
+ jmp .L91
+
+.L93:
+
+ pop ax
+ pop es
+
+ jmp .L90
+
+.L92:
+
+ xor ax, ax
+
+.L90:
+
+ pop es
+ pop di
+ pop si
+ pop dx
+ pop cx
+ pop bx
+ pop bp
+ ret
+
+;******************************************************************************
+; @function _expand_vars
+;******************************************************************************
+_expand_vars:
+
+ push bp
+ mov bp, sp
+
+ push ax
+ push bx
+ push cx
+ push dx
+ push si
+ push di
+
+ mov di, word ptr [bp + 6]
+ mov si, word ptr [bp + 4]
+
+ mov dx, di
+
+.L87:
+
+ cmp byte ptr [si], 0
+ je .L84
+
+ mov cx, di
+ sub cx, dx
+
+ cmp cx, 255
+ jae .L84
+
+ cmp byte ptr [si], '%'
+ jne .L85
+
+ inc si
+
+ cmp byte ptr [si], 0
+ jne .L86
+
+ mov al, '%'
+ stosb
+
+ jmp .L87
+
+.L86:
+
+ cmp byte ptr [si], '%'
+ je .L85
+
+ mov ax, '%'
+ push ax
+
+ push si
+
+ call _strchr
+ add sp, 4
+
+ and ax, ax
+ jnz .L88
+
+ mov al, '%'
+ stosb
+
+ jmp .L87
+
+.L88:
+
+ mov bx, ax
+ mov byte ptr [bx], 0
+
+ push si
+
+ call _get_env
+ add sp, 2
+
+ and ax, ax
+ jz .L89
+
+ push si
+ push ds
+
+ mov ds, ax
+ xor si, si
+
+ mov ax, [si + 2]
+ mov ds, ax
+
+.L94:
+
+ lodsb
+
+ and al, al
+ jz .L95
+
+ stosb
+ jmp .L94
+
+.L95:
+
+ pop ds
+ pop si
+
+.L89:
+
+ mov si, bx
+ inc si
+
+ jmp .L87
+
+.L85:
+
+ movsb
+ jmp .L87
+
+.L84:
+
+ pop di
+ pop si
+ pop dx
+ pop cx
+ pop bx
+ pop ax
+ pop bp
+ ret
+
;******************************************************************************
; @function _format_path
;******************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Data area.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+_formatted_command: db 256 dup (0)
_fn_wild: db "*.*", HEX (00)
_temp: db 257 dup (0)