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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d801e
mov eax, dword fs:[0]
push eax
sub esp, 0x2d8
mov eax, dword [0x655140]
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 - 0x2e4], ecx
mov ebx, dword [ebp + 8]
push 0
mov dword [ebp - 0x22c], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebp - 0x2e0], eax
test eax, eax
js 0x47d86b
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 0x47d2e1
cmp eax, 0x1bacf91
ja 0x47d893
imul edi, eax, 0x94
test edi, edi
jne 0x47d20d
xor esi, esi
jmp 0x47d247
cmp edi, 0x1000
jb 0x47d23c
lea eax, [edi + 0x23]
cmp eax, edi
jbe 0x47d898
push eax
call fcn.004b4016
add esp, 4
test eax, eax
je 0x47d89d
lea esi, [eax + 0x23]
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x47d247
push edi
call fcn.004b4016
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 0x47d2ce
nop dword [eax]
push edi
mov ecx, esi
call fcn.00478460
add esi, 0x94
add edi, 0x94
mov dword [ebp - 0x234], esi
cmp edi, ebx
jne 0x47d2b0
push ecx
mov edx, esi
mov ecx, esi
call fcn.00474870
add esp, 4
mov dword [ebp - 0x224], esi
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 4], 2
call fcn.00474900
mov esi, dword [0x67a844]
test esi, esi
je 0x47d307
lock inc dword [esi + 4]
mov esi, dword [0x67a844]
mov ecx, dword [0x67a840]
mov dword [ebp - 0x2dc], ecx
mov dword [ebp - 0x2d8], esi
mov byte [ebp - 4], 4
lea edx, [ebp - 0x22c]
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]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47d334
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2d0]
call fcn.00477ad0
mov byte [ebp - 4], 4
or eax, 0xffffffff
mov edx, dword [ebp - 0x22c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47d372
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
test esi, esi
je 0x47d39b
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x47d39b
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x47d39b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x224]
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x2d4], 3
push ecx
cmp eax, dword [ebp - 0x220]
je 0x47d3d7
mov edx, eax
call fcn.004781b0
mov eax, dword [ebp - 0x224]
add esp, 4
add eax, 0x94
mov dword [ebp - 0x224], eax
jmp 0x47d3e9
push eax
lea ecx, [ebp - 0x228]
call fcn.00477dc0
mov eax, dword [ebp - 0x224]
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x2d4], 1
push ecx
cmp eax, dword [ebp - 0x220]
je 0x47d418
mov edx, eax
call fcn.004781b0
add esp, 4
add dword [ebp - 0x224], 0x94
jmp 0x47d424
push eax
lea ecx, [ebp - 0x228]
call fcn.00477dc0
mov esi, dword [0x67a844]
test esi, esi
je 0x47d438
lock inc dword [esi + 4]
mov esi, dword [0x67a844]
mov ecx, dword [0x67a840]
mov dword [ebp - 0x2dc], ecx
mov dword [ebp - 0x2d8], esi
mov byte [ebp - 4], 6
lea edx, [ebp - 0x22c]
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]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47d465
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2b8]
call fcn.00477ad0
mov byte [ebp - 4], 6
or eax, 0xffffffff
mov edx, dword [ebp - 0x22c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47d4a3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
test esi, esi
je 0x47d4cc
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x47d4cc
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x47d4cc
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x224]
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x2d4], 2
push ecx
cmp eax, dword [ebp - 0x220]
je 0x47d501
mov edx, eax
call fcn.004781b0
add esp, 4
add dword [ebp - 0x224], 0x94
jmp 0x47d50d
push eax
lea ecx, [ebp - 0x228]
call fcn.00477dc0
mov esi, dword [0x67a844]
test esi, esi
je 0x47d521
lock inc dword [esi + 4]
mov esi, dword [0x67a844]
mov ecx, dword [0x67a840]
mov dword [ebp - 0x2dc], ecx
mov dword [ebp - 0x2d8], esi
mov byte [ebp - 4], 8
lea edx, [ebp - 0x22c]
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]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47d550
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2d0]
call fcn.00477ad0
mov byte [ebp - 4], 8
or eax, 0xffffffff
mov edx, dword [ebp - 0x22c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47d58e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
test esi, esi
je 0x47d5b7
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x47d5b7
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x47d5b7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x224]
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x2d4], 2
push ecx
cmp eax, dword [ebp - 0x220]
je 0x47d5f4
mov edx, eax
call fcn.004781b0
mov ecx, dword [ebp - 0x224]
add esp, 4
add ecx, 0x94
mov dword [ebp - 0x224], ecx
jmp 0x47d606
push eax
lea ecx, [ebp - 0x228]
call fcn.00477dc0
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 0x47d801
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor edi, edi
nop word [eax + eax]
mov eax, dword [ebp - 0x228]
push ecx
mov ecx, dword [ebp - 0x2e4]
add eax, edi
push eax
call fcn.0047d8b0
mov dword [ebp - 0x2e0], eax
test eax, eax
js 0x47d7ca
mov ecx, dword [ebp - 0x228]
cmp dword [ecx + edi + 0x8c], 0
je 0x47d7ca
lea eax, [ecx + 0x7c]
add eax, edi
cmp dword [ecx + edi], 3
jne 0x47d75c
cmp dword [eax + 0x14], 7
jbe 0x47d68e
mov eax, dword [eax]
push eax
call ebx
test eax, eax
je 0x47d7ca
mov eax, dword [ebp - 0x228]
add eax, edi
push eax
call fcn.0047d980
call fcn.00402de0
mov ecx, eax
test ecx, ecx
je 0x47d889
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], 0xa
push str.Task_snPin
push eax
call fcn.00409210
mov eax, dword [ebp - 0x228]
add esp, 0xc
add eax, 0x7c
add eax, edi
cmp dword [eax + 0x14], 7
jbe 0x47d6f4
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 0x47d71d
mov eax, dword [eax]
push eax
call ebx
test eax, eax
je 0x47d73e
mov eax, dword [ebp - 0x228]
add eax, 0x7c
add eax, edi
cmp dword [eax + 0x14], 7
jbe 0x47d737
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 0x47d7ca
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x47d7ca
cmp dword [eax + 0x14], 7
jbe 0x47d764
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 0x47d7ca
push 0x208
lea eax, [ebp - 0x21c]
push 0
push eax
call fcn.004b69d0
lea eax, [esi + 0x7c]
add esp, 0xc
add eax, edi
cmp dword [eax + 0x14], 7
jbe 0x47d79b
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x21c]
push 0x104
push eax
call fcn.004cb818
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 0x47d640
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 - 0x258]
call fcn.00408bb0
lea ecx, [ebp - 0x270]
call fcn.00408bb0
lea ecx, [ebp - 0x288]
call fcn.00408bb0
lea ecx, [ebp - 0x2a0]
call fcn.00408bb0
lea ecx, [ebp - 0x2b8]
call fcn.00408bb0
lea ecx, [ebp - 0x2d0]
call fcn.00408bb0
lea ecx, [ebp - 0x228]
call fcn.00474760
mov eax, dword [ebp - 0x2e0]
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.004b3f1a
mov esp, ebp
pop ebp
ret 4
push 0x80004005
call fcn.00402a80
call fcn.00409cd0
call fcn.00403910
call fcn.004c0e66
int3