; void __cdecl _searchstr(const char *file, const char *ipath, char *pathname) public __searchstr __searchstr proc @@temp = dword ptr -4 @@file = dword ptr 6 @@ipath = dword ptr 0Ah @@pathname = dword ptr 0Eh push bp mov bp, sp sub sp, 4 push si push di mov ax, 80 push ax push word ptr [bp+@@pathname+2] push word ptr [bp+@@pathname] xor ax, ax push ax nopcall __getdcwd add sp, 8 or ax, dx jnz short @@loc_10045 xor dx, dx jmp short @@loc_10054 @@loc_10045: push word ptr [bp+@@pathname+2] push word ptr [bp+@@pathname] nopcall _strlen pop cx pop cx mov dx, ax @@loc_10054: les bx, [bp+@@pathname] add bx, dx mov byte ptr es:[bx], 0 or dx, dx jz short @@loc_100A9 mov bx, dx add bx, word ptr [bp+@@pathname] mov bl, es:[bx-1] mov al, bl cmp al, '\' jz short @@loc_1007A cmp bl, '/' jz short @@loc_1007A cmp bl, ':' jnz short @@loc_10096 @@loc_1007A: mov ax, word ptr [bp+@@pathname] add ax, dx dec ax push word ptr [bp+@@pathname+2] push ax push word ptr [bp+@@pathname+2] push word ptr [bp+@@pathname] nopcall ___path_issbcs add sp, 8 or ax, ax jnz short @@loc_100A9 @@loc_10096: push ds mov ax, offset srchstr_backslash push ax push word ptr [bp+@@pathname+2] push word ptr [bp+@@pathname] nopcall _strcat add sp, 8 @@loc_100A9: push word ptr [bp+@@file+2] push word ptr [bp+@@file] push word ptr [bp+@@pathname+2] push word ptr [bp+@@pathname] nopcall _strcat add sp, 8 xor ax, ax push ax push word ptr [bp+@@pathname+2] push word ptr [bp+@@pathname] nopcall __access add sp, 6 or ax, ax jz short @@loc_1011D les bx, [bp+@@ipath] cmp byte ptr es:[bx], 0 jnz short @@loc_100E4 les bx, [bp+@@pathname] mov byte ptr es:[bx], 0 jmp short @@loc_1015C @@loc_100E4: xor dx, dx jmp short @@loc_100FC @@loc_100E8: les bx, [bp+@@pathname] add bx, dx push es les si, [bp+@@ipath] mov al, es:[si] pop es mov es:[bx], al inc word ptr [bp+@@ipath] inc dx @@loc_100FC: les bx, [bp+@@ipath] cmp byte ptr es:[bx], ';' jz short @@loc_1010B cmp byte ptr es:[bx], 0 jnz short @@loc_100E8 @@loc_1010B: les bx, [bp+@@ipath] cmp byte ptr es:[bx], 0 jnz short @@loc_10117 jmp @@loc_10054 @@loc_10117: inc word ptr [bp+@@ipath] jmp @@loc_10054 @@loc_1011D: mov ax, 80 push ax push word ptr [bp+@@pathname+2] push word ptr [bp+@@pathname] xor ax, ax push ax push ax nopcall __fullpath add sp, 0Ah mov word ptr [bp+@@temp+2], dx mov word ptr [bp+@@temp], ax or ax, dx jz short @@loc_1015C push word ptr [bp+@@temp+2] push word ptr [bp+@@temp] push word ptr [bp+@@pathname+2] push word ptr [bp+@@pathname] nopcall _strcpy push word ptr [bp+@@temp+2] push word ptr [bp+@@temp] nopcall _free add sp, 0Ch @@loc_1015C: pop di pop si mov sp, bp pop bp ret __searchstr endp