Function at 0x4159fc
Capabilities:
Check if file exists
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x234
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 4]
add eax, 0x1c
mov ecx, dword [eax]
cmp dword [ecx - 0xc], 0
jl 0x415a27
mov dword [ebp - 0xc], ecx
add ecx, 0xfffffff4
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x415a3a
mov ecx, dword [0x43950c]
mov dword [ebp - 0xc], ecx
push dword [eax]
lea ecx, [ebp - 0xc]
call fcn.0040c1c7
mov ebx, 0x43d520
lea eax, [ebp - 0xc]
push ebx
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0041b302
and word [ebp - 0x234], 0
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x232]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0
lea eax, [ebp - 0x234]
push 0x17
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x415ac8
mov eax, dword [0x43950c]
mov dword [ebp - 4], eax
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 4]
push 0x43d504
push eax
call fcn.0040a3c5
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
add esp, 0xc
push dword [ebp - 4]
call edi
test eax, eax
je 0x415abe
push dword [ebp - 4]
call fcn.004206b8
push dword [ebp - 0xc]
call fcn.0042059f
pop ecx
pop ecx
lea ecx, [ebp - 4]
call fcn.00404c0d
jmp 0x415ace
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp dword [ebp + 8], 0
je 0x415aee
push dword [ebp - 0xc]
call fcn.0042059f
push 0
push dword [ebp - 0x10]
push dword [esi + 0x30]
call fcn.0041d14e
add esp, 0x10
jmp 0x415b07
push dword [ebp - 0x10]
call edi
test eax, eax
je 0x415b07
push 0
push dword [ebp - 0x10]
push dword [esi + 0x30]
call fcn.0041d14e
add esp, 0xc
mov eax, dword [esi + 4]
cmp dword [eax + 4], 9
jge 0x415b68
lea eax, [ebp - 0xc]
push 0x43d4dc
push eax
lea eax, [ebp - 4]
push eax
call fcn.0041b302
cmp dword [ebp + 8], 0
jne 0x415b31
push dword [ebp - 4]
call edi
test eax, eax
je 0x415b60
mov eax, dword [esi + 4]
push 0x43d4c0
add eax, 0x14
push eax
lea eax, [ebp - 8]
push eax
call fcn.0041b302
push 0x43d4ac
push dword [ebp - 4]
push dword [eax]
call fcn.0041d14e
add esp, 0xc
lea ecx, [ebp - 8]
call fcn.00404c0d
lea ecx, [ebp - 4]
call fcn.00404c0d
lea eax, [ebp - 0xc]
push 0x43d484
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.0041b302
cmp dword [ebp + 8], 0
jne 0x415b89
push dword [ebp - 0x18]
call edi
test eax, eax
je 0x415b9c
push 0x43d47c
push dword [ebp - 0x18]
push dword [esi + 0x30]
call fcn.0041d14e
add esp, 0xc
lea eax, [ebp - 0xc]
push 0x43d464
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0041b302
cmp dword [ebp + 8], 0
jne 0x415bbd
push dword [ebp - 0x14]
call edi
test eax, eax
je 0x415bec
mov eax, dword [esi + 4]
push 0x43d450
add eax, 0x14
push eax
lea eax, [ebp - 8]
push eax
call fcn.0041b302
push 0x43d440
push dword [ebp - 0x14]
push dword [eax]
call fcn.0041d14e
add esp, 0xc
lea ecx, [ebp - 8]
call fcn.00404c0d
lea eax, [ebp - 0xc]
push 0x43d420
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041b302
cmp dword [ebp + 8], 0
jne 0x415c0d
push dword [ebp - 0x20]
call edi
test eax, eax
je 0x415c39
mov eax, dword [esi + 4]
push 0x43d3fc
add eax, 0x14
push eax
lea eax, [ebp - 8]
push eax
call fcn.0041b302
push 0
push dword [ebp - 0x20]
push dword [eax]
call fcn.0041d14e
add esp, 0xc
lea ecx, [ebp - 8]
call fcn.00404c0d
cmp dword [esi + 0x44], 0
mov edi, 0x43d3dc
je 0x415ca2
mov eax, dword [esi + 4]
push edi
add eax, 0x24
push eax
lea eax, [ebp - 8]
push eax
call fcn.0041b302
mov eax, dword [esi + 4]
push ebx
add eax, 0x24
push eax
lea eax, [ebp - 4]
push eax
call fcn.0041b302
cmp dword [ebp + 8], 0
jne 0x415c79
push dword [ebp - 4]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415c92
push 0
push dword [ebp - 4]
push dword [esi + 0x30]
call fcn.0041d14e
add esp, 0xc
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 4]
call fcn.00404c0d
lea ecx, [ebp - 8]
call fcn.00404c0d
mov eax, dword [esi + 4]
push edi
add eax, 0x28
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0041b302
mov eax, dword [esi + 4]
push ebx
add eax, 0x28
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0041b302
push dword [ebp - 0x1c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415cea
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
push dword [ebp - 0x28]
push dword [esi + 0x30]
call fcn.0041d14e
add esp, 0xc
mov eax, dword [esi + 4]
cmp dword [eax + 4], 9
jl 0x415d7e
mov eax, dword [esi + 0x20]
push 0x43d3cc
push eax
call fcn.0042042f
pop ecx
test eax, eax
pop ecx
jge 0x415d6f
mov eax, dword [esi + 4]
push 0x43d384
add eax, 0x28
push eax
lea eax, [ebp - 4]
push eax
call fcn.0041b302
push dword [ebp - 4]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415d67
mov eax, dword [esi + 4]
push 0x43d354
add eax, 0x14
push eax
lea eax, [ebp - 8]
push eax
call fcn.0041b302
push 0
push 0xbb8
push 0
push dword [ebp - 8]
call fcn.0041ff69
add esp, 0x10
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 8]
call fcn.00404c0d
lea ecx, [ebp - 4]
call fcn.00404c0d
cmp dword [esi + 0x48], 0
je 0x415ddf
mov ecx, esi
call fcn.004160e0
jmp 0x415ddf
cmp dword [esi + 0x48], 0
je 0x415ddf
add eax, 0x28
push edi
push eax
lea eax, [ebp - 8]
push eax
call fcn.0041b302
mov eax, dword [esi + 4]
push ebx
add eax, 0x28
push eax
lea eax, [ebp - 4]
push eax
call fcn.0041b302
cmp dword [ebp + 8], 0
jne 0x415db6
push dword [ebp - 4]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415dcf
push 0
push dword [ebp - 4]
push dword [esi + 0x30]
call fcn.0041d14e
add esp, 0xc
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 4]
call fcn.00404c0d
lea ecx, [ebp - 8]
call fcn.00404c0d
mov eax, dword [esi + 4]
push ebx
add eax, 0x20
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0041b302
mov eax, dword [esi + 4]
push edi
add eax, 0x20
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0041b302
cmp dword [ebp + 8], 0
pop edi
pop esi
pop ebx
jne 0x415e17
push dword [ebp - 0x2c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415e20
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x24]
call fcn.00404c0d
lea ecx, [ebp - 0x2c]
call fcn.00404c0d
lea ecx, [ebp - 0x28]
call fcn.00404c0d
lea ecx, [ebp - 0x1c]
call fcn.00404c0d
lea ecx, [ebp - 0x20]
call fcn.00404c0d
lea ecx, [ebp - 0x14]
call fcn.00404c0d
lea ecx, [ebp - 0x18]
call fcn.00404c0d
lea ecx, [ebp - 0x10]
call fcn.00404c0d
lea ecx, [ebp - 0xc]
call fcn.00404c0d
leave
ret 4