Function at 0x14000ecf0
Capabilities:
Get common file path
Query environment variable

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x270
mov rax, qword [0x1401dd3a0]
xor rax, rsp
mov qword [rsp + 0x260], rax
lea rcx, [rsp + 0x41]
xor edx, edx
mov r8d, 0x104
mov byte [rsp + 0x40], 0
call fcn.1400e5f10
lea rcx, [rsp + 0x151]
xor edx, edx
mov r8d, 0x104
mov byte [rsp + 0x150], 0
call fcn.1400e5f10
lea rcx, str.swifdiag.log
call fcn.140001910
mov rbx, rax
test rax, rax
je 0x14000ee71
mov r10, qword [rax]
lea rdi, str....._src_netlspinstaller_srcinstall.cpp
mov qword [rsp + 0x280], rbp
lea rbp, str.loadUpdateProviderFunction
lea r8, str.default
mov r9, rdi
mov edx, 2
mov rcx, rax
mov qword [rsp + 0x20], rbp
call qword [r10 + 8]
test al, al
je 0x14000ee69
mov byte [rbx + 0xf8], 0x69
xor eax, eax
mov r8b, 0x2e
mov rcx, rdi
mov edx, 1
nop dword [rax + rax]
cmp r8b, 0x5c
movzx r8d, byte [rcx + 1]
cmove eax, edx
inc rcx
inc edx
test r8b, r8b
jne 0x14000edb0
add rax, rdi
mov rcx, rbx
mov dword [rbx + 0x108], 0x132f
mov qword [rbx + 0x100], rax
mov qword [rbx + 0x110], rbp
call fcn.1400027f0
mov rdi, rax
xor ebx, ebx
nop
inc rbx
cmp byte [rbx + rbp], 0
jne 0x14000edf0
mov ecx, dword [rax + 0x430]
mov dword [rax + 0x430], 0
cmp ebx, ecx
jge 0x14000ee51
movzx eax, byte [rax + 0x42c]
sub ecx, ebx
mov qword [rsp + 0x288], rsi
mov byte [rsp + 0x30], al
mov esi, ecx
nop word [rax + rax]
lea rdx, [rsp + 0x30]
mov r8d, 1
mov rcx, rdi
call fcn.14002f090
sub rsi, 1
jne 0x14000ee30
mov rsi, qword [rsp + 0x288]
mov r8, rbx
mov rdx, rbp
mov rcx, rdi
call fcn.14002f090
mov r11, qword [rdi]
mov rcx, rdi
call qword [r11 + 8]
mov rbp, qword [rsp + 0x280]
mov ebx, 0x105
lea rcx, [rsp + 0x40]
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x14000ef2d
lea r8, str._SYSTEMROOT__system32
lea rax, [rsp + 0x150]
xor edi, edi
mov rdx, rbx
lea rcx, [rsp + 0x150]
sub r8, rax
nop word [rax + rax]
lea rax, [rdx + 0x7ffffef9]
test rax, rax
je 0x14000eed2
movzx eax, byte [r8 + rcx]
test al, al
je 0x14000eed2
mov byte [rcx], al
inc rcx
sub rdx, 1
jne 0x14000eeb0
jmp 0x14000eed7
test rdx, rdx
jne 0x14000eedf
dec rcx
mov edi, 0x8007007a
mov byte [rcx], 0
test edi, edi
jns 0x14000eef7
call fcn.1400de36c
lea rdx, str.LoadUpdateProviderFunctions:_StringCchCopyA_failed:_0x_x_n
jmp 0x14000f044
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0x40]
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
test eax, eax
jne 0x14000ef2d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call fcn.1400de36c
mov r8d, ebx
lea rdx, str.LoadUpdateProviderFunctions:_Unable_to_expand_environment_string:__d_n
jmp 0x14000f047
mov rcx, rbx
lea rax, [rsp + 0x40]
xor edi, edi
cmp byte [rax], dil
je 0x14000ef4e
inc rax
sub rcx, 1
jne 0x14000ef37
mov edi, 0x80070057
xor edx, edx
jmp 0x14000ef62
test rcx, rcx
jne 0x14000ef5c
mov edi, 0x80070057
xor edx, edx
jmp 0x14000ef62
mov rdx, rbx
sub rdx, rcx
test edi, edi
js 0x14000f038
sub rbx, rdx
lea rax, [rsp + rdx + 0x40]
mov edi, 0
je 0x14000efb3
lea r8, [0x1401a1558]
lea rcx, [rbx + rdx + 0x7ffffefa]
sub r8, rax
nop dword [rax + rax]
test rcx, rcx
je 0x14000efae
movzx edx, byte [r8 + rax]
test dl, dl
je 0x14000efae
mov byte [rax], dl
inc rax
dec rcx
sub rbx, 1
jne 0x14000ef90
jmp 0x14000efb3
test rbx, rbx
jne 0x14000efbb
dec rax
mov edi, 0x8007007a
mov byte [rax], 0
test edi, edi
js 0x14000f038
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbx, rax
test rax, rax
jne 0x14000effc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call fcn.1400de36c
lea r8, [rsp + 0x40]
lea rdx, str.LoadUpdateProviderFunctions:_Unable_to_load__s:__d_n
lea rcx, [rax + 0x60]
mov r9d, ebx
call fcn.1400df124
jmp 0x14000f050
cmp byte [0x1401e3cc8], 0
je 0x14000f033
lea rdx, str.WSCUpdateProvider
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.WSCUpdateProvider32
mov rcx, rbx
mov qword [0x1401e3cd0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1401e3cd8], rax
mov rax, rbx
jmp 0x14000f052
call fcn.1400de36c
lea rdx, str.LoadUpdateProviderFunctions:_StringCchCatA_failed:_0x_x_n
mov r8d, edi
lea rcx, [rax + 0x60]
call fcn.1400df124
xor eax, eax
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.1400dd780
mov rbx, qword [rsp + 0x290]
add rsp, 0x270
pop rdi
ret