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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x19c
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x100ed630
cmp dword [edi], 0xfff88e3b
jne 0x100ed630
mov edx, dword [edi + 0x120]
mov dword [ebp - 4], edx
test edx, edx
je 0x100ed630
cmp dword [edx], 0xfff88e3b
jne 0x100ebef4
cmp dword [edx + 4], 0
jg 0x100ed630
mov dword [edx], 0xfff88e3b
mov dword [edx + 4], 0
cmp dword [edi + 0xc], 1
jl 0x100ed630
mov eax, dword [edi + 8]
dec eax
cmp eax, 1
ja 0x100ed630
mov eax, dword [edi + 0x10]
test eax, eax
je 0x100ebf3e
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], 0
push ecx
push eax
call fcn.100ef8c0
add esp, 8
test eax, eax
js 0x100ed630
mov edx, dword [ebp - 4]
mov eax, dword [edi + 0xb4]
push esi
lea esi, [edx + 0x14]
mov dword [esi + 0x6c], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x10], esi
mov dword [esi + 0x7c], eax
test eax, eax
je 0x100ebf5f
mov dword [edi + 0x24], 0
cmp dword [edx + 0x14f30], 0
je 0x100ebf6f
mov dword [edi + 0x24], 0
mov eax, dword [edi + 0x110]
mov dword [edx + 0x14f44], eax
mov eax, dword [edi + 0x114]
mov dword [edx + 0x14f48], eax
mov eax, dword [edi + 0x118]
mov dword [edx + 0x14f4c], eax
cmp dword [edi + 0x128], 0
je 0x100ebfb5
call fcn.100151f0
mov edx, dword [ebp - 4]
add eax, eax
mov ecx, dword [edx + 0x14f00]
xor eax, ecx
and eax, 2
xor eax, ecx
jmp 0x100ebfbe
mov eax, dword [edx + 0x14f00]
and eax, 0xfffffffd
mov dword [edx + 0x14f00], eax
cmp dword [edi + 0x124], 0
je 0x100ebfe4
call fcn.100151f0
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x14f00]
xor eax, ecx
and eax, 1
xor eax, ecx
jmp 0x100ebfe7
and eax, 0xfffffffe
mov dword [edx + 0x14f00], eax
cmp dword [edi + 0x12c], 0
je 0x100ec02e
call fcn.100151f0
mov edx, dword [ebp - 4]
shl eax, 2
mov ecx, dword [edx + 0x14f00]
xor eax, ecx
and eax, 4
xor eax, ecx
mov dword [edx + 0x14f00], eax
call fcn.100151f0
mov edx, dword [ebp - 4]
shl eax, 3
mov ecx, dword [edx + 0x14f00]
xor eax, ecx
and eax, 8
xor eax, ecx
jmp 0x100ec031
and eax, 0xfffffff3
mov dword [edx + 0x14f00], eax
mov eax, dword [edi + 0x9c]
mov dword [esi + 0x58], eax
mov eax, dword [edi + 0x78]
mov dword [esi + 0x90], eax
mov eax, dword [edi + 0x68]
mov dword [esi + 0x94], eax
mov eax, dword [edi + 0x6c]
mov dword [esi + 0x98], eax
mov eax, dword [edi + 0x70]
mov dword [esi + 0x9c], eax
mov eax, dword [edi + 0x74]
mov dword [esi + 0xa0], eax
mov eax, dword [edi + 8]
mov dword [esi + 0x34], eax
cmp eax, 1
jne 0x100ec07f
mov dword [edi + 0x30], 3
xor eax, eax
cmp dword [edi + 0x30], 3
setne al
inc eax
mov dword [esi + 0x38], eax
cmp dword [edi + 0x30], 1
je 0x100ec099
mov dword [edi + 0x34], 0
cmp dword [esi + 0x58], 0
mov eax, dword [edi + 0x34]
mov dword [esi + 0x40], eax
jne 0x100ec0bb
mov eax, dword [edi + 0xa8]
cmp eax, 0x80
je 0x100ec0bb
cmp dword [edi + 0x60], 0
jne 0x100ec0bb
mov dword [edi + 0x60], eax
mov eax, dword [esi + 0x58]
sub eax, 0
je 0x100ec0d4
sub eax, 1
je 0x100ec0d4
sub eax, 3
je 0x100ec0d4
mov dword [edi + 0x38], 0
cmp dword [esi + 0x58], 0
xorps xmm2, xmm2
mov eax, dword [edi + 0x38]
xorps xmm4, xmm4
mov dword [esi + 0x88], eax
jne 0x100ec1d6
cmp dword [edi + 0x60], 0
jne 0x100ec143
movss xmm0, dword [edi + 0x64]
xor eax, eax
movsd xmm3, qword [0x10174100]
cvtps2pd xmm1, xmm0
subss xmm0, xmm4
andps xmm2, xmm3
andps xmm1, xmm3
comisd xmm1, xmm2
cvtps2pd xmm0, xmm0
andps xmm0, xmm3
jbe 0x100ec129
mulsd xmm1, qword [0x10220df8]
comisd xmm1, xmm0
jmp 0x100ec135
mulsd xmm2, qword [0x10220df8]
comisd xmm2, xmm0
setae al
test eax, eax
je 0x100ec143
mov dword [edi + 0x64], 0x41306666
cmp dword [esi + 0x58], 0
jne 0x100ec1d6
movss xmm0, dword [edi + 0x64]
comiss xmm0, xmm4
jbe 0x100ec1d6
mov edx, dword [edi + 0x10]
test edx, edx
jne 0x100ec181
movd xmm0, dword [edi + 0xc]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x10220e08]
cvttsd2si eax, xmm0
push eax
call fcn.100f0860
mov edx, eax
add esp, 4
mov dword [edi + 0x10], edx
mov ecx, dword [esi + 0x38]
movss xmm0, dword [edi + 0x64]
imul ecx, edx
cvtps2pd xmm0, xmm0
push esi
push edx
shl ecx, 4
mulsd xmm0, qword [0x1017ec88]
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
divsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [edi + 0x60], eax
call fcn.100ef8c0
add esp, 8
mov dword [esi + 4], eax
cmp dword [esi + 0x88], 0
jne 0x100ec1d6
push dword [edi + 0x10]
push dword [esi]
push dword [edi + 0x60]
call fcn.100ef850
add esp, 0xc
mov dword [edi + 0x60], eax
mov edx, dword [edi + 0x10]
test edx, edx
je 0x100ec265
mov eax, dword [edi + 0xa8]
lea ecx, [edi + 0xa8]
cmp edx, 0x3e80
jge 0x100ec21b
cmp eax, 8
jle 0x100ec20d
mov dword [ecx], eax
cmp eax, 0x40
jl 0x100ec25e
mov eax, 0x40
mov dword [ecx], eax
jmp 0x100ec4a0
mov eax, 8
mov dword [ecx], eax
mov dword [ecx], eax
jmp 0x100ec4a0
cmp edx, 0x7d00
jge 0x100ec23d
cmp eax, 8
jle 0x100ec20d
mov dword [ecx], eax
cmp eax, 0xa0
jl 0x100ec25e
mov eax, 0xa0
mov dword [ecx], eax
jmp 0x100ec4a0
cmp eax, 0x20
jle 0x100ec257
mov dword [ecx], eax
cmp eax, 0x140
jl 0x100ec25e
mov eax, 0x140
mov dword [ecx], eax
jmp 0x100ec4a0
mov eax, 0x20
mov dword [ecx], eax
mov dword [ecx], eax
jmp 0x100ec4a0
mov eax, dword [esi + 0x58]
cmp eax, 1
je 0x100ec276
cmp eax, 4
jne 0x100ec4a0
movaps xmm0, xmmword [0x10220f60]
lea ecx, [ebp - 0x168]
movd xmm2, dword [edi + 0xa4]
mov edx, 2
movups xmmword [ebp - 0x198], xmm0
mov dword [ebp - 0x19c], 0xbb80
movaps xmm0, xmmword [0x10220f60]
movups xmmword [ebp - 0x180], xmm0
mov dword [ebp - 0x188], 0x5c94
movaps xmm0, xmmword [0x10220fa0]
movups xmmword [ebp - 0x168], xmm0
mov dword [ebp - 0x184], 0xac44
movaps xmm0, xmmword [0x10220f50]
movups xmmword [ebp - 0x150], xmm0
mov dword [ebp - 0x170], 0x5514
movaps xmm0, xmmword [0x10220fb0]
movups xmmword [ebp - 0x138], xmm0
mov dword [ebp - 0x16c], 0x7d00
movaps xmm0, xmmword [0x10220f70]
movups xmmword [ebp - 0x120], xmm0
mov dword [ebp - 0x158], 0x3db8
movaps xmm0, xmmword [0x10220f40]
cvtdq2ps xmm2, xmm2
mov dword [ebp - 0x154], 0x5dc0
mov dword [ebp - 0x140], 0x2e4a
mov dword [ebp - 0x13c], 0x5622
mov dword [ebp - 0x128], 0x2a8c
movups xmmword [ebp - 0x108], xmm0
mov dword [ebp - 0x124], 0x3e80
movaps xmm0, xmmword [0x10220f90]
addss xmm2, dword [edi + 0xa0]
movups xmmword [ebp - 0xf0], xmm0
mov dword [ebp - 0x110], 0x1edf
movaps xmm0, xmmword [0x10220f80]
mov dword [ebp - 0x10c], 0x2ee0
mov dword [ebp - 0xf8], 0x1728
mov dword [ebp - 0xf4], 0x2b11
mov dword [ebp - 0xe0], 0x1546
mov dword [ebp - 0xdc], 0x1f40
movups xmmword [ebp - 0xd8], xmm0
mov dword [ebp - 0xc8], 0xf70
mov eax, dword [ecx - 4]
cmp dword [edi + 0xc], eax
jne 0x100ec415
movss xmm1, dword [ecx]
comiss xmm1, xmm2
jbe 0x100ec417
movaps xmm0, xmm2
divss xmm0, xmm1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
movss xmm0, dword [ecx + 8]
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [edi + 0xa4], eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edi + 0xa0], xmm0
jmp 0x100ec417
jl 0x100ec42a
movss xmm4, dword [ecx]
comiss xmm2, xmm4
jb 0x100ec42a
movss xmm3, dword [ecx + 4]
comiss xmm3, xmm2
ja 0x100ec435
inc edx
add ecx, 0x18
cmp edx, 9
jl 0x100ec3c6
jmp 0x100ec4a0
cmp dword [edi + 0xb8], 0
lea eax, [edx + edx*2]
movss xmm1, dword [ebp + eax*8 - 0x190]
subss xmm2, xmm4
movss xmm0, dword [ebp + eax*8 - 0x18c]
subss xmm3, xmm4
subss xmm0, xmm1
mulss xmm0, xmm2
divss xmm0, xmm3
addss xmm0, xmm1
cvtps2pd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [edi + 0xa4], eax
movd xmm0, eax
mov eax, dword [ecx - 4]
cvtdq2pd xmm0, xmm0
mov dword [edi + 0x10], eax
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edi + 0xa0], xmm0
jne 0x100ec4a0
mov dword [edi + 0xb8], 0xffffffff
mov edx, dword [edi + 0xb8]
lea eax, [edi + 0xb8]
test edx, edx
jne 0x100ec73b
mov eax, dword [esi + 0x58]
cmp eax, 4
ja case.default.0x100ec4c0
jmp dword [eax*4 + 0x100ed638]
movaps xmm0, xmmword [0x10220e60]
push dword [edi + 0x60]
movups xmmword [ebp - 0xc4], xmm0
mov dword [ebp - 0x44], 0x140
movaps xmm0, xmmword [0x10220e70]
movups xmmword [ebp - 0xb4], xmm0
mov dword [ebp - 0x40], 0x5014
movaps xmm0, xmmword [0x10220e80]
movups xmmword [ebp - 0xa4], xmm0
movaps xmm0, xmmword [0x10220e90]
movups xmmword [ebp - 0x94], xmm0
movaps xmm0, xmmword [0x10220ec0]
movups xmmword [ebp - 0x84], xmm0
movaps xmm0, xmmword [0x10220ee0]
movups xmmword [ebp - 0x74], xmm0
movaps xmm0, xmmword [0x10220f20]
movups xmmword [ebp - 0x64], xmm0
movaps xmm0, xmmword [0x10220f30]
movups xmmword [ebp - 0x54], xmm0
call fcn.100f08e0
add esp, 4
movd xmm2, dword [ebp + eax*8 - 0xc0]
cvtdq2pd xmm2, xmm2
jmp 0x100ec711
movaps xmm0, xmmword [0x10220e60]
push dword [edi + 0xa8]
movups xmmword [ebp - 0xc4], xmm0
mov dword [ebp - 0x44], 0x140
movaps xmm0, xmmword [0x10220e70]
movups xmmword [ebp - 0xb4], xmm0
mov dword [ebp - 0x40], 0x5014
movaps xmm0, xmmword [0x10220e80]
movups xmmword [ebp - 0xa4], xmm0
movaps xmm0, xmmword [0x10220e90]
movups xmmword [ebp - 0x94], xmm0
movaps xmm0, xmmword [0x10220ec0]
movups xmmword [ebp - 0x84], xmm0
movaps xmm0, xmmword [0x10220ee0]
movups xmmword [ebp - 0x74], xmm0
movaps xmm0, xmmword [0x10220f20]
movups xmmword [ebp - 0x64], xmm0
movaps xmm0, xmmword [0x10220f30]
movups xmmword [ebp - 0x54], xmm0
call fcn.100f08e0
add esp, 4
movd xmm2, dword [ebp + eax*8 - 0xc0]
cvtdq2pd xmm2, xmm2
jmp 0x100ec711
movaps xmm0, xmmword [0x10220f10]
mov eax, dword [edi + 0xa4]
mov dword [ebp - 0x1c], 0x30d4
mov dword [ebp - 0x18], 0x2710
mov dword [ebp - 0x14], 0xf6e
movups xmmword [ebp - 0x3c], xmm0
movaps xmm0, xmmword [0x10220eb0]
movups xmmword [ebp - 0x2c], xmm0
cmp eax, 9
ja 0x100ec709
movd xmm1, dword [ebp + eax*4 - 0x3c]
movd xmm2, dword [ebp + eax*4 - 0x38]
jmp 0x100ec6e8
movaps xmm0, xmmword [0x10220f00]
mov eax, dword [edi + 0xa4]
mov dword [ebp - 0x1c], 0x3b60
mov dword [ebp - 0x18], 0x1c3e
mov dword [ebp - 0x14], 0xf6e
movups xmmword [ebp - 0x3c], xmm0
movaps xmm0, xmmword [0x10220ed0]
movups xmmword [ebp - 0x2c], xmm0
cmp eax, 9
ja 0x100ec69c
movd xmm1, dword [ebp + eax*4 - 0x3c]
movd xmm2, dword [ebp + eax*4 - 0x38]
movss xmm0, dword [edi + 0xa0]
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
subsd xmm2, xmm1
mulsd xmm2, xmm0
addsd xmm2, xmm1
jmp 0x100ec711
movsd xmm2, qword [0x10220e28]
jmp 0x100ec711
movaps xmm0, xmmword [0x10220ef0]
mov eax, dword [edi + 0xa4]
mov dword [ebp - 0x1c], 0x30d4
mov dword [ebp - 0x18], 0x251c
mov dword [ebp - 0x14], 0xf6e
movups xmmword [ebp - 0x3c], xmm0
movaps xmm0, xmmword [0x10220ea0]
movups xmmword [ebp - 0x2c], xmm0
cmp eax, 9
ja 0x100ec709
movd xmm1, dword [ebp + eax*4 - 0x3c]
movd xmm2, dword [ebp + eax*4 - 0x38]
movss xmm0, dword [edi + 0xa0]
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
subsd xmm2, xmm1
mulsd xmm2, xmm0
addsd xmm2, xmm1
jmp 0x100ec711
movsd xmm2, qword [0x10220e20]
cmp dword [edi + 0x30], 3
jne 0x100ec72b
mov eax, dword [esi + 0x58]
test eax, eax
je 0x100ec723
cmp eax, 3
jne 0x100ec72b
mulsd xmm2, qword [0x1017ec48]
cvttsd2si edx, xmm2
lea eax, [edi + 0xb8]
mov dword [edi + 0xb8], edx
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0xc], 0x5dc0
test ecx, ecx
jne 0x100ec8ee
mov ecx, dword [edi + 0xc]
lea eax, [edx + edx]
cmp eax, ecx
jle 0x100ec766
mov eax, ecx
cdq
sub eax, edx
mov edx, eax
sar edx, 1
mov dword [edi + 0xb8], edx
mov eax, dword [edi + 0xc]
mov ecx, 0xac44
mov dword [ebp - 8], 0x1f40
cmp eax, 0xbb80
jl 0x100ec783
mov ecx, 0xbb80
jmp 0x100ec7e7
cmp eax, 0xac44
jge 0x100ec7e7
cmp eax, 0x7d00
jl 0x100ec798
mov ecx, 0x7d00
jmp 0x100ec7e7
cmp eax, 0x5dc0
jl 0x100ec7a6
mov ecx, 0x5dc0
jmp 0x100ec7e7
cmp eax, 0x5622
jl 0x100ec7b4
mov ecx, 0x5622
jmp 0x100ec7e7
cmp eax, 0x3e80
jl 0x100ec7c2
mov ecx, 0x3e80
jmp 0x100ec7e7
cmp eax, 0x2ee0
jl 0x100ec7d0
mov ecx, 0x2ee0
jmp 0x100ec7e7
cmp eax, 0x2b11
jl 0x100ec7de
mov ecx, 0x2b11
jmp 0x100ec7e7
cmp eax, 0x1f40
cmovge ecx, dword [ebp - 8]
cmp edx, 0xffffffff
je 0x100ec8df
cmp edx, 0x3e58
mov dword [ebp - 8], 0xac44
cmovle ecx, dword [ebp - 8]
cmp edx, 0x3b92
mov dword [ebp - 8], 0x7d00
cmovle ecx, dword [ebp - 8]
cmp edx, 0x2bd4
mov dword [ebp - 8], 0x5622
cmovle ecx, dword [ebp - 0xc]
cmp edx, 0x26f2
cmovle ecx, dword [ebp - 8]
cmp edx, 0x1c3e
mov dword [ebp - 8], 0x3e80
cmovle ecx, dword [ebp - 8]
cmp edx, 0x152c
mov dword [ebp - 8], 0x2ee0
cmovle ecx, dword [ebp - 8]
cmp edx, 0x119e
mov dword [ebp - 8], 0x2b11
cmovle ecx, dword [ebp - 8]
cmp edx, 0xf82
mov edx, 0x1f40
cmovle ecx, edx
cmp eax, ecx
jge 0x100ec8df
cmp eax, 0xac44
jle 0x100ec880
mov ecx, 0xbb80
jmp 0x100ec8df
cmp eax, 0x7d00
jle 0x100ec88e
mov ecx, 0xac44
jmp 0x100ec8df
cmp eax, 0x5dc0
jle 0x100ec89c
mov ecx, 0x7d00
jmp 0x100ec8df
cmp eax, 0x5622
jle 0x100ec8aa
mov ecx, 0x5dc0
jmp 0x100ec8df
cmp eax, 0x3e80
jle 0x100ec8b8
mov ecx, 0x5622
jmp 0x100ec8df
cmp eax, 0x2ee0
jle 0x100ec8c6
mov ecx, 0x3e80
jmp 0x100ec8df
cmp eax, 0x2b11
jle 0x100ec8d4
mov ecx, 0x2ee0
jmp 0x100ec8df
cmp eax, 0x1f40
mov ecx, edx
cmovg ecx, dword [ebp - 8]
mov edx, dword [edi + 0xb8]
lea eax, [edi + 0xb8]
mov dword [edi + 0x10], ecx
cmp dword [esi + 0x58], 1
je 0x100ec90d
cmp dword [esi + 0x58], 4
je 0x100ec90d
cmp edx, 0x5014
mov dword [ebp - 0xc], 0x5014
cmovg edx, dword [ebp - 0xc]
jmp 0x100ec917
cmp edx, 0x5dc0
cmovg edx, dword [ebp - 0xc]
mov dword [eax], edx
mov eax, ecx
movsd xmm2, qword [0x1017ec88]
mov dword [ebp - 0xc], edx
cdq
sub eax, edx
lea edx, [edi + 0x64]
sar eax, 1
cmp eax, dword [ebp - 0xc]
mov dword [ebp - 8], edx
cmovge eax, dword [ebp - 0xc]
mov dword [edi + 0xb8], eax
cmp dword [esi + 0x58], 0
jne 0x100ec96e
mov eax, dword [esi + 0x38]
movd xmm0, dword [edi + 0x60]
imul eax, ecx
cvtdq2pd xmm0, xmm0
shl eax, 4
mulsd xmm0, xmm2
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx], xmm0
cmp dword [esi + 0x58], 3
jne 0x100ec9a5
mov eax, dword [esi + 0x38]
movd xmm0, dword [edi + 0xa8]
imul eax, ecx
mov ecx, edx
cvtdq2pd xmm0, xmm0
shl eax, 4
mulsd xmm0, xmm2
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [ecx], xmm0
jmp 0x100ec9a8
mov ecx, dword [ebp - 8]
mov eax, dword [edi + 0x80]
mov dword [esi + 0x80], eax
mov eax, dword [edi + 0xb8]
mov dword [esi + 0x24], eax
mov eax, dword [edi + 0xbc]
mov dword [esi + 0x28], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 8], eax
mov dword [esi + 0x30], eax
xor eax, eax
cmp dword [ebp - 8], 0x5dc0
setg al
inc eax
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x58]
dec eax
cmp eax, 3
ja case.default.0x100ec9ee
jmp dword [eax*4 + 0x100ed64c]
movaps xmm0, xmmword [0x10220fc0]
mov eax, dword [edi + 0xa4]
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x18], 0x41700000
movaps xmm0, xmmword [0x10220fd0]
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x14], 0x41840000
movss xmm0, dword [ebp + eax*4 - 0x38]
jmp 0x100eca5a
movd xmm0, dword [edi + 0xa8]
jmp 0x100eca36
movd xmm0, dword [edi + 0x60]
mov eax, dword [esi + 0x38]
mov edx, ecx
imul eax, dword [ebp - 8]
cvtdq2pd xmm0, xmm0
shl eax, 4
mulsd xmm0, xmm2
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx], xmm0
mov eax, dword [edi + 0x30]
cmp eax, 4
jne 0x100eca72
mov dword [edi + 0x30], 1
mov eax, 1
mov dword [esi + 0xa4], eax
lea ecx, [esi + 0xf0]
mov eax, dword [esi + 0x28]
lea edx, [esi + 0xf4]
test eax, eax
jle 0x100ecad0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
addsd xmm1, xmm1
cvtpd2ps xmm2, xmm1
movss dword [ecx], xmm2
mov esi, dword [edi + 0xc4]
test esi, esi
jl 0x100ecab7
add eax, esi
movd xmm1, eax
cvtdq2pd xmm1, xmm1
addsd xmm1, xmm1
mov esi, dword [ebp - 0x10]
cvtpd2ps xmm1, xmm1
movd xmm0, dword [esi + 0x30]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
divss xmm2, xmm0
jmp 0x100ecad6
xorps xmm1, xmm1
xorps xmm2, xmm2
movss dword [ecx], xmm2
xorps xmm3, xmm3
movss dword [edx], xmm1
mov ecx, dword [esi + 0x24]
mov dword [esi + 0xe8], 0
mov dword [esi + 0xec], 0
test ecx, ecx
jle 0x100ecb69
mov eax, dword [esi + 0x30]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jge 0x100ecb69
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
cvtpd2ps xmm2, xmm0
movss dword [esi + 0xec], xmm2
mov eax, dword [edi + 0xc0]
test eax, eax
js 0x100ecb46
sub ecx, eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
cvtpd2ps xmm1, xmm0
comiss xmm3, xmm1
jbe 0x100ecb49
xorps xmm1, xmm1
jmp 0x100ecb49
movaps xmm1, xmm2
movd xmm0, dword [esi + 0x30]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
divss xmm2, xmm0
movss dword [esi + 0xe8], xmm1
movss dword [esi + 0xec], xmm2
push dword [ebp - 4]
call fcn.100ed660
push esi
push dword [esi + 0x30]
call fcn.100ef8c0
add esp, 0xc
mov dword [esi + 4], eax
cmp dword [esi + 0x58], 0
jne 0x100ecbd5
cmp dword [esi + 0x88], 0
je 0x100ecb9e
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x14b08], 0
jmp 0x100ecbe2
push dword [esi + 0x30]
push dword [esi]
push dword [edi + 0x60]
call fcn.100ef850
mov dword [edi + 0x60], eax
push dword [esi + 0x30]
push dword [esi]
push eax
call fcn.100ef810
mov ecx, dword [ebp - 4]
add esp, 0x18
mov dword [ecx + 0x14b08], eax
test eax, eax
jg 0x100ecbe2
mov dword [ecx + 0x14b08], 8
jmp 0x100ecbe2
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x14b08], 1
push ecx
call fcn.100f3230
xor eax, eax
add esp, 4
cmp dword [esi + 0x30], 0x3e80
mov ecx, 2
mov edi, 0x17
cmovl eax, ecx
mov ecx, dword [ebp - 4]
add eax, dword [esi]
lea eax, [eax + eax*2]
add eax, dword [esi + 4]
lea esi, [ecx + 0x5374]
imul edx, eax, 0xcc
mov dword [ebp - 0xc], eax
add edx, 0x10221e70
mov eax, dword [edx]
lea edx, [edx + 4]
mov dword [esi], eax
lea esi, [esi + 4]
sub edi, 1
jne 0x100ecc21
mov esi, dword [ecx + 0x53c8]
mov eax, 0x2aaaaaab
mov ecx, dword [ecx + 0x53cc]
sub ecx, esi
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 4]
lea eax, [ecx + esi]
mov dword [edx + 0x5408], esi
mov dword [edx + 0x540c], eax
lea eax, [esi + ecx*2]
mov dword [edx + 0x5410], eax
lea eax, [esi + ecx*2]
add eax, ecx
mov dword [edx + 0x5420], 0x240
mov dword [edx + 0x5414], eax
lea eax, [esi + ecx*4]
mov dword [edx + 0x5418], eax
lea eax, [esi + ecx*4]
add eax, ecx
lea esi, [edx + 0x53d0]
imul ecx, dword [ebp - 0xc], 0xcc
mov dword [edx + 0x541c], eax
lea edx, [edi + 0xe]
add ecx, 0x10221ecc
mov eax, dword [ecx]
lea ecx, [ecx + 4]
mov dword [esi], eax
lea esi, [esi + 4]
sub edx, 1
jne 0x100ecca6
mov edx, dword [ebp - 4]
mov eax, 0x2aaaaaab
mov esi, dword [edx + 0x5400]
mov ecx, dword [edx + 0x5404]
sub ecx, esi
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 4]
lea eax, [ecx + esi]
mov dword [edx + 0x5424], esi
mov dword [edx + 0x5428], eax
lea eax, [esi + ecx*2]
mov dword [edx + 0x542c], eax
lea eax, [esi + ecx*2]
add eax, ecx
mov dword [edx + 0x543c], 0xc0
mov dword [edx + 0x5430], eax
lea eax, [esi + ecx*4]
mov dword [edx + 0x5434], eax
lea eax, [esi + ecx*4]
mov esi, dword [ebp - 0x10]
add eax, ecx
mov dword [edx + 0x5438], eax
cmp dword [esi + 0x3c], 2
mov ecx, dword [esi + 0x38]
jne 0x100ecd39
cmp ecx, 1
mov dword [ebp - 0x10], 0x15
mov eax, 0x24
cmove eax, dword [ebp - 0x10]
jmp 0x100ecd48
xor eax, eax
cmp ecx, 1
setne al
lea eax, [eax*8 + 0xd]
mov dword [esi + 8], eax
cmp dword [esi + 0x90], 0
je 0x100ecd5a
add eax, 2
mov dword [esi + 8], eax
lea ecx, [edx + 0x9b50]
mov edx, 2
mov eax, dword [esi + 0x3c]
lea ecx, [ecx + 0x20]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x24], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x20], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x1c], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x18], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x14], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x10], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0xc], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 8], xmm0
sub edx, 1
jne 0x100ecd65
mov edx, dword [ebp - 4]
mov edi, 3
lea ecx, [edx + 0x9b8c]
nop word [eax + eax]
mov eax, dword [esi + 0x3c]
lea ecx, [ecx + 4]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 4], xmm0
sub edi, 1
jne 0x100ece50
mov edi, dword [ebp + 8]
cmp dword [edi + 0xdc], 0xffffffff
jne 0x100ece87
mov dword [edi + 0xdc], 4
mov eax, dword [esi + 0x58]
sub eax, 1
je 0x100ecf4d
sub eax, 1
je 0x100eceec
sub eax, 2
je 0x100ecf4d
mov dword [edx + 0x14c64], 0
cmp dword [edi + 0x2c], 0
jge 0x100eceb8
mov dword [edi + 0x2c], 3
cmp dword [esi + 0x58], 0
jne 0x100ececa
push dword [edi + 0x60]
push edi
call fcn.100ee1d0
add esp, 8
push 0
push dword [edi + 0xa8]
push edi
call fcn.100f8a10
mov eax, dword [esi + 0x58]
add esp, 0xc
mov dword [edi + 0x9c], eax
mov eax, dword [ebp - 4]
jmp 0x100ecfd9
mov eax, 0x32
sub eax, dword [edi + 0xa4]
push 0
lea eax, [eax + eax*4]
add eax, eax
push eax
push edi
call fcn.100f8a10
xor ecx, ecx
add esp, 0xc
cmp dword [edi + 0x8c], ecx
jne 0x100ecf1c
cmp dword [esi + 0x30], 0xabe0
setg cl
mov eax, dword [ebp - 4]
mov dword [eax + 0x14c64], ecx
mov ecx, dword [edi + 0x2c]
cmp ecx, 6
jle 0x100ecf39
mov dword [edi + 0x2c], 6
jmp 0x100ecfd9
test ecx, ecx
jns 0x100ecfd9
mov dword [edi + 0x2c], 3
jmp 0x100ecfd9
cmp dword [edi + 0x7c], 0
jge 0x100ecf5a
mov dword [edi + 0x7c], 2
cmp dword [edi + 0xf4], 0
jge 0x100ecf6d
mov dword [edi + 0xf4], 0
mov eax, 0x32
sub eax, dword [edi + 0xa4]
push 0
lea eax, [eax + eax*4]
add eax, eax
push eax
push edi
call fcn.100f8a10
mov eax, dword [edi + 0x2c]
add esp, 0xc
test eax, eax
js 0x100ecfa3
cmp eax, 5
jl 0x100ecfa3
cmp eax, 7
jle 0x100ecfaa
mov dword [edi + 0x2c], 7
jmp 0x100ecfaa
mov dword [edi + 0x2c], 0
cmp dword [edi + 0x8c], 0
je 0x100ecfc2
mov eax, dword [ebp - 4]
mov dword [eax + 0x14c64], 0
jmp 0x100ecfd9
mov ecx, dword [ebp - 4]
xor eax, eax
cmp dword [esi + 0x30], 0xabe0
setg al
mov dword [ecx + 0x14c64], eax
mov eax, ecx
movss xmm0, dword [edi + 0xc8]
movss dword [eax + 0x14bb0], xmm0
movss xmm1, dword [edi + 0xcc]
movss dword [eax + 0x14bb4], xmm1
cmp dword [edi + 0x100], 0
je 0x100ed022
addss xmm0, dword [edi + 0x104]
movss dword [eax + 0x14bb0], xmm0
addss xmm1, dword [edi + 0x104]
movss dword [eax + 0x14bb4], xmm1
cmp dword [esi + 0x58], 0
je 0x100ed12c
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x60], 1
mov dword [esi + 0x64], 0xe
cmp ecx, 0x3e80
jge 0x100ed04c
mov dword [esi + 0x64], 8
mov eax, dword [edi + 0xac]
test eax, eax
je 0x100ed081
push ecx
push dword [esi]
push eax
call fcn.100ef850
mov dword [edi + 0xac], eax
push dword [esi + 0x30]
push dword [esi]
push eax
call fcn.100ef810
add esp, 0x18
mov dword [esi + 0x60], eax
test eax, eax
jns 0x100ed081
mov dword [esi + 0x60], 1
mov eax, dword [edi + 0xb0]
test eax, eax
je 0x100ed0c8
push dword [esi + 0x30]
push dword [esi]
push eax
call fcn.100ef850
mov dword [edi + 0xb0], eax
push dword [esi + 0x30]
push dword [esi]
push eax
call fcn.100ef810
add esp, 0x18
mov dword [esi + 0x64], eax
test eax, eax
jns 0x100ed0c8
cmp dword [esi + 0x30], 0x3e80
mov eax, 0xe
mov ecx, 8
cmovl eax, ecx
mov dword [esi + 0x64], eax
mov eax, dword [esi]
shl eax, 4
add eax, dword [esi + 0x60]
mov eax, dword [eax*4 + 0x10223158]
mov dword [edi + 0xac], eax
mov eax, dword [esi]
shl eax, 4
add eax, dword [esi + 0x64]
mov eax, dword [eax*4 + 0x10223158]
mov dword [edi + 0xb0], eax
mov eax, dword [esi]
shl eax, 4
add eax, dword [esi + 0x64]
mov ecx, dword [eax*4 + 0x10223158]
mov eax, dword [edi + 0xa8]
cmp ecx, eax
cmovge ecx, eax
mov dword [edi + 0xa8], ecx
mov eax, dword [esi]
shl eax, 4
add eax, dword [esi + 0x60]
mov eax, dword [eax*4 + 0x10223158]
cmp eax, ecx
cmovg ecx, eax
mov dword [edi + 0xa8], ecx
mov eax, dword [edi + 0x98]
mov ecx, dword [ebp - 4]
mov dword [esi + 0x54], eax
mov eax, dword [edi + 0x24]
mov dword [esi + 0x8c], eax
mov eax, dword [edi + 0x50]
mov dword [ecx + 0x14c68], eax
mov eax, dword [edi + 0x54]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x5c]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0x60]
mov dword [esi + 0x68], eax
mov eax, dword [edi + 0xa8]
mov dword [esi + 0x5c], eax
mov eax, dword [edi + 0x64]
push edi
mov dword [esi + 0xe4], eax
call fcn.100ed970
mov eax, dword [ebp - 4]
add esp, 4
mov ecx, dword [edi + 0xe8]
mov eax, dword [eax + 0x14f28]
test ecx, ecx
jns 0x100ed195
mov ecx, 3
mov dword [eax], ecx
movss xmm1, dword [edi + 0xec]
cvtps2pd xmm1, xmm1
movsd xmm0, qword [0x1017c850]
divsd xmm1, qword [0x10220e40]
call fcn.100af1b0
mov eax, dword [ebp - 4]
cvtsd2ss xmm0, xmm0
mov eax, dword [eax + 0x14f28]
movss dword [eax + 4], xmm0
mov eax, dword [edi + 0xf0]
cmp eax, 0xffffffff
jne 0x100ed1e0
mov dword [edi + 0xf0], 0
jmp 0x100ed1e4
test eax, eax
jne 0x100ed204
mov ecx, dword [esi + 0xa4]
cmp ecx, 1
je 0x100ed1f5
xor eax, eax
test ecx, ecx
jne 0x100ed204
mov dword [edi + 0xf0], 1
mov eax, 1
push edi
mov dword [esi + 0xa8], eax
call fcn.100edff0
add esp, 4
test eax, eax
jns 0x100ed222
push 1
push edi
call fcn.100ee550
add esp, 8
push edi
call fcn.100ee020
add esp, 4
test eax, eax
jns 0x100ed23a
push 0
push edi
call fcn.100ee580
add esp, 8
push edi
call fcn.100edfa0
fstp dword [ebp + 8]
xorps xmm5, xmm5
add esp, 4
comiss xmm5, dword [ebp + 8]
jbe 0x100ed263
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
push edi
call fcn.100ee4a0
add esp, 0xc
push edi
call fcn.100ede70
or eax, 1
push eax
push edi
call fcn.100ee360
add esp, 0xc
cmp dword [edi + 0xdc], 0
jge 0x100ed289
mov dword [edi + 0xdc], 4
xorps xmm1, xmm1
comiss xmm1, dword [edi + 0xe0]
jbe 0x100ed29f
mov dword [edi + 0xe0], 0x40800000
movss xmm0, dword [edi + 0xf8]
comiss xmm1, xmm0
jbe 0x100ed2b9
mov dword [edi + 0xf8], 0
xorps xmm0, xmm0
cmp dword [edi + 0xf4], 0
jge 0x100ed2cc
mov dword [edi + 0xf4], 1
movss dword [esi + 0xac], xmm0
mov eax, dword [edi + 0xfc]
movsd xmm0, qword [0x1017c850]
mov dword [esi + 0xb0], eax
subss xmm1, dword [edi + 0xe4]
movss dword [esi + 0xb4], xmm1
mulss xmm1, dword [0x1021e144]
cvtps2pd xmm1, xmm1
call fcn.100af1b0
cmp dword [esi + 0xa4], 1
cvtsd2ss xmm0, xmm0
movss dword [esi + 0xb8], xmm0
mov eax, dword [edi + 0xe0]
mov dword [esi + 0xbc], eax
mov eax, dword [edi + 0xdc]
mov dword [esi + 0xc0], eax
mov eax, dword [edi + 0xd0]
mov dword [esi + 0xc4], eax
mov eax, dword [edi + 0xd4]
mov dword [esi + 0xc8], eax
mov eax, dword [edi + 0xd8]
mov dword [esi + 0xcc], eax
mov eax, dword [edi + 0x84]
mov dword [esi + 0x44], eax
mov eax, dword [edi + 0x88]
mov dword [esi + 0x48], eax
mov eax, dword [edi + 0xf4]
mov dword [esi + 0x4c], eax
jne 0x100ed37f
mov eax, dword [edi + 0x94]
and eax, 2
jmp 0x100ed381
xor eax, eax
mov dword [esi + 0x50], eax
mov eax, dword [edi + 0x94]
movss xmm3, dword [0x10220e34]
movss xmm2, dword [0x10220e38]
sar eax, 2
and eax, 0x3f
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm3
jb 0x100ed3b0
subss xmm0, xmm2
movss xmm4, dword [0x101fcdfc]
mulss xmm0, xmm4
movss dword [esi + 0xd8], xmm0
mov eax, dword [edi + 0x94]
sar eax, 8
and eax, 0x3f
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm3
jb 0x100ed3e0
subss xmm0, xmm2
mulss xmm0, xmm4
movss dword [esi + 0xd4], xmm0
mov eax, dword [edi + 0x94]
sar eax, 0xe
and eax, 0x3f
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm3
jb 0x100ed408
subss xmm0, xmm2
mulss xmm0, xmm4
movss dword [esi + 0xdc], xmm0
mov eax, dword [edi + 0x94]
sar eax, 0x14
and eax, 0x3f
movd xmm1, eax
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm3
jb 0x100ed430
subss xmm1, xmm2
cmp dword [esi + 0x34], 2
xorps xmm5, xmm5
mulss xmm1, xmm4
addss xmm1, xmm0
movss dword [esi + 0xe0], xmm1
movss xmm0, dword [edi + 0x14]
movss xmm3, dword [edi + 0x18]
movaps xmm1, xmm0
movss xmm2, dword [edi + 0x1c]
movaps xmm4, xmm3
mulss xmm1, xmm5
mulss xmm4, xmm0
mulss xmm3, xmm1
mulss xmm1, xmm2
mulss xmm2, xmm0
jne 0x100ed496
cmp dword [esi + 0x38], 1
jne 0x100ed496
addss xmm4, xmm1
xorps xmm1, xmm1
addss xmm3, xmm2
xorps xmm2, xmm2
mulss xmm4, dword [0x1017d760]
mulss xmm3, dword [0x1017d760]
mov eax, dword [ebp - 4]
movss dword [esi + 0xf8], xmm4
movss dword [esi + 0xfc], xmm3
movss dword [esi + 0x100], xmm1
movss dword [esi + 0x104], xmm2
mov dword [eax + 0x9b98], 0
mov dword [eax + 0x9b9c], 0
cmp dword [esi + 0x58], 0
jne 0x100ed4f3
mov eax, dword [esi]
inc eax
imul eax, dword [esi + 0x68]
imul eax, eax, 0x11940
cdq
idiv dword [esi + 0x30]
mov eax, dword [ebp - 4]
mov dword [eax + 0x9b98], edx
mov dword [eax + 0x9b9c], edx
cmp dword [edi], 0xfff88e3b
jne 0x100ed56d
mov eax, dword [edi + 0x120]
mov dword [ebp + 8], eax
test eax, eax
je 0x100ed56d
mov dword [eax + 0x14b0c], 0
cmp dword [edi + 0x44], 0
je 0x100ed524
push edi
call fcn.100e9df0
mov eax, dword [ebp + 8]
add esp, 4
push 0x140
add eax, 0x14848
push 0
push eax
call fcn.100a2020
mov eax, dword [ebp + 8]
push 0x180
add eax, 0x14988
push 0
push eax
call fcn.100a2020
mov eax, dword [ebp + 8]
add esp, 0x18
cmp dword [eax + 0xa0], 0
mov dword [eax + 0x14eb4], 0
je 0x100ed56d
push edi
call fcn.100ee9f0
add esp, 4
push dword [ebp - 4]
call fcn.100f71a0
push edi
call fcn.100fb210
push dword [edi + 0x7c]
push esi
call fcn.100f2f50
mov dword [esi + 0x84], eax
add esp, 0x10
mov ecx, dword [edi + 0x3c]
mov dword [esi + 0x70], ecx
mov eax, dword [edi + 0x40]
mov dword [esi + 0x78], eax
test eax, eax
je 0x100ed5a4
mov dword [esi + 0x74], 1
test ecx, ecx
je 0x100ed5c3
mov eax, dword [ebp - 4]
push dword [esi + 0x30]
push dword [eax + 0x14eac]
call fcn.100f5c20
add esp, 8
test eax, eax
jne 0x100ed5c3
mov dword [esi + 0x70], eax
cmp dword [esi + 0x78], 0
mov esi, dword [ebp - 4]
je 0x100ed621
cmp dword [edi + 0x28], 0
jne 0x100ed621
mov eax, dword [esi + 0x14f34]
test eax, eax
je 0x100ed5e5
push eax
call fcn.100f4420
add esp, 4
call fcn.100f4440
mov dword [esi + 0x14f34], eax
push dword [edi + 0x118]
push eax
call fcn.100f4480
push dword [edi + 0x114]
push dword [esi + 0x14f34]
call fcn.100f4460
push dword [edi + 0x110]
push dword [esi + 0x14f34]
call fcn.100f44a0
add esp, 0x18
mov dword [esi + 4], 1
xor eax, eax
pop esi
pop edi
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
pop edi
mov esp, ebp
pop ebp
ret