rendered paste bodytext:0042F7C0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0042F7C0
.text:0042F7C0
.text:0042F7C0 sub_42F7C0 proc near ; CODE XREF: sub_426120+39p
.text:0042F7C0
.text:0042F7C0 var_70 = dword ptr -70h
.text:0042F7C0 var_6C = dword ptr -6Ch
.text:0042F7C0 var_68 = dword ptr -68h
.text:0042F7C0 var_64 = dword ptr -64h
.text:0042F7C0 var_60 = dword ptr -60h
.text:0042F7C0 var_5C = dword ptr -5Ch
.text:0042F7C0 var_58 = dword ptr -58h
.text:0042F7C0 var_54 = dword ptr -54h
.text:0042F7C0 var_50 = dword ptr -50h
.text:0042F7C0 var_4C = dword ptr -4Ch
.text:0042F7C0 var_48 = dword ptr -48h
.text:0042F7C0 var_44 = dword ptr -44h
.text:0042F7C0 var_40 = dword ptr -40h
.text:0042F7C0 var_3C = dword ptr -3Ch
.text:0042F7C0 var_38 = dword ptr -38h
.text:0042F7C0 var_34 = dword ptr -34h
.text:0042F7C0 var_30 = dword ptr -30h
.text:0042F7C0 var_2C = dword ptr -2Ch
.text:0042F7C0 var_28 = dword ptr -28h
.text:0042F7C0 var_24 = dword ptr -24h
.text:0042F7C0 var_20 = dword ptr -20h
.text:0042F7C0 var_1C = dword ptr -1Ch
.text:0042F7C0 var_18 = dword ptr -18h
.text:0042F7C0 var_14 = dword ptr -14h
.text:0042F7C0 var_10 = dword ptr -10h
.text:0042F7C0 var_C = dword ptr -0Ch
.text:0042F7C0 var_8 = dword ptr -8
.text:0042F7C0 var_4 = dword ptr -4
.text:0042F7C0 arg_0 = dword ptr 4
.text:0042F7C0 arg_4 = dword ptr 8
.text:0042F7C0 arg_8 = dword ptr 0Ch
.text:0042F7C0
.text:0042F7C0 sub esp, 6Ch ; esp -= 6Ch;
.text:0042F7C3 mov eax, 1Dh ; eax = 1Dh;
.text:0042F7C8 push ebx
.text:0042F7C9 mov edx, 0Ch ; edx = 0Ch;
.text:0042F7CE mov [esp+70h+var_60], eax ; [esp+70h+var_60] = eax;
.text:0042F7D2 mov ecx, 9 ; ecx = 9;
.text:0042F7D7 mov [esp+70h+var_54], edx ; [esp+70h+var_54] = edx;
.text:0042F7DB mov [esp+70h+var_50], edx ; [esp+70h+var_50] = edx;
.text:0042F7DF mov [esp+70h+var_3C], eax ; [esp+70h+var_3C] = eax;
.text:0042F7E3 mov [esp+70h+var_30], eax ; [esp+70h+var_30] = eax;
.text:0042F7E7 mov [esp+70h+var_10], eax ; [esp+70h+var_10] = eax;
.text:0042F7EB push esi
.text:0042F7EC mov edx, 6 ; edx = 6;
.text:0042F7F1 push edi
.text:0042F7F2 mov edi, [esp+78h+arg_4] ; edi = [esp+78h+arg_4];
.text:0042F7F9 mov [esp+78h+var_58], ecx ; [esp+78h+var_58] = ecx;
.text:0042F7FD mov [esp+78h+var_34], edx ; [esp+78h+var_34] = edx;
.text:0042F801 mov [esp+78h+var_2C], ecx ; [esp+78h+var_2C] = ecx;
.text:0042F805 mov [esp+78h+var_28], edx ; [esp+78h+var_28] = edx;
.text:0042F809 mov [esp+78h+var_4], ecx ; [esp+78h+var_4] = ecx;
.text:0042F80D mov eax, 0FEDCBA98h ; eax = 0FEDCBA98h;
.text:0042F812 sub eax, edi ; eax -= edi;
.text:0042F814 mov ecx, 1Bh ; ecx = 1Bh;
.text:0042F819 xor edx, edx ; edx = 0;
.text:0042F81B div ecx
.text:0042F81D mov [esp+78h+var_6C], 4Bh ; [esp+78h+var_6C] = 4Bh;
.text:0042F825 mov [esp+78h+var_68], 19h ; [esp+78h+var_68] = 19h;
.text:0042F82D mov [esp+78h+var_64], 1Fh ; [esp+78h+var_64] = 1Fh;
.text:0042F835 mov [esp+78h+var_5C], 1Ah ; [esp+78h+var_5C] = 1Ah;
.text:0042F83D mov [esp+78h+var_4C], 53h ; [esp+78h+var_4C] = 53h;
.text:0042F845 mov [esp+78h+var_48], 49h ; [esp+78h+var_48] = 49h;
.text:0042F84D mov [esp+78h+var_44], 13h ; [esp+78h+var_44] = 13h;
.text:0042F855 mov [esp+78h+var_40], 11h ; [esp+78h+var_40] = 11h;
.text:0042F85D mov [esp+78h+var_38], 17h ; [esp+78h+var_38] = 17h;
.text:0042F865 mov [esp+78h+var_24], 8 ; [esp+78h+var_24] = 8;
.text:0042F86D mov [esp+78h+var_20], 1Bh ; [esp+78h+var_20] = 1Bh;
.text:0042F875 mov [esp+78h+var_1C], 1Ch ; [esp+78h+var_1C] = 1Ch;
.text:0042F87D mov [esp+78h+var_18], 1 ; [esp+78h+var_18] = 1;
.text:0042F885 mov [esp+78h+var_14], 1Eh ; [esp+78h+var_14] = 1Eh;
.text:0042F88D mov [esp+78h+var_C], 3 ; [esp+78h+var_C] = 3;
.text:0042F895 mov [esp+78h+var_8], 5 ; [esp+78h+var_8] = 5;
.text:0042F89D mov eax, 1 ; eax = 1;
.text:0042F8A2 mov ecx, edx ; ecx = edx;
.text:0042F8A4
.text:0042F8A4 loc_42F8A4: ; CODE XREF: sub_42F7C0+FAj
.text:0042F8A4 mov edx, [esp+eax*4+78h+var_70] ; edx = [esp+eax*4+78h+var_70];
.text:0042F8A8 xor [esp+eax*4+78h+var_6C], edx ; [esp+eax*4+78h+var_6C] ^= edx;
.text:0042F8AC mov edx, [esp+eax*4+78h+var_6C] ; edx = [esp+eax*4+78h+var_6C];
.text:0042F8B0 xor [esp+eax*4+78h+var_68], edx ; [esp+eax*4+78h+var_68] ^= edx;
.text:0042F8B4 add eax, 2 ; eax += 2;
.text:0042F8B7 cmp eax, 1Bh
.text:0042F8BA jl short loc_42F8A4
.text:0042F8BC mov al, byte ptr [esp+ecx*4+78h+var_6C] ; al = byte ptr [esp+ecx*4+78h+var_6C];
.text:0042F8C0 mov esi, [esp+78h+arg_0] ; esi = [esp+78h+arg_0];
.text:0042F8C4 xor [esi], al ; [esi] ^= al;
.text:0042F8C6 add ecx, 1Ah ; ecx += 1Ah;
.text:0042F8C9 mov eax, 2F684BDBh ; eax = 2F684BDBh;
.text:0042F8CE mul ecx
.text:0042F8D0 mov eax, ecx ; eax = ecx;
.text:0042F8D2 sub eax, edx ; eax -= edx;
.text:0042F8D4 shr eax, 1
.text:0042F8D6 add eax, edx ; eax += edx;
.text:0042F8D8 shr eax, 4
.text:0042F8DB imul eax, -1Bh
.text:0042F8DE add ecx, eax ; ecx += eax;
.text:0042F8E0 movzx edx, byte ptr [esp+ecx*4+78h+var_6C] ; edx = byte ptr [esp+ecx*4+78h+var_6C];
.text:0042F8E5 xor [esi+1], dl ; [esi+1] ^= dl;
.text:0042F8E8 add ecx, 1Ah ; ecx += 1Ah;
.text:0042F8EB mov eax, 2F684BDBh ; eax = 2F684BDBh;
.text:0042F8F0 mul ecx
.text:0042F8F2 mov eax, ecx ; eax = ecx;
.text:0042F8F4 sub eax, edx ; eax -= edx;
.text:0042F8F6 shr eax, 1
.text:0042F8F8 add eax, edx ; eax += edx;
.text:0042F8FA shr eax, 4
.text:0042F8FD imul eax, -1Bh
.text:0042F900 add ecx, eax ; ecx += eax;
.text:0042F902 movzx edx, byte ptr [esp+ecx*4+78h+var_6C] ; edx = byte ptr [esp+ecx*4+78h+var_6C];
.text:0042F907 xor [esi+2], dl ; [esi+2] ^= dl;
.text:0042F90A add ecx, 1Ah ; ecx += 1Ah;
.text:0042F90D mov eax, 2F684BDBh ; eax = 2F684BDBh;
.text:0042F912 mul ecx
.text:0042F914 mov eax, ecx ; eax = ecx;
.text:0042F916 sub eax, edx ; eax -= edx;
.text:0042F918 shr eax, 1
.text:0042F91A add eax, edx ; eax += edx;
.text:0042F91C shr eax, 4
.text:0042F91F imul eax, -1Bh
.text:0042F922 add ecx, eax ; ecx += eax;
.text:0042F924 movzx edx, byte ptr [esp+ecx*4+78h+var_6C] ; edx = byte ptr [esp+ecx*4+78h+var_6C];
.text:0042F929 xor [esi+3], dl ; [esi+3] ^= dl;
.text:0042F92C add ecx, 1Ah ; ecx += 1Ah;
.text:0042F92F mov eax, 2F684BDBh ; eax = 2F684BDBh;
.text:0042F934 mul ecx
.text:0042F936 mov eax, ecx ; eax = ecx;
.text:0042F938 sub eax, edx ; eax -= edx;
.text:0042F93A shr eax, 1
.text:0042F93C add eax, edx ; eax += edx;
.text:0042F93E shr eax, 4
.text:0042F941 imul eax, -1Bh
.text:0042F944 add ecx, eax ; ecx += eax;
.text:0042F946 movzx edx, byte ptr [esp+ecx*4+78h+var_6C] ; edx = byte ptr [esp+ecx*4+78h+var_6C];
.text:0042F94B xor [esi+4], dl ; [esi+4] ^= dl;
.text:0042F94E add ecx, 1Ah ; ecx += 1Ah;
.text:0042F951 mov eax, 2F684BDBh ; eax = 2F684BDBh;
.text:0042F956 mul ecx
.text:0042F958 mov eax, ecx ; eax = ecx;
.text:0042F95A sub eax, edx ; eax -= edx;
.text:0042F95C shr eax, 1
.text:0042F95E add eax, edx ; eax += edx;
.text:0042F960 shr eax, 4
.text:0042F963 imul eax, -1Bh
.text:0042F966 add ecx, eax ; ecx += eax;
.text:0042F968 movzx edx, byte ptr [esp+ecx*4+78h+var_6C] ; edx = byte ptr [esp+ecx*4+78h+var_6C];
.text:0042F96D xor [esi+5], dl ; [esi+5] ^= dl;
.text:0042F970 add ecx, 1Ah ; ecx += 1Ah;
.text:0042F973 mov eax, 2F684BDBh ; eax = 2F684BDBh;
.text:0042F978 mul ecx
.text:0042F97A mov eax, ecx ; eax = ecx;
.text:0042F97C sub eax, edx ; eax -= edx;
.text:0042F97E shr eax, 1
.text:0042F980 add eax, edx ; eax += edx;
.text:0042F982 shr eax, 4
.text:0042F985 imul eax, -1Bh
.text:0042F988 add ecx, eax ; ecx += eax;
.text:0042F98A movzx edx, byte ptr [esp+ecx*4+78h+var_6C] ; edx = byte ptr [esp+ecx*4+78h+var_6C];
.text:0042F98F xor [esi+6], dl ; [esi+6] ^= dl;
.text:0042F992 add ecx, 1Ah ; ecx += 1Ah;
.text:0042F995 mov eax, 2F684BDBh ; eax = 2F684BDBh;
.text:0042F99A mul ecx
.text:0042F99C mov eax, ecx ; eax = ecx;
.text:0042F99E sub eax, edx ; eax -= edx;
.text:0042F9A0 shr eax, 1
.text:0042F9A2 add eax, edx ; eax += edx;
.text:0042F9A4 shr eax, 4
.text:0042F9A7 imul eax, 1Bh
.text:0042F9AA sub ecx, eax ; ecx -= eax;
.text:0042F9AC mov cl, byte ptr [esp+ecx*4+78h+var_6C] ; cl = byte ptr [esp+ecx*4+78h+var_6C];
.text:0042F9B0 xor [esi+7], cl ; [esi+7] ^= cl;
.text:0042F9B3 movzx eax, byte ptr [esi] ; eax = byte ptr [esi];
.text:0042F9B6 movzx edx, byte ptr [esi+1] ; edx = byte ptr [esi+1];
.text:0042F9BA movzx ecx, byte ptr [esi+2] ; ecx = byte ptr [esi+2];
.text:0042F9BE movzx ebx, byte ptr [esi+5] ; ebx = byte ptr [esi+5];
.text:0042F9C2 shl eax, 8
.text:0042F9C5 add eax, edx ; eax += edx;
.text:0042F9C7 movzx edx, byte ptr [esi+3] ; edx = byte ptr [esi+3];
.text:0042F9CB shl eax, 8
.text:0042F9CE add eax, ecx ; eax += ecx;
.text:0042F9D0 movzx ecx, byte ptr [esi+4] ; ecx = byte ptr [esi+4];
.text:0042F9D4 shl ecx, 8
.text:0042F9D7 add ecx, ebx ; ecx += ebx;
.text:0042F9D9 movzx ebx, byte ptr [esi+6] ; ebx = byte ptr [esi+6];
.text:0042F9DD movzx esi, byte ptr [esi+7] ; esi = byte ptr [esi+7];
.text:0042F9E1 shl ecx, 8
.text:0042F9E4 add ecx, ebx ; ecx += ebx;
.text:0042F9E6 shl ecx, 8
.text:0042F9E9 shl eax, 8
.text:0042F9EC add ecx, esi ; ecx += esi;
.text:0042F9EE add eax, edx ; eax += edx;
.text:0042F9F0 mov esi, ecx ; esi = ecx;
.text:0042F9F2 mov edx, eax ; edx = eax;
.text:0042F9F4 and ecx, 0AAAAAAAAh
.text:0042F9FA and edx, 55555555h
.text:0042FA00 mov ebx, ecx ; ebx = ecx;
.text:0042FA02 or ebx, edx
.text:0042FA04 and eax, 0AAAAAAAAh
.text:0042FA09 and esi, 55555555h
.text:0042FA0F cmp ebx, edi
.text:0042FA11 jnz short loc_42FA32 ; if (ebx != edi) goto loc_42FA32;
.text:0042FA13 test esi, eax
.text:0042FA15 jnz short loc_42FA32
.text:0042FA17 test ecx, edx
.text:0042FA19 jnz short loc_42FA32
.text:0042FA1B or esi, eax
.text:0042FA1D mov eax, [esp+78h+arg_8] ; eax = [esp+78h+arg_8];
.text:0042FA24 pop edi
.text:0042FA25 mov [eax], esi ; [eax] = esi;
.text:0042FA27 pop esi
.text:0042FA28 mov eax, 1 ; eax = 1;
.text:0042FA2D pop ebx
.text:0042FA2E add esp, 6Ch ; esp += 6Ch;
.text:0042FA31 retn ; return;
.text:0042FA32 ; ---------------------------------------------------------------------------