Function at 0x520a09
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x568
mov eax, ecx
mov dword [ebp - 0x8c], 7
push ebx
mov dword [ebp - 0x34], eax
push esi
mov eax, dword [eax + 0x24]
push edi
xor edi, edi
dec eax
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x90], edi
sub eax, 1
je 0x51f224
sub eax, 1
jne 0x51f915
push edi
push 0x11
jmp 0x51f227
push edi
push 0xd
lea eax, [ebp - 0x70]
push eax
call fcn.005ad3a0
mov esi, eax
add esp, 0xc
lea eax, [ebp - 0xa0]
cmp eax, esi
je 0x51f252
mov ecx, eax
call fcn.00403f80
push esi
lea ecx, [ebp - 0xa0]
call fcn.00444e92
lea ecx, [ebp - 0x70]
call fcn.00403f80
cmp dword [ebp - 0x90], edi
je 0x51f915
mov eax, edi
mov esi, edi
mov dword [ebp - 0x14], eax
mov ebx, edi
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], ebx
cmp dword [eax + 0x68], edi
je 0x51f650
add eax, 0x58
mov dword [ebp - 0x88], edi
push eax
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x74], edi
call fcn.00408766
cmp dword [ebp - 0x74], 8
lea ecx, [ebp - 0x88]
mov eax, dword [ebp - 0x78]
lea edx, [ebp - 0x88]
cmovae ecx, dword [ebp - 0x88]
cmovae edx, dword [ebp - 0x88]
push fcn.0056a37b
push edx
lea eax, [ecx + eax*2]
push eax
lea ecx, [ebp - 0x88]
cmovae ecx, dword [ebp - 0x88]
lea eax, [ebp - 0x10]
push ecx
push eax
call fcn.0045c2c5
add esp, 0x14
mov dword [ebp - 0x10c], edi
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x108], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x1c], edi
push 0x5c
pop eax
mov word [ebp - 0x110], ax
lea eax, [ebp - 0xa0]
push eax
mov dword [ebp - 0x18], edi
call fcn.00408766
push 0x5d599c
call fcn.00553a47
pop ecx
push eax
push 0x5d599c
lea ecx, [ebp - 0x2c]
call fcn.00409b94
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x568]
cmovae eax, dword [ebp - 0x2c]
push eax
call fcn.004bdee0
test eax, eax
je 0x51f5a1
mov esi, dword [ebp - 0x34]
add esi, 0x40
mov dword [ebp - 0x10], esi
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x568]
call fcn.004c78f0
lea ecx, [ebp - 0x30]
call fcn.0040b03f
cmp dword [ebp - 0x108], 0
je 0x51f393
lea eax, [ebp - 0x53c]
push eax
call fcn.00553a47
pop ecx
push eax
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x30]
call fcn.0041f84a
lea ecx, [ebp - 0x30]
call fcn.00421671
push dword [ebp - 0x30]
mov ecx, esi
call fcn.00454f43
test al, al
je 0x51f3f4
mov esi, dword [ebp - 8]
lea ecx, [ebp - 0x58]
push esi
call fcn.0040921d
lea eax, [ebp - 0x58]
push eax
cmp ebx, dword [ebp - 0x14]
je 0x51f3d5
mov ecx, ebx
mov dword [ebx], edi
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x14], edi
call fcn.00444e92
add ebx, 0x18
mov dword [ebp - 0x3c], ebx
jmp 0x51f3e7
push ebx
lea ecx, [ebp - 0x40]
call fcn.00447210
mov eax, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x3c]
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x58]
call fcn.00403f80
jmp 0x51f544
lea ecx, [ebp - 0x104]
call fcn.0051e9ee
mov esi, dword [ebp - 8]
lea ecx, [ebp - 0x70]
push esi
call fcn.0040921d
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0051fa29
pop ecx
pop ecx
lea ecx, [ebp - 0x70]
mov edi, eax
call fcn.00403f80
test edi, edi
je 0x51f552
xor edi, edi
lea eax, [ebp - 0x104]
push eax
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], edi
call fcn.00408766
cmp dword [ebp - 0x44], 8
lea ecx, [ebp - 0x58]
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x58]
cmovae ecx, dword [ebp - 0x58]
cmovae edx, dword [ebp - 0x58]
push fcn.0056a37b
push edx
lea eax, [ecx + eax*2]
push eax
lea ecx, [ebp - 0x58]
cmovae ecx, dword [ebp - 0x58]
lea eax, [ebp - 0xa4]
push ecx
push eax
call fcn.0045c2c5
push ecx
mov ecx, esp
lea eax, [ebp - 0x58]
push eax
mov dword [ecx], edi
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], edi
call fcn.00408766
lea eax, [ebp - 0x70]
push eax
call fcn.005af950
add esp, 0x1c
lea ecx, [ebp - 0x88]
push eax
call fcn.004108f3
lea ecx, [ebp - 0x70]
mov bl, al
call fcn.00403f80
test bl, bl
je 0x51f4f9
push esi
lea ecx, [ebp - 0x70]
call fcn.0040921d
mov ebx, dword [ebp - 0x3c]
lea eax, [ebp - 0x70]
push eax
cmp ebx, dword [ebp - 0x14]
je 0x51f4e2
mov ecx, ebx
mov dword [ebx], edi
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x14], edi
call fcn.00444e92
add ebx, 0x18
mov dword [ebp - 0x3c], ebx
jmp 0x51f4f1
push ebx
lea ecx, [ebp - 0x40]
call fcn.00447210
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x70]
call fcn.00403f80
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x51f536
mov ecx, dword [ebp - 0x58]
lea eax, [eax*2 + 2]
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], ecx
cmp eax, 0x1000
jb 0x51f52d
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.00403fef
mov eax, dword [ebp - 4]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
push eax
push ecx
call fcn.00541c01
pop ecx
pop ecx
mov ebx, dword [ebp - 0x3c]
lea ecx, [ebp - 0x104]
call fcn.0051ebf5
cmp dword [ebp - 0x10c], 0
jne 0x51f556
mov dword [ebp - 0xc], edi
jmp 0x51f57b
xor edi, edi
jmp 0x51f539
cmp dword [ebp - 0x108], 0
je 0x51f54d
lea eax, [ebp - 0x568]
push eax
push dword [ebp - 0x10c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.0040c134
lea ecx, [esi - 0x10]
call fcn.0040c134
cmp dword [ebp - 0xc], 0
mov esi, dword [ebp - 0x10]
jne 0x51f356
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0xc], esi
mov eax, dword [ebp - 0x18]
cmp eax, 8
jb 0x51f5de
mov ecx, dword [ebp - 0x2c]
lea eax, [eax*2 + 2]
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
cmp eax, 0x1000
jb 0x51f5d5
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
call fcn.00403fef
mov eax, dword [ebp - 4]
pop ecx
pop ecx
mov ecx, dword [ebp - 8]
push eax
push ecx
call fcn.00541c01
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x1c], edi
mov word [ebp - 0x2c], ax
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x108], edi
test eax, eax
je 0x51f610
cmp eax, 0xffffffff
je 0x51f610
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [ebp - 0x10c], edi
mov eax, dword [ebp - 0x74]
cmp eax, 8
jb 0x51f650
mov ecx, dword [ebp - 0x88]
lea eax, [eax*2 + 2]
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
cmp eax, 0x1000
jb 0x51f647
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
call fcn.00403fef
mov eax, dword [ebp - 4]
pop ecx
pop ecx
mov ecx, dword [ebp - 8]
push eax
push ecx
call fcn.00541c01
pop ecx
pop ecx
mov eax, ebx
sub eax, esi
push 0x18
cdq
pop ecx
idiv ecx
test eax, eax
je 0x51f8bf
mov eax, esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
je 0x51f8bc
call fcn.005b7640
cmp eax, 0xb
jl 0x51f75b
cmp dword [0x62a350], 0
je 0x51f8ac
cmp dword [0x62a354], 8
mov eax, 0x62a340
cmovae eax, dword [0x62a340]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x51f8ac
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], 7
cmp dword [eax + 0x24], 2
jne 0x51f6c9
mov eax, str.unpin_start
jmp 0x51f6d8
cmp dword [eax + 0x24], 3
jne 0x51f8ac
mov eax, str.unpin
push eax
mov dword [ebp - 4], eax
call fcn.00553a47
pop ecx
push eax
push dword [ebp - 4]
lea ecx, [ebp - 0x2c]
call fcn.00407f20
cmp dword [ebp - 0x1c], 0
je 0x51f86f
push 0x60084c
call fcn.00553a47
pop ecx
push eax
push 0x60084c
lea ecx, [ebp - 0x2c]
call fcn.00409b94
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x51f71b
mov eax, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x2c]
push eax
call fcn.00409b94
push 0x5ff8ec
call fcn.00553a47
pop ecx
push eax
push 0x5ff8ec
lea ecx, [ebp - 0x2c]
call fcn.00409b94
lea eax, [ebp - 0x2c]
push eax
push 0x1388
push 0x62a340
call fcn.005b3f90
add esp, 0xc
jmp 0x51f86f
call fcn.005b7640
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x24]
cmp eax, 5
jge 0x51f7fb
cmp ecx, 2
jne 0x51f7b9
push 0x5f9b70
lea ecx, [ebp - 0x2c]
call fcn.0040921d
push str.unpin
lea ecx, [ebp - 0x70]
call fcn.0040921d
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x70]
push eax
push 0x1388
push esi
call fcn.005b45d0
add esp, 0x10
lea ecx, [ebp - 0x70]
call fcn.00403f80
lea ecx, [ebp - 0x2c]
call fcn.00403f80
jmp 0x51f8ac
cmp ecx, 3
jne 0x51f8ac
lea ecx, [ebp - 0xdc]
call fcn.005afe10
sub esp, 0x18
mov ecx, esp
push esi
mov dword [ecx], edi
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], edi
call fcn.00408766
lea ecx, [ebp - 0xdc]
call fcn.005adc60
lea ecx, [ebp - 0xdc]
call fcn.005afd10
jmp 0x51f8ac
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], 7
cmp ecx, 2
jne 0x51f820
push str.StartUnPin
call fcn.00553a47
pop ecx
push eax
push str.StartUnPin
jmp 0x51f836
cmp ecx, 3
jne 0x51f83e
push str.TaskbarUnPin
call fcn.00553a47
pop ecx
push eax
push str.TaskbarUnPin
lea ecx, [ebp - 0x2c]
call fcn.00407f20
cmp dword [ebp - 0x1c], 0
je 0x51f86f
push 0x5f9b70
lea ecx, [ebp - 0x70]
call fcn.0040921d
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x1388
push esi
call fcn.005b45d0
add esp, 0x10
lea ecx, [ebp - 0x70]
call fcn.00403f80
mov eax, dword [ebp - 0x18]
cmp eax, 8
jb 0x51f8ac
mov ecx, dword [ebp - 0x2c]
lea eax, [eax*2 + 2]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
cmp eax, 0x1000
jb 0x51f8a3
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
call fcn.00403fef
mov eax, dword [ebp - 4]
pop ecx
pop ecx
mov ecx, dword [ebp - 8]
push eax
push ecx
call fcn.00541c01
pop ecx
pop ecx
push 0x18
pop ecx
add esi, ecx
cmp esi, ebx
jne 0x51f66f
mov esi, dword [ebp - 0xc]
xor edi, edi
inc edi
test esi, esi
je 0x51f915
mov eax, esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
je 0x51f8df
mov ecx, esi
call fcn.00403f80
push 0x18
pop ecx
add esi, ecx
cmp esi, ebx
jne 0x51f8cc
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
sub eax, esi
mov dword [ebp - 8], esi
cdq
idiv ecx
imul eax, eax, 0x18
mov dword [ebp - 4], eax
cmp eax, 0x1000
jb 0x51f90c
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
call fcn.00403fef
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 8]
pop ecx
pop ecx
push eax
push esi
call fcn.00541c01
pop ecx
pop ecx
mov eax, dword [ebp - 0x8c]
cmp eax, 8
jb 0x51f958
mov ecx, dword [ebp - 0xa0]
lea eax, [eax*2 + 2]
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
cmp eax, 0x1000
jb 0x51f94f
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
call fcn.00403fef
mov eax, dword [ebp - 4]
pop ecx
pop ecx
mov ecx, dword [ebp - 8]
push eax
push ecx
call fcn.00541c01
pop ecx
pop ecx
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret
cmp dword [ecx + 0x24], 0
je 0x520a19
cmp dword [ecx + 0x24], 1
jne 0x51f1e4
jmp fcn.0051ed27