Function at 0x14005ef7b
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x208
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x1b0], rcx
mov rbx, rdx
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rdx
mov byte [rbp + 0x17f], 0
lea r8, [0x140089fe0]
mov rdx, r9
movabs rax, 0xffffffff00000000
and rax, rdx
or rax, 2
mov r9, rax
mov rax, r9
mov edx, eax
movabs rax, 0x100000000
or rax, rdx
mov r9, rax
lea rcx, [rbp + 0x140]
mov rax, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x28]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
mov qword [rbp - 0x50], r8
mov qword [rbp - 0x48], r9
lea rdx, [rbp - 0x50]
lea rax, [rbp - 0x40]
mov r8, rdx
mov rdx, rax
call sym.os__vfopen
movzx eax, byte [rbp + 0x140]
test al, al
je 0x14005f083
lea rdx, [rbp + 0x140]
lea rax, [rbp + 0x60]
mov r8d, 0x18
mov rcx, rax
call sym.memcpy
mov rax, qword [rbp + 0x1b0]
mov rcx, qword [rbp + 0x60]
mov rbx, qword [rbp + 0x68]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp + 0x70]
mov rbx, qword [rbp + 0x78]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rcx, qword [rbp + 0x80]
mov rbx, qword [rbp + 0x88]
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], rbx
mov rdx, qword [rbp + 0x90]
mov qword [rax + 0x30], rdx
jmp 0x14005f4b7
lea rax, [rbp + 0x140]
add rax, 0x18
mov rax, qword [rax]
mov qword [rbp + 0x170], rax
mov byte [rbp + 0x17f], 1
lea rax, [rbp + 0x120]
mov rdx, qword [rbp + 0x170]
mov rcx, rax
call sym.os__find_cfile_size
movzx eax, byte [rbp + 0x120]
test al, al
je 0x14005f13d
cmp byte [rbp + 0x17f], 0
je 0x14005f0d8
mov rax, qword [rbp + 0x170]
mov rcx, rax
call sym.fclose
lea rdx, [rbp + 0x120]
lea rax, [rbp + 0x60]
mov r8d, 0x18
mov rcx, rax
call sym.memcpy
mov rax, qword [rbp + 0x1b0]
mov rcx, qword [rbp + 0x60]
mov rbx, qword [rbp + 0x68]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp + 0x70]
mov rbx, qword [rbp + 0x78]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rcx, qword [rbp + 0x80]
mov rbx, qword [rbp + 0x88]
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], rbx
mov rdx, qword [rbp + 0x90]
mov qword [rax + 0x30], rdx
jmp 0x14005f4b7
lea rax, [rbp + 0x120]
add rax, 0x18
mov eax, dword [rax]
mov dword [rbp + 0x16c], eax
cmp dword [rbp + 0x16c], 0
jne 0x14005f2a1
lea rax, [rbp + 0x20]
mov rdx, qword [rbp + 0x170]
mov rcx, rax
call sym.os__slurp_file_in_builder
movzx eax, byte [rbp + 0x20]
test al, al
je 0x14005f1f2
cmp byte [rbp + 0x17f], 0
je 0x14005f190
mov rax, qword [rbp + 0x170]
mov rcx, rax
call sym.fclose
lea rdx, [rbp + 0x20]
lea rax, [rbp + 0x60]
mov r8d, 0x18
mov rcx, rax
call sym.memcpy
mov rax, qword [rbp + 0x1b0]
mov rcx, qword [rbp + 0x60]
mov rbx, qword [rbp + 0x68]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp + 0x70]
mov rbx, qword [rbp + 0x78]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rcx, qword [rbp + 0x80]
mov rbx, qword [rbp + 0x88]
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], rbx
mov rdx, qword [rbp + 0x90]
mov qword [rax + 0x30], rdx
jmp 0x14005f4b7
lea rax, [rbp + 0x20]
lea rcx, [rax + 0x18]
mov rax, qword [rcx]
mov rdx, qword [rcx + 8]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rdx
mov rax, qword [rcx + 0x10]
mov rdx, qword [rcx + 0x18]
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rdx
mov rax, rbp
lea rdx, [rbp - 0x20]
mov rcx, rax
call sym.strings__Builder_reuse_as_plain_u8_array
lea rdx, [rbp + 0x60]
mov rax, rbp
mov r8d, 0x20
mov rcx, rax
call sym._result_ok
cmp byte [rbp + 0x17f], 0
je 0x14005f255
mov rax, qword [rbp + 0x170]
mov rcx, rax
call sym.fclose
mov rax, qword [rbp + 0x1b0]
mov rcx, qword [rbp + 0x60]
mov rbx, qword [rbp + 0x68]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp + 0x70]
mov rbx, qword [rbp + 0x78]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rcx, qword [rbp + 0x80]
mov rbx, qword [rbp + 0x88]
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], rbx
mov rdx, qword [rbp + 0x90]
mov qword [rax + 0x30], rdx
jmp 0x14005f4b7
lea rax, [rbp + 0x100]
mov edx, dword [rbp + 0x16c]
mov qword [rsp + 0x20], 0
mov r9d, 1
mov r8d, 0
mov rcx, rax
call sym.__new_array_with_default_noscan
mov eax, dword [rbp + 0x16c]
movsxd rdx, eax
mov rax, qword [rbp + 0x100]
mov rcx, qword [rbp + 0x170]
mov r9, rcx
mov r8, rdx
mov edx, 1
mov rcx, rax
call sym.fread
mov dword [rbp + 0x168], eax
cmp dword [rbp + 0x168], 0
jne 0x14005f3e3
cmp dword [rbp + 0x16c], 0
jle 0x14005f3e3
pxor xmm0, xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
movq qword [rbp + 0x90], xmm0
mov byte [rbp + 0x60], 1
lea rsi, str.fread_failed
mov rdx, rdi
movabs rax, 0xffffffff00000000
and rax, rdx
or rax, 0xc
mov rdi, rax
mov rax, rdi
mov edx, eax
movabs rax, 0x100000000
or rax, rdx
mov rdi, rax
lea rax, [rbp + 0x68]
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x38], rdi
lea rdx, [rbp - 0x40]
mov rcx, rax
call sym._v_error
cmp byte [rbp + 0x17f], 0
je 0x14005f397
mov rax, qword [rbp + 0x170]
mov rcx, rax
call sym.fclose
mov rax, qword [rbp + 0x1b0]
mov rcx, qword [rbp + 0x60]
mov rbx, qword [rbp + 0x68]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp + 0x70]
mov rbx, qword [rbp + 0x78]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rcx, qword [rbp + 0x80]
mov rbx, qword [rbp + 0x88]
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], rbx
mov rdx, qword [rbp + 0x90]
mov qword [rax + 0x30], rdx
jmp 0x14005f4b7
mov edx, dword [rbp + 0x168]
lea rax, [rbp + 0x100]
mov rcx, rax
call sym.array_trim
mov rax, qword [rbp + 0x100]
mov rdx, qword [rbp + 0x108]
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], rdx
mov rax, qword [rbp + 0x110]
mov rdx, qword [rbp + 0x118]
mov qword [rbp + 0xb0], rax
mov qword [rbp + 0xb8], rdx
lea rdx, [rbp + 0xc0]
lea rax, [rbp + 0xa0]
mov r8d, 0x20
mov rcx, rax
call sym._result_ok
cmp byte [rbp + 0x17f], 0
je 0x14005f464
mov rax, qword [rbp + 0x170]
mov rcx, rax
call sym.fclose
mov rax, qword [rbp + 0x1b0]
mov rcx, qword [rbp + 0xc0]
mov rbx, qword [rbp + 0xc8]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp + 0xd0]
mov rbx, qword [rbp + 0xd8]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rcx, qword [rbp + 0xe0]
mov rbx, qword [rbp + 0xe8]
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], rbx
mov rdx, qword [rbp + 0xf0]
mov qword [rax + 0x30], rdx
mov rax, qword [rbp + 0x1b0]
add rsp, 0x208
pop rbx
pop rsi
pop rdi
pop rbp
ret