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

Disassembly:
sub esp, 0x44
mov ecx, dword [esp + 0x5c]
push ebx
mov ebx, dword [esp + 0x4c]
add ecx, 8
push ebp
push edi
mov edi, dword [esp + 0x88]
mov eax, dword [ebx + 0x10f0]
lea edx, [ebx + 0xf3c]
sub eax, dword [esp + 0x78]
add eax, 0x141
sar edi, 6
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], 0
lea eax, [ebx + eax*4]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x10ec]
sub eax, dword [esp + 0x78]
lea ebp, [ecx + eax*4]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x10], ebp
test eax, eax
jle 0x10168c33
push esi
mov esi, dword [esp + 0x9c]
lea ecx, [ebx + 0x1080]
mov eax, esi
mov dword [esp + 0x34], ecx
and eax, 1
mov dword [esp + 0x40], eax
mov eax, esi
sar eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x78]
lea eax, [eax + esi*2]
add eax, 0xfffffffe
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x18], eax
sar dword [esp + 0x18], 0x10
cwde
mov dword [esp + 0x50], eax
movsx eax, di
sar edi, 0xf
mov dword [esp + 0x38], eax
inc edi
lea eax, [esi - 1]
sar edi, 1
lea eax, [ecx + eax*4]
mov dword [esp + 0x8c], edi
mov dword [esp + 0x48], eax
nop word [eax + eax]
imul eax, dword [ebx + 0x10f4], 0xbb38435
push dword [esp + 0xa0]
push dword [esp + 0x74]
add eax, 0x3619636b
push edx
mov dword [ebx + 0x10f4], eax
call fcn.10168c80
add esp, 0xc
mov dword [esp + 0x24], eax
cmp dword [esp + 0x5c], 2
jne 0x10168798
mov esi, dword [esp + 0x74]
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0xc]
mov ebp, dword [ebp - 4]
movsx eax, word [esi + 4]
movsx ecx, word [esi + 8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x74]
movsx edx, word [esi + 6]
movsx esi, word [esi + 2]
mov dword [esp + 0x3c], edx
movsx eax, word [eax]
mov dword [esp + 0x30], eax
movzx eax, di
imul eax, ecx
sar edi, 0x10
imul edi, ecx
sar eax, 0x10
mov dword [esp + 0x10], eax
movzx eax, bx
imul eax, edx
mov edx, dword [esp + 0x14]
sar ebx, 0x10
imul ebx, dword [esp + 0x3c]
sar eax, 0x10
add dword [esp + 0x10], eax
movzx eax, bp
imul eax, esi
mov ecx, dword [edx - 8]
sar ecx, 0x10
imul ecx, dword [esp + 0x20]
sar ebp, 0x10
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [edx - 8]
movzx eax, ax
imul eax, dword [esp + 0x20]
imul ebp, esi
mov esi, dword [esp + 0x9c]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [edx]
movzx eax, ax
imul eax, dword [esp + 0x30]
sar eax, 0x10
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add eax, edi
add eax, ebx
mov ebx, dword [esp + 0x58]
add eax, ebp
add eax, ecx
mov ecx, dword [edx]
sar ecx, 0x10
imul ecx, dword [esp + 0x30]
add ecx, 2
add eax, ecx
add edx, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edx
jmp 0x101687a0
mov dword [esp + 0x20], 0
cmp dword [esp + 0x40], 0
je 0x101687be
push 0xfa
push str.F:_vcpkg_2024.05.24_buildtreesopus_src_v1.5.1_cfcae413d5.clean_silkNSQ.c
push str.assertion_failed:___shapingLPCOrder__1____0
call fcn.1012fae0
add esp, 0xc
mov ebp, dword [ebx + 0x10e4]
lea edx, [ebx + 0x1080]
mov eax, dword [esp + 0x78]
mov ebx, 2
mov edi, dword [edx]
mov dword [edx], ebp
movzx ecx, bp
movsx eax, word [eax]
imul ecx, eax
sar ebp, 0x10
imul ebp, eax
sar ecx, 0x10
add ecx, dword [esp + 0x44]
add ebp, ecx
cmp esi, ebx
jle 0x1016884c
mov esi, dword [edx + ebx*4 - 4]
mov eax, dword [esp + 0x78]
mov dword [edx + ebx*4 - 4], edi
movzx ecx, di
sar edi, 0x10
movsx eax, word [eax + ebx*2 - 2]
imul ecx, eax
imul edi, eax
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x34]
sar ecx, 0x10
add ebp, edi
add ebp, ecx
mov ecx, dword [esp + 0x34]
mov edi, dword [ecx + ebx*4]
mov dword [ecx + ebx*4], esi
movsx eax, word [eax + ebx*2]
add ebx, 2
movzx ecx, si
sar esi, 0x10
imul ecx, eax
imul esi, eax
sar ecx, 0x10
add ebp, esi
add ebp, ecx
cmp ebx, dword [esp + 0x9c]
jl 0x101687f3
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x58]
movzx ecx, di
mov dword [eax], edi
mov eax, dword [esp + 0x4c]
mov esi, dword [ebx + 0x10e0]
sar edi, 0xf
and edi, 0xfffffffe
movzx edx, si
movsx eax, word [eax]
imul ecx, eax
imul edi, eax
sar esi, 0x10
sar ecx, 0xf
and ecx, 0xfffffffe
add ecx, edi
movsx edi, word [esp + 0x84]
mov eax, edi
imul eax, edx
sar eax, 0x10
add ecx, eax
mov eax, esi
imul eax, edi
add ecx, eax
mov eax, dword [ebx + 0x10f0]
mov eax, dword [ebx + eax*4 + 0x4fc]
lea edi, [ecx + ebp*2]
mov ecx, dword [esp + 0x18]
movzx ebp, ax
imul ebp, dword [esp + 0x50]
sar eax, 0x10
imul eax, dword [esp + 0x50]
mov dword [esp + 0x3c], edi
sar ebp, 0x10
add ebp, eax
mov eax, ecx
imul eax, edx
imul ecx, esi
sar eax, 0x10
add ebp, eax
add ebp, ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x30], ebp
test ecx, ecx
jg 0x1016893f
cmp dword [esp + 0x5c], 2
jne 0x1016893f
push 0x102
push str.F:_vcpkg_2024.05.24_buildtreesopus_src_v1.5.1_cfcae413d5.clean_silkNSQ.c
push str.assertion_failed:_lag___0__signalType___TYPE_VOICED
call fcn.1012fae0
mov eax, dword [esp + 0x30]
add esp, 0xc
shl eax, 2
sub eax, edi
sub eax, ebp
sar eax, 1
mov edx, dword [esp + 0x60]
inc eax
mov ecx, dword [esp + 0x28]
sar eax, 1
mov ecx, dword [edx + ecx*4]
mov edx, ecx
sub edx, eax
sub eax, ecx
cmp dword [ebx + 0x10f4], 0
cmovge eax, edx
cmp eax, 0x7800
jle 0x101689f4
mov eax, 0x7800
jmp 0x10168a01
mov eax, dword [esp + 0x24]
shl eax, 2
sub eax, ebp
sub eax, edi
test ecx, ecx
jle 0x1016890a
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx - 8]
mov esi, dword [ecx]
lea ecx, [edx + esi]
test ecx, ecx
js 0x1016896f
test esi, edx
mov ebp, ecx
mov edi, 0x80000000
cmovl ebp, edi
cmovl ecx, edi
jmp 0x10168980
or edx, esi
jl 0x1016897e
mov ebp, 0x7fffffff
mov dword [esp + 0x10], ebp
jmp 0x10168984
mov ebp, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
add eax, eax
mov edx, dword [esp + 0x80]
movsx edi, dx
sar ebp, 0xf
mov esi, dword [ecx - 4]
and ebp, 0xfffffffe
add ecx, 4
movzx edx, si
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x80]
sar ecx, 0x10
imul edx, ecx
mov ecx, dword [esp + 0x80]
sar ecx, 0xf
and ecx, 0xfffffffe
sar esi, 0x10
imul ecx, esi
sar edx, 0xf
and edx, 0xfffffffe
imul ebp, edi
sub eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x10]
movzx ecx, cx
imul ecx, edi
sar ecx, 0xf
and ecx, 0xfffffffe
sub eax, ecx
sub eax, ebp
add eax, dword [esp + 0x20]
sar eax, 2
jmp 0x1016890c
cmp eax, 0xffff8400
mov ecx, 0xffff8400
cmovl eax, ecx
mov edi, dword [esp + 0x94]
mov edx, eax
mov ebp, dword [esp + 0x90]
sub edx, edi
mov ecx, edx
sar ecx, 0xa
cmp ebp, 0x800
jle 0x10168a35
mov esi, ebp
shr esi, 1
add esi, 0xfffffe00
cmp edx, esi
jle 0x10168a66
mov ecx, edx
sub ecx, esi
sar ecx, 0xa
test ecx, ecx
jle 0x10168a79
lea ebp, [edi - 0x50]
shl ecx, 0xa
mov edi, dword [esp + 0x90]
add ebp, ecx
movsx edx, di
movsx esi, bp
imul esi, edx
lea ecx, [ebp + 0x400]
movsx edi, cx
mov dword [esp + 0x10], ecx
imul edi, edx
jmp 0x10168aff
mov ecx, esi
neg ecx
cmp edx, ecx
jge 0x10168a73
lea ecx, [esi + edx]
jmp 0x10168a32
test edx, edx
jns 0x10168a7b
jmp 0x10168aa4
jne 0x10168a9f
lea ecx, [edi + 0x3b0]
movsx esi, di
mov ebp, edi
mov dword [esp + 0x10], ecx
mov edi, dword [esp + 0x90]
movsx edx, di
movsx edi, cx
imul esi, edx
imul edi, edx
jmp 0x10168aff
cmp ecx, 0xffffffff
jne 0x10168ac7
mov edx, dword [esp + 0x90]
lea ebp, [edi - 0x3b0]
mov ecx, ebp
mov dword [esp + 0x10], edi
neg ecx
movsx edi, di
movsx esi, cx
movsx ecx, dx
imul esi, ecx
jmp 0x10168afc
shl ecx, 0xa
lea ebp, [edi + 0x50]
mov edi, dword [esp + 0x90]
add ebp, ecx
mov ecx, ebp
neg ecx
movsx esi, cx
movsx ecx, di
lea edx, [ebp + 0x400]
mov dword [esp + 0x10], edx
imul esi, ecx
neg edx
movsx edi, dx
mov edx, dword [esp + 0x90]
movsx ecx, dx
imul edi, ecx
movzx ecx, ax
mov eax, ecx
sub ecx, dword [esp + 0x10]
sub eax, ebp
movsx edx, ax
movsx eax, cx
mov ecx, dword [esp + 0x10]
imul eax, eax
imul edx, edx
add eax, edi
mov edi, dword [esp + 0x28]
add edx, esi
cmp eax, edx
mov edx, dword [esp + 0x24]
cmovge ecx, ebp
mov ebp, dword [esp + 0x64]
mov eax, ecx
shl ecx, 4
sar eax, 9
inc eax
sar eax, 1
mov byte [edi + ebp], al
mov eax, ecx
neg eax
cmp dword [ebx + 0x10f4], 0
cmovge eax, ecx
mov ecx, dword [esp + 0x20]
shl edx, 4
lea esi, [eax + ecx*2]
add edx, esi
movzx ecx, dx
mov eax, edx
imul ecx, dword [esp + 0x38]
sar eax, 0x10
imul eax, dword [esp + 0x38]
sar ecx, 0x10
add ecx, eax
mov eax, edx
imul eax, dword [esp + 0x8c]
add ecx, eax
sar ecx, 7
inc ecx
sar ecx, 1
cmp ecx, 0x7fff
jle 0x10168b8f
mov ecx, 0x7fff
jmp 0x10168b9d
cmp ecx, 0xffff8000
mov eax, 0xffff8000
cmovl ecx, eax
mov eax, dword [esp + 0x68]
mov word [eax + edi*2], cx
lea ecx, [esi + esi]
mov eax, dword [esp + 0x2c]
add eax, 4
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x2c], eax
mov dword [eax], edx
mov eax, dword [esp + 0x60]
mov eax, dword [eax + edi*4]
shl eax, 4
sub edx, eax
mov eax, dword [esp + 0x3c]
shl eax, 2
mov dword [ebx + 0x10e4], edx
sub edx, eax
mov eax, dword [esp + 0x30]
shl eax, 2
mov dword [ebx + 0x10e0], edx
sub edx, eax
mov eax, dword [ebx + 0x10f0]
mov dword [ebx + eax*4 + 0x500], edx
mov eax, dword [ebx + 0x10ec]
mov edx, dword [esp + 0x6c]
mov dword [edx + eax*4], ecx
inc dword [ebx + 0x10f0]
inc dword [ebx + 0x10ec]
movsx eax, byte [edi + ebp]
inc edi
add dword [ebx + 0x10f4], eax
mov eax, dword [esp + 0x98]
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x28], edi
cmp edi, eax
jl 0x10168690
pop esi
movups xmm0, xmmword [ebx + eax*4 + 0xf00]
pop edi
pop ebp
movups xmmword [ebx + 0xf00], xmm0
movups xmm0, xmmword [ebx + eax*4 + 0xf10]
movups xmmword [ebx + 0xf10], xmm0
movups xmm0, xmmword [ebx + eax*4 + 0xf20]
movups xmmword [ebx + 0xf20], xmm0
movups xmm0, xmmword [ebx + eax*4 + 0xf30]
movups xmmword [ebx + 0xf30], xmm0
pop ebx
add esp, 0x44
ret