Function at 0x4b9a20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x4ba0c9
push rbp
mov rbp, rsp
sub rsp, 0xa8
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rbx
mov ecx, 0x20
mov rax, rbx
mov ebx, 0x18
call sym.github.com_jfreymuth_vorbis._bitReader_.read
nop dword [rax]
cmp eax, 0x564342
jne 0x4b9b99
mov rax, qword [rsp + 0xc0]
mov ebx, 0x10
mov ecx, 0x20
nop dword [rax]
call sym.github.com_jfreymuth_vorbis._bitReader_.read
mov rdx, qword [rsp + 0xb8]
mov dword [rdx], eax
nop
mov rax, qword [rsp + 0xc0]
mov ebx, 0x18
mov ecx, 0x20
call sym.github.com_jfreymuth_vorbis._bitReader_.read
mov dword [rsp + 0x24], eax
lea edx, [rax + rax]
lea edx, [rdx - 2]
mov ecx, edx
mov qword [rsp + 0x60], rcx
shr edx, 1
mov dword [rsp + 0x44], edx
mov rbx, rcx
lea rax, [0x004d1900]
call sym.runtime.makeslice
mov qword [rsp + 0x70], rax
mov ebx, dword [rsp + 0x44]
mov ecx, ebx
lea rax, [0x004d1800]
nop
call sym.runtime.makeslice
movups xmmword [rsp + 0x78], xmm15
movups xmmword [rsp + 0x88], xmm15
movups xmmword [rsp + 0x98], xmm15
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x88], rdx
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x78], rdx
mov edx, dword [rsp + 0x44]
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0x90], rax
nop
mov rax, qword [rsp + 0xc0]
mov ebx, 1
mov ecx, 8
call sym.github.com_jfreymuth_vorbis._bitReader_.read
cmp al, 1
jne 0x4b9b79
mov rax, qword [rsp + 0xc0]
mov ebx, 5
mov ecx, 8
call sym.github.com_jfreymuth_vorbis._bitReader_.read
lea edx, [rax + 1]
mov esi, dword [rsp + 0x24]
xor eax, eax
jmp 0x4ba049
nop
mov rax, qword [rsp + 0xc0]
mov ebx, 1
mov ecx, 8
call sym.github.com_jfreymuth_vorbis._bitReader_.read
mov dword [rsp + 0x44], eax
xor ecx, ecx
jmp 0x4b9bd4
lea rax, [0x004db440]
call sym.runtime.newobject
mov qword [rax + 8], 0x16
lea rcx, [0x004f938d]
mov qword [rax], rcx
mov rbx, rax
lea rax, [0x00522058]
add rsp, 0xa8
pop rbp
ret
mov ecx, dword [rsp + 0x30]
inc ecx
mov eax, dword [rsp + 0x44]
mov edx, dword [rsp + 0x24]
cmp edx, ecx
jbe 0x4b9c2a
mov dword [rsp + 0x30], ecx
cmp al, 1
jne 0x4b9bff
mov rax, qword [rsp + 0xc0]
mov ebx, 1
mov ecx, 8
call sym.github.com_jfreymuth_vorbis._bitReader_.read
cmp al, 1
jne 0x4b9bca
mov rax, qword [rsp + 0xc0]
mov ebx, 5
mov ecx, 8
call sym.github.com_jfreymuth_vorbis._bitReader_.read
xor ebx, ebx
mov ecx, dword [rsp + 0x30]
mov edi, eax
lea rax, [rsp + 0x78]
call sym.github.com_jfreymuth_vorbis._huffmanBuilder_.put
jmp 0x4b9bca
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x88]
mov r8, qword [rsp + 0x78]
mov r9, qword [rsp + 0xb8]
mov qword [r9 + 0x10], rsi
mov qword [r9 + 0x18], rdi
cmp dword [0x00746ab0], 0
je 0x4b9c68
call sym.runtime.gcWriteBarrier2
mov qword [r11], r8
mov rsi, qword [r9 + 8]
mov qword [r11 + 8], rsi
mov qword [r9 + 8], r8
nop
mov rax, qword [rsp + 0xc0]
mov ebx, 4
mov ecx, 8
nop
call sym.github.com_jfreymuth_vorbis._bitReader_.read
test al, al
je 0x4b9dfe
cmp al, 2
ja 0x4b9dcd
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0xc0]
mov ebx, 0x20
mov rcx, rbx
call sym.github.com_jfreymuth_vorbis._bitReader_.read
call sym.github.com_jfreymuth_vorbis.float32Unpack
movss dword [rsp + 0x28], xmm0
mov rax, qword [rsp + 0xc0]
mov ebx, 0x20
mov rcx, rbx
call sym.github.com_jfreymuth_vorbis._bitReader_.read
call sym.github.com_jfreymuth_vorbis.float32Unpack
movss dword [rsp + 0x34], xmm0
mov rax, qword [rsp + 0xc0]
mov ebx, 4
mov ecx, 8
call sym.github.com_jfreymuth_vorbis._bitReader_.read
mov dword [rsp + 0x40], eax
nop
mov ebx, 1
mov ecx, 8
mov rax, qword [rsp + 0xc0]
call sym.github.com_jfreymuth_vorbis._bitReader_.read
mov dword [rsp + 0x3c], eax
mov edx, dword [rsp + 0x44]
cmp dl, 1
jne 0x4b9d85
mov eax, dword [rsp + 0x24]
mov ecx, eax
mov rdx, qword [rsp + 0xb8]
mov ebx, dword [rdx]
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
xorps xmm2, xmm2
cvtsi2sd xmm2, rbx
movsd xmm1, qword [0x00521590]
divsd xmm1, xmm2
call sym.math.pow
movzx eax, byte [0x007467ed]
test eax, eax
je 0x4b9d60
roundsd xmm0, xmm0, 1
jmp 0x4b9d65
call sym.math.Floor
cvttsd2si rcx, xmm0
mov qword [rsp + 0x48], rcx
lea rax, [0x004d1900]
mov rbx, rcx
call sym.runtime.makeslice
mov rcx, qword [rsp + 0x48]
jmp 0x4b9db2
mov edx, dword [rsp + 0x24]
mov ecx, edx
mov rsi, qword [rsp + 0xb8]
mov ebx, dword [rsi]
imul rcx, rbx
mov qword [rsp + 0x50], rcx
lea rax, [0x004d1900]
mov rbx, rcx
call sym.runtime.makeslice
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x50], rcx
mov edx, dword [rsp + 0x40]
inc edx
mov byte [rsp + 0x1e], dl
xor ebx, ebx
jmp 0x4b9e50
lea rax, [0x004db440]
call sym.runtime.newobject
mov qword [rax + 8], 0x16
lea rcx, [0x004f938d]
mov qword [rax], rcx
mov rbx, rax
lea rax, [0x00522058]
add rsp, 0xa8
pop rbp
ret
xor eax, eax
xor ebx, ebx
add rsp, 0xa8
pop rbp
ret
mov qword [rsp + 0x58], rbx
movzx esi, dl
lea rdi, [rbx + 1]
mov qword [rsp + 0x60], rdi
mov rax, qword [rsp + 0xc0]
mov ecx, 0x20
mov rbx, rsi
call sym.github.com_jfreymuth_vorbis._bitReader_.read
mov rdx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x68]
mov dword [rsi + rdx*4], eax
mov rax, rsi
mov rcx, qword [rsp + 0x50]
movzx edx, byte [rsp + 0x1e]
mov rbx, qword [rsp + 0x60]
cmp rcx, rbx
jg 0x4b9e0b
mov rdx, qword [rsp + 0xb8]
mov esi, dword [rdx]
mov edi, dword [rsp + 0x24]
imul esi, edi
mov ecx, esi
mov qword [rsp + 0x60], rcx
lea rax, [0x004d1b00]
mov rbx, rcx
call sym.runtime.makeslice
mov rdx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0xb8]
mov qword [rsi + 0x28], rdx
mov qword [rsi + 0x30], rdx
cmp dword [0x00746ab0], 0
je 0x4b9eaa
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rdx, qword [rsi + 0x20]
mov qword [r11 + 8], rdx
mov qword [rsi + 0x20], rax
movss xmm0, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x50]
movss xmm1, dword [rsp + 0x28]
mov rdx, qword [rsp + 0x68]
mov edi, dword [rsp + 0x24]
mov r8d, dword [rsp + 0x3c]
mov r9d, dword [rsp + 0x44]
xor eax, eax
jmp 0x4b9ed9
inc rax
mov r10d, edi
nop dword [rax]
cmp rax, r10
jge 0x4b9f0c
mov r10d, dword [rsi]
imul r10, rax
cmp r9b, 1
jne 0x4b9f05
xor ebx, ebx
mov r11d, 1
xorps xmm2, xmm2
nop dword [rax]
jmp 0x4b9f9f
xor ebx, ebx
xorps xmm2, xmm2
jmp 0x4b9f1c
xor eax, eax
xor ebx, ebx
add rsp, 0xa8
pop rbp
ret
inc rbx
mov r11d, dword [rsi]
nop
cmp rbx, r11
jge 0x4b9ed6
lea r11, [rbx + r10]
cmp rcx, r11
jbe 0x4b9f8a
mov r12, qword [rsi + 0x28]
mov r13d, dword [rdx + r11*4]
xorps xmm3, xmm3
cvtsi2ss xmm3, r13
mulss xmm3, xmm0
addss xmm3, xmm1
addss xmm3, xmm2
cmp r12, r11
jbe 0x4b9f7f
mov r12, qword [rsi + 0x20]
movss dword [r12 + r11*4], xmm3
cmp r8b, 1
jne 0x4b9f19
mov r12, qword [rsi + 0x28]
cmp r12, r11
jbe 0x4b9f74
mov r12, qword [rsi + 0x20]
movss xmm2, dword [r12 + r11*4]
jmp 0x4b9f19
mov rax, r11
mov rcx, r12
call sym.runtime.panicIndex
mov rax, r11
mov rcx, r12
call sym.runtime.panicIndex
mov rax, r11
call sym.runtime.panicIndex
inc rbx
imul r11, rcx
mov rax, r12
mov rdx, r13
mov r12d, dword [rsi]
cmp rbx, r12
jge 0x4b9ed6
test r11, r11
je 0x4ba035
mov r12, rax
mov r13, rdx
cqo
idiv r11
nop
test rcx, rcx
je 0x4ba035
cqo
idiv rcx
lea rax, [rbx + r10]
cmp rdx, rcx
jae 0x4ba02d
mov r15, qword [rsi + 0x28]
mov edx, dword [r13 + rdx*4]
xorps xmm3, xmm3
cvtsi2ss xmm3, rdx
mulss xmm3, xmm0
addss xmm3, xmm1
addss xmm3, xmm2
cmp r15, rax
jbe 0x4ba025
mov rdx, qword [rsi + 0x20]
movss dword [rdx + rax*4], xmm3
nop
cmp r8b, 1
jne 0x4b9f92
mov rdx, qword [rsi + 0x28]
cmp rdx, rax
jbe 0x4ba01d
mov rdx, qword [rsi + 0x20]
movss xmm2, dword [rdx + rax*4]
jmp 0x4b9f92
mov rcx, rdx
call sym.runtime.panicIndex
mov rcx, r15
call sym.runtime.panicIndex
mov rax, rdx
call sym.runtime.panicIndex
call sym.runtime.panicdivide
movzx edx, byte [rsp + 0x1f]
inc edx
mov edi, dword [rsp + 0x24]
mov eax, esi
mov esi, edi
cmp esi, eax
jbe 0x4ba07c
mov edi, esi
sub esi, eax
xor ecx, ecx
jmp 0x4ba08b
mov dword [rsp + 0x38], eax
mov byte [rsp + 0x1f], dl
mov rax, qword [rsp + 0xc0]
mov rbx, rcx
mov ecx, 0x20
call sym.github.com_jfreymuth_vorbis._bitReader_.read
mov dword [rsp + 0x20], eax
mov ecx, dword [rsp + 0x38]
jmp 0x4ba0b8
mov edx, esi
nop
jmp 0x4b9c2a
inc rcx
sar rsi, 1
test rsi, rsi
jg 0x4ba085
jmp 0x4ba055
movzx edi, byte [rsp + 0x1f]
lea edx, [rdi - 1]
lea esi, [rcx + 1]
mov dword [rsp + 0x2c], esi
nop
lea rax, [rsp + 0x78]
xor ebx, ebx
mov edi, edx
call sym.github.com_jfreymuth_vorbis._huffmanBuilder_.put
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x2c]
mov edx, dword [rsp + 0x38]
lea esi, [rax + rdx]
nop
cmp ecx, esi
jb 0x4ba092
jmp 0x4ba03a
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp sym.github.com_jfreymuth_vorbis._codebook_.ReadFrom