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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006fdac
mov eax, dword fs:[0]
push eax
sub esp, 0x2d8
mov eax, dword [0x10087040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2e0], ecx
mov ebx, dword [ebp + 8]
push 0
mov dword [ebp - 0x22c], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebp - 0x2dc], eax
test eax, eax
js 0x10017775
mov ecx, dword [ebx + 4]
mov eax, 0xdd67c8a7
sub ecx, dword [ebx]
xorps xmm0, xmm0
imul ecx
movq qword [ebp - 0x228], xmm0
mov dword [ebp - 0x220], 0
add edx, ecx
mov dword [ebp - 0x228], 0
sar edx, 7
mov eax, edx
mov dword [ebp - 0x224], 0
shr eax, 0x1f
mov dword [ebp - 0x220], 0
add eax, edx
je 0x10017304
cmp eax, 0x1bacf91
ja 0x1001779d
imul edi, eax, 0x94
test edi, edi
jne 0x1001723d
xor esi, esi
jmp 0x10017277
cmp edi, 0x1000
jb 0x1001726c
lea eax, [edi + 0x23]
cmp eax, edi
jbe 0x100177a2
push eax
call fcn.100424ac
add esp, 4
test eax, eax
je 0x100177a7
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x10017277
push edi
call fcn.100424ac
add esp, 4
mov esi, eax
lea ecx, [edi + esi]
mov dword [ebp - 0x228], esi
lea eax, [ebp - 0x228]
mov dword [ebp - 0x224], esi
mov dword [ebp - 0x220], ecx
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 4], 0
xorps xmm0, xmm0
mov edi, dword [ebp - 0x22c]
mov ebx, dword [ebx + 4]
movq qword [ebp - 0x238], xmm0
mov dword [ebp - 0x230], 0
mov edi, dword [edi]
mov dword [ebp - 0x238], esi
mov dword [ebp - 0x234], esi
mov dword [ebp - 0x230], eax
mov byte [ebp - 4], 1
cmp edi, ebx
je 0x100172fe
nop dword [eax]
push edi
mov ecx, esi
call fcn.10010200
add esi, 0x94
add edi, 0x94
mov dword [ebp - 0x234], esi
cmp edi, ebx
jne 0x100172e0
mov dword [ebp - 0x224], esi
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 4], 2
call fcn.1000ac00
mov byte [ebp - 4], 3
mov eax, dword [0x10089eac]
test al, 1
jne 0x1001734e
push 0x64
or eax, 1
push 0
push 0x10089e48
mov dword [0x10089eac], eax
call fcn.10043f30
add esp, 0xc
call fcn.10005170
push 0x10072aa0
call fcn.1004245d
add esp, 4
mov edx, dword [0x10089e48]
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10017360
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2d0]
call fcn.1000a240
mov eax, dword [ebp - 0x224]
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x2d4], 3
push ecx
cmp eax, dword [ebp - 0x220]
je 0x100173b8
mov edx, eax
call fcn.1000ff30
mov eax, dword [ebp - 0x224]
add esp, 4
add eax, 0x94
mov dword [ebp - 0x224], eax
jmp 0x100173ca
push eax
lea ecx, [ebp - 0x228]
call fcn.1000fb60
mov eax, dword [ebp - 0x224]
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x2d4], 1
push ecx
cmp eax, dword [ebp - 0x220]
je 0x100173f9
mov edx, eax
call fcn.1000ff30
add esp, 4
add dword [ebp - 0x224], 0x94
jmp 0x10017405
push eax
lea ecx, [ebp - 0x228]
call fcn.1000fb60
mov eax, dword [0x10089eac]
test al, 1
jne 0x10017439
push 0x64
or eax, 1
push 0
push 0x10089e48
mov dword [0x10089eac], eax
call fcn.10043f30
add esp, 0xc
call fcn.10005170
push 0x10072aa0
call fcn.1004245d
add esp, 4
mov edx, dword [0x10089e48]
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10017444
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2b8]
call fcn.1000a240
mov eax, dword [ebp - 0x224]
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x2d4], 2
push ecx
cmp eax, dword [ebp - 0x220]
je 0x10017495
mov edx, eax
call fcn.1000ff30
add esp, 4
add dword [ebp - 0x224], 0x94
jmp 0x100174a1
push eax
lea ecx, [ebp - 0x228]
call fcn.1000fb60
mov eax, dword [0x10089eac]
test al, 1
jne 0x100174d5
push 0x64
or eax, 1
push 0
push 0x10089e48
mov dword [0x10089eac], eax
call fcn.10043f30
add esp, 0xc
call fcn.10005170
push 0x10072aa0
call fcn.1004245d
add esp, 4
mov edx, dword [0x10089e4c]
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100174e0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2d0]
call fcn.1000a240
mov eax, dword [ebp - 0x224]
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x2d4], 2
push ecx
cmp eax, dword [ebp - 0x220]
je 0x10017539
mov edx, eax
call fcn.1000ff30
mov ecx, dword [ebp - 0x224]
add esp, 4
add ecx, 0x94
mov dword [ebp - 0x224], ecx
jmp 0x1001754b
push eax
lea ecx, [ebp - 0x228]
call fcn.1000fb60
mov ecx, dword [ebp - 0x224]
sub ecx, dword [ebp - 0x228]
xor edx, edx
mov dword [ebp - 0x2d8], edx
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10017742
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor edi, edi
nop word [eax + eax]
mov eax, dword [ebp - 0x228]
mov ecx, dword [ebp - 0x2e0]
add eax, edi
push 0
push eax
call fcn.100177b0
mov dword [ebp - 0x2dc], eax
test eax, eax
js 0x1001770b
mov ecx, dword [ebp - 0x228]
cmp dword [ecx + edi + 0x8c], 0
je 0x1001770b
lea eax, [ecx + 0x7c]
add eax, edi
cmp dword [ecx + edi], 3
jne 0x1001769d
cmp dword [eax + 0x14], 7
jbe 0x100175cf
mov eax, dword [eax]
push eax
call ebx
test eax, eax
je 0x1001770b
mov eax, dword [ebp - 0x228]
add eax, edi
push eax
call fcn.10017c00
call fcn.10003fc0
mov ecx, eax
test ecx, ecx
je 0x10017793
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x22c], eax
push str.barU
lea eax, [ebp - 0x22c]
mov byte [ebp - 4], 4
push str.Task_snPin
push eax
call fcn.10004ea0
mov eax, dword [ebp - 0x228]
add esp, 0xc
add eax, 0x7c
add eax, edi
cmp dword [eax + 0x14], 7
jbe 0x10017635
mov eax, dword [eax]
mov esi, dword [ebp - 0x22c]
push 0
push 0
push 0
push eax
push esi
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [ebp - 0x228]
add eax, 0x7c
add eax, edi
cmp dword [eax + 0x14], 7
jbe 0x1001765e
mov eax, dword [eax]
push eax
call ebx
test eax, eax
je 0x1001767f
mov eax, dword [ebp - 0x228]
add eax, 0x7c
add eax, edi
cmp dword [eax + 0x14], 7
jbe 0x10017678
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 0x1001770b
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x1001770b
cmp dword [eax + 0x14], 7
jbe 0x100176a5
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, dword [ebp - 0x228]
cmp dword [esi + edi + 0x2c], 0
je 0x1001770b
push 0x208
lea eax, [ebp - 0x21c]
push 0
push eax
call fcn.10043f30
lea eax, [esi + 0x7c]
add esp, 0xc
add eax, edi
cmp dword [eax + 0x14], 7
jbe 0x100176dc
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x21c]
push 0x104
push eax
call fcn.1004cfef
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov ecx, dword [ebp - 0x224]
mov eax, 0xdd67c8a7
sub ecx, dword [ebp - 0x228]
add edi, 0x94
inc dword [ebp - 0x2d8]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x2d8], eax
jb 0x10017580
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 - 0x2d4]
call fcn.1000da00
lea ecx, [ebp - 0x228]
call fcn.1000f640
mov eax, dword [ebp - 0x2dc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10041e20
mov esp, ebp
pop ebp
ret 4
push 0x80004005
call fcn.100013a0
call fcn.10008fe0
call fcn.10009220
call fcn.10045dc4
int3