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

Disassembly:
push ebp
mov ebp, 0x30000000
push edi
mov edi, 1
push esi
mov esi, edi
push ebx
sub esp, 0x5c
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x74]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 8]
mov dword [esp + 0x28], eax
cmp ebp, edx
mov eax, dword [ebx + 0xc]
sbb esi, eax
jl 0x6298d7ee
cmp edx, 0xd0000000
mov esi, eax
sbb esi, 0xfffffffe
jge 0x6298d807
cmp edx, 0x80000000
sbb eax, 0xfffffffe
jmp 0x6298d7f7
mov ebp, 0x80000000
cmp ebp, edx
sbb edi, eax
lea eax, [ecx + 0x40028]
jl 0x6298d80d
lea eax, [ecx + 0x30028]
jmp 0x6298d80d
lea eax, [ecx + 0x20028]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x28]
mov edx, dword [ebx + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [ebx]
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
dec dword [esp + 0x7c]
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x7c], 0xffffffff
mov ecx, dword [esp + 0x34]
je 0x6298d99e
shr eax, 0x14
add ecx, ecx
shl eax, 4
add ecx, dword [esp + 0x28]
add eax, dword [esp + 8]
movsx esi, word [eax + 4]
mov dword [esp + 0x10], esi
movsx esi, word [eax + 6]
mov dword [esp + 0x14], esi
movsx esi, word [eax + 8]
mov dword [esp + 0x18], esi
movsx esi, word [eax + 0xa]
movsx ebp, word [eax]
movsx edi, word [eax + 2]
mov dword [esp + 0x1c], esi
movsx esi, word [eax + 0xc]
movsx eax, word [eax + 0xe]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], esi
movsx eax, byte [ecx - 4]
imul eax, edi
mov edx, eax
movsx eax, byte [ecx - 6]
imul eax, ebp
add eax, edx
movsx edx, byte [ecx - 2]
imul edx, dword [esp + 0x10]
add eax, edx
movsx edx, byte [ecx]
imul edx, dword [esp + 0x14]
add edx, eax
movsx eax, byte [ecx + 2]
imul eax, dword [esp + 0x18]
add edx, eax
movsx eax, byte [ecx + 4]
imul eax, dword [esp + 0x1c]
add eax, edx
movsx edx, byte [ecx + 6]
imul edx, esi
add edx, eax
mov esi, 0x8000
movsx eax, byte [ecx + 8]
imul eax, dword [esp + 0x24]
add eax, edx
shl eax, 8
cdq
idiv esi
movsx edx, byte [ecx - 5]
imul ebp, edx
movsx edx, byte [ecx - 3]
mov dword [esp + 0x2c], eax
movsx eax, byte [ecx - 1]
imul edi, edx
imul eax, dword [esp + 0x10]
add edi, ebp
movsx ebp, byte [ecx + 1]
lea edx, [edi + eax]
imul ebp, dword [esp + 0x14]
movsx edi, byte [ecx + 3]
imul edi, dword [esp + 0x18]
lea eax, [edx + ebp]
movsx edx, byte [ecx + 5]
lea ebp, [eax + edi]
imul edx, dword [esp + 0x1c]
movsx eax, byte [ecx + 7]
imul eax, dword [esp + 0x20]
lea edi, [ebp + edx]
lea edx, [edi + eax]
mov edi, dword [ebx + 0x20]
movsx eax, byte [ecx + 9]
imul eax, dword [esp + 0x24]
mov ecx, dword [ebx + 0x1c]
add eax, edx
shl eax, 8
add ecx, dword [esp + 0x48]
add edi, dword [esp + 0x4c]
mov dword [esp + 0x48], ecx
cdq
idiv esi
mov dword [esp + 0x4c], edi
mov esi, dword [esp + 0xc]
sar ecx, 0xc
lea edx, [esp + 0x38]
sar edi, 0xc
imul edi, eax
imul ecx, dword [esp + 0x2c]
add dword [esi + 4], edi
lea eax, [esp + 0x30]
add dword [esi], ecx
add dword [esp + 0xc], 8
call method.OpenMPT::SamplePosition.operator_OpenMPT::SamplePosition_const___clone_.isra.0_
jmp 0x6298d83e
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [ebx], eax
mov dword [ebx + 4], edx
lea ecx, [esp + 0x44]
call method.OpenMPT::MixStereoRamp_OpenMPT::IntToIntTraits_2__2__int__signed_char__16u___.MixStereoRamp____clone_.isra.0_
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret