Function at 0x1400276a0
Capabilities:
Read file on windows

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov r12d, dword [rcx + 0x374]
mov rbx, rcx
test r12d, r12d
jne 0x140027900
mov r13, qword [rcx + 0x40]
test r13, r13
je 0x140027940
sub r13d, dword [rcx + 0x48]
mov ecx, dword [rbx + 0x58]
mov eax, dword [rbx + 0x60]
lea edx, [rcx - 0x10000]
cmp eax, edx
cmovae rdx, rax
cmp ecx, 0xffff
cmova rax, rdx
cmp byte [rbx + 0x5c], 0
jne 0x140027728
mov dword [rbx + 0x98], 0
cmp qword [rbx + 0x40], 0
je 0x140027a18
mov rdx, qword [rbx + 0x50]
add rax, qword [rbx + 0x48]
cmp rax, rdx
jb 0x140027958
mov qword [rbx + 0x40], rdx
mov dword [rbx + 0x98], 1
lea rbp, [rsp + 0x24]
lea rdi, [rsp + 0x20]
mov rcx, rbx
mov r8, rbp
mov rdx, rdi
call sym.vorbis_find_page
test eax, eax
je 0x140027920
movzx edx, byte [rbx + 0x5c]
mov r14d, dword [rsp + 0x24]
test dl, dl
jne 0x1400279f8
mov rax, qword [rbx + 0x40]
test rax, rax
je 0x1400277f0
mov esi, eax
sub esi, dword [rbx + 0x48]
test r14d, r14d
je 0x1400277ba
jmp 0x140027818
mov qword [rbx + 0x40], rdx
mov dword [rbx + 0x98], 1
mov rdx, rdi
mov r8, rbp
mov rcx, rbx
call sym.vorbis_find_page
movzx edx, byte [rbx + 0x5c]
test eax, eax
je 0x140027810
xor esi, esi
test dl, dl
jne 0x1400277b2
mov rsi, qword [rbx + 0x40]
test rsi, rsi
je 0x1400279c0
sub esi, dword [rbx + 0x48]
mov eax, dword [rsp + 0x24]
test eax, eax
jne 0x140027810
mov eax, dword [rsp + 0x20]
test dl, dl
jne 0x140027786
mov dword [rbx + 0x98], 0
cmp qword [rbx + 0x40], 0
je 0x140027978
mov rdx, qword [rbx + 0x50]
add rax, qword [rbx + 0x48]
cmp rax, rdx
jae 0x140027778
mov qword [rbx + 0x40], rax
jmp 0x140027786
mov rcx, qword [rbx + 0x30]
call sym.ftell
sub eax, dword [rbx + 0x38]
movzx edx, byte [rbx + 0x5c]
mov esi, eax
test r14d, r14d
je 0x1400277ba
nop word [rax + rax]
mov rax, qword [rbx + 0x40]
test dl, dl
jne 0x14002784c
mov dword [rbx + 0x98], 0
test rax, rax
je 0x140027b10
mov rax, qword [rbx + 0x50]
mov edx, esi
add rdx, qword [rbx + 0x48]
cmp rdx, rax
jb 0x140027ad0
mov qword [rbx + 0x40], rax
mov dword [rbx + 0x98], 1
test rax, rax
je 0x140027b50
lea rdx, [rax + 6]
cmp rdx, qword [rbx + 0x50]
jbe 0x140027ab0
mov dword [rbx + 0x98], 1
mov rcx, rbx
call sym.get32
mov rcx, rbx
mov edi, eax
call sym.get32
mov edx, edi
and edx, eax
cmp edx, 0xffffffff
je 0x140027920
test eax, eax
movd xmm1, dword [rsp + 0x20]
mov eax, 0xfffffffe
movd xmm0, esi
cmovne edi, eax
cmp byte [rbx + 0x5c], 0
punpckldq xmm0, xmm1
mov dword [rbx + 0x374], edi
mov r12d, edi
mov dword [rbx + 0x78], edi
movq qword [rbx + 0x70], xmm0
jne 0x140027900
mov dword [rbx + 0x98], 0
cmp qword [rbx + 0x40], 0
je 0x140027a60
mov rax, qword [rbx + 0x50]
add r13, qword [rbx + 0x48]
cmp r13, rax
jb 0x140027968
mov qword [rbx + 0x40], rax
mov r12d, dword [rbx + 0x374]
mov dword [rbx + 0x98], 1
nop word cs:[rax + rax]
xor eax, eax
cmp r12d, 0xffffffff
cmove r12d, eax
mov eax, r12d
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov dword [rbx + 0x9c], 0x24
cmp byte [rbx + 0x5c], 0
mov dword [rbx + 0x374], 0xffffffff
je 0x1400278bb
jmp 0x14002790a
mov rcx, qword [rcx + 0x30]
call sym.ftell
sub eax, dword [rbx + 0x38]
mov r13d, eax
jmp 0x1400276d2
mov qword [rbx + 0x40], rax
jmp 0x140027728
mov qword [rbx + 0x40], r13
mov r12d, dword [rbx + 0x374]
jmp 0x140027900
mov edx, eax
add edx, dword [rbx + 0x38]
jb 0x1400279e0
test eax, eax
js 0x1400279e0
mov rcx, qword [rbx + 0x30]
xor r8d, r8d
call sym.fseek
test eax, eax
je 0x140027786
mov edx, dword [rbx + 0x38]
mov rcx, qword [rbx + 0x30]
mov r8d, 2
mov dword [rbx + 0x98], 1
call sym.fseek
jmp 0x140027786
mov rcx, qword [rbx + 0x30]
call sym.ftell
sub eax, dword [rbx + 0x38]
movzx edx, byte [rbx + 0x5c]
mov esi, eax
jmp 0x1400277b2
mov dword [rbx + 0x98], 1
mov edx, 0x7fffffff
jmp 0x140027983
xor esi, esi
test r14d, r14d
je 0x1400277ba
nop dword [rax + rax]
mov rax, qword [rbx + 0x40]
jmp 0x14002784c
mov edx, eax
add edx, dword [rbx + 0x38]
jb 0x140027ae0
test eax, eax
js 0x140027ae0
mov rcx, qword [rbx + 0x30]
xor r8d, r8d
call sym.fseek
test eax, eax
je 0x140027728
mov edx, dword [rbx + 0x38]
mov rcx, qword [rbx + 0x30]
mov r8d, 2
mov dword [rbx + 0x98], 1
call sym.fseek
jmp 0x140027728
mov edx, r13d
add edx, dword [rbx + 0x38]
jb 0x140027af8
test r13d, r13d
js 0x140027af8
mov rcx, qword [rbx + 0x30]
xor r8d, r8d
call sym.fseek
test eax, eax
je 0x140027aa1
mov edx, dword [rbx + 0x38]
mov rcx, qword [rbx + 0x30]
mov r8d, 2
mov dword [rbx + 0x98], 1
call sym.fseek
mov r12d, dword [rbx + 0x374]
jmp 0x140027900
mov ecx, dword [rax]
mov dword [rsp + 0x2a], ecx
movzx eax, word [rax + 4]
mov qword [rbx + 0x40], rdx
mov word [rsp + 0x2e], ax
jmp 0x14002786d
mov qword [rbx + 0x40], rdx
mov rax, rdx
jmp 0x14002784c
mov dword [rbx + 0x98], 1
mov edx, 0x7fffffff
jmp 0x140027a2b
mov dword [rbx + 0x98], 1
mov edx, 0x7fffffff
jmp 0x140027a75
mov edx, esi
add edx, dword [rbx + 0x38]
jb 0x140027b78
test esi, esi
js 0x140027b78
mov rcx, qword [rbx + 0x30]
xor r8d, r8d
call sym.fseek
test eax, eax
je 0x140027a08
mov edx, dword [rbx + 0x38]
mov rcx, qword [rbx + 0x30]
mov r8d, 2
mov dword [rbx + 0x98], 1
call sym.fseek
jmp 0x140027a08
mov r9, qword [rbx + 0x30]
lea rcx, [rsp + 0x2a]
mov r8d, 1
mov edx, 6
call sym.fread
cmp rax, 1
jne 0x140027863
jmp 0x14002786d
mov dword [rbx + 0x98], 1
mov edx, 0x7fffffff
jmp 0x140027b1b