Function at 0x140030c50
Capabilities:
Create shortcut via ishelllink
Query environment variable

Disassembly:
push rbp
push rbx
push rsi
push r13
lea rbp, [rsp - 0xbe8]
sub rsp, 0xce8
mov r13, rcx
mov ebx, r9d
xor ecx, ecx
mov rax, r8
mov esi, ecx
cmp word [r8], cx
jne 0x140030c88
lea eax, [rcx + 0x22]
add rsp, 0xce8
pop r13
pop rsi
pop rbx
pop rbp
ret
mov r9d, dword [rbp + 0xc58]
mov rcx, qword [r13 + 0x228]
mov qword [rsp + 0xd10], rdi
mov rdi, qword [rbp + 0xc50]
mov dword [rsp + 0x20], edx
mov r8, rdi
mov qword [rsp + 0xd18], r12
mov rdx, rax
mov qword [rsp + 0xce0], r15
call fcn.1400697a0
mov r12, qword [rbp + 0xc38]
mov r15, qword [rbp + 0xc30]
test ebx, ebx
je 0x140030cf6
mov r8d, r12d
mov rdx, r15
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov eax, eax
cmp rax, r12
jbe 0x140030d04
mov eax, 0x80000000
jmp 0x1400312f5
mov r8, rdi
mov rdx, r12
mov rcx, r15
call fcn.140251ec0
cmp word [r15], 0x22
mov qword [rsp + 0xd28], r14
mov r14, 0xffffffffffffffff
jne 0x140030dbf
lea rbx, [r15 + 2]
mov rcx, rbx
lea edx, [r14 + 0x23]
call fcn.140249da8
xor edi, edi
test rax, rax
je 0x140030d3c
mov word [rax], di
lea rsi, [rax + 2]
mov rax, qword [r13 + 0x218]
lea r8, [r13 + 0x208]
mov r9d, 7
mov rdx, rbx
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x30]
test eax, eax
jne 0x140030d66
lea edi, [rax + 2]
jmp 0x140030d87
mov rcx, qword [r13 + 0x218]
mov rdx, rbx
mov rax, qword [rcx]
call qword [rax + 0xa8]
test al, 0x10
mov eax, edi
mov edi, 2
cmovne eax, edi
mov edi, eax
movzx eax, word [rbx]
mov word [rbx - 2], ax
test ax, ax
je 0x140030db2
nop dword [rax]
nop word [rax + rax]
movzx eax, word [rbx + 2]
lea rbx, [rbx + 2]
mov word [rbx - 2], ax
cmp word [rbx], 0
jne 0x140030da0
test edi, edi
jne 0x1400312eb
jmp 0x140030ee7
mov rdx, qword [rbp + 0xc58]
mov r8, r15
mov rcx, rdi
call fcn.140251ec0
mov edx, 0x20
mov rcx, rdi
call fcn.140249da8
mov rbx, rax
test rax, rax
je 0x140030e89
nop word [rax + rax]
xor eax, eax
mov r9, rbx
sub r9, rdi
mov word [r15], ax
sar r9, 1
mov r8, rdi
mov rdx, r12
mov rcx, r15
call fcn.140251f28
mov rax, qword [r13 + 0x218]
lea r8, [r13 + 0x208]
mov r9d, 7
mov rdx, r15
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x30]
mov edi, eax
test eax, eax
je 0x140030e50
mov rcx, qword [r13 + 0x218]
mov rdx, r15
mov r8, qword [rcx]
call qword [r8 + 0xa8]
test al, 0x10
je 0x140030e6f
xor eax, eax
mov edi, eax
mov edx, 0x20
lea rcx, [rbx + 2]
call fcn.140249da8
mov rbx, rax
test rax, rax
je 0x140030e73
mov rdi, qword [rbp + 0xc50]
jmp 0x140030df0
lea rsi, [rbx + 2]
test edi, edi
jne 0x140030ee7
mov r8, qword [rbp + 0xc50]
mov rdx, r12
mov rcx, r15
call fcn.140251ec0
mov rax, r14
nop dword [rax]
cmp word [r15 + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x140030e90
lea rsi, [r15 + rax*2]
mov r9d, 7
mov rax, qword [r13 + 0x218]
lea r8, [r13 + 0x208]
mov rdx, r15
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x30]
test eax, eax
jne 0x140030ed0
mov edi, 2
jmp 0x1400312eb
mov rcx, qword [r13 + 0x218]
mov rdx, r15
mov rax, qword [rcx]
call qword [rax + 0xa8]
test al, 0x10
jne 0x140030ec6
mov edx, 0x2e
mov rcx, r15
call fcn.140249e3c
mov rbx, rax
test rax, rax
je 0x14003118f
lea rdx, str..lnk
mov rcx, rax
call fcn.140252b94
test eax, eax
jne 0x14003115f
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
xor edx, edx
lea rcx, [rbp + 0x170]
mov r8d, 0x250
call fcn.140249b10
lea rax, [rbp + 0xc20]
mov edi, 1
mov r8d, edi
mov qword [rsp + 0x20], rax
lea r9, [0x1402d7180]
xor edx, edx
lea rcx, [0x1402d71b0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
test eax, eax
js 0x14003108d
mov rcx, qword [rbp + 0xc20]
lea r8, [rsp + 0x50]
lea rdx, [0x1402d71a0]
mov rax, qword [rcx]
call qword [rax]
mov ebx, eax
test eax, eax
js 0x140031080
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
mov rdx, r15
mov rax, qword [rcx]
call qword [rax + 0x28]
mov ebx, eax
test eax, eax
js 0x140031075
mov rax, qword [rbp + 0xc20]
mov rbx, qword [rax]
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rcx, qword [rbp + 0xc20]
xor r8d, r8d
mov rdx, rax
call qword [rbx + 0x98]
mov ebx, eax
test eax, eax
js 0x140031075
mov rcx, qword [rbp + 0xc20]
lea r9, [rbp + 0x170]
mov r8d, 0x104
mov dword [rsp + 0x20], 4
lea rdx, [rsp + 0x60]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov ebx, eax
test eax, eax
js 0x140031075
lea r8, [rsp + 0x60]
mov edx, 0x410
lea rcx, [rbp + 0x3c0]
call fcn.140251ec0
lea rcx, [rbp + 0x3c0]
call qword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
mov rcx, qword [rbp + 0xc20]
lea rdx, [rsp + 0x60]
mov r8d, 0x104
mov rax, qword [rcx]
call qword [rax + 0x50]
mov ebx, eax
test eax, eax
js 0x140031075
cmp word [rsp + 0x60], 0
je 0x140031075
lea r8, [0x14028c084]
mov edx, 0x410
lea rcx, [rbp + 0x3c0]
call fcn.140251e40
lea r8, [rsp + 0x60]
mov edx, 0x410
lea rcx, [rbp + 0x3c0]
call fcn.140251e40
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [rbp + 0xc20]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
call qword [sym.imp.ole32.dll_CoUninitialize]
test ebx, ebx
js 0x140031155
mov rax, r14
nop
inc rax
cmp word [rsi + rax*2], 0
jne 0x1400310a0
lea rcx, [rbp + 0x3c0]
inc r14
cmp word [rcx + r14*2], 0
jne 0x1400310b1
add rax, 2
add rax, r14
cmp rax, 0x410
jae 0x1400310fd
cmp word [rsi], 0
je 0x1400310fd
lea r8, [0x14028c084]
mov edx, 0x410
lea rcx, [rbp + 0x3c0]
call fcn.140251e40
mov r8, rsi
lea rcx, [rbp + 0x3c0]
mov edx, 0x410
call fcn.140251e40
mov rax, qword [rbp + 0xc58]
lea r8, [rbp + 0x3c0]
mov qword [rsp + 0x48], rax
mov r9d, edi
mov rax, qword [rbp + 0xc50]
xor edx, edx
mov qword [rsp + 0x40], rax
mov rcx, r13
mov rax, qword [rbp + 0xc48]
mov qword [rsp + 0x38], rax
mov rax, qword [rbp + 0xc40]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r15
call fcn.140030c50
mov edi, eax
or edi, 4
jmp 0x1400312eb
mov edi, 0x44
jmp 0x1400312eb
lea rdx, str..bat
mov rcx, rbx
call fcn.140252b94
test eax, eax
je 0x140031185
lea rdx, str..cmd
mov rcx, rbx
call fcn.140252b94
test eax, eax
jne 0x14003118f
mov edi, reloc.OLEAUT32.dll_SafeArrayGetDim
jmp 0x1400312eb
lea rdx, [r13 + 0x230]
mov rcx, r15
call fcn.140252b94
test eax, eax
jne 0x1400312e6
cmp word [rsi], 0x20
lea edi, [rax + 8]
jne 0x1400311ba
nop
add rsi, 2
cmp word [rsi], 0x20
je 0x1400311b0
mov edx, 0x2c
mov rcx, rsi
call fcn.140249da8
mov rbx, rax
test rax, rax
jne 0x1400311eb
nop
cmp word [rsi + r14*2 + 2], 0
lea r14, [r14 + 1]
jne 0x1400311d0
lea rcx, [rsi + r14*2]
mov edi, 0x48
mov rbx, rcx
jmp 0x1400311ef
lea rcx, [rax + 2]
mov edx, 0x20
call fcn.140249da8
cmp word [rsi], 0x22
jne 0x140031218
add rsi, 2
mov edx, 0x22
mov rcx, rsi
call fcn.140249da8
test rax, rax
jne 0x14003121b
or edi, 0x40
mov rax, rbx
test rsi, rsi
je 0x1400312eb
test rax, rax
je 0x1400312eb
cmp word [rsi], 0
je 0x1400312eb
sub rax, rsi
sar rax, 1
cmp rax, r12
jae 0x1400312eb
mov r14, qword [rbp + 0xc40]
xor ecx, ecx
mov rbx, qword [rbp + 0xc48]
mov r9, rax
mov r8, rsi
mov rdx, rbx
mov word [r14], cx
mov rcx, r14
call fcn.140251f28
mov rsi, qword [rbp + 0xc50]
xor eax, eax
mov r9d, dword [rbp + 0xc58]
mov r8, rsi
mov rcx, qword [r13 + 0x228]
mov rdx, r14
mov dword [rsp + 0x20], eax
call fcn.1400697a0
mov r8, rsi
mov rdx, rbx
mov rcx, r14
call fcn.140251ec0
mov rax, qword [rbp + 0xc58]
mov r9, rbx
mov qword [rsp + 0x38], rax
mov r8, r14
mov qword [rsp + 0x30], rsi
xor edx, edx
mov qword [rsp + 0x28], r12
mov rcx, r13
mov qword [rsp + 0x20], r15
call fcn.140036a90
test eax, eax
je 0x1400312d3
or edi, 1
jmp 0x1400312eb
or edi, 2
mov r8, r14
mov rdx, r12
mov rcx, r15
call fcn.140251ec0
jmp 0x1400312eb
mov edi, 1
mov r14, qword [rsp + 0xd28]
mov eax, edi
mov r12, qword [rsp + 0xd18]
mov rdi, qword [rsp + 0xd10]
mov r15, qword [rsp + 0xce0]
add rsp, 0xce8
pop r13
pop rsi
pop rbx
pop rbp
ret