All pastes #575232 Raw Edit

Someone

public text v1 · immutable
·published 2007-06-18 22:31 UTC
rendered paste body
Thanks to Tom (AntiRush) for a lot of help on this one.

004C7FE0  /$ 66:8B4424 08   MOV AX,WORD PTR SS:[ESP+8]
004C7FE5  |. 53             PUSH EBX								; Preserves EBX
004C7FE6  |. 33DB           XOR EBX,EBX


004C7FE8  |. 885E 02        MOV BYTE PTR DS:[ESI+2],BL
004C7FEB  |. 885E 03        MOV BYTE PTR DS:[ESI+3],BL
004C7FEE  |. 895E 04        MOV DWORD PTR DS:[ESI+4],EBX			; Empty?
004C7FF1  |. 66:895E 08     MOV WORD PTR DS:[ESI+8],BX
004C7FF5  |. 66:C746 0A 010>MOV WORD PTR DS:[ESI+A],1				; Set to a constant, can I assume it's a flag of some kind?
004C7FFB  |. 66:891E        MOV WORD PTR DS:[ESI],BX
004C7FFE  |. 66:8946 50     MOV WORD PTR DS:[ESI+50],AX

struct UNKNOWN
{
	UNKNOWN Member1;
	UNKNOWN Member2;
	UNKNOWN Member3;
	UNKNOWN Member4;
	UNKNOWN Member5;
	UNKNOWN Member6;
	UNKNOWN Member7;
}


004C8002  |. 55             PUSH EBP
004C8003  |. 8B6C24 0C      MOV EBP,DWORD PTR SS:[ESP+C]
004C8007  |. 895E 0C        MOV DWORD PTR DS:[ESI+C],EBX
004C800A  |. 895E 54        MOV DWORD PTR DS:[ESI+54],EBX
004C800D  |. 885E 58        MOV BYTE PTR DS:[ESI+58],BL
004C8010  |. 8A11           MOV DL,BYTE PTR DS:[ECX]
004C8012  |. 80FA 01        CMP DL,1
004C8015  |. 8D46 10        LEA EAX,DWORD PTR DS:[ESI+10]
004C8018  |. 57             PUSH EDI
004C8019  |. 8D78 1E        LEA EDI,DWORD PTR DS:[EAX+1E]
004C801C  |. 75 0E          JNZ SHORT magic1.004C802C
004C801E  |. 6A 01          PUSH 1                                   ; /Arg3 = 00000001
004C8020  |. 57             PUSH EDI                                 ; |Arg2
004C8021  |. 50             PUSH EAX                                 ; |Arg1
004C8022  |. E8 D9720100    CALL magic1.004DF300                     ; \magic1.004DF300
004C8027  |. 83C4 0C        ADD ESP,0C
004C802A  |. EB 18          JMP SHORT magic1.004C8044
004C802C  |> 3AD3           CMP DL,BL
004C802E  |. 74 12          JE SHORT magic1.004C8042
004C8030  |. 4F             DEC EDI
004C8031  |. 2BC8           SUB ECX,EAX
004C8033  |> 3BC7           /CMP EAX,EDI
004C8035  |. 74 0B          |JE SHORT magic1.004C8042
004C8037  |. 8810           |MOV BYTE PTR DS:[EAX],DL
004C8039  |. 8A5401 01      |MOV DL,BYTE PTR DS:[ECX+EAX+1]
004C803D  |. 40             |INC EAX
004C803E  |. 3AD3           |CMP DL,BL
004C8040  |.^75 F1          \JNZ SHORT magic1.004C8033
004C8042  |> 8818           MOV BYTE PTR DS:[EAX],BL
004C8044  |> 885E 2D        MOV BYTE PTR DS:[ESI+2D],BL
004C8047  |. 8A4D 00        MOV CL,BYTE PTR SS:[EBP]
004C804A  |. 80F9 01        CMP CL,1
004C804D  |. 8D46 2E        LEA EAX,DWORD PTR DS:[ESI+2E]
004C8050  |. 8D50 21        LEA EDX,DWORD PTR DS:[EAX+21]
004C8053  |. 75 19          JNZ SHORT magic1.004C806E
004C8055  |. 6A 01          PUSH 1                                   ; /Arg3 = 00000001
004C8057  |. 52             PUSH EDX                                 ; |Arg2
004C8058  |. 50             PUSH EAX                                 ; |Arg1
004C8059  |. 8BCD           MOV ECX,EBP                              ; |
004C805B  |. E8 A0720100    CALL magic1.004DF300                     ; \magic1.004DF300
004C8060  |. 83C4 0C        ADD ESP,0C
004C8063  |. 5F             POP EDI
004C8064  |. 5D             POP EBP
004C8065  |. 885E 4E        MOV BYTE PTR DS:[ESI+4E],BL
004C8068  |. 8BC6           MOV EAX,ESI
004C806A  |. 5B             POP EBX
004C806B  |. C2 0800        RETN 8
004C806E  |> 3ACB           CMP CL,BL
004C8070  |. 74 1D          JE SHORT magic1.004C808F
004C8072  |. 8D7A FF        LEA EDI,DWORD PTR DS:[EDX-1]
004C8075  |. 8BD5           MOV EDX,EBP
004C8077  |. 2BD0           SUB EDX,EAX
004C8079  |. 8DA424 0000000>LEA ESP,DWORD PTR SS:[ESP]
004C8080  |> 3BC7           /CMP EAX,EDI
004C8082  |. 74 0B          |JE SHORT magic1.004C808F
004C8084  |. 8808           |MOV BYTE PTR DS:[EAX],CL
004C8086  |. 8A4C02 01      |MOV CL,BYTE PTR DS:[EDX+EAX+1]
004C808A  |. 40             |INC EAX
004C808B  |. 3ACB           |CMP CL,BL
004C808D  |.^75 F1          \JNZ SHORT magic1.004C8080
004C808F  |> 5F             POP EDI
004C8090  |. 8818           MOV BYTE PTR DS:[EAX],BL
004C8092  |. 5D             POP EBP
004C8093  |. 885E 4E        MOV BYTE PTR DS:[ESI+4E],BL
004C8096  |. 8BC6           MOV EAX,ESI
004C8098  |. 5B             POP EBX
004C8099  \. C2 0800        RETN 8