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