Function at 0x7ff7f4e81950
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rdi
sub rsp, 0x90
mov rax, qword [0x7ff7f4ebe040]
xor rax, rsp
mov qword [rsp + 0x88], rax
lea rdx, [0x7ff7f4eab8c4]
mov rbp, rcx
xor ebx, ebx
call fcn.7ff7f4e845c0
mov rdi, rax
test rax, rax
je 0x7ff7f4e81c4e
mov rax, qword [0x7ff7f4ead538]
lea rdx, [rsp + 0x80]
mov qword [rsp + 0x80], rax
mov r8d, 8
shr rax, 0x18
mov rcx, rdi
add al, 0xc
mov qword [rsp + 0xa8], rsi
mov byte [rsp + 0x83], al
call fcn.7ff7f4e87f90
mov rsi, rax
test rax, rax
je 0x7ff7f4e81c3b
xor r8d, r8d
mov rdx, rax
mov rcx, rdi
call fcn.7ff7f4e906d4
test eax, eax
jns 0x7ff7f4e81a08
call fcn.7ff7f4e94f08
lea r8, str.Failed_to_seek_to_cookie_position__n
lea rcx, str.fseek
mov edx, dword [rax]
call fcn.7ff7f4e82910
jmp 0x7ff7f4e81c3b
mov r9, rdi
lea rcx, [rsp + 0x20]
mov edx, 0x58
mov r8d, 1
call fcn.7ff7f4e9039c
cmp rax, 1
jae 0x7ff7f4e81a45
call fcn.7ff7f4e94f08
lea r8, str.Failed_to_read_cookie__n
lea rcx, str.fread
mov edx, dword [rax]
call fcn.7ff7f4e82910
jmp 0x7ff7f4e81c3b
mov edx, 0x1070
mov ecx, 1
call fcn.7ff7f4e94f28
mov rbx, rax
test rax, rax
jne 0x7ff7f4e81a7b
call fcn.7ff7f4e94f08
lea r8, str.Could_not_allocate_memory_for_archive_structure__n
lea rcx, str.calloc
mov edx, dword [rax]
call fcn.7ff7f4e82910
jmp 0x7ff7f4e81c3b
mov r9, rbp
lea r8, [0x7ff7f4eaba7c]
mov edx, 0x1000
mov rcx, rbx
call fcn.7ff7f4e81c80
mov eax, dword [rsp + 0x28]
lea rcx, [rbx + 0x102c]
bswap eax
mov dword [rsp + 0x28], eax
lea r9, [rsp + 0x38]
mov eax, dword [rsp + 0x2c]
lea r8, [0x7ff7f4eaba7c]
bswap eax
mov dword [rsp + 0x2c], eax
mov edx, 0x40
mov eax, dword [rsp + 0x30]
bswap eax
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x34]
bswap eax
mov dword [rsp + 0x34], eax
mov dword [rbx + 0x1028], eax
call fcn.7ff7f4e81c80
mov eax, dword [rsp + 0x28]
xor r8d, r8d
sub rsi, rax
mov rcx, rdi
lea rax, [rsi + 0x58]
mov qword [rbx + 0x1000], rax
mov edx, dword [rsp + 0x2c]
add rdx, rax
call fcn.7ff7f4e906d4
mov ecx, dword [rsp + 0x30]
call fcn.7ff7f4e94f44
mov qword [rbx + 0x1008], rax
test rax, rax
jne 0x7ff7f4e81b35
call fcn.7ff7f4e94f08
lea r8, str.Could_not_allocate_buffer_for_TOC__n
lea rcx, str.malloc
mov edx, dword [rax]
call fcn.7ff7f4e82910
jmp 0x7ff7f4e81c3b
mov edx, dword [rsp + 0x30]
mov r9, rdi
mov r8d, 1
mov rcx, rax
call fcn.7ff7f4e9039c
cmp rax, 1
jae 0x7ff7f4e81b6f
call fcn.7ff7f4e94f08
lea r8, str.Could_not_read_full_TOC__n
lea rcx, str.fread
mov edx, dword [rax]
call fcn.7ff7f4e82910
jmp 0x7ff7f4e81c3b
mov eax, dword [rsp + 0x30]
mov rcx, rdi
add rax, qword [rbx + 0x1008]
mov qword [rbx + 0x1010], rax
call fcn.7ff7f4e90110
test eax, eax
je 0x7ff7f4e81b9e
lea rcx, str.Error_on_file._n
call fcn.7ff7f4e82710
jmp 0x7ff7f4e81c3b
mov rdx, qword [rbx + 0x1008]
cmp rdx, qword [rbx + 0x1010]
jae 0x7ff7f4e81c3b
mov r8d, dword [0x7ff7f4ebe018]
movdqa xmm1, xmmword [0x7ff7f4eabae0]
xor eax, eax
cmp r8d, 2
jl 0x7ff7f4e81be0
movdqu xmm0, xmmword [rdx]
pshufb xmm0, xmm1
movdqu xmmword [rdx], xmm0
jmp 0x7ff7f4e81bf1
mov ecx, dword [rdx + rax*4]
bswap ecx
mov dword [rdx + rax*4], ecx
inc rax
cmp rax, 4
jl 0x7ff7f4e81be0
movzx ecx, byte [rdx + 0x11]
lea eax, [rcx - 0x5a]
test al, 0xf7
je 0x7ff7f4e81c0f
cmp cl, 0x64
je 0x7ff7f4e81c0f
cmp cl, 0x6e
je 0x7ff7f4e81c0f
cmp cl, 0x78
je 0x7ff7f4e81c0f
xor al, al
jmp 0x7ff7f4e81c11
mov al, 1
or al, byte [rbx + 0x1018]
setne al
mov byte [rbx + 0x1018], al
cmp byte [rdx + 0x11], 0x6c
jne 0x7ff7f4e81c2d
mov qword [rbx + 0x1020], rdx
mov eax, dword [rdx]
add rdx, rax
cmp rdx, qword [rbx + 0x1010]
jb 0x7ff7f4e81bc1
mov rcx, rdi
call fcn.7ff7f4e9004c
mov rsi, qword [rsp + 0xa8]
mov rax, rbx
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.7ff7f4e8c550
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret