Function at 0x413f20
Capabilities:
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x88c
mov eax, dword [0x4f2500]
xor eax, esp
mov dword [esp + 0x888], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x48a]
push edx
mov dword [esp + 0x2c], eax
mov word [esp + 0x48c], cx
call fcn.004276b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x28e]
push ecx
mov word [esp + 0x290], ax
call fcn.004276b0
add esp, 0x18
lea edx, [esp + 0x10]
push edx
push 0
push 0
mov dword [esp + 0x1c], 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x413fba
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x480]
push eax
push ecx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [0x4f36ec]
mov edx, dword [eax + 0xc]
mov ecx, 0x4f36ec
call edx
add eax, 0x10
mov dword [esp + 0x10], eax
lea eax, [esp + 0x480]
push eax
push 0x4cd9c8
lea edi, [esp + 0x18]
call fcn.00404650
add esp, 8
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x414005
lea edi, [esp + 0x278]
call fcn.00412fd0
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push ebx
call esi
lea ecx, [esp + 0x480]
push ecx
push 0x4cd9e4
lea edi, [esp + 0x18]
call fcn.00404650
lea eax, [esp + 0x280]
add esp, 8
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x414031
sub eax, edx
sar eax, 1
jne 0x41407f
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x484]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x41407f
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x414083
lea edi, [esp + 0x278]
call fcn.00412fd0
jmp 0x414083
mov ebx, dword [esp + 0x10]
push ebx
call esi
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x278]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00413de0
mov eax, dword [0x4f36ec]
mov edx, dword [eax + 0xc]
mov ecx, 0x4f36ec
call edx
add eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [0x4f7510]
test eax, eax
jne 0x4140dc
push 0x24d0
call fcn.0042336c
add esp, 4
test eax, eax
je 0x4140d5
mov esi, eax
call fcn.00415ef0
jmp 0x4140d7
xor eax, eax
mov dword [0x4f7510], eax
add eax, 0x410
push eax
push str._s_resdesk.ico
lea edi, [esp + 0x24]
call fcn.00404650
mov eax, dword [0x4f7510]
add esp, 8
test eax, eax
jne 0x41411d
push 0x24d0
call fcn.0042336c
add esp, 4
test eax, eax
je 0x414116
mov esi, eax
call fcn.00415ef0
jmp 0x414118
xor eax, eax
mov dword [0x4f7510], eax
cmp dword [eax + 0x22c4], 0
mov eax, 0x4cbd48
jne 0x414130
mov eax, 0x4cbc74
lea esi, [esp + 0x24]
call fcn.004032d0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x692]
push ecx
mov word [esp + 0x694], ax
call fcn.004276b0
add esp, 0xc
lea edx, [esp + 0x14]
push edx
push 0
push 0
mov dword [esp + 0x20], 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x414290
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x688]
push eax
push ecx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov edx, dword [esp + 0x14]
push edx
mov esi, eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
test esi, esi
je 0x414290
mov edi, dword [esp + 0x18]
mov eax, dword [edi - 0xc]
test eax, eax
jne 0x4141c1
push str._main
lea eax, [esp + 0x1c]
push eax
mov ebx, 5
call fcn.00403580
jmp 0x4141ed
js 0x4141de
push str._main
push edi
call fcn.00424e3d
add esp, 8
test eax, eax
je 0x4141de
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jne 0x4141f1
lea ecx, [esp + 0x18]
push ecx
mov edx, str.__main
call fcn.00404370
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov edx, dword [ebx + 0x22c4]
push 1
push edx
lea eax, [esp + 0x690]
lea esi, [esp + 0x1c]
call fcn.00414330
mov esi, dword [esp + 0x14]
cmp dword [esi - 4], 1
jle 0x41422a
mov eax, dword [esi - 0xc]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.00403690
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push esi
add ebx, 0xc30
push ebx
mov ebx, dword [esp + 0x2c]
push edx
mov edx, edi
lea ecx, [esp + 0x694]
call fcn.00412e10
mov eax, dword [esi - 8]
push eax
push esi
call fcn.00423a17
add esp, 8
test eax, eax
js 0x414286
cmp eax, dword [esi - 8]
jg 0x414286
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
lea eax, [esi - 0x10]
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x414294
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x414294
push 0x80070057
call fcn.00402e50
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4142b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4142d4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4142f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414310
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x894]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042292e
mov esp, ebp
pop ebp
ret 4