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

Disassembly:
push ebp
xor edx, edx
mov ecx, 1
push edi
push esi
push ebx
sub esp, 0xbc
mov eax, dword [esp + 0xd0]
mov ebx, dword [esp + 0xd0]
mov dword [esp + 0x90], 1
mov eax, dword [eax + 8]
test eax, eax
cmovns edx, eax
mov dword [esp + 0x8c], edx
xor edx, edx
lea esi, [esi]
nop
movsx ebp, word [ebx + edx*4 + 0xc]
movzx edi, word [ebx + edx*4 + 0xe]
mov esi, edx
lea edx, [edx + 1]
imul ecx, ebp
mov eax, ebp
mov dword [esp + edx*4 + 0x90], ecx
cmp di, 1
jne 0x40fe00
mov edi, dword [esp + 0xd0]
mov dword [esp + 0x74], esi
movsx ebx, word [edi + edx*4 + 0xa]
mov edi, dword [esp + 0x74]
mov dword [esp + 0x50], ebx
test edi, edi
je 0x410022
lea esi, [esi]
mov ebx, dword [esp + 0xd0]
movsx edi, word [ebx + edi*4 + 0xa]
mov dword [esp + 0x78], edi
cmp ax, 4
je 0x4104a7
jg 0x410058
cmp ax, 2
je 0x4103a5
cmp ax, 3
jne 0x410735
mov eax, dword [esp + 0x74]
movzx ecx, byte [esp + 0x8c]
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + eax*4 + 0x90]
mov eax, dword [esp + 0xd0]
mov ebp, ebx
mov esi, dword [eax + 0x30]
lea eax, [edi*8]
mov dword [esp + 0x24], ebx
shl ebp, cl
mov dword [esp + 0x2c], eax
imul eax, ebp
mov dword [esp + 0x28], esi
fld dword [esi + eax + 4]
fstp dword [esp + 0x14]
test ebx, ebx
jle 0x40fff0
lea eax, [ebp*8]
mov dword [esp + 0x1c], 0
shl edi, 4
shl ebp, 4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x78]
mov esi, edi
shl eax, 3
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x20], eax
lea esi, [esi]
nop
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, edi
add eax, edi
mov edi, dword [esp + 0x50]
mov ebx, ecx
lea esi, [esi]
lea esi, [esi]
fld dword [eax]
fld dword [ecx]
add edx, 8
add eax, 8
fld dword [eax - 4]
fld dword [ecx + 4]
add ecx, dword [esp + 0x18]
fld st(3)
fmul st(3)
fld st(2)
fmul st(2)
fsubp st(1)
fxch st(4)
fmulp st(1)
fxch st(2)
fmulp st(1)
faddp st(1)
fld dword [edx + esi - 8]
fld dword [ebx]
fld dword [edx + esi - 4]
fld dword [ebx + 4]
add ebx, ebp
fld st(3)
fmul st(3)
fld st(2)
fmul st(2)
fsubp st(1)
fxch st(4)
fmulp st(1)
fxch st(2)
fmulp st(1)
faddp st(1)
fld st(3)
fadd st(2)
fld st(3)
fadd st(2)
fld dword [0x420410]
fld st(2)
fmul st(1)
fsubr dword [edx - 8]
fstp dword [eax - 8]
fmul st(1)
fsubr dword [edx - 4]
fstp dword [eax - 4]
fxch st(5)
fsubrp st(3)
fld dword [esp + 0x14]
fmul st(3), st(0)
fxch st(4)
fsubrp st(2)
fxch st(1)
fmulp st(3)
fadd dword [edx - 8]
fstp dword [edx - 8]
fxch st(2)
fadd dword [edx - 4]
fstp dword [edx - 4]
fld dword [eax - 8]
fadd st(1)
fstp dword [edx + esi - 8]
fld dword [eax - 4]
fsub st(2)
fstp dword [edx + esi - 4]
fsubr dword [eax - 8]
fstp dword [eax - 8]
fadd dword [eax - 4]
fstp dword [eax - 4]
sub edi, 1
jne 0x40ff20
add dword [esp + 0x1c], 1
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
add dword [esp + 0x20], ebx
cmp dword [esp + 0x24], eax
jne 0x40ff00
lea esi, [esi]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x50], eax
sub dword [esp + 0x74], 1
mov eax, dword [esp + 0x74]
cmp eax, 0xffffffff
je 0x410678
mov ebx, dword [esp + 0xd0]
mov edi, dword [esp + 0x74]
movzx eax, word [ebx + eax*4 + 0xc]
test edi, edi
jne 0x40fe48
cmp ax, 4
je 0x41049f
jg 0x410386
cmp ax, 2
je 0x41039d
cmp ax, 3
jne 0x410678
mov dword [esp + 0x78], 1
jmp 0x40fe7c
cmp ax, 5
jne 0x40fff0
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0xd0]
movzx ecx, byte [esp + 0x8c]
mov edi, dword [esp + eax*4 + 0x90]
mov esi, dword [ebx + 0x30]
mov ebx, dword [esp + 0x50]
mov eax, edi
mov dword [esp + 0x7c], edi
shl eax, cl
mov ecx, ebx
mov dword [esp + 0x88], esi
imul ecx, eax
shl ecx, 3
lea edx, [esi + ecx]
fld dword [edx]
fstp dword [esp + 0x34]
fld dword [edx + 4]
add edx, ecx
fstp dword [esp + 0x38]
fld dword [edx]
fstp dword [esp + 0x5c]
fld dword [edx + 4]
fstp dword [esp + 0x3c]
test edi, edi
jle 0x40fff0
lea edi, [ebx*8]
mov ebx, dword [esp + 0xd4]
lea edx, [eax + eax*2]
mov dword [esp + 0x70], 0
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x54], ebx
lea ebx, [edx*8]
shl edi, 3
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x84], edi
lea edi, [eax*8]
mov dword [esp + 0x68], edi
mov edi, eax
shl eax, 5
shl edi, 4
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edi
lea esi, [esi]
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x54]
add ebx, eax
lea ecx, [eax + ebx]
lea edx, [eax + ecx]
lea esi, [eax + edx]
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x410363
mov eax, dword [esp + 0x88]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x14], ebx
mov ebp, eax
mov dword [esp + 0x28], eax
mov edi, eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], eax
xor eax, eax
lea esi, [esi]
nop
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x14]
fld dword [ecx + eax*8]
fstp dword [esp + 0x18]
fld dword [ecx + eax*8 + 4]
fstp dword [esp + 0x1c]
fld dword [ebx + eax*8]
mov ebx, dword [esp + 0x30]
fld dword [ebx]
fld dword [ebp + eax*8 + 4]
fld dword [ebx + 4]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x58]
fld st(3)
fmul st(3)
fld st(2)
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x40]
fmulp st(3)
fmulp st(1)
faddp st(1)
fld dword [ebx + eax*8]
fld dword [ebp]
fld dword [ebx + eax*8 + 4]
fld dword [ebp + 4]
mov ebp, dword [esp + 0x28]
fld st(3)
fmul st(3)
fld st(2)
fmul st(2)
fsubp st(1)
fxch st(4)
fmulp st(1)
fxch st(2)
fmulp st(1)
faddp st(1)
fld dword [edx + eax*8]
fld dword [ebp]
fld dword [ebp + 4]
fld st(2)
fmul st(2)
fld dword [edx + eax*8 + 4]
fmul st(2)
fsubp st(1)
fxch st(3)
fmulp st(1)
fxch st(1)
fmul dword [edx + eax*8 + 4]
faddp st(1)
fld dword [esi + eax*8 + 4]
fld dword [esi + eax*8]
fmul dword [edi]
fld dword [edi + 4]
fmul st(2)
fsubp st(1)
fld dword [esi + eax*8]
fmul dword [edi + 4]
fxch st(2)
fmul dword [edi]
faddp st(2)
fld dword [esp + 0x40]
fadd st(1)
fstp dword [esp + 0x20]
fld st(6)
fadd st(2)
fstp dword [esp + 0x24]
fsubr dword [esp + 0x40]
fstp dword [esp + 0x40]
fsubp st(5)
fxch st(4)
fstp dword [esp + 0x44]
fld st(2)
fadd st(1)
fld st(2)
fadd st(5)
fxch st(4)
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x48]
fxch st(1)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x4c]
fld dword [esp + 0x20]
fld st(0)
fadd st(3)
fld dword [esp + 0x18]
fadd st(1), st(0)
fxch st(1)
fstp dword [ecx + eax*8]
fld dword [esp + 0x24]
fld st(0)
fadd st(4)
fadd dword [esp + 0x1c]
fstp dword [ecx + eax*8 + 4]
fld dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
fld st(0)
fmulp st(4)
fld dword [esp + 0x5c]
fld st(0)
fmul st(7)
faddp st(5)
fxch st(4)
faddp st(3)
fmulp st(1)
fld st(2)
fmul st(4)
faddp st(1)
fadd dword [esp + 0x1c]
fld dword [esp + 0x38]
fld dword [esp + 0x44]
fmul st(1)
fld dword [esp + 0x3c]
fmul dword [esp + 0x4c]
faddp st(1)
fld dword [esp + 0x40]
fmulp st(2)
fld dword [esp + 0x3c]
fmul dword [esp + 0x48]
faddp st(2)
fld st(3)
fsub st(1)
fstp dword [ecx + eax*8]
fld st(2)
fadd st(2)
fstp dword [ecx + eax*8 + 4]
faddp st(3)
fxch st(2)
fstp dword [esi + eax*8]
fsubrp st(1)
fstp dword [esi + eax*8 + 4]
fld dword [esp + 0x20]
fmul st(1)
fld dword [esp + 0x34]
fmul st(4), st(0)
fxch st(1)
faddp st(4)
fxch st(3)
fadd dword [esp + 0x18]
fld dword [esp + 0x24]
mov ecx, dword [esp + 0x68]
add edi, dword [esp + 0x60]
add dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x64]
add dword [esp + 0x2c], ecx
fmulp st(2)
fxch st(2)
mov ecx, dword [esp + 0x6c]
add dword [esp + 0x28], ecx
fmulp st(3)
faddp st(2)
fxch st(1)
fadd dword [esp + 0x1c]
fld dword [esp + 0x4c]
fld dword [esp + 0x38]
fmul st(1), st(0)
fld dword [esp + 0x44]
fld dword [esp + 0x3c]
fmul st(1), st(0)
fxch st(1)
fsubp st(3)
fld dword [esp + 0x40]
fmulp st(1)
fld dword [esp + 0x48]
fmulp st(2)
fsubrp st(1)
fld st(3)
fadd st(2)
fstp dword [ebx + eax*8]
fld st(2)
fadd st(1)
fstp dword [ebx + eax*8 + 4]
fxch st(3)
fsubrp st(1)
fstp dword [edx + eax*8]
fsubrp st(1)
fstp dword [edx + eax*8 + 4]
add eax, 1
cmp eax, dword [esp + 0x50]
jne 0x410160
add dword [esp + 0x70], 1
mov ebx, dword [esp + 0x84]
mov eax, dword [esp + 0x70]
add dword [esp + 0x54], ebx
cmp dword [esp + 0x7c], eax
jne 0x410118
jmp 0x40fff0
cmp ax, 5
jne 0x410678
mov dword [esp + 0x78], 1
jmp 0x41005e
mov dword [esp + 0x78], 1
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x50], 4
mov edx, dword [esp + eax*4 + 0x90]
jne 0x410719
mov eax, dword [esp + 0xd4]
xor ecx, ecx
test edx, edx
jle 0x40fff0
lea esi, [esi]
fld dword [eax + 0x20]
fld dword [eax + 0x24]
add ecx, 1
add eax, 0x40
fld dword [eax - 0x40]
fld st(0)
fsub st(3)
fstp dword [eax - 0x20]
fld dword [eax - 0x3c]
fld st(0)
fsub st(3)
fstp dword [eax - 0x1c]
fxch st(3)
faddp st(1)
fstp dword [eax - 0x40]
faddp st(1)
fstp dword [eax - 0x3c]
fld dword [eax - 0x18]
fld dword [eax - 0x14]
fld st(1)
fadd st(1)
fld dword [0x42040c]
fmul st(1), st(0)
fxch st(2)
fsubrp st(3)
fxch st(2)
fmul st(1)
fld dword [eax - 0x38]
fld st(0)
fsub st(4)
fstp dword [eax - 0x18]
fld dword [eax - 0x34]
fld st(0)
fsub st(3)
fstp dword [eax - 0x14]
fxch st(4)
faddp st(1)
fstp dword [eax - 0x38]
faddp st(2)
fxch st(1)
fstp dword [eax - 0x34]
fld dword [eax - 0xc]
fld dword [eax - 0x10]
fld dword [eax - 0x30]
fld st(0)
fsub st(3)
fstp dword [eax - 0x10]
fld dword [eax - 0x2c]
fld st(2)
fadd st(1)
fstp dword [eax - 0xc]
fxch st(3)
faddp st(1)
fstp dword [eax - 0x30]
fsubp st(1)
fstp dword [eax - 0x2c]
fld dword [eax - 4]
fld dword [eax - 8]
fld st(1)
fsub st(1)
fmul st(3)
fxch st(2)
faddp st(1)
fchs
fmulp st(2)
fld dword [eax - 0x28]
fld st(0)
fsub st(2)
fstp dword [eax - 8]
fld dword [eax - 0x24]
fld st(0)
fsub st(4)
fstp dword [eax - 4]
fxch st(2)
faddp st(1)
fstp dword [eax - 0x28]
faddp st(1)
fstp dword [eax - 0x24]
cmp edx, ecx
jne 0x4103d0
jmp 0x40fff0
mov dword [esp + 0x78], 1
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x50], 1
mov eax, dword [esp + eax*4 + 0x90]
mov dword [esp + 0x30], eax
je 0x410683
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x30]
lea edi, [ebx + ebx*2]
test eax, eax
jle 0x40fff0
movzx ecx, byte [esp + 0x8c]
lea edx, [ebx*8]
shl ebx, 4
mov esi, dword [esp + 0xd0]
mov ebp, ebx
mov dword [esp + 0x2c], 0
shl edi, 3
shl eax, cl
mov esi, dword [esi + 0x30]
lea ebx, [eax*8]
mov dword [esp + 0x20], ebx
mov ebx, eax
lea eax, [eax + eax*2]
shl eax, 3
shl ebx, 4
mov dword [esp + 0x34], esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x24], ebx
shl eax, 3
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xd4]
add eax, edx
mov dword [esp + 0x1c], eax
lea esi, [esi]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
sub eax, edx
cmp dword [esp + 0x50], 0
mov esi, ecx
mov ebx, ecx
jle 0x410653
lea esi, [esi]
fld dword [eax + edx]
fld dword [ecx]
add eax, 8
fld dword [eax + edx - 4]
fld dword [ecx + 4]
add ecx, dword [esp + 0x20]
fld st(3)
fmul st(3)
fld st(2)
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x14]
fmulp st(3)
fmulp st(1)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [eax + ebp - 8]
fld dword [ebx]
fld dword [eax + ebp - 4]
fld dword [ebx + 4]
add ebx, dword [esp + 0x24]
fld st(3)
fmul st(3)
fld st(2)
fmul st(2)
fsubp st(1)
fxch st(4)
fmulp st(1)
fxch st(2)
fmulp st(1)
faddp st(1)
fld dword [eax + edi - 8]
fld dword [esi]
fld dword [eax + edi - 4]
fld dword [esi + 4]
add esi, dword [esp + 0x28]
fld st(3)
fmul st(3)
fld st(2)
fmul st(2)
fsubp st(1)
fxch st(1)
fmulp st(4)
fxch st(2)
fmulp st(1)
faddp st(2)
fld dword [eax - 8]
fld st(0)
fsub st(5)
fld dword [eax - 4]
fld st(0)
fsub st(6)
fxch st(7)
faddp st(3)
fxch st(2)
fst dword [eax - 8]
fxch st(5)
faddp st(2)
fxch st(1)
fst dword [eax - 4]
fld dword [esp + 0x14]
fadd st(3)
fld dword [esp + 0x18]
fadd st(5)
fxch st(4)
fsubr dword [esp + 0x14]
fxch st(5)
fsubr dword [esp + 0x18]
fxch st(6)
fsub st(1)
fstp dword [eax + ebp - 8]
fxch st(1)
fsub st(3)
fstp dword [eax + ebp - 4]
fadd dword [eax - 8]
fstp dword [eax - 8]
fxch st(1)
fadd dword [eax - 4]
fstp dword [eax - 4]
fld st(0)
fadd st(3)
fstp dword [eax + edx - 8]
fld st(3)
fsub st(2)
fstp dword [eax + edx - 4]
fsubrp st(2)
fxch st(1)
fstp dword [eax + edi - 8]
faddp st(1)
fstp dword [eax + edi - 4]
cmp eax, dword [esp + 0x1c]
jne 0x410560
add dword [esp + 0x2c], 1
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x1c], esi
cmp dword [esp + 0x30], eax
jne 0x410540
jmp 0x40fff0
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, eax
test eax, eax
jle 0x40fff0
mov eax, dword [esp + 0xd4]
xor edx, edx
lea esi, [esi]
lea esi, [esi]
fld dword [eax]
fld dword [eax + 0x10]
add edx, 1
add eax, 0x20
fld st(1)
fsub st(1)
fld dword [eax - 0x1c]
fld dword [eax - 0xc]
fld st(1)
fsub st(1)
fxch st(5)
faddp st(4)
faddp st(1)
fld dword [eax - 0x18]
fld dword [eax - 8]
fadd st(1)
fld dword [eax - 0x14]
fadd dword [eax - 4]
fld st(5)
fsub st(2)
fstp dword [eax - 0x10]
fld st(3)
fsub st(1)
fstp dword [eax - 0xc]
fxch st(5)
faddp st(1)
fstp dword [eax - 0x20]
fxch st(1)
faddp st(3)
fxch st(2)
fstp dword [eax - 0x1c]
fxch st(1)
fsub dword [eax - 8]
fld dword [eax - 0x14]
fsub dword [eax - 4]
fld st(2)
fadd st(1)
fstp dword [eax - 0x18]
fld st(3)
fsub st(2)
fstp dword [eax - 0x14]
fsubp st(2)
fxch st(1)
fstp dword [eax - 8]
faddp st(1)
fstp dword [eax - 4]
cmp ecx, edx
jne 0x4106a0
jmp 0x40fff0
mov dword [esp + 8], 0x4c
mov dword [esp + 4], str.celt_kiss_fft.c
mov dword [esp], str.assertion_failed:_m4
call dbg.celt_fatal
mov dword [esp + 0x50], edi
jmp 0x40fff8