Function at 0x428c80
Capabilities:
Check if file exists
Delete directory
Delete file
Enumerate files on windows
Get common file path
Get file attributes
Persist via run registry key
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5580fa
mov eax, dword fs:[0]
push eax
sub esp, 0x780
mov eax, dword [0x5d7b20]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x6fc], ecx
xor ebx, ebx
push 0xa
lea ecx, [ebp - 0x774]
mov dword [ebp - 4], ebx
call fcn.0045900d
push fcn.00417700
push fcn.00404770
push 5
push 4
lea eax, [ebp - 0x43c]
push eax
mov byte [ebp - 4], 1
call fcn.0053f788
mov byte [ebp - 4], 2
call fcn.0044c104
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x428d02
push 0x80004005
call fcn.00403e70
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x6f0], edi
mov dword [ebp - 0x720], ebx
mov dword [ebp - 0x70c], ebx
mov dword [ebp - 0x708], ebx
mov dword [ebp - 0x704], ebx
push 0x20a
lea ecx, [ebp - 0x21c]
push ebx
push ecx
mov byte [ebp - 4], 4
call fcn.0053e550
mov eax, dword [ebp + 8]
add esp, 0xc
push 0x2c
lea edx, [ebp - 0x774]
push edx
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x710], esp
mov esi, esp
push eax
call fcn.00404610
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00419180
mov eax, dword [ebp - 0x768]
lea ecx, [eax - 3]
add esp, 0xc
cmp ecx, 2
ja 0x42a2d7
mov edi, dword [ebp - 0x770]
xor esi, esi
cmp eax, ebx
jle 0x428dc9
lea ebx, [ebp - 0x43c]
mov eax, edi
test edi, edi
je 0x428e05
mov edi, dword [edi]
add eax, 8
push eax
mov ecx, ebx
call fcn.00405460
mov edx, dword [ebx]
push edx
push esi
push str.Parameter__d____s_n
call fcn.00415550
inc esi
add esp, 0xc
add ebx, 4
cmp esi, dword [ebp - 0x768]
jl 0x428d97
xor ebx, ebx
mov eax, dword [ebp - 0x43c]
mov esi, 8
push esi
push 0x5754e0
push eax
call fcn.0053dcfd
add esp, 0xc
test eax, eax
jne 0x428f85
call fcn.0044c104
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x428e0a
push 0x80004005
call fcn.00403e70
call fcn.00449c8f
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x6f4], eax
mov eax, dword [ebp - 0x43c]
mov byte [ebp - 4], 6
cmp dword [eax - 0xc], ebx
jge 0x428e30
or eax, 0xffffffff
jmp 0x428e4f
push 0x5754dc
push eax
call fcn.0053ea56
add esp, 8
cmp eax, ebx
jne 0x428e47
or eax, 0xffffffff
jmp 0x428e4f
sub eax, dword [ebp - 0x43c]
sar eax, 1
inc eax
push eax
lea ecx, [ebp - 0x6f8]
push ecx
lea ecx, [ebp - 0x43c]
call fcn.0040bdf0
mov esi, eax
mov eax, dword [esi]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
or eax, ecx
mov ebx, 7
mov byte [ebp - 4], bl
jge 0x428e87
push 0
mov ecx, esi
call fcn.004045b0
mov esi, dword [esi]
mov ecx, dword [ebp - 0x6fc]
lea edx, [ebp - 0x6f4]
push edx
push esi
call fcn.0041b150
mov eax, dword [ebp - 0x6f8]
add eax, 0xfffffff0
mov byte [ebp - 4], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x428ec2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x6f4]
cmp dword [esi - 0xc], 0
je 0x428f5c
mov ecx, dword [esi - 8]
mov eax, 1
sub eax, dword [esi - 4]
or ecx, eax
jge 0x428ef4
push 0
lea ecx, [ebp - 0x6f4]
call fcn.004045b0
mov esi, dword [ebp - 0x6f4]
xor ecx, ecx
mov eax, esi
mov dword [ebp - 0x444], ebx
mov dword [ebp - 0x448], 0
mov word [ebp - 0x458], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x428f12
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x458]
call fcn.004021b0
lea edx, [ebp - 0x458]
push edx
lea ecx, [ebp - 0x70c]
mov byte [ebp - 4], 8
call fcn.00423be0
cmp dword [ebp - 0x444], 8
jb 0x428f5c
mov eax, dword [ebp - 0x458]
push eax
call fcn.00449b7c
add esp, 4
lea eax, [esi - 0x10]
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429ae2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x429ae2
mov ecx, dword [ebp - 0x43c]
push str.FLD_WINDOWS
push ecx
call fcn.0053e2bf
add esp, 8
cmp eax, ebx
jne 0x428ff9
push 0x105
lea edx, [ebp - 0x21c]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
xor eax, eax
mov word [ebp - 0x458], ax
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x444], 7
mov dword [ebp - 0x448], ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x428fd1
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [ebp - 0x458]
call fcn.004021b0
mov byte [ebp - 4], 9
jmp 0x429076
mov ecx, dword [ebp - 0x43c]
push str.FLD_SYSTEM
push ecx
call fcn.0053e2bf
add esp, 8
cmp eax, ebx
jne 0x4290ac
push 0x105
lea edx, [ebp - 0x21c]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor eax, eax
mov word [ebp - 0x458], ax
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x444], 7
mov dword [ebp - 0x448], ebx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x429050
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [ebp - 0x458]
call fcn.004021b0
mov byte [ebp - 4], 0xa
lea edx, [ebp - 0x458]
push edx
lea ecx, [ebp - 0x70c]
call fcn.00423c70
mov byte [ebp - 4], 4
cmp dword [ebp - 0x444], esi
jb 0x429ae2
mov eax, dword [ebp - 0x458]
push eax
call fcn.00449b7c
add esp, 4
jmp 0x429ae2
mov ecx, dword [ebp - 0x43c]
push str.FLD_APPDATA
push ecx
call fcn.0053e2bf
add esp, 8
cmp eax, ebx
jne 0x4290e2
lea edx, [ebp - 0x70c]
push edx
push str.AppData
push 0x575400
call fcn.00424050
add esp, 0xc
jmp 0x429ae2
mov eax, dword [ebp - 0x43c]
push str.FLD_STARTPROGS
push eax
call fcn.0053e2bf
add esp, 8
cmp eax, ebx
jne 0x429241
lea ecx, [ebp - 0x70c]
push ecx
push 0x5753c8
push 0x575400
call fcn.00424050
add esp, 0xc
push str.Shell32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
cmp edi, ebx
je 0x429191
push str.SHGetSpecialFolderPathW
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
cmp esi, ebx
je 0x429182
push ebx
push 0x17
lea edx, [ebp - 0x428]
push edx
push ebx
call esi
test eax, eax
je 0x429182
lea eax, [ebp - 0x428]
push eax
lea ecx, [ebp - 0x458]
call fcn.0040c650
lea ecx, [ebp - 0x458]
push ecx
lea ecx, [ebp - 0x70c]
mov byte [ebp - 4], 0xb
call fcn.00423c70
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 4
call fcn.00418450
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp esi, ebx
jne 0x429ae2
lea ecx, [ebp - 0x49c]
call fcn.0043f760
mov dword [ebp - 0x73c], ebx
mov dword [ebp - 0x738], ebx
mov dword [ebp - 0x734], ebx
push 0x575400
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x49c]
mov byte [ebp - 4], 0xd
call fcn.0043f030
test eax, eax
je 0x429222
push str.Common_Programs
lea ecx, [ebp - 0x49c]
call fcn.0043f460
cmp eax, ebx
je 0x429222
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x4291e4
sub ecx, esi
sar ecx, 1
je 0x429222
push eax
lea ecx, [ebp - 0x458]
call fcn.0040c650
lea edx, [ebp - 0x458]
push edx
lea ecx, [ebp - 0x70c]
mov byte [ebp - 4], 0xe
call fcn.00423c70
lea ecx, [ebp - 0x458]
call fcn.00418450
lea ecx, [ebp - 0x73c]
call fcn.004233a0
lea ecx, [ebp - 0x49c]
mov byte [ebp - 4], 4
call fcn.0043f790
jmp 0x429ae2
push str.FLD_SYSTEMROOT
lea ecx, [ebp - 0x43c]
call fcn.0040b340
test eax, eax
jne 0x4292a6
push 0x105
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x21c]
push 0x105
push ecx
mov edx, ecx
push edx
call fcn.0053e704
add esp, 0x24
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x458]
call fcn.0040c650
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 0xf
push ecx
jmp 0x42957e
push str.FLD_DRIVERS
lea ecx, [ebp - 0x43c]
call fcn.0040b340
test eax, eax
jne 0x429309
push 0x105
lea edx, [ebp - 0x21c]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
push 0x56825c
lea eax, [ebp - 0x21c]
push eax
call esi
push str.IoSubsys
lea ecx, [ebp - 0x21c]
push ecx
call esi
lea edx, [ebp - 0x21c]
push edx
lea ecx, [ebp - 0x458]
call fcn.0040c650
mov byte [ebp - 4], 0x10
jmp 0x429577
push str.FLD_66000
lea ecx, [ebp - 0x43c]
call fcn.0040b340
test eax, eax
jne 0x42937a
push str.Dont_use_FLD_66000._Use_DeletePrinterDriverEx.
push 0x56dce8
call fcn.00415550
add esp, 8
lea ecx, [ebp - 0x70c]
call fcn.00406a50
lea ecx, [ebp - 0x6f0]
call fcn.00417700
push fcn.00417700
push 5
push 4
lea ecx, [ebp - 0x43c]
push ecx
mov byte [ebp - 4], 1
call fcn.0053ee28
lea ecx, [ebp - 0x774]
mov byte [ebp - 4], 0
call fcn.0045913b
lea ecx, [ebp + 8]
call fcn.00417700
jmp 0x42a3ce
push str.FLD_66001
lea ecx, [ebp - 0x43c]
call fcn.0040b340
test eax, eax
jne 0x4293c5
lea edx, [ebp - 0x720]
push edx
push 0x20a
lea eax, [ebp - 0x21c]
push eax
push 1
push ebx
push ebx
call sub.WINSPOOL.DRV_GetPrintProcessorDirectoryW
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [ebp - 0x458]
call fcn.0040c650
mov byte [ebp - 4], 0x11
jmp 0x429507
push str.FLD_66002
lea ecx, [ebp - 0x43c]
call fcn.0040b340
test eax, eax
jne 0x429406
push 0x105
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [ebp - 0x458]
call fcn.0040c650
mov byte [ebp - 4], 0x12
jmp 0x429507
push str.FLD_66003
lea ecx, [ebp - 0x43c]
call fcn.0040b340
test eax, eax
jne 0x4294c1
push str.Mscms.dll
mov dword [ebp - 0x6f4], 0x20a
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
cmp esi, ebx
je 0x429485
push str.GetColorDirectoryW
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x42947e
lea ecx, [ebp - 0x6f4]
push ecx
lea edx, [ebp - 0x21c]
push edx
push ebx
call eax
test eax, eax
je 0x42946a
push str.GetColorDirectory_succeeded_n
push 0x56dce8
jmp 0x429476
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetColorDirectory_is_failed._0x_x__n
call fcn.00415550
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x458]
call fcn.0040c650
lea ecx, [ebp - 0x458]
push ecx
lea ecx, [ebp - 0x70c]
mov byte [ebp - 4], 0x13
call fcn.00423c70
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 4
call fcn.00418450
jmp 0x429ae2
push str.FLD_PRINTERDRIVER
lea ecx, [ebp - 0x43c]
call fcn.0040b340
test eax, eax
jne 0x42952d
lea edx, [ebp - 0x720]
push edx
push 0x20a
lea eax, [ebp - 0x21c]
push eax
push 1
push ebx
push ebx
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [ebp - 0x458]
call fcn.0040c650
mov byte [ebp - 4], 0x14
lea edx, [ebp - 0x458]
push edx
lea ecx, [ebp - 0x70c]
call fcn.00423c70
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 4
call fcn.00418450
jmp 0x429ae2
push str.FLD_PRINTERDRIVER9XADIITIONAL
lea ecx, [ebp - 0x43c]
call fcn.0040b340
test eax, eax
jne 0x42959d
lea eax, [ebp - 0x720]
push eax
push 0x20a
lea ecx, [ebp - 0x21c]
push ecx
push 1
push str.Windows_4.0
push ebx
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
lea edx, [ebp - 0x21c]
push edx
lea ecx, [ebp - 0x458]
call fcn.0040c650
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x458]
push eax
lea ecx, [ebp - 0x70c]
call fcn.00423c70
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 4
call fcn.00418450
jmp 0x429ae2
push str.FLD_UNUSED_PRINTERDRIVER
lea ecx, [ebp - 0x43c]
call fcn.0040b340
test eax, eax
jne 0x42a284
lea ecx, [ebp - 0x748]
call fcn.004459b0
lea ecx, [ebp - 0x78c]
mov byte [ebp - 4], 0x16
call fcn.004479b0
lea ecx, [ebp - 0x758]
mov byte [ebp - 4], 0x17
call fcn.0040f5c0
lea ecx, [ebp - 0x73c]
mov byte [ebp - 4], 0x18
call fcn.0040f5c0
xor ecx, ecx
mov dword [ebp - 0x460], 7
mov dword [ebp - 0x464], ebx
mov word [ebp - 0x474], cx
lea ecx, [ebp - 0x6f8]
call fcn.00404770
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 0x1b
call fcn.00459852
mov edx, dword [ebp - 0x434]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
mov byte [ebp - 4], 0x1c
or ecx, eax
jge 0x42964b
push ebx
lea ecx, [ebp - 0x434]
call fcn.004045b0
mov edx, dword [ebp - 0x434]
mov ecx, dword [ebp - 0x6fc]
lea eax, [ebp - 0x6f8]
push eax
push edx
call fcn.0041b150
mov ecx, dword [ebp - 0x6f8]
cmp dword [ecx - 0xc], ebx
jne 0x429734
lea edx, [ebp - 0x21c]
push edx
push str.CUninstallActions::DelFile_FLD_UNUSED_PRINTERDRIVER_Cannot_get_driver_list__1_s__._n
push 4
call fcn.00403ab0
add esp, 0xc
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 0x1b
call fcn.00459884
lea ecx, [ebp - 0x6f8]
call fcn.00417700
lea ecx, [ebp - 0x474]
call fcn.00418450
lea ecx, [ebp - 0x73c]
mov byte [ebp - 4], 0x18
call fcn.0040f560
lea ecx, [ebp - 0x758]
mov byte [ebp - 4], 0x17
call fcn.0040f560
lea ecx, [ebp - 0x78c]
mov byte [ebp - 4], 0x16
call fcn.004479c0
lea ecx, [ebp - 0x748]
mov byte [ebp - 4], 4
call fcn.00444b70
lea ecx, [ebp - 0x70c]
call fcn.00406a50
lea ecx, [ebp - 0x6f0]
call fcn.00417700
push fcn.00417700
push 5
push 4
lea eax, [ebp - 0x43c]
push eax
mov byte [ebp - 4], 1
call fcn.0053ee28
lea ecx, [ebp - 0x774]
mov byte [ebp - 4], 0
call fcn.0045913b
lea ecx, [ebp + 8]
call fcn.00417700
mov eax, 1
jmp 0x42a3d0
lea ecx, [ebp - 0x6f8]
call fcn.004184d0
mov ecx, dword [ebp - 0x6f8]
push 0x7c
push ecx
lea ecx, [ebp - 0x78c]
call fcn.00447da0
lea ecx, [ebp - 0x78c]
xor esi, esi
call fcn.00445fe0
test eax, eax
je 0x4297c8
push esi
lea ecx, [ebp - 0x78c]
call fcn.00446210
push eax
push str.CUninstallActions::DelFile_BaseDeps___1_s___n
push 5
call fcn.00403ab0
add esp, 0xc
push esi
lea ecx, [ebp - 0x78c]
call fcn.00446210
push ebx
lea edx, [ebp - 0x6f4]
push edx
lea ecx, [ebp - 0x758]
mov dword [ebp - 0x6f4], eax
call fcn.00421020
push eax
lea eax, [ebp - 0x728]
push eax
lea ecx, [ebp - 0x758]
call fcn.0040c980
lea ecx, [ebp - 0x78c]
inc esi
call fcn.00445fe0
cmp esi, eax
jb 0x429764
push 0x568928
lea ecx, [ebp - 0x6f8]
call fcn.00405db0
lea ecx, [ebp - 0x748]
xor ebx, ebx
call fcn.004452a0
test eax, eax
je 0x4299cc
push ebx
lea ecx, [ebp - 0x748]
call fcn.00444ca0
cmp dword [eax + 0x1c], 0
je 0x4299b8
lea ecx, [ebp - 0x73c]
call fcn.0040e500
lea ecx, [ebp - 0x73c]
push ecx
push ebx
lea ecx, [ebp - 0x748]
call fcn.00444ca0
mov edx, dword [eax + 4]
push edx
call fcn.0041f510
mov ecx, dword [ebp - 0x738]
mov eax, dword [ecx]
add esp, 8
mov dword [ebp - 0x6f4], eax
cmp eax, ecx
je 0x4299b8
add eax, 0xc
cmp dword [eax + 0x14], 8
jb 0x42984e
mov eax, dword [eax]
push 0
push eax
lea ecx, [ebp - 0x458]
call fcn.004598f9
test eax, eax
je 0x429990
lea ecx, [ebp - 0x458]
call fcn.004594c2
lea eax, [ebp - 0x718]
push eax
lea ecx, [ebp - 0x458]
call fcn.00459b3c
mov ecx, dword [eax]
push ecx
push str.CUninstallActions::DelFile__CHECK___1_s__n
push 4
mov byte [ebp - 4], 0x1d
call fcn.00403ab0
add esp, 0xc
lea ecx, [ebp - 0x718]
mov byte [ebp - 4], 0x1c
call fcn.00417700
lea edx, [ebp - 0x71c]
push edx
lea ecx, [ebp - 0x458]
call fcn.00459b3c
mov esi, eax
mov eax, dword [esi]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
or eax, ecx
mov byte [ebp - 4], 0x1e
jge 0x4298d8
push 0
mov ecx, esi
call fcn.004045b0
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x474]
call fcn.00402490
lea ecx, [ebp - 0x71c]
mov byte [ebp - 4], 0x1c
call fcn.00417700
mov eax, dword [ebp - 0x460]
mov esi, dword [ebp - 0x474]
mov edi, esi
cmp eax, 8
jae 0x429910
lea edi, [ebp - 0x474]
mov esi, edi
lea eax, [ebp - 0x710]
push eax
lea ecx, [ebp - 0x474]
call fcn.004015e0
mov ecx, dword [eax]
push fcn.0053e521
push edi
push ecx
lea edx, [ebp - 0x72c]
push esi
push edx
call fcn.00401e70
add esp, 0x14
lea eax, [ebp - 0x474]
push eax
lea ecx, [ebp - 0x714]
push ecx
lea ecx, [ebp - 0x758]
call fcn.004024f0
mov esi, dword [eax]
cmp esi, dword [ebp - 0x754]
je 0x429990
push ebx
lea ecx, [ebp - 0x748]
call fcn.00444ca0
mov edx, dword [eax + 4]
push edx
push str.CUninstallActions::DelFile______SHARED__Driver___1__n
push 4
call fcn.00403ab0
add esp, 0xc
push esi
lea eax, [ebp - 0x724]
push eax
lea ecx, [ebp - 0x758]
call fcn.0040c6a0
lea ecx, [ebp - 0x458]
call fcn.004593dc
lea ecx, [ebp - 0x6f4]
call fcn.0040ade0
mov eax, dword [ebp - 0x6f4]
cmp eax, dword [ebp - 0x738]
jne 0x429843
lea ecx, [ebp - 0x748]
inc ebx
call fcn.004452a0
cmp ebx, eax
jb 0x4297ed
push str._DIRECT_
lea ecx, [ebp - 0x434]
call fcn.00405db0
push str.CUninstallActions::DelFile_______Not_Shared_Files__________________________n
push 4
call fcn.00403ab0
mov ecx, dword [ebp - 0x754]
mov eax, dword [ecx]
add esp, 8
mov dword [ebp - 0x6f4], eax
cmp eax, ecx
je 0x429a72
mov bl, 0x1f
mov edi, 8
cmp dword [eax + 0x20], edi
lea esi, [eax + 0xc]
jb 0x429a10
mov eax, dword [esi]
jmp 0x429a12
mov eax, esi
push eax
push str.CUninstallActions::DelFile__1_s__n
push 4
call fcn.00403ab0
add esp, 0xc
cmp dword [esi + 0x14], edi
jb 0x429a29
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x490]
call fcn.0040c650
lea ecx, [ebp - 0x490]
push ecx
lea ecx, [ebp - 0x70c]
mov byte [ebp - 4], bl
call fcn.00423be0
lea ecx, [ebp - 0x490]
mov byte [ebp - 4], 0x1c
call fcn.00418450
lea ecx, [ebp - 0x6f4]
call fcn.0040ade0
mov eax, dword [ebp - 0x6f4]
cmp eax, dword [ebp - 0x754]
jne 0x429a04
push str.CUninstallActions::DelFile_________________________________________________n
push 4
call fcn.00403ab0
add esp, 8
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 0x1b
call fcn.00459884
lea ecx, [ebp - 0x6f8]
call fcn.00417700
lea ecx, [ebp - 0x474]
call fcn.00418450
lea ecx, [ebp - 0x73c]
mov byte [ebp - 4], 0x18
call fcn.0040f560
lea ecx, [ebp - 0x758]
mov byte [ebp - 4], 0x17
call fcn.0040f560
lea ecx, [ebp - 0x78c]
mov byte [ebp - 4], 0x16
call fcn.004479c0
lea ecx, [ebp - 0x748]
mov byte [ebp - 4], 4
call fcn.00444b70
mov eax, dword [ebp - 0x430]
cmp dword [eax - 0xc], 0
je 0x429bba
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x724], esp
mov esi, esp
push eax
call fcn.00404610
mov ecx, dword [ebp - 0x6fc]
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00425f70
test eax, eax
jne 0x429bba
push str.CUninstallActions::DelFile_IsMetConditions_failed._n
push 0x56dce8
call fcn.00415550
add esp, 8
lea ecx, [ebp - 0x70c]
call fcn.00406a50
mov eax, dword [ebp - 0x6f0]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x429b62
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push fcn.00417700
push 5
push 4
lea ecx, [ebp - 0x43c]
push ecx
mov byte [ebp - 4], 1
call fcn.0053ee28
lea ecx, [ebp - 0x774]
mov byte [ebp - 4], 0
call fcn.0045913b
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x429bb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
jmp 0x42a3d0
mov edi, dword [ebp - 0x70c]
mov ebx, dword [ebp - 0x708]
mov dword [ebp - 0x6f8], edi
cmp edi, ebx
je 0x42a23b
mov edx, dword [ebp - 0x6f8]
xor edi, edi
cmp dword [edx + 0x14], 8
jb 0x429be4
mov edx, dword [edx]
test edx, edx
jne 0x429bec
xor eax, eax
jmp 0x429c00
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x429bf1
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x6f0]
call fcn.00404df0
mov eax, dword [ebp - 0x434]
mov ecx, str._DIRECT_
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x429c3e
test dx, dx
je 0x429c3a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x429c3e
add eax, 4
add ecx, 4
test dx, dx
jne 0x429c18
xor eax, eax
jmp 0x429c43
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x429c6f
push 1
push 0x56825c
lea ecx, [ebp - 0x6f0]
call fcn.00405330
mov eax, dword [ebp - 0x434]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x6f0]
call fcn.00405330
mov ecx, dword [ebp - 0x434]
push 0x2a
push ecx
call fcn.0053dd9b
mov ecx, dword [ebp - 0x434]
add esp, 8
test eax, eax
jne 0x429c8f
or eax, 0xffffffff
jmp 0x429c93
sub eax, ecx
sar eax, 1
mov edx, dword [ecx - 0xc]
dec edx
cmp eax, edx
jne 0x429d27
push 0x5c
push ecx
call fcn.0053dd9b
mov ecx, dword [ebp - 0x434]
add esp, 8
test eax, eax
jne 0x429cb9
or eax, 0xffffffff
jmp 0x429cbd
sub eax, ecx
sar eax, 1
mov edx, dword [ecx - 0xc]
add edx, 0xfffffffe
cmp eax, edx
jne 0x429d27
mov edx, dword [ebp - 0x6f0]
mov eax, dword [edx - 0xc]
add eax, 0xfffffffe
push eax
lea eax, [ebp - 0x71c]
push eax
lea ecx, [ebp - 0x6f0]
mov edi, 1
call fcn.00405240
push eax
lea ecx, [ebp - 0x6f0]
mov byte [ebp - 4], 0x20
call fcn.00405460
mov eax, dword [ebp - 0x71c]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x429d21
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x434]
push 0x2a
push ecx
call fcn.0053dd9b
mov ecx, dword [ebp - 0x434]
add esp, 8
test eax, eax
jne 0x429d41
or eax, 0xffffffff
jmp 0x429d45
sub eax, ecx
sar eax, 1
mov edx, dword [ecx - 0xc]
dec edx
cmp eax, edx
jne 0x429f98
push 0x2e
push ecx
call fcn.0053dd9b
mov ecx, dword [ebp - 0x434]
add esp, 8
test eax, eax
jne 0x429d6b
or eax, 0xffffffff
jmp 0x429d6f
sub eax, ecx
sar eax, 1
mov ecx, dword [ecx - 0xc]
add ecx, 0xfffffffe
cmp eax, ecx
jne 0x429f98
mov edi, dword [ebp - 0x6f0]
lea ecx, [ebp - 0x6ec]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x710], eax
cmp eax, 0xffffffff
jne 0x429dbe
push edi
push str.strFileName___s_n
call fcn.00415550
push str._____Not_found._n
push 0x56dce8
call fcn.00415550
add esp, 0x10
jmp 0x42a214
call fcn.0044c104
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x428cf8
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x6f4], esi
mov edi, dword [edi - 0xc]
push 0x574d40
mov byte [ebp - 4], 0x21
call dword [sym.imp.KERNEL32.dll_lstrlenW]
sub edi, eax
push edi
lea ecx, [ebp - 0x718]
push ecx
lea ecx, [ebp - 0x6f0]
call fcn.00405240
push eax
lea ecx, [ebp - 0x6f0]
mov byte [ebp - 4], 0x22
call fcn.00405460
mov eax, dword [ebp - 0x718]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x21
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x429e41
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x6f0]
add esi, 0xfffffff0
lea eax, [edi - 0x10]
cmp eax, esi
je 0x429eaa
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x429e9a
mov ecx, dword [edi - 0x10]
cmp ecx, dword [esi]
jne 0x429e9a
lea eax, [edi - 0x10]
push eax
call fcn.00404610
add esp, 4
mov dword [ebp - 0x72c], eax
or edx, 0xffffffff
lock xadd dword [ebx], edx
dec edx
test edx, edx
jg 0x429e89
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [ebp - 0x72c]
add eax, 0x10
mov dword [ebp - 0x6f4], eax
jmp 0x429eaa
mov eax, dword [edi - 0xc]
push eax
push edi
lea ecx, [ebp - 0x6f4]
call fcn.00404df0
push 0x101
lea ecx, [ebp - 0x420]
push ecx
push 0
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x6c0]
push 0
push edx
call fcn.0053e704
lea eax, [ebp - 0x420]
add esp, 0x24
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x429ee0
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x6f4]
call fcn.00405330
push edi
push str.strFileName___s_n
call fcn.00415550
add esp, 8
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, dword [ebp - 0x6f4]
and eax, 0xfffffffe
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x429f3a
push str._____deleted_n
jmp 0x429f3f
push str._____Not_found._n
push 0x56dce8
call fcn.00415550
mov ebx, dword [ebp - 0x710]
add esp, 8
lea ecx, [ebp - 0x6ec]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x429e47
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
add esi, 0xfffffff0
mov byte [ebp - 4], 4
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x42a214
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
jmp 0x42a214
mov ebx, dword [ebp - 0x6f0]
push ebx
push str.strFileName___s_n
call fcn.00415550
add esp, 8
test edi, edi
je 0x429fef
mov ecx, dword [ebx - 8]
mov eax, 1
sub eax, dword [ebx - 4]
or ecx, eax
jge 0x429fd2
push 0
lea ecx, [ebp - 0x6f0]
call fcn.004045b0
mov ebx, dword [ebp - 0x6f0]
push 1
push ebx
call fcn.0041d8e0
add esp, 8
test eax, eax
je 0x42a214
push str._____deleted_files_in_the_directory.
jmp 0x42a207
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x42a202
test al, 0x10
je 0x42a0c3
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x42a01c
push str._____deleted_directory_n
jmp 0x42a207
push str._____delete_directory_failed_n
push 0x56dce8
call fcn.00415550
mov eax, dword [ebp - 0x42c]
add esp, 4
add eax, 0xfffffff0
mov dword [ebp - 0x724], esp
mov esi, esp
push eax
call fcn.00404610
add eax, 0x10
mov dword [esi], eax
lea esi, [ebx - 0x10]
mov dword [ebp - 0x714], esp
mov edi, esp
push esi
mov byte [ebp - 4], 0x23
call fcn.00404610
mov ecx, dword [ebp - 0x6fc]
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov byte [ebp - 4], 4
call fcn.00419dd0
test eax, eax
je 0x42a214
push str.______RESERVED_TO_DELTE_AFTER_RESTART__n
push 0x56dce8
call fcn.00415550
mov eax, 1
sub eax, dword [esi + 0xc]
mov esi, dword [esi + 8]
add esp, 8
or esi, eax
jge 0x42a0ac
push 0
lea ecx, [ebp - 0x6f0]
call fcn.004045b0
mov ecx, dword [ebp - 0x6f0]
push ecx
mov ecx, dword [ebp - 0x6fc]
call fcn.00415000
jmp 0x42a214
and eax, 0xfffffffe
push eax
push ebx
xor esi, esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [ebp - 0x42c]
cmp dword [eax - 0xc], esi
je 0x42a17a
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x724], esp
mov esi, esp
push eax
call fcn.00404610
add eax, 0x10
mov dword [esi], eax
mov esi, dword [ebp - 0x6f0]
add esi, 0xfffffff0
mov dword [ebp - 0x714], esp
mov edi, esp
push esi
mov byte [ebp - 4], 0x24
call fcn.00404610
mov ecx, dword [ebp - 0x6fc]
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov byte [ebp - 4], 4
call fcn.0041bcc0
mov edi, eax
mov eax, dword [ebp - 0x42c]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x724], esp
mov ebx, esp
push eax
call fcn.00404610
add eax, 0x10
mov dword [ebx], eax
mov dword [ebp - 0x714], esp
mov ebx, esp
push esi
mov byte [ebp - 4], 0x25
call fcn.00404610
mov ecx, dword [ebp - 0x6fc]
add eax, 0x10
mov dword [ebx], eax
add esp, 4
mov byte [ebp - 4], 4
call fcn.00419dd0
mov esi, eax
test edi, edi
je 0x42a214
push str._VerCondition_OK_
push 0x56dce8
call fcn.00415550
mov edx, dword [ebp - 0x6f0]
add esp, 8
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x42a1a4
push str._____deleted_n
jmp 0x42a207
push str._____delete_failed_n
push 0x56dce8
call fcn.00415550
add esp, 8
test esi, esi
je 0x42a214
push str.______RESERVED_TO_DELTE_AFTER_RESTART__n
push 0x56dce8
call fcn.00415550
mov edx, dword [ebp - 0x6f0]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
add esp, 8
or ecx, eax
jge 0x42a1f4
push 0
lea ecx, [ebp - 0x6f0]
call fcn.004045b0
mov edx, dword [ebp - 0x6f0]
mov ecx, dword [ebp - 0x6fc]
push edx
call fcn.00415000
jmp 0x42a214
push str._____Not_found._n
push 0x56dce8
call fcn.00415550
add esp, 8
mov eax, dword [ebp - 0x6f8]
add eax, 0x1c
mov dword [ebp - 0x6f8], eax
cmp eax, dword [ebp - 0x708]
jne 0x429bd4
mov ebx, dword [ebp - 0x708]
mov edi, dword [ebp - 0x70c]
test edi, edi
je 0x42a265
mov esi, edi
cmp edi, ebx
je 0x42a25c
lea eax, [ebp - 0x700]
push esi
push eax
call fcn.00405d20
add esi, 0x1c
add esp, 8
cmp esi, ebx
jne 0x42a245
push edi
call fcn.00449b7c
add esp, 4
mov eax, dword [ebp - 0x6f0]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x429b56
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea ecx, [ebp - 0x70c]
call fcn.00406a50
lea ecx, [ebp - 0x6f0]
call fcn.00417700
push fcn.00417700
push 5
push 4
lea ecx, [ebp - 0x43c]
push ecx
mov byte [ebp - 4], 1
call fcn.0053ee28
lea ecx, [ebp - 0x774]
mov byte [ebp - 4], 0
call fcn.0045913b
lea ecx, [ebp + 8]
call fcn.00417700
jmp 0x42a3ce
call fcn.0044c104
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x42a2f1
push 0x80004005
call fcn.00403e70
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x6f4], eax
push 0x57
mov byte [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x6f4]
push str.CUninstallActions::DelFile_invalid_parameters.___s_
push edx
call fcn.0040ba60
mov esi, dword [ebp - 0x6f4]
add esp, 0xc
push 0x10
push str.Internal_Error
push esi
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
lea eax, [esi - 0x10]
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a360
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esp, [esp]
lea eax, [edi - 0x10]
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a380
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push fcn.00417700
push 5
push 4
lea ecx, [ebp - 0x43c]
push ecx
mov byte [ebp - 4], 1
call fcn.0053ee28
lea ecx, [ebp - 0x774]
mov byte [ebp - 4], 0
call fcn.0045913b
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42a3ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0053e1ad
mov esp, ebp
pop ebp
ret 4