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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x10c0
call fcn.101027c0
mov esi, esp
mov ebx, ecx
mov eax, dword [0x1018fc64]
xor eax, ebp
mov dword [esi + 0x10b8], eax
mov eax, edx
neg eax
mov dword [esi + 0x18], eax
xor edi, edi
dec edi
mov dword [esi + 0xa8], edi
mov dword [esi + 0xac], edi
mov dword [esi + 0xa0], edi
mov ecx, dword [ecx + 8]
xor eax, eax
inc eax
test ecx, ecx
mov dword [esi + 0xc], ecx
cmovg eax, ecx
mov dword [esi + 0x50], eax
mov dword [esi + 0xa4], edi
mov dword [esi + 0x14], edx
lea ecx, [edx*4]
mov eax, 0x205c
mov dword [esi + 0x2c], ecx
sub eax, ecx
mov edx, dword [ebx]
mov ecx, dword [edx + 4]
mov edi, dword [edx + 8]
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edx
mov edx, dword [edx + 0x20]
mov dword [esi + 0x28], edx
lea edx, [ecx + 0x800]
mov dword [esi + 4], edx
mov dword [esi + 0x10], ecx
lea ecx, [ecx*4 + 0x2000]
xor edx, edx
mov dword [esi + 8], ebx
lea edi, [ebx + 0x5c]
mov dword [esi + edx*4 + 0xa8], edi
lea edi, [ebx + eax]
mov dword [esi + edx*4 + 0xa0], edi
inc edx
add ebx, ecx
cmp dword [esi + 0x50], edx
jne 0x100f42d5
mov ecx, dword [esi + 4]
imul ecx, dword [esi + 0xc]
mov edi, dword [esi + 8]
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x34]
mov dword [esi + 0x4c], eax
cmp eax, 4
jg 0x100f4317
test edx, edx
jne 0x100f4317
cmp dword [edi + 0x38], 0
je 0x100f456c
lea eax, [edi + ecx*4]
mov ebx, dword [esi + 0xc]
mov dword [esi + 0x20], edx
lea ecx, [ebx + ebx*2]
shl ecx, 5
add eax, ecx
add eax, 0x5c
mov dword [esi + 0x38], eax
mov edi, dword [edi + 0x18]
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 0xc]
cmp edi, eax
cmovl eax, edi
mov dword [esi + 0x1c], eax
mov ecx, dword [esi + 0x14]
imul ecx, ebx
shl ecx, 2
mov eax, ecx
call fcn.101027c0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push ecx
push 0xff
mov dword [esi + 0x40], eax
push eax
call fcn.10105ec0
add esp, 0xc
xor eax, eax
cmp dword [esi + 0x4c], 0
sete al
movss xmm0, dword [eax*4 + 0x1016f348]
mov dword [esi + 4], edi
mov eax, edi
mov ebx, dword [esi + 0x20]
sub eax, ebx
mov ecx, dword [esi + 0x10]
lea ecx, [ecx*4 + 0x2060]
imul ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x30]
lea edx, [edi + edi*2]
lea edx, [ecx + edx*8]
mov dword [esi + 0x3c], edx
mov edx, ebx
lea ecx, [ecx + ebx*4]
mov ebx, dword [esi + 8]
lea ecx, [ebx + ecx + 0x5c]
lea edi, [edi*4]
mov dword [esi + 0x18], edi
mov edi, dword [esi + 0x3c]
lea edx, [edi + edx*4]
mov edi, ebx
add ebx, edx
add ebx, 0x5c
xor edi, edi
mov edx, dword [esi + 4]
cmp dword [esi + 0x20], edx
jge 0x100f43e9
xor edx, edx
movss xmm1, dword [ebx + edx*4]
movss xmm2, dword [ecx + edx*4]
subss xmm2, xmm0
maxss xmm1, xmm2
movss dword [ecx + edx*4], xmm1
inc edx
cmp eax, edx
jne 0x100f43cd
inc edi
mov edx, dword [esi + 0x18]
add ecx, edx
add ebx, edx
cmp edi, dword [esi + 0x50]
jne 0x100f43c3
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
cmp ecx, eax
cmovg eax, ecx
mov dword [esi + 0x54], eax
mov eax, dword [esi + 8]
mov ebx, dword [eax + 0x28]
cmp dword [esi + 0xc], 0
jle 0x100f44de
xor eax, eax
mov edx, dword [esi + 0x40]
mov dword [esi + 0x24], edx
cmp ecx, dword [esi + 0x1c]
mov dword [esi + 0x58], eax
jge 0x100f44c5
imul eax, dword [esi + 0x14]
mov dword [esi + 0x3c], eax
mov edx, ecx
mov eax, dword [esi + 0x28]
movsx edi, word [eax + edx*2]
mov dword [esi + 0x18], edx
mov eax, edi
mov ecx, dword [ebp + 8]
shl eax, cl
mov ecx, dword [esi + 0x28]
movsx ecx, word [ecx + edx*2 + 2]
sub ecx, edi
mov edx, dword [esi + 0x3c]
mov edi, eax
mov dword [esi + 4], eax
add edx, eax
mov dword [esi + 0x30], edx
mov edx, ecx
inc dword [esi + 0x18]
mov ecx, dword [ebp + 8]
shl edx, cl
test edx, edx
jle 0x100f449b
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 4]
lea eax, [ecx + eax*4]
mov dword [esi + 4], eax
xor edi, edi
push ebx
mov ebx, edx
call fcn.100f7a28
mov edx, ebx
add esp, 4
mov ebx, eax
sar eax, 0x14
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mov eax, dword [esi + 4]
movss dword [eax + edi*4], xmm0
inc edi
cmp edx, edi
jne 0x100f4475
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x30]
lea eax, [eax + ecx*4]
mov ecx, dword [esi + 8]
push dword [ecx + 0x24]
push 0x3f800000
push edx
push eax
call fcn.100faddb
add esp, 0x10
mov edx, dword [esi + 0x18]
cmp edx, dword [esi + 0x54]
jne 0x100f4431
mov eax, dword [esi + 0x58]
inc eax
mov ecx, dword [esi + 0x24]
add ecx, dword [esi + 0x2c]
mov dword [esi + 0x24], ecx
cmp eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x20]
jne 0x100f441c
mov eax, dword [esi + 8]
mov dword [eax + 0x28], ebx
mov eax, dword [esi + 0x10]
shr eax, 1
sub eax, dword [esi + 0x14]
lea eax, [eax*4 + 0x2000]
mov dword [esi + 4], eax
xor ebx, ebx
mov edi, dword [esi + 0x50]
mov eax, dword [esi + ebx*4 + 0xa8]
mov ecx, dword [esi + 0x14]
lea ecx, [eax + ecx*4]
push dword [esi + 4]
push ecx
push eax
call fcn.10105940
add esp, 0xc
inc ebx
cmp edi, ebx
jne 0x100f44fb
xor eax, eax
lea edi, [esi + 0xa0]
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x40]
mov ebx, dword [esi + 8]
push dword [ebx + 0x24]
push eax
push dword [ebx + 0x10]
push dword [ebp + 8]
push eax
mov eax, dword [esi + 0xc]
push eax
push eax
push dword [esi + 0x54]
push dword [esi + 0x20]
push dword [esi + 0x38]
push edi
call fcn.100f4e44
add esp, 0x2c
mov eax, dword [esi + 0x4c]
inc eax
mov ecx, dword [esi + 8]
mov dword [ecx + 0x34], eax
mov ecx, dword [esi + 0x10b8]
xor ecx, ebp
call fcn.10102288
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esi + 0x4c], 0
je 0x100f4582
mov edx, dword [edi + 0x30]
movss xmm0, dword [0x1016f30c]
jmp 0x100f4606
mov edi, dword [edi + 0x24]
lea eax, [esi + 0x9c]
mov dword [eax], 0xffffffff
lea ebx, [esi + 0xb0]
push 0x1000
push 0xff
push ebx
mov dword [esi + 4], ecx
call fcn.10105ec0
add esp, 0xc
lea eax, [esi + 0xa8]
push edi
push dword [esi + 0xc]
push 0x800
push ebx
push eax
call fcn.100fb0c8
add esp, 0x14
lea eax, [esi + 0x650]
push edi
lea ecx, [esi + 0x9c]
push ecx
push 0x26c
push 0x530
push ebx
mov edi, dword [esi + 8]
push eax
call fcn.100fb414
mov ecx, dword [esi + 4]
add esp, 0x18
mov edx, 0x2d0
lea eax, [esi + 0x9c]
sub edx, dword [eax]
mov dword [edi + 0x30], edx
movss xmm0, dword [0x101349c0]
movss dword [esi + 0x5c], xmm0
mov dword [esi + 0x28], edx
lea eax, [edi + ecx*4]
add eax, 0x5c
mov dword [esi + 0x84], eax
lea eax, [edx + edx]
mov ecx, 0x400
cmp eax, ecx
cmovge eax, ecx
mov dword [esi + 0x2c], eax
mov ecx, eax
neg ecx
mov dword [esi + 0x38], ecx
mov eax, dword [esi + 0x10]
lea ecx, [eax*4]
mov eax, ecx
call fcn.101027c0
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x80], eax
mov esp, eax
mov edx, 0xff
push ecx
push edx
push eax
call fcn.10105ec0
add esp, 0xc
mov ebx, 0x1060
mov eax, 0x1060
call fcn.101027c0
mov edi, esp
and edi, 0xfffffff0
mov esp, edi
push ebx
mov eax, 0xff
push eax
push edi
call fcn.10105ec0
add esp, 0xc
mov eax, dword [esi + 0x2c]
lea ecx, [eax*4]
mov dword [esi + 0x60], ecx
mov eax, ecx
call fcn.101027c0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push ecx
mov ecx, 0xff
push ecx
mov dword [esi + 0x78], eax
push eax
call fcn.10105ec0
mov ecx, edi
mov edi, dword [esi + 0x10]
add esp, 0xc
add ebx, ecx
sub ebx, dword [esi + 0x60]
mov dword [esi + 0x7c], ebx
mov eax, 0x800
mov edx, dword [esi + 0x14]
sub eax, edx
mov dword [esi + 0x48], eax
mov eax, 0x400
sub eax, dword [esi + 0x28]
mov dword [esi + 0x3c], eax
mov eax, 0x7ff
sub eax, edx
mov dword [esi + 0x74], eax
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
mov dword [esi + 0x54], eax
mov ebx, dword [esi + 0x2c]
test ebx, ebx
mov edx, 0xffffffff
cmovns edx, ebx
test edx, edx
mov eax, 1
cmovg edx, eax
mov ebx, dword [esi + 0x38]
mov eax, dword [esi + 0x2c]
cmp eax, ebx
cmovg ebx, eax
shr ebx, 1
imul ebx, edx
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 0x3c]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x38], ebx
lea eax, [ebx*4]
neg eax
add eax, ecx
add eax, 0x1060
mov dword [esi + 0x70], eax
lea eax, [ecx + 0x60]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x48]
lea eax, [eax*4]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x14]
add eax, edi
mov dword [esi + 0x24], eax
lea eax, [eax*4]
mov dword [esi + 0x64], eax
lea eax, [edi - 1]
mov dword [esi + 0x68], eax
xor edi, edi
mov dword [esi + 0x34], ecx
mov edx, dword [esi + edi*4 + 0xa8]
xor eax, eax
movd xmm0, dword [edx + eax*4 + 0xfa0]
movd dword [ecx + eax*4], xmm0
inc eax
cmp eax, 0x418
jne 0x100f476d
mov dword [esi + 4], edx
cmp dword [esi + 0x4c], 0
mov ebx, dword [esi + 0x84]
mov dword [esi + 0x20], edi
je 0x100f47a4
lea eax, [edi*8]
lea edi, [eax + eax*2]
jmp 0x100f4885
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x100], xmm0
movdqa xmmword [esi + 0xf0], xmm0
movdqa xmmword [esi + 0xe0], xmm0
movdqa xmmword [esi + 0xd0], xmm0
movdqa xmmword [esi + 0xc0], xmm0
movdqa xmmword [esi + 0xb0], xmm0
mov dword [esi + 0x110], 0xffffffff
mov eax, dword [esi + 8]
push dword [eax + 0x24]
push 0x400
push 0x18
push dword [esi + 0x10]
push dword [esi + 0x1c]
lea eax, [esi + 0xb0]
push eax
push dword [esi + 0x30]
call fcn.100fbc66
movdqa xmm5, xmmword [0x1013ffd0]
movaps xmm4, xmmword [0x1016f320]
add esp, 0x1c
movss xmm0, dword [esi + 0xb0]
mulss xmm0, dword [0x1016f310]
movss dword [esi + 0xb0], xmm0
xor eax, eax
inc eax
movaps xmm0, xmmword [0x1016afd0]
movups xmm1, xmmword [esi + eax*4 + 0xb0]
movaps xmm2, xmm1
mulps xmm2, xmm4
cvtdq2ps xmm3, xmm0
mulps xmm2, xmm3
mulps xmm2, xmm3
addps xmm2, xmm1
movups xmmword [esi + eax*4 + 0xb0], xmm2
paddd xmm0, xmm5
add eax, 4
cmp eax, 0x19
jne 0x100f4838
lea eax, [edi*8]
lea edi, [eax + eax*2]
lea eax, [ebx + edi*4]
push 0x18
lea ecx, [esi + 0xb0]
push ecx
push eax
call fcn.100fb7bc
add esp, 0xc
lea ecx, [ebx + edi*4]
mov eax, dword [esi + 8]
push dword [eax + 0x24]
push 0x18
push dword [esi + 0x2c]
mov ebx, dword [esi + 0x78]
push ebx
mov dword [esi + 0x58], ecx
push ecx
mov edi, dword [esi + 0x7c]
push edi
call fcn.100fb8cd
add esp, 0x18
push dword [esi + 0x60]
push ebx
push edi
call fcn.101053c0
add esp, 0xc
movaps xmm0, xmmword [0x1016f330]
cmp dword [esi + 0x28], 0
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x70]
jle 0x100f48e8
xor eax, eax
movaps xmm0, xmmword [0x1016f330]
movss xmm1, dword [edi + eax*4]
movss xmm2, dword [edx + eax*4]
unpcklps xmm2, xmm1
mulps xmm2, xmm2
addps xmm0, xmm2
inc eax
cmp eax, ecx
jl 0x100f48d0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
minss xmm0, xmm1
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
ucomisd xmm0, qword [0x10149f88]
mov edi, dword [esi + 0x24]
mov ebx, dword [esi + 4]
jb 0x100f4911
sqrtsd xmm0, xmm0
jmp 0x100f492f
sub esp, 8
movsd qword [esp], xmm0
call fcn.101151b0
add esp, 8
fstp qword [esi + 0x90]
movsd xmm0, qword [esi + 0x90]
movsd qword [esi + 0x40], xmm0
mov eax, dword [esi + 0x14]
lea eax, [ebx + eax*4]
push dword [esi + 0x6c]
push eax
push ebx
call fcn.10105940
add esp, 0xc
test edi, edi
jle 0x100f49bf
xorps xmm0, xmm0
cvtsd2ss xmm0, qword [esi + 0x40]
movss xmm1, dword [esi + 0x5c]
mulss xmm1, xmm0
xorps xmm3, xmm3
xor ebx, ebx
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x28]
cmp ebx, eax
jl 0x100f496f
invalid