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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x50
mov esi, esp
mov ebx, dword [ebp + 8]
mov eax, dword [0x10305014]
xor eax, ebp
mov dword [esi + 0x48], eax
mov eax, dword [ebx + 0x10c]
mov dword [esi + 0x10], eax
mov edx, dword [ebx + 0x114]
lea ecx, [edx + eax]
shl ecx, 2
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x18], eax
mov eax, ecx
call fcn.101308a0
mov eax, esp
and eax, 0xfffffff0
mov dword [esi], eax
mov esp, eax
lea eax, [ebx + 0x18]
mov dword [esi + 0x28], eax
lea edi, [edx*4]
xor eax, eax
cmp ecx, edi
mov ecx, dword [esi + 0x10]
lea ecx, [ecx*4]
cmova eax, ecx
mov dword [esi + 8], edx
mov ecx, dword [esi]
lea ecx, [ecx + edx*4]
push eax
push 0xff
push ecx
call fcn.10132b90
add esp, 0xc
push edi
mov edi, dword [ebp + 0x14]
push dword [esi + 0x28]
mov eax, dword [esi]
push eax
call fcn.10132610
mov ecx, dword [esi + 0x10]
add esp, 0xc
mov eax, dword [ebx + 0x110]
mov dword [esi + 0x24], eax
mov eax, dword [ebx + 0x128]
mov dword [esi + 4], eax
cmp edi, ecx
cmovl ecx, edi
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 8]
mov edx, dword [esi]
lea ecx, [edx + ecx*4]
push dword [esi + 0x10]
push eax
push dword [esi + 0x1c]
push ecx
push ebx
call fcn.10294700
add esp, 0x14
mov eax, dword [esi + 0x10]
shl eax, 0x10
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 0x114]
cmp eax, 0x12
mov dword [esi + 0x2c], edi
je 0x10292d06
cmp eax, 0x18
je 0x102930a7
cmp eax, 0x24
jne 0x102932fe
cmp dword [esi + 0x14], 0
jle 0x10293315
xor eax, eax
mov ebx, dword [esi]
mov edx, eax
mov dword [esi + 8], eax
sar edx, 0x10
mov edi, dword [ebx + edx*4 + 0x8c]
add edi, dword [ebx + edx*4]
mov ecx, edi
sar ecx, 0x10
mov eax, dword [esi + 4]
movsx eax, word [eax + 4]
imul ecx, eax
mov ebx, 0xffff
and edi, ebx
imul edi, eax
sar edi, 0x10
mov ebx, dword [esi]
mov eax, dword [ebx + edx*4 + 0x88]
add eax, dword [ebx + edx*4 + 4]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 6]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x84]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 8]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 8]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
sar edi, 0x10
mov eax, dword [esi]
mov eax, dword [eax + edx*4 + 0x80]
mov ebx, dword [esi]
add eax, dword [ebx + edx*4 + 0xc]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0xa]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x7c]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 0x10]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0xc]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
sar edi, 0x10
mov eax, dword [esi]
mov eax, dword [eax + edx*4 + 0x78]
mov ebx, dword [esi]
add eax, dword [ebx + edx*4 + 0x14]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0xe]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x74]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 0x18]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x10]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
sar edi, 0x10
mov eax, dword [esi]
mov eax, dword [eax + edx*4 + 0x70]
mov ebx, dword [esi]
add eax, dword [ebx + edx*4 + 0x1c]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x12]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x6c]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 0x20]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x14]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
sar edi, 0x10
mov eax, dword [esi]
mov eax, dword [eax + edx*4 + 0x68]
mov ebx, dword [esi]
add eax, dword [ebx + edx*4 + 0x24]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x16]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x64]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 0x28]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x18]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
sar edi, 0x10
mov eax, dword [esi]
mov eax, dword [eax + edx*4 + 0x60]
mov ebx, dword [esi]
add eax, dword [ebx + edx*4 + 0x2c]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x1a]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x5c]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 0x30]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x1c]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
sar edi, 0x10
mov eax, dword [esi]
mov eax, dword [eax + edx*4 + 0x58]
mov ebx, dword [esi]
add eax, dword [ebx + edx*4 + 0x34]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x1e]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x54]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 0x38]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x20]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
sar edi, 0x10
mov eax, dword [esi]
mov eax, dword [eax + edx*4 + 0x50]
mov ebx, dword [esi]
add eax, dword [ebx + edx*4 + 0x3c]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x22]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x4c]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 0x40]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x24]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
mov ebx, dword [esi]
mov eax, dword [ebx + edx*4 + 0x48]
sar edi, 0x10
add eax, dword [ebx + edx*4 + 0x44]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov edx, dword [esi + 4]
movsx edx, word [edx + 0x26]
imul ecx, edx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, edx
sar eax, 0x10
add eax, ecx
mov ecx, 0x7fff
cmp eax, 0x1fffdf
jg 0x10292ce6
sar eax, 5
inc eax
sar eax, 1
cmp eax, 0xffff8001
mov ecx, 0xffff8000
cmovl eax, ecx
mov ecx, eax
mov eax, dword [esi + 0x18]
mov word [eax], cx
add eax, 2
mov dword [esi + 0x18], eax
mov eax, dword [esi + 8]
add eax, dword [esi + 0x24]
cmp eax, dword [esi + 0x14]
jl 0x102929a4
jmp 0x10293315
cmp dword [esi + 0x14], 0
jle 0x10293315
mov eax, dword [ebx + 0x118]
mov dword [esi + 0x34], eax
cwde
mov dword [esi + 0x30], eax
xor edx, edx
mov edi, dword [esi]
mov ecx, edx
sar ecx, 0x10
mov dword [esi + 8], ecx
mov dword [esi + 0x3c], edx
mov eax, 0xffff
and edx, eax
imul edx, dword [esi + 0x30]
sar edx, 0x10
mov dword [esi + 0x20], edx
mov edi, dword [edi + ecx*4]
mov eax, edi
sar eax, 0x10
lea edx, [edx + edx*8]
mov dword [esi + 0xc], edx
mov ecx, dword [esi + 4]
movsx ebx, word [ecx + edx*2 + 4]
imul eax, ebx
mov edx, 0xffff
and edi, edx
imul edi, ebx
sar edi, 0x10
add edi, eax
mov eax, dword [esi]
mov edx, dword [esi + 8]
mov eax, dword [eax + edx*4 + 4]
mov ebx, eax
sar ebx, 0x10
mov edx, ecx
mov ecx, dword [esi + 0xc]
movsx ecx, word [edx + ecx*2 + 6]
imul ebx, ecx
add ebx, edi
mov edi, 0xffff
and eax, edi
imul eax, ecx
sar eax, 0x10
add eax, ebx
mov ecx, dword [esi]
mov edi, dword [esi + 8]
mov edi, dword [ecx + edi*4 + 8]
mov ebx, edi
sar ebx, 0x10
mov ecx, dword [esi + 0xc]
movsx edx, word [edx + ecx*2 + 8]
imul ebx, edx
add ebx, eax
mov eax, 0xffff
and edi, eax
imul edi, edx
sar edi, 0x10
add edi, ebx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov eax, dword [eax + ecx*4 + 0xc]
mov ebx, eax
sar ebx, 0x10
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
movsx edx, word [ecx + edx*2 + 0xa]
imul ebx, edx
add ebx, edi
mov ecx, 0xffff
and eax, ecx
imul eax, edx
sar eax, 0x10
add eax, ebx
mov ecx, dword [esi]
mov edx, dword [esi + 8]
mov edi, dword [ecx + edx*4 + 0x10]
mov ebx, edi
sar ebx, 0x10
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
movsx edx, word [ecx + edx*2 + 0xc]
imul ebx, edx
add ebx, eax
mov eax, 0xffff
and edi, eax
imul edi, edx
sar edi, 0x10
add edi, ebx
mov eax, dword [esi]
mov ebx, dword [esi + 8]
mov eax, dword [eax + ebx*4 + 0x14]
mov ebx, eax
sar ebx, 0x10
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
movsx edx, word [edx + ecx*2 + 0xe]
imul ebx, edx
add ebx, edi
mov ecx, 0xffff
and eax, ecx
imul eax, edx
sar eax, 0x10
add eax, ebx
mov ecx, dword [esi]
mov edx, dword [esi + 8]
mov edi, dword [ecx + edx*4 + 0x18]
mov ebx, edi
sar ebx, 0x10
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
movsx ecx, word [ecx + edx*2 + 0x10]
imul ebx, ecx
add ebx, eax
mov eax, 0xffff
and edi, eax
imul edi, ecx
sar edi, 0x10
add edi, ebx
mov eax, dword [esi]
mov edx, dword [esi + 8]
mov eax, dword [eax + edx*4 + 0x1c]
mov ebx, eax
sar ebx, 0x10
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0xc]
movsx ecx, word [edx + ecx*2 + 0x12]
mov dword [esi + 0x38], ecx
imul ebx, ecx
add ebx, edi
mov ecx, 0xffff
and eax, ecx
imul eax, dword [esi + 0x38]
sar eax, 0x10
add eax, ebx
mov ecx, dword [esi]
mov edi, dword [esi + 8]
mov edi, dword [ecx + edi*4 + 0x20]
mov ebx, edi
sar ebx, 0x10
mov ecx, dword [esi + 0xc]
movsx ecx, word [edx + ecx*2 + 0x14]
imul ebx, ecx
add ebx, eax
mov eax, 0xffff
and edi, eax
imul edi, ecx
sar edi, 0x10
add edi, ebx
mov eax, dword [esi + 0x20]
not eax
add eax, dword [esi + 0x34]
mov edx, eax
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov eax, dword [eax + ecx*4 + 0x44]
mov ebx, eax
sar ebx, 0x10
lea ecx, [edx + edx*8]
mov dword [esi + 0xc], ecx
mov edx, dword [esi + 4]
movsx edx, word [edx + ecx*2 + 4]
imul ebx, edx
add ebx, edi
mov ecx, 0xffff
and eax, ecx
imul eax, edx
sar eax, 0x10
add eax, ebx
mov edx, dword [esi]
mov ecx, dword [esi + 8]
mov edi, dword [edx + ecx*4 + 0x40]
mov ebx, edi
sar ebx, 0x10
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
movsx edx, word [ecx + edx*2 + 6]
imul ebx, edx
add ebx, eax
mov eax, 0xffff
and edi, eax
imul edi, edx
sar edi, 0x10
add edi, ebx
mov eax, dword [esi]
mov edx, dword [esi + 8]
mov eax, dword [eax + edx*4 + 0x3c]
mov ebx, eax
sar ebx, 0x10
mov edx, dword [esi + 0xc]
movsx edx, word [ecx + edx*2 + 8]
imul ebx, edx
add ebx, edi
mov ecx, 0xffff
and eax, ecx
imul eax, edx
sar eax, 0x10
add eax, ebx
mov edx, dword [esi]
mov ecx, dword [esi + 8]
mov edi, dword [edx + ecx*4 + 0x38]
mov ebx, edi
sar ebx, 0x10
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
movsx edx, word [edx + ecx*2 + 0xa]
imul ebx, edx
add ebx, eax
mov eax, 0xffff
and edi, eax
imul edi, edx
sar edi, 0x10
add edi, ebx
mov eax, dword [esi]
mov edx, dword [esi + 8]
mov eax, dword [eax + edx*4 + 0x34]
mov ebx, eax
sar ebx, 0x10
mov edx, dword [esi + 4]
movsx edx, word [edx + ecx*2 + 0xc]
imul ebx, edx
add ebx, edi
mov ecx, 0xffff
and eax, ecx
imul eax, edx
sar eax, 0x10
add eax, ebx
mov edx, dword [esi]
mov ecx, dword [esi + 8]
mov edi, dword [edx + ecx*4 + 0x30]
mov ebx, edi
sar ebx, 0x10
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0xc]
movsx edx, word [edx + ecx*2 + 0xe]
imul ebx, edx
add ebx, eax
mov eax, 0xffff
and edi, eax
imul edi, edx
sar edi, 0x10
add edi, ebx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov eax, dword [eax + ecx*4 + 0x2c]
mov ebx, eax
sar ebx, 0x10
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
movsx edx, word [ecx + edx*2 + 0x10]
mov dword [esi + 0x20], edx
imul ebx, edx
add ebx, edi
mov edx, 0xffff
and eax, edx
imul eax, dword [esi + 0x20]
sar eax, 0x10
add eax, ebx
mov edx, dword [esi]
mov edi, dword [esi + 8]
mov edi, dword [edx + edi*4 + 0x28]
mov ebx, edi
sar ebx, 0x10
mov edx, dword [esi + 0xc]
movsx edx, word [ecx + edx*2 + 0x12]
imul ebx, edx
add ebx, eax
mov eax, 0xffff
and edi, eax
imul edi, edx
sar edi, 0x10
add edi, ebx
mov eax, dword [esi + 8]
mov edx, dword [esi]
mov eax, dword [edx + eax*4 + 0x24]
mov edx, eax
sar edx, 0x10
mov ebx, dword [esi + 0xc]
movsx ecx, word [ecx + ebx*2 + 0x14]
imul edx, ecx
add edx, edi
mov edi, 0xffff
and eax, edi
imul eax, ecx
sar eax, 0x10
add eax, edx
mov ecx, 0x7fff
cmp eax, 0x1fffdf
jg 0x10293085
sar eax, 5
inc eax
sar eax, 1
cmp eax, 0xffff8001
mov ecx, 0xffff8000
cmovl eax, ecx
mov ecx, eax
mov eax, dword [esi + 0x18]
mov word [eax], cx
add eax, 2
mov dword [esi + 0x18], eax
mov edx, dword [esi + 0x3c]
add edx, dword [esi + 0x24]
cmp edx, dword [esi + 0x14]
mov edi, dword [esi]
jl 0x10292d21
jmp 0x10293315
cmp dword [esi + 0x14], 0
jle 0x10293315
xor edx, edx
mov ebx, dword [esi]
mov dword [esi + 8], edx
sar edx, 0x10
mov edi, dword [ebx + edx*4 + 0x5c]
add edi, dword [ebx + edx*4]
mov ecx, edi
sar ecx, 0x10
mov eax, dword [esi + 4]
movsx eax, word [eax + 4]
imul ecx, eax
mov ebx, 0xffff
and edi, ebx
imul edi, eax
sar edi, 0x10
mov ebx, dword [esi]
mov eax, dword [ebx + edx*4 + 0x58]
add eax, dword [ebx + edx*4 + 4]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 6]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x54]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 8]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 8]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
sar edi, 0x10
mov eax, dword [esi]
mov eax, dword [eax + edx*4 + 0x50]
mov ebx, dword [esi]
add eax, dword [ebx + edx*4 + 0xc]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0xa]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x4c]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 0x10]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0xc]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
sar edi, 0x10
mov eax, dword [esi]
mov eax, dword [eax + edx*4 + 0x48]
mov ebx, dword [esi]
add eax, dword [ebx + edx*4 + 0x14]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0xe]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x44]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 0x18]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x10]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
sar edi, 0x10
mov eax, dword [esi]
mov eax, dword [eax + edx*4 + 0x40]
mov ebx, dword [esi]
add eax, dword [ebx + edx*4 + 0x1c]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x12]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x3c]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 0x20]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x14]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
sar edi, 0x10
mov eax, dword [esi]
mov eax, dword [eax + edx*4 + 0x38]
mov ebx, dword [esi]
add eax, dword [ebx + edx*4 + 0x24]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x16]
imul ecx, ebx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, ebx
sar eax, 0x10
mov edi, dword [esi]
mov edi, dword [edi + edx*4 + 0x34]
mov ebx, dword [esi]
add edi, dword [ebx + edx*4 + 0x28]
add eax, ecx
mov ecx, edi
sar ecx, 0x10
mov ebx, dword [esi + 4]
movsx ebx, word [ebx + 0x18]
imul ecx, ebx
add ecx, eax
mov eax, 0xffff
and edi, eax
imul edi, ebx
mov ebx, dword [esi]
mov eax, dword [ebx + edx*4 + 0x30]
sar edi, 0x10
add eax, dword [ebx + edx*4 + 0x2c]
add edi, ecx
mov ecx, eax
sar ecx, 0x10
mov edx, dword [esi + 4]
movsx edx, word [edx + 0x1a]
imul ecx, edx
add ecx, edi
mov edi, 0xffff
and eax, edi
imul eax, edx
sar eax, 0x10
add eax, ecx
mov ecx, 0x7fff
cmp eax, 0x1fffdf
jg 0x102932e1
sar eax, 5
inc eax
sar eax, 1
cmp eax, 0xffff8001
mov ecx, 0xffff8000
cmovl eax, ecx
mov ecx, eax
mov eax, dword [esi + 0x18]
mov word [eax], cx
add eax, 2
mov dword [esi + 0x18], eax
mov edx, dword [esi + 8]
add edx, dword [esi + 0x24]
cmp edx, dword [esi + 0x14]
jl 0x102930b5
jmp 0x10293315
push 0x8b
push str....._third_partyopus_src_silk_resampler_private_down_FIR.c
push str.assertion_failed:_0
call fcn.1028ab20
add esp, 0xc
mov edi, dword [esi + 0x2c]
mov ecx, dword [esi + 0x10]
sub edi, ecx
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x114]
lea eax, [edx*4]
cmp edi, 2
jl 0x1029335f
mov dword [esi + 8], edx
mov edx, dword [esi + 0x1c]
lea edx, [edx + ecx*2]
mov dword [esi + 0x1c], edx
mov edx, dword [esi]
lea ecx, [edx + ecx*4]
push eax
push ecx
push edx
call fcn.10132610
add esp, 0xc
mov ecx, dword [ebx + 0x10c]
mov eax, dword [ebx + 0x128]
jmp 0x10292948
mov edx, dword [esi]
lea ecx, [edx + ecx*4]
push eax
push ecx
push dword [esi + 0x28]
call fcn.10132610
add esp, 0xc
mov ecx, dword [esi + 0x48]
xor ecx, ebp
call fcn.10130483
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret