Function at 0x140013ed0
Capabilities:
Read file on windows

Disassembly:
push rbp
push rbx
push r15
lea rbp, [rsp - 0xb30]
sub rsp, 0xc30
xor r15d, r15d
cmp byte [0x1401b9ec0], r15b
jne 0x140014002
mov rcx, qword [section..data]
mov byte [0x1401b9ec0], 1
test rcx, rcx
je 0x140013f9f
mov eax, dword [0x14017ae3c]
lea rdx, [rsp + 0x26]
mov dword [rsp + 0x20], eax
sub rdx, rcx
movzx eax, word [0x14017ae40]
mov word [rsp + 0x24], ax
movzx eax, byte [0x14017ae42]
mov byte [rsp + 0x26], al
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x140013f40
lea rcx, [rsp + 0x26]
call fcn.14001d6b0
lea rcx, [rsp + 0x26]
dec rcx
cmp byte [rcx + 1], r15b
lea rcx, [rcx + 1]
jne 0x140013f60
lea r8, str._HOME
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x140013f80
lea rcx, [rsp + 0x20]
call fcn.14001c820
test rax, rax
jne 0x140013fb0
lea rcx, str.PVIEW_HOME
call fcn.14001c820
test rax, rax
je 0x140014002
mov rcx, rax
call fcn.140012c70
mov qword [0x1401b9eb8], rax
movsxd rax, dword [0x1401ba2c0]
imul rcx, rax, 0x38
mov rax, qword [0x140175020]
test byte [rcx + rax + 0x18], 0x10
je 0x140014002
mov r8, qword [rcx + rax]
lea rcx, str._s_MONITOR:_s:
mov rdx, qword [section..data]
call fcn.140002310
mov rdx, qword [0x1401b9eb8]
lea rcx, str.Got_root___s__n
call fcn.140001fb0
mov rcx, qword [0x1401b9eb8]
call fcn.140002810
mov rbx, rax
test rax, rax
je 0x14001438d
mov edx, 0x2f
mov qword [rsp + 0xc28], r13
mov rcx, rax
call fcn.14001ea70
test rax, rax
je 0x14001404a
lea rcx, [rax + 1]
mov byte [rax], 0x5c
mov edx, 0x2f
call fcn.14001ea70
test rax, rax
jne 0x140014034
lea rcx, [rbp + 0x320]
sub rcx, rbx
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rbx]
mov byte [rcx + rbx], al
lea rbx, [rbx + 1]
test al, al
jne 0x140014060
lea rcx, [rbp + 0x320]
dec rcx
nop dword [rax + rax]
cmp byte [rcx + 1], r15b
lea rcx, [rcx + 1]
jne 0x140014080
lea r8, str._etc_
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x1400140a0
lea rdx, [rbp + 0xb50]
lea rcx, [rbp + 0x320]
call fcn.140022330
movsxd r13, eax
test eax, eax
je 0x140014388
mov qword [rsp + 0xc68], r12
jle 0x14001435a
mov qword [rsp + 0xc58], rsi
mov qword [rsp + 0xc60], rdi
mov qword [rsp + 0xc20], r14
mov r14, r15
nop word [rax + rax]
mov rax, qword [rbp + 0xb50]
mov r8, qword [rax + r14*8]
mov rax, 0xffffffffffffffff
cmp byte [r8 + rax + 1], r15b
lea rax, [rax + 1]
jne 0x140014112
cmp byte [rax + r8 - 1], 0x2f
jne 0x140014257
mov rcx, r15
nop dword [rax]
movzx eax, byte [rbp + rcx + 0x320]
mov byte [rbp + rcx + 0x720], al
lea rcx, [rcx + 1]
test al, al
jne 0x140014130
lea rcx, [rbp + 0x720]
dec rcx
cmp byte [rcx + 1], r15b
lea rcx, [rcx + 1]
jne 0x140014151
xor edx, edx
nop dword [rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x140014160
lea rsi, [rbp + 0x720]
nop word [rax + rax]
mov rbx, rsi
cmp byte [rsi], r15b
je 0x140014257
lea rcx, [rsi + 1]
mov edx, 0x3b
mov rdi, rsi
call fcn.14001ea70
lea rcx, [rsp + 0x20]
mov rsi, rax
test rax, rax
je 0x1400141bf
mov ebx, esi
mov rdx, rdi
sub ebx, edi
inc rsi
movsxd r8, ebx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
jmp 0x1400141e9
sub rcx, rbx
movzx eax, byte [rdi]
mov byte [rcx + rdi], al
lea rdi, [rdi + 1]
test al, al
jne 0x1400141c2
lea rax, [rsp + 0x20]
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [rax + rbx], r15b
jne 0x1400141e0
test ebx, ebx
jle 0x140014247
movsxd rax, ebx
cmp byte [rsp + rax + 0x1f], 0x2f
je 0x1400141fe
mov byte [rsp + rax + 0x20], 0x2f
inc ebx
lea rdi, str.allowed_list.txt
movsxd rax, ebx
sub rax, rdi
lea rdx, [rsp + 0x20]
add rdx, rax
mov rcx, rdi
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x140014220
lea rcx, [rsp + 0x20]
call fcn.140012c70
mov rcx, rax
mov rbx, rax
call fcn.14001ceb0
test eax, eax
jne 0x140014252
test rsi, rsi
jne 0x140014180
jmp 0x140014257
test rbx, rbx
jne 0x140014268
inc r14
cmp r14, r13
jl 0x140014100
jmp 0x140014342
lea rdx, [0x14017af44]
mov rcx, rbx
mov rdi, r15
call fcn.14001ccc0
mov rsi, rax
test rax, rax
je 0x140014336
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
movsxd r14, eax
test eax, eax
jle 0x14001432d
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
lea eax, [r14 + 1]
movsxd rcx, eax
call fcn.140001bb0
mov r8, r14
mov r9, rsi
mov edx, 1
mov rcx, rax
mov rdi, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
test eax, eax
jg 0x1400142ec
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rdi, r15
jmp 0x1400142f2
cdqe
mov byte [rax + rdi], r15b
movzx ecx, byte [rdi]
mov r8, rdi
mov rdx, rdi
test cl, cl
je 0x14001432a
nop
movzx eax, byte [rdx + 1]
lea rdx, [rdx + 1]
cmp cl, 0x1a
jne 0x140014311
test al, al
jmp 0x140014318
cmp cl, 0xd
jne 0x14001431a
cmp al, 0xa
je 0x140014323
mov byte [r8], cl
inc r8
movzx eax, byte [rdx]
movzx ecx, al
test al, al
jne 0x140014300
mov byte [r8], r15b
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rcx, rbx
mov r15, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rsi, qword [rsp + 0xc58]
mov rdi, qword [rsp + 0xc60]
mov r14, qword [rsp + 0xc20]
mov rdx, qword [rbp + 0xb50]
mov ecx, r13d
call fcn.1400226d0
mov r12, qword [rsp + 0xc68]
mov rax, r15
mov r13, qword [rsp + 0xc28]
add rsp, 0xc30
pop r15
pop rbx
pop rbp
ret
mov rax, r15
jmp 0x140014374
mov rax, r15
add rsp, 0xc30
pop r15
pop rbx
pop rbp
ret