Function at 0x101dbf90
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 eax, dword [0x1026f864]
mov edi, dword [ebp + 8]
xor eax, ebp
mov dword [esi + 0x98], eax
mov ecx, dword [edi + 0x920]
lea eax, [ecx + ecx + 3]
and eax, 0xfffffffc
call fcn.101e0a30
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x4c], eax
mov esp, eax
mov edx, dword [edi + 0x918]
add ecx, edx
shl ecx, 2
mov eax, ecx
call fcn.101e0a30
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x50], eax
mov esp, eax
mov ecx, dword [edi + 0x91c]
lea eax, [ecx*4]
call fcn.101e0a30
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x54], eax
mov esp, eax
lea eax, [ecx*4 + 0x40]
call fcn.101e0a30
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x10], eax
mov esp, eax
mov al, byte [edi + 0xacf]
test edx, edx
mov byte [esi + 0x2f], al
jle 0x101dc0c2
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x14]
mov al, byte [ecx + 0xacd]
movsx ebx, byte [ecx + 0xad2]
movsx ecx, byte [ecx + 0xace]
sar al, 1
add ecx, ecx
movsx eax, al
movsx ecx, word [ecx + eax*4 + 0x1024d960]
mov eax, edx
xor edx, edx
shl ecx, 4
mov dword [esi + 0xc], ecx
movsx eax, word [eax + edx*2]
mov ecx, dword [ebp + 8]
imul edi, ebx, 0xbb38435
add edi, 0x3619636b
mov ebx, eax
shl ebx, 0xe
test eax, eax
mov dword [ecx + edx*4 + 4], ebx
jle 0x101dc08e
add ebx, 0xfffffb00
mov eax, dword [ebp + 8]
mov dword [eax + edx*4 + 4], ebx
jmp 0x101dc093
test ax, ax
js 0x101dc0ba
add ebx, dword [esi + 0xc]
mov ecx, dword [ebp + 8]
mov eax, ebx
neg eax
test edi, edi
cmovns eax, ebx
mov dword [ecx + edx*4 + 4], eax
mov eax, dword [ebp + 0x14]
movsx ebx, word [eax + edx*2]
inc edx
add ebx, edi
cmp edx, dword [ecx + 0x918]
jl 0x101dc05f
jmp 0x101dc0c2
or ebx, 0x500
jmp 0x101dc085
mov edi, dword [ebp + 8]
lea eax, [edi + 0x504]
push 0x40
mov dword [esi + 0x58], eax
push eax
mov ebx, dword [esi + 0x10]
push ebx
call fcn.101e35e0
add esp, 0xc
cmp dword [edi + 0x914], 0
jle 0x101dcbca
mov eax, dword [edi + 0x920]
mov ecx, dword [ebp + 0x10]
mov edx, edi
mov dword [esi + 0x3c], eax
lea eax, [edi + 4]
xor edi, edi
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x50]
add eax, 0xfffffffc
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x4c]
add eax, 0xfffffffe
mov dword [esi + 0x5c], eax
mov ecx, dword [ebp + 0xc]
mov eax, edi
shl eax, 4
and eax, 0xffffffe0
lea ecx, [ecx + eax + 0x20]
mov eax, dword [edx + 0x924]
add eax, eax
push eax
mov dword [esi + 0x30], ecx
push ecx
lea eax, [esi + 0x78]
push eax
mov ebx, edx
call fcn.101e35e0
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov cl, byte [ebx + 0xacd]
mov dword [esi + 0x20], edi
mov ebx, dword [eax + edi*4 + 0x10]
mov byte [esi + 0x18], cl
mov edx, ebx
neg edx
cmovl edx, ebx
test edx, edx
mov dword [esi + 0xc], edx
je 0x101dc168
bsr ecx, edx
xor ecx, 0x1f
jmp 0x101dc16d
mov ecx, 0x20
mov dword [esi + 0x1c], ecx
dec cl
mov dword [esi + 0x38], ebx
mov eax, 0x1fffffff
xor edx, edx
shl ebx, cl
mov edi, ebx
movzx ecx, bx
sar edi, 0x10
idiv edi
mov dword [esi + 0x34], ebx
movsx edx, ax
imul ecx, edx
imul edi, edx
mov ebx, edx
mov edx, eax
sar eax, 0xf
sar ecx, 0x10
inc eax
shl edx, 0x10
mov dword [esi + 0x14], ebx
add ecx, edi
sar eax, 1
mov edi, ebx
shl ecx, 3
neg ecx
imul eax, ecx
add eax, edx
mov edx, ecx
movzx ecx, cx
sar edx, 0x10
imul ecx, ebx
imul edx, ebx
sar ecx, 0x10
add eax, edx
add eax, ecx
mov ecx, 0xf
sub ecx, dword [esi + 0x1c]
cmp dword [esi + 0xc], 0x1ffff
ja 0x101dc1fc
neg cl
mov edi, 0x80000000
mov edx, 0x7fffffff
sar edi, cl
shr edx, cl
cmp eax, edi
cmovge edi, eax
cmp eax, edx
cmovg edi, edx
shl edi, cl
mov dword [esi + 0x28], edi
jmp 0x101dc201
sar eax, cl
mov dword [esi + 0x28], eax
mov edx, dword [ebp + 8]
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x38]
mov dword [esi + 0xc], 0x10000
mov edi, dword [edx]
lea ebx, [eax + eax*4]
cmp ecx, edi
je 0x101dc500
mov eax, edi
mov dword [esi + 0x24], ebx
neg eax
cmovl eax, edi
test eax, eax
je 0x101dc234
bsr ebx, eax
xor ebx, 0x1f
jmp 0x101dc239
mov ebx, 0x20
mov ecx, ebx
mov edx, dword [esi + 0x14]
sub ebx, dword [esi + 0x1c]
dec cl
shl edi, cl
mov eax, edi
movzx ecx, di
sar eax, 0x10
imul ecx, edx
imul eax, edx
sar ecx, 0x10
add ecx, eax
mov eax, ecx
imul dword [esi + 0x34]
shld edx, eax, 3
and edx, 0xfffffff8
sub edi, edx
mov edx, edi
movzx eax, di
sar edx, 0x10
imul eax, dword [esi + 0x14]
imul edx, dword [esi + 0x14]
sar eax, 0x10
add edx, ecx
add edx, eax
lea eax, [ebx + 0x1d]
add ebx, 0xd
cmp eax, 0xf
jg 0x101dc2ad
neg bl
mov eax, 0x80000000
mov edi, 0x7fffffff
mov ecx, ebx
sar eax, cl
shr edi, cl
cmp edx, eax
cmovge eax, edx
cmp edx, edi
cmovg eax, edi
mov edi, dword [ebp + 8]
shl eax, cl
mov ebx, eax
jmp 0x101dc2c1
mov ecx, ebx
mov edi, dword [ebp + 8]
sar edx, cl
cmp eax, 0x30
mov eax, 0
cmovge edx, eax
mov ebx, edx
mov eax, dword [esi + 0x10]
movzx ecx, bx
mov edx, ebx
mov dword [esi + 0xc], ebx
movd xmm0, ecx
shr edx, 0x10
mov ecx, dword [esi + 0x38]
pshufd xmm1, xmm0, 0
movd xmm0, ebx
movd xmm2, edx
mov ebx, dword [esi + 0x24]
mov edx, edi
pshufd xmm0, xmm0, 0
pshuflw xmm2, xmm2, 0
movdqa xmm3, xmmword [eax]
movdqa xmm5, xmm3
psrad xmm3, 0xf
pslld xmm5, 0x10
psrad xmm5, 0x10
movdqa xmm4, xmm5
packssdw xmm4, xmm4
movdqa xmm6, xmm4
pmullw xmm4, xmm2
pmulhw xmm6, xmm2
punpcklwd xmm4, xmm6
pshufd xmm6, xmm5, 0xf5
pmuludq xmm5, xmm1
pmuludq xmm6, xmm1
pshufd xmm5, xmm5, 0xe8
pshufd xmm6, xmm6, 0xe8
punpckldq xmm5, xmm6
pcmpeqd xmm6, xmm6
psubd xmm3, xmm6
psrad xmm5, 0x10
psrad xmm3, 1
pshufd xmm6, xmm3, 0xf5
pmuludq xmm3, xmm0
pmuludq xmm6, xmm0
pshufd xmm7, xmm3, 0xe8
pshufd xmm3, xmm6, 0xe8
punpckldq xmm7, xmm3
movdqa xmm3, xmmword [eax + 0x10]
paddd xmm7, xmm4
paddd xmm7, xmm5
movdqa xmmword [eax], xmm7
pcmpeqd xmm7, xmm7
movdqa xmm5, xmm3
psrad xmm3, 0xf
pslld xmm5, 0x10
psubd xmm3, xmm7
psrad xmm5, 0x10
psrad xmm3, 1
movdqa xmm4, xmm5
packssdw xmm4, xmm4
movdqa xmm6, xmm4
pmullw xmm4, xmm2
pmulhw xmm6, xmm2
punpcklwd xmm4, xmm6
pshufd xmm6, xmm5, 0xf5
pmuludq xmm5, xmm1
pmuludq xmm6, xmm1
pshufd xmm5, xmm5, 0xe8
pshufd xmm6, xmm6, 0xe8
punpckldq xmm5, xmm6
pshufd xmm6, xmm3, 0xf5
pmuludq xmm3, xmm0
pmuludq xmm6, xmm0
pshufd xmm3, xmm3, 0xe8
psrad xmm5, 0x10
pshufd xmm6, xmm6, 0xe8
punpckldq xmm3, xmm6
paddd xmm3, xmm4
paddd xmm3, xmm5
movdqa xmmword [eax + 0x10], xmm3
movdqa xmm4, xmmword [eax + 0x20]
movdqa xmm5, xmm4
psrad xmm4, 0xf
pslld xmm5, 0x10
psubd xmm4, xmm7
pcmpeqd xmm7, xmm7
psrad xmm5, 0x10
psrad xmm4, 1
movdqa xmm3, xmm5
packssdw xmm3, xmm3
movdqa xmm6, xmm3
pmullw xmm3, xmm2
pmulhw xmm6, xmm2
punpcklwd xmm3, xmm6
pshufd xmm6, xmm5, 0xf5
pmuludq xmm5, xmm1
pmuludq xmm6, xmm1
pshufd xmm5, xmm5, 0xe8
pshufd xmm6, xmm6, 0xe8
punpckldq xmm5, xmm6
pshufd xmm6, xmm4, 0xf5
pmuludq xmm4, xmm0
pmuludq xmm6, xmm0
pshufd xmm4, xmm4, 0xe8
psrad xmm5, 0x10
pshufd xmm6, xmm6, 0xe8
punpckldq xmm4, xmm6
paddd xmm4, xmm3
paddd xmm4, xmm5
movdqa xmmword [eax + 0x20], xmm4
movdqa xmm3, xmmword [eax + 0x30]
movdqa xmm5, xmm3
psrad xmm3, 0xf
pslld xmm5, 0x10
psubd xmm3, xmm7
psrad xmm5, 0x10
psrad xmm3, 1
movdqa xmm4, xmm5
packssdw xmm4, xmm4
movdqa xmm6, xmm4
pmullw xmm4, xmm2
pmulhw xmm6, xmm2
punpcklwd xmm4, xmm6
pshufd xmm6, xmm5, 0xf5
pmuludq xmm5, xmm1
pmuludq xmm6, xmm1
pshufd xmm5, xmm5, 0xe8
pshufd xmm1, xmm6, 0xe8
punpckldq xmm5, xmm1
pshufd xmm1, xmm3, 0xf5
pmuludq xmm3, xmm0
pmuludq xmm1, xmm0
pshufd xmm0, xmm3, 0xe8
psrad xmm5, 0x10
pshufd xmm1, xmm1, 0xe8
punpckldq xmm0, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm5
movdqa xmmword [eax + 0x30], xmm0
mov eax, dword [ebp + 0xc]
mov dword [edx], ecx
mov edi, edx
cmp dword [edx + 0x1040], 0
lea ebx, [eax + ebx*2 + 0x60]
mov al, byte [esi + 0x18]
je 0x101dc551
cmp dword [edi + 0x1044], 2
jne 0x101dc551
cmp dword [esi + 0x20], 1
ja 0x101dc551
cmp al, 2
je 0x101dc551
xor eax, eax
mov word [ebx + 8], 0
mov ecx, dword [esi + 0x20]
mov dword [ebx + 4], eax
mov dword [ebx], eax
mov word [ebx + 4], 0x1000
mov eax, dword [ebp + 0xc]
mov edx, dword [edi + 0x904]
mov dword [esi + 0x18], edx
mov dword [eax + ecx*4], edx
jmp 0x101dc565
cmp al, 2
jne 0x101dc5e4
mov ecx, dword [esi + 0x20]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [esi + 0x18], eax
cmp byte [esi + 0x2f], 4
mov eax, ecx
mov dword [esi + 0x24], ebx
setl cl
cmp eax, 2
sete dl
test eax, eax
je 0x101dc5f5
and cl, dl
jne 0x101dc5f5
mov eax, dword [esi + 0xc]
cmp eax, 0x10000
je 0x101dc70f
cmp dword [esi + 0x18], 0xffffffff
jl 0x101dc70f
mov ecx, eax
sar eax, 0x10
mov dword [esi + 0x1c], eax
movzx eax, cx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x18]
lea edi, [eax + 2]
mov eax, dword [esi + 0x3c]
lea ebx, [ecx + eax*4]
mov eax, dword [ebx]
movsx edx, ax
sar eax, 0xf
mov ecx, edx
imul edx, dword [esi + 0x14]
inc eax
sar eax, 1
imul ecx, dword [esi + 0x1c]
imul eax, dword [esi + 0xc]
sar edx, 0x10
add edx, ecx
add eax, edx
mov dword [ebx], eax
add ebx, 0xfffffffc
dec edi
jne 0x101dc5b7
jmp 0x101dc70f
mov eax, dword [esi + 0x40]
mov edx, dword [edi + 0x91c]
mov dword [esi + 0x18], eax
jmp 0x101dc82e
mov eax, edi
mov edi, dword [edi + 0x920]
sub edi, dword [esi + 0x18]
sub edi, dword [eax + 0x924]
cmp edi, 2
jg 0x101dc622
push 0x90
push str..._.._third_party_opus_src_silk_decode_core.c
push str.assertion_failed:_start_idx___0
call fcn.10193ce0
add esp, 0xc
add edi, 0xfffffffe
cmp dword [esi + 0x20], 2
jne 0x101dc651
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x91c]
mov ecx, dword [edx + 0x920]
shl eax, 2
lea ecx, [edx + ecx*2 + 0x544]
push eax
push dword [ebp + 0x10]
push ecx
call fcn.101e35e0
add esp, 0xc
mov ebx, dword [ebp + 8]
mov edx, dword [esi + 0x4c]
mov ecx, dword [ebx + 0x91c]
mov eax, dword [ebx + 0x920]
lea edx, [edx + edi*2]
imul ecx, dword [esi + 0x20]
sub eax, edi
add ecx, edi
lea ecx, [ebx + ecx*2 + 0x544]
push dword [ebp + 0x18]
push dword [ebx + 0x924]
push eax
push dword [esi + 0x30]
push ecx
push edx
call fcn.10194040
add esp, 0x18
cmp dword [esi + 0x20], 0
je 0x101dc697
mov edx, dword [esi + 0x28]
jmp 0x101dc6ba
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi + 0x28]
movsx ecx, word [ecx + 0x88]
mov eax, edx
movzx edx, dx
sar eax, 0x10
imul edx, ecx
imul eax, ecx
sar edx, 0x10
add edx, eax
shl edx, 2
cmp dword [esi + 0x18], 0xffffffff
jl 0x101dc70f
mov eax, edx
movzx ecx, dx
mov edx, 0xfffffffe
mov edi, dword [esi + 0x5c]
sar eax, 0x10
sub edx, dword [esi + 0x18]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x14], edx
mov edx, dword [esi + 0x48]
mov eax, dword [eax + 0x920]
lea edi, [edi + eax*2]
mov eax, dword [esi + 0x3c]
lea ebx, [edx + eax*4]
xor eax, eax
movsx ecx, word [edi + eax*2]
mov edx, dword [esi + 0xc]
imul edx, ecx
imul ecx, dword [esi + 0x1c]
sar ecx, 0x10
add ecx, edx
mov dword [ebx + eax*4], ecx
dec eax
cmp dword [esi + 0x14], eax
jne 0x101dc6f3
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x91c]
test edx, edx
jle 0x101dcb91
mov eax, dword [esi + 0x24]
mov edi, dword [esi + 0x18]
mov dword [esi + 0x1c], edx
mov edx, dword [esi + 0x3c]
movsx ecx, word [eax]
shl edi, 2
movsx ebx, word [eax + 6]
mov dword [esi + 0x14], ecx
lea ecx, [edx*4]
mov dword [esi + 0x30], ebx
sub ecx, edi
movsx edi, word [eax + 2]
mov dword [esi + 0x18], edi
movsx edi, word [eax + 4]
movsx eax, word [eax + 8]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x34], edi
add ecx, eax
lea eax, [eax + edx*4]
mov dword [esi + 0x24], eax
xor eax, eax
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x14]
mov edx, dword [ecx + eax*4 + 8]
movzx ebx, dx
sar edx, 0x10
imul ebx, edi
imul edx, edi
sar ebx, 0x10
add ebx, edx
mov edx, dword [ecx + eax*4 + 4]
mov ecx, dword [esi + 0x18]
movzx edi, dx
sar edx, 0x10
imul edx, ecx
imul edi, ecx
mov ecx, dword [esi + 0xc]
add edx, ebx
sar edi, 0x10
add edi, edx
mov edx, dword [ecx + eax*4]
mov ecx, dword [esi + 0x34]
movzx ebx, dx
sar edx, 0x10
imul edx, ecx
imul ebx, ecx
mov ecx, dword [esi + 0xc]
add edx, edi
sar ebx, 0x10
add ebx, edx
mov edx, dword [ecx + eax*4 - 4]
mov ecx, dword [esi + 0x30]
movzx edi, dx
sar edx, 0x10
imul edx, ecx
imul edi, ecx
mov ecx, dword [esi + 0x28]
add edx, ebx
mov ebx, dword [esi + 0xc]
sar edi, 0x10
add edi, edx
mov ebx, dword [ebx + eax*4 - 8]
movzx edx, bx
sar ebx, 0x10
imul ebx, ecx
imul edx, ecx
mov ecx, dword [esi + 0x40]
add ebx, edi
sar edx, 0x10
add edx, ebx
mov edi, dword [ecx + eax*4]
mov ecx, dword [esi + 0x24]
lea ebx, [edi + edx*2]
lea edx, [edi + edx*2 + 4]
mov edi, dword [esi + 0x54]
mov dword [edi + eax*4], edx
lea edi, [ebx + ebx + 8]
mov dword [ecx + eax*4], edi
inc eax
cmp dword [esi + 0x1c], eax
jne 0x101dc76a
mov ecx, dword [esi + 0x54]
mov edi, dword [ebp + 8]
mov edx, dword [esi + 0x1c]
add dword [esi + 0x3c], eax
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x38]
mov ebx, dword [esi + 0x10]
test edx, edx
jle 0x101dcb94
mov eax, ecx
sar ecx, 0x15
xor ebx, ebx
shr eax, 6
inc ecx
cwde
sar ecx, 1
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], ecx
mov eax, dword [edi + 0x924]
cmp eax, 0xa
je 0x101dc87a
cmp eax, 0x10
je 0x101dc87a
push 0xc7
push str..._.._third_party_opus_src_silk_decode_core.c
push str.assertion_failed:_psDec__LPC_order__10__psDec__LPC_order__16
call fcn.10193ce0
add esp, 0xc
mov eax, dword [edi + 0x924]
mov ecx, eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], ebx
sar ecx, 1
mov edx, dword [eax + ebx*4 + 0x3c]
movsx eax, word [esi + 0x78]
mov edi, edx
sar edi, 0x10
imul edi, eax
add edi, ecx
movzx ecx, dx
imul ecx, eax
mov eax, dword [esi + 0x10]
sar ecx, 0x10
add ecx, edi
movsx edi, word [esi + 0x7a]
mov eax, dword [eax + ebx*4 + 0x38]
mov edx, eax
movzx eax, ax
sar edx, 0x10
imul eax, edi
imul edx, edi
sar eax, 0x10
movsx edi, word [esi + 0x7c]
add edx, ecx
mov ecx, ebx
add eax, edx
mov edx, dword [esi + 0x10]
mov ebx, dword [edx + ebx*4 + 0x34]
mov edx, ebx
sar edx, 0x10
imul edx, edi
add edx, eax
movzx eax, bx
imul eax, edi
movsx edi, word [esi + 0x7e]
sar eax, 0x10
add eax, edx
mov edx, dword [esi + 0x10]
mov ebx, dword [edx + ecx*4 + 0x30]
mov ecx, edx
mov edx, ebx
sar edx, 0x10
imul edx, edi
add edx, eax
movzx eax, bx
mov ebx, dword [esi + 0xc]
imul eax, edi
movsx edi, word [esi + 0x80]
sar eax, 0x10
add eax, edx
mov edx, dword [ecx + ebx*4 + 0x2c]
mov ecx, dword [ecx + ebx*4 + 0x28]
mov dword [esi + 0x14], edx
sar edx, 0x10
imul edx, edi
add edx, eax
movzx eax, word [esi + 0x14]
imul eax, edi
movsx edi, word [esi + 0x82]
sar eax, 0x10
add eax, edx
mov edx, ecx
sar edx, 0x10
imul edx, edi
add edx, eax
movzx eax, cx
mov ecx, dword [esi + 0x10]
imul eax, edi
movsx edi, word [esi + 0x84]
sar eax, 0x10
add eax, edx
mov edx, dword [ecx + ebx*4 + 0x24]
mov ecx, dword [ecx + ebx*4 + 0x20]
mov dword [esi + 0x14], edx
sar edx, 0x10
imul edx, edi
add edx, eax
movzx eax, word [esi + 0x14]
imul eax, edi
movsx edi, word [esi + 0x86]
sar eax, 0x10
add eax, edx
mov edx, ecx
sar edx, 0x10
imul edx, edi
add edx, eax
movzx eax, cx
mov ecx, dword [esi + 0x10]
imul eax, edi
movsx edi, word [esi + 0x88]
sar eax, 0x10
add eax, edx
mov ecx, dword [ecx + ebx*4 + 0x1c]
mov edx, ecx
sar edx, 0x10
imul edx, edi
add edx, eax
movzx eax, cx
mov ecx, dword [esi + 0x10]
imul eax, edi
movsx edi, word [esi + 0x8a]
sar eax, 0x10
add eax, edx
mov ecx, dword [ecx + ebx*4 + 0x18]
mov edx, ecx
movzx ecx, cx
sar edx, 0x10
imul ecx, edi
imul edx, edi
sar ecx, 0x10
add edx, eax
add ecx, edx
cmp dword [esi + 0x1c], 0x10
jne 0x101dcaea
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
mov eax, dword [eax + edx*4 + 0x14]
mov ebx, edx
movsx edx, word [esi + 0x8c]
movzx edi, ax
sar eax, 0x10
imul eax, edx
imul edi, edx
mov edx, dword [esi + 0x10]
mov dword [esi + 0x1c], edi
mov edi, ebx
movsx edi, word [esi + 0x8e]
add eax, ecx
mov ecx, dword [esi + 0x1c]
mov ebx, dword [edx + ebx*4 + 0x10]
sar ecx, 0x10
add eax, ecx
movzx edx, bx
sar ebx, 0x10
imul edx, edi
imul ebx, edi
mov edi, dword [esi + 0xc]
mov dword [esi + 0x30], edx
mov edx, dword [esi + 0x10]
mov dword [esi + 0x14], ebx
movsx ebx, word [esi + 0x90]
mov ecx, dword [esi + 0x30]
add eax, dword [esi + 0x14]
mov edx, dword [edx + edi*4 + 0xc]
sar ecx, 0x10
add eax, ecx
movzx edi, dx
sar edx, 0x10
imul edx, ebx
imul edi, ebx
movsx ebx, word [esi + 0x92]
mov dword [esi + 0x28], edx
mov dword [esi + 0x24], edi
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x24]
add eax, dword [esi + 0x28]
mov edx, dword [edi + edx*4 + 8]
sar ecx, 0x10
add eax, ecx
movzx edi, dx
sar edx, 0x10
imul edx, ebx
imul edi, ebx
movsx ebx, word [esi + 0x94]
mov dword [esi + 0x6c], edx
mov dword [esi + 0x68], edi
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x68]
add eax, dword [esi + 0x6c]
mov edx, dword [edx + edi*4 + 4]
sar ecx, 0x10
add eax, ecx
movzx edi, dx
sar edx, 0x10
imul edx, ebx
imul edi, ebx
mov dword [esi + 0x64], edx
mov dword [esi + 0x60], edi
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x60]
add eax, dword [esi + 0x64]
mov ebx, dword [edx + edi*4]
movsx edi, word [esi + 0x96]
sar ecx, 0x10
add eax, ecx
movzx edx, bx
sar ebx, 0x10
imul edx, edi
imul ebx, edi
add eax, ebx
sar edx, 0x10
add eax, edx
mov ecx, eax
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 0x38]
cmp ecx, 0xf7ffffff
mov eax, dword [eax + ebx*4]
jg 0x101dcb03
mov ecx, 0xf8000000
cmp ecx, 0x8000000
jl 0x101dcb10
mov ecx, 0x7ffffff
shl ecx, 4
mov edx, ecx
add edx, eax
js 0x101dcb86
test ecx, eax
mov eax, 0x80000000
js 0x101dcb24
mov eax, edx
mov ecx, dword [esi + 0x10]
movzx edx, ax
mov dword [ecx + ebx*4 + 0x40], eax
mov ebx, dword [esi + 0x34]
mov ecx, eax
imul eax, edi
sar ecx, 0x10
imul edx, ebx
imul ecx, ebx
add eax, ecx
sar edx, 0x10
mov ecx, 0x8000
add eax, edx
cmp eax, 0xff7fff80
jl 0x101dcb5a
mov ecx, eax
shr ecx, 7
inc ecx
shr ecx, 1
mov edi, dword [ebp + 8]
cmp eax, 0x7fff7f
mov eax, 0x7fff
jg 0x101dcb6b
mov eax, ecx
mov ecx, dword [esi + 0x44]
mov ebx, dword [esi + 0xc]
mov word [ecx + ebx*2], ax
inc ebx
mov edx, dword [edi + 0x91c]
cmp ebx, edx
jl 0x101dc84d
jmp 0x101dcb91
or ecx, eax
mov eax, 0x7fffffff
js 0x101dcb22
jmp 0x101dcb24
mov ebx, dword [esi + 0x10]
lea eax, [ebx + edx*4]
push 0x40
push eax
push ebx
mov edi, edx
call fcn.101e35e0
add esp, 0xc
mov eax, dword [esi + 0x40]
mov edx, dword [ebp + 8]
lea eax, [eax + edi*4]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x44]
lea eax, [eax + edi*2]
mov edi, dword [esi + 0x20]
mov dword [esi + 0x44], eax
inc edi
cmp edi, dword [edx + 0x914]
jl 0x101dc115
push 0x40
push ebx
push dword [esi + 0x58]
call fcn.101e35e0
add esp, 0xc
mov ecx, dword [esi + 0x98]
xor ecx, ebp
call fcn.101e05ab
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret