Function at 0x466170
Capabilities:
Check if file exists
Create process on windows
Delete directory
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dc75e
mov eax, dword fs:[0]
push eax
sub esp, 0x2cc
mov eax, dword [0x50b0c0]
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 - 0x2d8], ecx
mov ebx, dword [ebp + 8]
push 0
mov dword [ebp - 0x228], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebp - 0x2d4], eax
test eax, eax
js 0x466851
mov eax, dword [ebx + 4]
xorps xmm0, xmm0
sub eax, dword [ebx]
sar eax, 2
imul eax, eax, 0x914c1bad
movq qword [ebp - 0x224], xmm0
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
test eax, eax
je 0x4662e5
cmp eax, 0x1bacf91
ja 0x466879
imul edi, eax, 0x94
test edi, edi
jne 0x466225
xor esi, esi
jmp 0x46625f
cmp edi, 0x1000
jb 0x466254
lea eax, [edi + 0x23]
cmp eax, edi
jbe 0x46687e
push eax
call fcn.004a6623
add esp, 4
test eax, eax
je 0x466883
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x46625f
push edi
call fcn.004a6623
add esp, 4
mov esi, eax
lea ecx, [esi + edi]
mov dword [ebp - 0x224], esi
lea eax, [ebp - 0x224]
mov dword [ebp - 0x220], esi
mov dword [ebp - 0x21c], ecx
mov dword [ebp - 0x2cc], eax
mov dword [ebp - 4], 0
xorps xmm0, xmm0
mov edi, dword [ebp - 0x228]
mov ebx, dword [ebx + 4]
movq qword [ebp - 0x234], xmm0
mov dword [ebp - 0x22c], 0
mov edi, dword [edi]
mov dword [ebp - 0x234], esi
mov dword [ebp - 0x230], esi
mov dword [ebp - 0x22c], eax
mov byte [ebp - 4], 1
cmp edi, ebx
je 0x4662df
push edi
mov ecx, esi
call fcn.00461c80
add esi, 0x94
add edi, 0x94
mov dword [ebp - 0x230], esi
cmp edi, ebx
jne 0x4662c1
mov dword [ebp - 0x220], esi
lea ecx, [ebp - 0x2c8]
mov dword [ebp - 4], 2
call fcn.0045c1f0
mov esi, dword [0x5208b8]
test esi, esi
je 0x46630b
lock inc dword [esi + 4]
mov esi, dword [0x5208b8]
mov ecx, dword [0x5208b4]
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x2cc], esi
mov byte [ebp - 4], 4
lea edx, [ebp - 0x228]
mov eax, dword [ecx]
push edx
call dword [eax + 8]
mov byte [ebp - 4], 5
mov edx, dword [eax]
mov ecx, edx
lea edi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x466340
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2c4]
call fcn.0045baf0
mov byte [ebp - 4], 4
or eax, 0xffffffff
mov edx, dword [ebp - 0x228]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x46637e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
test esi, esi
je 0x4663a7
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x4663a7
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x4663a7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x220]
lea ecx, [ebp - 0x2c8]
mov dword [ebp - 0x2c8], 3
push ecx
cmp eax, dword [ebp - 0x21c]
je 0x4663e0
mov ecx, eax
call fcn.00461c80
mov eax, dword [ebp - 0x220]
add eax, 0x94
mov dword [ebp - 0x220], eax
jmp 0x4663f2
push eax
lea ecx, [ebp - 0x224]
call fcn.004616e0
mov eax, dword [ebp - 0x220]
lea ecx, [ebp - 0x2c8]
mov dword [ebp - 0x2c8], 1
push ecx
cmp eax, dword [ebp - 0x21c]
je 0x46641e
mov ecx, eax
call fcn.00461c80
add dword [ebp - 0x220], 0x94
jmp 0x46642a
push eax
lea ecx, [ebp - 0x224]
call fcn.004616e0
mov esi, dword [0x5208b8]
test esi, esi
je 0x46643e
lock inc dword [esi + 4]
mov esi, dword [0x5208b8]
mov ecx, dword [0x5208b4]
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x2cc], esi
mov byte [ebp - 4], 6
lea edx, [ebp - 0x228]
mov eax, dword [ecx]
push edx
call dword [eax + 8]
mov byte [ebp - 4], 7
mov edx, dword [eax]
mov ecx, edx
lea edi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x466470
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2ac]
call fcn.0045baf0
mov byte [ebp - 4], 6
or eax, 0xffffffff
mov edx, dword [ebp - 0x228]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4664ae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
test esi, esi
je 0x4664d7
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x4664d7
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x4664d7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x220]
lea ecx, [ebp - 0x2c8]
mov dword [ebp - 0x2c8], 2
push ecx
cmp eax, dword [ebp - 0x21c]
je 0x466509
mov ecx, eax
call fcn.00461c80
add dword [ebp - 0x220], 0x94
jmp 0x466515
push eax
lea ecx, [ebp - 0x224]
call fcn.004616e0
mov esi, dword [0x5208b8]
test esi, esi
je 0x466529
lock inc dword [esi + 4]
mov esi, dword [0x5208b8]
mov ecx, dword [0x5208b4]
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x2cc], esi
mov byte [ebp - 4], 8
lea edx, [ebp - 0x228]
mov eax, dword [ecx]
push edx
call dword [eax + 0x10]
mov byte [ebp - 4], 9
mov edx, dword [eax]
mov ecx, edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x466556
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2c4]
call fcn.0045baf0
mov byte [ebp - 4], 8
or eax, 0xffffffff
mov edx, dword [ebp - 0x228]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x466594
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
test esi, esi
je 0x4665bd
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x4665bd
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x4665bd
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x220]
lea ecx, [ebp - 0x2c8]
mov dword [ebp - 0x2c8], 2
push ecx
cmp eax, dword [ebp - 0x21c]
je 0x4665f6
mov ecx, eax
call fcn.00461c80
mov eax, dword [ebp - 0x220]
add eax, 0x94
mov dword [ebp - 0x220], eax
jmp 0x466608
push eax
lea ecx, [ebp - 0x224]
call fcn.004616e0
mov eax, dword [ebp - 0x220]
sub eax, dword [ebp - 0x224]
xor ebx, ebx
sar eax, 2
imul eax, eax, 0x914c1bad
test eax, eax
je 0x4667e7
xor edi, edi
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ebp - 0x224]
mov ecx, dword [ebp - 0x2d8]
add eax, edi
push 0
push eax
call fcn.00466890
mov dword [ebp - 0x2d4], eax
test eax, eax
js 0x4667c3
mov ecx, dword [ebp - 0x224]
cmp dword [ecx + edi + 0x8c], 0
je 0x4667c3
lea eax, [ecx + 0x7c]
add eax, edi
cmp dword [ecx + edi], 3
jne 0x466755
cmp dword [eax + 0x14], 7
jbe 0x46667f
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4667c3
mov eax, dword [ebp - 0x224]
add eax, edi
push eax
call fcn.00466d90
call fcn.0040a050
mov ecx, eax
test ecx, ecx
je 0x46686f
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x228], eax
push str.barU
lea eax, [ebp - 0x228]
mov byte [ebp - 4], 0xa
push str.Task_snPin
push eax
call fcn.004248c0
mov eax, dword [ebp - 0x224]
add esp, 0xc
add eax, 0x7c
add eax, edi
cmp dword [eax + 0x14], 7
jbe 0x4666e9
mov eax, dword [eax]
mov esi, dword [ebp - 0x228]
push 0
push 0
push 0
push eax
push esi
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [ebp - 0x224]
add eax, 0x7c
add eax, edi
cmp dword [eax + 0x14], 7
jbe 0x466712
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x466737
mov eax, dword [ebp - 0x224]
add eax, 0x7c
add eax, edi
cmp dword [eax + 0x14], 7
jbe 0x466730
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 4], 3
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4667c3
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4667c3
cmp dword [eax + 0x14], 7
jbe 0x46675d
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, dword [ebp - 0x224]
cmp dword [esi + edi + 0x2c], 0
je 0x4667c3
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004a8730
lea eax, [esi + 0x7c]
add esp, 0xc
add eax, edi
cmp dword [eax + 0x14], 7
jbe 0x466794
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.004bd337
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov eax, dword [ebp - 0x220]
inc ebx
sub eax, dword [ebp - 0x224]
add edi, 0x94
sar eax, 2
imul eax, eax, 0x914c1bad
cmp ebx, eax
jb 0x466630
push 0
push 0
push 0
push 0x8000000
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0x24c]
call fcn.0042b090
lea ecx, [ebp - 0x264]
call fcn.0042b090
lea ecx, [ebp - 0x27c]
call fcn.0042b090
lea ecx, [ebp - 0x294]
call fcn.0042b090
lea ecx, [ebp - 0x2ac]
call fcn.0042b090
lea ecx, [ebp - 0x2c4]
call fcn.0042b090
lea ecx, [ebp - 0x224]
call fcn.0045b9a0
mov eax, dword [ebp - 0x2d4]
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.004a69a0
mov esp, ebp
pop ebp
ret 4
push 0x80004005
call fcn.00409e30
call fcn.004090d0
call fcn.00409730
call fcn.004abd0f
int3