|
楼主 |
发表于 2009-11-2 10:49:34
|
显示全部楼层
seg000:0C80 ; =============== S U B R O U T I N E =======================================
seg000:0C80
seg000:0C80 ; Attributes: bp-based frame
seg000:0C80
seg000:0C80 sub_10C80 proc near ; CODE XREF: seg000:loc_1016Bp
seg000:0C80
seg000:0C80 var_4 = word ptr -4
seg000:0C80 var_2 = word ptr -2
seg000:0C80
seg000:0C80 enter 4, 0
seg000:0C84 mov si, 108Ch
seg000:0C87 mov cx, 4
seg000:0C8A
seg000:0C8A loc_10C8A: ; CODE XREF: sub_10C80+145j
seg000:0C8A push cx
seg000:0C8B push si
seg000:0C8C mov di, 0C274h
seg000:0C8F mov bx, 0C2ECh
seg000:0C92 mov si, 105Fh
seg000:0C95 mov cl, 0Fh
seg000:0C97
seg000:0C97 loc_10C97: ; CODE XREF: sub_10C80+2Cj
seg000:0C97 push cx
seg000:0C98 mov cl, 3
seg000:0C9A
seg000:0C9A loc_10C9A: ; CODE XREF: sub_10C80+25j
seg000:0C9A lodsb
seg000:0C9B cbw
seg000:0C9C stosw
seg000:0C9D fild word ptr [di-2]
seg000:0CA0 fstp dword ptr [bx]
seg000:0CA2 add bx, 4
seg000:0CA5 loop loc_10C9A
seg000:0CA7 pop cx
seg000:0CA8 mov ax, 7F00h
seg000:0CAB stosw
seg000:0CAC loop loc_10C97
seg000:0CAE pop si
seg000:0CAF
seg000:0CAF loc_10CAF: ; CODE XREF: sub_10C80+140j
seg000:0CAF lodsb
seg000:0CB0 cmp al, 0FFh
seg000:0CB2 jz loc_10DC3
seg000:0CB6 mov bh, al
seg000:0CB8 and bx, 7000h
seg000:0CBC add bh, 0Fh
seg000:0CBF mov [bp+var_4], bx
seg000:0CC2 and ax, 0Fh
seg000:0CC5 mov [bp+var_2], ax
seg000:0CC8 xor bx, bx
seg000:0CCA
seg000:0CCA loc_10CCA: ; CODE XREF: sub_10C80+B4j
seg000:0CCA test bl, 4
seg000:0CCD jz short loc_10CD4
seg000:0CCF lodsb
seg000:0CD0 and al, 0Fh
seg000:0CD2 jmp short loc_10CD9
seg000:0CD4 ; ---------------------------------------------------------------------------
seg000:0CD4
seg000:0CD4 loc_10CD4: ; CODE XREF: sub_10C80+4Dj
seg000:0CD4 mov al, [si]
seg000:0CD6 shr al, 4
seg000:0CD9
seg000:0CD9 loc_10CD9: ; CODE XREF: sub_10C80+52j
seg000:0CD9 xor ah, ah
seg000:0CDB dec ax
seg000:0CDC js short loc_10D2E
seg000:0CDE imul di, ds:176Ah, 0Ah
seg000:0CE3 add di, 23ECh
seg000:0CE7 inc word ptr ds:176Ah
seg000:0CEB mov [di+8], ax
seg000:0CEE push bx
seg000:0CEF push si
seg000:0CF0 mov cl, 4
seg000:0CF2
seg000:0CF2 loc_10CF2: ; CODE XREF: sub_10C80+AAj
seg000:0CF2 movsx si, byte ptr [bx+1047h]
seg000:0CF7 add si, 0C274h
seg000:0CFB push di
seg000:0CFC mov di, 176Ch
seg000:0CFF push cx
seg000:0D00 mov cx, ds:1768h
seg000:0D04 xor ax, ax
seg000:0D06 jcxz short loc_10D1E
seg000:0D08
seg000:0D08 loc_10D08: ; CODE XREF: sub_10C80+9Cj
seg000:0D08 mov edx, [si]
seg000:0D0B cmp edx, [di]
seg000:0D0E jnz short loc_10D18
seg000:0D10 mov dx, [si+4]
seg000:0D13 cmp dx, [di+4]
seg000:0D16 jz short loc_10D26
seg000:0D18
seg000:0D18 loc_10D18: ; CODE XREF: sub_10C80+8Ej
seg000:0D18 inc ax
seg000:0D19 add di, 8
seg000:0D1C loop loc_10D08
seg000:0D1E
seg000:0D1E loc_10D1E: ; CODE XREF: sub_10C80+86j
seg000:0D1E movsd
seg000:0D20 movsd
seg000:0D22 inc word ptr ds:1768h
seg000:0D26
seg000:0D26 loc_10D26: ; CODE XREF: sub_10C80+96j
seg000:0D26 pop cx
seg000:0D27 pop di
seg000:0D28 stosw
seg000:0D29 inc bx
seg000:0D2A loop loc_10CF2
seg000:0D2C pop si
seg000:0D2D pop bx
seg000:0D2E
seg000:0D2E loc_10D2E: ; CODE XREF: sub_10C80+5Cj
seg000:0D2E add bx, 4
seg000:0D31 cmp bx, 18h
seg000:0D34 jnz short loc_10CCA
seg000:0D36 imul di, [bp+var_2], 0Ch
seg000:0D3A mov cl, 3
seg000:0D3C mov bx, 0C34Ch
seg000:0D3F
seg000:0D3F loc_10D3F: ; CODE XREF: sub_10C80+CAj
seg000:0D3F fld dword ptr [bx+48h]
seg000:0D42 fadd dword ptr [bx+di]
seg000:0D44 fstp dword ptr [bx+48h]
seg000:0D47 add bx, 4
seg000:0D4A loop loc_10D3F
seg000:0D4C cmp byte ptr [si-4], 0
seg000:0D50 jge short loc_10D77
seg000:0D52 mov bx, 0C2ECh
seg000:0D55 mov cl, 0Eh
seg000:0D57
seg000:0D57 loc_10D57: ; CODE XREF: sub_10C80+F4j
seg000:0D57 pusha
seg000:0D58 mov cl, 3
seg000:0D5A mov dl, [si]
seg000:0D5C
seg000:0D5C loc_10D5C: ; CODE XREF: sub_10C80:loc_10D6Aj
seg000:0D5C shr dl, 1
seg000:0D5E jnb short loc_10D68
seg000:0D60 mov ah, [si]
seg000:0D62 and ax, 0F000h
seg000:0D65 push ax
seg000:0D66 jmp short loc_10D6A
seg000:0D68 ; ---------------------------------------------------------------------------
seg000:0D68
seg000:0D68 loc_10D68: ; CODE XREF: sub_10C80+DEj
seg000:0D68 push 0
seg000:0D6A
seg000:0D6A loc_10D6A: ; CODE XREF: sub_10C80+E6j
seg000:0D6A loop loc_10D5C
seg000:0D6C push bx
seg000:0D6D call sub_10BD0
seg000:0D70 popa
seg000:0D71 add bx, 0Ch
seg000:0D74 loop loc_10D57
seg000:0D76 inc si
seg000:0D77
seg000:0D77 loc_10D77: ; CODE XREF: sub_10C80+D0j
seg000:0D77 mov bx, [bp+var_2]
seg000:0D7A shl bx, 2
seg000:0D7D mov cl, 4
seg000:0D7F
seg000:0D7F loc_10D7F: ; CODE XREF: sub_10C80+13Ej
seg000:0D7F pusha
seg000:0D80 movsx si, byte ptr [bx+1047h]
seg000:0D85 mov ax, si
seg000:0D87 add si, 0C274h
seg000:0D8B xor bl, 7
seg000:0D8E movsx di, byte ptr [bx+1047h]
seg000:0D93 add di, 0C274h
seg000:0D97 push si
seg000:0D98 movsd
seg000:0D9A movsd
seg000:0D9C pop si
seg000:0D9D mov bx, ax
seg000:0D9F shr bx, 1
seg000:0DA1 add bx, ax
seg000:0DA3 mov di, 0C2ECh
seg000:0DA6 mov cl, 3
seg000:0DA8
seg000:0DA8 loc_10DA8: ; CODE XREF: sub_10C80+135j
seg000:0DA8 fld dword ptr [bx+di]
seg000:0DAA fadd dword ptr [di+0A8h]
seg000:0DAE fistp word ptr [si]
seg000:0DB0 add di, 4
seg000:0DB3 inc si
seg000:0DB4 inc si
seg000:0DB5 loop loc_10DA8
seg000:0DB7 mov ax, [bp+var_4]
seg000:0DBA mov [si], ax
seg000:0DBC popa
seg000:0DBD inc bx
seg000:0DBE loop loc_10D7F
seg000:0DC0 jmp loc_10CAF
seg000:0DC3 ; ---------------------------------------------------------------------------
seg000:0DC3
seg000:0DC3 loc_10DC3: ; CODE XREF: sub_10C80+32j
seg000:0DC3 pop cx
seg000:0DC4 dec cx
seg000:0DC5 jnz loc_10C8A
seg000:0DC9 leave
seg000:0DCA retn
seg000:0DCA sub_10C80 endp ; sp-analysis failed
seg000:0DCA
seg000:0DCA ; --------------------------------------------------------------------------- |
|