Function at 0x46dbd2
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x154
push ebx
push esi
xor esi, esi
push edi
cmp dword [0x4d9abc], esi
je 0x46dd01
mov ebx, dword [ebp + 0x10]
cmp dword [ebx], 5
je 0x46dcde
mov edi, dword [ebp + 0xc]
push esi
push edi
call fcn.0046c0c4
pop ecx
cmp eax, esi
pop ecx
je 0x46dc11
cmp dword [ebx], 2
je 0x46dcd6
cmp eax, 1
jne 0x46dcd1
mov eax, dword [0x4cfce8]
push edi
lea ecx, [ebp + 0x10]
mov dword [ebp - 4], eax
call fcn.00402c35
lea eax, [ebp + 0x10]
push 0x80
push eax
call fcn.00414327
pop ecx
lea eax, [ebp - 4]
pop ecx
push dword [ebp + 0x10]
push 0x2b65
push eax
call fcn.00413a34
mov ax, word [ebx]
add esp, 0xc
lea ecx, [ebp - 0x154]
push 0x7f02
push eax
push dword [ebp - 4]
push 0x2b33
call fcn.00421d9c
push esi
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x154]
call fcn.00427fc3
cmp eax, 3
mov dword [ebx], eax
je 0x46dcaf
cmp eax, 7
je 0x46dcac
cmp eax, 2
je 0x46dcac
lea ecx, [ebp - 0x154]
call fcn.0042274a
lea ecx, [ebp + 0x10]
call fcn.004010b4
lea ecx, [ebp - 4]
call fcn.004010b4
jmp 0x46dce1
push 1
pop esi
lea ecx, [ebp - 0x154]
call fcn.0042274a
lea ecx, [ebp + 0x10]
call fcn.004010b4
lea ecx, [ebp - 4]
call fcn.004010b4
mov eax, esi
jmp 0x46ddf3
cmp eax, 0xffffffff
jne 0x46dce1
push 1
pop eax
jmp 0x46ddf3
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push esi
push esi
push 3
mov eax, dword [eax]
push esi
push 1
push SysReAllocStringLen
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp + 0x10], eax
jne 0x46dd08
xor eax, eax
jmp 0x46ddf3
push dword [edi]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x46dd24
test al, 1
je 0x46dd24
and al, 0xfe
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov eax, dword [edi]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, esi
mov dword [ebp + 8], eax
jne 0x46dd38
mov dword [ebp + 8], esi
jmp 0x46dd5d
push eax
call ebx
mov edi, eax
inc edi
lea eax, [edi + edi]
add eax, 3
and al, 0xfc
call fcn.004c5de0
mov eax, esp
push edi
push dword [ebp + 8]
push eax
call fcn.00404eef
mov edi, dword [ebp + 0xc]
mov dword [ebp + 8], eax
push dword [edi]
call ebx
lea edi, [eax + eax + 2]
lea eax, [ebp - 8]
push eax
push esi
lea eax, [ebp - 0xc]
push esi
push eax
lea eax, [ebp - 0x24]
push 0x14
push eax
push dword [ebp + 0x10]
mov dword [ebp - 8], esi
mov dword [ebp - 0x24], 5
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], edi
call dword [0x4d9abc]
mov ebx, eax
cmp ebx, esi
je 0x46ddc9
lea eax, [ebp - 8]
push eax
push esi
lea eax, [ebp - 0xc]
push esi
push eax
push edi
push dword [ebp + 8]
push dword [ebp + 0x10]
call dword [0x4d9abc]
mov ebx, eax
lea eax, [ebp - 8]
push eax
push esi
lea eax, [ebp - 0xc]
push 1
push eax
push esi
push esi
push dword [ebp + 0x10]
call dword [0x4d9abc]
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebx, esi
je 0x46ddf1
mov eax, dword [ebp + 0xc]
push esi
push 0xffffffffffffffff
mov eax, dword [eax]
push eax
call fcn.004142d1
pop ecx
pop ecx
push eax
push 1
push 2
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
mov eax, ebx
lea esp, [ebp - 0x160]
pop edi
pop esi
pop ebx
leave
ret