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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebp, dword [esp + 0x60]
fld qword [esp + 0x64]
cmp dword [ebp + 0x58], 1
jle 0x6471b2d3
mov eax, dword [ebp + 4]
test eax, eax
je 0x6471b43d
fldz
fld st(0)
fucomp st(2)
fnstsw ax
test ah, 0x45
je 0x6471b2d7
mov edx, dword [ebp + 0x34]
mov dword [esp + 0x20], edx
cmp edx, 0
jle 0x6471b41d
mov esi, 8
xor ecx, ecx
xor ebx, ebx
xor edx, edx
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x30], ebp
nop
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
mov edi, dword [eax + esi]
mov ebp, dword [eax + esi + 4]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebp
fild qword [esp + 0x38]
mov esi, edx
shl esi, 5
mov eax, dword [esp + 0x24]
fidiv dword [eax + esi + 8]
fadd st(1)
fucom st(2)
fnstsw ax
test ah, 0x45
je 0x6471b2f4
fstp st(1)
add ecx, edi
adc ebx, ebp
inc edx
add dword [esp + 0x10], 0x10
cmp edx, dword [esp + 0x20]
jne 0x6471b284
fstp st(0)
fstp st(0)
jmp 0x6471b2e4
fstp st(0)
jmp 0x6471b2e4
fstp st(0)
fstp st(0)
jmp 0x6471b2e4
fstp st(0)
fstp st(0)
lea esi, [esi]
mov eax, 0xffffff7d
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
fstp st(0)
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
fild qword [esp + 0x38]
fxch st(1)
fsubp st(2)
fxch st(1)
mov eax, dword [esp + 0x28]
shl eax, 5
fimul dword [esi + eax + 8]
faddp st(1)
fnstcw word [esp + 0x36]
mov ax, word [esp + 0x36]
mov ah, 0xc
mov word [esp + 0x34], ax
fldcw word [esp + 0x34]
fistp qword [esp + 0x38]
fldcw word [esp + 0x36]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp], ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
call sym.allegro_5.0.10_monolith_mt.dll_ov_pcm_seek_page
test eax, eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
js 0x6471b2e9
cmp dword [ebp + 0x58], 3
jg 0x6471b3f0
jne 0x6471b449
mov eax, dword [ebp + 4]
test eax, eax
je 0x6471b400
mov eax, dword [ebp + 0x60]
shl eax, 5
add eax, dword [ebp + 0x48]
mov dword [esp + 4], eax
lea ebx, [ebp + 0x1e0]
mov dword [esp], ebx
call sym.allegro_5.0.10_monolith_mt.dll_vorbis_synthesis_init
test eax, eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
jne 0x6471b453
lea eax, [ebp + 0x250]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
call sym.allegro_5.0.10_monolith_mt.dll_vorbis_block_init
mov dword [ebp + 0x58], 4
mov dword [ebp + 0x68], 0
mov dword [ebp + 0x6c], 0
mov dword [ebp + 0x70], 0
mov dword [ebp + 0x74], 0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, ebp
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.64718c98
mov eax, dword [ebp + 0x48]
mov dword [esp + 4], eax
lea ebx, [ebp + 0x1e0]
mov dword [esp], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
jmp 0x6471b396
je 0x6471b2dd
mov dword [esp + 0x28], 0
xor ecx, ecx
xor ebx, ebx
mov edx, dword [ebp + 0x48]
mov dword [esp + 0x24], edx
mov esi, edx
jmp 0x6471b2fe
fstp st(0)
mov eax, 0xffffff76
jmp 0x6471b2e9
mov eax, 0xffffff7f
jmp 0x6471b2e9
mov eax, 0xffffff77
jmp 0x6471b2e9