Function at 0x140025d70
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x148
xor eax, eax
cmp byte [rcx + 0x5c], 0
mov rbx, rcx
mov rbp, rdx
jne 0x140025d99
mov rax, qword [rcx + 0x40]
test rax, rax
je 0x140026490
sub eax, dword [rcx + 0x48]
mov dword [rbp], eax
mov rax, qword [rbx + 0x40]
test rax, rax
je 0x1400264b0
lea rdx, [rax + 0x1b]
cmp rdx, qword [rbx + 0x50]
jbe 0x140026460
mov dword [rbx + 0x98], 1
xor eax, eax
cmp byte [rsp + 0x20], 0x4f
jne 0x140025dd1
cmp byte [rsp + 0x21], 0x67
je 0x140025de0
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
ret
cmp byte [rsp + 0x22], 0x67
jne 0x140025dd1
cmp byte [rsp + 0x23], 0x53
jne 0x140025dd1
movzx edx, byte [rsp + 0x3a]
mov rax, qword [rbx + 0x40]
mov r8, rdx
test rax, rax
je 0x140026590
lea r9, [rax + rdx]
cmp r9, qword [rbx + 0x50]
jbe 0x140026530
mov dword [rbx + 0x98], 1
movzx ecx, r8b
test ecx, ecx
je 0x1400265d3
lea eax, [rcx - 1]
cmp eax, 0xe
jbe 0x1400265da
movdqa xmm4, xmmword [rsp + 0x40]
pxor xmm3, xmm3
pxor xmm2, xmm2
mov eax, ecx
shr eax, 4
movdqa xmm1, xmm4
punpckhbw xmm4, xmm3
punpcklbw xmm1, xmm3
movdqa xmm5, xmm1
movdqa xmm0, xmm1
movdqa xmm1, xmm4
punpcklwd xmm5, xmm2
punpckhwd xmm0, xmm2
punpcklwd xmm1, xmm2
paddd xmm0, xmm5
punpckhwd xmm4, xmm2
paddd xmm0, xmm1
paddd xmm0, xmm4
cmp eax, 1
je 0x140026250
movdqa xmm1, xmmword [rsp + 0x50]
movdqa xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqa xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 2
je 0x140026250
movdqa xmm1, xmmword [rsp + 0x60]
movdqa xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqa xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 3
je 0x140026250
movdqa xmm1, xmmword [rsp + 0x70]
movdqa xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqa xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 4
je 0x140026250
movdqa xmm1, xmmword [rsp + 0x80]
movdqa xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqa xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 5
je 0x140026250
movdqa xmm1, xmmword [rsp + 0x90]
movdqa xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqa xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 6
je 0x140026250
movdqa xmm1, xmmword [rsp + 0xa0]
movdqa xmm5, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm5, xmm3
movdqa xmm4, xmm5
punpckhwd xmm5, xmm2
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
movdqa xmm4, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm5
punpcklwd xmm4, xmm2
paddd xmm0, xmm4
paddd xmm0, xmm1
cmp eax, 7
je 0x140026250
movdqa xmm1, xmmword [rsp + 0xb0]
movdqa xmm4, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm4, xmm3
movdqa xmm3, xmm4
punpckhwd xmm4, xmm2
punpcklwd xmm3, xmm2
paddd xmm0, xmm3
movdqa xmm3, xmm1
punpckhwd xmm1, xmm2
paddd xmm0, xmm4
punpcklwd xmm3, xmm2
paddd xmm0, xmm3
paddd xmm0, xmm1
cmp eax, 8
je 0x140026250
movdqa xmm3, xmmword [rsp + 0xc0]
pxor xmm2, xmm2
pxor xmm1, xmm1
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 9
je 0x140026250
movdqa xmm3, xmmword [rsp + 0xd0]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xa
je 0x140026250
movdqa xmm3, xmmword [rsp + 0xe0]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xb
je 0x140026250
movdqa xmm3, xmmword [rsp + 0xf0]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xc
je 0x140026250
movdqa xmm3, xmmword [rsp + 0x100]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xd
je 0x140026250
movdqa xmm3, xmmword [rsp + 0x110]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xf
jne 0x140026250
movdqa xmm3, xmmword [rsp + 0x120]
movdqa xmm4, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm4, xmm2
movdqa xmm2, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm2, xmm1
paddd xmm0, xmm2
movdqa xmm2, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm4
punpcklwd xmm2, xmm1
paddd xmm0, xmm2
paddd xmm0, xmm3
nop dword [rax]
movdqa xmm1, xmm0
mov edx, ecx
psrldq xmm1, 8
and edx, 0xfffffff0
paddd xmm0, xmm1
movdqa xmm1, xmm0
psrldq xmm1, 4
paddd xmm0, xmm1
movd eax, xmm0
test ecx, 0xffffff0f
je 0x1400263d0
movsxd r8, edx
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 1]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 2]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 3]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 4]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 5]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 6]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 7]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 8]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 9]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xa]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xb]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xc]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
lea r8d, [rdx + 0xd]
cmp ecx, r8d
jle 0x1400263d0
movsxd r8, r8d
add edx, 0xe
movzx r8d, byte [rsp + r8 + 0x40]
add eax, r8d
cmp ecx, edx
jle 0x1400263d0
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x40]
add eax, edx
nop dword [rax]
mov r8d, dword [rbp]
lea edx, [r8 + rcx + 0x1b]
add eax, edx
movzx edx, byte [rsp + 0x26]
movd xmm0, eax
movzx eax, byte [rsp + 0x27]
shl eax, 8
add eax, edx
movzx edx, byte [rsp + 0x28]
shl edx, 0x10
add eax, edx
movzx edx, byte [rsp + 0x29]
shl edx, 0x18
add eax, edx
movd xmm2, eax
punpckldq xmm0, xmm2
movq qword [rbp + 4], xmm0
cmp byte [rbx + 0x5c], 0
jne 0x140026520
mov dword [rbx + 0x98], 0
cmp qword [rbx + 0x40], 0
je 0x1400264d8
mov rax, qword [rbx + 0x50]
add r8, qword [rbx + 0x48]
cmp r8, rax
jb 0x140026582
mov qword [rbx + 0x40], rax
mov eax, 1
mov dword [rbx + 0x98], 1
jmp 0x140025dd1
movdqu xmm3, xmmword [rax]
movaps xmmword [rsp + 0x20], xmm3
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x30], rcx
movzx ecx, word [rax + 0x18]
mov word [rsp + 0x38], cx
movzx eax, byte [rax + 0x1a]
mov qword [rbx + 0x40], rdx
mov byte [rsp + 0x3a], al
jmp 0x140025dc1
mov rcx, qword [rcx + 0x30]
call sym.ftell
sub eax, dword [rbx + 0x38]
mov dword [rbp], eax
mov rax, qword [rbx + 0x40]
test rax, rax
jne 0x140025da9
nop dword [rax]
mov r9, qword [rbx + 0x30]
lea rcx, [rsp + 0x20]
mov r8d, 1
mov edx, 0x1b
call sym.fread
cmp rax, 1
jne 0x140025db7
jmp 0x140025dc1
mov edx, r8d
add edx, dword [rbx + 0x38]
jb 0x1400265bf
test r8d, r8d
js 0x1400265bf
mov rcx, qword [rbx + 0x30]
xor r8d, r8d
call sym.fseek
test eax, eax
je 0x140026520
mov edx, dword [rbx + 0x38]
mov rcx, qword [rbx + 0x30]
mov r8d, 2
mov dword [rbx + 0x98], 1
call sym.fseek
nop dword [rax]
mov eax, 1
jmp 0x140025dd1
lea rdi, [rsp + 0x40]
cmp edx, 8
jb 0x14002654a
mov rcx, rdx
mov rsi, rax
shr rcx, 3
rep movsq qword [rdi], qword [rsi]
mov rax, rsi
xor ecx, ecx
test dl, 4
je 0x14002655a
mov ecx, dword [rax]
mov dword [rdi], ecx
mov ecx, 4
test dl, 2
je 0x14002656d
movzx r10d, word [rax + rcx]
mov word [rdi + rcx], r10w
add rcx, 2
and edx, 1
je 0x140026579
movzx eax, byte [rax + rcx]
mov byte [rdi + rcx], al
mov qword [rbx + 0x40], r9
jmp 0x140025e1b
mov qword [rbx + 0x40], r8
mov eax, 1
jmp 0x140025dd1
mov r9, qword [rbx + 0x30]
lea rcx, [rsp + 0x40]
mov r8d, 1
call sym.fread
cmp rax, 1
je 0x1400265b4
mov dword [rbx + 0x98], 1
movzx r8d, byte [rsp + 0x3a]
jmp 0x140025e1b
mov dword [rbx + 0x98], 1
mov edx, 0x7fffffff
jmp 0x1400264ed
xor eax, eax
jmp 0x1400263d0
xor eax, eax
xor edx, edx
jmp 0x14002627f