Function at 0x14007e8c0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
test rdx, rdx
je 0x14007ed01
mov rsi, rcx
mov rcx, qword [rdx + 0x130]
mov rbx, rdx
mov r8d, 2
xor edx, edx
call sub.msvcrt.dll_fseek
mov rcx, qword [rbx + 0x130]
call sub.msvcrt.dll_ftell
mov rcx, qword [rbx + 0x130]
xor edx, edx
xor r8d, r8d
movsxd rdi, eax
call sub.msvcrt.dll_fseek
mov rdx, qword [rbx + 0x120]
xor eax, eax
test rdx, rdx
je 0x14007e92b
mov rax, rdx
sub rax, qword [rbx + 0x118]
mov qword [rsp + 0x30], rax
lea r12, [rbx + 0x10]
xor r9d, r9d
xor edx, edx
lea rax, str.____Loading_file__s__offset_is__lu__size_is__lu
mov qword [rsp + 0x38], rdi
xor ecx, ecx
lea r8, str.dap_chain_cell
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rax
call fcn.14005a0c0
cmp rdi, 0x24
jbe 0x14007ed0c
cmp byte [rsi + 0x31], 0
je 0x14007eac0
cmp qword [rbx + 0x120], 0
je 0x14007ed0c
mov r13, qword [rbx + 0x118]
xor ebp, ebp
movabs rax, 0xfa340bef153eba48
cmp qword [r13], rax
jne 0x14007ecb1
mov eax, dword [r13 + 8]
test eax, eax
je 0x14007ed3e
cmp byte [rsi + 0x31], 0
je 0x14007eb40
mov rax, qword [rbx + 0x118]
xor edi, edi
lea rdx, [rax + 0x25]
mov qword [rbx + 0x120], rdx
cmp rdx, qword [rbx + 0x128]
jb 0x14007ea10
jmp 0x14007eca7
add rdx, 8
mov r8, r13
mov rcx, rsi
add rdi, 1
mov rax, qword [rsi + 0xb0]
mov qword [rbx + 0x120], rdx
call rax
mov rdx, qword [rbx + 0x120]
add rdx, r13
mov qword [rbx + 0x120], rdx
cmp rdx, qword [rbx + 0x128]
jae 0x14007ea18
mov r13, qword [rdx]
test r13, r13
jne 0x14007e9d8
sub edx, dword [rbx + 0x118]
mov rcx, qword [rbx + 0x130]
xor r8d, r8d
xor r14d, r14d
call sub.msvcrt.dll_fseek
lea rax, str.Loaded__lu_atoms_in_cell__s
mov qword [rsp + 0x30], r12
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x28], rdi
mov r9d, 1
lea r8, str.dap_chain_cell
mov qword [rsp + 0x20], rax
call fcn.14005a0c0
cmp byte [rsi + 0x31], 0
je 0x14007ea70
mov rbp, qword [rbx + 0x120]
sub rbp, qword [rbx + 0x118]
mov rcx, qword [rbx + 0x130]
call sub.msvcrt.dll_ftell
mov qword [rsp + 0x38], rbp
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x30], eax
lea rax, str.____Current_stream_pos_of__s_is__lu__map_pos_is__lu
lea r8, str.dap_chain_cell
xor ecx, ecx
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rax
call fcn.14005a0c0
add rsp, 0x58
mov eax, r14d
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0x25
call sub.msvcrt.dll_malloc
mov r8d, 0x25
mov edx, 1
mov r9, qword [rbx + 0x130]
mov rcx, rax
mov r14, rax
mov r13, rax
call sub.msvcrt.dll_fread
mov rbp, rax
cmp rax, 0x25
je 0x14007e988
lea rax, str.Cant_read_chain_header___s_
mov qword [rsp + 0x28], r12
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
mov r9d, 7
lea r8, str.dap_chain_cell
call fcn.14005a0c0
mov rcx, qword [rbx + 0x130]
call sub.msvcrt.dll_fclose
mov rcx, r14
mov r14d, 0xfffffffe
call sub.msvcrt.dll_free
jmp 0x14007eaa9
mov rcx, r13
xor edi, edi
lea r14, [rsp + 0x48]
call sub.msvcrt.dll_free
mov qword [rsp + 0x48], 0
jmp 0x14007eb64
add rdi, 1
mov r9, qword [rbx + 0x130]
mov r8d, 8
mov edx, 1
mov rcx, r14
call sub.msvcrt.dll_fread
mov r13, rax
test rax, rax
je 0x14007ec10
mov rcx, qword [rbx + 0x130]
call sub.msvcrt.dll_feof
test eax, eax
jne 0x14007ec10
mov r15, qword [rsp + 0x48]
cmp r13, 8
jne 0x14007ec30
test r15, r15
je 0x14007ec30
mov rcx, r15
call sub.msvcrt.dll_malloc
mov r13, rax
test rax, rax
je 0x14007ed81
mov r9, qword [rbx + 0x130]
mov r8, r15
mov edx, 1
mov rcx, rax
call sub.msvcrt.dll_fread
mov r8, qword [rsp + 0x48]
lea rbp, [rbp + rax + 8]
cmp r8, rax
jne 0x14007ec68
mov rdx, r13
mov rcx, rsi
call qword [rsi + 0xb0]
test eax, eax
je 0x14007eb60
mov rcx, r13
call sub.msvcrt.dll_free
jmp 0x14007eb60
xor r14d, r14d
mov rcx, qword [rbx + 0x130]
xor r8d, r8d
mov edx, ebp
call sub.msvcrt.dll_fseek
jmp 0x14007ea30
lea rax, str.Corrupted_element_size__zu__chain__s_is_damaged
mov qword [rsp + 0x30], r12
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x28], r15
mov r9d, 7
lea r8, str.dap_chain_cell
mov r14d, 0xfffffffc
mov qword [rsp + 0x20], rax
call fcn.14005a0c0
jmp 0x14007ec13
mov qword [rsp + 0x28], rax
lea rax, str.Read_only__lu_of__zu_bytes__stop_cell_loading
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x30], r8
mov r9d, 7
lea r8, str.dap_chain_cell
mov r14d, 0xfffffffa
mov qword [rsp + 0x20], rax
call fcn.14005a0c0
mov rcx, r13
call sub.msvcrt.dll_free
jmp 0x14007ec13
mov edx, 0x25
jmp 0x14007ea1e
lea rax, str.Wrong_signature_in_chain___s___possible_file_corrupt
mov qword [rsp + 0x28], r12
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
mov r9d, 7
lea r8, str.dap_chain_cell
mov r14d, 0xfffffffd
call fcn.14005a0c0
mov rcx, qword [rbx + 0x130]
call sub.msvcrt.dll_fclose
cmp byte [rsi + 0x31], 0
jne 0x14007eaa9
mov rcx, r13
call sub.msvcrt.dll_free
jmp 0x14007eaa9
mov r14d, 0xffffffff
jmp 0x14007eaa9
lea rax, str.Chain_cell___s__is_yet_empty
mov qword [rsp + 0x28], r12
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
mov r9d, 1
lea r8, str.dap_chain_cell
mov r14d, 0xffffffff
call fcn.14005a0c0
jmp 0x14007eaa9
xor edx, edx
xor ecx, ecx
mov r9d, 7
mov r14d, 0xfffffffc
lea rax, str.Too_low_chain_version__backup_files
lea r8, str.dap_chain_cell
mov qword [rsp + 0x20], rax
call fcn.14005a0c0
mov rcx, qword [rbx + 0x130]
call sub.msvcrt.dll_fclose
cmp byte [rsi + 0x31], 0
jne 0x14007eaa9
jmp 0x14007ecf4
lea rax, [0x1402b1728]
mov r9d, 8
lea r8, str.dap_chain_cell
mov edx, 0x139
mov qword [rsp + 0x20], rax
lea rcx, str.dap_chain_cell_load
mov r14d, 0xfffffffb
call fcn.14005a0c0
jmp 0x14007ec13