All pastes #361787 Raw Edit

CRC?

public text v1 · immutable
·published 2007-02-18 10:36 UTC
rendered paste body
 sub_4C4D60      proc near               ; CODE XREF: sub_4C5970+5Ap
.text:004C4D60                                         ; sub_4C5970+9Ap ...
.text:004C4D60
.text:004C4D60 arg_0           = dword ptr  4
.text:004C4D60 arg_4           = dword ptr  8
.text:004C4D60 arg_8           = dword ptr  0Ch
.text:004C4D60 arg_C           = dword ptr  10h
.text:004C4D60 arg_10          = dword ptr  14h
.text:004C4D60
.text:004C4D60                 mov     eax, [esp+arg_8]
.text:004C4D64                 push    ebx
.text:004C4D65                 mov     ebx, [esp+4+arg_4]
.text:004C4D69                 push    ebp
.text:004C4D6A                 mov     ebp, [esp+8+arg_C]
.text:004C4D6E                 push    esi
.text:004C4D6F                 mov     esi, eax
.text:004C4D71                 shr     esi, 2
.text:004C4D74                 xor     ecx, ecx
.text:004C4D76                 test    esi, esi
.text:004C4D78                 push    edi
.text:004C4D79                 mov     edi, [esp+10h+arg_0]
.text:004C4D7D                 jle     short loc_4C4DA2
.text:004C4D7F                 nop
.text:004C4D80
.text:004C4D80 loc_4C4D80:                             ; CODE XREF: sub_4C4D60+3Cj
.text:004C4D80                 mov     eax, ecx
.text:004C4D82                 cdq
.text:004C4D83                 idiv    [esp+10h+arg_10]
.text:004C4D87                 add     ecx, 1
.text:004C4D8A                 add     edi, 4
.text:004C4D8D                 add     ebx, 4
.text:004C4D90                 mov     eax, [ebp+edx*4+0]
.text:004C4D94                 xor     eax, [edi-4]
.text:004C4D97                 cmp     ecx, esi
.text:004C4D99                 mov     [ebx-4], eax
.text:004C4D9C                 jl      short loc_4C4D80
.text:004C4D9E                 mov     eax, [esp+10h+arg_8]
.text:004C4DA2
.text:004C4DA2 loc_4C4DA2:                             ; CODE XREF: sub_4C4D60+1Dj
.text:004C4DA2                 and     eax, 3
.text:004C4DA5                 mov     esi, eax
.text:004C4DA7                 jz      short loc_4C4DF4
.text:004C4DA9                 mov     eax, ecx
.text:004C4DAB                 cdq
.text:004C4DAC                 idiv    [esp+10h+arg_10]
.text:004C4DB0                 mov     eax, esi
.text:004C4DB2                 sub     eax, 1
.text:004C4DB5                 mov     edx, [ebp+edx*4+0]
.text:004C4DB9                 jz      short loc_4C4DEE
.text:004C4DBB                 sub     eax, 1
.text:004C4DBE                 jz      short loc_4C4DDE
.text:004C4DC0                 sub     eax, 1
.text:004C4DC3                 jnz     short loc_4C4DF4
.text:004C4DC5                 mov     cx, [edi]
.text:004C4DC8                 xor     cx, dx
.text:004C4DCB                 mov     [ebx], cx
.text:004C4DCE                 shr     edx, 10h
.text:004C4DD1                 xor     dl, [edi+2]
.text:004C4DD4                 pop     edi
.text:004C4DD5                 pop     esi
.text:004C4DD6                 pop     ebp
.text:004C4DD7                 mov     [ebx+2], dl
.text:004C4DDA                 pop     ebx
.text:004C4DDB                 retn    14h
.text:004C4DDE ; ---------------------------------------------------------------------------
.text:004C4DDE
.text:004C4DDE loc_4C4DDE:                             ; CODE XREF: sub_4C4D60+5Ej
.text:004C4DDE                 mov     ax, [edi]
.text:004C4DE1                 pop     edi
.text:004C4DE2                 pop     esi
.text:004C4DE3                 xor     ax, dx
.text:004C4DE6                 pop     ebp
.text:004C4DE7                 mov     [ebx], ax
.text:004C4DEA                 pop     ebx
.text:004C4DEB                 retn    14h
.text:004C4DEE ; ---------------------------------------------------------------------------
.text:004C4DEE
.text:004C4DEE loc_4C4DEE:                             ; CODE XREF: sub_4C4D60+59j
.text:004C4DEE                 mov     cl, [edi]
.text:004C4DF0                 xor     cl, dl
.text:004C4DF2                 mov     [ebx], cl
.text:004C4DF4
.text:004C4DF4 loc_4C4DF4:                             ; CODE XREF: sub_4C4D60+47j
.text:004C4DF4                                         ; sub_4C4D60+63j
.text:004C4DF4                 pop     edi
.text:004C4DF5                 pop     esi
.text:004C4DF6                 pop     ebp
.text:004C4DF7                 pop     ebx
.text:004C4DF8                 retn    14h
.text:004C4DF8 sub_4C4D60      endp
.text:004C4DF8
.text:004C4DF8 ; ---------------------------------------------------------------------------
.text:004C4DFB                 align 10h
.text:004C4E00
.text:004C4E00 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:004C4E00
.text:004C4E00
.text:004C4E00 sub_4C4E00      proc near               ; CODE XREF: sub_4C7D30+CDp
.text:004C4E00
.text:004C4E00 arg_0           = dword ptr  4
.text:004C4E00
.text:004C4E00                 mov     ecx, [esp+arg_0]
.text:004C4E04                 mov     eax, [esp+arg_0]
.text:004C4E08                 push    ebx
.text:004C4E09                 push    ebp
.text:004C4E0A                 push    esi
.text:004C4E0B                 push    edi
.text:004C4E0C                 xor     esi, esi
.text:004C4E0E                 xor     edi, edi
.text:004C4E10                 mov     ebp, 0FFh
.text:004C4E15
.text:004C4E15 loc_4C4E15:                             ; CODE XREF: sub_4C4E00+EEj
.text:004C4E15                 cmp     ecx, 9          ; switch 10 cases
.text:004C4E18                 ja      loc_4C4ECD      ; default
.text:004C4E1E                 jmp     ds:off_4C4EFC[ecx*4] ; switch jump
.text:004C4E25
.text:004C4E25 loc_4C4E25:                             ; DATA XREF: .text:off_4C4EFCo
.text:004C4E25                 mov     eax, esi        ; case 0x0
.text:004C4E27                 jmp     loc_4C4ECD      ; default
.text:004C4E2C ; ---------------------------------------------------------------------------
.text:004C4E2C
.text:004C4E2C loc_4C4E2C:                             ; CODE XREF: sub_4C4E00+1Ej
.text:004C4E2C                                         ; DATA XREF: .text:off_4C4EFCo
.text:004C4E2C                 lea     eax, [esi+1]    ; case 0x1
.text:004C4E2F
.text:004C4E2F loc_4C4E2F:                             ; CODE XREF: sub_4C4E00+5Bj
.text:004C4E2F                 mov     ebx, esi
.text:004C4E31                 and     bl, 1
.text:004C4E34                 neg     bl
.text:004C4E36                 cdq
.text:004C4E37                 sbb     ebx, ebx
.text:004C4E39                 and     ebx, 0FFFFFFFEh
.text:004C4E3C                 sub     eax, edx
.text:004C4E3E                 sar     eax, 1
.text:004C4E40                 add     ebx, 1
.text:004C4E43                 imul    ebx, eax
.text:004C4E46                 add     ebx, 80h
.text:004C4E4C                 mov     eax, ebx
.text:004C4E4E                 jmp     short loc_4C4ECD ; default
.text:004C4E50 ; ---------------------------------------------------------------------------
.text:004C4E50
.text:004C4E50 loc_4C4E50:                             ; CODE XREF: sub_4C4E00+1Ej
.text:004C4E50                                         ; DATA XREF: .text:off_4C4EFCo
.text:004C4E50                 mov     eax, 0FFh       ; case 0x2
.text:004C4E55                 sub     eax, esi
.text:004C4E57                 jmp     short loc_4C4ECD ; default
.text:004C4E59 ; ---------------------------------------------------------------------------
.text:004C4E59
.text:004C4E59 loc_4C4E59:                             ; CODE XREF: sub_4C4E00+1Ej
.text:004C4E59                                         ; DATA XREF: .text:off_4C4EFCo
.text:004C4E59                 mov     eax, ebp        ; case 0x3
.text:004C4E5B                 jmp     short loc_4C4E2F
.text:004C4E5D ; ---------------------------------------------------------------------------
.text:004C4E5D
.text:004C4E5D loc_4C4E5D:                             ; CODE XREF: sub_4C4E00+1Ej
.text:004C4E5D                                         ; DATA XREF: .text:off_4C4EFCo
.text:004C4E5D                 mov     eax, esi        ; case 0x4
.text:004C4E5F                 shr     eax, 4
.text:004C4E62                 imul    eax, eax
.text:004C4E65                 jmp     short loc_4C4ECD ; default
.text:004C4E67 ; ---------------------------------------------------------------------------
.text:004C4E67
.text:004C4E67 loc_4C4E67:                             ; CODE XREF: sub_4C4E00+1Ej
.text:004C4E67                                         ; DATA XREF: .text:off_4C4EFCo
.text:004C4E67                 mov     eax, edi        ; case 0x5
.text:004C4E69                 and     eax, 800000FFh
.text:004C4E6E                 jns     short loc_4C4ECD ; default
.text:004C4E70                 dec     eax
.text:004C4E71                 or      eax, 0FFFFFF00h
.text:004C4E76                 inc     eax
.text:004C4E77                 jmp     short loc_4C4ECD ; default
.text:004C4E79 ; ---------------------------------------------------------------------------
.text:004C4E79
.text:004C4E79 loc_4C4E79:                             ; CODE XREF: sub_4C4E00+1Ej
.text:004C4E79                                         ; DATA XREF: .text:off_4C4EFCo
.text:004C4E79                 mov     edx, edi        ; case 0x6
.text:004C4E7B                 jmp     short loc_4C4EB6
.text:004C4E7D ; ---------------------------------------------------------------------------
.text:004C4E7D
.text:004C4E7D loc_4C4E7D:                             ; CODE XREF: sub_4C4E00+1Ej
.text:004C4E7D                                         ; DATA XREF: .text:off_4C4EFCo
.text:004C4E7D                 cmp     esi, 7Fh        ; case 0x7
.text:004C4E80                 jg      short loc_4C4E8B
.text:004C4E82                 mov     eax, 0FFh
.text:004C4E87                 sub     eax, edi
.text:004C4E89                 jmp     short loc_4C4ECD ; default
.text:004C4E8B ; ---------------------------------------------------------------------------
.text:004C4E8B
.text:004C4E8B loc_4C4E8B:                             ; CODE XREF: sub_4C4E00+80j
.text:004C4E8B                 lea     eax, [edi-100h]
.text:004C4E91                 jmp     short loc_4C4ECD ; default
.text:004C4E93 ; ---------------------------------------------------------------------------
.text:004C4E93
.text:004C4E93 loc_4C4E93:                             ; CODE XREF: sub_4C4E00+1Ej
.text:004C4E93                                         ; DATA XREF: .text:off_4C4EFCo
.text:004C4E93                 cmp     esi, 7Fh        ; case 0x8
.text:004C4E96                 jg      short loc_4C4E9C
.text:004C4E98                 mov     eax, edi
.text:004C4E9A                 jmp     short loc_4C4ECD ; default
.text:004C4E9C ; ---------------------------------------------------------------------------
.text:004C4E9C
.text:004C4E9C loc_4C4E9C:                             ; CODE XREF: sub_4C4E00+96j
.text:004C4E9C                 mov     eax, 1FFh
.text:004C4EA1                 sub     eax, edi
.text:004C4EA3                 jmp     short loc_4C4ECD ; default
.text:004C4EA5 ; ---------------------------------------------------------------------------
.text:004C4EA5
.text:004C4EA5 loc_4C4EA5:                             ; CODE XREF: sub_4C4E00+1Ej
.text:004C4EA5                                         ; DATA XREF: .text:off_4C4EFCo
.text:004C4EA5                 lea     eax, [esi-80h]  ; case 0x9
.text:004C4EA8                 cdq
.text:004C4EA9                 and     edx, 7
.text:004C4EAC                 add     eax, edx
.text:004C4EAE                 sar     eax, 3
.text:004C4EB1                 mov     edx, eax
.text:004C4EB3                 imul    edx, eax
.text:004C4EB6
.text:004C4EB6 loc_4C4EB6:                             ; CODE XREF: sub_4C4E00+7Bj
.text:004C4EB6                 and     edx, 800000FFh
.text:004C4EBC                 jns     short loc_4C4EC6
.text:004C4EBE                 dec     edx
.text:004C4EBF                 or      edx, 0FFFFFF00h
.text:004C4EC5                 inc     edx
.text:004C4EC6
.text:004C4EC6 loc_4C4EC6:                             ; CODE XREF: sub_4C4E00+BCj
.text:004C4EC6                 mov     eax, 0FFh
.text:004C4ECB                 sub     eax, edx
.text:004C4ECD
.text:004C4ECD loc_4C4ECD:                             ; CODE XREF: sub_4C4E00+18j
.text:004C4ECD                                         ; sub_4C4E00+27j ...
.text:004C4ECD                 mov     edx, eax        ; default
.text:004C4ECF                 shl     edx, 8
.text:004C4ED2                 or      eax, edx
.text:004C4ED4                 mov     edx, eax
.text:004C4ED6                 shl     edx, 10h
.text:004C4ED9                 or      eax, edx
.text:004C4EDB                 mov     dword_584638[esi*4], eax
.text:004C4EE2                 sub     ebp, 1
.text:004C4EE5                 add     esi, 1
.text:004C4EE8                 add     edi, 2
.text:004C4EEB                 cmp     ebp, 0FFFFFFFFh
.text:004C4EEE                 jg      loc_4C4E15
.text:004C4EF4                 pop     edi
.text:004C4EF5                 pop     esi
.text:004C4EF6                 pop     ebp
.text:004C4EF7                 pop     ebx
.text:004C4EF8                 retn    4
.text:004C4EF8 sub_4C4E00      endp
.text:004C4EF8
.text:004C4EF8 ; ---------------------------------------------------------------------------
.text:004C4EFB                 align 4
.text:004C4EFC off_4C4EFC      dd offset loc_4C4E25    ; DATA XREF: sub_4C4E00+1Er
.text:004C4EFC                 dd offset loc_4C4E2C    ; jump table for switch statement
.text:004C4EFC                 dd offset loc_4C4E50
.text:004C4EFC                 dd offset loc_4C4E59
.text:004C4EFC                 dd offset loc_4C4E5D
.text:004C4EFC                 dd offset loc_4C4E67
.text:004C4EFC                 dd offset loc_4C4E79
.text:004C4EFC                 dd offset loc_4C4E7D
.text:004C4EFC                 dd offset loc_4C4E93
.text:004C4EFC                 dd offset loc_4C4EA5
.text:004C4F24                 align 10h
.text:004C4F30
.text:004C4F30 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:004C4F30
.text:004C4F30
.text:004C4F30 sub_4C4F30      proc near               ; CODE XREF: sub_4C5470+8Ep
.text:004C4F30                                         ; sub_4C7D30+E0p
.text:004C4F30
.text:004C4F30 arg_0           = dword ptr  10h
.text:004C4F30 arg_4           = dword ptr  14h
.text:004C4F30
.text:004C4F30                 push    ebx
.text:004C4F31                 push    esi
.text:004C4F32                 push    edi
.text:004C4F33                 call    sub_47F3D0
.text:004C4F38                 mov     edi, [esp+arg_0]
.text:004C4F3C                 mov     ebx, [esp+arg_4]
.text:004C4F40                 push    edi
.text:004C4F41                 mov     esi, eax
.text:004C4F43                 push    ebx
.text:004C4F44                 push    offset unk_58B07C
.text:004C4F49                 mov     ecx, esi
.text:004C4F4B                 call    sub_47F5C0
.text:004C4F50                 push    edi
.text:004C4F51                 push    offset unk_58B07C
.text:004C4F56                 push    offset dword_58B090
.text:004C4F5B                 mov     ecx, esi
.text:004C4F5D                 mov     dword_58B088, edi
.text:004C4F63                 call    sub_47F5C0
.text:004C4F68                 mov     eax, dword_58B088
.text:004C4F6D                 push    eax
.text:004C4F6E                 push    offset unk_58B07C
.text:004C4F73                 lea     eax, dword_58B090[eax]
.text:004C4F79                 push    eax
.text:004C4F7A                 mov     ecx, esi
.text:004C4F7C                 call    sub_47F5C0
.text:004C4F81                 mov     eax, dword_58B088
.text:004C4F86                 push    eax
.text:004C4F87                 lea     ecx, ds:58B090h[eax*2]
.text:004C4F8E                 push    offset unk_58B07C
.text:004C4F93                 push    ecx
.text:004C4F94                 mov     ecx, esi
.text:004C4F96                 call    sub_47F5C0
.text:004C4F9B                 mov     eax, dword_58B088
.text:004C4FA0                 push    eax
.text:004C4FA1                 push    offset unk_58B07C
.text:004C4FA6                 lea     edx, dword_58B090[eax+eax*2]
.text:004C4FAD                 push    edx
.text:004C4FAE                 mov     ecx, esi
.text:004C4FB0                 call    sub_47F5C0
.text:004C4FB5                 push    ebx             ; void *
.text:004C4FB6                 mov     ecx, esi
.text:004C4FB8                 call    sub_47F510
.text:004C4FBD                 pop     edi
.text:004C4FBE                 pop     esi
.text:004C4FBF                 pop     ebx
.text:004C4FC0                 retn    8
.text:004C4FC0 sub_4C4F30      endp
.text:004C4FC0
.text:004C4FC0 ; ---------------------------------------------------------------------------
.text:004C4FC3                 align 10h
.text:004C4FD0
.text:004C4FD0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:004C4FD0
.text:004C4FD0
.text:004C4FD0 ; int __cdecl sub_4C4FD0(LPCWSTR lpWideCharStr,int)
.text:004C4FD0 sub_4C4FD0      proc near               ; CODE XREF: sub_4C7640+213p
.text:004C4FD0
.text:004C4FD0 name            = byte ptr -68h
.text:004C4FD0 var_4           = dword ptr -4
.text:004C4FD0 lpWideCharStr   = dword ptr  4
.text:004C4FD0 arg_4           = dword ptr  8
.text:004C4FD0
.text:004C4FD0                 sub     esp, 68h
.text:004C4FD3                 mov     eax, dword_588760
.text:004C4FD8                 xor     eax, esp
.text:004C4FDA                 mov     [esp+68h+var_4], eax
.text:004C4FDE                 mov     edx, [esp+68h+lpWideCharStr]
.text:004C4FE2                 push    esi
.text:004C4FE3                 mov     eax, edx
.text:004C4FE5                 push    edi
.text:004C4FE6                 mov     edi, [esp+70h+arg_4]
.text:004C4FEA                 lea     esi, [eax+2]
.text:004C4FED                 lea     ecx, [ecx+0]
.text:004C4FF0
.text:004C4FF0 loc_4C4FF0:                             ; CODE XREF: sub_4C4FD0+29j
.text:004C4FF0                 mov     cx, [eax]
.text:004C4FF3                 add     eax, 2
.text:004C4FF6                 test    cx, cx
.text:004C4FF9                 jnz     short loc_4C4FF0
.text:004C4FFB                 push    0               ; lpUsedDefaultChar
.text:004C4FFD                 push    0               ; lpDefaultChar
.text:004C4FFF                 push    63h             ; cchMultiByte
.text:004C5001                 sub     eax, esi
.text:004C5003                 lea     ecx, [esp+7Ch+name]
.text:004C5007                 push    ecx             ; lpMultiByteStr
.text:004C5008                 sar     eax, 1
.text:004C500A                 push    eax             ; cchWideChar
.text:004C500B                 push    edx             ; lpWideCharStr
.text:004C500C                 push    0               ; dwFlags
.text:004C500E                 push    0               ; CodePage
.text:004C5010                 call    ds:WideCharToMultiByte
.text:004C5016                 lea     edx, [esp+70h+name]
.text:004C501A                 push    edx             ; name
.text:004C501B                 mov     [esp+eax+74h+name], 0
.text:004C5020                 call    ds:gethostbyname
.text:004C5026                 test    eax, eax
.text:004C5028                 jnz     short loc_4C503D
.text:004C502A                 pop     edi
.text:004C502B                 xor     al, al
.text:004C502D                 pop     esi
.text:004C502E                 mov     ecx, [esp+68h+var_4]
.text:004C5032                 xor     ecx, esp
.text:004C5034                 call    sub_516161
.text:004C5039                 add     esp, 68h
.text:004C503C                 retn
.text:004C503D ; ---------------------------------------------------------------------------
.text:004C503D
.text:004C503D loc_4C503D:                             ; CODE XREF: sub_4C4FD0+58j
.text:004C503D                 mov     eax, [eax+0Ch]
.text:004C5040                 mov     ecx, [eax]
.text:004C5042                 push    4
.text:004C5044                 push    ecx
.text:004C5045                 push    edi
.text:004C5046                 call    sub_47F3D0
.text:004C504B                 mov     ecx, eax
.text:004C504D                 call    sub_47F5C0
.text:004C5052                 mov     ecx, [esp+70h+var_4]
.text:004C5056                 pop     edi
.text:004C5057                 pop     esi
.text:004C5058                 xor     ecx, esp
.text:004C505A                 mov     al, 1
.text:004C505C                 call    sub_516161
.text:004C5061                 add     esp, 68h
.text:004C5064                 retn
.text:004C5064 sub_4C4FD0      endp