Function at 0x5209fa
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 0x51f215
sub eax, 1
jne 0x51f906
push edi
push 0x11
jmp 0x51f218
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 0x51f243
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 0x51f906
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 0x51f641
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 0x5d59ac
call fcn.00553a47
pop ecx
push eax
push 0x5d59ac
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 0x51f592
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 0x51f384
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 0x51f3e5
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 0x51f3c6
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 0x51f3d8
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 0x51f535
lea ecx, [ebp - 0x104]
call fcn.0051e9df
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.0051fa1a
pop ecx
pop ecx
lea ecx, [ebp - 0x70]
mov edi, eax
call fcn.00403f80
test edi, edi
je 0x51f543
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 0x51f4ea
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 0x51f4d3
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 0x51f4e2
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 0x51f527
mov ecx, dword [ebp - 0x58]
lea eax, [eax*2 + 2]
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], ecx
cmp eax, 0x1000
jb 0x51f51e
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.00541bf5
pop ecx
pop ecx
mov ebx, dword [ebp - 0x3c]
lea ecx, [ebp - 0x104]
call fcn.0051ebe6
cmp dword [ebp - 0x10c], 0
jne 0x51f547
mov dword [ebp - 0xc], edi
jmp 0x51f56c
xor edi, edi
jmp 0x51f52a
cmp dword [ebp - 0x108], 0
je 0x51f53e
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 0x51f347
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0xc], esi
mov eax, dword [ebp - 0x18]
cmp eax, 8
jb 0x51f5cf
mov ecx, dword [ebp - 0x2c]
lea eax, [eax*2 + 2]
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
cmp eax, 0x1000
jb 0x51f5c6
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.00541bf5
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 0x51f601
cmp eax, 0xffffffff
je 0x51f601
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [ebp - 0x10c], edi
mov eax, dword [ebp - 0x74]
cmp eax, 8
jb 0x51f641
mov ecx, dword [ebp - 0x88]
lea eax, [eax*2 + 2]
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
cmp eax, 0x1000
jb 0x51f638
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.00541bf5
pop ecx
pop ecx
mov eax, ebx
sub eax, esi
push 0x18
cdq
pop ecx
idiv ecx
test eax, eax
je 0x51f8b0
mov eax, esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
je 0x51f8ad
call fcn.005b7640
cmp eax, 0xb
jl 0x51f74c
cmp dword [0x62a354], 0
je 0x51f89d
cmp dword [0x62a358], 8
mov eax, 0x62a344
cmovae eax, dword [0x62a344]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x51f89d
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 0x51f6ba
mov eax, str.unpin_start
jmp 0x51f6c9
cmp dword [eax + 0x24], 3
jne 0x51f89d
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 0x51f860
push 0x60085c
call fcn.00553a47
pop ecx
push eax
push 0x60085c
lea ecx, [ebp - 0x2c]
call fcn.00409b94
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x51f70c
mov eax, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x2c]
push eax
call fcn.00409b94
push 0x5ff8fc
call fcn.00553a47
pop ecx
push eax
push 0x5ff8fc
lea ecx, [ebp - 0x2c]
call fcn.00409b94
lea eax, [ebp - 0x2c]
push eax
push 0x1388
push 0x62a344
call fcn.005b3f90
add esp, 0xc
jmp 0x51f860
call fcn.005b7640
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0x24]
cmp eax, 5
jge 0x51f7ec
cmp ecx, 2
jne 0x51f7aa
push 0x5f9b84
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 0x51f89d
cmp ecx, 3
jne 0x51f89d
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 0x51f89d
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], 7
cmp ecx, 2
jne 0x51f811
push str.StartUnPin
call fcn.00553a47
pop ecx
push eax
push str.StartUnPin
jmp 0x51f827
cmp ecx, 3
jne 0x51f82f
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 0x51f860
push 0x5f9b84
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 0x51f89d
mov ecx, dword [ebp - 0x2c]
lea eax, [eax*2 + 2]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
cmp eax, 0x1000
jb 0x51f894
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.00541bf5
pop ecx
pop ecx
push 0x18
pop ecx
add esi, ecx
cmp esi, ebx
jne 0x51f660
mov esi, dword [ebp - 0xc]
xor edi, edi
inc edi
test esi, esi
je 0x51f906
mov eax, esi
mov dword [ebp - 0x10], eax
cmp eax, ebx
je 0x51f8d0
mov ecx, esi
call fcn.00403f80
push 0x18
pop ecx
add esi, ecx
cmp esi, ebx
jne 0x51f8bd
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 0x51f8fd
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.00541bf5
pop ecx
pop ecx
mov eax, dword [ebp - 0x8c]
cmp eax, 8
jb 0x51f949
mov ecx, dword [ebp - 0xa0]
lea eax, [eax*2 + 2]
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
cmp eax, 0x1000
jb 0x51f940
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.00541bf5
pop ecx
pop ecx
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret
cmp dword [ecx + 0x24], 0
je 0x520a0a
cmp dword [ecx + 0x24], 1
jne 0x51f1d5
jmp fcn.0051ed18