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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov esi, esp
mov edi, dword [ebp + 8]
mov eax, dword [0x10305014]
xor eax, ebp
mov dword [esi + 0x98], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x80], xmm0
movdqa xmmword [esi + 0x70], xmm0
mov eax, dword [edi + 0x90c]
cmp eax, dword [edi + 0x103c]
je 0x1028f871
mov dword [esi + 0xc], eax
mov ecx, edi
mov edi, dword [edi + 0x924]
lea eax, [edi + 1]
mov dword [esi + 8], eax
xor ebx, ebx
mov eax, 0x7fff
xor edx, edx
idiv dword [esi + 8]
test edi, edi
jle 0x1028f852
mov edx, eax
mov word [ecx + ebx*2 + 0xfd4], dx
add edx, eax
inc ebx
cmp edi, ebx
jne 0x1028f843
mov dword [ecx + 0x1034], 0
mov dword [ecx + 0x1038], 0x307880
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x103c], eax
mov edi, ecx
lea eax, [edi + 0xad4]
mov dword [esi + 0xc], eax
cmp dword [edi + 0x1040], 0
je 0x1028f9f8
mov eax, dword [ebp + 0x14]
lea ecx, [eax*4 + 0x40]
mov eax, ecx
call fcn.101308a0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push ecx
push 0xff
mov dword [esi + 8], eax
push eax
call fcn.10132b90
add esp, 0xc
movzx ecx, word [edi + 0x1084]
movsx edx, cx
mov eax, dword [edi + 0x1098]
movsx ebx, ax
sar eax, 0xf
inc eax
sar eax, 1
imul eax, edx
sar edx, 0x10
imul edx, ebx
imul ebx, ecx
sar ebx, 0x10
add ebx, edx
mov edi, dword [edi + 0x1034]
add eax, ebx
mov edx, eax
sar edx, 0x10
cmp eax, 0x1fffff
jg 0x1028f99b
cmp edi, 0x800001
jge 0x1028f99b
movsx ecx, ax
mov dword [esi + 0x14], ecx
imul edx, ecx
mov ecx, 0xffff
mov ebx, eax
and ebx, ecx
imul ebx, dword [esi + 0x14]
sar ebx, 0x10
add ebx, edx
mov edx, eax
sar edx, 0xf
inc edx
shr edx, 1
imul edx, eax
add edx, ebx
mov ebx, edi
sar ebx, 0x10
movsx eax, di
imul ebx, eax
and ecx, edi
imul ecx, eax
mov eax, edi
sar eax, 0xf
inc eax
sar eax, 1
imul eax, edi
shl edx, 5
sub ebx, edx
sar ecx, 0x10
add ebx, ecx
add ebx, eax
test ebx, ebx
jle 0x1028fa35
bsr eax, ebx
xor eax, 0x1f
mov edx, eax
sub edx, 0x18
jne 0x1028ffa1
mov edi, dword [ebp + 8]
and ebx, 0x7f
test al, 1
mov ecx, 0xb486
mov edx, 0x8000
cmove edx, ecx
shr eax, 1
mov ecx, eax
shr edx, cl
imul ebx, edx
imul eax, ebx, 0xd5
shr eax, 0x10
add eax, edx
shl eax, 8
mov dword [esi + 0x10], eax
jmp 0x1028fa3f
sar edi, 0x10
imul edi, edi
imul edx, edx
shl edx, 5
sub edi, edx
jle 0x1028fa35
bsr eax, edi
xor eax, 0x1f
mov edx, eax
sub edx, 0x18
jne 0x1028ffba
mov ebx, dword [ebp + 0x14]
and edi, 0x7f
test al, 1
mov ecx, 0xb486
mov edx, 0x8000
cmove edx, ecx
shr eax, 1
mov ecx, eax
shr edx, cl
imul eax, edi, 0xd5
or eax, 0x10000
imul eax, edx
and eax, 0xffff0000
mov dword [esi + 0x10], eax
mov edi, dword [ebp + 8]
mov eax, ebx
jmp 0x1028fa42
cmp dword [edi + 0x1044], 0
je 0x1028ff2b
mov edi, dword [ebp + 8]
cmp dword [edi + 0x1040], 0
jne 0x1028f887
mov eax, dword [edi + 0x924]
add edi, 0xff4
shl eax, 2
push eax
push 0
push edi
call fcn.10132b90
add esp, 0xc
jmp 0x1028ff16
mov dword [esi + 0x10], 0
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
mov ecx, 0xff
mov ebx, ecx
shr ecx, 1
cmp ebx, eax
jg 0x1028fa47
mov ecx, dword [edi + 0x1038]
test eax, eax
jle 0x1028fa81
xor edx, edx
imul ecx, ecx, 0xbb38435
add ecx, 0x3619636b
mov edi, ecx
shr edi, 0x18
and edi, ebx
mov eax, dword [esi + 0xc]
mov edi, dword [eax + edi*4]
mov eax, dword [esi + 8]
mov dword [eax + edx*4 + 0x40], edi
inc edx
cmp dword [ebp + 0x14], edx
jne 0x1028fa5b
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
mov dword [edi + 0x1038], ecx
lea eax, [edi + 0xfd4]
lea ecx, [esi + 0x70]
push dword [edi + 0x1048]
push dword [edi + 0x924]
push eax
push ecx
call fcn.10293b20
add esp, 0x10
movups xmm0, xmmword [edi + 0x1024]
mov eax, dword [esi + 8]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [edi + 0x1014]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [edi + 0xff4]
movups xmm1, xmmword [edi + 0x1004]
movups xmmword [eax + 0x10], xmm1
movups xmmword [eax], xmm0
mov eax, dword [edi + 0x924]
cmp eax, 0xa
je 0x1028fb01
cmp eax, 0x10
je 0x1028fb01
push 0x99
push str....._third_partyopus_src_silkCNG.c
push str.assertion_failed:_psDec__LPC_order__10__psDec__LPC_order__16
call fcn.1028ab20
add esp, 0xc
lea eax, [edi + 0xff4]
mov dword [esi + 0x30], eax
test ebx, ebx
jle 0x1028fee9
movsx eax, word [esi + 0x70]
mov dword [esi + 0x68], eax
movsx eax, word [esi + 0x72]
mov dword [esi + 0x64], eax
movsx eax, word [esi + 0x74]
mov dword [esi + 0x60], eax
mov ecx, dword [esi + 0x10]
mov eax, ecx
shr eax, 6
cwde
mov dword [esi + 0x5c], eax
sar ecx, 0x15
inc ecx
sar ecx, 1
mov dword [esi + 0x10], ecx
movsx eax, word [esi + 0x76]
mov dword [esi + 0x58], eax
movsx eax, word [esi + 0x78]
mov dword [esi + 0x54], eax
movsx eax, word [esi + 0x7a]
mov dword [esi + 0x50], eax
movsx eax, word [esi + 0x7c]
mov dword [esi + 0x4c], eax
movsx eax, word [esi + 0x7e]
mov dword [esi + 0x48], eax
movsx eax, word [esi + 0x80]
mov dword [esi + 0x44], eax
movsx eax, word [esi + 0x82]
mov dword [esi + 0x40], eax
movsx eax, word [esi + 0x84]
mov dword [esi + 0x3c], eax
movsx eax, word [esi + 0x86]
mov dword [esi + 0x20], eax
movsx eax, word [esi + 0x88]
mov dword [esi + 0x1c], eax
movsx eax, word [esi + 0x8a]
mov dword [esi + 0x18], eax
movsx eax, word [esi + 0x8c]
mov dword [esi + 0x38], eax
movsx eax, word [esi + 0x8e]
mov dword [esi + 0x34], eax
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x3c]
mov ecx, dword [edx + 0x34]
mov dword [esi + 0x14], ecx
mov ecx, dword [edx + 0x2c]
mov dword [esi + 0x2c], ecx
mov ecx, dword [edx + 0x1c]
mov dword [esi + 0x24], ecx
mov ecx, dword [edx + 0x24]
mov dword [esi + 0x28], ecx
xor ebx, ebx
mov dword [esi + 0xc], ebx
mov edi, dword [edi + 0x924]
mov dword [esi + 0x6c], edi
sar edi, 1
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 0x68]
imul ecx, ebx
add ecx, edi
mov edx, 0xffff
and eax, edx
imul eax, ebx
sar eax, 0x10
add eax, ecx
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
mov ebx, dword [edi + edx*4 + 0x38]
mov edi, ebx
sar edi, 0x10
mov edx, dword [esi + 0x64]
imul edi, edx
add edi, eax
mov dword [esi + 0x14], ebx
mov eax, 0xffff
and ebx, eax
imul ebx, edx
sar ebx, 0x10
add ebx, edi
mov edi, ecx
sar edi, 0x10
mov eax, dword [esi + 0x60]
imul edi, eax
add edi, ebx
mov edx, 0xffff
and ecx, edx
imul ecx, eax
sar ecx, 0x10
add ecx, edi
mov ebx, dword [esi + 0x2c]
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov edx, dword [edx + eax*4 + 0x30]
mov edi, edx
sar edi, 0x10
mov eax, dword [esi + 0x58]
imul edi, eax
add edi, ecx
mov dword [esi + 0x2c], edx
mov ecx, edx
mov edx, 0xffff
and ecx, edx
imul ecx, eax
sar ecx, 0x10
add ecx, edi
mov edi, ebx
sar edi, 0x10
mov eax, dword [esi + 0x54]
imul edi, eax
add edi, ecx
mov ecx, 0xffff
and ebx, ecx
imul ebx, eax
sar ebx, 0x10
add ebx, edi
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov edx, dword [edx + eax*4 + 0x28]
mov edi, edx
sar edi, 0x10
mov eax, dword [esi + 0x50]
imul edi, eax
add edi, ebx
mov dword [esi + 0x28], edx
mov ebx, edx
mov edx, 0xffff
and ebx, edx
imul ebx, eax
sar ebx, 0x10
add ebx, edi
mov edi, ecx
sar edi, 0x10
mov eax, dword [esi + 0x4c]
imul edi, eax
add edi, ebx
mov edx, 0xffff
and ecx, edx
imul ecx, eax
sar ecx, 0x10
add ecx, edi
mov ebx, dword [esi + 0x24]
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov edx, dword [edx + eax*4 + 0x20]
mov edi, edx
sar edi, 0x10
mov eax, dword [esi + 0x48]
imul edi, eax
add edi, ecx
mov dword [esi + 0x24], edx
mov ecx, edx
mov edx, 0xffff
and ecx, edx
imul ecx, eax
sar ecx, 0x10
add ecx, edi
mov edi, ebx
sar edi, 0x10
mov eax, dword [esi + 0x44]
imul edi, eax
add edi, ecx
mov ecx, 0xffff
and ebx, ecx
imul ebx, eax
sar ebx, 0x10
add ebx, edi
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + eax*4 + 0x18]
mov edi, ecx
sar edi, 0x10
mov eax, dword [esi + 0x40]
imul edi, eax
add edi, ebx
mov edx, 0xffff
and ecx, edx
imul ecx, eax
sar ecx, 0x10
add ecx, edi
cmp dword [esi + 0x6c], 0x10
jne 0x1028fe25
mov edi, 0xffff
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov ebx, dword [edx + eax*4 + 0x14]
mov edx, ebx
sar edx, 0x10
mov eax, dword [esi + 0x3c]
imul edx, eax
and ebx, edi
imul ebx, eax
sar ebx, 0x10
add edx, ecx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov ecx, dword [eax + ecx*4 + 0x10]
add edx, ebx
mov edi, ecx
sar edi, 0x10
imul edi, dword [esi + 0x20]
mov ebx, 0xffff
and ecx, ebx
imul ecx, dword [esi + 0x20]
sar ecx, 0x10
add edx, edi
mov edi, dword [esi + 0xc]
mov edi, dword [eax + edi*4 + 0xc]
add edx, ecx
mov ecx, edi
sar ecx, 0x10
imul ecx, dword [esi + 0x1c]
mov ebx, 0xffff
and edi, ebx
imul edi, dword [esi + 0x1c]
sar edi, 0x10
add edx, ecx
mov ecx, dword [esi + 0xc]
mov ecx, dword [eax + ecx*4 + 8]
add edx, edi
mov edi, ecx
sar edi, 0x10
imul edi, dword [esi + 0x18]
mov ebx, 0xffff
and ecx, ebx
imul ecx, dword [esi + 0x18]
sar ecx, 0x10
add edx, edi
mov edi, dword [esi + 0xc]
mov edi, dword [eax + edi*4 + 4]
add edx, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 0x38]
imul ecx, ebx
add edx, ecx
mov ecx, dword [esi + 0xc]
mov ecx, dword [eax + ecx*4]
mov eax, 0xffff
and edi, eax
imul edi, ebx
sar edi, 0x10
add edx, edi
mov edi, ecx
sar edi, 0x10
mov eax, dword [esi + 0x34]
imul edi, eax
add edx, edi
mov edi, 0xffff
and ecx, edi
imul ecx, eax
sar ecx, 0x10
add edx, ecx
mov ecx, edx
cmp ecx, 0xf8000001
jge 0x1028fe32
mov ecx, 0xf8000000
mov edx, 0x7ffffff
cmp ecx, edx
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0xc]
jl 0x1028fe46
mov ecx, 0x7ffffff
mov edx, dword [edi + ebx*4 + 0x40]
shl ecx, 4
mov eax, ecx
add eax, edx
js 0x1028fe5e
test ecx, edx
jns 0x1028fe6b
mov eax, 0x80000000
jmp 0x1028fe6b
or ecx, edx
mov ecx, 0x7fffffff
jns 0x1028fe69
mov ecx, eax
mov eax, ecx
mov dword [edi + ebx*4 + 0x40], eax
mov edx, eax
sar edx, 0x10
mov edi, dword [esi + 0x5c]
imul edx, edi
mov ecx, eax
imul ecx, dword [esi + 0x10]
add ecx, edx
movzx edx, ax
imul edx, edi
sar edx, 0x10
add ecx, edx
mov edi, 0xffff8000
cmp ecx, 0xff7fff80
jl 0x1028fea2
mov edi, ecx
sar edi, 7
inc edi
sar edi, 1
mov edx, 0x7fff
cmp ecx, 0x7fff80
jge 0x1028feb1
mov edx, edi
mov ecx, dword [ebp + 0x10]
movsx ecx, word [ecx + ebx*2]
add ecx, edx
cmp ecx, 0xffff8001
jge 0x1028fec7
mov ecx, 0xffff8000
mov edx, 0x7fff
cmp ecx, edx
mov edi, dword [ebp + 8]
jl 0x1028fed8
mov ecx, 0x7fff
mov edx, dword [ebp + 0x10]
mov word [edx + ebx*2], cx
inc ebx
cmp dword [ebp + 0x14], ebx
jne 0x1028fbcf
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + 8]
movups xmm0, xmmword [ecx + eax*4 + 0x30]
mov edx, dword [esi + 0x30]
movups xmmword [edx + 0x30], xmm0
movups xmm0, xmmword [ecx + eax*4 + 0x20]
movups xmmword [edx + 0x20], xmm0
movdqu xmm0, xmmword [ecx + eax*4]
movups xmm1, xmmword [ecx + eax*4 + 0x10]
movups xmmword [edx + 0x10], xmm1
movdqu xmmword [edx], xmm0
mov ecx, dword [esi + 0x98]
xor ecx, ebp
call fcn.10130483
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x924]
test eax, eax
jle 0x1028ff7b
xor ecx, ecx
mov edx, dword [ebp + 8]
movsx edi, word [edx + ecx*2 + 0x928]
mov edx, dword [ebp + 8]
movsx edx, word [edx + ecx*2 + 0xfd4]
sub edi, edx
movzx ebx, di
shr edi, 0x10
imul edi, edi, 0x3fdc
imul ebx, ebx, 0x3fdc
shr ebx, 0x10
add ebx, edi
mov edi, dword [ebp + 8]
add ebx, edx
mov word [edi + ecx*2 + 0xfd4], bx
inc ecx
cmp eax, ecx
jne 0x1028ff3a
mov eax, dword [edi + 0x914]
test eax, eax
jle 0x1028ffff
xor ecx, ecx
xor ebx, ebx
xor edx, edx
mov edi, dword [ebp + 0xc]
mov edi, dword [edi + edx*4 + 0x10]
cmp edi, ecx
cmovg ecx, edi
cmovg ebx, edx
inc edx
cmp eax, edx
jne 0x1028ff8b
jmp 0x10290001
cmp ebx, 0x7f
ja 0x1028ffd3
lea ecx, [eax - 0x18]
mov edx, ebx
shl edx, cl
mov cl, 0x38
sub cl, al
shr ebx, cl
or ebx, edx
jmp 0x1028f967
cmp edi, 0x7f
ja 0x1028ffe9
lea ecx, [eax - 0x18]
mov edx, edi
shl edx, cl
mov cl, 0x38
sub cl, al
shr edi, cl
or edi, edx
jmp 0x1028f9c0
neg edx
mov ecx, eax
add cl, 8
mov edi, ebx
shl edi, cl
mov ecx, edx
shr ebx, cl
or ebx, edi
jmp 0x1028f967
neg edx
mov ecx, eax
add cl, 8
mov ebx, edi
shl ebx, cl
mov ecx, edx
shr edi, cl
or edi, ebx
jmp 0x1028f9c0
xor ebx, ebx
mov edi, dword [ebp + 8]
mov edi, dword [edi + 0x91c]
mov ecx, dword [esi + 0xc]
lea edx, [ecx + edi*4]
mov dword [esi + 8], edx
lea eax, [eax*4 - 4]
imul eax, edi
push eax
push ecx
push dword [esi + 8]
call fcn.10132610
add esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x91c]
imul ebx, eax
lea ecx, [edx + ebx*4]
add ecx, 4
mov edi, edx
shl eax, 2
push eax
push ecx
push dword [esi + 0xc]
call fcn.10132610
add esp, 0xc
mov eax, dword [edi + 0x914]
mov dword [esi + 8], eax
test eax, eax
jle 0x1028fa05
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1034]
xor ecx, ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 0x10]
sub eax, edi
mov ebx, eax
sar ebx, 0x10
imul ebx, ebx, 0x121a
mov edx, 0xffff
and eax, edx
imul eax, eax, 0x121a
shr eax, 0x10
add ebx, edi
add ebx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x1034], ebx
mov eax, ebx
sar eax, 0x10
imul edi, eax, 0xffffb53c
mov eax, ebx
and eax, edx
imul eax, eax, 0xffffb53c
sar eax, 0x10
add edi, ebx
add edi, eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4 + 0x10]
cmp edi, eax
jle 0x102900cd
mov edi, dword [ebp + 8]
mov dword [edi + 0x1034], eax
mov ebx, eax
inc ecx
mov edi, ebx
cmp dword [esi + 8], ecx
jne 0x1029006a
jmp 0x1028fa05