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

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
push ebx
mov ebx, eax
sub esp, 0x5c
mov eax, dword [eax]
mov esi, dword [ebx + 0xc]
mov dword [esp + 0x3c], edx
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x38], edx
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], eax
mov eax, dword [eax + 0x38]
mov dword [esp + 0x2c], edx
mov edx, dword [ebx + 0x24]
movsx eax, word [eax + esi*2]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x84]
lea esi, [eax + edx*8]
mov edx, dword [esp + 0x88]
mov eax, esi
sar eax, 1
test edx, edx
setne byte [esp + 0x28]
cmp dword [esp + 0x74], 2
movzx ecx, byte [esp + 0x28]
jne 0xb3c910
test cl, cl
je 0xb3c910
mov edx, dword [esp + 0x78]
sub eax, 0x10
mov ebp, 2
mov ecx, dword [edx]
imul eax, ebp
add eax, ecx
sub ecx, esi
cdq
idiv ebp
lea edx, [ecx - 0x1f]
cmp eax, edx
jl 0xb3c585
lea eax, [ecx - 0x20]
cmp eax, 0x40
mov edx, eax
jle 0xb3c682
mov edx, 0x40
mov eax, edx
mov ecx, 0xe
sar edx, 3
and eax, 7
sub ecx, edx
movsx ebp, word [eax + eax + 0xe03404]
sar ebp, cl
add ebp, 1
and ebp, 0xfffffffe
cmp ebp, 0x100
jg 0xb3ce73
mov esi, dword [esp + 0x38]
cmp dword [esp + 0x34], esi
jl 0xb3c69e
cmp byte [esp + 0x28], 0
je 0xb3c69e
mov eax, dword [esp + 0x30]
test eax, eax
jne 0xb3cb14
mov ebp, 1
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b46c80
cmp ebp, 1
mov dword [esp + 0x38], eax
je 0xb3cc40
cmp dword [esp + 0x74], 2
jle 0xb3c615
cmp byte [esp + 0x28], 0
jne 0xb3caa4
cmp dword [esp + 0x80], 1
jg 0xb3c62a
cmp byte [esp + 0x28], 0
je 0xb3cd50
lea eax, [ebp + 1]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b46f90
mov esi, eax
test esi, esi
js 0xb3ceb7
shl esi, 0xe
xor edx, edx
mov eax, esi
div ebp
mov esi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b46c80
sub eax, dword [esp + 0x38]
mov ebx, eax
mov eax, dword [esp + 0x78]
sub dword [eax], ebx
test esi, esi
jne 0xb3c7fb
mov dword [esp + 0x88], 0
jmp 0xb3cc15
cmp eax, 3
jg 0xb3c595
mov esi, dword [esp + 0x38]
cmp dword [esp + 0x34], esi
mov ebp, 1
jge 0xb3c5ce
mov eax, dword [esp + 0x30]
test eax, eax
je 0xb3c5ea
mov eax, dword [ebx + 0x2c]
mov dword [esp], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call fcn.00b4b810
mov esi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b46c80
cmp ebp, 1
mov dword [esp + 0x38], eax
je 0xb3cb50
mov eax, dword [esp + 0x88]
mov ecx, esi
imul ecx, ebp
test eax, eax
je 0xb3c930
mov ebx, dword [ebx + 0x30]
test ebx, ebx
jne 0xb3ccf0
lea esi, [ecx + 0x2000]
sar esi, 0xe
cmp dword [esp + 0x74], 2
jle 0xb3ca50
cmp byte [esp + 0x28], 0
je 0xb3ca50
mov eax, ebp
shr eax, 0x1f
add eax, ebp
sar eax, 1
lea ebx, [eax + eax*2 + 3]
cmp esi, eax
lea edx, [ebx + eax]
mov dword [esp + 0x48], edx
jg 0xb3cc60
lea ecx, [esi + esi*2 + 3]
lea edx, [ecx - 3]
mov eax, dword [esp + 0x48]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b471c0
test esi, esi
js 0xb3ceb7
shl esi, 0xe
xor edx, edx
mov ecx, dword [esp + 0x30]
mov eax, esi
div ebp
test ecx, ecx
mov esi, eax
je 0xb3c652
cmp byte [esp + 0x28], 0
je 0xb3c652
test eax, eax
je 0xb3ccb0
mov edx, dword [esp + 0x74]
xor eax, eax
fld dword [0xe034a0]
test edx, edx
jle 0xb3c7e1
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
lea esi, [esi]
lea edi, [edi]
fld dword [edi + eax*4]
fmul st(1)
fld dword [edx + eax*4]
fmul st(2)
fld st(1)
fadd st(1)
fstp dword [edi + eax*4]
fsubrp st(1)
fstp dword [edx + eax*4]
add eax, 1
cmp ecx, eax
jne 0xb3c7c0
fstp st(0)
jmp 0xb3c7e3
fstp st(0)
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b46c80
sub eax, dword [esp + 0x38]
mov ebx, eax
mov eax, dword [esp + 0x78]
sub dword [eax], ebx
cmp esi, 0x4000
je 0xb3cc72
movsx edx, si
imul edx, edx
add edx, 0x1000
sar edx, 0xd
movsx eax, dx
imul edi, eax, 0xfffffd8e
add edi, 0x4000
sar edi, 0xf
add di, 0x2055
movzx edi, di
imul edi, eax
add edi, 0x4000
sar edi, 0xf
sub di, 0x1de3
movsx edi, di
imul edi, eax
mov eax, 0xffff8000
mov ecx, eax
sub ecx, edx
mov edx, ecx
mov ecx, 0x4000
add edi, 0x4000
sub ecx, esi
sar edi, 0xf
movsx ecx, cx
add edi, edx
imul ecx, ecx
movsx edi, di
mov dword [esp + 4], edi
add ecx, 0x1000
sar ecx, 0xd
movsx ebp, cx
sub eax, ecx
imul edx, ebp, 0xfffffd8e
add edx, 0x4000
sar edx, 0xf
add dx, 0x2055
movzx edx, dx
imul edx, ebp
add edx, 0x4000
sar edx, 0xf
sub dx, 0x1de3
movsx edx, dx
imul edx, ebp
add edx, 0x4000
sar edx, 0xf
lea ebp, [eax + edx]
movsx ebp, bp
mov dword [esp], ebp
call fcn.00b3c460
mov edx, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x88], 0
movsx edx, dx
sub eax, 1
shl eax, 7
cwde
imul eax, edx
add eax, 0x4000
sar eax, 0xf
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x88]
mov dword [ecx + 4], edi
mov dword [ecx], edx
mov dword [ecx + 8], ebp
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], esi
mov dword [ecx + 0x14], ebx
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x78]
sub eax, 4
mov ecx, dword [edx]
mov edx, dword [esp + 0x74]
lea ebp, [edx + edx - 1]
jmp 0xb3c571
mov ebx, dword [ebx + 0x38]
lea esi, [ecx + 0x2000]
sar esi, 0xe
test ebx, ebx
je 0xb3ca50
test esi, esi
jle 0xb3ca50
cmp esi, ebp
jge 0xb3ca50
mov eax, esi
xor edx, edx
shl eax, 0xe
div ebp
movsx edx, ax
imul edx, edx
add edx, 0x1000
sar edx, 0xd
mov dword [esp + 0x48], edx
mov edx, 0x4000
movsx ecx, word [esp + 0x48]
sub edx, eax
movsx eax, dx
imul eax, eax
add eax, 0x1000
sar eax, 0xd
mov edx, eax
movsx ebx, ax
imul eax, ecx, 0xfffffd8e
add eax, 0x4000
sar eax, 0xf
add ax, 0x2055
movzx eax, ax
imul eax, ecx
add eax, 0x4000
sar eax, 0xf
sub ax, 0x1de3
cwde
imul ecx, eax
lea eax, [ecx + 0x4000]
mov ecx, 0xffff8000
sar eax, 0xf
mov dword [esp + 0x4c], eax
mov eax, ecx
sub ax, word [esp + 0x48]
add ax, word [esp + 0x4c]
cwde
mov dword [esp + 4], eax
imul eax, ebx, 0xfffffd8e
add eax, 0x4000
sar eax, 0xf
add ax, 0x2055
movzx eax, ax
imul eax, ebx
add eax, 0x4000
sar eax, 0xf
sub ax, 0x1de3
cwde
imul ebx, eax
lea eax, [ebx + 0x4000]
sar eax, 0xf
sub ecx, edx
add eax, ecx
cwde
mov dword [esp], eax
call fcn.00b3c460
mov ebx, dword [esp + 0x74]
cwde
lea edx, [ebx - 1]
mov ebx, dword [esp + 0x78]
shl edx, 7
movsx edx, dx
imul eax, edx
mov edx, dword [ebx]
add eax, 0x4000
sar eax, 0xf
cmp eax, edx
jg 0xb3ceb0
neg edx
cmp eax, edx
setl al
movzx eax, al
sub eax, 1
and esi, eax
nop
cmp dword [esp + 0x80], 1
jg 0xb3cd30
cmp byte [esp + 0x28], 0
jne 0xb3cd30
mov eax, ebp
sar eax, 1
lea edx, [eax + 1]
imul edx, edx
cmp eax, esi
jl 0xb3cdd0
lea eax, [esi + 1]
mov ecx, eax
imul ecx, esi
sar ecx, 1
add eax, ecx
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b471c0
jmp 0xb3c76c
mov ebx, ebp
shr ebx, 0x1f
add ebx, ebp
sar ebx, 1
lea esi, [ebx + 1]
lea edi, [esi + esi*2]
lea eax, [edi + ebx]
mov dword [esp + 0x28], eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b46dd0
cmp eax, edi
mov ecx, eax
jge 0xb3ce02
mov eax, ecx
mov edx, 0x55555556
sar ecx, 0x1f
imul edx
mov esi, edx
sub esi, ecx
cmp esi, ebx
jg 0xb3cdf0
lea edx, [esi + esi*2 + 3]
lea eax, [edx - 3]
mov ebx, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp], eax
call fcn.00b46e50
jmp 0xb3c63f
mov eax, dword [ebx + 0x2c]
mov dword [esp], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call fcn.00b4b810
mov esi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b46c80
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0xb3c652
cmp esi, 0x2000
mov dword [esp + 0x88], 0
jle 0xb3cba9
mov eax, dword [ebx + 0x34]
test eax, eax
jne 0xb3cba9
mov ebp, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
test ebp, ebp
lea edx, [eax + edx*4]
jle 0xb3cb9e
lea esi, [esi]
fld dword [eax]
add eax, 4
fchs
fstp dword [eax - 4]
cmp edx, eax
jne 0xb3cb90
mov dword [esp + 0x88], 1
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x40]
mov edx, edi
mov ecx, dword [esp + 0x70]
mov eax, dword [eax + 8]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x44]
mov dword [esp], esi
call fcn.00b3c1d0
mov eax, dword [esp + 0x78]
cmp dword [eax], 0x10
jle 0xb3cbe5
cmp dword [ebx + 0x20], 0x10
jg 0xb3ce20
mov dword [esp + 0x88], 0
cmp dword [ebx + 0x34], 1
sbb eax, eax
and dword [esp + 0x88], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b46c80
sub eax, dword [esp + 0x38]
mov ebx, eax
mov eax, dword [esp + 0x78]
sub dword [eax], ebx
movzx ecx, byte [esp + 0x7c]
mov edi, dword [esp + 0x8c]
mov eax, 1
xor esi, esi
xor ebp, ebp
shl eax, cl
sub eax, 1
and dword [edi], eax
mov edi, 0x7fff
mov eax, 0xffffc000
jmp 0xb3c8ea
mov edx, dword [esp + 0x88]
test edx, edx
je 0xb3cbfd
mov dword [esp + 0x88], 0
jmp 0xb3cbd2
lea edx, [esi - 1]
mov ecx, esi
sub ecx, eax
sub edx, eax
add ecx, ebx
add edx, ebx
jmp 0xb3c750
movzx ecx, byte [esp + 0x7c]
mov edi, dword [esp + 0x8c]
mov eax, 1
mov dword [esp + 0x88], 0
mov ebp, 0x7fff
shl eax, cl
sub eax, 1
shl eax, cl
and dword [edi], eax
mov eax, 0x4000
xor edi, edi
jmp 0xb3c8ea
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x40]
mov edx, edi
mov ecx, dword [esp + 0x70]
mov eax, dword [eax + 8]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp], ebx
call fcn.00b3c1d0
mov dword [esp + 0x88], 0
jmp 0xb3cbfd
cmp esi, 0x2000
jg 0xb3ce10
mov eax, 0xffff8001
cdq
idiv ebp
add ecx, eax
mov esi, ecx
sar ecx, 0x1f
sar esi, 0xe
not ecx
and esi, ecx
cmp esi, ebp
jl 0xb3cd19
lea esi, [ebp - 1]
cmp ebx, 0x80000000
adc esi, 0
jmp 0xb3c717
lea eax, [ebp + 1]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b47460
jmp 0xb3c76c
mov ebx, ebp
mov eax, dword [esp + 0x2c]
sar ebx, 1
lea esi, [ebx + 1]
mov dword [esp], eax
mov edi, esi
imul edi, esi
imul ebx, esi
mov dword [esp + 4], edi
sar ebx, 1
call fcn.00b46dd0
cmp eax, ebx
jl 0xb3ce50
mov esi, edi
lea ebx, [ebp + 1]
sub esi, eax
lea eax, [esi*8 - 7]
lea esi, [ebx + ebx]
mov dword [esp], eax
call fcn.00b477f0
lea edx, [ebp + 2]
sub esi, eax
mov eax, ebx
shr esi, 1
mov ebx, edi
sub eax, esi
sub edx, esi
imul edx, eax
sar edx, 1
sub ebx, edx
mov edx, ebx
add eax, edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b46e50
jmp 0xb3c647
lea eax, [ebp + 1]
lea ecx, [ebp + 2]
mov ebx, edx
sub eax, esi
sub ecx, esi
imul ecx, eax
sar ecx, 1
sub ebx, ecx
mov ecx, ebx
jmp 0xb3ca85
lea eax, [esi - 1]
mov edx, esi
sub edx, ebx
sub eax, ebx
add edx, edi
add eax, edi
jmp 0xb3caf3
sub ecx, edi
add esi, ecx
jmp 0xb3cae4
mov eax, 0x7fff
cdq
idiv ebp
jmp 0xb3cd04
mov esi, dword [esp + 0x30]
test esi, esi
je 0xb3ce90
mov eax, dword [esp + 0x88]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00b472d0
jmp 0xb3cbf0
lea eax, [eax*8 + 1]
mov dword [esp], eax
call fcn.00b477f0
lea esi, [eax - 1]
shr esi, 1
lea eax, [esi + 1]
mov edx, esi
imul edx, eax
sar edx, 1
jmp 0xb3cdaa
mov dword [esp + 8], 0x29d
mov dword [esp + 4], str.celt_bands.c
mov dword [esp], str.assertion_failed:_qn___256
call fcn.00b371e0
nop
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.00b46e90
mov dword [esp + 0x88], eax
jmp 0xb3cbf0
mov esi, ebp
jmp 0xb3ca50
mov dword [esp + 8], 0x346
mov dword [esp + 4], str.celt_bands.c
mov dword [esp], str.assertion_failed:_itheta_0
call fcn.00b371e0
lea esi, [esi]
lea edi, [edi]