Function at 0x1f3e57
Capabilities:
Create shortcut via ishelllink
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x27c
push esi
mov esi, dword [ebp + 8]
push edi
movzx edx, word [esi]
lea eax, [edx - 0x30]
cmp ax, 9
ja 0x1f3e7f
push esi
call fcn.0020cdfd
movzx edx, word [esi]
pop ecx
mov ecx, eax
jmp 0x1f3ee4
push 0x20
mov eax, edx
pop ecx
or eax, ecx
sub eax, 0x64
je 0x1f3ed0
sub eax, 0xc
je 0x1f3ec2
sub eax, 3
je 0x1f3eac
sub eax, 1
jne 0x1f41bd
mov ax, word [esi + 2]
push 7
or ax, cx
pop ecx
push 0x18
jmp 0x1f3eb8
mov ax, word [esi + 2]
push 0xb
or ax, cx
pop ecx
push 0x16
cmp ax, 0x75
pop edi
cmovne ecx, edi
jmp 0x1f3ee4
mov ax, word [esi + 2]
push 2
or ax, cx
pop ecx
push 0x17
jmp 0x1f3eb8
mov ax, word [esi + 2]
or ax, cx
cmp ax, 0x75
jne 0x1f3ee1
push 0x10
jmp 0x1f3ee3
push 0x19
pop ecx
push 0x2c
pop edi
cmp dx, di
je 0x1f3f05
movzx edx, dx
test dx, dx
je 0x1f41bd
add esi, 2
movzx eax, word [esi]
mov edx, eax
cmp ax, di
jne 0x1f3eef
xor edi, edi
lea eax, [ebp - 0x27c]
push edi
push ecx
push eax
push edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x1f41bd
lea eax, [ebp - 0x27c]
push eax
lea ecx, [ebp - 0x10]
call fcn.001f1b0b
lea ecx, [ebp - 0x28]
call fcn.001f1374
lea ecx, [ebp - 0x64]
call fcn.001f1374
lea ecx, [ebp - 0x58]
call fcn.001f1374
lea ecx, [ebp - 0x4c]
call fcn.001f1374
lea ecx, [ebp - 0x1c]
call fcn.001f1374
lea ecx, [ebp - 0x40]
call fcn.001f1374
lea ecx, [ebp - 0x34]
call fcn.001f1374
lea ecx, [ebp - 0x70]
call fcn.001f1374
lea eax, [ebp - 0x28]
push eax
push esi
call fcn.001f44ea
pop ecx
pop ecx
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.001f4f15
test al, al
jne 0x1f4175
push ebx
lea eax, [ebp - 0x64]
push eax
push esi
call fcn.001f44ea
lea ecx, [ebp - 0x58]
push ecx
push eax
call fcn.001f44ea
lea ecx, [ebp - 0x4c]
push ecx
push eax
call fcn.001f44ea
lea ecx, [ebp - 0x1c]
push ecx
push eax
call fcn.001f44ea
lea ecx, [ebp - 0x40]
push ecx
push eax
call fcn.001f44ea
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.001f44ea
lea ecx, [ebp - 0x70]
push ecx
push eax
call fcn.001f44ea
add esp, 0x38
lea ecx, [ebp - 0x70]
call fcn.001f1430
push eax
call fcn.0020cdfd
pop ecx
lea ecx, [ebp - 0x1c]
mov ebx, eax
call fcn.001f4f15
test al, al
je 0x1f402d
lea eax, [ebp - 0x28]
push eax
call fcn.001f475c
pop ecx
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.001f1430
lea ecx, [ebp - 0x1c]
lea eax, [eax + esi*2]
add eax, 2
push eax
call fcn.001f141b
push 0x2e
lea ecx, [ebp - 0x1c]
call fcn.002035d1
test eax, eax
js 0x1f402d
push eax
lea ecx, [ebp - 0x1c]
call fcn.001f2112
push 0x5c
lea ecx, [ebp - 0x10]
call fcn.001f1b20
lea ecx, [ebp - 0x58]
call fcn.001f4f15
test al, al
jne 0x1f4059
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x10]
call fcn.002030f7
push 0x5c
lea ecx, [ebp - 0x10]
call fcn.001f1b20
lea ecx, [ebp - 0x10]
call fcn.001f1430
push eax
call fcn.001f3ce4
pop ecx
test eax, eax
je 0x1f4174
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x10]
call fcn.002030f7
push str..lnk
lea ecx, [ebp - 0x10]
call fcn.0020312f
lea eax, [ebp + 8]
mov dword [ebp + 8], edi
push eax
push 0x219f94
push 1
push edi
push 0x219fd4
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x1f4174
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], edi
mov edi, dword [esi]
call fcn.001f1430
push eax
push esi
call dword [edi + 0x50]
lea ecx, [ebp - 0x4c]
call fcn.001f4f15
test al, al
jne 0x1f40de
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x4c]
mov edi, dword [esi]
call fcn.001f1430
push eax
push esi
call dword [edi + 0x1c]
lea ecx, [ebp - 0x64]
call fcn.001f4f15
test al, al
jne 0x1f40fc
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x64]
mov edi, dword [esi]
call fcn.001f1430
push eax
push esi
call dword [edi + 0x2c]
lea ecx, [ebp - 0x40]
call fcn.001f4f15
test al, al
jne 0x1f411a
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x40]
mov edi, dword [esi]
call fcn.001f1430
push eax
push esi
call dword [edi + 0x24]
lea ecx, [ebp - 0x34]
call fcn.001f4f15
test al, al
jne 0x1f4139
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x34]
push ebx
mov edi, dword [esi]
call fcn.001f1430
push eax
push esi
call dword [edi + 0x44]
mov eax, dword [ebp + 8]
lea edx, [ebp - 4]
push edx
push 0x219fb4
push eax
mov ecx, dword [eax]
call dword [ecx]
test eax, eax
js 0x1f416b
mov esi, dword [ebp - 4]
lea ecx, [ebp - 0x10]
push 1
mov edi, dword [esi]
call fcn.001f1430
push eax
push esi
call dword [edi + 0x18]
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
pop ebx
lea ecx, [ebp - 0x70]
call fcn.001f13e3
lea ecx, [ebp - 0x34]
call fcn.001f13e3
lea ecx, [ebp - 0x40]
call fcn.001f13e3
lea ecx, [ebp - 0x1c]
call fcn.001f13e3
lea ecx, [ebp - 0x4c]
call fcn.001f13e3
lea ecx, [ebp - 0x58]
call fcn.001f13e3
lea ecx, [ebp - 0x64]
call fcn.001f13e3
lea ecx, [ebp - 0x28]
call fcn.001f13e3
lea ecx, [ebp - 0x10]
call fcn.001f13e3
pop edi
xor eax, eax
pop esi
leave
ret