Function at 0x14007b080
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov r12, qword [0x140134e40]
mov rbx, rdx
mov r14, rcx
mov qword [rsp + 0x48], r12
mov rcx, r12
mov byte [rsp + 0x20], 1
xor r9d, r9d
xor edx, edx
mov r8, 0xffffffffffffffff
call fcn.1400dc860
mov rax, qword [0x14012f240]
xor dil, dil
xor r13b, r13b
mov byte [rsp + 0xc8], dil
mov rbp, 0xffffffffffffffff
mov esi, SafeArrayAllocDescriptor
mov r15d, dword [rax + 0x13c]
btr r15d, 0x1f
nop dword [rax]
mov rax, rbx
movzx ecx, word [rax]
cmp cx, si
je 0x14007b101
cmp cx, 9
jne 0x14007b107
add rax, 2
jmp 0x14007b0f3
cmp cx, 0x2a
jne 0x14007b253
movzx edi, word [rax + 2]
lea rbx, [rax + 2]
mov ecx, edi
test edi, 0xffffff80
jne 0x14007b13a
mov edx, 2
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
test eax, eax
je 0x14007b13a
mov eax, 0xffdf
and di, ax
cmp di, 0x43
je 0x14007b227
cmp di, 0x4d
je 0x14007b1c7
cmp di, 0x50
je 0x14007b16a
cmp di, 0x54
movzx edi, byte [rsp + 0xc8]
jne 0x14007b232
mov r13b, 1
jmp 0x14007b232
lea rcx, [rbx + 2]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
movzx edx, word [rbx]
mov r15d, eax
test dx, dx
je 0x14007b1af
nop
lea rcx, [0x140110770]
movzx eax, si
nop word [rax + rax]
cmp dx, ax
je 0x14007b214
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14007b190
movzx edx, word [rbx + 2]
add rbx, 2
test dx, dx
jne 0x14007b180
mov rax, qword [0x14012f240]
mov dl, 1
mov rcx, r14
mov dword [rax + 0x40], 0x57
jmp 0x14007b93f
lea rcx, [rbx + 2]
call fcn.1400669e0
movzx r8d, word [rbx]
mov rbp, rax
test r8w, r8w
je 0x14007b1af
nop dword [rax]
lea rdx, [0x140110770]
movzx ecx, si
nop word [rax + rax]
cmp r8w, cx
je 0x14007b214
movzx ecx, word [rdx + 2]
add rdx, 2
test cx, cx
jne 0x14007b1f0
movzx r8d, word [rbx + 2]
add rbx, 2
test r8w, r8w
jne 0x14007b1e0
jmp 0x14007b1af
test rbx, rbx
je 0x14007b1af
movzx edi, byte [rsp + 0xc8]
add rbx, 0xfffffffffffffffe
jmp 0x14007b232
mov dil, 1
mov byte [rsp + 0xc8], dil
cmp word [rbx], 0
je 0x14007b0f0
add rbx, 2
cmp word [rbx], 0
je 0x14007b0f0
add rbx, 2
jmp 0x14007b0f0
xor eax, eax
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov edx, 0x80000000
mov dword [rsp + 0x28], 0x8000000
mov r8d, 3
mov rcx, rbx
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x14007b2a4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [0x14012f240]
mov dl, 1
mov dword [rcx + 0x40], eax
mov rcx, r14
jmp 0x14007b93f
lea rdx, [rsp + 0xd4]
mov qword [rsp + 0xd0], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, 0xffffffff
mov dword [rsp + 0xd0], eax
cmp eax, ecx
jne 0x14007b2e0
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14007b2ee
mov ecx, 0xffffffff
mov rbx, qword [rsp + 0xd0]
cmp rbx, 0xffffffffffffffff
jne 0x14007b311
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [0x14012f240]
mov dword [rcx + 0x40], eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov dl, 1
mov rcx, r14
jmp 0x14007b93f
cmp rbx, rbp
cmova rbx, rbp
cmp rbx, rcx
jbe 0x14007b33b
lea r9, [0x1400f97e4]
xor r8d, r8d
lea rdx, str.Out_of_memory.
mov rcx, r14
call fcn.140064610
jmp 0x14007b944
test rbx, rbx
jne 0x14007b35d
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [0x14012f240]
xor edx, edx
mov rcx, r14
mov dword [rax + 0x40], ebx
jmp 0x14007b93f
test dil, dil
je 0x14007b46d
movzx eax, byte [r12 + 0x23]
test al, al
jne 0x14007b379
mov rax, qword [r12 + 0x10]
movzx eax, byte [rax + 0x23]
cmp al, 2
je 0x14007b46d
mov rax, rbx
mov byte [rsp + 0x20], 0
and eax, 1
mov r8, rbx
shr r8, 1
mov bpl, 1
add r8, rax
movzx r9d, bpl
xor edx, edx
mov rcx, r12
call fcn.1400dc860
cmp eax, 1
jne 0x14007b49f
xor r8d, r8d
mov edx, eax
mov rcx, r12
call fcn.1400017a0
mov rdi, rax
test rax, rax
je 0x14007b49f
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], 0
mov r8d, ebx
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r14d, eax
mov dword [rsp + 0xd0], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [0x14012f240]
mov dword [rcx + 0x40], eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r14d, r14d
je 0x14007b893
movzx ebx, byte [rsp + 0xc8]
test bl, bl
jne 0x14007b7e3
mov ecx, dword [rsp + 0x40]
cmp ecx, 3
jb 0x14007b4af
cmp byte [rdi], 0xef
jne 0x14007b4af
cmp byte [rdi + 1], 0xbb
jne 0x14007b4af
cmp byte [rdi + 2], 0xbf
jne 0x14007b4af
lea r8d, [rcx - 3]
mov r9d, 0xfde9
mov rcx, r12
lea rdx, [rdi + 3]
call fcn.1400dd690
test eax, eax
jne 0x14007b501
xor r14d, r14d
mov dword [rsp + 0xd0], r14d
jmp 0x14007b501
lea rcx, [rbx + 2]
xor bpl, bpl
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
jne 0x14007b3c8
lea r9, [0x1400f97e4]
xor r8d, r8d
lea rdx, str.Out_of_memory.
mov rcx, r14
call fcn.140064610
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x14007b944
cmp ecx, 2
jb 0x14007b53a
cmp byte [rdi], 0xff
jne 0x14007b53a
cmp byte [rdi + 1], 0xfe
jne 0x14007b53a
mov r8b, 1
lea rdx, [rdi + 2]
test r8b, r8b
mov byte [rsp + 0x20], 0
lea eax, [rcx - 2]
mov r9b, 1
cmove eax, ecx
mov rcx, r12
mov r8d, eax
shr r8, 1
call fcn.1400dc860
test eax, eax
mov eax, 0
cmove r14d, eax
mov dword [rsp + 0xd0], r14d
test rdi, rdi
je 0x14007b50a
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor r8d, r8d
mov edx, 1
mov rcx, r12
call fcn.1400017a0
mov qword [rsp + 0x58], rax
mov r15, rax
test r13b, r13b
je 0x14007b8e6
cmp byte [r12 + 0x23], 0
jne 0x14007b560
mov rbx, qword [r12 + 0x10]
jmp 0x14007b563
xor r8d, r8d
mov rdx, rdi
cmp r15d, 0x4b0
je 0x14007b4ca
mov r8d, ecx
mov r9d, r15d
mov rcx, r12
call fcn.1400dd690
test eax, eax
jne 0x14007b4fc
xor r14d, r14d
jmp 0x14007b4f4
mov rbx, r12
cmp byte [rbx + 0x23], 1
lea r13, [0x140138668]
jne 0x14007b584
test byte [rbx + 0x21], 8
je 0x14007b57e
mov rcx, rbx
call fcn.140001640
lea rdi, [rbx + 0x10]
jmp 0x14007b587
mov rdi, r13
mov rdi, qword [rdi]
xor eax, eax
shr rdi, 1
mov ebp, 0xffffffff
mov esi, eax
mov ebx, eax
mov qword [rsp + 0x50], rax
cmp word [r15], ax
je 0x14007b7a1
cmp rdi, 0x1388
jb 0x14007b74a
lea rdx, [0x1401190f0]
mov dword [rsp + 0xd8], eax
mov rcx, r15
mov r12, r15
mov r14d, eax
call qword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov r15, rax
test rax, rax
je 0x14007b6aa
nop dword [rax]
mov edx, dword [rsp + 0xd8]
mov eax, 0xffffffff
add ebp, eax
inc edx
mov rbx, r15
mov dword [rsp + 0xd8], edx
sub rbx, r12
sar rbx, 1
lea rax, [r14 + rbx]
lea rcx, [rax + 1]
mov qword [rsp + 0x60], rax
cmp rcx, qword [rsp + 0x50]
jb 0x14007b65e
movsxd rcx, ecx
mov rax, r15
sub rax, qword [rsp + 0x58]
mov r8d, ebp
sar rax, 1
cdqe
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov rcx, 0xffffffffffffffff
movsxd r9, edi
call fcn.1400d73f0
mov rcx, rsi
mov qword [rsp + 0x50], rax
lea rdx, [rax + rax]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x14007b6ee
mov rsi, rax
test rbx, rbx
je 0x14007b678
lea r8, [rbx + rbx]
mov rdx, r12
lea rcx, [rsi + r14*2]
call sub.VCRUNTIME140.dll_memcpy
mov r14, qword [rsp + 0x60]
mov word [rsi + r14*2], 0xa
lea rbx, [r14 + 1]
lea r12, [r15 + 4]
mov r14, rbx
test ebp, ebp
je 0x14007b6aa
lea rdx, [0x1401190f0]
mov rcx, r12
call qword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov r15, rax
test rax, rax
jne 0x14007b5e0
cmp dword [rsp + 0xd8], 0
mov r14, rbx
je 0x14007b79c
mov rbp, qword [rsp + 0x58]
mov rax, r12
sub rax, rbp
sar rax, 1
sub rdi, rax
je 0x14007b720
add rbx, rdi
cmp rbx, qword [rsp + 0x50]
jb 0x14007b70d
lea rdx, [rbx*2 + 2]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
jne 0x14007b70a
test rsi, rsi
je 0x14007b6fc
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r12, qword [rsp + 0x48]
xor eax, eax
mov ebx, eax
jmp 0x14007b7a4
mov rsi, rax
lea r8, [rdi + rdi]
mov rdx, r12
lea rcx, [rsi + r14*2]
call sub.VCRUNTIME140.dll_memcpy
mov r14, rbx
xor eax, eax
lea r8, [r14*2 + 2]
mov rdx, rsi
mov word [rsi + r14*2], ax
mov rcx, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r12, qword [rsp + 0x48]
jmp 0x14007b7a4
mov rsi, r15
mov r12, rbp
lea rdx, [0x1401190f0]
mov rcx, rsi
call qword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov rbx, rax
test rax, rax
je 0x14007b79c
mov rcx, rax
lea rsi, [rax + 2]
sub rcx, r15
lea rdx, [rax + 4]
sar rcx, 1
mov r8, rdi
sub r8, rcx
mov rcx, rsi
lea r8, [r8*2 - 2]
call sub.VCRUNTIME140.dll_memmove
dec rdi
mov word [rbx], 0xa
add ebp, r12d
jne 0x14007b750
mov r12, qword [rsp + 0x48]
mov rbx, rdi
cmp byte [r12 + 0x23], 0
jne 0x14007b7b3
mov rdi, qword [r12 + 0x10]
jmp 0x14007b7b6
mov rdi, r12
cmp byte [rdi + 0x23], 1
jne 0x14007b7ce
test byte [rdi + 0x21], 8
je 0x14007b7ca
mov rcx, rdi
call fcn.140001640
lea r13, [rdi + 0x10]
mov r14d, dword [rsp + 0xd0]
lea rax, [rbx + rbx]
mov qword [r13], rax
jmp 0x14007b8de
movzx eax, byte [r12 + 0x23]
test al, al
jne 0x14007b7f6
mov rax, qword [r12 + 0x10]
movzx eax, byte [rax + 0x23]
cmp al, 2
jne 0x14007b840
mov edx, dword [rsp + 0x40]
mov rcx, rdi
call fcn.1400dc640
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp ebx, 1
jne 0x14007b915
mov rcx, qword [0x140132a80]
lea rdx, [0x1400f98c8]
xor r9d, r9d
mov byte [rsp + 0x20], bl
mov r8, 0xffffffffffffffff
call fcn.1400dc860
jmp 0x14007b944
mov ecx, dword [rsp + 0x40]
test cl, 1
je 0x14007b84f
mov byte [rcx + rdi], 0
inc ecx
xor eax, eax
mov esi, ecx
mov word [rcx + rdi], ax
cmp byte [r12 + 0x23], al
jne 0x14007b865
mov rbx, qword [r12 + 0x10]
jmp 0x14007b868
mov rbx, r12
cmp byte [rbx + 0x23], 1
jne 0x14007b886
test byte [rbx + 0x21], 8
je 0x14007b87c
mov rcx, rbx
call fcn.140001640
lea r13, [rbx + 0x10]
mov qword [r13], rsi
jmp 0x14007b8de
lea r13, [0x140138668]
mov qword [r13], rsi
jmp 0x14007b8de
xor eax, eax
mov word [rdi], ax
cmp byte [r12 + 0x23], al
jne 0x14007b8a6
mov rbx, qword [r12 + 0x10]
jmp 0x14007b8a9
mov rbx, r12
cmp byte [rbx + 0x23], 1
jne 0x14007b8c5
test byte [rbx + 0x21], 8
je 0x14007b8bf
mov rcx, rbx
call fcn.140001640
xor eax, eax
lea r13, [rbx + 0x10]
jmp 0x14007b8cc
lea r13, [0x140138668]
mov qword [r13], rax
test bpl, bpl
jne 0x14007b8de
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
movzx ebx, byte [rsp + 0xc8]
cmp byte [r12 + 0x23], 0
jne 0x14007b8f3
mov r12, qword [r12 + 0x10]
cmp byte [r12 + 0x23], 2
jne 0x14007b919
cmp qword [0x140136d00], 0
je 0x14007b919
lea rcx, [0x140136ce8]
call fcn.140007740
test eax, eax
jne 0x14007b931
xor eax, eax
jmp 0x14007b944
movzx eax, byte [r12 + 0x21]
and al, 0x86
mov byte [r12 + 0x21], al
test bl, bl
je 0x14007b931
or al, 1
mov byte [r12 + 0x21], al
mov rcx, qword [rsp + 0xc0]
test r14d, r14d
sete dl
call fcn.140063df0
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret