Function at 0x4016ef
Capabilities:
Check if file exists
Delete file

Disassembly:
push ebp
sub esp, 0x208
lea ebp, [esp - 4]
mov eax, dword [0x40d03c]
xor eax, ebp
mov dword [ebp + 0x208], eax
push 0x30
mov eax, 0x409643
call fcn.004024e5
mov eax, dword [ebp + 0x214]
mov esi, dword [ebp + 0x21c]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x218]
mov dword [ebp - 0x3c], eax
xor eax, eax
xor edi, edi
push 0x206
mov word [ebp], ax
lea eax, [ebp + 2]
push edi
push eax
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x20], edi
call fcn.004025d0
add esp, 0xc
push 0x104
lea eax, [ebp]
push eax
mov ecx, 0x40dd04
call fcn.00401a59
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x10]
call fcn.004016aa
mov dword [ebp - 4], edi
push str._rungreenCore
push esi
call fcn.00401efe
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
pop ecx
pop ecx
push dword [ebp - 0x10]
test eax, eax
setne bl
mov byte [ebp - 0x19], bl
call esi
test eax, eax
je 0x401943
push str.greenFrame.newupd
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00401626
mov byte [ebp - 4], 1
push str.greenCore.newupd
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00401626
add esp, 0x18
mov byte [ebp - 4], 2
test bl, bl
jne 0x40192b
push dword [ebp - 0x28]
call esi
test eax, eax
je 0x40192b
push dword [ebp - 0x30]
call esi
test eax, eax
je 0x40192b
push str.greenFrame.dll
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00401626
mov byte [ebp - 4], 3
push str.greenCore.dll
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00401626
add esp, 0x18
mov byte [ebp - 4], 4
push dword [ebp - 0x24]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
call esi
test eax, eax
je 0x401913
push dword [ebp - 0x2c]
call esi
mov eax, dword [ebp - 0x24]
cmp eax, edi
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x14], eax
mov ebx, 0x3fffffff
je 0x40184a
push eax
call edi
inc eax
cmp eax, ebx
jle 0x401850
and dword [ebp - 0x18], 0
jmp 0x40186b
lea esi, [eax + eax]
mov eax, esi
call fcn.004025a0
mov eax, esp
push 3
push esi
push dword [ebp - 0x14]
push eax
call fcn.0040103e
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x40187d
push eax
call edi
inc eax
cmp eax, ebx
jle 0x401881
xor eax, eax
jmp 0x401899
lea esi, [eax + eax]
mov eax, esi
call fcn.004025a0
mov eax, esp
push 3
push esi
push dword [ebp - 0x14]
push eax
call fcn.0040103e
push dword [ebp - 0x18]
push eax
call fcn.00402562
mov eax, dword [ebp - 0x2c]
pop ecx
pop ecx
mov dword [ebp - 0x14], eax
test eax, eax
je 0x4018b6
push eax
call edi
inc eax
cmp eax, ebx
jle 0x4018bc
and dword [ebp - 0x18], 0
jmp 0x4018d7
lea esi, [eax + eax]
mov eax, esi
call fcn.004025a0
mov eax, esp
push 3
push esi
push dword [ebp - 0x14]
push eax
call fcn.0040103e
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x4018e9
push eax
call edi
inc eax
cmp eax, ebx
jle 0x4018ed
xor eax, eax
jmp 0x401905
lea esi, [eax + eax]
mov eax, esi
call fcn.004025a0
mov eax, esp
push 3
push esi
push dword [ebp - 0x14]
push eax
call fcn.0040103e
push dword [ebp - 0x18]
push eax
call fcn.00402562
mov bl, byte [ebp - 0x19]
pop ecx
pop ecx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c]
call fcn.00401332
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x24]
call fcn.00401332
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x30]
call fcn.00401332
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.00401332
mov esi, str.greenCore.dll
test bl, bl
jne 0x401951
mov esi, str.greenFrame.dll
push esi
lea ecx, [ebp - 0x10]
call fcn.004015dc
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
test esi, esi
jne 0x401972
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test esi, esi
je 0x4019dc
mov eax, str.GogreenCore
test bl, bl
jne 0x40198a
mov eax, str.GogreenFrame
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
movzx edx, bl
neg edx
sbb edx, edx
movzx ecx, bl
and edx, eax
neg ecx
sbb ecx, ecx
not ecx
and ecx, eax
test bl, bl
je 0x4019bb
test edx, edx
je 0x4019d5
push dword [ebp - 0x34]
push dword [ebp - 0x3c]
push dword [ebp - 0x38]
call edx
jmp 0x4019d0
test ecx, ecx
je 0x4019d5
push dword [ebp + 0x220]
push dword [ebp - 0x34]
push dword [ebp - 0x3c]
push dword [ebp - 0x38]
call ecx
mov dword [ebp - 0x20], eax
jmp 0x4019dc
mov dword [ebp - 0x20], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.00401332
mov eax, dword [ebp - 0x20]
lea esp, [ebp - 0x4c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x208]
xor ecx, ebp
call fcn.004024d6
add ebp, 0x20c
leave
ret 0x10