.text:004FFCD7 var_10 = dword ptr -10h .text:004FFCD7 var_C = dword ptr -0Ch .text:004FFCD7 var_4 = dword ptr -4 .text:004FFCD7 lpFileName = dword ptr 8 .text:004FFCD7 .text:004FFCD7 push ebp .text:004FFCD8 mov ebp, esp .text:004FFCDA push 0FFFFFFFFh .text:004FFCDC push offset loc_6D6C8F .text:004FFCE1 mov eax, large fs:0 .text:004FFCE7 push eax .text:004FFCE8 mov large fs:0, esp .text:004FFCEF push ecx .text:004FFCF0 mov [ebp+var_10], ecx .text:004FFCF3 mov ecx, [ebp+var_10] .text:004FFCF6 add ecx, 120h .text:004FFCFC call sub_4FFAD0 .text:004FFD01 mov [ebp+var_4], 0 .text:004FFD08 push 130h ; size_t .text:004FFD0D push 0 ; int .text:004FFD0F mov eax, [ebp+var_10] .text:004FFD12 push eax ; void * .text:004FFD13 call _memset .text:004FFD18 add esp, 0Ch .text:004FFD1B mov ecx, [ebp+var_10] .text:004FFD1E mov dword ptr [ecx+12Ch], 0FFFFFFFFh .text:004FFD28 mov edx, [ebp+lpFileName] .text:004FFD2B push edx ; lpFileName .text:004FFD2C mov ecx, [ebp+var_10] .text:004FFD2F call sub_4FFD4E .text:004FFD34 mov [ebp+var_4], 0FFFFFFFFh .text:004FFD3B mov eax, [ebp+var_10] .text:004FFD3E mov ecx, [ebp+var_C] .text:004FFD41 mov large fs:0, ecx .text:004FFD48 mov esp, ebp .text:0045B910 var_4 = dword ptr -4 .text:0045B910 .text:0045B910 push ebp .text:0045B911 mov ebp, esp .text:0045B913 push ecx .text:0045B914 mov [ebp+var_4], ecx .text:0045B917 mov eax, [ebp+var_4] .text:0045B91A add eax, 120h .text:0045B91F mov esp, ebp .text:0045B921 pop ebp .text:0045B922 retn text:004FFD4E ; int __stdcall sub_4FFD4E(LPCSTR lpFileName) .text:004FFD4E sub_4FFD4E proc near ; CODE XREF: sub_4FFCD7+58p .text:004FFD4E .text:004FFD4E var_4 = dword ptr -4 .text:004FFD4E lpFileName = dword ptr 8 .text:004FFD4E .text:004FFD4E push ebp .text:004FFD4F mov ebp, esp .text:004FFD51 push ecx .text:004FFD52 mov [ebp+var_4], ecx .text:004FFD55 cmp [ebp+lpFileName], 0 .text:004FFD59 jz short loc_4FFD67 .text:004FFD5B mov eax, [ebp+var_4] .text:004FFD5E cmp dword ptr [eax+12Ch], 0FFFFFFFFh .text:004FFD65 jz short loc_4FFD6E .text:004FFD67 .text:004FFD67 loc_4FFD67: ; CODE XREF: sub_4FFD4E+Bj .text:004FFD67 xor eax, eax .text:004FFD69 jmp loc_4FFDF3 .text:004FFD6E ; --------------------------------------------------------------------------- .text:004FFD6E .text:004FFD6E loc_4FFD6E: ; CODE XREF: sub_4FFD4E+17j .text:004FFD6E push 0 ; hTemplateFile .text:004FFD70 push 80h ; dwFlagsAndAttributes .text:004FFD75 push 3 ; dwCreationDisposition .text:004FFD77 push 0 ; lpSecurityAttributes .text:004FFD79 push 1 ; dwShareMode .text:004FFD7B push 80000000h ; dwDesiredAccess .text:004FFD80 mov ecx, [ebp+lpFileName] .text:004FFD83 push ecx ; lpFileName .text:004FFD84 call ds:CreateFileA .text:004FFD8A mov edx, [ebp+var_4] .text:004FFD8D mov [edx+12Ch], eax .text:004FFD93 mov eax, [ebp+var_4] .text:004FFD96 cmp dword ptr [eax+12Ch], 0FFFFFFFFh .text:004FFD9D jnz short loc_4FFDA3 .text:004FFD9F xor eax, eax .text:004FFDA1 jmp short loc_4FFDF3 .text:004FFDA3 ; --------------------------------------------------------------------------- .text:004FFDA3 .text:004FFDA3 loc_4FFDA3: ; CODE XREF: sub_4FFD4E+4Fj .text:004FFDA3 mov ecx, [ebp+var_4] .text:004FFDA6 call sub_4FFDF9 .text:004FFDAB mov ecx, [ebp+var_4] .text:004FFDAE mov edx, [ecx+12Ch] .text:004FFDB4 push edx ; hObject .text:004FFDB5 call ds:CloseHandle .text:004FFDBB mov eax, [ebp+var_4] .text:004FFDBE mov dword ptr [eax+12Ch], 0FFFFFFFFh .text:004FFDC8 mov ecx, [ebp+var_4] .text:004FFDCB call sub_4FFFD9 .text:004FFDD0 mov ecx, [ebp+var_4] .text:004FFDD3 call sub_4FFF08 .text:004FFDD8 push 100h ; size_t .text:004FFDDD push 0 ; int .text:004FFDDF mov ecx, [ebp+var_4] .text:004FFDE2 add ecx, 1Dh .text:004FFDE5 push ecx ; void * .text:004FFDE6 call _memset .text:004FFDEB add esp, 0Ch .text:004FFDEE mov eax, 1 .text:004FFDF3 .text:004FFDF3 loc_4FFDF3: ; CODE XREF: sub_4FFD4E+1Bj .text:004FFDF3 ; sub_4FFD4E+53j .text:004FFDF3 mov esp, ebp .text:004FFDF5 pop ebp .text:004FFDF6 retn 4 .text:004FFDF6 sub_4FFD4E endp