;
; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
; º This file is generated by Interactive Disassembler (IDA)        º
; º Copyright (c) 1997 by DataRescue sprl, <ida@datarescue.com>     º
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼
;
;


seg000:0594
seg000:0594 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
seg000:0594
seg000:0594 ;		    S u	b r o u	t i n e
seg000:0594 ; Attributes: bp-based frame
seg000:0594
seg000:0594 OleOpenDir	    proc near		    ; CODE XREF: OleInit+C9p
seg000:0594
seg000:0594 arg_0	    = word ptr	4
seg000:0594
seg000:0594		    push    bp
seg000:0595		    mov	    bp,	sp
seg000:0597		    push    di
seg000:0598		    push    si
seg000:0599		    call    GetFreeHandle
seg000:059C		    mov	    si,	ax
seg000:059E		    cmp	    si,	0FFFFh
seg000:05A1		    jz	    loc_0_5F8
seg000:05A3		    mov	    di,	[bp+arg_0]
seg000:05A6		    push    di
seg000:05A7		    call    ReadDirEntry
seg000:05AA		    add	    sp,	2
seg000:05AD		    or	    ax,	ax
seg000:05AF		    jz	    loc_0_5B8
seg000:05B1
seg000:05B1 loc_0_5B1:				    ; CODE XREF: OleOpenDir+29j
seg000:05B1		    mov	    ax,	0FFFFh
seg000:05B4		    pop	    si
seg000:05B5		    pop	    di
seg000:05B6		    leave
seg000:05B7		    retn
seg000:05B8 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

seg000:05B8
seg000:05B8 loc_0_5B8:				    ; CODE XREF: OleOpenDir+1Bj
seg000:05B8		    cmp	    byte_317_205E, 0
seg000:05BD		    jz	    loc_0_5B1
seg000:05BF		    mov	    ax,	word_317_2090
seg000:05C2		    mov	    dx,	word_317_2092
seg000:05C6		    imul    bx,	si, 12h


seg000:05C9		    mov	    word ptr unk_317_22B2[bx], ax
seg000:05CD		    mov	    word ptr unk_317_22B4[bx], dx
seg000:05D1		    mov	    word ptr unk_317_22BA[bx], 0
seg000:05D7		    mov	    word ptr unk_317_22B6[bx], ax
seg000:05DB		    mov	    word ptr unk_317_22B8[bx], dx
seg000:05DF		    mov	    word ptr unk_317_22BC[bx], 1
seg000:05E5		    mov	    word ptr unk_317_22BE[bx], di
seg000:05E9		    mov	    ax,	word_317_2094
seg000:05EC		    mov	    dx,	word_317_2096
seg000:05F0		    mov	    word ptr unk_317_22C0[bx], ax
seg000:05F4		    mov	    word ptr unk_317_22C2[bx], dx

seg000:05F8
seg000:05F8 loc_0_5F8:				    ; CODE XREF: OleOpenDir+Dj
seg000:05F8		    mov	    ax,	si
seg000:05FA		    pop	    si
seg000:05FB		    pop	    di
seg000:05FC		    leave
seg000:05FD		    retn
seg000:05FD OleOpenDir	    endp
seg000:05FD
;
; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
; º This file is generated by Interactive Disassembler (IDA)        º
; º Copyright (c) 1997 by DataRescue sprl, <ida@datarescue.com>     º
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼
;
;


seg000:0072
seg000:0072 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
seg000:0072
seg000:0072 ;		    S u	b r o u	t i n e
seg000:0072 ; Attributes: bp-based frame
seg000:0072
seg000:0072 LoadFoF	    proc near		    ; CODE XREF: OleInit+4Ep
seg000:0072
seg000:0072 var_8	    = word ptr -8
seg000:0072 var_6	    = word ptr -6
seg000:0072 var_4	    = word ptr -4
seg000:0072 var_2	    = word ptr -2
seg000:0072
seg000:0072		    enter   8, 0


seg000:0076		    push    di
seg000:0077		    push    si
seg000:0078		    xor	    di,	di
seg000:007A		    mov	    si,	offset unk_317_C1C
seg000:007D		    mov	    ax,	word_317_A60
seg000:0080		    mov	    dx,	word_317_A62
seg000:0084		    mov	    [bp+var_4],	ax
seg000:0087		    mov	    [bp+var_2],	dx
seg000:008A		    sub	    ax,	ax
seg000:008C		    mov	    [bp+var_6],	ax
seg000:008F		    mov	    [bp+var_8],	ax
seg000:0092		    cmp	    word_317_A66, ax
seg000:0096		    jnz	    loc_0_9F
seg000:0098		    cmp	    word_317_A64, 8
seg000:009D		    jbe	    loc_0_A8

seg000:009F
seg000:009F loc_0_9F:				    ; CODE XREF: LoadFoF+24j
seg000:009F		    mov	    di,	1
seg000:00A2		    mov	    ax,	di
seg000:00A4		    pop	    si
seg000:00A5		    pop	    di
seg000:00A6		    leave
seg000:00A7		    retn
seg000:00A8 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

seg000:00A8
seg000:00A8 loc_0_A8:				    ; CODE XREF: LoadFoF+2Bj
seg000:00A8		    cmp	    [bp+var_4],	0FFFEh
seg000:00AC		    jnz	    loc_0_B4
seg000:00AE		    cmp	    [bp+var_2],	0FFFFh
seg000:00B2		    jz	    loc_0_100
seg000:00B4
seg000:00B4 loc_0_B4:				    ; CODE XREF: LoadFoF+3Aj
seg000:00B4					    ; LoadFoF+87j LoadFoF+8Cj
seg000:00B4		    mov	    ax,	word_317_A64
seg000:00B7		    mov	    dx,	word_317_A66
seg000:00BB		    cmp	    [bp+var_6],	dx
seg000:00BE		    ja	    loc_0_100
seg000:00C0		    jb	    loc_0_C7
seg000:00C2		    cmp	    [bp+var_8],	ax
seg000:00C5		    jnb	    loc_0_100

seg000:00C7
seg000:00C7 loc_0_C7:				    ; CODE XREF: LoadFoF+4Ej
seg000:00C7		    push    si
seg000:00C8		    push    [bp+var_2]
seg000:00CB		    push    [bp+var_4]
seg000:00CE		    call    ReadCluster
seg000:00D1		    add	    sp,	6
seg000:00D4		    sub	    ax,	200h
seg000:00D7		    add	    di,	ax
seg000:00D9		    mov	    ax,	[si+1FCh]
seg000:00DD		    mov	    dx,	[si+1FEh]
seg000:00E1		    mov	    [bp+var_4],	ax
seg000:00E4		    mov	    [bp+var_2],	dx
seg000:00E7		    lea	    ax,	[si+1FCh]
seg000:00EB		    mov	    si,	ax
seg000:00ED		    add	    [bp+var_8],	1
seg000:00F1		    adc	    [bp+var_6],	0
seg000:00F5		    cmp	    [bp+var_4],	0FFFEh
seg000:00F9		    jnz	    loc_0_B4
seg000:00FB		    cmp	    dx,	0FFFFh
seg000:00FE		    jnz	    loc_0_B4
seg000:0100
seg000:0100 loc_0_100:				    ; CODE XREF: LoadFoF+40j
seg000:0100					    ; LoadFoF+4Cj LoadFoF+53j
seg000:0100		    mov	    ax,	di
seg000:0102		    pop	    si
seg000:0103		    pop	    di
seg000:0104		    leave

seg000:0105		    retn
seg000:0105 LoadFoF	    endp
seg000:0105
;
; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
; º This file is generated by Interactive Disassembler (IDA)        º
; º Copyright (c) 1997 by DataRescue sprl, <ida@datarescue.com>     º
; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼
;
;


seg000:0106
seg000:0106 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
seg000:0106
seg000:0106 ;		    S u	b r o u	t i n e
seg000:0106 ; Attributes: bp-based frame
seg000:0106
seg000:0106 NextCluster	    proc near		    ; CODE XREF: OleSeek+7Bp
seg000:0106					    ; OleIO+DCp OleIO+14Fp
seg000:0106
seg000:0106 var_4	    = word ptr -4
seg000:0106 var_2	    = word ptr -2
seg000:0106 arg_0	    = word ptr	4
seg000:0106 arg_2	    = word ptr	6
seg000:0106 arg_4	    = word ptr	8
seg000:0106
seg000:0106		    enter   4, 0


seg000:010A		    mov	    ax,	[bp+arg_2]
seg000:010D		    mov	    dx,	[bp+arg_4]
seg000:0110		    shr	    dx,	1
seg000:0112		    rcr	    ax,	1
seg000:0114		    shr	    dx,	1
seg000:0116		    rcr	    ax,	1
seg000:0118		    shr	    dx,	1
seg000:011A		    rcr	    ax,	1
seg000:011C		    shr	    dx,	1
seg000:011E		    rcr	    ax,	1
seg000:0120		    shr	    dx,	1
seg000:0122		    rcr	    ax,	1
seg000:0124		    shr	    dx,	1
seg000:0126		    rcr	    ax,	1
seg000:0128		    shr	    dx,	1
seg000:012A		    rcr	    ax,	1
seg000:012C		    mov	    [bp+var_4],	ax
seg000:012F		    mov	    [bp+var_2],	dx
seg000:0132		    cmp	    [bp+arg_0],	0
seg000:0136		    jz	    loc_0_1AC




seg000:0138		    mov	    ax,	word_317_22A6
seg000:013B		    mov	    dx,	word_317_22A8
seg000:013F		    cmp	    [bp+arg_4],	dx
seg000:0142		    jb	    loc_0_151
seg000:0144		    jbe	    loc_0_149
seg000:0146		    jmp	    loc_0_1FF
seg000:0149 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

seg000:0149
seg000:0149 loc_0_149:				    ; CODE XREF: NextCluster+3Ej
seg000:0149		    cmp	    [bp+arg_2],	ax
seg000:014C		    jbe	    loc_0_151
seg000:014E		    jmp	    loc_0_1FF
seg000:0151 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
seg000:0151
seg000:0151 loc_0_151:				    ; CODE XREF: NextCluster+3Cj
seg000:0151					    ; NextCluster+46j
seg000:0151		    mov	    ax,	word_317_22A2
seg000:0154		    mov	    dx,	word_317_22A4
seg000:0158		    cmp	    [bp+var_4],	ax
seg000:015B		    jnz	    loc_0_162
seg000:015D		    cmp	    [bp+var_2],	dx
seg000:0160		    jz	    loc_0_199

seg000:0162
seg000:0162 loc_0_162:				    ; CODE XREF: NextCluster+55j
seg000:0162		    mov	    ax,	[bp+var_4]
seg000:0165		    mov	    dx,	[bp+var_2]
seg000:0168		    mov	    word_317_22A2, ax
seg000:016B		    mov	    word_317_22A4, dx
seg000:016F		    mov	    dh,	dl
seg000:0171		    mov	    dl,	ah
seg000:0173		    mov	    ah,	al
seg000:0175		    sub	    al,	al
seg000:0177		    add	    ax,	ax
seg000:0179		    adc	    dx,	dx
seg000:017B		    push    dx
seg000:017C		    push    ax
seg000:017D		    push    word_317_22AE
seg000:0181		    call    OleSeek
seg000:0184		    add	    sp,	6
seg000:0187		    push    200h
seg000:018A		    push    offset unk_317_1E1C
seg000:018D		    push    word_317_22AE
seg000:0191		    push    0


seg000:0193		    call    OleIO
seg000:0196		    add	    sp,	8
seg000:0199
seg000:0199 loc_0_199:				    ; CODE XREF: NextCluster+5Aj
seg000:0199		    mov	    bl,	byte ptr [bp+arg_2]
seg000:019C		    and	    bx,	7Fh
seg000:019F		    shl	    bx,	2

seg000:01A2		    mov	    ax,	word ptr unk_317_1E1C[bx]
seg000:01A6		    mov	    dx,	word ptr unk_317_1E1E[bx]
seg000:01AA		    jmp	    short loc_0_1F9
seg000:01AC ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
seg000:01AC
seg000:01AC loc_0_1AC:				    ; CODE XREF: NextCluster+30j
seg000:01AC		    mov	    ax,	word_317_22AA
seg000:01AF		    mov	    dx,	word_317_22AC
seg000:01B3		    cmp	    [bp+arg_4],	dx
seg000:01B6		    ja	    loc_0_1FF
seg000:01B8		    jb	    loc_0_1BF
seg000:01BA		    cmp	    [bp+arg_2],	ax
seg000:01BD		    jnb	    loc_0_1FF

seg000:01BF
seg000:01BF loc_0_1BF:				    ; CODE XREF: NextCluster+B2j
seg000:01BF		    mov	    bx,	[bp+var_4]
seg000:01C2		    shl	    bx,	2

seg000:01C5		    mov	    ax,	word ptr unk_317_A68[bx]
seg000:01C9		    mov	    dx,	word ptr unk_317_A6A[bx]
seg000:01CD		    cmp	    ax,	word_317_229C
seg000:01D1		    jnz	    loc_0_1D9
seg000:01D3		    cmp	    dx,	word_317_229E
seg000:01D7		    jz	    loc_0_1E8

seg000:01D9
seg000:01D9 loc_0_1D9:				    ; CODE XREF: NextCluster+CBj
seg000:01D9		    mov	    word_317_229C, ax
seg000:01DC		    mov	    word_317_229E, dx
seg000:01E0		    push    offset unk_317_1C1C

seg000:01E3		    push    dx
seg000:01E4		    push    ax
seg000:01E5		    call    ReadCluster
seg000:01E8
seg000:01E8 loc_0_1E8:				    ; CODE XREF: NextCluster+D1j
seg000:01E8		    mov	    bl,	byte ptr [bp+arg_2]
seg000:01EB		    and	    bx,	7Fh
seg000:01EE		    shl	    bx,	2

seg000:01F1		    mov	    ax,	word ptr unk_317_1C1C[bx]
seg000:01F5		    mov	    dx,	word ptr unk_317_1C1E[bx]

seg000:01F9
seg000:01F9 loc_0_1F9:				    ; CODE XREF: NextCluster+A4j
seg000:01F9		    mov	    [bp+arg_2],	ax
seg000:01FC		    mov	    [bp+arg_4],	dx
seg000:01FF
seg000:01FF loc_0_1FF:				    ; CODE XREF: NextCluster+40j
seg000:01FF					    ; NextCluster+48j
seg000:01FF					    ; NextCluster+B0j
seg000:01FF					    ; NextCluster+B7j
seg000:01FF		    mov	    ax,	[bp+arg_2]
seg000:0202		    mov	    dx,	[bp+arg_4]
seg000:0205		    leave

seg000:0206		    retn
seg000:0206 NextCluster	    endp
seg000:0206
