Function at 0x43e800
Capabilities:
Create directory
Create process on windows
Create thread
Delete file
Hide graphical window
Schedule task via schtasks

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5b4
mov eax, dword [0x559410]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push str.__InpaintMAXcn_dlg_
mov dword [ebp - 0x5ac], eax
mov dword [0x5634a4], eax
call fcn.0044b390
add esp, 4
test eax, eax
je 0x43f15a
push 0x104
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.00455160
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x104
lea eax, [ebp - 0x108]
push 0
push eax
call fcn.00455160
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.004248f0
add esp, 0x14
mov dword [ebp - 0x51c], 0xf
cmp byte [ebp - 0x108], 0
mov dword [ebp - 0x520], 0
mov byte [ebp - 0x530], 0
jne 0x43e8b4
xor ecx, ecx
jmp 0x43e8c9
lea ecx, [ebp - 0x108]
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43e8c0
sub ecx, edx
push ecx
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x530]
call fcn.00405b80
push 0x3a8
lea eax, [ebp - 0x530]
push eax
lea eax, [ebp - 0x548]
push eax
call fcn.00429150
mov esi, eax
add esp, 0xc
cmp esi, 0x559048
je 0x43e93f
cmp dword [0x55905c], 8
jb 0x43e918
push dword [0x559048]
call fcn.00406890
add esp, 4
xor eax, eax
mov dword [0x55905c], 7
push esi
mov ecx, 0x559048
mov dword [0x559058], 0
mov word [0x559048], ax
call fcn.0041b9d0
cmp dword [ebp - 0x534], 8
jb 0x43e956
push dword [ebp - 0x548]
call fcn.00406890
add esp, 4
xor eax, eax
mov dword [ebp - 0x534], 7
cmp dword [ebp - 0x51c], 0x10
mov dword [ebp - 0x538], 0
mov word [ebp - 0x548], ax
jb 0x43e98a
push dword [ebp - 0x530]
call fcn.00406890
add esp, 4
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 1
call fcn.0044b6a0
call fcn.0044b740
lea eax, [ebp - 0x548]
push 0
push eax
call fcn.0042c6d0
add esp, 0xc
cmp dword [eax + 0x14], 0x10
jb 0x43e9b7
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x5b0]
call fcn.0043f2e0
cmp dword [ebp - 0x534], 0x10
jb 0x43e9da
push dword [ebp - 0x548]
call fcn.00406890
add esp, 4
push 0x5c
push dword [ebp - 0x5b0]
call fcn.0045704d
mov ecx, dword [ebp - 0x5b0]
mov edx, eax
add esp, 8
test edx, edx
jne 0x43e9fb
or edx, 0xffffffff
jmp 0x43e9fd
sub edx, ecx
mov eax, dword [ecx - 0xc]
lea ecx, [ebp - 0x5b0]
sub eax, edx
dec eax
push eax
lea eax, [ebp - 0x5b4]
push eax
call fcn.0043f710
mov esi, dword [ebp - 0x5b4]
cmp dword [esi - 0xc], 0
jl 0x43ea4d
push str._sdcn
push esi
call fcn.004570f3
add esp, 8
test eax, eax
je 0x43ea4d
mov ecx, dword [0x563450]
sub eax, esi
cmp eax, 0xffffffff
mov edx, 1
cmovne ecx, edx
mov dword [0x563450], ecx
cmp dword [0x559208], 8
mov edi, 0x5591f4
mov eax, edi
cmovae eax, dword [0x5591f4]
push eax
call fcn.00449e90
add esp, 4
test eax, eax
jne 0x43ea85
cmp dword [0x559208], 8
push eax
cmovae edi, dword [0x5591f4]
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
call fcn.0043f180
test eax, eax
jne 0x43eaa2
push eax
call fcn.0044ba00
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x43f121
push 0x208
lea eax, [ebp - 0x518]
push 0
push eax
call fcn.00455160
lea eax, [ebp - 0x518]
push eax
call fcn.0044ab50
add esp, 0x10
mov ebx, 0x5591dc
test eax, eax
je 0x43eb28
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebp - 0x518]
push eax
call edi
test eax, eax
jle 0x43eb28
lea eax, [ebp - 0x518]
mov dword [0x56345c], 1
push eax
call edi
cmp word [ebp + eax*2 - 0x51a], 0x5c
jne 0x43eb1a
lea eax, [eax*2 - 2]
cmp eax, 0x208
jae 0x43f16f
xor ecx, ecx
mov word [ebp + eax - 0x518], cx
lea eax, [ebp - 0x518]
mov ecx, ebx
push eax
call fcn.004217c0
cmp dword [0x563450], 0
jne 0x43ebdd
lea ecx, [ebp - 0x528]
call fcn.0043f3a0
push 0x85
lea ecx, [ebp - 0x528]
call fcn.00438390
push dword [ebp - 0x5ac]
call fcn.0047c08c
push 0x390
call fcn.004531b9
add esp, 8
test eax, eax
je 0x43ebcd
mov ecx, eax
call fcn.00436e50
mov ebx, eax
test ebx, ebx
je 0x43ebcd
push 0
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push 0
push 0x96c80000
push 0
push 0
mov ecx, ebx
call fcn.004778c5
mov ecx, ebx
call fcn.004a4d2b
mov ecx, ebx
mov edi, eax
call fcn.0047776f
push 1
mov ecx, ebx
call fcn.004a4d2b
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
call fcn.0047b4b6
push edi
call dword [sym.imp.USER32.dll_DestroyWindow]
lea ecx, [ebp - 0x528]
call fcn.00438180
jmp 0x43edce
push 0x563438
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea ecx, [ebp - 0x518]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43ebf1
sub ecx, edx
sar ecx, 1
je 0x43ec8a
call fcn.00426760
test al, al
jne 0x43ec7d
push 0x208
lea eax, [ebp - 0x310]
push 0
push eax
call fcn.00455160
push str.InpaintMAXSvc.exe
lea eax, [ebp - 0x518]
push eax
lea eax, [ebp - 0x310]
push 0x524b8c
push eax
call fcn.00421970
push 0
push 1
push 0
lea eax, [ebp - 0x310]
push str._stop
push eax
call fcn.0044b3f0
push 0
push 0
push 0
lea eax, [ebp - 0x310]
push str._uninstall
push eax
call fcn.0044b3f0
add esp, 0x44
push str.InpaintMAXSvc.exe
call fcn.0044bd10
add esp, 4
push str.InpaintMAX.exe
call fcn.0044bd10
add esp, 4
lea eax, [ebp - 0x5ac]
push eax
push 0
push 0
push 0x422420
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edi, eax
push 0xffffffffffffffff
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00422de0
call fcn.004230c0
call fcn.00426760
test al, al
jne 0x43ecd7
cmp dword [0x559084], 0
je 0x43ecd7
call fcn.00423980
call fcn.00426760
test al, al
jne 0x43ecea
push 1
call fcn.00423600
add esp, 4
push 0x208
lea eax, [ebp - 0x310]
push 0
push eax
call fcn.00455160
cmp dword [0x5591f0], 8
lea eax, [ebp - 0x310]
push str.InpaintMAX.exe
cmovae ebx, dword [0x5591dc]
push ebx
push 0x524af0
push eax
call fcn.00421970
add esp, 0x1c
lea ecx, [ebp - 0x530]
push str.__defstart
call fcn.00405c80
push 0x3a8
lea eax, [ebp - 0x530]
push eax
lea eax, [ebp - 0x548]
push eax
call fcn.00429150
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x43ed58
mov eax, dword [eax]
push 0
push 0
push 0
push eax
lea eax, [ebp - 0x310]
push eax
call fcn.0044b3f0
add esp, 0x14
cmp dword [ebp - 0x534], 8
jb 0x43ed85
push dword [ebp - 0x548]
call fcn.00406890
add esp, 4
xor eax, eax
mov dword [ebp - 0x534], 7
cmp dword [ebp - 0x51c], 0x10
mov dword [ebp - 0x538], 0
mov word [ebp - 0x548], ax
jb 0x43edb9
push dword [ebp - 0x530]
call fcn.00406890
add esp, 4
push 0x563438
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push 0
call fcn.0044ba00
add esp, 4
xor eax, eax
mov dword [ebp - 0x54c], 7
push 0xffffffffffffffff
push eax
push 0x5591dc
lea ecx, [ebp - 0x560]
mov dword [ebp - 0x550], 0
mov word [ebp - 0x560], ax
call fcn.004196d0
push 8
push str.missent
lea ecx, [ebp - 0x560]
call fcn.0041c070
cmp dword [ebp - 0x54c], 8
lea eax, [ebp - 0x560]
push 1
cmovae eax, dword [ebp - 0x560]
push eax
call fcn.0044a460
push str.d3dcompiler_47.dll
lea eax, [ebp - 0x548]
push 0x5591dc
push eax
call fcn.00434600
add esp, 0x14
cmp dword [eax + 0x14], 8
jb 0x43ee4d
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp - 0x534], 8
jb 0x43ee6b
push dword [ebp - 0x548]
call fcn.00406890
add esp, 4
cmp dword [0x559238], 8
mov edi, 0x559224
push dword [0x559084]
cmovae edi, dword [0x559224]
sub esp, 0x18
mov ecx, esp
push str.AutoStart
call fcn.00419370
sub esp, 0x18
mov ecx, esp
push edi
call fcn.00419370
push SysReAllocStringLen
call fcn.0041a670
add esp, 0x20
mov ecx, esp
push str.SoftwareMicrosoftwindowscurrentVersionUninstallInpaintMAX
call fcn.00419370
push SysReAllocStringLen
call fcn.00419c70
add esp, 4
mov ecx, esp
push str.SoftwareMicrosoftwindowscurrentVersionUninstallxcnte
call fcn.00419370
push SysReAllocStringLen
call fcn.00419c70
add esp, 0x1c
call fcn.00426760
test al, al
jne 0x43f0e7
cmp dword [0x559080], 0
je 0x43f0e7
push 0x7530
call dword [sym.imp.KERNEL32.dll_Sleep]
push str._c_schtasks__create__sc_minute__mo_60__tn
lea ecx, [ebp - 0x530]
call fcn.00419370
push 0x524dd4
lea ecx, [ebp - 0x530]
call fcn.00428a30
push str.InpaintMAX_update
lea ecx, [ebp - 0x530]
call fcn.00428a30
push 0x524dd4
lea ecx, [ebp - 0x530]
call fcn.00428a30
push str.__tr
lea ecx, [ebp - 0x530]
call fcn.00428a30
push 0x524dd4
lea ecx, [ebp - 0x530]
call fcn.00428a30
push 0xffffffffffffffff
push 0
push 0x5591dc
lea ecx, [ebp - 0x530]
call fcn.0041bfa0
push 0x523dbc
lea ecx, [ebp - 0x530]
call fcn.00428a30
push str.InpaintMAX.exe
lea ecx, [ebp - 0x530]
call fcn.00428a30
push 0x5262d8
lea ecx, [ebp - 0x530]
call fcn.00428a30
push str.__fstart
lea ecx, [ebp - 0x548]
call fcn.00405c80
push 0x3a8
lea eax, [ebp - 0x548]
push eax
lea eax, [ebp - 0x578]
push eax
call fcn.00429150
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x43efd9
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x530]
call fcn.00428a30
lea ecx, [ebp - 0x578]
call fcn.004193d0
lea ecx, [ebp - 0x548]
call fcn.004064e0
push str.___RL_HIGHEST
lea ecx, [ebp - 0x530]
call fcn.00428a30
cmp dword [ebp - 0x51c], 8
lea eax, [ebp - 0x530]
push 0
cmovae eax, dword [ebp - 0x530]
push 0
push eax
push 0x526304
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push str.__fstart
lea ecx, [ebp - 0x548]
call fcn.00405c80
push 0x3a8
lea eax, [ebp - 0x548]
push eax
lea eax, [ebp - 0x590]
push eax
call fcn.00429150
mov edi, eax
add esp, 0xc
cmp dword [edi + 0x14], 8
jb 0x43f06b
mov edi, dword [edi]
push str.InpaintMAX.exe
push 0x523dbc
lea eax, [ebp - 0x5a8]
push 0x5591dc
push eax
call fcn.00434600
add esp, 0xc
push eax
lea eax, [ebp - 0x578]
push eax
call fcn.004287e0
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x43f0a1
mov eax, dword [eax]
push edi
push eax
push str.InpaintMAX_update
call fcn.00426aa0
add esp, 0xc
lea ecx, [ebp - 0x578]
call fcn.004193d0
lea ecx, [ebp - 0x5a8]
call fcn.004193d0
lea ecx, [ebp - 0x590]
call fcn.004193d0
lea ecx, [ebp - 0x548]
call fcn.004064e0
lea ecx, [ebp - 0x530]
call fcn.004193d0
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [ebp - 0x54c], 8
jb 0x43f104
push dword [ebp - 0x560]
call fcn.00406890
add esp, 4
xor eax, eax
mov dword [ebp - 0x54c], 7
mov dword [ebp - 0x550], 0
mov word [ebp - 0x560], ax
lea edx, [esi - 0x10]
or esi, 0xffffffff
mov eax, esi
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x43f13d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x5b0]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x43f15a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00453c72
mov esp, ebp
pop ebp
ret 0x10
call fcn.004559ce
int3