Function at 0x14021ce50
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
vpxor xmm0, xmm0, xmm0
mov qword [rcx + 0x10], 0
mov rbx, rcx
mov rsi, rdx
mov dword [rcx + 0x18], 0
vmovdqu xmmword [rcx], xmm0
test rdx, rdx
je 0x14021d0c0
mov rcx, rdx
call sym.strlen
mov rdi, rax
test rax, rax
je 0x14021d0c0
lea rcx, [rax + 1]
mov edx, 1
call sym.calloc
mov qword [rbx], rax
mov rcx, rax
test rax, rax
je 0x14021d164
mov r8, rdi
mov rdx, rsi
lea rdi, [0x1402ff814]
call sym.memcpy
mov rdx, rdi
mov rcx, rax
call sym.fopen_utf8
mov rsi, rax
test rax, rax
je 0x14021cfb8
xor edx, edx
mov r8d, 2
mov rcx, rsi
call sym.fseek
mov rcx, rsi
call sym.ftell
xor r8d, r8d
xor edx, edx
mov rcx, rsi
mov edi, eax
call sym.fseek
test edi, edi
js 0x14021d068
movsxd rbp, edi
mov rcx, rbp
call sym.malloc_hugepages
mov qword [rbx + 8], rax
mov rcx, rax
test rax, rax
je 0x14021d080
mov rax, qword [str.Uf2_]
cmp byte [rax], 0
je 0x14021cf88
mov r9, rsi
mov r8d, 1
mov rdx, rbp
call sym.fread
test rax, rax
je 0x14021d0f6
mov rcx, rsi
call sym.fclose
lea eax, [rdi - 0x11]
sub edi, 0x20
mov qword [rbx + 0x10], rbp
cmovns eax, edi
mov r8, qword [rbx]
mov ecx, 3
lea rdx, str.Using_Verthash_data_file__s
sar eax, 4
add eax, 1
mov dword [rbx + 0x18], eax
call sym.applog
xor eax, eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov ecx, 4
lea rdx, str.Verthash_data_is_using_huge_pages
call sym.applog
mov rcx, qword [rbx + 8]
test rcx, rcx
jne 0x14021cf2e
mov rcx, rsi
call sym.fclose
mov eax, 2
jmp 0x14021cf7c
mov rax, qword [0x140311c70]
cmp qword [rax], 0
jne 0x14021d0e0
mov rax, qword [0x140311d90]
cmp byte [rax], 0
je 0x14021d114
lea rdx, str.Creating_default_verthash.dat_in_current_directory__this_will_take_several_minutes
mov ecx, 3
call sym.applog
mov ecx, 0x20
mov rbp, qword [rbx]
call sym.malloc
mov rsi, rax
test rax, rax
je 0x14021d17a
mov r8, rax
mov edx, 0x20
lea rcx, str.Verthash_Proof_of_Space_Datafile
mov r9d, 0x20
call sym.sha3
mov r8, rsi
mov rdx, rbp
mov ecx, 0x11
call sym.NewGraph
test rax, rax
je 0x14021d14e
mov rcx, qword [rbx]
mov rdx, rdi
call sym.fopen_utf8
mov rsi, rax
test rax, rax
je 0x14021d138
lea rdx, str.Verthash_data_file_created_successfully
mov ecx, 3
call sym.applog
jmp 0x14021ced8
mov rcx, rsi
call sym.fclose
mov eax, 1
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret
test edi, edi
je 0x14021d0b0
lea rcx, [rbp + 0x40]
call sym.malloc
test rax, rax
je 0x14021d0b0
lea rcx, [rax + 0x40]
and rcx, 0xffffffffffffffc0
mov qword [rcx - 8], rax
mov qword [rbx + 8], rcx
jmp 0x14021cf2e
mov qword [rbx + 8], 0
jmp 0x14021cfa2
lea rdx, str.Invalid_file_specification
mov ecx, 1
call sym.applog
or eax, 0xffffffff
jmp 0x14021cf7c
mov r8, qword [rbx]
lea rdx, str.Verthash_data_file_not_found_or_invalid:__s
mov ecx, 1
call sym.applog
jmp 0x14021d0d1
mov r8, qword [rbx]
lea rdx, str.File_system_error_reading__s
mov ecx, 1
call sym.applog
mov rcx, rsi
call sym.fclose
jmp 0x14021d0d1
lea rdx, str.No_Verthash_data_file_specified_and_default_not_found
mov ecx, 1
call sym.applog
lea rdx, str.Add___verify_to_create_default_verthash.dat
mov ecx, 3
call sym.applog
jmp 0x14021d0d1
mov r8, qword [rbx]
lea rdx, str.File_system_error_opening__s
mov ecx, 1
call sym.applog
jmp 0x14021d0d1
lea rdx, str.Verthash_file_creation_failed
mov ecx, 1
call sym.applog
jmp 0x14021d0d1
lea rdx, str.Failed_to_allocate_memory_for_Verthash_data
mov ecx, 1
call sym.applog
jmp 0x14021d0d1
lea rdx, str.Verthash_data_memory_allocation_failed
mov ecx, 1
call sym.applog
jmp 0x14021d0d1