Function at 0x425020
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x536b5e
mov eax, dword fs:[0]
push eax
sub esp, 0x864
mov eax, dword [0x5a6a30]
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 eax, dword [ebp + 8]
mov dword [ebp - 0x828], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x844], eax
mov eax, 7
xor ebx, ebx
xor edx, edx
mov dword [ebp - 0x848], ecx
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x244], ebx
mov word [ebp - 0x254], dx
mov dword [ebp - 0x25c], eax
xor eax, eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x260], ebx
mov word [ebp - 0x270], ax
mov dword [ebp - 0x858], ebx
mov dword [ebp - 0x854], ebx
mov dword [ebp - 0x850], ebx
mov dword [ebp - 0x868], ebx
mov dword [ebp - 0x864], ebx
mov dword [ebp - 0x860], ebx
lea ecx, [ebp - 0x818]
mov byte [ebp - 4], 3
mov dword [ebp - 0x834], 1
call fcn.00429620
push str.Kernel32.DLL
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
cmp esi, ebx
je 0x4259e4
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x55a10c
push esi
call edi
push 0x55aa04
push esi
mov dword [ebp - 0x82c], eax
call edi
push 0x55a9f4
push esi
mov dword [ebp - 0x83c], eax
call edi
push 0x55a9e8
push esi
mov dword [ebp - 0x838], eax
call edi
push 0x55a9d4
push esi
mov dword [ebp - 0x840], eax
call edi
push str.CShortcut::DeleteShortcutW__________________________IN._n
push 5
mov dword [ebp - 0x870], eax
call fcn.00403750
add esp, 8
cmp dword [ebp + 0x10], ebx
jne 0x42516a
cmp dword [ebp - 0x844], ebx
jne 0x42516a
cmp dword [ebp - 0x848], ebx
jne 0x42516a
push str.CShortcut::DeleteShortcutW_pName_and_pTarget_are_NULL_on_not_DeadLinkOnly._n
jmp 0x4259da
cmp dword [ebp - 0x83c], ebx
je 0x4259d5
cmp dword [ebp - 0x838], ebx
je 0x4259d5
cmp dword [ebp - 0x82c], ebx
je 0x4259d5
cmp dword [ebp - 0x840], ebx
je 0x4259d5
mov esi, dword [ebp - 0x828]
cmp dword [esi + 0x58], 1
jne 0x4252e3
push str.Shell32.dll
mov ebx, 0x17
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
push str.CShortcut::DeleteShortcutW_CShortcut::user_all._n
push 5
mov dword [ebp - 0x820], esi
call fcn.00403750
add esp, 8
push str.SHGetSpecialFolderPathW
push esi
call edi
mov edi, eax
test edi, edi
je 0x4252ba
mov esi, dword [ebp - 0x828]
add esi, 4
cmp dword [esi + 0x14], 8
jb 0x4251f6
mov eax, dword [esi]
jmp 0x4251f8
mov eax, esi
push str.Desktop
push eax
call fcn.0051eced
add esp, 8
test eax, eax
jne 0x42520f
lea ebx, [eax + 0x19]
jmp 0x42526f
cmp dword [esi + 0x14], 8
jb 0x425219
mov eax, dword [esi]
jmp 0x42521b
mov eax, esi
push str.Programs
push eax
call fcn.0051eced
add esp, 8
test eax, eax
je 0x42526f
cmp dword [esi + 0x14], 8
jb 0x425237
mov eax, dword [esi]
jmp 0x425239
mov eax, esi
push str.Start_Menu
push eax
call fcn.0051eced
add esp, 8
test eax, eax
jne 0x425250
lea ebx, [eax + 0x16]
jmp 0x42526f
cmp dword [esi + 0x14], 8
jb 0x425258
mov esi, dword [esi]
push str.Startup
push esi
call fcn.0051eced
add esp, 8
test eax, eax
jne 0x42526f
mov ebx, 0x18
push 0
push ebx
lea ecx, [ebp - 0x21c]
push ecx
push 0
call edi
test eax, eax
je 0x4252c9
lea edx, [ebp - 0x21c]
push edx
lea ecx, [ebp - 0x238]
call fcn.00401f70
lea eax, [ebp - 0x238]
push eax
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 5
call fcn.00402610
lea ecx, [ebp - 0x238]
mov byte [ebp - 4], 4
call fcn.00401880
jmp 0x4252c9
push str.CShortcut::DeleteShortcutW_cannot_get_SHGetSpecialFolderPath_pointer._n
push 5
call fcn.00403750
add esp, 8
mov eax, dword [ebp - 0x820]
test eax, eax
je 0x42537a
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x42537a
lea eax, [esi + 4]
mov edi, 8
cmp dword [eax + 0x14], edi
jb 0x4252f2
mov eax, dword [eax]
lea ecx, [ebp - 0x2f0]
push 3
mov dword [ebp - 0x2f4], ecx
push eax
lea ecx, [ebp - 0x2f4]
call fcn.00411e10
mov edx, dword [ebp - 0x2f4]
push edx
lea eax, [ebp - 0x238]
push eax
mov byte [ebp - 4], 6
call fcn.00427de0
add esp, 8
mov eax, dword [ebp - 0x2f4]
lea ecx, [ebp - 0x2f0]
mov byte [ebp - 4], 8
cmp eax, ecx
je 0x425343
push eax
call fcn.0051fea9
add esp, 4
mov eax, dword [ebp - 0x238]
cmp dword [ebp - 0x224], edi
jae 0x425357
lea eax, [ebp - 0x238]
lea edx, [ebp - 0x858]
push edx
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerShell_Folders
mov ecx, esi
call fcn.00424f00
lea ecx, [ebp - 0x238]
mov byte [ebp - 4], 4
call fcn.00401880
mov edx, dword [ebp - 0x858]
mov dword [ebp - 0x820], edx
cmp edx, dword [ebp - 0x854]
je 0x425807
cmp dword [edx + 0x14], 8
jb 0x42539a
mov edx, dword [edx]
mov eax, edx
lea esi, [eax + 2]
xor ebx, ebx
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4253a1
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x254]
call fcn.00401dd0
push 1
push 0x5457b4
lea ecx, [ebp - 0x254]
call fcn.004035d0
mov esi, dword [ebp - 0x828]
cmp dword [esi + 0x4c], ebx
je 0x4254af
lea ecx, [ebp - 0x234]
call fcn.00428620
cmp dword [esi + 0x50], 8
lea eax, [esi + 0x3c]
mov byte [ebp - 4], 9
jb 0x4253f8
mov eax, dword [eax]
push 0x5c
push eax
lea ecx, [ebp - 0x234]
call fcn.00428bc0
lea ecx, [ebp - 0x234]
xor edi, edi
call fcn.00426dd0
test eax, eax
je 0x4254a0
jmp 0x425420
push edi
lea ecx, [ebp - 0x234]
call fcn.004270a0
cmp eax, ebx
je 0x425490
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x425435
sub ecx, esi
sar ecx, 1
je 0x425490
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x425450
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x425450
sub ecx, esi
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x254]
call fcn.004035d0
lea eax, [ebp - 0x254]
push eax
lea ecx, [ebp - 0x868]
call fcn.00402610
push 1
push 0x5457b4
lea ecx, [ebp - 0x254]
call fcn.004035d0
lea ecx, [ebp - 0x234]
inc edi
call fcn.00426dd0
cmp edi, eax
jb 0x425420
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 4
call fcn.00428630
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x254]
push ecx
lea ecx, [ebp - 0x270]
call fcn.00401cd0
push 5
push str..lnk
lea ecx, [ebp - 0x254]
call fcn.004035d0
mov eax, dword [ebp - 0x254]
mov esi, 8
cmp dword [ebp - 0x240], esi
jae 0x4254ef
lea eax, [ebp - 0x254]
push eax
push str.CShortcut::DeleteShortcutW_ShortCut_Folder___1_S__n
push 4
call fcn.00403750
mov eax, dword [ebp - 0x254]
add esp, 0xc
cmp dword [ebp - 0x240], esi
jae 0x425513
lea eax, [ebp - 0x254]
lea edx, [ebp - 0x544]
push edx
push eax
call dword [ebp - 0x83c]
mov dword [ebp - 0x830], eax
cmp eax, 0xffffffff
jne 0x425540
push str.CShortcut::DeleteShortcutW______Not_found._n
push 4
call fcn.00403750
add esp, 8
jmp 0x4257ec
xor eax, eax
mov dword [ebp - 0x81c], ebx
mov dword [ebp - 0x824], ebx
mov dword [ebp - 0x224], 7
mov dword [ebp - 0x228], ebx
mov word [ebp - 0x238], ax
mov esi, dword [ebp - 0x848]
mov edi, dword [ebp - 0x844]
mov byte [ebp - 4], 0xa
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x270]
push ecx
lea ecx, [ebp - 0x238]
call fcn.00401cd0
lea eax, [ebp - 0x518]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x425593
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x518]
push edx
lea ecx, [ebp - 0x238]
call fcn.004035d0
cmp dword [ebp - 0x224], 8
mov eax, dword [ebp - 0x238]
jae 0x4255ca
lea eax, [ebp - 0x238]
push eax
push str.CShortcut::DeleteShortcutW_FindFilePath___1_S__n
push 4
call fcn.00403750
add esp, 0xc
cmp edi, ebx
je 0x42561c
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4255e3
sub eax, edx
sar eax, 1
je 0x42561c
lea eax, [ebp - 0x518]
push edi
push eax
call fcn.0051eced
add esp, 8
test eax, eax
je 0x42561c
push str.CShortcut::DeleteShortcutW_Specified_name_is_not_matched._n
push 5
call fcn.00403750
add esp, 8
jmp 0x4257a7
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea ecx, [ebp - 0x81c]
push ecx
push 0x5847ac
push 1
push ebx
push 0x584b0c
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jl 0x425771
mov eax, dword [ebp - 0x81c]
mov edx, dword [eax]
mov edx, dword [edx]
lea ecx, [ebp - 0x824]
push ecx
push 0x584abc
push eax
call edx
cmp eax, ebx
jl 0x425771
cmp dword [ebp - 0x224], 8
mov ecx, dword [ebp - 0x238]
jae 0x42567b
lea ecx, [ebp - 0x238]
mov eax, dword [ebp - 0x824]
mov edx, dword [eax]
push ebx
push ecx
push eax
mov eax, dword [edx + 0x14]
call eax
cmp eax, ebx
jl 0x425771
lea ecx, [ebp - 0x518]
push ecx
push str.CShortcut::DeleteShortcutW__1_S__Loading._n
push 4
call fcn.00403750
mov eax, dword [ebp - 0x81c]
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
add esp, 0xc
push 2
push ebx
push 0x105
lea ecx, [ebp - 0x21c]
push ecx
push eax
call edx
lea eax, [ebp - 0x21c]
push eax
push str.CShortcut::DeleteShortcutW_The_shell_link_object_is__1_S_._n
push 4
call fcn.00403750
add esp, 0xc
cmp esi, ebx
je 0x425720
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4256e5
sub eax, edx
sar eax, 1
je 0x425720
lea ecx, [ebp - 0x21c]
push esi
push ecx
call fcn.0051eced
add esp, 8
test eax, eax
jne 0x425771
lea edx, [ebp - 0x21c]
push edx
push str.CShortcut::DeleteShortcutW_The_target___1_S___is_matched._n
push 4
call fcn.00403750
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
push str.CShortcut::DeleteShortcutW_szTargetPath____1_S___n
push 4
call fcn.00403750
add esp, 0xc
cmp dword [ebp + 0x10], ebx
je 0x42582c
lea ecx, [ebp - 0x21c]
push ecx
call dword [ebp - 0x82c]
cmp eax, 0xffffffff
je 0x42582c
lea edx, [ebp - 0x518]
push edx
push str.CShortcut::DeleteShortcutW__1_S__find_the_target_of_a_Shell_link._n
push 4
call fcn.00403750
add esp, 0xc
mov dword [ebp - 0x834], ebx
mov eax, dword [ebp - 0x81c]
cmp eax, ebx
je 0x425789
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 0x81c], ebx
mov eax, dword [ebp - 0x824]
cmp eax, ebx
je 0x4257a1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 0x824], ebx
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 0x830]
lea eax, [ebp - 0x544]
push eax
push ecx
call dword [ebp - 0x838]
test eax, eax
jne 0x425575
mov edx, dword [ebp - 0x830]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 0x224], 8
mov byte [ebp - 4], 4
jb 0x4257ec
mov eax, dword [ebp - 0x238]
push eax
call fcn.00429e6f
add esp, 4
mov edx, dword [ebp - 0x820]
add edx, 0x1c
mov dword [ebp - 0x820], edx
cmp edx, dword [ebp - 0x854]
jne 0x425392
mov ebx, dword [ebp - 0x864]
mov edi, dword [ebp - 0x868]
cmp ebx, edi
je 0x4258fc
lea esi, [ebx - 0x1c]
mov ebx, 8
cmp dword [esi + 0x14], ebx
jb 0x42586b
mov eax, dword [esi]
jmp 0x42586d
cmp dword [ebp - 0x224], 8
mov eax, dword [ebp - 0x238]
jae 0x425841
lea eax, [ebp - 0x238]
push eax
call dword [ebp - 0x840]
test eax, eax
je 0x42576b
lea eax, [ebp - 0x518]
push eax
push str.CShortcut::DeleteShortcutW__1_S__is_deleted._n
push 4
call fcn.00403750
add esp, 0xc
jmp 0x425771
mov eax, esi
push eax
call dword [ebp - 0x82c]
cmp eax, 0xffffffff
je 0x4258e8
cmp dword [ebp - 0x7a4], 0
je 0x42588d
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [esi + 0x14], ebx
jb 0x425896
mov eax, dword [esi]
jmp 0x425898
mov eax, esi
push eax
call dword [ebp - 0x870]
test eax, eax
je 0x4258c0
cmp dword [esi + 0x14], ebx
jb 0x4258ac
mov eax, dword [esi]
jmp 0x4258ae
mov eax, esi
push eax
push str.CShortcut::DeleteShortcutW__1_S__empty._removed._n
push 4
call fcn.00403750
add esp, 0xc
jmp 0x4258e8
cmp dword [esi + 0x14], ebx
jb 0x4258c9
mov edi, dword [esi]
jmp 0x4258cb
mov edi, esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str.CShortcut::DeleteShortcutW__1_S__cannot_be_deleted.__0x_2_lx___n
push 2
call fcn.00403750
mov edi, dword [ebp - 0x868]
add esp, 0x10
sub esi, 0x1c
lea ecx, [esi + 0x1c]
cmp ecx, edi
jne 0x425823
mov ebx, dword [ebp - 0x864]
push str.CShortcut::DeleteShortcutW__________________________OUT._n
push 5
call fcn.00403750
add esp, 8
lea ecx, [ebp - 0x818]
mov byte [ebp - 4], 3
call fcn.00429500
test edi, edi
je 0x425944
mov esi, edi
cmp edi, ebx
je 0x42593b
lea edx, [ebp - 0x85c]
push esi
push edx
call fcn.004020a0
add esi, 0x1c
add esp, 8
cmp esi, ebx
jne 0x425924
push edi
call fcn.00429e6f
add esp, 4
mov ebx, dword [ebp - 0x858]
test ebx, ebx
je 0x425980
mov edi, dword [ebp - 0x854]
mov esi, ebx
cmp ebx, edi
je 0x425977
lea ebx, [ebx]
lea eax, [ebp - 0x84c]
push esi
push eax
call fcn.004020a0
add esi, 0x1c
add esp, 8
cmp esi, edi
jne 0x425960
push ebx
call fcn.00429e6f
add esp, 4
cmp dword [ebp - 0x25c], 8
jb 0x425998
mov ecx, dword [ebp - 0x270]
push ecx
call fcn.00429e6f
add esp, 4
xor edx, edx
cmp dword [ebp - 0x240], 8
mov dword [ebp - 0x25c], 7
mov dword [ebp - 0x260], 0
mov word [ebp - 0x270], dx
jb 0x4259cd
mov eax, dword [ebp - 0x254]
push eax
call fcn.00429e6f
add esp, 4
mov eax, dword [ebp - 0x834]
jmp 0x425a50
push str.CShortcut::DeleteShortcutW_Unicode_functions_address_is_invalid._n
push 5
call fcn.00403750
add esp, 8
push str.CShortcut::DeleteShortcutW__________________________ERROR_OUT._n
push 5
call fcn.00403750
add esp, 8
lea ecx, [ebp - 0x818]
mov byte [ebp - 4], 3
call fcn.00429500
mov esi, 8
cmp dword [ebp - 0x25c], esi
jb 0x425a1e
mov ecx, dword [ebp - 0x270]
push ecx
call fcn.00429e6f
add esp, 4
xor edx, edx
mov dword [ebp - 0x25c], 7
mov dword [ebp - 0x260], ebx
mov word [ebp - 0x270], dx
cmp dword [ebp - 0x240], esi
jb 0x425a4e
mov eax, dword [ebp - 0x254]
push eax
call fcn.00429e6f
add esp, 4
xor eax, eax
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.0051e701
mov esp, ebp
pop ebp
ret 0xc