Function at 0x14000dc08
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], 0x70a670f2
mov ecx, 0x10
mov dword [rsp + 0x44], 0x70be70a0
mov dword [rsp + 0x48], 0x70ea70f2
mov ebx, 0x70d0
mov dword [rsp + 0x4c], 0x70d070ab
mov dword [rsp + 0x50], 0x8dc670d0
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 0x14000dc74
mov rdx, rax
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d974
mov rdx, rax
mov rcx, rdi
call fcn.140001990
mov r14, 0xffffffff80000002
lea r8, [0x14000e3a8]
mov rcx, r14
lea rdx, str.SoftwareFortinetFortiClientSslvpnTunnels
mov r9, rdi
call fcn.14000cbf0
mov edx, 0x2c
mov rcx, rdi
call fcn.140001abc
mov rcx, r13
mov dword [rsp + 0x40], 0x70a27082
mov dword [rsp + 0x44], 0x70df70f3
mov ebx, 0x70df
mov dword [rsp + 0x48], 0x8dc670df
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 0x14000dd0e
mov rdx, rax
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d7b0
mov rdx, rax
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d6b8
mov r8, rax
lea r9, [rbp + 0x698]
lea rdx, str.SoftwareSonicWallSSL_VPN_NetExtenderStandalone
mov rcx, r14
call fcn.14000ccf4
test eax, eax
je 0x14000deaf
lea rcx, [rbp + 0x688]
call fcn.14000d86c
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 0x14000dea3
lea rcx, [rbp - 0x30]
call qword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
lea rcx, [rbp + 0x688]
call fcn.14000cfec
mov rdx, rax
lea rcx, [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, [rbp + 0x690]
lea rcx, [rbp - 0x30]
call fcn.14000e8a0
lea rcx, [rsp + 0x60]
mov rbx, rax
call fcn.140009644
mov rcx, r13
mov dword [rsp + 0x40], 0x7083708d
mov dword [rsp + 0x44], 0x70ee708a
mov r14d, 0x70ee
mov dword [rsp + 0x48], 0x8dc670ee
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 0x14000de13
mov r8, rax
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.14000900c
test eax, eax
je 0x14000de7d
lea rcx, [rsp + 0x60]
mov dword [rbp - 0x3c], 0x7530
call fcn.1400095a0
test al, al
je 0x14000de73
mov r8, rbx
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.1400097dc
test al, al
je 0x14000de73
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.14000d618
mov rdx, rax
mov rcx, rdi
call fcn.140001990
mov r9, rdi
lea r8, [0x14000e600]
lea rdx, str.SoftwareSonicWALLSSL_VPN_NetExtenderStandaloneProfiles
mov rcx, r14
call fcn.14000cbf0
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.14000d42c
mov rdx, rax
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d078
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 0x14000e1e3
lea rcx, [rbp + 0x688]
call fcn.14000da1c
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 0x14000e1e3
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 0x14000e1e3
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 0x14000e1db
mov r8d, dword [rbp + 0x688]
lea rcx, [rsp + 0x40]
mov rdx, r14
call fcn.14000cde0
lea rdx, str._user_:__
mov rcx, rdi
call fcn.140001990
lea rdx, str._DefaultUser_
lea rcx, [rsp + 0x40]
call fcn.14000cf1c
mov esi, 0xfe
test rax, rax
jle 0x14000e0a4
lea rdx, [rax + 0xd]
mov r8d, r12d
lea rcx, [rsp + 0x40]
call fcn.14000cf50
lea rdx, str.__DefaultUser_
lea rcx, [rsp + 0x40]
call fcn.14000cf1c
lea rcx, [rax - 1]
cmp rcx, rsi
ja 0x14000e0a4
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000ce30
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.14000cf50
lea rdx, str._DefaultHostName_
lea rcx, [rsp + 0x40]
call fcn.14000cf1c
test rax, rax
jle 0x14000e138
lea rdx, [rax + 0x11]
mov r8d, r12d
lea rcx, [rsp + 0x40]
call fcn.14000cf50
lea rdx, str.__DefaultHostName_
lea rcx, [rsp + 0x40]
call fcn.14000cf1c
lea rcx, [rax - 1]
cmp rcx, rsi
ja 0x14000e138
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000ce30
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.14000cf50
lea rdx, str._DefaultGroup_
lea rcx, [rsp + 0x40]
call fcn.14000cf1c
test rax, rax
jle 0x14000e1cc
lea rdx, [rax + 0xe]
mov r8d, r12d
lea rcx, [rsp + 0x40]
call fcn.14000cf50
lea rdx, str.__DefaultGroup_
lea rcx, [rsp + 0x40]
call fcn.14000cf1c
lea rcx, [rax - 1]
cmp rcx, rsi
ja 0x14000e1cc
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x40]
call fcn.14000ce30
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.14000d584
mov rdx, rax
mov rcx, rdi
call fcn.140001990
mov r9, rdi
lea r8, [0x14000e4d0]
lea rdx, str.SoftwareMicrosoftTerminal_Server_ClientServers
mov rcx, 0xffffffff80000001
call fcn.14000cbf0
mov edx, 0x2c
mov rcx, rdi
call fcn.140001abc
lea rdx, [0x1400120b8]
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d4f8
mov rdx, rax
mov rcx, rdi
call fcn.140001990
lea rcx, [rbp + 0x688]
call fcn.14000d2ac
mov rcx, rax
lea rdx, [rbp + 0x430]
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x103
ja 0x14000e378
lea rcx, [rbp + 0x688]
call fcn.14000d328
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 0x14000e378
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 0x14000e378
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 0x14000e378
mov ecx, dword [rbp + 0x690]
mov byte [rcx + r14], 0
lea rcx, [rbp + 0x688]
call fcn.14000db74
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