;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH WORK_FIND_STR HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
WORK_FIND_STR PROC
LOCAL TMP:DWORD
PUSHA
    ;MOV ???,DWORD PTR [ESP+32+08+04+00] ;4 - LEN OF SECOND STRING  WITCH FIND
    ;MOV ???,DWORD PTR [ESP+32+08+04+04] ;3 - ADDRESS OF SECOND STRING  WITCH FIND
    ;MOV ???,DWORD PTR [ESP+32+08+04+08] ;2 - LEN OF FIRST STRING
    ;MOV ???,DWORD PTR [ESP+32+08+04+12] ;1 - ADDRESS OF FIRST STRING
CMP DWORD PTR [ESP+32+08+04+12],0
JE WORK_FIND_STR_EXIT_BAD_1
CMP DWORD PTR [ESP+32+08+04+08],0
JE WORK_FIND_STR_EXIT_BAD_1
CMP DWORD PTR [ESP+32+08+04+04],0
JE WORK_FIND_STR_EXIT_BAD_1
CMP DWORD PTR [ESP+32+08+04+00],0
JE WORK_FIND_STR_EXIT_BAD_1

MOV ESI,DWORD PTR [ESP+32+08+04+12] ;1 - ADDRESS OF FIRST STRING
MOV EDI,DWORD PTR [ESP+32+08+04+04] ;3 - ADDRESS OF SECOND STRING
MOV ECX,DWORD PTR [ESP+32+08+04+08] ;2 - LEN OF FIRST STRING
ADD ECX,ESI
DEC ECX
XOR EDX,EDX
WORK_FIND_STR_AG:
    MOV EBX,EDI
    ADD EBX,EDX
    MOV AL,BYTE PTR [ESI]
    MOV AH,BYTE PTR [EBX]
    CMP AL,AH
    JNE WORK_FIND_STR_NEXT_0
        INC EDX
        CMP EDX,DWORD PTR [ESP+32+08+04+00] ;4 - LEN OF SECOND STRING
            JE WORK_FIND_STR_EXIT_GOOD_1
        JMP WORK_FIND_STR_NEXT_1
WORK_FIND_STR_NEXT_0:
    CMP EDX,0
    JE WORK_FIND_STR_NEXT_1
        SUB ESI,EDX
        XOR EDX,EDX
WORK_FIND_STR_NEXT_1:
    INC ESI
    CMP ESI,ECX
    JNG WORK_FIND_STR_AG
JMP WORK_FIND_STR_EXIT_BAD_1 
;--------------------------------------EXIT PLACE-----------------------------
WORK_FIND_STR_EXIT_GOOD_1:
SUB ESI,EDX
INC ESI
MOV TMP,ESI
POPA
MOV EAX,TMP
RET 16
WORK_FIND_STR_EXIT_BAD_1:
POPA
XOR EAX,EAX
DEC EAX
RET 16
WORK_FIND_STR ENDP
