Function at 0x451c2c
Capabilities:
Check if file exists
Copy file
Delete file
Enumerate processes
Get file attributes

Disassembly:
push 0x2ec
mov eax, 0x4d2a7a
call fcn.004aaeb3
mov dword [ebp - 0x2f0], ecx
push str.CGameDesktopShellLink::DoAskCreateIcon_In
push ecx
call fcn.0044fe3d
pop ecx
push eax
call fcn.0044fe7b
pop ecx
pop ecx
xor ebx, ebx
or edi, 0xffffffff
push 0xf
mov esi, ebx
mov dword [ebp - 0x30], ebx
pop eax
mov dword [ebp - 0x2f8], esi
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x40], bl
mov dword [ebp - 4], ebx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], ebx
mov byte [ebp - 0x58], bl
lea ecx, [ebp - 0x160]
mov byte [ebp - 4], 1
call fcn.00453676
mov byte [ebp - 4], 2
call fcn.00454149
push ebx
push 2
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x2f4], edi
mov dword [ebp - 0x2e8], 0x128
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov ebx, eax
cmp ebx, edi
jne 0x451cbb
mov eax, edi
jmp 0x451cfb
lea eax, [ebp - 0x2e8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_Process32First]
test eax, eax
je 0x451cee
mov esi, edi
lea eax, [ebp - 0x2e8]
inc esi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_Process32Next]
test eax, eax
jne 0x451ccf
mov dword [ebp - 0x2f4], esi
mov esi, dword [ebp - 0x2f8]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x2f4]
mov dword [ebp - 0x120], eax
lea eax, [ebp - 0x104]
push eax
call fcn.0045265c
lea eax, [ebp - 0x11c]
push eax
call fcn.0045417e
lea ecx, [ebp - 0x160]
call fcn.004530ac
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [ebp - 0x160]
test eax, eax
je 0x451d3e
xor esi, esi
mov edi, eax
inc esi
jmp 0x452059
call fcn.00453442
test al, al
jne 0x451d4f
push 2
pop esi
jmp 0x452053
call fcn.00436174
push eax
push str.LastAskedDay
push str.GameLink
push ecx
call fcn.0044cc7a
pop ecx
mov ecx, eax
call fcn.0044d0a4
mov ecx, dword [ebp - 0xfc]
lea eax, [ecx - 1]
cmp eax, 0x16b
ja 0x451d96
push ecx
push str.AskInterval
push str.GameLink
push ecx
call fcn.0044cc7a
pop ecx
mov ecx, eax
call fcn.0044d0a4
cmp dword [ebp - 0xf8], 0
jne 0x451dd1
xor ebx, ebx
push ebx
push str.CGameDesktopShellLink::DoAskCreateIcon_out_Excute:_d
call fcn.0044fe3d
push eax
call fcn.0044fe7b
add esp, 0xc
lea ecx, [ebp - 0x160]
call fcn.0045372a
push ebx
push 1
lea ecx, [ebp - 0x58]
call fcn.004044e5
push ebx
jmp 0x452103
mov eax, dword [ebp - 0xf0]
sub eax, dword [ebp - 0xf4]
sar eax, 4
cmp eax, 1
jae 0x451dec
push 8
jmp 0x451d49
lea ecx, [ebp - 0xe8]
call fcn.00452e60
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xe8]
push dword [ebp - 0xf4]
call fcn.00452eeb
test al, al
je 0x452014
lea ecx, [ebp - 0xe8]
call fcn.00452f93
test al, al
je 0x452014
cmp dword [ebp - 0xb0], 0x10
lea eax, [ebp - 0xc4]
cmovae eax, dword [ebp - 0xc4]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004540c8
mov byte [ebp - 4], 4
cmp dword [ebp - 0x7c], 0
jne 0x451e79
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, edi
je 0x451e79
push 5
pop esi
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.004044e5
jmp 0x452017
cmp dword [ebp - 0x78], 0
mov byte [ebp - 0x2e9], 0
jne 0x451eb0
lea eax, [ebp - 0x2e9]
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.0045287d
test al, al
je 0x451eb0
cmp byte [ebp - 0x2e9], 0
jne 0x451eac
cmp dword [ebp - 0x7c], 0
jne 0x451eb0
push 0xa
jmp 0x451e67
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xac]
push eax
call fcn.00452aa4
test eax, eax
jne 0x451ec8
push 6
jmp 0x451e67
mov ecx, dword [ebp - 0x2f0]
call fcn.0045f119
mov edx, dword [ebp - 0x2f0]
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x1c0]
call fcn.00443f1c
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x70]
mov edx, eax
mov dword [esp], str..ico
call fcn.0040360e
pop ecx
push 0
push 1
lea ecx, [ebp - 0x1c0]
mov byte [ebp - 4], 7
call fcn.004044e5
cmp dword [ebp - 0x5c], 0x10
lea eax, [ebp - 0x70]
cmovae eax, dword [ebp - 0x70]
push eax
call ebx
cmp dword [ebp - 0x5c], 0x10
lea ecx, [ebp - 0x70]
push 1
cmovae ecx, dword [ebp - 0x70]
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
push ecx
cmovae eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x451f5a
push 0xc
pop esi
push 0
push 1
lea ecx, [ebp - 0x70]
call fcn.004044e5
jmp 0x451e68
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call ebx
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00454323
test eax, eax
je 0x451fe9
xor ebx, ebx
lea ecx, [ebp - 0x70]
xor esi, esi
push ebx
inc esi
push esi
call fcn.004044e5
push ebx
push esi
lea ecx, [ebp - 0x28]
call fcn.004044e5
push ebx
push esi
lea ecx, [ebp - 0x94]
call fcn.004044e5
push ebx
push esi
lea ecx, [ebp - 0xac]
call fcn.004044e5
push ebx
push esi
lea ecx, [ebp - 0xc4]
call fcn.004044e5
push ebx
push esi
lea ecx, [ebp - 0xe0]
call fcn.004044e5
lea ecx, [ebp - 0x160]
call fcn.0045372a
push ebx
push esi
lea ecx, [ebp - 0x58]
call fcn.004044e5
push ebx
push esi
jmp 0x452105
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
lea eax, [ebp - 0xc4]
cmovae ecx, dword [ebp - 0x28]
cmp dword [ebp - 0xb0], 0x10
push ecx
cmovae eax, dword [ebp - 0xc4]
push eax
call fcn.0045214a
jmp 0x451f49
push 9
pop esi
push 0
push 1
lea ecx, [ebp - 0x94]
call fcn.004044e5
push 0
push 1
lea ecx, [ebp - 0xac]
call fcn.004044e5
push 0
push 1
lea ecx, [ebp - 0xc4]
call fcn.004044e5
push 0
push 1
lea ecx, [ebp - 0xe0]
call fcn.004044e5
lea ecx, [ebp - 0x160]
call fcn.0045372a
push 0
push 1
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0
call fcn.004044e5
push edi
push esi
push str.CGameDesktopShellLink::DoAskCreateIcon_out_et:_d__ec:_d
push ecx
call fcn.0044fe3d
pop ecx
push eax
call fcn.0044fe7b
add esp, 0x10
lea ecx, [ebp - 0x1a8]
call fcn.00453b86
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x1a8]
test esi, esi
mov dword [ebp - 0x164], esi
mov dword [ebp - 0x168], edi
sete byte [ebp - 0x16c]
call fcn.004530ac
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4520d8
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
push eax
call ebx
push str.CGameDesktopShellLink::DoAskCreateIcon_Out
push ecx
call fcn.0044fe3d
pop ecx
push eax
call fcn.0044fe7b
pop ecx
pop ecx
lea ecx, [ebp - 0x1a8]
mov dword [ebp - method.CGDSCreateRetPackage.virtual_0], vtable.CGDSCreateRetPackage.0
call fcn.00453081
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.004044e5
xor al, al
call fcn.004aae62
ret