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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x1120
call fcn.101308a0
mov esi, esp
mov eax, dword [0x10305014]
xor eax, ebp
mov dword [esi + 0x1118], eax
mov eax, edx
neg eax
mov dword [esi + 0x18], eax
xor eax, eax
dec eax
mov dword [esi + 0x108], eax
mov dword [esi + 0x10c], eax
mov dword [esi + 0x100], eax
mov dword [esi + 0x104], eax
mov edi, dword [ecx + 8]
xor eax, eax
inc eax
cmp edi, 2
mov dword [esi + 0x14], edi
cmovge eax, edi
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], edx
lea eax, [edx*4]
mov dword [esi + 0x40], eax
neg eax
mov edi, dword [ecx]
mov edx, dword [edi + 4]
mov ebx, dword [edi + 8]
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x3c], edi
mov edi, dword [edi + 0x20]
mov dword [esi + 0x24], edi
lea edi, [ecx + 0x5c]
mov dword [esi + 4], edi
lea edi, [edx + 0x800]
mov dword [esi + 0x10], edi
mov dword [esi + 0xc], ecx
lea edi, [ecx + 0x205c]
mov dword [esi + 8], edx
lea ebx, [edx*4 + 0x2000]
xor ecx, ecx
lea edx, [edi - 0x2000]
mov dword [esi + ecx*4 + 0x108], edx
lea edx, [edi + eax]
mov dword [esi + ecx*4 + 0x100], edx
inc ecx
add edi, ebx
cmp dword [esi + 0x20], ecx
jne 0x1028c10d
mov ecx, dword [esi + 0x10]
imul ecx, dword [esi + 0x14]
mov eax, dword [esi + 4]
lea ecx, [eax + ecx*4]
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x34]
mov dword [esi + 0x4c], eax
cmp eax, 0x27
jg 0x1028c15b
test edx, edx
jne 0x1028c15b
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x38], 0
je 0x1028c3b0
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x14]
lea eax, [edx + edx*2]
shl eax, 5
add ecx, eax
mov dword [esi + 0x48], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 0xc]
cmp ecx, eax
mov dword [esi + 4], ecx
cmovl eax, ecx
mov dword [esi + 0x50], eax
mov edi, dword [esi + 0x1c]
mov ecx, edi
imul ecx, edx
shl ecx, 2
mov eax, ecx
call fcn.101308a0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push ecx
push 0xff
mov dword [esi + 0x44], eax
push eax
call fcn.10132b90
add esp, 0xc
mov eax, dword [esi + 8]
shr eax, 1
sub eax, edi
lea eax, [eax*4 + 0x2000]
mov dword [esi + 0x10], eax
xor ebx, ebx
mov edi, dword [esi + 0x20]
mov eax, dword [esi + ebx*4 + 0x108]
mov ecx, dword [esi + 0x1c]
lea ecx, [eax + ecx*4]
push dword [esi + 0x10]
push ecx
push eax
call fcn.10132610
add esp, 0xc
inc ebx
cmp edi, ebx
jne 0x1028c1c4
xor eax, eax
cmp dword [esi + 0x4c], 0
sete al
movss xmm0, dword [eax*4 + 0x102f6070]
mov eax, dword [esi + 8]
lea eax, [eax*4 + 0x2060]
imul eax, dword [esi + 0x14]
mov ebx, dword [esi + 0x18]
lea ecx, [eax + ebx*4]
mov edx, dword [esi + 0xc]
lea eax, [edx + ecx]
add eax, 0x5c
add ecx, edx
mov edi, dword [esi + 0x2c]
lea edx, [edi + edi*2]
lea ecx, [ecx + edx*8]
add ecx, 0x5c
mov edx, dword [esi + 4]
sub edx, ebx
lea edi, [edi*4]
mov dword [esi + 8], edi
xor edi, edi
cmp ebx, dword [esi + 4]
jge 0x1028c254
xor ebx, ebx
movss xmm1, dword [ecx + ebx*4]
movss xmm2, dword [eax + ebx*4]
subss xmm2, xmm0
maxss xmm1, xmm2
movss dword [eax + ebx*4], xmm1
inc ebx
cmp edx, ebx
jne 0x1028c238
inc edi
mov ebx, dword [esi + 8]
add eax, ebx
add ecx, ebx
cmp edi, dword [esi + 0x20]
mov ebx, dword [esi + 0x18]
jne 0x1028c231
mov eax, dword [esi + 0x50]
cmp ebx, eax
cmovg eax, ebx
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 0x28]
cmp dword [esi + 0x14], 0
jle 0x1028c348
xor ecx, ecx
mov eax, dword [esi + 0x44]
mov dword [esi + 0x20], eax
mov edx, dword [esi + 0x18]
cmp edx, dword [esi + 0x50]
mov dword [esi + 0x28], ecx
jge 0x1028c332
imul ecx, dword [esi + 0x1c]
mov dword [esi + 0x2c], ecx
mov ebx, dword [esi + 0x24]
movsx ecx, word [ebx + edx*2]
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov eax, ecx
mov ecx, dword [ebp + 8]
shl eax, cl
movsx ecx, word [ebx + edx*2 + 2]
sub ecx, dword [esi + 4]
mov edx, dword [esi + 0x2c]
mov ebx, eax
mov dword [esi + 4], eax
add edx, eax
mov dword [esi + 0x10], edx
mov edx, ecx
inc dword [esi + 8]
mov ecx, dword [ebp + 8]
shl edx, cl
test edx, edx
jle 0x1028c308
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 4]
lea eax, [ecx + eax*4]
mov dword [esi + 4], eax
xor ebx, ebx
push edi
mov edi, edx
call fcn.1028e030
mov edx, edi
add esp, 4
mov edi, eax
sar eax, 0x14
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mov eax, dword [esi + 4]
movss dword [eax + ebx*4], xmm0
inc ebx
cmp edx, ebx
jne 0x1028c2e2
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x10]
lea eax, [eax + ecx*4]
mov ecx, dword [esi + 0xc]
push dword [ecx + 0x24]
push 0x3f800000
push edx
push eax
call fcn.1012e9a0
add esp, 0x10
mov edx, dword [esi + 8]
cmp edx, dword [esi + 0x30]
jne 0x1028c29d
mov ecx, dword [esi + 0x28]
inc ecx
mov eax, dword [esi + 0x20]
add eax, dword [esi + 0x40]
mov dword [esi + 0x20], eax
cmp ecx, dword [esi + 0x14]
jne 0x1028c287
mov ebx, dword [esi + 0xc]
mov dword [ebx + 0x28], edi
xor edi, edi
lea eax, [esi + 0x100]
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x44]
push dword [ebx + 0x24]
push edi
push dword [ebx + 0x10]
push dword [ebp + 8]
push edi
mov edi, dword [esi + 0x14]
push edi
push edi
push dword [esi + 0x30]
push dword [esi + 0x18]
push dword [esi + 0x48]
push eax
call fcn.1011f310
add esp, 0x2c
xor eax, eax
inc eax
mov ecx, dword [ebp + 8]
shl eax, cl
mov ecx, dword [esi + 0x4c]
add ecx, eax
mov eax, 0x2710
cmp ecx, eax
cmovge ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax + 0x34], ecx
mov ecx, dword [esi + 0x1118]
xor ecx, ebp
call fcn.10130483
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0x48], ecx
cmp dword [esi + 0x4c], 0
je 0x1028ccda
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x30]
movss xmm0, dword [0x102f6064]
movss dword [esi + 0x5c], xmm0
mov dword [esi + 0x10], eax
lea ebx, [eax + eax]
mov eax, 0x400
cmp ebx, eax
cmovge ebx, eax
mov eax, dword [esi + 8]
lea ecx, [eax*4]
mov eax, ecx
call fcn.101308a0
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0xe0], eax
mov esp, eax
mov edx, 0xff
push ecx
push edx
mov edi, 0xff
push eax
call fcn.10132b90
add esp, 0xc
mov ecx, 0x1060
mov eax, 0x1060
call fcn.101308a0
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x58], eax
mov esp, eax
push ecx
push edi
push eax
call fcn.10132b90
add esp, 0xc
lea edi, [ebx*4]
mov eax, edi
call fcn.101308a0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push edi
mov ecx, 0xff
push ecx
mov dword [esi + 0xd8], eax
push eax
call fcn.10132b90
add esp, 0xc
mov eax, dword [esi + 0x58]
mov dword [esi + 0xdc], edi
sub eax, edi
mov ecx, 0x1060
add eax, ecx
mov dword [esi + 0xd4], eax
mov dword [esi + 0xe4], ebx
mov eax, ebx
sar eax, 1
mov edi, 0x800
mov ecx, dword [esi + 0x1c]
sub edi, ecx
shl edi, 2
mov dword [esi + 0xd0], edi
mov edi, 0x400
sub edi, dword [esi + 0x10]
mov dword [esi + 0x44], edi
mov ebx, dword [esi + 8]
mov edi, ebx
shr edi, 0x1f
add edi, ebx
sar edi, 1
mov dword [esi + 0xcc], edi
cmp eax, 2
mov edi, 1
cmovge edi, eax
mov dword [esi + 0xc8], edi
mov edx, 0x2000
sub edx, dword [esi + 0x40]
mov dword [esi + 0x54], edx
shl eax, 2
mov edi, dword [esi + 0x58]
mov edx, edi
sub edx, eax
mov eax, 0x1060
add edx, eax
mov dword [esi + 0xc4], edx
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 0x3c]
mov dword [esi + 0x24], eax
mov eax, 0x7ff
sub eax, ecx
mov dword [esi + 0x3c], eax
mov eax, 0x7fe
sub eax, ecx
mov dword [esi + 0xc0], eax
mov eax, 0x7fd
sub eax, ecx
mov dword [esi + 0xbc], eax
mov eax, 0x7fc
sub eax, ecx
mov dword [esi + 0xb8], eax
mov eax, 0x7fb
sub eax, ecx
mov dword [esi + 0xb4], eax
mov eax, 0x7fa
sub eax, ecx
mov dword [esi + 0xb0], eax
mov eax, 0x7f9
sub eax, ecx
mov dword [esi + 0xac], eax
mov eax, 0x7f8
sub eax, ecx
mov dword [esi + 0xa8], eax
mov eax, 0x7f7
sub eax, ecx
mov dword [esi + 0xa4], eax
mov eax, 0x7f6
sub eax, ecx
mov dword [esi + 0xa0], eax
mov eax, 0x7f5
sub eax, ecx
mov dword [esi + 0x9c], eax
mov eax, 0x7f4
sub eax, ecx
mov dword [esi + 0x98], eax
mov eax, 0x7f3
sub eax, ecx
mov dword [esi + 0x94], eax
mov eax, 0x7f2
sub eax, ecx
mov dword [esi + 0x90], eax
mov eax, 0x7f1
sub eax, ecx
mov dword [esi + 0x8c], eax
mov eax, 0x7f0
sub eax, ecx
mov dword [esi + 0x88], eax
mov eax, 0x7ef
sub eax, ecx
mov dword [esi + 0x84], eax
mov eax, 0x7ee
sub eax, ecx
mov dword [esi + 0x80], eax
mov eax, 0x7ed
sub eax, ecx
mov dword [esi + 0x7c], eax
mov eax, 0x7ec
sub eax, ecx
mov dword [esi + 0x78], eax
mov eax, 0x7eb
sub eax, ecx
mov dword [esi + 0x74], eax
mov eax, 0x7ea
sub eax, ecx
mov dword [esi + 0x70], eax
mov eax, 0x7e9
sub eax, ecx
mov dword [esi + 0x6c], eax
mov eax, 0x7e8
sub eax, ecx
mov dword [esi + 0x68], eax
mov eax, edi
lea eax, [edi + 0x60]
mov dword [esi + 0x2c], eax
mov edx, ebx
lea eax, [ebx + ecx]
mov dword [esi + 0x28], eax
lea eax, [eax*4]
mov dword [esi + 0x60], eax
lea eax, [ebx - 1]
mov dword [esi + 0x64], eax
xor edi, edi
mov edx, dword [esi + edi*4 + 0x108]
mov eax, 0x3e8
mov ecx, dword [esi + 0x58]
movd xmm0, dword [edx + eax*4]
movd dword [ecx + eax*4 - 0xfa0], xmm0
inc eax
cmp eax, 0x800
jne 0x1028c644
mov dword [esi + 4], edx
cmp dword [esi + 0x4c], 0
mov ebx, dword [esi + 0xd4]
mov dword [esi + 0x14], edi
je 0x1028ca78
lea eax, [edi*8]
lea eax, [eax + eax*2]
mov edi, dword [esi + 0x48]
lea ecx, [edi + eax*4]
mov eax, dword [esi + 0xc]
push dword [eax + 0x24]
push 0x18
push dword [esi + 0xe4]
mov edi, dword [esi + 0xd8]
push edi
mov dword [esi + 0x50], ecx
push ecx
push ebx
call fcn.1028ea50
add esp, 0x18
push dword [esi + 0xdc]
push edi
push ebx
call fcn.10132610
add esp, 0xc
movss xmm2, dword [0x10299218]
movaps xmm0, xmm2
movaps xmm1, xmm2
cmp dword [esi + 0x10], 0
mov ecx, dword [esi + 0xc8]
mov edx, dword [esi + 0xc4]
jle 0x1028c6f9
xor eax, eax
movaps xmm1, xmm2
movaps xmm0, xmm2
movss xmm2, dword [edx + eax*4]
mulss xmm2, xmm2
addss xmm0, xmm2
movss xmm2, dword [ebx + eax*4]
mulss xmm2, xmm2
addss xmm1, xmm2
inc eax
cmp ecx, eax
jne 0x1028c6da
minss xmm0, xmm1
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
ucomisd xmm0, qword [0x10298578]
mov edi, dword [esi + 0x18]
jb 0x1028c718
sqrtsd xmm0, xmm0
jmp 0x1028c736
sub esp, 8
movsd qword [esp], xmm0
call fcn.101460b0
add esp, 8
fstp qword [esi + 0xf0]
movsd xmm0, qword [esi + 0xf0]
movsd qword [esi + 0x30], xmm0
mov eax, dword [esi + 0x1c]
mov ebx, dword [esi + 0x28]
mov ecx, dword [esi + 4]
lea eax, [ecx + eax*4]
push dword [esi + 0xd0]
push eax
push ecx
call fcn.10132610
add esp, 0xc
test ebx, ebx
jle 0x1028cb5d
movsd xmm0, qword [esi + 0x30]
cvtsd2ss xmm0, xmm0
movss xmm1, dword [esi + 0x5c]
mulss xmm1, xmm0
xorps xmm4, xmm4
xor ebx, ebx
mov ecx, edi
mov eax, dword [esi + 0x10]
movss xmm3, dword [0x10299218]
movaps xmm2, xmm3
cmp ebx, eax
jl 0x1028c78d
movaps xmm2, xmm0
mulss xmm1, xmm2
mov edx, eax
mov eax, 0
cmovl edx, eax
mov edi, ebx
sub edi, edx
add edi, dword [esi + 0x44]
mov eax, dword [esi + 0x2c]
movss xmm2, dword [eax + edi*4]
mulss xmm2, xmm1
mov eax, dword [esi + 4]
movss dword [eax + ecx*4 + 0x2000], xmm2
sub edi, dword [esi + 0x1c]
movss xmm2, dword [eax + edi*4 + 0x1000]
mov eax, dword [esi + 0x10]
neg edx
add ebx, edx
inc ebx
mulss xmm2, xmm2
addss xmm4, xmm2
inc ecx
cmp dword [esi + 8], ecx
jne 0x1028c783
movss dword [esi + 0x40], xmm4
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x160], xmm0
movdqa xmmword [esi + 0x150], xmm0
movdqa xmmword [esi + 0x140], xmm0
movdqa xmmword [esi + 0x130], xmm0
movdqa xmmword [esi + 0x120], xmm0
movdqa xmmword [esi + 0x110], xmm0
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + 4]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x110], xmm0
mov eax, dword [esi + 0xc0]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x114], xmm0
mov eax, dword [esi + 0xbc]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x118], xmm0
mov eax, dword [esi + 0xb8]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x11c], xmm0
mov eax, dword [esi + 0xb4]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x120], xmm0
mov eax, dword [esi + 0xb0]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x124], xmm0
mov eax, dword [esi + 0xac]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x128], xmm0
mov eax, dword [esi + 0xa8]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x12c], xmm0
mov eax, dword [esi + 0xa4]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x130], xmm0
mov eax, dword [esi + 0xa0]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x134], xmm0
mov eax, dword [esi + 0x9c]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x138], xmm0
mov eax, dword [esi + 0x98]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x13c], xmm0
mov eax, dword [esi + 0x94]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x140], xmm0
mov eax, dword [esi + 0x90]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x144], xmm0
mov eax, dword [esi + 0x8c]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x148], xmm0
mov eax, dword [esi + 0x88]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x14c], xmm0
mov eax, dword [esi + 0x84]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x150], xmm0
mov eax, dword [esi + 0x80]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x154], xmm0
mov eax, dword [esi + 0x7c]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x158], xmm0
mov eax, dword [esi + 0x78]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x15c], xmm0
mov eax, dword [esi + 0x74]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x160], xmm0
mov eax, dword [esi + 0x70]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x164], xmm0
mov eax, dword [esi + 0x6c]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x168], xmm0
mov eax, dword [esi + 0x68]
movss xmm0, dword [ebx + eax*4]
movss dword [esi + 0x16c], xmm0
lea eax, [ebx + 0x2000]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x18]
lea eax, [ebx + eax*4 + 0x2000]
mov ecx, dword [esi + 0xc]
push dword [ecx + 0x24]
lea ecx, [esi + 0x110]
push ecx
push 0x18
mov edi, dword [esi + 0x28]
push edi
push eax
push dword [esi + 0x50]
push eax
call fcn.1028ebd0
add esp, 0x1c
xorps xmm0, xmm0
test edi, edi
jle 0x1028cb65
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x30]
movss xmm1, dword [edx + eax*4]
mulss xmm1, xmm1
addss xmm0, xmm1
inc eax
cmp ecx, eax
jne 0x1028ca12
movaps xmm1, xmm0
mulss xmm1, dword [0x102dae28]
movss xmm2, dword [esi + 0x40]
ucomiss xmm2, xmm1
jbe 0x1028cb75
ucomiss xmm0, xmm2
jbe 0x1028cb8a
movss xmm4, dword [0x10299218]
addss xmm2, xmm4
addss xmm0, xmm4
divss xmm2, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
ucomisd xmm0, qword [0x10298578]
jb 0x1028cc48
sqrtsd xmm0, xmm0
jmp 0x1028cc6e
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x160], xmm0
movdqa xmmword [esi + 0x150], xmm0
movdqa xmmword [esi + 0x140], xmm0
movdqa xmmword [esi + 0x130], xmm0
movdqa xmmword [esi + 0x120], xmm0
movdqa xmmword [esi + 0x110], xmm0
mov dword [esi + 0x170], 0xffffffff
mov eax, dword [esi + 0xc]
push dword [eax + 0x24]
push 0x400
push 0x18
push dword [esi + 8]
push dword [esi + 0x24]
lea eax, [esi + 0x110]
push eax
push dword [esi + 0x2c]
call fcn.1028ee80
movss xmm3, dword [0x102f606c]
add esp, 0x1c
movss xmm0, dword [esi + 0x110]
mulss xmm0, dword [0x102f6068]
movss dword [esi + 0x110], xmm0
xor eax, eax
inc eax
movss xmm0, dword [esi + eax*4 + 0x110]
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
movaps xmm2, xmm0
mulss xmm2, xmm3
mulss xmm2, xmm1
mulss xmm2, xmm1
addss xmm2, xmm0
movss dword [esi + eax*4 + 0x110], xmm2
inc eax
cmp eax, 0x19
jne 0x1028cafe
lea eax, [edi*8]
lea eax, [eax + eax*2]
mov dword [esi + 0x30], eax
mov edi, dword [esi + 0x48]
lea eax, [edi + eax*4]
push 0x18
lea ecx, [esi + 0x110]
push ecx
push eax
call fcn.1028e900
mov eax, dword [esi + 0x30]
add esp, 0xc
jmp 0x1028c67d
xorps xmm4, xmm4
jmp 0x1028c7dc
movss xmm2, dword [esi + 0x40]
ucomiss xmm2, xmm0
ja 0x1028ca3d
jmp 0x1028cb8a
test edi, edi
jle 0x1028cb8a
add ebx, dword [esi + 0x54]
push dword [esi + 0x60]
push 0
push ebx
call fcn.10132b90
add esp, 0xc
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x4c]
movss xmm0, dword [ecx + 0x44]
xorps xmm0, xmmword [0x102a8d80]
mov edx, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x3c]
sub esp, 0x30
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ecx
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x14], xmm0
mov edi, dword [esi + 8]
mov dword [esp + 0x10], edi
mov eax, dword [esi + 0x30]
mov dword [esp + 4], eax
mov ebx, dword [esi + 0xe0]
mov dword [esp], ebx
call fcn.10127ca0
mov eax, edi
mov edi, ebx
add esp, 0x30
cmp eax, 2
mov edx, dword [esi + 0xcc]
mov ebx, dword [esi + 0x24]
jl 0x1028cc36
xor eax, eax
mov ecx, dword [esi + 0x64]
movss xmm0, dword [ebx + eax*4]
mulss xmm0, dword [edi + ecx*4]
movss xmm1, dword [ebx + ecx*4]
mulss xmm1, dword [edi + eax*4]
addss xmm1, xmm0
mov ebx, edi
mov edi, edx
mov edx, dword [esi + 0x30]
movss dword [edx + eax*4], xmm1
mov edx, edi
mov edi, ebx
mov ebx, dword [esi + 0x24]
inc eax
dec ecx
cmp edx, eax
jne 0x1028cc05
mov edi, dword [esi + 0x14]
inc edi
cmp edi, dword [esi + 0x20]
jne 0x1028c635
jmp 0x1028c37e
sub esp, 8
movsd qword [esp], xmm0
call fcn.101460b0
movss xmm4, dword [0x10299218]
add esp, 8
fstp qword [esi + 0xe8]
movsd xmm0, qword [esi + 0xe8]
mov ebx, dword [esi + 0x24]
cvtsd2ss xmm0, xmm0
mov edx, dword [esi + 8]
test edx, edx
jle 0x1028ccac
movaps xmm1, xmm4
subss xmm1, xmm0
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 4]
add eax, ecx
xor ecx, ecx
movss xmm2, dword [ebx + ecx*4]
mulss xmm2, xmm1
movaps xmm3, xmm4
subss xmm3, xmm2
mulss xmm3, dword [eax + ecx*4]
movss dword [eax + ecx*4], xmm3
inc ecx
cmp edx, ecx
jne 0x1028cc8d
cmp dword [esi + 0x1c], 0
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 4]
jle 0x1028cb8a
add edx, dword [esi + 0x54]
mov eax, dword [esi + 8]
movss xmm1, dword [edx + eax*4]
mulss xmm1, xmm0
movss dword [edx + eax*4], xmm1
inc eax
cmp eax, ecx
jl 0x1028ccc2
jmp 0x1028cb8a
mov edi, dword [esi + 0xc]
mov ebx, dword [edi + 0x24]
lea eax, [esi + 0xfc]
mov dword [eax], 0xffffffff
lea eax, [esi + 0x110]
push 0x1000
push 0xff
push eax
call fcn.10132b90
add esp, 0xc
lea eax, [esi + 0x108]
push ebx
push dword [esi + 0x14]
push 0x800
lea ecx, [esi + 0x110]
push ecx
push eax
call fcn.1028eff0
add esp, 0x14
lea eax, [esi + 0x6b0]
push ebx
lea ebx, [esi + 0xfc]
push ebx
push 0x26c
push 0x530
lea ecx, [esi + 0x110]
push ecx
push eax
call fcn.1028f410
add esp, 0x18
mov eax, 0x2d0
sub eax, dword [ebx]
mov dword [edi + 0x30], eax
movss xmm0, dword [0x10299218]
jmp 0x1028c3cb