Function at 0x62990798
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 0x629907e6
cmp edx, 0xd0000000
mov esi, eax
sbb esi, 0xfffffffe
jge 0x629907ff
cmp edx, 0x80000000
sbb eax, 0xfffffffe
jmp 0x629907ef
mov ebp, 0x80000000
cmp ebp, edx
sbb edi, eax
lea eax, [ecx + 0x40028]
jl 0x62990805
lea eax, [ecx + 0x30028]
jmp 0x62990805
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 edx, dword [esp + 0x34]
je 0x62990991
shr eax, 0x14
mov esi, dword [esp + 0x28]
shl eax, 4
add eax, dword [esp + 8]
lea ecx, [esi + edx*4]
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, word [ecx - 0xc]
imul eax, ebp
mov edx, eax
movsx eax, word [ecx - 8]
imul eax, edi
add eax, edx
movsx edx, word [ecx - 4]
imul edx, dword [esp + 0x10]
add eax, edx
movsx edx, word [ecx]
imul edx, dword [esp + 0x14]
add edx, eax
movsx eax, word [ecx + 4]
imul eax, dword [esp + 0x18]
add edx, eax
movsx eax, word [ecx + 8]
imul eax, dword [esp + 0x1c]
add eax, edx
movsx edx, word [ecx + 0xc]
imul edx, esi
add edx, eax
mov esi, 0x8000
movsx eax, word [ecx + 0x10]
imul eax, dword [esp + 0x24]
add eax, edx
cdq
idiv esi
movsx edx, word [ecx - 0xa]
imul ebp, edx
movsx edx, word [ecx - 6]
mov dword [esp + 0x2c], eax
movsx eax, word [ecx - 2]
imul edi, edx
imul eax, dword [esp + 0x10]
add edi, ebp
movsx ebp, word [ecx + 2]
lea edx, [edi + eax]
imul ebp, dword [esp + 0x14]
movsx edi, word [ecx + 6]
imul edi, dword [esp + 0x18]
lea eax, [edx + ebp]
movsx edx, word [ecx + 0xa]
lea ebp, [eax + edi]
imul edx, dword [esp + 0x1c]
movsx eax, word [ecx + 0xe]
imul eax, dword [esp + 0x20]
lea edi, [ebp + edx]
lea edx, [edi + eax]
mov edi, dword [ebx + 0x20]
movsx eax, word [ecx + 0x12]
imul eax, dword [esp + 0x24]
add eax, edx
mov ecx, dword [ebx + 0x1c]
cdq
idiv esi
add ecx, dword [esp + 0x48]
add edi, dword [esp + 0x4c]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edi
sar ecx, 0xc
mov esi, dword [esp + 0xc]
sar edi, 0xc
lea edx, [esp + 0x38]
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 0x62990836
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__short__16u___.MixStereoRamp____clone_.isra.0_
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret