Function at 0x140007a20
Capabilities:
Access pe header
Get file size
Read file on windows
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov r15d, r8d
mov r12, rdx
mov r13, rcx
xor dil, dil
mov byte [rsp + 0x40], dil
xor esi, esi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x140007c41
mov qword [rsp + 0x58], rsi
lea rdx, [rsp + 0x58]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x140007c41
mov ebx, dword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8d, ebx
lea edx, [rsi + 8]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rsi, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x140007c41
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x60]
mov r8d, dword [rsp + 0x58]
mov rdx, rax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140007c41
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r14, 0xffffffffffffffff
mov qword [rsp + 0x48], r14
xor ebx, ebx
mov dword [rsp + 0x44], ebx
cmp ebx, r15d
jae 0x140007b2f
mov rdx, qword [r12 + rbx*8]
mov r8d, dword [rdx + 0x10]
mov rcx, qword [rdx]
add rcx, rsi
mov rdx, qword [rdx + 8]
call fcn.140008720
inc ebx
jmp 0x140007b0b
mov r15d, dword [rsp + 0x58]
mov r9, rsi
xor r12d, r12d
mov edx, r12d
lea r8d, [r15 + 1]
shr r8d, 1
je 0x140007b6a
nop word [rax + rax]
movzx eax, word [r9]
add edx, eax
lea r9, [r9 + 2]
mov ecx, edx
shr ecx, 0x10
movzx edx, dx
add edx, ecx
add r8d, 0xffffffff
jne 0x140007b50
mov ebx, edx
shr ebx, 0x10
add bx, dx
mov rcx, rsi
call qword [sym.imp.ntdll.dll_RtlImageNtHeader]
mov r9, rax
test rax, rax
je 0x140007c27
movzx ecx, word [rax + 0x58]
cmp bx, cx
adc cx, r12w
sub bx, cx
mov edx, r12d
cmp bx, word [rax + 0x5a]
setb dl
sub bx, dx
sub bx, word [rax + 0x5a]
movzx eax, bx
add eax, r15d
mov dword [r9 + 0x58], eax
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x80000000
mov dword [rsp + 0x20], 2
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x140007c41
mov dword [rsp + 0x64], r12d
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x64]
mov r8d, dword [rsp + 0x60]
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140007c41
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r14, 0xffffffffffffffff
mov eax, dword [rsp + 0x60]
cmp dword [rsp + 0x64], eax
sete dil
mov ebx, r12d
jmp 0x140007c49
mov ebx, 0x143
jmp 0x140007c49
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test rsi, rsi
je 0x140007c62
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp r14, 0xffffffffffffffff
je 0x140007c71
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
movzx eax, dil
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1400081d0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret