Function at 0x14005f981
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1d8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x180], rcx
mov rbx, rdx
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
mov byte [rbp + 0x14f], 0
lea rax, [0x140089fe0]
mov qword [rbp + 0x110], rax
mov dword [rbp + 0x118], 2
mov dword [rbp + 0x11c], 1
lea rcx, [rbp + 0xf0]
mov rax, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x38]
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rdx
mov rax, qword [rbp + 0x110]
mov rdx, qword [rbp + 0x118]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rdx
lea rdx, [rbp - 0x60]
lea rax, [rbp - 0x50]
mov r8, rdx
mov rdx, rax
call sym.os__vfopen
movzx eax, byte [rbp + 0xf0]
test al, al
je 0x14005fa6d
lea rdx, [rbp + 0xf0]
lea rax, [rbp + 0x20]
mov r8d, 0x18
mov rcx, rax
call sym.memcpy
mov rax, qword [rbp + 0x180]
mov rcx, qword [rbp + 0x20]
mov rbx, qword [rbp + 0x28]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp + 0x30]
mov rbx, qword [rbp + 0x38]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rdx, qword [rbp + 0x40]
mov qword [rax + 0x20], rdx
jmp 0x14005fec0
lea rax, [rbp + 0xf0]
add rax, 0x18
mov rax, qword [rax]
mov qword [rbp + 0x140], rax
mov byte [rbp + 0x14f], 1
lea rax, [rbp + 0xd0]
mov rdx, qword [rbp + 0x140]
mov rcx, rax
call sym.os__find_cfile_size
movzx eax, byte [rbp + 0xd0]
test al, al
je 0x14005fb0e
cmp byte [rbp + 0x14f], 0
je 0x14005fac2
mov rax, qword [rbp + 0x140]
mov rcx, rax
call sym.fclose
lea rdx, [rbp + 0xd0]
lea rax, [rbp + 0x20]
mov r8d, 0x18
mov rcx, rax
call sym.memcpy
mov rax, qword [rbp + 0x180]
mov rcx, qword [rbp + 0x20]
mov rbx, qword [rbp + 0x28]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp + 0x30]
mov rbx, qword [rbp + 0x38]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rdx, qword [rbp + 0x40]
mov qword [rax + 0x20], rdx
jmp 0x14005fec0
lea rax, [rbp + 0xd0]
add rax, 0x18
mov eax, dword [rax]
mov dword [rbp + 0x13c], eax
cmp dword [rbp + 0x13c], 0
jne 0x14005fc70
lea rax, [rbp + 0x20]
mov rdx, qword [rbp + 0x140]
mov rcx, rax
call sym.os__slurp_file_in_builder
movzx eax, byte [rbp + 0x20]
test al, al
je 0x14005fbaa
cmp byte [rbp + 0x14f], 0
je 0x14005fb61
mov rax, qword [rbp + 0x140]
mov rcx, rax
call sym.fclose
lea rdx, [rbp + 0x20]
lea rax, [rbp - 0x10]
mov r8d, 0x18
mov rcx, rax
call sym.memcpy
mov rax, qword [rbp + 0x180]
mov rcx, qword [rbp - 0x10]
mov rbx, qword [rbp - 8]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp]
mov rbx, qword [rbp + 8]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rdx, qword [rbp + 0x10]
mov qword [rax + 0x20], rdx
jmp 0x14005fec0
lea rax, [rbp + 0x20]
lea rcx, [rax + 0x18]
mov rax, qword [rcx]
mov rdx, qword [rcx + 8]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rdx
mov rax, qword [rcx + 0x10]
mov rdx, qword [rcx + 0x18]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rdx
lea rax, [rbp + 0x90]
lea rdx, [rbp - 0x30]
mov rcx, rax
call sym.strings__Builder_str
lea rax, [rbp - 0x30]
mov rcx, rax
call sym.strings__Builder_free
mov rax, qword [rbp + 0x90]
mov rdx, qword [rbp + 0x98]
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], rdx
lea rdx, [rbp - 0x10]
lea rax, [rbp + 0x80]
mov r8d, 0x10
mov rcx, rax
call sym._result_ok
cmp byte [rbp + 0x14f], 0
je 0x14005fc3d
mov rax, qword [rbp + 0x140]
mov rcx, rax
call sym.fclose
mov rax, qword [rbp + 0x180]
mov rcx, qword [rbp - 0x10]
mov rbx, qword [rbp - 8]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp]
mov rbx, qword [rbp + 8]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rdx, qword [rbp + 0x10]
mov qword [rax + 0x20], rdx
jmp 0x14005fec0
mov eax, dword [rbp + 0x13c]
add eax, 1
cdqe
mov rcx, rax
call sym.malloc_noscan
mov qword [rbp + 0x130], rax
mov eax, dword [rbp + 0x13c]
movsxd rdx, eax
mov rcx, qword [rbp + 0x140]
mov rax, qword [rbp + 0x130]
mov r9, rcx
mov r8, rdx
mov edx, 1
mov rcx, rax
call sym.fread
mov dword [rbp + 0x12c], eax
mov rax, qword [rbp + 0x140]
mov rcx, rax
call sym.feof
mov dword [rbp + 0x128], eax
mov rax, qword [rbp + 0x140]
mov rcx, rax
call sym.ferror
mov dword [rbp + 0x124], eax
cmp dword [rbp + 0x128], 0
jne 0x14005fdb8
cmp dword [rbp + 0x124], 0
je 0x14005fdb8
mov rax, qword [rbp + 0x130]
mov rcx, rax
call sym._v_free
pxor xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movq qword [rbp + 0x40], xmm0
mov byte [rbp + 0x20], 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 + 0x28]
mov qword [rbp - 0x50], rsi
mov qword [rbp - 0x48], rdi
lea rdx, [rbp - 0x50]
mov rcx, rax
call sym._v_error
cmp byte [rbp + 0x14f], 0
je 0x14005fd85
mov rax, qword [rbp + 0x140]
mov rcx, rax
call sym.fclose
mov rax, qword [rbp + 0x180]
mov rcx, qword [rbp + 0x20]
mov rbx, qword [rbp + 0x28]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp + 0x30]
mov rbx, qword [rbp + 0x38]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rdx, qword [rbp + 0x40]
mov qword [rax + 0x20], rdx
jmp 0x14005fec0
mov eax, dword [rbp + 0x12c]
movsxd rdx, eax
mov rax, qword [rbp + 0x130]
add rax, rdx
mov byte [rax], 0
cmp dword [rbp + 0x12c], 0
jne 0x14005fe48
lea rax, [rbp + 0x60]
mov rdx, qword [rbp + 0x130]
mov rcx, rax
call sym.u8_vstring
lea rdx, [rbp + 0x20]
lea rax, [rbp + 0x60]
mov r8d, 0x10
mov rcx, rax
call sym._result_ok
cmp byte [rbp + 0x14f], 0
je 0x14005fe18
mov rax, qword [rbp + 0x140]
mov rcx, rax
call sym.fclose
mov rax, qword [rbp + 0x180]
mov rcx, qword [rbp + 0x20]
mov rbx, qword [rbp + 0x28]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp + 0x30]
mov rbx, qword [rbp + 0x38]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rdx, qword [rbp + 0x40]
mov qword [rax + 0x20], rdx
jmp 0x14005fec0
lea rax, [rbp + 0x70]
mov ecx, dword [rbp + 0x12c]
mov rdx, qword [rbp + 0x130]
mov r8d, ecx
mov rcx, rax
call sym.u8_vstring_with_len
lea rdx, [rbp + 0x20]
lea rax, [rbp + 0x70]
mov r8d, 0x10
mov rcx, rax
call sym._result_ok
cmp byte [rbp + 0x14f], 0
je 0x14005fe92
mov rax, qword [rbp + 0x140]
mov rcx, rax
call sym.fclose
mov rax, qword [rbp + 0x180]
mov rcx, qword [rbp + 0x20]
mov rbx, qword [rbp + 0x28]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rbp + 0x30]
mov rbx, qword [rbp + 0x38]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rbx
mov rdx, qword [rbp + 0x40]
mov qword [rax + 0x20], rdx
mov rax, qword [rbp + 0x180]
add rsp, 0x1d8
pop rbx
pop rsi
pop rdi
pop rbp
ret