Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .text:008E4C60 ; =============== S U B R O U T I N E =======================================
- .text:008E4C60
- .text:008E4C60 ; Attributes: bp-based frame
- .text:008E4C60
- .text:008E4C60 ; int __fastcall processevent(void *Dst)
- .text:008E4C60 processevent proc near ; CODE XREF: sub_8E3E70+A40p
- .text:008E4C60
- .text:008E4C60 var_80 = byte ptr -80h
- .text:008E4C60 var_78 = dword ptr -78h
- .text:008E4C60 var_74 = dword ptr -74h
- .text:008E4C60 var_70 = dword ptr -70h
- .text:008E4C60 var_6C = dword ptr -6Ch
- .text:008E4C60 var_68 = dword ptr -68h
- .text:008E4C60 var_64 = dword ptr -64h
- .text:008E4C60 var_60 = dword ptr -60h
- .text:008E4C60 var_5C = dword ptr -5Ch
- .text:008E4C60 var_58 = dword ptr -58h
- .text:008E4C60 var_54 = dword ptr -54h
- .text:008E4C60 var_50 = dword ptr -50h
- .text:008E4C60 var_4C = dword ptr -4Ch
- .text:008E4C60 var_48 = dword ptr -48h
- .text:008E4C60 var_44 = dword ptr -44h
- .text:008E4C60 Src = dword ptr -40h
- .text:008E4C60 var_3C = dword ptr -3Ch
- .text:008E4C60 var_38 = dword ptr -38h
- .text:008E4C60 var_24 = dword ptr -24h
- .text:008E4C60 var_20 = dword ptr -20h
- .text:008E4C60 var_1C = dword ptr -1Ch
- .text:008E4C60 var_18 = dword ptr -18h
- .text:008E4C60 var_14 = dword ptr -14h
- .text:008E4C60 var_10 = dword ptr -10h
- .text:008E4C60 var_C = dword ptr -0Ch
- .text:008E4C60 var_4 = dword ptr -4
- .text:008E4C60
- .text:008E4C60 000 push ebp
- .text:008E4C61 004 mov ebp, esp
- .text:008E4C63 004 push 0FFFFFFFFh
- .text:008E4C65 008 push offset sub_19051AE
- .text:008E4C6A 00C mov eax, large fs:0
- .text:008E4C70 00C push eax
- .text:008E4C71 010 sub esp, 7Ch
- .text:008E4C74 08C mov eax, ___security_cookie
- .text:008E4C79 08C xor eax, ebp
- .text:008E4C7B 08C mov [ebp+var_10], eax
- .text:008E4C7E 08C push ebx
- .text:008E4C7F 090 push esi
- .text:008E4C80 094 push edi
- .text:008E4C81 098 push eax
- .text:008E4C82 09C lea eax, [ebp+var_C]
- .text:008E4C85 09C mov large fs:0, eax
- .text:008E4C8B 09C mov ebx, ecx
- .text:008E4C8D 09C mov [ebp+var_58], ebx
- .text:008E4C90 09C mov [ebp+Src], 0
- .text:008E4C97 09C mov [ebp+var_3C], 0
- .text:008E4C9E 09C mov [ebp+var_38], 0
- .text:008E4CA5 09C mov [ebp+var_24], 0
- .text:008E4CAC 09C mov [ebp+var_1C], 0
- .text:008E4CB3 09C mov [ebp+var_20], 0
- .text:008E4CBA 09C mov [ebp+var_18], 0
- .text:008E4CC1 09C mov [ebp+var_14], 0
- .text:008E4CC8 09C mov eax, [ebx+4]
- .text:008E4CCB 09C lea ecx, [ebp+Src]
- .text:008E4CCE 09C sub eax, [ebx+2Ch]
- .text:008E4CD1 09C push eax
- .text:008E4CD2 0A0 mov [ebp+var_4], 2
- .text:008E4CD9 0A0 call sub_9EAF50
- .text:008E4CDE 09C push 0
- .text:008E4CE0 0A0 lea eax, [ebx+0Ch]
- .text:008E4CE3 0A0 mov [ebp+var_74], ebx
- .text:008E4CE6 0A0 push eax
- .text:008E4CE7 0A4 lea ecx, [ebp+var_70]
- .text:008E4CEA 0A4 call sub_8D1E40
- .text:008E4CEF 09C mov eax, [ebp+var_68]
- .text:008E4CF2 09C mov edi, [ebp+var_60]
- .text:008E4CF5 09C cmp edi, [eax+14h]
- .text:008E4CF8 09C jge loc_8E4E4D
- .text:008E4CFE 09C mov eax, [ebp+var_64]
- .text:008E4D01 09C mov ebx, [ebp+var_5C]
- .text:008E4D04 09C mov esi, [ebp+var_70]
- .text:008E4D07 09C mov [ebp+var_44], eax
- .text:008E4D0A 09C mov eax, [ebp+var_6C]
- .text:008E4D0D 09C mov [ebp+var_54], 0
- .text:008E4D14 09C mov [ebp+var_4C], eax
- .text:008E4D17
- .text:008E4D17 loc_8E4D17: ; CODE XREF: processevent+1E4j
- .text:008E4D17 09C lea eax, [ebp+var_80]
- .text:008E4D1A 09C push eax
- .text:008E4D1B 0A0 lea ecx, [ebp+Src]
- .text:008E4D1E 0A0 call sub_1314D40
- .text:008E4D23 09C mov edx, [eax+4]
- .text:008E4D26 09C mov [ebp+var_48], edx
- .text:008E4D29 09C test edx, edx
- .text:008E4D2B 09C jz loc_8E4DB2
- .text:008E4D31 09C mov eax, [ebp+var_74]
- .text:008E4D34 09C mov ecx, [eax]
- .text:008E4D36 09C lea eax, ds:0[edi*8]
- .text:008E4D3D 09C sub eax, edi
- .text:008E4D3F 09C lea edi, [edx+8]
- .text:008E4D42 09C mov [ebp+var_78], edi
- .text:008E4D45 09C lea ecx, [ecx+eax*4]
- .text:008E4D48 09C mov eax, [ecx]
- .text:008E4D4A 09C mov [edx], eax
- .text:008E4D4C 09C mov eax, [ecx+4]
- .text:008E4D4F 09C mov [edx+4], eax
- .text:008E4D52 09C mov eax, [ecx+0Ch]
- .text:008E4D55 09C mov [ebp+var_50], ecx
- .text:008E4D58 09C mov dword ptr [edi], 0
- .text:008E4D5E 09C mov [edi+4], eax
- .text:008E4D61 09C mov [edi+8], eax
- .text:008E4D64 09C mov edx, [edi]
- .text:008E4D66 09C mov byte ptr [ebp+var_4], 3
- .text:008E4D6A 09C test edx, edx
- .text:008E4D6C 09C jnz short loc_8E4D72
- .text:008E4D6E 09C test eax, eax
- .text:008E4D70 09C jz short loc_8E4D85
- .text:008E4D72
- .text:008E4D72 loc_8E4D72: ; CODE XREF: processevent+10Cj
- .text:008E4D72 09C push 8
- .text:008E4D74 0A0 add eax, eax
- .text:008E4D76 0A0 push eax
- .text:008E4D77 0A4 push edx
- .text:008E4D78 0A8 call sub_9160F0
- .text:008E4D7D 0A8 mov ecx, [ebp+var_50]
- .text:008E4D80 0A8 add esp, 0Ch
- .text:008E4D83 09C mov [edi], eax
- .text:008E4D85
- .text:008E4D85 loc_8E4D85: ; CODE XREF: processevent+110j
- .text:008E4D85 09C mov eax, [edi+4]
- .text:008E4D88 09C mov byte ptr [ebp+var_4], 2
- .text:008E4D8C 09C test eax, eax
- .text:008E4D8E 09C jz short loc_8E4DA0
- .text:008E4D90 09C add eax, eax
- .text:008E4D92 09C push eax ; Size
- .text:008E4D93 0A0 push dword ptr [ecx+8] ; Src
- .text:008E4D96 0A4 push dword ptr [edi] ; Dst
- .text:008E4D98 0A8 call memcpy
- .text:008E4D9D 0A8 add esp, 0Ch
- .text:008E4DA0
- .text:008E4DA0 loc_8E4DA0: ; CODE XREF: processevent+12Ej
- .text:008E4DA0 09C mov edx, [ebp+var_50]
- .text:008E4DA3 09C mov ecx, [ebp+var_48]
- .text:008E4DA6 09C mov eax, [edx+14h]
- .text:008E4DA9 09C mov [ecx+14h], eax
- .text:008E4DAC 09C mov eax, [edx+18h]
- .text:008E4DAF 09C mov [ecx+18h], eax
- .text:008E4DB2
- .text:008E4DB2 loc_8E4DB2: ; CODE XREF: processevent+CBj
- .text:008E4DB2 09C mov edx, [ebp+var_68]
- .text:008E4DB5 09C mov eax, [ebp+var_4C]
- .text:008E4DB8 09C mov edi, [ebp+var_44]
- .text:008E4DBB 09C not eax
- .text:008E4DBD 09C and edi, eax
- .text:008E4DBF 09C xor eax, eax
- .text:008E4DC1 09C mov ecx, [edx+10h]
- .text:008E4DC4 09C test ecx, ecx
- .text:008E4DC6 09C mov [ebp+var_44], edi
- .text:008E4DC9 09C setz al
- .text:008E4DCC 09C neg eax
- .text:008E4DCE 09C and edx, eax
- .text:008E4DD0 09C lea eax, [ebp+var_54]
- .text:008E4DD3 09C or edx, ecx
- .text:008E4DD5 09C mov ecx, 0
- .text:008E4DDA 09C setz cl
- .text:008E4DDD 09C neg ecx
- .text:008E4DDF 09C and ecx, eax
- .text:008E4DE1 09C or ecx, edx
- .text:008E4DE3 09C mov eax, [ecx+esi*4]
- .text:008E4DE6 09C and eax, edi
- .text:008E4DE8 09C jnz short loc_8E4E16
- .text:008E4DEA 09C mov eax, [ebp+var_68]
- .text:008E4DED 09C mov edi, [eax+14h]
- .text:008E4DF0 09C lea eax, [edi-1]
- .text:008E4DF3 09C cdq
- .text:008E4DF4 09C and edx, 1Fh
- .text:008E4DF7 09C add edx, eax
- .text:008E4DF9 09C sar edx, 5
- .text:008E4DFC 09C lea esp, [esp+0]
- .text:008E4E00
- .text:008E4E00 loc_8E4E00: ; CODE XREF: processevent+1B4j
- .text:008E4E00 09C inc esi
- .text:008E4E01 09C add ebx, 20h
- .text:008E4E04 09C cmp esi, edx
- .text:008E4E06 09C jg short loc_8E4E3E
- .text:008E4E08 09C mov eax, [ecx+esi*4]
- .text:008E4E0B 09C mov [ebp+var_44], 0FFFFFFFFh
- .text:008E4E12 09C test eax, eax
- .text:008E4E14 09C jz short loc_8E4E00
- .text:008E4E16
- .text:008E4E16 loc_8E4E16: ; CODE XREF: processevent+188j
- .text:008E4E16 09C lea ecx, [eax-1]
- .text:008E4E19 09C and ecx, eax
- .text:008E4E1B 09C xor ecx, eax
- .text:008E4E1D 09C mov [ebp+var_4C], ecx
- .text:008E4E20 09C jnz short loc_8E4E29
- .text:008E4E22 09C mov eax, 20h
- .text:008E4E27 09C jmp short loc_8E4E37
- .text:008E4E29 ; ---------------------------------------------------------------------------
- .text:008E4E29
- .text:008E4E29 loc_8E4E29: ; CODE XREF: processevent+1C0j
- .text:008E4E29 09C bsr eax, ecx
- .text:008E4E2C 09C mov [ebp+var_48], eax
- .text:008E4E2F 09C mov eax, 1Fh
- .text:008E4E34 09C sub eax, [ebp+var_48]
- .text:008E4E37
- .text:008E4E37 loc_8E4E37: ; CODE XREF: processevent+1C7j
- .text:008E4E37 09C mov edi, ebx
- .text:008E4E39 09C sub edi, eax
- .text:008E4E3B 09C add edi, 1Fh
- .text:008E4E3E
- .text:008E4E3E loc_8E4E3E: ; CODE XREF: processevent+1A6j
- .text:008E4E3E 09C mov eax, [ebp+var_68]
- .text:008E4E41 09C cmp edi, [eax+14h]
- .text:008E4E44 09C jl loc_8E4D17
- .text:008E4E4A 09C mov ebx, [ebp+var_58]
- .text:008E4E4D
- .text:008E4E4D loc_8E4E4D: ; CODE XREF: processevent+98j
- .text:008E4E4D 09C mov eax, 30h
- .text:008E4E52 09C call sub_1900220
- .text:008E4E57 09C mov esi, esp
- .text:008E4E59 09C push 30h ; Size
- .text:008E4E5B 0A0 push ebx ; Src
- .text:008E4E5C 0A4 push esi ; Dst
- .text:008E4E5D 0A8 call memcpy
- .text:008E4E62 0A8 push 30h ; Size
- .text:008E4E64 0AC lea eax, [ebp+Src]
- .text:008E4E67 0AC push eax ; Src
- .text:008E4E68 0B0 push ebx ; Dst
- .text:008E4E69 0B4 call memcpy
- .text:008E4E6E 0B4 push 30h ; Size
- .text:008E4E70 0B8 lea eax, [ebp+Src]
- .text:008E4E73 0B8 push esi ; Src
- .text:008E4E74 0BC push eax ; Dst
- .text:008E4E75 0C0 call memcpy
- .text:008E4E7A 0C0 add esp, 24h
- .text:008E4E7D 09C push 0
- .text:008E4E7F 0A0 lea ecx, [ebp+Src]
- .text:008E4E82 0A0 mov [ebp+var_4], 5
- .text:008E4E89 0A0 call sub_9EAF50
- .text:008E4E8E 09C mov eax, [ebp+var_24]
- .text:008E4E91 09C mov byte ptr [ebp+var_4], 4
- .text:008E4E95 09C test eax, eax
- .text:008E4E97 09C jz short loc_8E4EA9
- .text:008E4E99 09C push eax
- .text:008E4E9A 0A0 call sub_915C70
- .text:008E4E9F 0A0 add esp, 4
- .text:008E4EA2 09C mov [ebp+var_24], 0
- .text:008E4EA9
- .text:008E4EA9 loc_8E4EA9: ; CODE XREF: processevent+237j
- .text:008E4EA9 09C mov eax, [ebp+Src]
- .text:008E4EAC 09C mov [ebp+var_38], 0
- .text:008E4EB3 09C mov [ebp+var_3C], 0
- .text:008E4EBA 09C mov [ebp+var_4], 0FFFFFFFFh
- .text:008E4EC1 09C test eax, eax
- .text:008E4EC3 09C jz short loc_8E4ECE
- .text:008E4EC5 09C push eax
- .text:008E4EC6 0A0 call sub_915C70
- .text:008E4ECB 0A0 add esp, 4
- .text:008E4ECE
- .text:008E4ECE loc_8E4ECE: ; CODE XREF: processevent+263j
- .text:008E4ECE 09C lea esp, [ebp-98h]
- .text:008E4ED4 09C mov ecx, [ebp+var_C]
- .text:008E4ED7 09C mov large fs:0, ecx
- .text:008E4EDE 09C pop ecx
- .text:008E4EDF 098 pop edi
- .text:008E4EE0 094 pop esi
- .text:008E4EE1 090 pop ebx
- .text:008E4EE2 08C mov ecx, [ebp+var_10]
- .text:008E4EE5 08C xor ecx, ebp
- .text:008E4EE7 08C call sub_1900196
- .text:008E4EEC 08C mov esp, ebp
- .text:008E4EEE 004 pop ebp
- .text:008E4EEF 000 retn
- .text:008E4EEF processevent endp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement