Function at 0x140001ca0
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
lea rdx, [0x140011129]
mov rbp, rcx
call fcn.1400046c0
mov rbx, rax
test rax, rax
je 0x140001f20
mov rax, qword [0x140016a00]
lea rsi, [rsp + 0x20]
mov r8d, 8
mov rcx, rbx
mov rdx, rsi
mov rax, qword [rax]
mov qword [rsp + 0x20], rax
shr rax, 0x18
add eax, 0xc
mov byte [rsp + 0x23], al
call fcn.140007b60
mov rdi, rax
test rax, rax
jne 0x140001d20
xor esi, esi
mov rcx, rbx
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fclose
mov rax, rsi
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
ret
xor r8d, r8d
mov edx, eax
mov rcx, rbx
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fseek
test eax, eax
js 0x140001f38
mov r9, rbx
mov r8d, 1
mov edx, 0x58
mov rcx, rsi
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fread
test rax, rax
je 0x140001f60
mov edx, 0x1070
mov ecx, 1
call sub.api_ms_win_crt_heap_l1_1_0.dll_calloc
mov rsi, rax
test rax, rax
je 0x140001f91
mov r9, rbp
lea r8, [0x140011391]
mov edx, 0x1000
mov rcx, rax
call fcn.14000ee60
mov eax, dword [rsp + 0x28]
mov edx, dword [rsp + 0x34]
lea r9, [rsp + 0x38]
lea r8, [0x140011391]
bswap eax
movd xmm0, eax
mov eax, dword [rsp + 0x2c]
bswap edx
movd xmm4, edx
mov dword [rsi + 0x1028], edx
mov edx, 0x40
bswap eax
mov ecx, eax
mov eax, dword [rsp + 0x30]
movd xmm5, ecx
lea rcx, [rsi + 0x102c]
bswap eax
movd xmm1, eax
punpckldq xmm0, xmm5
punpckldq xmm1, xmm4
punpcklqdq xmm0, xmm1
movups xmmword [rsp + 0x28], xmm0
call fcn.14000ee60
mov eax, dword [rsp + 0x28]
xor r8d, r8d
mov rcx, rbx
sub rdi, rax
lea rdx, [rdi + 0x58]
mov qword [rsi + 0x1000], rdx
add edx, dword [rsp + 0x2c]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fseek
mov edi, dword [rsp + 0x30]
mov rcx, rdi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov qword [rsi + 0x1008], rax
mov rcx, rax
test rax, rax
je 0x140001fb1
mov r9, rbx
mov r8d, 1
mov rdx, rdi
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fread
test rax, rax
je 0x140001ef8
mov eax, dword [rsp + 0x30]
add rax, qword [rsi + 0x1008]
mov rcx, rbx
mov qword [rsi + 0x1010], rax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_ferror
test eax, eax
jne 0x140001f80
mov rax, qword [rsi + 0x1008]
mov r10, qword [rsi + 0x1010]
cmp rax, r10
jae 0x140001d00
mov r11d, 0x40100501
jmp 0x140001e95
mov byte [rsi + 0x1018], 1
mov edx, edx
add rax, rdx
cmp rax, r10
jae 0x140001d00
mov ecx, dword [rax + 4]
mov edx, dword [rax]
mov r9d, dword [rax + 0xc]
bswap ecx
mov r8d, ecx
mov ecx, dword [rax + 8]
bswap edx
movd xmm3, r8d
movd xmm1, edx
movzx r8d, byte [rax + 0x11]
bswap r9d
bswap ecx
movd xmm2, r9d
movd xmm0, ecx
punpckldq xmm1, xmm3
punpckldq xmm0, xmm2
lea ecx, [r8 - 0x5a]
punpcklqdq xmm1, xmm0
movups xmmword [rax], xmm1
cmp cl, 0x1e
ja 0x140001e87
bt r11, rcx
jb 0x140001e80
cmp r8b, 0x6c
jne 0x140001e87
mov qword [rsi + 0x1020], rax
jmp 0x140001e87
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
lea r8, str.Could_not_read_full_TOC__n
lea rcx, str.fread
mov edx, dword [rax]
call fcn.140002b70
jmp 0x140001d00
xor esi, esi
mov rax, rsi
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
lea r8, str.Failed_to_seek_to_cookie_position__n
lea rcx, str.fseek
mov edx, dword [rax]
call fcn.140002b70
jmp 0x140001cfe
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
lea r8, str.Failed_to_read_cookie__n
lea rcx, str.fread
mov edx, dword [rax]
call fcn.140002b70
jmp 0x140001cfe
lea rcx, str.Error_on_file._n
call fcn.140002a70
jmp 0x140001d00
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
lea r8, str.Could_not_allocate_memory_for_archive_structure__n
lea rcx, [0x14001138a]
mov edx, dword [rax]
call fcn.140002b70
jmp 0x140001cfe
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
lea r8, str.Could_not_allocate_buffer_for_TOC__n
lea rcx, str.malloc
mov edx, dword [rax]
call fcn.140002b70
jmp 0x140001d00