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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x88
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push ebx
call fcn.1000ff64
pop ecx
xor edi, edi
xorps xmm0, xmm0
mov ecx, ebx
mov dword [ebx], edi
mov dword [ebx + 0x10], edi
mov dword [ebx + 0xc], edi
movss dword [ebx + 0x1c], xmm0
movss dword [ebx + 0x20], xmm0
call fcn.1000fbec
mov esi, edi
mov ecx, edi
mov dword [ebp - 4], esi
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], ecx
cmp dword [ebx + 0x3c], edi
jle 0x100102ba
mov eax, dword [ebx + 0x44]
mov edx, dword [eax + edi + 0x30]
test edx, edx
jne 0x1001027c
mov edx, 0x10047b0c
mov dword [eax + edi + 0x30], edx
xor eax, eax
cmp word [edx], ax
je 0x100102ac
xor ebx, ebx
movzx eax, word [edx + 2]
test ax, ax
je 0x100102a3
mov ecx, eax
inc esi
movzx eax, word [edx]
add edx, 4
sub ecx, eax
add esi, ecx
inc dword [ebp - 8]
cmp word [edx], bx
jne 0x10010285
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 4], esi
inc ecx
add edi, 0x5c
mov dword [ebp - 0x10], ecx
cmp ecx, dword [ebx + 0x3c]
jl 0x10010268
xor edi, edi
mov eax, dword [ebx + 0x14]
test eax, eax
jg 0x100102f0
cmp esi, 0x3e8
mov ecx, 0x400
mov eax, 0x200
cmovg eax, ecx
cmp esi, 0x7d0
mov ecx, 0x800
cmovg eax, ecx
cmp esi, 0xfa0
mov ecx, 0x1000
cmovg eax, ecx
push edi
push dword [ebx + 0x18]
mov dword [ebx + 0xc], eax
push edi
push 0x8000
push eax
lea eax, [ebp - 0x88]
mov dword [ebx + 0x10], edi
push edi
push eax
call fcn.100166bd
push dword [ebp - 0x84]
xor eax, eax
inc eax
push ebx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
call fcn.1000fe74
imul eax, dword [ebx + 0x3c], 0x84
push eax
call fcn.1000aa7a
add esp, 0x28
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], edi
cmp dword [ebx + 0x3c], edi
jle 0x10010384
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x44]
push dword [eax + edi + 0xc]
mov esi, dword [eax + edi]
push esi
call fcn.1001261a
push eax
push esi
mov esi, dword [ebp - 0x28]
push esi
call fcn.100126a8
add esp, 0x14
test eax, eax
je 0x10010793
mov eax, dword [ebp - 0x10]
add esi, 0x84
inc eax
mov dword [ebp - 0x28], esi
add edi, 0x5c
mov dword [ebp - 0x10], eax
cmp eax, dword [ebx + 0x3c]
jl 0x10010341
mov esi, dword [ebp - 4]
xor edi, edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x30], edi
imul edi, esi, 0x1c
push edi
call fcn.1000aa7a
shl esi, 4
push esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], esi
call fcn.1000aa7a
imul esi, dword [ebp - 8], 0x18
mov dword [ebp - 0x1c], eax
push esi
call fcn.1000aa7a
push edi
xor edi, edi
mov dword [ebp - 0x10], eax
push edi
push dword [ebp - 0x28]
call fcn.100206c0
push dword [ebp - 4]
push edi
push dword [ebp - 0x1c]
call fcn.100206c0
push esi
xor esi, esi
push esi
push dword [ebp - 0x10]
call fcn.100206c0
add esp, 0x30
mov dword [ebp - 0x14], esi
cmp dword [ebx + 0x3c], esi
jle 0x1001055e
mov edi, dword [ebp - 0x2c]
mov eax, esi
mov dword [ebp - 0xc], eax
mov ecx, dword [ebx + 0x44]
add ecx, eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x34], esi
mov edx, dword [ecx + 0x30]
movzx eax, word [edx]
test ax, ax
je 0x10010431
mov ebx, esi
movzx ecx, word [edx + 2]
test cx, cx
je 0x10010428
add edx, 4
movzx eax, ax
sub ecx, eax
inc ebx
add ebx, ecx
inc esi
movzx eax, word [edx]
test ax, ax
jne 0x1001040b
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x34], esi
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
imul eax, edx, 0x18
add edx, esi
mov dword [edi + 0x80], esi
mov dword [ebp - 0x30], edx
add eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov dword [edi + 0x7c], eax
xor eax, eax
mov dword [ebp - 4], eax
test esi, esi
jle 0x100104bb
mov ebx, dword [ebp - 0x34]
mov dword [ebp - 8], eax
mov edx, dword [ecx + 0x30]
mov esi, dword [edi + 0x7c]
add esi, eax
add dword [ebp - 8], 0x18
mov eax, dword [ecx + 0x10]
mov dword [esi], eax
mov eax, dword [ebp - 4]
movzx eax, word [edx + eax*4]
mov dword [esi + 4], eax
mov eax, dword [ebp - 4]
movzx ecx, word [edx + eax*4 + 2]
movzx eax, word [edx + eax*4]
mov edx, dword [ebp - 0x38]
sub ecx, eax
imul eax, edx, 0x1c
inc ecx
add edx, ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x38], edx
add eax, dword [ebp - 0x28]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp eax, ebx
mov eax, dword [ebp - 8]
jl 0x1001045d
mov eax, dword [edi + 0x7c]
mov esi, dword [edi + 0x80]
mov ebx, dword [ebp + 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
shl edx, 4
add edx, dword [ebp - 0x1c]
mov dword [edi + 0x78], edx
push dword [eax + 0x18]
push dword [eax + 0x14]
lea eax, [ebp - 0x88]
push eax
call fcn.10016cee
push edx
push esi
push dword [ebp - 8]
lea eax, [ebp - 0x88]
push edi
push eax
call fcn.10016774
mov esi, eax
push esi
push dword [edi + 0x78]
push dword [ebp - 0x84]
call fcn.10015f7d
add esp, 0x2c
test esi, esi
jle 0x1001053c
xor ecx, ecx
mov edx, ecx
mov eax, dword [edi + 0x78]
cmp dword [edx + eax + 0xc], ecx
je 0x10010534
movzx ecx, word [edx + eax + 0xa]
movzx eax, word [edx + eax + 6]
add ecx, eax
cmp dword [ebx + 0x10], ecx
cmovge ecx, dword [ebx + 0x10]
mov dword [ebx + 0x10], ecx
xor ecx, ecx
add edx, 0x10
sub esi, 1
jne 0x10010513
mov ecx, dword [ebp - 0x14]
add edi, 0x84
mov eax, dword [ebp - 0xc]
inc ecx
add eax, 0x5c
mov dword [ebp - 0x14], ecx
push 0
mov dword [ebp - 0xc], eax
pop esi
cmp ecx, dword [ebx + 0x3c]
jl 0x100103f0
mov ecx, dword [ebx + 0x10]
dec ecx
mov eax, ecx
sar eax, 1
or ecx, eax
mov eax, ecx
sar eax, 2
or ecx, eax
mov eax, ecx
sar eax, 4
or ecx, eax
mov eax, ecx
sar eax, 8
or ecx, eax
mov eax, ecx
sar eax, 0x10
or ecx, eax
mov eax, dword [ebx + 0xc]
inc ecx
imul eax, ecx
mov dword [ebx + 0x10], ecx
push eax
call fcn.1000aa7a
mov ecx, eax
mov eax, dword [ebx + 0xc]
imul eax, dword [ebx + 0x10]
mov dword [ebx + 4], ecx
push eax
push esi
push ecx
call fcn.100206c0
mov eax, dword [ebx + 4]
add esp, 0x10
mov dword [ebp - 0x68], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0xc], esi
cmp dword [ebx + 0x3c], esi
jle 0x10010618
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x14]
add esi, 0x78
mov eax, dword [ebx + 0x44]
push dword [eax + edi + 0x18]
push dword [eax + edi + 0x14]
lea eax, [ebp - 0x88]
push eax
call fcn.10016cee
push dword [esi]
lea eax, [esi - 0x78]
push dword [esi + 8]
push dword [esi + 4]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.10016911
xor eax, eax
lea edi, [edi + 0x5c]
mov dword [esi], eax
add esp, 0x20
mov eax, dword [ebp - 0xc]
lea esi, [esi + 0x84]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebx + 0x3c]
jl 0x100105cb
xor esi, esi
push dword [ebp - 0x64]
mov edi, dword [ebp - 0x2c]
call fcn.1000aa96
push dword [ebp - 0x84]
call fcn.1000aa96
push dword [ebp - 0x1c]
call fcn.1000aa96
add esp, 0xc
mov dword [ebp - 0x20], esi
cmp dword [ebx + 0x3c], esi
jle 0x100109b2
mov ecx, esi
lea esi, [edi + 4]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x18], esi
mov eax, dword [ebx + 0x44]
add eax, ecx
mov dword [ebp - 0x14], eax
mov ecx, dword [eax + 0x58]
movss xmm0, dword [eax + 0x10]
lea eax, [esi - 4]
push ecx
movss dword [esp], xmm0
push eax
mov dword [ebp - 4], ecx
call fcn.10016da7
mov edi, dword [esi + 0x18]
mov esi, dword [esi]
fstp dword [ebp - 0xc]
lea eax, [esi + 4]
add eax, edi
push eax
call fcn.10015e9d
movsx ebx, ax
lea eax, [edi + 6]
add eax, esi
push eax
call fcn.10015e9d
cwde
add esp, 8
mov edi, dword [ebp - 0x14]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [ebp - 0xc]
movss dword [esp + 4], xmm0
movd xmm0, ebx
mov ebx, dword [ebp + 8]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [ebp - 0xc]
movss dword [esp], xmm0
push edi
push dword [ebp - 4]
push ebx
call fcn.100101d5
mov edx, dword [ebp - 4]
add esp, 0x14
movss xmm0, dword [edi + 0x28]
mov esi, dword [ebp - 0x18]
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [edx + 0x48]
addss xmm0, dword [0x10043510]
cvttss2si eax, xmm0
movd xmm4, eax
xor eax, eax
cvtdq2ps xmm4, xmm4
mov dword [ebp - 0x30], eax
addss xmm4, dword [edi + 0x2c]
mov dword [edx + 0x34], eax
movss dword [ebp - 0x4c], xmm4
cmp dword [esi + 0x7c], eax
jle 0x10010988
mov ecx, eax
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0x78]
and dword [ebp - 0x1c], 0
add eax, ecx
mov dword [ebp - 0x34], eax
cmp dword [eax + 0xc], 0
jle 0x10010972
xor ecx, ecx
mov esi, ecx
mov dword [ebp - 0x38], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x14], ecx
movzx eax, word [ecx + esi]
mov ebx, eax
mov dword [ebp - 0x3c], ebx
mov ebx, dword [ebp + 8]
test ax, ax
jne 0x10010764
xor eax, eax
cmp word [ecx + esi + 4], ax
jne 0x10010764
cmp word [ecx + esi + 2], ax
jne 0x10010764
cmp word [ecx + esi + 6], ax
je 0x10010953
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x1c]
cmp byte [edi + 0x34], 0
movzx eax, ax
je 0x1001079a
mov ecx, eax
mov dword [ebp - 0xc], ecx
mov ecx, edx
push eax
call fcn.1000fd07
mov edx, dword [ebp - 4]
test eax, eax
jne 0x10010953
mov ecx, dword [ebp - 0x14]
jmp 0x1001079d
xor al, al
jmp 0x100109d5
mov dword [ebp - 0xc], eax
movd xmm0, dword [ebx + 0xc]
movss xmm2, dword [0x100433a4]
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x3c]
movzx eax, ax
movaps xmm1, xmm2
divss xmm1, xmm0
movd xmm0, dword [ebx + 0x10]
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
movss xmm0, dword [ecx + esi + 8]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ecx + esi + 0xc]
movss dword [ebp - 0x48], xmm0
movss xmm0, dword [ecx + esi + 0x14]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [ecx + esi + 0x18]
movss dword [ebp - 0x54], xmm0
movd xmm0, eax
movzx eax, word [ecx + esi + 2]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x3c], xmm0
movd xmm0, eax
movzx eax, word [ecx + esi + 4]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
movss dword [ebp - 0x58], xmm0
movd xmm0, eax
movzx eax, word [ecx + esi + 6]
lea esi, [edx + 0x10]
cvtdq2ps xmm0, xmm0
mov ecx, esi
mulss xmm0, xmm1
movss dword [ebp - 0x5c], xmm0
movd xmm0, eax
mov eax, dword [esi]
cvtdq2ps xmm0, xmm0
inc eax
push eax
mulss xmm0, xmm2
movss dword [ebp - 0x60], xmm0
call fcn.1000d98d
imul ecx, dword [esi], 0x28
xorps xmm2, xmm2
mov edx, dword [esi + 8]
movss xmm0, dword [ebp - 0x40]
addss xmm0, xmm2
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0x38]
movss xmm3, dword [ebp - 0x3c]
movss xmm4, dword [ebp - 0x58]
movss xmm1, dword [ebp - 0x5c]
addss xmm0, dword [ebp - 0x44]
mov word [edx + ecx - 0x28], ax
mov eax, dword [ebp - 0x14]
movss dword [edx + ecx - 0x10], xmm3
movss dword [edx + ecx - 0xc], xmm4
movss dword [edx + ecx - 0x20], xmm0
movss xmm0, dword [ebp - 0x48]
addss xmm0, xmm2
movss dword [edx + ecx - 8], xmm1
addss xmm0, dword [ebp - 0x4c]
movss dword [edx + ecx - 0x1c], xmm0
movss xmm0, dword [ebp - 0x50]
addss xmm0, xmm2
addss xmm0, dword [ebp - 0x44]
movss dword [edx + ecx - 0x18], xmm0
movss xmm0, dword [ebp - 0x54]
addss xmm0, xmm2
movss xmm2, dword [ebp - 0x60]
movss dword [edx + ecx - 4], xmm2
addss xmm0, dword [ebp - 0x4c]
movss dword [edx + ecx - 0x14], xmm0
movss xmm0, dword [eax + esi + 0x10]
addss xmm0, dword [edi + 0x20]
movss dword [edx + ecx - 0x24], xmm0
cmp byte [edi + 0x1c], 0
je 0x10010912
addss xmm0, dword [0x10043510]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx + ecx - 0x24], xmm0
movd xmm0, dword [ebx + 0xc]
subss xmm1, xmm3
cvtdq2ps xmm0, xmm0
mov edx, dword [ebp - 4]
subss xmm2, xmm4
mulss xmm1, xmm0
movd xmm0, dword [ebx + 0x10]
cvtdq2ps xmm0, xmm0
addss xmm1, dword [0x10047b20]
mulss xmm2, xmm0
addss xmm2, dword [0x10047b20]
cvttss2si ecx, xmm1
cvttss2si eax, xmm2
imul ecx, eax
add dword [edx + 0x50], ecx
mov ecx, dword [ebp - 0x1c]
add esi, 0x1c
mov eax, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x38], esi
cmp ecx, dword [eax + 0xc]
jl 0x10010732
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
add ecx, 0x18
inc eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x30], eax
cmp eax, dword [esi + 0x7c]
jl 0x10010715
mov ecx, dword [edi + 0x58]
call fcn.1000f343
mov eax, dword [ebp - 0x20]
add esi, 0x84
mov ecx, dword [ebp - 8]
inc eax
add ecx, 0x5c
mov dword [ebp - 0x20], eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0x18], esi
cmp eax, dword [ebx + 0x3c]
jl 0x10010650
push dword [ebp - 0x28]
call fcn.1000aa96
push dword [ebp - 0x10]
call fcn.1000aa96
push dword [ebp - 0x2c]
call fcn.1000aa96
push ebx
call fcn.1000ff83
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebx
leave
ret