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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b8030
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x78
push esi
push edi
mov eax, dword [0x100e4280]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x44], esi
movss xmm1, dword [0x100b9700]
movss xmm3, dword [0x100b9708]
movaps xmm6, xmm1
mov eax, dword [ebx + 0x14]
movaps xmm7, xmm1
mov edx, dword [ebx + 0x10]
movaps xmm5, xmm3
movss dword [ebp - 0x1c], xmm1
movaps xmm4, xmm3
movss dword [ebp - 0x18], xmm6
test eax, eax
jle 0x10079926
mov ecx, dword [ebx + 8]
add ecx, 8
cmp byte [ebx + 0xc], 0
je 0x100798d0
movsd xmm2, qword [ecx - 8]
movsd xmm1, qword [ecx + 8]
movsd xmm0, qword [ecx]
add ecx, edx
movss xmm6, dword [ebp - 0x1c]
cvtpd2ps xmm2, xmm2
cvtpd2ps xmm1, xmm1
comiss xmm6, xmm2
movss xmm6, dword [ebp - 0x18]
cvtpd2ps xmm0, xmm0
jbe 0x10079890
movss dword [ebp - 0x1c], xmm2
comiss xmm6, xmm0
jbe 0x1007989d
movaps xmm6, xmm0
movss dword [ebp - 0x18], xmm6
comiss xmm7, xmm1
jbe 0x100798a5
movaps xmm7, xmm1
comiss xmm2, xmm3
jbe 0x100798ad
movaps xmm3, xmm2
comiss xmm0, xmm5
jbe 0x100798b5
movaps xmm5, xmm0
comiss xmm1, xmm4
jbe 0x100798bd
movaps xmm4, xmm1
sub eax, 1
jne 0x10079860
jmp 0x10079926
movss xmm2, dword [ecx - 8]
movss xmm6, dword [ebp - 0x1c]
movss xmm0, dword [ecx - 4]
movss xmm1, dword [ecx]
add ecx, edx
comiss xmm6, xmm2
movss xmm6, dword [ebp - 0x18]
jbe 0x100798f4
movss dword [ebp - 0x1c], xmm2
comiss xmm6, xmm0
jbe 0x10079901
movaps xmm6, xmm0
movss dword [ebp - 0x18], xmm6
comiss xmm7, xmm1
jbe 0x10079909
movaps xmm7, xmm1
comiss xmm2, xmm3
jbe 0x10079911
movaps xmm3, xmm2
comiss xmm0, xmm5
jbe 0x10079919
movaps xmm5, xmm0
comiss xmm1, xmm4
jbe 0x10079921
movaps xmm4, xmm1
sub eax, 1
jne 0x100798d0
movaps xmm1, xmm5
mov dword [ebp - 0x54], 0
subss xmm1, dword [ebp - 0x18]
movaps xmm2, xmm3
movaps xmm6, xmm4
subss xmm2, dword [ebp - 0x1c]
xor ecx, ecx
subss xmm6, xmm7
comiss xmm1, xmm2
jbe 0x10079969
comiss xmm6, xmm1
lea eax, [esi + 0x70]
mov edx, 2
mov dword [ebp - 0x34], eax
seta cl
inc ecx
mov dword [eax], ecx
xor eax, eax
comiss xmm6, xmm2
cmova edx, eax
jmp 0x10079985
comiss xmm6, xmm2
mov eax, 2
cmova ecx, eax
xor edx, edx
comiss xmm6, xmm1
lea eax, [esi + 0x70]
mov dword [eax], ecx
mov dword [ebp - 0x34], eax
setbe dl
inc edx
mov dword [esi + 0x68], edx
mov edi, 3
cmp edx, ecx
jne 0x1007999b
lea eax, [ecx + 1]
xor edx, edx
div edi
mov dword [esi + 0x68], edx
mov eax, edi
movss xmm0, dword [0x100ba43c]
sub eax, edx
mulss xmm2, xmm0
sub eax, ecx
mulss xmm1, xmm0
mov dword [esi + 0x6c], eax
inc eax
cdq
idiv edi
mulss xmm6, xmm0
movss dword [ebp - 0x30], xmm2
movss dword [ebp - 0x60], xmm2
movss dword [ebp - 0x20], xmm1
movss dword [ebp - 0x5c], xmm1
movss dword [ebp - 0x40], xmm6
movss dword [ebp - 0x58], xmm6
cmp edx, ecx
je 0x10079a0d
movss xmm0, dword [0x100b92c0]
xorps xmm2, xmm0
xorps xmm1, xmm0
xorps xmm6, xmm0
movss dword [ebp - 0x30], xmm2
movss dword [ebp - 0x60], xmm2
movss dword [ebp - 0x20], xmm1
movss dword [ebp - 0x5c], xmm1
movss dword [ebp - 0x40], xmm6
movss dword [ebp - 0x58], xmm6
movups xmm0, xmmword [ebp - 0x60]
movups xmmword [esi], xmm0
xorps xmm0, xmm0
ucomiss xmm2, xmm0
movss xmm0, dword [0x100b949c]
lahf
test ah, 0x44
jnp 0x10079a3c
divss xmm0, xmm2
movaps xmm2, xmm0
movss xmm0, dword [0x100b949c]
movss dword [ebp - 0x30], xmm2
xorps xmm2, xmm2
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jnp 0x10079a54
divss xmm0, xmm1
movaps xmm1, xmm0
movss dword [ebp - 0x20], xmm1
ucomiss xmm6, xmm2
lahf
test ah, 0x44
jnp 0x10079a71
movss xmm0, dword [0x100b949c]
divss xmm0, xmm6
movaps xmm6, xmm0
movss dword [ebp - 0x40], xmm6
movss xmm0, dword [0x100dbf58]
addss xmm4, xmm7
addss xmm3, dword [ebp - 0x1c]
addss xmm5, dword [ebp - 0x18]
mulss xmm4, xmm0
mulss xmm3, xmm0
mulss xmm5, xmm0
movss dword [esi + 0x10], xmm3
movss dword [esi + 0x14], xmm5
movss dword [esi + 0x18], xmm4
mov dword [esi + 0x1c], 0
mov byte [ebp - 0x74], 1
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov edx, dword [ebx + 0x14]
mov dword [ebp - 4], 0
test edx, edx
js 0x10079b5c
jle 0x10079b5c
mov eax, edx
shl eax, 4
push 0x10
push eax
call fcn.10077ec0
mov edx, dword [ebp - 0x80]
add esp, 8
mov edi, eax
test edx, edx
jle 0x10079b0a
xor ecx, ecx
mov eax, dword [ebp - 0x78]
lea ecx, [ecx + 0x10]
movups xmm0, xmmword [eax + ecx - 0x10]
movups xmmword [edi + ecx - 0x10], xmm0
sub edx, 1
jne 0x10079af5
lea eax, [esi + 0x70]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x10079b26
cmp byte [ebp - 0x74], 0
je 0x10079b26
push eax
call fcn.10077ed0
add esp, 4
mov edx, dword [ebx + 0x14]
xor eax, eax
movups xmm0, xmmword [ebp - 0x70]
mov byte [ebp - 0x74], 1
mov ecx, edx
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x7c], edx
nop dword [eax + eax]
lea eax, [eax + 0x10]
movups xmmword [edi + eax - 0x10], xmm0
sub ecx, 1
je 0x10079b52
mov edi, dword [ebp - 0x78]
jmp 0x10079b40
movss xmm6, dword [ebp - 0x40]
movss xmm1, dword [ebp - 0x20]
cmp byte [ebx + 0xc], 0
mov eax, edx
mov dword [ebp - 0x80], eax
je 0x10079c37
mov dword [ebp - 0x40], 0
test edx, edx
jle 0x10079cff
mov eax, dword [ebx + 8]
xor edi, edi
movss xmm5, dword [ebp - 0x30]
add eax, 8
mov dword [ebp - 0x54], 0
nop
movsd xmm0, qword [eax + 8]
movaps xmm2, xmm6
movsd xmm3, qword [eax]
movsd xmm4, qword [eax - 8]
add eax, dword [ebx + 0x10]
cvtpd2ps xmm0, xmm0
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x6c]
cvtpd2ps xmm3, xmm3
subss xmm0, dword [esi + 0x18]
subss xmm3, dword [esi + 0x14]
cvtpd2ps xmm4, xmm4
mulss xmm2, xmm0
movaps xmm0, xmm5
subss xmm4, dword [esi + 0x10]
mulss xmm1, xmm3
movss dword [ebp - 0x58], xmm2
mulss xmm0, xmm4
movss dword [ebp - 0x5c], xmm1
movss xmm1, dword [ebp - 0x20]
movss dword [ebp - 0x60], xmm0
cvttss2si ecx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x78]
mov dword [eax + edi], ecx
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
cvttss2si ecx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x78]
mov dword [eax + edi + 4], ecx
mov eax, dword [esi + 0x68]
cvttss2si ecx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x78]
mov dword [eax + edi + 8], ecx
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x40]
mov dword [eax + edi + 0xc], ecx
inc ecx
mov eax, dword [ebp - 0x30]
add edi, 0x10
mov dword [ebp - 0x40], ecx
cmp ecx, edx
jl 0x10079b90
jmp 0x10079cfc
mov dword [ebp - 0x1c], 0
test edx, edx
jle 0x10079cff
mov eax, dword [ebx + 8]
xor edi, edi
movss xmm4, dword [ebp - 0x20]
add eax, 8
movss xmm5, dword [ebp - 0x30]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x40], eax
movss xmm0, dword [eax - 4]
movaps xmm3, xmm6
mov edx, dword [ebp - 0x40]
movss xmm2, dword [eax - 8]
subss xmm0, dword [esi + 0x14]
subss xmm2, dword [esi + 0x10]
movss xmm1, dword [edx]
subss xmm1, dword [esi + 0x18]
mov eax, dword [esi + 0x6c]
add edx, dword [ebx + 0x10]
mov dword [ebp - 0x40], edx
mov edx, dword [ebx + 0x14]
mulss xmm3, xmm1
movaps xmm1, xmm4
mulss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, xmm2
movss dword [ebp - 0x5c], xmm1
movss dword [ebp - 0x58], xmm3
movss dword [ebp - 0x60], xmm0
cvttss2si ecx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x78]
mov dword [eax + edi], ecx
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
cvttss2si ecx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x78]
mov dword [eax + edi + 4], ecx
mov eax, dword [esi + 0x68]
cvttss2si ecx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x78]
mov dword [eax + edi + 8], ecx
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x1c]
mov dword [eax + edi + 0xc], ecx
inc ecx
mov eax, dword [ebp - 0x40]
add edi, 0x10
mov dword [ebp - 0x1c], ecx
cmp ecx, edx
jl 0x10079c62
mov eax, dword [ebp - 0x80]
cmp eax, 1
jle 0x10079d1a
dec eax
lea ecx, [ebp - 0x84]
push eax
push 0
lea eax, [ebp - 0x11]
push eax
call fcn.100785b0
mov edx, dword [ebx + 0x14]
mov eax, dword [esi + 0x20]
lea edi, [esi + 0x20]
mov dword [edi + 4], eax
lea eax, [esi + 0x54]
mov dword [edi + 8], 0
mov dword [esi + 0x2c], edx
mov ecx, dword [eax]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x30], ecx
cmp edx, ecx
jl 0x10079e08
mov dword [ebp - 0x40], eax
jle 0x10079ddd
mov dword [ebp - 0x40], eax
cmp dword [esi + 0x58], edx
jge 0x10079ddd
test edx, edx
je 0x10079d76
lea eax, [edx*4]
push 0x10
push eax
call fcn.10077ec0
mov edx, dword [ebx + 0x14]
add esp, 8
mov dword [ebp - 0x40], eax
lea eax, [esi + 0x54]
jmp 0x10079d7d
mov dword [ebp - 0x40], 0
mov eax, dword [eax]
lea edi, [esi + 0x5c]
xor ecx, ecx
mov dword [ebp - 0x34], eax
test eax, eax
jle 0x10079da3
mov edx, dword [ebp - 0x40]
mov esi, eax
mov eax, dword [edi]
mov eax, dword [eax + ecx*4]
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, esi
jl 0x10079d90
mov esi, dword [ebp - 0x44]
mov edx, dword [ebx + 0x14]
mov ecx, dword [edi]
lea eax, [esi + 0x60]
test ecx, ecx
je 0x10079dc6
cmp byte [eax], 0
je 0x10079dbd
push ecx
call fcn.10077ed0
add esp, 4
lea eax, [esi + 0x60]
mov edx, dword [ebx + 0x14]
mov dword [edi], 0
lea ecx, [esi + 0x54]
mov byte [eax], 1
mov eax, dword [ebp - 0x40]
mov dword [edi], eax
lea edi, [esi + 0x20]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x30]
mov dword [esi + 0x58], edx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], edi
cmp ecx, edx
jge 0x10079e08
nop word [eax + eax]
mov eax, dword [esi + 0x5c]
mov dword [eax + ecx*4], 0
inc ecx
cmp ecx, edx
jl 0x10079df0
lea edi, [esi + 0x20]
lea eax, [esi + 0x54]
mov dword [ebp - 0x40], edi
mov dword [eax], edx
mov dword [ebp - 0x34], 0
test edx, edx
jle 0x10079f09
mov dword [ebp - 0x30], 0
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x10079eac
mov esi, dword [edi + 4]
test esi, esi
je 0x10079e3a
mov eax, dword [esi + 8]
mov dword [edi + 4], eax
jmp 0x10079e69
push 0x10
push 0xc
call fcn.10077ec0
mov ecx, dword [edi + 0xc]
mov esi, eax
push 0x10
mov dword [esi + 4], ecx
imul ecx, ecx, 0x70
mov dword [esi + 8], 0
push ecx
call fcn.10077ec0
mov dword [esi], eax
add esp, 0x10
mov eax, dword [edi]
mov dword [esi + 8], eax
mov dword [edi], esi
mov edi, dword [esi + 4]
xor edx, edx
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
test edi, edi
jle 0x10079ea4
nop word [eax + eax]
inc edx
mov dword [ebp - 0x1c], 0
cmp edx, edi
lea ecx, [eax + 0x70]
mov edi, dword [ebp - 0x20]
mov eax, ecx
cmovge eax, dword [ebp - 0x1c]
mov dword [edi], eax
mov eax, ecx
mov edi, dword [esi + 4]
mov dword [ebp - 0x20], eax
cmp edx, edi
jl 0x10079e80
mov ecx, dword [esi]
mov edi, dword [ebp - 0x40]
mov esi, dword [ebp - 0x44]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x30]
mov dword [edi + 8], eax
add dword [ebp - 0x30], 0x10
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x68], 0xffffffff
mov dword [ecx + 8], 0
mov eax, dword [ebp - 0x78]
movups xmm0, xmmword [eax + edx]
mov edx, dword [ebx + 0x14]
movups xmmword [ecx + 0x58], xmm0
mov eax, dword [esi + 0x5c]
mov esi, dword [ebp - 0x34]
mov dword [eax + esi*4], ecx
mov eax, esi
mov esi, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, edx
jl 0x10079e20
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x10079f22
cmp byte [ebp - 0x74], 0
je 0x10079f22
push eax
call fcn.10077ed0
mov edx, dword [ebx + 0x14]
add esp, 4
mov eax, dword [esi + 0x30]
xorps xmm0, xmm0
mov dword [esi + 0x34], eax
mov ecx, esi
lea eax, [edx + edx*2]
mov byte [ebp - 0x74], 1
add eax, eax
mov dword [ebp - 0x78], 0
mov dword [esi + 0x3c], eax
lea eax, [ebp - 0x70]
push eax
push edx
push 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x64], 0xfffffffd
movups xmmword [ebp - 0x70], xmm0
call fcn.10079fc0
mov eax, dword [ebp - 0x70]
mov dword [esi + 0x7c], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 4], 1
test eax, eax
je 0x10079f9d
cmp byte [ebp - 0x74], 0
je 0x10079f9d
push eax
call fcn.10077ed0
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10