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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x119c
call fcn.00449a20
mov eax, dword [0x4a9068]
xor eax, esp
mov dword [esp + 0x1198], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
mov edi, dword [ebp + 0xc]
cmp dword [ebp + 0x14], ebx
jne 0x40ba9f
cmp dword [esi + 0x247c], ebx
jne 0x40ba9f
mov eax, dword [esi]
push ebx
push ebx
push esi
call dword [eax + 0x10]
test eax, eax
jne 0x40be6d
xor ecx, ecx
inc ecx
call fcn.0040e3dc
test eax, eax
je 0x40ba9f
mov eax, 0x80070204
jmp 0x40be6d
push 0x10
call fcn.00410417
pop ecx
call fcn.004105d4
push ebx
lea ecx, [esi + 8]
call fcn.0040c915
test eax, eax
je 0x40bac2
push 2
mov ecx, eax
call fcn.0040cdf6
mov eax, dword [esi]
push edi
push esi
call dword [eax + 0x20]
mov dword [esp + 0x10], eax
cmp dword [ebp + 0x10], ebx
je 0x40bbdc
xor edx, edx
mov ecx, edi
call fcn.00414cc5
test eax, eax
jne 0x40baed
cmp dword [esp + 0x10], ebx
jge 0x40bbdc
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp eax, 0xfffffffc
push 0xf
pop ecx
lea eax, [esp + 0x14]
mov dword [esp + 0x3c], ebx
push eax
push ecx
lea eax, [esp + 0x88]
mov dword [esp + 0x48], ecx
push eax
mov byte [esp + 0x38], bl
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ecx
mov byte [esp + 0x20], bl
push ebx
jne 0x40bb6f
call esi
push ecx
push eax
push 0x88
lea ecx, [esp + 0x5c]
call fcn.0040a3a7
pop ecx
mov ecx, eax
call fcn.0042a880
push eax
lea ecx, [esp + 0x30]
call fcn.00403dcf
lea ecx, [esp + 0x80]
call fcn.004049ff
lea ecx, [esp + 0x60]
call fcn.004049ff
lea ecx, [esp + 0x44]
call fcn.004049ff
lea ecx, [esp + 0x14]
call fcn.004049ff
jmp 0x40bbbe
call esi
push ecx
push eax
push 0x74
lea ecx, [esp + 0x5c]
call fcn.0040a3a7
pop ecx
mov ecx, eax
call fcn.0042a880
push eax
lea ecx, [esp + 0x30]
call fcn.00403dcf
lea ecx, [esp + 0x80]
call fcn.004049ff
lea ecx, [esp + 0x60]
call fcn.004049ff
lea ecx, [esp + 0x44]
call fcn.004049ff
lea ecx, [esp + 0x14]
call fcn.004049ff
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [esp + 0x44]
call fcn.0042a2c3
lea eax, [esp + 0x2c]
mov dword [esp + 0x78], 0x10
push eax
push ebx
call esi
jmp 0x40be2a
push 0x800
lea eax, [esp + 0x9a4]
push ebx
push eax
call fcn.0044be20
add esp, 0xc
lea eax, [esp + 0x1a0]
push 0x800
push ebx
push eax
call fcn.0044be20
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 4
jle 0x40bca9
push str..msi
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 0xfffffffc
add eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40bca9
push 0x104
lea eax, [esp + 0x9c]
push ebx
push eax
call fcn.0044be20
add esp, 0xc
lea eax, [esp + 0x98]
push eax
push ebx
push ebx
push 0x25
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
js 0x40bce6
push edi
lea eax, [esp + 0x9c]
mov edi, 0x800
push eax
push str.__smsiexec.exe___i__s
push 0xffffffffffffffff
lea eax, [esp + 0x9b0]
push edi
push eax
call fcn.0040a32a
lea eax, [esi + 0xfec]
push eax
push 0x489cc8
push 0xffffffffffffffff
lea eax, [esp + 0x1c4]
push edi
push eax
call fcn.0040a32a
add esp, 0x2c
jmp 0x40bce6
push edi
push str.__s_
push 0xffffffffffffffff
mov edi, 0x800
lea eax, [esp + 0x9ac]
push edi
push eax
call fcn.0040a32a
add esp, 0x14
lea eax, [esi + 0xfec]
push eax
push 0x489cc8
push 0xffffffffffffffff
lea eax, [esp + 0x1ac]
push edi
push eax
call fcn.0040a32a
add esp, 0x14
push ebx
lea eax, [esp + 0x1a4]
push eax
lea eax, [esp + 0x9a8]
push eax
call fcn.0040be84
mov esi, eax
test esi, esi
je 0x40be6b
cmp esi, 0xbc2
je 0x40be6b
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea eax, [esp + 0x14]
push 0xf
pop ecx
push eax
push ecx
lea eax, [esp + 0x88]
mov dword [esp + 0x44], ebx
push eax
push ebx
mov dword [esp + 0x50], ecx
mov byte [esp + 0x3c], bl
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ecx
mov byte [esp + 0x24], bl
call edi
push ecx
lea ecx, [esp + 0x54]
push eax
cmp esi, 0xffffffff
jne 0x40bd94
push 0x89
call fcn.0040a3a7
pop ecx
mov ecx, eax
call fcn.0042a880
push eax
lea ecx, [esp + 0x30]
call fcn.00403dcf
lea ecx, [esp + 0x80]
call fcn.004049ff
lea ecx, [esp + 0x60]
call fcn.004049ff
lea ecx, [esp + 0x44]
call fcn.004049ff
lea ecx, [esp + 0x14]
call fcn.004049ff
jmp 0x40be11
push 0x73
call fcn.0040a3a7
pop ecx
mov ecx, eax
call fcn.0042a880
push eax
lea ecx, [esp + 0x30]
call fcn.00403dcf
lea ecx, [esp + 0x80]
call fcn.004049ff
lea ecx, [esp + 0x60]
call fcn.004049ff
lea ecx, [esp + 0x44]
call fcn.004049ff
lea ecx, [esp + 0x14]
call fcn.004049ff
push ebx
push ebx
lea eax, [esp + 0x18]
push eax
push 0x400
push esi
push ebx
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
test eax, eax
je 0x40be11
mov esi, dword [esp + 0x10]
push esi
call fcn.004519b0
pop ecx
push eax
push esi
lea ecx, [esp + 0x34]
call fcn.00404b18
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [esp + 0x44]
call fcn.0042a2c3
lea eax, [esp + 0x2c]
mov dword [esp + 0x78], 0x10
push eax
push ebx
call edi
push ecx
push eax
push 0x72
lea ecx, [esp + 0x54]
call fcn.0042a2eb
pop ecx
mov ecx, eax
call fcn.0042a465
mov ecx, eax
call fcn.0042a4ab
lea ecx, [esp + 0x5c]
call fcn.004049d1
lea ecx, [esp + 0x44]
call fcn.004049d1
lea ecx, [esp + 0x2c]
call fcn.004049ff
call fcn.004104a4
mov ebx, 0x80004005
mov eax, ebx
mov ecx, dword [esp + 0x11a4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004489ea
mov esp, ebp
pop ebp
ret 0x10