Function at 0x443300
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x559a7e
mov eax, dword fs:[0]
push eax
sub esp, 0x844
mov eax, dword [0x5d7b20]
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 - 0x808], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x824], eax
mov eax, 7
xor ebx, ebx
xor edx, edx
mov dword [ebp - 0x828], 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 - 0x838], ebx
mov dword [ebp - 0x834], ebx
mov dword [ebp - 0x830], ebx
mov dword [ebp - 0x848], ebx
mov dword [ebp - 0x844], ebx
mov dword [ebp - 0x840], ebx
lea ecx, [ebp - 0x7f8]
mov byte [ebp - 4], 3
mov dword [ebp - 0x814], 1
call fcn.004489d0
push str.Kernel32.DLL
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
cmp esi, ebx
je 0x443c6a
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x5875c4
push esi
call edi
push 0x5887ac
push esi
mov dword [ebp - 0x80c], eax
call edi
push 0x58879c
push esi
mov dword [ebp - 0x81c], eax
call edi
push 0x588790
push esi
mov dword [ebp - 0x818], eax
call edi
push 0x58877c
push esi
mov dword [ebp - 0x820], eax
call edi
push str.CShortcut::DeleteShortcutW__________________________IN._n
push 5
mov dword [ebp - 0x850], eax
call fcn.00403ab0
add esp, 8
cmp dword [ebp + 0x10], ebx
jne 0x44344a
cmp dword [ebp - 0x824], ebx
jne 0x44344a
cmp dword [ebp - 0x828], ebx
jne 0x44344a
push str.CShortcut::DeleteShortcutW_pName_and_pTarget_are_NULL_on_not_DeadLinkOnly._n
jmp 0x443c60
cmp dword [ebp - 0x7f4], ebx
je 0x44345c
push str.CShortcut::DeleteShortcutW_Windows_9x_not_supported._n
jmp 0x443c60
cmp dword [ebp - 0x81c], ebx
je 0x443c5b
cmp dword [ebp - 0x818], ebx
je 0x443c5b
cmp dword [ebp - 0x80c], ebx
je 0x443c5b
cmp dword [ebp - 0x820], ebx
je 0x443c5b
mov esi, dword [ebp - 0x808]
cmp dword [esi + 0x58], 1
jne 0x4435d5
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 - 0x800], esi
call fcn.00403ab0
add esp, 8
push str.SHGetSpecialFolderPathW
push esi
call edi
mov edi, eax
test edi, edi
je 0x4435ac
mov esi, dword [ebp - 0x808]
add esi, 4
cmp dword [esi + 0x14], 8
jb 0x4434e8
mov eax, dword [esi]
jmp 0x4434ea
mov eax, esi
push str.Desktop
push eax
call fcn.0053e2bf
add esp, 8
test eax, eax
jne 0x443501
lea ebx, [eax + 0x19]
jmp 0x443561
cmp dword [esi + 0x14], 8
jb 0x44350b
mov eax, dword [esi]
jmp 0x44350d
mov eax, esi
push str.Programs
push eax
call fcn.0053e2bf
add esp, 8
test eax, eax
je 0x443561
cmp dword [esi + 0x14], 8
jb 0x443529
mov eax, dword [esi]
jmp 0x44352b
mov eax, esi
push str.Start_Menu
push eax
call fcn.0053e2bf
add esp, 8
test eax, eax
jne 0x443542
lea ebx, [eax + 0x16]
jmp 0x443561
cmp dword [esi + 0x14], 8
jb 0x44354a
mov esi, dword [esi]
push str.Startup
push esi
call fcn.0053e2bf
add esp, 8
test eax, eax
jne 0x443561
mov ebx, 0x18
push 0
push ebx
lea ecx, [ebp - 0x21c]
push ecx
push 0
call edi
test eax, eax
je 0x4435bb
lea edx, [ebp - 0x21c]
push edx
lea ecx, [ebp - 0x238]
call fcn.0040c650
lea eax, [ebp - 0x238]
push eax
lea ecx, [ebp - 0x838]
mov byte [ebp - 4], 5
call fcn.00423c70
lea ecx, [ebp - 0x238]
mov byte [ebp - 4], 4
call fcn.00418450
jmp 0x4435bb
push str.CShortcut::DeleteShortcutW_cannot_get_SHGetSpecialFolderPath_pointer._n
push 5
call fcn.00403ab0
add esp, 8
mov eax, dword [ebp - 0x800]
test eax, eax
je 0x44366c
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x44366c
lea eax, [esi + 4]
mov edi, 8
cmp dword [eax + 0x14], edi
jb 0x4435e4
mov eax, dword [eax]
lea ecx, [ebp - 0x2f0]
push 3
mov dword [ebp - 0x2f4], ecx
push eax
lea ecx, [ebp - 0x2f4]
call fcn.0040b3a0
mov edx, dword [ebp - 0x2f4]
push edx
lea eax, [ebp - 0x238]
push eax
mov byte [ebp - 4], 6
call fcn.00447050
add esp, 8
mov eax, dword [ebp - 0x2f4]
lea ecx, [ebp - 0x2f0]
mov byte [ebp - 4], 8
cmp eax, ecx
je 0x443635
push eax
call fcn.0053f854
add esp, 4
mov eax, dword [ebp - 0x238]
cmp dword [ebp - 0x224], edi
jae 0x443649
lea eax, [ebp - 0x238]
lea edx, [ebp - 0x838]
push edx
push eax
push 0x575400
mov ecx, esi
call fcn.004421c0
lea ecx, [ebp - 0x238]
mov byte [ebp - 4], 4
call fcn.00418450
mov edx, dword [ebp - 0x838]
mov dword [ebp - 0x800], edx
cmp edx, dword [ebp - 0x834]
je 0x443ae4
cmp dword [edx + 0x14], 8
jb 0x44368c
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 0x443693
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x254]
call fcn.004021b0
push 1
push 0x56825c
lea ecx, [ebp - 0x254]
call fcn.00402090
mov esi, dword [ebp - 0x808]
cmp dword [esi + 0x4c], ebx
je 0x443785
lea ecx, [ebp - 0x234]
call fcn.004479d0
cmp dword [esi + 0x50], 8
lea eax, [esi + 0x3c]
mov byte [ebp - 4], 9
jb 0x4436ea
mov eax, dword [eax]
push 0x5c
push eax
lea ecx, [ebp - 0x234]
call fcn.00447f70
lea ecx, [ebp - 0x234]
xor esi, esi
call fcn.00445fe0
test eax, eax
je 0x443776
lea esp, [esp]
push esi
lea ecx, [ebp - 0x234]
call fcn.004462b0
cmp eax, ebx
je 0x443766
mov ecx, eax
lea edi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x443725
sub ecx, edi
sar ecx, 1
je 0x443766
push eax
lea ecx, [ebp - 0x254]
call fcn.004024c0
lea eax, [ebp - 0x254]
push eax
lea ecx, [ebp - 0x848]
call fcn.00423c70
push 1
push 0x56825c
lea ecx, [ebp - 0x254]
call fcn.00402090
lea ecx, [ebp - 0x234]
inc esi
call fcn.00445fe0
cmp esi, eax
jb 0x443710
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 4
call fcn.004479e0
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x254]
push ecx
lea ecx, [ebp - 0x270]
call fcn.00401f90
push 5
push str..lnk
lea ecx, [ebp - 0x254]
call fcn.00402090
mov eax, dword [ebp - 0x254]
mov esi, 8
cmp dword [ebp - 0x240], esi
jae 0x4437c5
lea eax, [ebp - 0x254]
push eax
push str.CShortcut::DeleteShortcutW_ShortCut_Folder___1_S__n
push 4
call fcn.00403ab0
mov eax, dword [ebp - 0x254]
add esp, 0xc
cmp dword [ebp - 0x240], esi
jae 0x4437e9
lea eax, [ebp - 0x254]
lea edx, [ebp - 0x544]
push edx
push eax
call dword [ebp - 0x81c]
mov dword [ebp - 0x810], eax
cmp eax, 0xffffffff
jne 0x443816
push str.CShortcut::DeleteShortcutW______Not_found._n
push 4
call fcn.00403ab0
add esp, 8
jmp 0x443ac9
xor eax, eax
mov dword [ebp - 0x7fc], ebx
mov dword [ebp - 0x804], ebx
mov dword [ebp - 0x224], 7
mov dword [ebp - 0x228], ebx
mov word [ebp - 0x238], ax
mov esi, dword [ebp - 0x828]
mov edi, dword [ebp - 0x824]
mov byte [ebp - 4], 0xa
jmp 0x443850
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x270]
push ecx
lea ecx, [ebp - 0x238]
call fcn.00401f90
lea eax, [ebp - 0x518]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x443870
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x518]
push edx
lea ecx, [ebp - 0x238]
call fcn.00402090
cmp dword [ebp - 0x224], 8
mov eax, dword [ebp - 0x238]
jae 0x4438a7
lea eax, [ebp - 0x238]
push eax
push str.CShortcut::DeleteShortcutW_FindFilePath___1_S__n
push 4
call fcn.00403ab0
add esp, 0xc
cmp edi, ebx
je 0x4438f9
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4438c0
sub eax, edx
sar eax, 1
je 0x4438f9
lea eax, [ebp - 0x518]
push edi
push eax
call fcn.0053e2bf
add esp, 8
test eax, eax
je 0x4438f9
push str.CShortcut::DeleteShortcutW_Specified_name_is_not_matched._n
push 5
call fcn.00403ab0
add esp, 8
jmp 0x443a84
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea ecx, [ebp - 0x7fc]
push ecx
push 0x5b3a5c
push 1
push ebx
push 0x5b3d8c
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jl 0x443a4e
mov eax, dword [ebp - 0x7fc]
mov edx, dword [eax]
mov edx, dword [edx]
lea ecx, [ebp - 0x804]
push ecx
push 0x5b3d3c
push eax
call edx
cmp eax, ebx
jl 0x443a4e
cmp dword [ebp - 0x224], 8
mov ecx, dword [ebp - 0x238]
jae 0x443958
lea ecx, [ebp - 0x238]
mov eax, dword [ebp - 0x804]
mov edx, dword [eax]
push ebx
push ecx
push eax
mov eax, dword [edx + 0x14]
call eax
cmp eax, ebx
jl 0x443a4e
lea ecx, [ebp - 0x518]
push ecx
push str.CShortcut::DeleteShortcutW__1_S__Loading._n
push 4
call fcn.00403ab0
mov eax, dword [ebp - 0x7fc]
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.00403ab0
add esp, 0xc
cmp esi, ebx
je 0x4439fd
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4439c2
sub eax, edx
sar eax, 1
je 0x4439fd
lea ecx, [ebp - 0x21c]
push esi
push ecx
call fcn.0053e2bf
add esp, 8
test eax, eax
jne 0x443a4e
lea edx, [ebp - 0x21c]
push edx
push str.CShortcut::DeleteShortcutW_The_target___1_S___is_matched._n
push 4
call fcn.00403ab0
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
push str.CShortcut::DeleteShortcutW_szTargetPath____1_S___n
push 4
call fcn.00403ab0
add esp, 0xc
cmp dword [ebp + 0x10], ebx
je 0x443b09
lea ecx, [ebp - 0x21c]
push ecx
call dword [ebp - 0x80c]
cmp eax, 0xffffffff
je 0x443b09
lea edx, [ebp - 0x518]
push edx
push str.CShortcut::DeleteShortcutW__1_S__find_the_target_of_a_Shell_link._n
push 4
call fcn.00403ab0
add esp, 0xc
mov dword [ebp - 0x814], ebx
mov eax, dword [ebp - 0x7fc]
cmp eax, ebx
je 0x443a66
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 0x7fc], ebx
mov eax, dword [ebp - 0x804]
cmp eax, ebx
je 0x443a7e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 0x804], ebx
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 0x810]
lea eax, [ebp - 0x544]
push eax
push ecx
call dword [ebp - 0x818]
test eax, eax
jne 0x443850
mov edx, dword [ebp - 0x810]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 0x224], 8
mov byte [ebp - 4], 4
jb 0x443ac9
mov eax, dword [ebp - 0x238]
push eax
call fcn.00449b7c
add esp, 4
mov edx, dword [ebp - 0x800]
add edx, 0x1c
mov dword [ebp - 0x800], edx
cmp edx, dword [ebp - 0x834]
jne 0x443684
mov esi, dword [ebp - 0x844]
mov ebx, 8
cmp esi, dword [ebp - 0x848]
je 0x443bd1
add esi, 0xffffffe4
mov edi, edi
cmp dword [esi + 0x14], ebx
jb 0x443b48
mov eax, dword [esi]
jmp 0x443b4a
cmp dword [ebp - 0x224], 8
mov eax, dword [ebp - 0x238]
jae 0x443b1e
lea eax, [ebp - 0x238]
push eax
call dword [ebp - 0x820]
test eax, eax
je 0x443a48
lea eax, [ebp - 0x518]
push eax
push str.CShortcut::DeleteShortcutW__1_S__is_deleted._n
push 4
call fcn.00403ab0
add esp, 0xc
jmp 0x443a4e
mov eax, esi
push eax
call dword [ebp - 0x80c]
cmp eax, 0xffffffff
je 0x443bbf
cmp dword [ebp - 0x784], 0
je 0x443b6a
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [esi + 0x14], ebx
jb 0x443b73
mov eax, dword [esi]
jmp 0x443b75
mov eax, esi
push eax
call dword [ebp - 0x850]
test eax, eax
je 0x443b9d
cmp dword [esi + 0x14], ebx
jb 0x443b89
mov eax, dword [esi]
jmp 0x443b8b
mov eax, esi
push eax
push str.CShortcut::DeleteShortcutW__1_S__empty._removed._n
push 4
call fcn.00403ab0
add esp, 0xc
jmp 0x443bbf
cmp dword [esi + 0x14], ebx
jb 0x443ba6
mov edi, dword [esi]
jmp 0x443ba8
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.00403ab0
add esp, 0x10
sub esi, 0x1c
lea ecx, [esi + 0x1c]
cmp ecx, dword [ebp - 0x848]
jne 0x443b00
push str.CShortcut::DeleteShortcutW__________________________OUT._n
push 5
call fcn.00403ab0
add esp, 8
lea ecx, [ebp - 0x7f8]
mov byte [ebp - 4], 3
call fcn.004488b0
lea ecx, [ebp - 0x848]
call fcn.00406a50
lea ecx, [ebp - 0x838]
call fcn.00406a50
cmp dword [ebp - 0x25c], ebx
jb 0x443c1c
mov edx, dword [ebp - 0x270]
push edx
call fcn.00449b7c
add esp, 4
xor eax, eax
mov dword [ebp - 0x25c], 7
mov dword [ebp - 0x260], 0
mov word [ebp - 0x270], ax
cmp dword [ebp - 0x240], ebx
jb 0x443c50
mov ecx, dword [ebp - 0x254]
push ecx
call fcn.00449b7c
add esp, 4
mov eax, dword [ebp - 0x814]
jmp 0x443cd6
push str.CShortcut::DeleteShortcutW_Unicode_functions_address_is_invalid._n
push 5
call fcn.00403ab0
add esp, 8
push str.CShortcut::DeleteShortcutW__________________________ERROR_OUT._n
push 5
call fcn.00403ab0
add esp, 8
lea ecx, [ebp - 0x7f8]
mov byte [ebp - 4], 3
call fcn.004488b0
mov esi, 8
cmp dword [ebp - 0x25c], esi
jb 0x443ca4
mov edx, dword [ebp - 0x270]
push edx
call fcn.00449b7c
add esp, 4
xor eax, eax
mov dword [ebp - 0x25c], 7
mov dword [ebp - 0x260], ebx
mov word [ebp - 0x270], ax
cmp dword [ebp - 0x240], esi
jb 0x443cd4
mov ecx, dword [ebp - 0x254]
push ecx
call fcn.00449b7c
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.0053e1ad
mov esp, ebp
pop ebp
ret 0xc