Function at 0x62987908
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 eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x74]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x38], 0
mov dword [esp + 0x14], eax
lea eax, [ebx + 0x70]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x58]
shr eax, 0xe
lea ecx, [edx + 0x50028]
and eax, 1
mov dword [esp + 0x3c], 0
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 0x629879bb
mov edi, dword [ebx + 8]
mov ebp, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], ebp
sar eax, 0x1f
mov dword [esp], edi
mov dword [esp + 0xc], eax
call dbg.__divdi3
mov dword [esp + 0x38], eax
mov eax, edi
imul ebp, dword [esp + 0x7c]
mov dword [esp + 0x3c], edx
mul dword [esp + 0x7c]
add edx, ebp
add eax, dword [ebx]
adc edx, dword [ebx + 4]
cmp dword [ebx + 0x4c], edx
jae 0x629879bb
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 0x62987af5
dec dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
lea ebp, [edi + eax]
jne 0x62987a18
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
test edi, edi
jle 0x62987a6e
mov eax, dword [esp + 0x34]
mov esi, 4
add eax, ebp
dec edi
movsx eax, byte [eax]
shl eax, 8
cdq
idiv esi
mov dword [esp], eax
call method.OpenMPT::Paula::State.InputSample_short_
push eax
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_
jmp 0x62987a28
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 0x62987ab8
mov eax, dword [esp + 0x34]
add eax, ebp
mov ebp, 4
movsx eax, byte [eax]
shl eax, 8
cdq
idiv ebp
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]
mov esi, dword [esp + 0x10]
imul edx, eax
imul eax, dword [esp + 0x1c]
add dword [esi], edx
lea edx, [esp + 0x28]
add dword [esi + 4], eax
lea eax, [esp + 0x20]
add dword [esp + 0x10], 8
call method.OpenMPT::SamplePosition.operator_OpenMPT::SamplePosition_const___clone_.isra.0_
jmp 0x629879e4
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