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

Disassembly:
push ebp
lea ebp, [esp - 0x40]
sub esp, 0xa4
mov eax, dword [0x10259b00]
xor eax, ebp
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x54]
lea ecx, [ebp - 0x14]
push ebx
mov ebx, dword [ebp + 0x48]
mov dword [ebp + 0x14], eax
push esi
push edi
mov eax, dword [ebx + 4]
xor edi, edi
add eax, ebx
mov dword [ebp + 0x20], edi
mov dword [ebp], eax
mov eax, dword [ebx]
push ecx
add eax, ebx
mov dword [ebp - 0x18], edi
push 0x271f
push eax
mov dword [ebp + 8], 0xffffffff
mov dword [ebx + 0x46e0], edi
mov dword [ebp + 0x38], eax
call fcn.10142790
mov eax, dword [ebx + 0x37a8]
add esp, 0xc
cmp dword [ebx + 0x70], 0x803
mov dword [ebp + 0x1c], eax
jne 0x10139d6e
mov dword [ebp + 0x2c], edi
jmp 0x10139d74
mov eax, dword [ebx + 0x78]
mov dword [ebp + 0x2c], eax
mov esi, dword [ebx + 0x94]
mov eax, esi
mov ecx, dword [ebp + 0x50]
cdq
idiv ecx
mov edx, eax
mov dword [ebp - 0xc], edx
cmp dword [ebp + 0x68], edi
je 0x10139d91
mov dword [ebp + 8], edi
jmp 0x10139e08
mov eax, dword [ebp + 0x64]
cmp dword [eax], edi
je 0x10139e08
movss xmm0, dword [eax + 0x24]
xor eax, eax
comiss xmm0, dword [0x1021e144]
setae al
mov dword [ebp + 8], eax
test eax, eax
jne 0x10139e08
mov esi, dword [ebx + 0x74]
mov eax, dword [ebx + 0xb8]
imul esi, ecx
and eax, 7
mov ecx, dword [ebp + 0x4c]
mov eax, dword [eax*4 + 0x1024313c]
push esi
push ecx
push ecx
call eax
movd xmm0, esi
xor eax, eax
cvtdq2ps xmm0, xmm0
mov esi, dword [ebx + 0x94]
add esp, 0xc
mov edx, dword [ebp - 0xc]
movss dword [ebp + 0x34], xmm0
fdiv dword [ebp + 0x34]
fstp dword [ebp + 0x34]
movss xmm0, dword [ebp + 0x34]
mulss xmm0, dword [0x102439cc]
comiss xmm0, dword [ebx + 0x46d8]
seta al
mov dword [ebp + 8], eax
cmp dword [ebx + 0x37b0], edi
je 0x10139e27
mov eax, 1
mov dword [ebx + 0x37b0], edi
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x10], 2
jmp 0x10139e36
mov eax, dword [ebp + 0x74]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x6c]
xor ecx, ecx
cmp dword [ebx + 0x3798], 0x3ea
cmovne ecx, eax
mov dword [ebp + 0x24], ecx
test ecx, ecx
je 0x10139e76
push dword [ebx + 0x3778]
push edx
push dword [ebx + 0xa4]
push dword [ebp + 0x58]
call fcn.10138df0
mov ecx, eax
xor edx, edx
mov eax, dword [ebp + 0x24]
add esp, 0x10
test ecx, ecx
mov dword [ebp + 0x20], ecx
cmove eax, edx
mov dword [ebp + 0x24], eax
mov eax, dword [ebx + 0xa4]
lea ecx, [esi*8]
imul eax, dword [ebp + 0x50]
cdq
idiv ecx
mov edx, dword [ebp + 0x58]
mov ecx, edx
sub ecx, dword [ebp + 0x20]
cmp ecx, eax
cmovge ecx, eax
lea eax, [edx - 1]
mov dword [ebp + 0x30], ecx
mov ecx, dword [ebp + 0x54]
push eax
inc ecx
lea eax, [ebp - 0x58]
push ecx
push eax
mov dword [ebp + 0x54], ecx
call fcn.1014e310
mov eax, dword [ebp + 0x50]
add esp, 0xc
add eax, dword [ebp + 0x2c]
mov esi, dword [ebx + 0x74]
imul eax, esi
shl eax, 2
call fcn.100a0ef0
mov eax, esi
mov edx, esp
imul eax, dword [ebp + 0x2c]
mov dword [ebp + 0x28], edx
shl eax, 2
push eax
mov eax, dword [ebx + 0xb0]
sub eax, dword [ebp + 0x2c]
imul eax, esi
add eax, 0xdf4
lea eax, [ebx + eax*4]
push eax
push edx
call fcn.100a1aa0
add esp, 0xc
cmp dword [ebx + 0x3798], 0x3ea
jne 0x10139f10
push 0x3c
call fcn.10152510
mov esi, eax
add esp, 4
shl esi, 8
jmp 0x10139f16
mov esi, dword [ebp]
mov esi, dword [esi + 8]
mov edx, dword [ebx + 0x3780]
sub esi, edx
movzx eax, si
imul ecx, eax, 0x3d7
sar esi, 0x10
imul eax, esi, 0x3d7
sar ecx, 0x10
add ecx, edx
add eax, ecx
mov dword [ebx + 0x3780], eax
sar eax, 8
push eax
call fcn.101525b0
mov edx, dword [ebx + 0x94]
lea ecx, [ebx + 0x3788]
add esp, 4
mov dword [ebp + 0x10], ecx
cmp dword [ebx + 0x70], 0x800
mov esi, eax
mov eax, dword [ebx + 0x74]
mov dword [ebp - 4], eax
jne 0x1013a1fb
imul eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax*4]
mov dword [ebp + 4], eax
movsx eax, si
imul esi, eax, 0x9a7
mov eax, 0x10624dd3
imul edx
mov eax, esi
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cdq
idiv ecx
mov ecx, 0x10000000
mov edx, eax
imul eax, edx, 0x1d7
mov esi, edx
mov dword [ebp - 0x24], edx
sar esi, 0x10
sub ecx, eax
mov eax, ecx
mov dword [ebp - 0x64], ecx
neg eax
mov dword [ebp - 0x5c], ecx
add eax, eax
sar ecx, 6
mov dword [ebp - 0x60], eax
mov eax, edx
mov dword [ebp + 0x34], ecx
sar eax, 0xf
inc eax
movzx ecx, dx
movsx edi, cx
sar eax, 1
mov dword [ebp + 0x18], eax
add eax, esi
imul eax, ecx
mov ecx, dword [ebp + 0x34]
movzx edx, dx
imul edx, edi
sar ecx, 0x10
mov dword [ebp - 0x1c], ecx
imul edi, esi
mov esi, dword [ebp - 0x1c]
sar edx, 0x10
add eax, edx
movsx ebx, ax
mov eax, dword [ebp + 0x18]
imul eax, dword [ebp - 0x24]
lea ecx, [edx + edi]
mov edi, dword [ebp + 0x34]
movzx edx, di
add eax, 0xff800000
add ecx, eax
mov eax, edx
sar ecx, 0xf
inc ecx
imul eax, ebx
sar ecx, 1
imul ecx, edi
sar eax, 0x10
add ecx, eax
mov eax, esi
imul eax, ebx
add ecx, eax
movsx eax, di
mov dword [ebp - 0x20], ecx
mov ecx, edi
sar ecx, 0xf
inc ecx
imul edx, eax
sar ecx, 1
imul ecx, edi
mov edi, dword [ebp - 4]
imul esi, eax
sar edx, 0x10
add ecx, edx
add ecx, esi
mov dword [ebp - 0x1c], ecx
mov esi, dword [ebp + 0x50]
lea eax, [ebp - 0x20]
mov ebx, dword [ebp + 0x4c]
push edi
push esi
push dword [ebp + 4]
push dword [ebp + 0x10]
push eax
lea eax, [ebp - 0x64]
push eax
push ebx
call fcn.1013d240
add esp, 0x1c
cmp edi, 2
jne 0x1013a095
mov eax, dword [ebp + 4]
push edi
add eax, 4
push esi
push eax
mov eax, dword [ebp + 0x10]
add eax, 8
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebx + 4]
push eax
call fcn.1013d240
add esp, 0x1c
mov ebx, dword [ebp + 0x48]
xor edi, edi
cmp dword [ebp + 0x5c], 0
je 0x1013a135
mov edx, dword [ebx + 0x74]
mov eax, edx
imul eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x28]
imul edx, esi
push edx
lea eax, [ecx + eax*4]
mov ecx, dword [ebx + 0xb8]
and ecx, 7
push eax
push eax
mov eax, dword [ecx*4 + 0x1024313c]
call eax
movss xmm0, dword [0x102439dc]
add esp, 0xc
fstp dword [ebp - 4]
movss xmm1, dword [ebp - 4]
comiss xmm0, xmm1
jbe 0x1013a0ec
ucomiss xmm1, xmm1
lahf
test ah, 0x44
jnp 0x1013a135
mov ecx, dword [ebx + 0x74]
mov eax, ecx
imul ecx, dword [ebp + 0x2c]
imul eax, esi
shl eax, 2
push eax
mov eax, dword [ebp + 0x28]
push 0
lea eax, [eax + ecx*4]
push eax
call fcn.100a2020
add esp, 0xc
mov dword [ebx + 0x3794], 0
mov dword [ebx + 0x3790], 0
mov dword [ebx + 0x378c], 0
mov dword [ebx + 0x3788], 0
cmp dword [ebx + 0x3798], 0x3ea
movss xmm0, dword [0x101f71fc]
movss dword [ebp + 0x10], xmm0
movss dword [ebp + 0x34], xmm0
je 0x1013a7e9
mov eax, dword [ebx + 0x74]
mov dword [ebp - 4], eax
imul eax, esi
add eax, eax
call fcn.100a0ef0
mov edi, dword [ebp + 0x30]
mov eax, dword [ebx + 0x98]
mov dword [ebp + 4], esp
lea edi, [edi*8 - 8]
imul edi, dword [ebp - 0xc]
cmp dword [ebx + 0x3798], 0x3e9
jne 0x1013a21f
push dword [ebx + 0x3778]
xor ecx, ecx
push dword [ebx + 0x38]
push eax
imul eax, esi, 0x32
cmp dword [ebx + 0x94], eax
sete cl
push ecx
mov ecx, dword [ebp + 0x1c]
push ecx
push edi
call fcn.10138e80
add esp, 0x18
mov dword [ebx + 0x24], eax
cmp dword [ebx + 0x37b8], 0
jne 0x1013a1f3
sub eax, edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10223018]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1017e9c8]
call fcn.100b1850
movss xmm1, dword [ebp + 0x10]
cvtsd2ss xmm0, xmm0
subss xmm1, xmm0
movss dword [ebp + 0x34], xmm1
mov eax, dword [ebx + 0x98]
jmp 0x1013a222
mov esi, dword [ebp + 0x50]
push edx
push eax
imul eax, dword [ebp + 0x2c]
push esi
push ecx
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax*4]
push eax
push 3
push dword [ebp + 0x4c]
call fcn.101392c0
add esp, 0x1c
jmp 0x1013a09a
mov dword [ebx + 0x24], edi
mov ecx, dword [ebx + 0x37b8]
mov dword [ebp + 0x30], ecx
test ecx, ecx
je 0x1013a360
test eax, eax
je 0x1013a360
cmp dword [ebx + 0xb4], 0
jne 0x1013a360
mov eax, dword [ebx + 0x37a8]
xorps xmm4, xmm4
xorps xmm2, xmm2
mov edi, 0x11
cmp eax, 0x44d
jne 0x1013a26e
mov edi, 0xd
mov dword [ebp + 0x18], 0x1f40
jmp 0x1013a288
mov dword [ebp + 0x18], 0x3e80
cmp eax, 0x44e
jne 0x1013a288
mov edi, 0xf
mov dword [ebp + 0x18], 0x2ee0
mov eax, dword [ebx + 0x74]
test eax, eax
jle 0x1013a2e5
movss xmm1, dword [0x10243710]
xor edx, edx
movss xmm3, dword [0x1017d760]
mov esi, eax
mov ebx, dword [ebp + 0x30]
lea eax, [ebx + edx]
mov ecx, edi
nop dword [eax + eax]
movss xmm0, dword [eax]
minss xmm0, xmm3
comiss xmm0, xmm1
jbe 0x1013a2c8
comiss xmm0, xmm4
jbe 0x1013a2cb
mulss xmm0, xmm3
jmp 0x1013a2cb
movaps xmm0, xmm1
add eax, 4
addss xmm2, xmm0
sub ecx, 1
jne 0x1013a2b0
add edx, 0x54
sub esi, 1
jne 0x1013a2a6
mov ebx, dword [ebp + 0x48]
mov eax, dword [ebp - 4]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov edi, dword [ebx + 0x24]
mov ecx, edi
neg ecx
add ecx, ecx
divss xmm2, xmm0
movd xmm0, eax
mov eax, 0x55555556
cvtdq2ps xmm0, xmm0
imul ecx
mulss xmm2, xmm0
movd xmm0, dword [ebp + 0x18]
cvtdq2ps xmm0, xmm0
mov ecx, dword [ebx + 0x37a8]
mov eax, edx
shr eax, 0x1f
add eax, edx
addss xmm2, dword [0x1021e148]
mulss xmm2, xmm0
cvttss2si esi, xmm2
cmp esi, eax
cmovg eax, esi
cmp ecx, 0x450
je 0x1013a345
cmp ecx, 0x451
jne 0x1013a358
lea ecx, [eax + eax*2]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov esi, dword [ebp + 0x50]
add eax, edi
mov dword [ebx + 0x24], eax
imul eax, esi, 0x3e8
cdq
idiv dword [ebx + 0x94]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x74]
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x3778]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp + 0x1c]
cmp eax, 0x44d
jne 0x1013a397
mov dword [ebx + 0x1c], 0x1f40
mov edi, 0x1f40
jmp 0x1013a3e2
cmp eax, 0x44e
jne 0x1013a3ac
mov dword [ebx + 0x1c], 0x2ee0
mov edi, 0x2ee0
jmp 0x1013a3e2
cmp dword [ebx + 0x3798], 0x3e9
je 0x1013a3d6
cmp eax, 0x44f
je 0x1013a3d6
push 0x798
push str.F:_vcpkg_2024.05.24_buildtreesopus_src_v1.5.1_cfcae413d5.clean_srcopus_encoder.c
push str.assertion_failed:_st__mode__MODE_HYBRID__curr_bandwidth__OPUS_BANDWIDTH_WIDEBAND
call fcn.1012fae0
add esp, 0xc
mov dword [ebx + 0x1c], 0x3e80
mov edi, 0x3e80
mov ecx, dword [ebx + 0x3798]
mov eax, 0x3e80
cmp ecx, 0x3e9
mov dword [ebp + 0x30], ecx
mov edx, 0x1f40
cmovne eax, edx
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x14], 0x3e80
cmp ecx, 0x3e8
jne 0x1013a46b
mov eax, dword [ebp - 0xc]
imul eax, dword [ebp + 0x58]
shl eax, 3
cmp dword [ebp - 0xc], 0x32
jle 0x1013a436
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, 0x1f40
cmp eax, 0x1f40
jge 0x1013a451
mov ecx, 0x2ee0
mov dword [ebx + 0x14], 0x2ee0
cmp edi, ecx
cmova edi, ecx
mov dword [ebx + 0x1c], edi
cmp eax, 0x1b58
jge 0x1013a46b
cmp edi, 0x1f40
mov dword [ebx + 0x14], 0x1f40
cmova edi, edx
mov dword [ebx + 0x1c], edi
mov edi, dword [ebx + 0x98]
xor eax, eax
test edi, edi
sete al
cmp dword [ebp + 0x24], 0
mov dword [ebx + 0x40], eax
mov eax, dword [ebp + 0x58]
lea edx, [eax*8 - 8]
mov ecx, edx
mov dword [ebx + 0x44], edx
mov dword [ebp + 0x18], ecx
je 0x1013a4be
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x18], ecx
cmp eax, 2
jl 0x1013a4be
shl eax, 3
sub edx, eax
cmp dword [ebp + 0x30], 0x3e9
lea ecx, [edx - 1]
mov dword [ebp + 0x18], ecx
mov dword [ebx + 0x44], ecx
jne 0x1013a4be
add ecx, 0xffffffec
mov dword [ebp + 0x18], ecx
mov dword [ebx + 0x44], ecx
cmp dword [ebx + 0x3798], 0x3e9
jne 0x1013a551
test edi, edi
jne 0x1013a512
mov eax, dword [ebx + 0x24]
imul eax, esi
cdq
idiv dword [ebx + 0x94]
mov edx, eax
mov eax, ecx
sub eax, edx
jns 0x1013a4eb
xor eax, eax
jmp 0x1013a4f2
mov eax, ecx
sub eax, edx
movzx eax, ax
cwde
mov dword [ebx + 0x40], 0
lea eax, [eax + eax*2]
cdq
and edx, 3
add eax, edx
sar eax, 2
sub ecx, eax
mov eax, 0
cmovns eax, ecx
jmp 0x1013a54e
push dword [ebx + 0x3778]
mov esi, dword [ebx + 0x94]
xor ecx, ecx
push dword [ebx + 0x38]
push edi
mov edi, dword [ebp + 0x50]
imul eax, edi, 0x32
cmp esi, eax
mov eax, esi
sete cl
imul eax, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 0x1c]
push ecx
cdq
idiv edi
push eax
call fcn.10138e80
imul eax, edi
add esp, 0x18
cdq
idiv esi
mov esi, edi
mov dword [ebx + 0x44], eax
cmp dword [ebp - 0x10], 0
je 0x1013a66b
mov edi, dword [ebx + 0x94]
mov eax, 0x51eb851f
mov ecx, dword [ebx + 0x74]
imul edi
mov eax, dword [ebx + 0xb0]
sub eax, dword [ebx + 0x78]
sar edx, 7
mov esi, edx
mov dword [ebp + 0x30], 0
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp + 0x48]
sub eax, esi
add edx, 0x37d0
imul eax, ecx
push edi
lea ebx, [eax*4]
mov eax, dword [ebp - 0x14]
add edx, ebx
push dword [eax + 0x3c]
push ecx
push esi
push dword [eax + 4]
sub esp, 8
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
push edx
push edx
call fcn.10139950
mov esi, dword [ebp + 0x48]
push ebx
add esi, 0x37d0
push 0
push esi
call fcn.100a2020
mov ebx, dword [ebp + 0x48]
add esp, 0x30
mov edi, dword [ebp + 4]
xor ecx, ecx
mov eax, dword [ebx + 0x74]
mov edx, dword [ebx + 0xb0]
imul eax, edx
test eax, eax
jle 0x1013a642
movss xmm3, dword [0x1017c5b8]
movss xmm4, dword [0x10173830]
movss xmm5, dword [0x10178b50]
nop word [eax + eax]
movss xmm0, dword [esi]
lea esi, [esi + 4]
mulss xmm0, xmm3
movaps xmm1, xmm4
movaps xmm2, xmm5
maxss xmm1, xmm0
minss xmm2, xmm1
cvtss2si eax, xmm2
mov word [edi + ecx*2], ax
inc ecx
mov eax, dword [ebx + 0x74]
mov edx, dword [ebx + 0xb0]
imul eax, edx
cmp ecx, eax
jl 0x1013a610
push dword [ebp + 8]
lea eax, [ebp + 0x30]
push dword [ebp - 0x10]
push eax
push 0
push edx
push edi
lea eax, [ebx + 8]
push eax
push dword [ebp]
call fcn.1014e740
mov esi, dword [ebp + 0x50]
add esp, 0x20
mov dword [ebx + 0x4c], 0
jmp 0x1013a66e
mov edi, dword [ebp + 4]
mov ecx, dword [ebx + 0x74]
xor edx, edx
mov eax, ecx
imul eax, esi
test eax, eax
jle 0x1013a6c3
nop dword [eax]
imul ecx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x28]
movss xmm1, dword [0x10173830]
movss xmm2, dword [0x10178b50]
add ecx, edx
movss xmm0, dword [eax + ecx*4]
mulss xmm0, dword [0x1017c5b8]
maxss xmm1, xmm0
minss xmm2, xmm1
cvtss2si eax, xmm2
mov word [edi + edx*2], ax
mov eax, esi
mov ecx, dword [ebx + 0x74]
inc edx
imul eax, ecx
cmp edx, eax
jl 0x1013a680
push dword [ebp + 8]
lea eax, [ebp - 0x28]
push 0
push eax
lea eax, [ebp - 0x58]
push eax
push esi
push edi
lea eax, [ebx + 8]
push eax
push dword [ebp]
call fcn.1014e740
mov edi, eax
add esp, 0x20
test edi, edi
jne 0x1013b177
cmp dword [ebx + 0x3798], 0x3e8
mov ecx, dword [ebx + 0x54]
jne 0x1013a730
cmp ecx, 0x1f40
jne 0x1013a70c
mov ecx, 0x44d
mov dword [ebp + 0x1c], ecx
jmp 0x1013a752
cmp ecx, 0x2ee0
jne 0x1013a71e
mov ecx, 0x44e
mov dword [ebp + 0x1c], ecx
jmp 0x1013a752
cmp ecx, 0x3e80
jne 0x1013a74f
mov ecx, 0x44f
mov dword [ebp + 0x1c], ecx
jmp 0x1013a752
cmp ecx, 0x3e80
je 0x1013a74f
push 0x80e
push str.F:_vcpkg_2024.05.24_buildtreesopus_src_v1.5.1_cfcae413d5.clean_srcopus_encoder.c
push str.assertion_failed:_st__silk_mode.internalSampleRate__16000
call fcn.1012fae0
add esp, 0xc
mov ecx, dword [ebp + 0x1c]
cmp dword [ebx + 0x64], 0
je 0x1013a768
cmp dword [ebx + 0x46dc], 0
jne 0x1013a768
mov eax, 1
jmp 0x1013a76a
xor eax, eax
cmp dword [ebp - 0x28], 0
mov dword [ebx + 0x4c], eax
jne 0x1013a7ab
push dword [ebx + 0x3778]
push ecx
mov eax, dword [ebx + 0x94]
cdq
idiv esi
mov dword [ebx + 0x46e0], 0
push eax
push dword [ebx + 0x3798]
call fcn.10139b90
mov ecx, dword [ebp + 0x14]
add esp, 0x10
mov byte [ecx], al
mov eax, 1
jmp 0x1013b1a6
test eax, eax
je 0x1013a7e9
push dword [ebx + 0x3778]
push dword [ebp - 0xc]
push dword [ebx + 0xa4]
push dword [ebp + 0x58]
call fcn.10138df0
mov ecx, eax
mov dword [ebp + 0xc], 0
xor eax, eax
mov dword [ebp + 0x20], ecx
add esp, 0x10
mov dword [ebx + 0x37b0], 1
test ecx, ecx
setne al
mov dword [ebp + 0x24], eax
mov ecx, dword [ebp + 0x1c]
mov eax, 0x15
add ecx, 0xfffffbb3
cmp ecx, 4
ja case.0x1013a7fc.1105
jmp dword [ecx*4 + 0x1013b1bc]
mov eax, 0xd
jmp case.0x1013a7fc.1105
mov eax, 0x11
jmp case.0x1013a7fc.1105
mov eax, 0x13
mov esi, dword [ebp + 0x38]
push eax
push 0x271c
push esi
call fcn.10142790
push dword [ebx + 0x3778]
push 0x2718
push esi
call fcn.10142790
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.10142790
add esp, 0x24
cmp dword [ebx + 0x3798], 0x3e8
je 0x1013a876
cmp dword [ebx + 0x50], 0
movss xmm0, dword [0x102053f0]
je 0x1013a863
xorps xmm0, xmm0
cvttss2si eax, xmm0
push eax
push 0x2712
push esi
call fcn.10142790
add esp, 0xc
mov ecx, dword [ebx + 0x74]
mov eax, 0x51eb851f
imul ecx, dword [ebx + 0x94]
imul ecx
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
shl esi, 2
mov eax, esi
call fcn.100a0ef0
mov ecx, dword [ebx + 0x3798]
mov dword [ebp], esp
cmp ecx, 0x3e8
je 0x1013a8f4
mov eax, dword [ebx + 0x379c]
cmp ecx, eax
je 0x1013a8f4
test eax, eax
jle 0x1013a8f4
mov ecx, dword [ebx + 0xb0]
mov eax, 0x51eb851f
imul dword [ebx + 0x94]
push esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
sub ecx, dword [ebp + 0x2c]
imul ecx, dword [ebx + 0x74]
add ecx, 0xdf4
lea eax, [ebx + ecx*4]
push eax
push dword [ebp]
call fcn.100a1aa0
add esp, 0xc
mov edx, dword [ebx + 0xb0]
mov eax, edx
sub eax, dword [ebp + 0x2c]
sub eax, dword [ebp + 0x50]
mov ecx, dword [ebx + 0x74]
mov esi, dword [ebp + 0x50]
imul eax, ecx
test eax, eax
jle 0x1013a95e
imul ecx, esi
shl eax, 2
push eax
add ecx, 0xdf4
lea eax, [ebx + ecx*4]
push eax
lea eax, [ebx + 0x37d0]
push eax
call fcn.100a1aa0
mov edx, dword [ebp + 0x2c]
lea eax, [edx + esi]
imul eax, dword [ebx + 0x74]
shl eax, 2
push eax
mov eax, dword [ebx + 0xb0]
push dword [ebp + 0x28]
sub eax, edx
sub eax, esi
imul eax, dword [ebx + 0x74]
add eax, 0xdf4
lea eax, [ebx + eax*4]
push eax
call fcn.100a1aa0
add esp, 0x18
jmp 0x1013a987
mov eax, edx
imul eax, ecx
shl eax, 2
push eax
mov eax, dword [ebp + 0x2c]
sub eax, edx
add eax, esi
imul eax, ecx
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax*4]
push eax
lea eax, [ebx + 0x37d0]
push eax
call fcn.100a1aa0
add esp, 0xc
movss xmm0, dword [ebx + 0x3784]
movss xmm2, dword [ebp + 0x10]
comiss xmm2, xmm0
movss xmm5, dword [ebp + 0x34]
ja 0x1013a9a3
comiss xmm2, xmm5
jbe 0x1013a9d6
push dword [ebx + 0x94]
mov eax, dword [ebp - 0x14]
push dword [eax + 0x3c]
push dword [ebx + 0x74]
push esi
push dword [eax + 4]
mov eax, dword [ebp + 0x28]
sub esp, 8
movss dword [esp + 4], xmm5
movss dword [esp], xmm0
push eax
push eax
call fcn.10139950
movss xmm2, dword [ebp + 0x10]
add esp, 0x24
cmp dword [ebx + 0x3798], 0x3e9
movss dword [ebx + 0x3784], xmm5
jne 0x1013a9f3
cmp dword [ebx + 0x3778], 1
jne 0x1013aa32
mov ecx, dword [ebp + 0x78]
cmp ecx, 0x7d00
jle 0x1013aa07
mov dword [ebx + 0x60], 0x4000
jmp 0x1013aa32
cmp ecx, 0x3e80
jge 0x1013aa18
mov dword [ebx + 0x60], 0
jmp 0x1013aa32
lea eax, [ecx - 0x7d00]
add ecx, 0xffffc950
shl eax, 0xb
cdq
idiv ecx
add eax, 0x4000
mov dword [ebx + 0x60], eax
cmp dword [ebx + 0x37b8], 0
jne 0x1013ab7c
cmp dword [ebx + 0x74], 2
jne 0x1013ab7c
movzx eax, word [ebx + 0x377c]
mov ecx, 0x4000
cmp ax, cx
jl 0x1013aa63
cmp dword [ebx + 0x60], ecx
jge 0x1013ab7c
mov ecx, dword [ebp - 0x14]
movaps xmm7, xmm2
movss xmm5, dword [0x1017d760]
movaps xmm6, xmm2
mov eax, dword [ecx + 0x3c]
mov dword [ebp + 0x30], eax
mov eax, 0xbb80
cdq
idiv dword [ebx + 0x94]
mov dword [ebp + 0x34], eax
mov eax, dword [ecx + 4]
movzx ecx, word [ebx + 0x377c]
cdq
idiv dword [ebp + 0x34]
movsx ecx, cx
mov edx, eax
movd xmm0, ecx
xor ecx, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10221480]
subss xmm7, xmm0
movd xmm0, dword [ebx + 0x60]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10221480]
subss xmm6, xmm0
test edx, edx
jle 0x1013ab37
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x30]
shl eax, 2
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x1c], edx
nop dword [eax + eax]
movss xmm1, dword [ecx]
movss xmm0, dword [ebp + 0x10]
movss xmm3, dword [eax]
movss xmm4, dword [eax + 4]
mulss xmm1, xmm1
add ecx, dword [ebp - 4]
subss xmm0, xmm1
movaps xmm2, xmm1
mulss xmm2, xmm6
mulss xmm0, xmm7
addss xmm2, xmm0
movaps xmm0, xmm3
subss xmm0, xmm4
mulss xmm0, xmm5
mulss xmm2, xmm0
subss xmm3, xmm2
addss xmm4, xmm2
movss dword [eax], xmm3
movss dword [eax + 4], xmm4
add eax, 8
sub edx, 1
jne 0x1013aae0
mov ecx, dword [ebp - 0x1c]
cmp ecx, esi
jge 0x1013ab71
mov eax, dword [ebp + 0x28]
sub esi, ecx
lea eax, [eax + ecx*8]
movss xmm2, dword [eax]
movaps xmm0, xmm2
subss xmm0, dword [eax + 4]
mulss xmm0, xmm5
mulss xmm0, xmm6
subss xmm2, xmm0
addss xmm0, dword [eax + 4]
movss dword [eax], xmm2
movss dword [eax + 4], xmm0
add eax, 8
sub esi, 1
jne 0x1013ab43
mov ax, word [ebx + 0x60]
mov word [ebx + 0x377c], ax
mov edx, dword [ebx + 0x3798]
cmp edx, 0x3ea
je 0x1013ac66
bsr eax, dword [ebp - 0x3c]
xor ecx, ecx
mov esi, 0x14
cmp edx, 0x3e9
cmove ecx, esi
sub ecx, eax
mov eax, dword [ebp - 0x44]
add eax, 0x10
add ecx, eax
mov eax, dword [ebp + 0x58]
lea eax, [eax*8 - 8]
cmp ecx, eax
jg 0x1013ac66
mov esi, dword [ebp + 0x24]
cmp edx, 0x3e9
jne 0x1013abde
push 0xc
lea eax, [ebp - 0x58]
push esi
push eax
call fcn.1014e000
mov edx, dword [ebx + 0x3798]
add esp, 0xc
test esi, esi
je 0x1013ac5d
push 1
push dword [ebp + 0xc]
lea eax, [ebp - 0x58]
push eax
call fcn.1014e000
bsr eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x44]
add esp, 0xc
mov edx, dword [ebx + 0x3798]
sub ecx, eax
mov eax, dword [ebp + 0x58]
cmp edx, 0x3e9
jne 0x1013ac12
add ecx, 0x11
jmp 0x1013ac15
add ecx, 6
sar ecx, 3
sub eax, ecx
mov ecx, dword [ebp + 0x20]
dec eax
cmp eax, ecx
cmovl ecx, eax
mov eax, 2
cmp ecx, eax
cmovl ecx, eax
mov eax, 0x101
cmp ecx, eax
cmovg ecx, eax
mov dword [ebp + 0x20], ecx
cmp edx, 0x3e9
jne 0x1013ac60
lea eax, [ecx - 2]
push 0x100
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.1014e540
mov edx, dword [ebx + 0x3798]
add esp, 0xc
mov ecx, dword [ebp + 0x20]
test esi, esi
jne 0x1013ac7c
jmp 0x1013ac6d
mov dword [ebp + 0x24], 0
xor ecx, ecx
mov dword [ebx + 0x37b0], 0
mov dword [ebp + 0x20], ecx
xor esi, esi
mov eax, 0x11
cmp edx, 0x3ea
cmove eax, esi
mov dword [ebp + 0x30], eax
cmp edx, 0x3e8
jne 0x1013acb6
bsr eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x44]
sub edi, eax
lea eax, [ebp - 0x58]
add edi, 6
push eax
sar edi, 3
call fcn.1014e170
add esp, 4
mov esi, edi
jmp 0x1013acc9
mov esi, dword [ebp + 0x58]
lea eax, [ebp - 0x58]
sub esi, ecx
dec esi
push esi
push eax
call fcn.1014e4f0
add esp, 8
cmp dword [ebp + 0x24], 0
jne 0x1013acdb
cmp dword [ebx + 0x3798], 0x3e8
je 0x1013acee
push dword [ebp + 0x64]
push 0x2726
push dword [ebp + 0x38]
call fcn.10142790
add esp, 0xc
cmp dword [ebx + 0x3798], 0x3e9
jne 0x1013ad1a
mov eax, dword [ebx + 0x68]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0x6c]
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
push eax
push 0x272c
push dword [ebp + 0x38]
call fcn.10142790
add esp, 0xc
cmp dword [ebp + 0x24], 0
je 0x1013adb3
cmp dword [ebp + 0xc], 0
je 0x1013adb3
push 0
push 0x271a
push dword [ebp + 0x38]
call fcn.10142790
push 0
push 0xfa6
push dword [ebp + 0x38]
call fcn.10142790
push 0xffffffffffffffff
push 0xfa2
push dword [ebp + 0x38]
call fcn.10142790
mov eax, dword [ebp + 0x54]
push 0
push dword [ebp + 0x20]
add eax, esi
push eax
mov eax, 0x51eb851f
imul dword [ebx + 0x94]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push dword [ebp + 0x28]
push dword [ebp + 0x38]
call fcn.1013df40
add esp, 0x3c
test eax, eax
js 0x1013b177
lea eax, [ebp - 0x18]
push eax
push 0xfbf
push dword [ebp + 0x38]
call fcn.10142790
push 0xfbc
push dword [ebp + 0x38]
call fcn.10142790
add esp, 0x14
push dword [ebp + 0x30]
push 0x271a
push dword [ebp + 0x38]
call fcn.10142790
add esp, 0xc
cmp dword [ebx + 0x3798], 0x3e8
je 0x1013af35
push dword [ebx + 0x98]
push 0xfa6
push dword [ebp + 0x38]
call fcn.10142790
add esp, 0xc
cmp dword [ebx + 0x98], 0
je 0x1013ae64
cmp dword [ebx + 0x3798], 0x3e9
jne 0x1013ae2c
mov eax, dword [ebx + 0xa4]
sub eax, dword [ebx + 0x24]
push eax
push 0xfa2
push dword [ebp + 0x38]
call fcn.10142790
push 0
push 0xfb4
push dword [ebp + 0x38]
call fcn.10142790
add esp, 0x18
jmp 0x1013ae64
push 1
push 0xfa6
push dword [ebp + 0x38]
call fcn.10142790
push dword [ebx + 0x9c]
push 0xfb4
push dword [ebp + 0x38]
call fcn.10142790
push dword [ebx + 0xa4]
push 0xfa2
push dword [ebp + 0x38]
call fcn.10142790
add esp, 0x24
mov eax, dword [ebx + 0x379c]
cmp dword [ebx + 0x3798], eax
je 0x1013aebe
test eax, eax
jle 0x1013aebe
push 0xfbc
push dword [ebp + 0x38]
call fcn.10142790
push 0
push 2
lea eax, [ebp + 0x2c]
push eax
mov eax, 0x51eb851f
imul dword [ebx + 0x94]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push dword [ebp]
push dword [ebp + 0x38]
call fcn.1013df40
push 0
push 0x2712
push dword [ebp + 0x38]
call fcn.10142790
add esp, 0x2c
bsr eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x44]
sub ecx, eax
lea eax, [esi*8]
dec ecx
cmp ecx, eax
jg 0x1013af35
lea eax, [ebp - 0x58]
push eax
push esi
push 0
push dword [ebp + 0x50]
push dword [ebp + 0x28]
push dword [ebp + 0x38]
call fcn.1013df40
mov edi, eax
add esp, 0x18
test edi, edi
js 0x1013b177
cmp dword [ebp + 0x24], 0
je 0x1013b04a
cmp dword [ebp + 0xc], 0
je 0x1013af49
cmp dword [ebx + 0x3798], 0x3e9
jne 0x1013b04a
cmp esi, edi
je 0x1013b04a
mov ecx, dword [ebp + 0x54]
push dword [ebp + 0x20]
lea eax, [esi + ecx]
push eax
lea eax, [edi + ecx]
push eax
call fcn.100a1aa0
jmp 0x1013b047
cmp dword [ebp + 0x24], 0
je 0x1013b04a
cmp dword [ebp + 0xc], 0
jne 0x1013b04a
mov ecx, dword [ebx + 0x94]
mov eax, 0x51eb851f
imul ecx
push 0xfbc
push dword [ebp + 0x38]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + 0x34], eax
mov eax, 0x51eb851f
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + 0x30], eax
call fcn.10142790
push 0
push 0x271a
push dword [ebp + 0x38]
call fcn.10142790
push 0
push 0x2712
push dword [ebp + 0x38]
call fcn.10142790
push 0
push 0xfa6
push dword [ebp + 0x38]
call fcn.10142790
push 0xffffffffffffffff
push 0xfa2
push dword [ebp + 0x38]
call fcn.10142790
add esp, 0x38
cmp dword [ebx + 0x3798], 0x3e9
jne 0x1013afde
lea eax, [ebp - 0x58]
mov esi, edi
push edi
push eax
call fcn.1014e4f0
add esp, 8
mov ecx, dword [ebp + 0x30]
lea eax, [ebp + 0x2c]
push 0
push 2
push eax
mov eax, dword [ebp + 0x50]
sub eax, ecx
sub eax, dword [ebp + 0x34]
imul eax, dword [ebx + 0x74]
push ecx
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax*4]
push eax
push dword [ebp + 0x38]
call fcn.1013df40
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x34]
add eax, esi
mov esi, dword [ebp + 0x38]
push 0
push dword [ebp + 0x20]
push eax
mov eax, dword [ebp + 0x50]
sub eax, ecx
imul eax, dword [ebx + 0x74]
push ecx
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax*4]
push eax
push esi
call fcn.1013df40
add esp, 0x30
test eax, eax
js 0x1013b177
lea eax, [ebp - 0x18]
push eax
push 0xfbf
push esi
call fcn.10142790
add esp, 0xc
mov eax, dword [ebx + 0x94]
mov esi, dword [ebp + 0x50]
cdq
idiv esi
push dword [ebx + 0x3778]
push dword [ebp + 0x1c]
push eax
push dword [ebx + 0x3798]
call fcn.10139b90
mov ecx, dword [ebp + 0x14]
add esp, 0x10
mov byte [ecx], al
mov eax, dword [ebp - 0x3c]
xor eax, dword [ebp - 0x18]
cmp dword [ebp + 0x7c], 0
mov dword [ebx + 0x46e0], eax
mov eax, 0x3ea
jne 0x1013b090
mov eax, dword [ebx + 0x3798]
mov dword [ebx + 0x379c], eax
cmp dword [ebx + 0xbc], 0
mov eax, dword [ebx + 0x3778]
mov dword [ebp + 0x30], eax
mov dword [ebx + 0x37a0], eax
mov dword [ebx + 0x37a4], esi
mov dword [ebx + 0x37b4], 0
je 0x1013b110
mov eax, dword [ebp + 0x64]
cmp dword [eax], 0
jne 0x1013b0cc
cmp dword [ebp + 0x68], 0
je 0x1013b110
cmp dword [ebp + 8], 0
jne 0x1013b110
imul eax, esi, 0x7d0
cdq
idiv dword [ebx + 0x94]
add eax, dword [ebx + 0x46d4]
mov dword [ebx + 0x46d4], eax
cmp eax, 0x190
jle 0x1013b11a
cmp eax, 0x4b0
jg 0x1013b104
push dword [ebp + 0x30]
push dword [ebp + 0x1c]
jmp 0x1013a77a
mov dword [ebx + 0x46d4], 0x190
jmp 0x1013b11a
mov dword [ebx + 0x46d4], 0
bsr eax, dword [ebp - 0x3c]
mov esi, dword [ebp + 0x58]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp + 0x24]
sub ecx, eax
dec ecx
lea eax, [esi*8 - 8]
cmp ecx, eax
jle 0x1013b17e
cmp esi, 2
jge 0x1013b141
mov eax, 0xfffffffe
jmp 0x1013b1a6
mov eax, dword [ebp + 0x54]
mov edi, 1
mov byte [eax], 0
mov dword [ebx + 0x46e0], 0
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x20]
inc eax
add eax, edi
cmp dword [ebx + 0x98], 0
jne 0x1013b1a6
push esi
push eax
push ecx
call fcn.1013d390
add esp, 0xc
test eax, eax
je 0x1013b1a4
mov eax, 0xfffffffd
jmp 0x1013b1a6
cmp dword [ebx + 0x3798], 0x3e8
jne 0x1013b156
test edx, edx
jne 0x1013b156
cmp edi, 2
jle 0x1013b156
mov ecx, dword [ebp + 0x14]
cmp byte [edi + ecx], 0
jne 0x1013b159
dec edi
cmp edi, 2
jg 0x1013b196
jmp 0x1013b159
mov eax, esi
lea esp, [ebp - 0x70]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x3c]
xor ecx, ebp
call fcn.1009fd88
lea esp, [ebp + 0x40]
pop ebp
ret