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

Disassembly:
sub esp, 0x44
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x7c]
add ecx, 8
push ebx
mov ebx, dword [esp + 0x4c]
push ebp
push edi
sar edx, 6
mov eax, dword [ebx + 0x10f0]
lea ebp, [ebx + 0xf3c]
sub eax, dword [esp + 0x78]
add eax, 0x141
mov dword [esp + 0x30], ebp
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 edi, [ecx + eax*4]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x14], edi
test eax, eax
jle 0x101e57f3
push esi
mov esi, dword [esp + 0x9c]
lea ecx, [ebx + 0x1080]
mov eax, esi
mov dword [esp + 0x2c], ecx
and eax, 1
mov dword [esp + 0x3c], eax
mov eax, esi
sar eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x78]
lea eax, [eax + esi*2]
add eax, 0xfffffffe
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x14], eax
sar dword [esp + 0x14], 0x10
cwde
mov dword [esp + 0x30], eax
movsx eax, dx
sar edx, 0xf
mov dword [esp + 0x4c], eax
inc edx
lea eax, [esi - 1]
sar edx, 1
lea eax, [ecx + eax*4]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x44], eax
imul eax, dword [ebx + 0x10f4], 0xbb38435
push dword [esp + 0xa0]
push dword [esp + 0x74]
add eax, 0x3619636b
push ebp
mov dword [ebx + 0x10f4], eax
call fcn.101e5840
add esp, 0xc
mov dword [esp + 0x24], eax
cmp dword [esp + 0x5c], 2
jne 0x101e534e
mov edx, dword [esp + 0x74]
mov esi, dword [edi - 8]
mov edi, dword [edi]
movzx ebp, si
movsx eax, word [edx + 6]
movsx ebx, word [edx + 8]
movsx ecx, word [edx + 4]
mov dword [esp + 0x20], eax
movsx eax, word [edx + 2]
movsx edx, word [edx]
mov dword [esp + 0x10], eax
imul ebp, ecx
movzx eax, di
imul eax, edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x18]
sar ebp, 0x10
sar esi, 0x10
sar eax, 0x10
add ebp, eax
imul esi, ecx
mov eax, dword [edx - 0x10]
mov ecx, edx
movzx eax, ax
imul eax, ebx
sar edi, 0x10
imul edi, dword [esp + 0x38]
sar eax, 0x10
add ebp, eax
mov eax, dword [edx - 0xc]
movzx eax, ax
imul eax, dword [esp + 0x20]
sar eax, 0x10
add ebp, eax
mov eax, dword [edx - 4]
movzx eax, ax
imul eax, dword [esp + 0x10]
sar eax, 0x10
add ebp, eax
mov eax, dword [ecx - 0x10]
sar eax, 0x10
add ebp, esi
imul eax, ebx
add ebp, edi
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x9c]
add ebp, eax
mov eax, dword [ecx - 0xc]
sar eax, 0x10
imul eax, dword [esp + 0x20]
add ebp, eax
mov eax, dword [ecx - 4]
sar eax, 0x10
imul eax, dword [esp + 0x10]
add eax, 2
add eax, ebp
add ecx, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
jmp 0x101e5356
mov dword [esp + 0x20], 0
cmp dword [esp + 0x3c], 0
je 0x101e5374
push 0xfa
push str.C:_vcpkg_2024.03.25_buildtreesopus_src_v1.4_cac4cc030e.clean_silkNSQ.c
push str.assertion_failed:___shapingLPCOrder__1____0
call fcn.101ace10
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 + 0x40]
add ebp, ecx
cmp esi, ebx
jle 0x101e5409
nop dword [eax]
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 + 0x2c]
sar ecx, 0x10
add ebp, edi
add ebp, ecx
mov ecx, dword [esp + 0x2c]
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 0x101e53b0
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x58]
movzx ecx, di
mov dword [eax], edi
mov eax, dword [esp + 0x48]
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]
lea edi, [ecx + ebp*2]
mov ecx, dword [ebx + eax*4 + 0x4fc]
mov eax, dword [esp + 0x14]
movzx ebp, cx
imul ebp, dword [esp + 0x30]
imul eax, edx
sar ecx, 0x10
imul ecx, dword [esp + 0x30]
mov dword [esp + 0x38], edi
sar ebp, 0x10
sar eax, 0x10
add ebp, eax
mov eax, dword [esp + 0x14]
imul eax, esi
add ebp, ecx
mov ecx, dword [esp + 0x7c]
add ebp, eax
mov dword [esp + 0x50], ebp
test ecx, ecx
jg 0x101e54fe
cmp dword [esp + 0x5c], 2
jne 0x101e54fe
push 0x102
push str.C:_vcpkg_2024.03.25_buildtreesopus_src_v1.4_cac4cc030e.clean_silkNSQ.c
push str.assertion_failed:_lag___0__signalType___TYPE_VOICED
call fcn.101ace10
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 0x101e55b3
mov eax, 0x7800
jmp 0x101e55c0
mov eax, dword [esp + 0x24]
shl eax, 2
sub eax, ebp
sub eax, edi
test ecx, ecx
jle 0x101e54c9
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx - 8]
mov esi, dword [ecx]
lea ecx, [edx + esi]
test ecx, ecx
js 0x101e552e
test esi, edx
mov ebp, ecx
mov edi, 0x80000000
cmovl ebp, edi
cmovl ecx, edi
jmp 0x101e553f
or edx, esi
jl 0x101e553d
mov ebp, 0x7fffffff
mov dword [esp + 0x10], ebp
jmp 0x101e5543
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 0x101e54cb
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 0x101e55f4
mov esi, ebp
shr esi, 1
add esi, 0xfffffe00
cmp edx, esi
jle 0x101e5625
mov ecx, edx
sub ecx, esi
sar ecx, 0xa
test ecx, ecx
jle 0x101e5638
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 0x101e56be
mov ecx, esi
neg ecx
cmp edx, ecx
jge 0x101e5632
lea ecx, [esi + edx]
jmp 0x101e55f1
test edx, edx
jns 0x101e563a
jmp 0x101e5663
jne 0x101e565e
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 0x101e56be
cmp ecx, 0xffffffff
jne 0x101e5686
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 0x101e56bb
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 + 0x64]
cmovge ecx, ebp
mov eax, ecx
shl ecx, 4
sar eax, 9
inc eax
sar eax, 1
mov byte [edi + edx], al
mov eax, ecx
mov edx, dword [esp + 0x24]
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 + 0x4c]
sar eax, 0x10
imul eax, dword [esp + 0x4c]
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 0x101e574e
mov ecx, 0x7fff
jmp 0x101e575c
cmp ecx, 0xffff8000
mov eax, 0xffff8000
cmovl ecx, eax
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x34]
add ebp, 4
mov dword [esp + 0x34], ebp
mov word [eax + edi*2], cx
lea ecx, [esi + esi]
mov eax, dword [esp + 0x60]
mov dword [ebp], edx
mov esi, dword [esp + 0x9c]
mov eax, dword [eax + edi*4]
shl eax, 4
sub edx, eax
mov eax, dword [esp + 0x38]
shl eax, 2
mov dword [ebx + 0x10e4], edx
sub edx, eax
mov eax, dword [esp + 0x50]
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
mov eax, dword [esp + 0x64]
inc dword [ebx + 0x10f0]
inc dword [ebx + 0x10ec]
movsx eax, byte [edi + eax]
inc edi
add dword [ebx + 0x10f4], eax
mov eax, dword [esp + 0x98]
cmp edi, eax
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x18]
jl 0x101e5254
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