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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x38], 0
mov eax, dword [ebx + 0x10]
lea ecx, [edx + 0x50028]
mov dword [esp + 0x14], eax
lea eax, [ebx + 0x70]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x58]
shr eax, 0xe
mov dword [esp + 0x3c], 0
and eax, 1
mov dword [esp + 4], eax
mov eax, dword [edx + 0x14]
mov dword [esp], eax
call method.OpenMPT::Paula::BlepTables.GetAmigaTable_OpenMPT::Resampling::AmigaFilter__bool__const
push edx
push edx
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x80]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 0
test eax, eax
je 0x6298f65b
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
sar eax, 0x1f
mov dword [esp], esi
mov dword [esp + 0xc], eax
call dbg.__divdi3
mov dword [esp + 0x38], eax
mov eax, esi
imul edi, dword [esp + 0x7c]
mov dword [esp + 0x3c], edx
mul dword [esp + 0x7c]
add edx, edi
add eax, dword [ebx]
adc edx, dword [ebx + 4]
cmp dword [ebx + 0x4c], edx
jae 0x6298f65b
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 4]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
dec dword [esp + 0x7c]
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x7c], 0xffffffff
mov eax, dword [esp + 0x24]
je 0x6298f7a0
dec dword [esp + 0x4c]
mov esi, dword [esp + 0x14]
lea esi, [esi + eax*4]
jne 0x6298f6b8
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x48]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x40]
jle 0x6298f71b
mov edx, dword [esp + 0x34]
mov edi, 8
movsx eax, word [esi + edx*4 + 2]
movsx edx, word [esi + edx*4]
add eax, edx
cdq
idiv edi
mov dword [esp], eax
call method.OpenMPT::Paula::State.InputSample_short_
push edi
mov ecx, dword [esp + 0x40]
mov dword [esp], 4
call method.OpenMPT::Paula::State.Clock_int_
push eax
lea edx, [esp + 0x38]
lea eax, [esp + 0x30]
call method.OpenMPT::SamplePosition.operator_OpenMPT::SamplePosition_const___clone_.isra.0_
dec dword [esp + 0x10]
jmp 0x6298f6cc
lea edx, [ecx + 8]
mov eax, ecx
call method.OpenMPT::SamplePosition.operator_OpenMPT::SamplePosition_const___clone_.isra.0_
mov ecx, dword [esp + 0x40]
mov edi, dword [ecx + 4]
test edi, edi
je 0x6298f768
mov edx, dword [esp + 0x34]
movsx eax, word [esi + edx*4 + 2]
movsx edx, word [esi + edx*4]
add eax, edx
mov esi, 8
cdq
idiv esi
mov dword [esp], eax
call method.OpenMPT::Paula::State.InputSample_short_
push ecx
mov dword [esp], edi
mov ecx, dword [esp + 0x40]
call method.OpenMPT::Paula::State.Clock_int_
push esi
mov eax, dword [esp + 0x40]
mov dword [eax + 4], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov dword [esp], eax
call method.OpenMPT::Paula::State.OutputSample_std::array_int__2048u__const_
push edx
mov edx, dword [esp + 0x18]
imul edx, eax
imul eax, dword [esp + 0x1c]
add dword [ebp], edx
lea edx, [esp + 0x28]
add dword [ebp + 4], eax
lea eax, [esp + 0x20]
add ebp, 8
call method.OpenMPT::SamplePosition.operator_OpenMPT::SamplePosition_const___clone_.isra.0_
jmp 0x6298f684
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [ebx], eax
mov dword [ebx + 4], edx
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret