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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xb4
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push ebx
mov dword [esp + 0x58], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x74], edx
mov dword [esp + 0x54], eax
push esi
push edi
test eax, eax
jle 0x102afa92
movss xmm3, dword [0x10388100]
xor ecx, ecx
mov dword [esp + 0x58], ecx
nop word [eax + eax]
mov eax, dword [edx]
sub esp, 8
add eax, ecx
mov dword [esp + 0x24], eax
movss xmm0, dword [eax + 0x94]
movss xmm1, dword [eax + 0x90]
subss xmm0, xmm3
movss xmm2, dword [eax + 0x9c]
subss xmm1, xmm3
addss xmm2, xmm3
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [eax + 0x98]
addss xmm0, xmm3
movss dword [esp + 0x48], xmm2
cvttss2si edi, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x50], xmm0
fld qword [esp + 0x50]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
fstp qword [esp + 0x50]
movsd xmm0, qword [esp + 0x50]
cvtpd2ps xmm0, xmm0
cvttss2si esi, dword [esp + 0x4c]
minss xmm0, dword [0x1038683c]
maxss xmm0, dword [0x10386844]
cvttss2si ebx, xmm0
movss xmm0, dword [esp + 0x48]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x50], xmm0
fld qword [esp + 0x50]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
fstp qword [esp + 0x50]
movsd xmm0, qword [esp + 0x50]
xor edx, edx
cvtpd2ps xmm0, xmm0
add esp, 8
test edi, edi
cmovns edx, edi
mov edi, dword [ebp + 0x10]
cmp edi, ebx
mov dword [esp + 0x64], edx
cmovl ebx, edi
xor ecx, ecx
minss xmm0, dword [0x1038683c]
test esi, esi
mov dword [esp + 0x70], ebx
cmovns ecx, esi
mov dword [esp + 0x2c], ecx
maxss xmm0, dword [0x10386844]
cvttss2si eax, xmm0
cmp dword [ebp + 0x14], eax
cmovl eax, dword [ebp + 0x14]
mov dword [esp + 0x74], eax
cmp ecx, eax
jge 0x102afa6d
mov eax, ecx
movd xmm0, edx
imul eax, edi
movd xmm1, ebx
cvtdq2ps xmm0, xmm0
add eax, edx
mov edx, dword [esp + 0x60]
cvtdq2ps xmm1, xmm1
lea esi, [edx + eax*8]
mov dword [esp + 0x44], esi
movss dword [esp + 0x78], xmm0
movss dword [esp + 0x48], xmm1
nop dword [eax]
mov edx, dword [esp + 0x1c]
xorps xmm5, xmm5
movss xmm4, dword [0x10386830]
movd xmm3, ecx
cvtdq2ps xmm3, xmm3
mov dword [esp + 0x54], 2
movss dword [esp + 0x88], xmm0
movss xmm0, dword [edx + 0x94]
addss xmm3, xmm4
movss dword [esp + 0x80], xmm1
movss xmm1, dword [edx + 0x9c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
movss dword [esp + 0x40], xmm3
comisd xmm1, xmm0
movss dword [esp + 0x8c], xmm3
movss dword [esp + 0x84], xmm3
cvtps2pd xmm2, xmm3
jbe 0x102af6bf
subsd xmm0, xmm5
comisd xmm2, xmm0
jb 0x102af6da
subsd xmm1, xmm5
comisd xmm1, xmm2
jmp 0x102af6d1
subsd xmm1, xmm5
comisd xmm2, xmm1
jb 0x102af6da
subsd xmm0, xmm5
comisd xmm0, xmm2
jbe 0x102af6da
mov eax, 1
jmp 0x102af6dc
xor eax, eax
test al, al
je 0x102af717
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x8c]
push eax
push edx
lea eax, [esp + 0xa4]
push eax
call fcn.102b0d20
movss xmm3, dword [esp + 0x50]
add esp, 0x10
movss xmm4, dword [0x10386830]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x64]
cmp edi, ebx
jge 0x102afa42
mov dword [esp + 0x3c], esi
nop word [eax + eax]
movss xmm1, dword [0x103b4d68]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x94], xmm3
addss xmm0, xmm4
movss dword [esp + 0x90], xmm0
movss xmm0, dword [esi]
comiss xmm1, xmm0
movss dword [esp + 0x6c], xmm0
jbe 0x102af76b
mov ebx, 1
jmp 0x102af79b
movss xmm1, dword [0x103b4d6c]
comiss xmm1, xmm0
jbe 0x102af77f
mov ebx, 2
jmp 0x102af79b
movss xmm1, dword [0x103b4d70]
xor ebx, ebx
comiss xmm1, xmm0
setbe bl
add ebx, 3
cmp ebx, 4
jae 0x102af99f
movss xmm0, dword [edx + 0x94]
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
mov eax, dword [esp + 0x24]
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
cvtpd2ps xmm0, xmm0
minss xmm0, dword [0x1038683c]
maxss xmm0, dword [0x10386844]
cvttss2si esi, xmm0
movss xmm0, dword [eax + 0x98]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
cvtpd2ps xmm0, xmm0
minss xmm0, dword [0x1038683c]
maxss xmm0, dword [0x10386844]
cvttss2si eax, xmm0
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x24]
movss xmm0, dword [eax + 0x9c]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
cvtpd2ps xmm0, xmm0
minss xmm0, dword [0x1038683c]
maxss xmm0, dword [0x10386844]
cvttss2si eax, xmm0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
movss xmm0, dword [eax + 0x90]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x38], xmm0
fld qword [esp + 0x38]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [esp + 0x38]
movsd xmm0, qword [esp + 0x38]
add esp, 8
cvtpd2ps xmm0, xmm0
minss xmm0, dword [0x1038683c]
maxss xmm0, dword [0x10386844]
cvttss2si eax, xmm0
cdq
mov ecx, eax
sub ecx, ebx
mov dword [esp + 0x30], ecx
sbb edx, 0
cmp edx, 0xffffffff
jg 0x102af8d6
jl 0x102af8cc
cmp ecx, 0x80000001
jae 0x102af8d6
mov dword [esp + 0x30], 0x80000001
jmp 0x102af8ec
test edx, edx
jl 0x102af8ec
jg 0x102af8e4
cmp ecx, 0x7fffffff
jbe 0x102af8ec
mov dword [esp + 0x30], 0x7fffffff
mov eax, esi
cdq
mov esi, eax
sub esi, ebx
sbb edx, 0
cmp edx, 0xffffffff
jg 0x102af90c
jl 0x102af905
cmp esi, 0x80000001
jae 0x102af90c
mov esi, 0x80000001
jmp 0x102af91f
test edx, edx
jl 0x102af91f
jg 0x102af91a
cmp esi, 0x7fffffff
jbe 0x102af91f
mov esi, 0x7fffffff
mov eax, dword [esp + 0x68]
cdq
mov ecx, eax
add ecx, ebx
adc edx, 0
cmp edx, 0xffffffff
jg 0x102af941
jl 0x102af93a
cmp ecx, 0x80000001
jae 0x102af941
mov ecx, 0x80000001
jmp 0x102af954
test edx, edx
jl 0x102af954
jg 0x102af94f
cmp ecx, 0x7fffffff
jbe 0x102af954
mov ecx, 0x7fffffff
mov eax, dword [esp + 0x20]
cdq
add eax, ebx
adc edx, 0
cmp edx, 0xffffffff
jg 0x102af973
jl 0x102af96c
cmp eax, 0x80000001
jae 0x102af973
mov eax, 0x80000001
jmp 0x102af985
test edx, edx
jl 0x102af985
jg 0x102af980
cmp eax, 0x7fffffff
jbe 0x102af985
mov eax, 0x7fffffff
cmp edi, dword [esp + 0x30]
jl 0x102afa10
cmp edi, ecx
mov ecx, dword [esp + 0x2c]
jge 0x102afa14
cmp ecx, esi
jl 0x102afa14
cmp ecx, eax
jge 0x102afa14
lea eax, [esp + 0x30]
mov dword [esp + 0x30], 2
push eax
lea eax, [esp + 0x9c]
xor esi, esi
push eax
push dword [esp + 0x24]
lea eax, [esp + 0x9c]
push eax
call fcn.102b0220
mov ecx, dword [esp + 0x64]
add esp, 0x10
mov eax, dword [esp + 0x30]
fstp dword [esp + 0x20]
cmp ecx, 0xffffffff
jne 0x102af9e5
cmp eax, 1
jne 0x102af9f0
or esi, 0xffffffff
jmp 0x102af9f0
cmp ecx, 1
jne 0x102af9f0
cmp eax, 0xffffffff
cmove esi, ecx
movss xmm0, dword [esp + 0x20]
movss xmm1, dword [esp + 0x6c]
comiss xmm1, xmm0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x3c]
jbe 0x102afa0d
movss dword [eax], xmm0
add dword [eax + 4], esi
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
inc edi
mov ebx, dword [esp + 0x70]
add esi, 8
movss xmm3, dword [esp + 0x40]
movss xmm4, dword [0x10386830]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x3c], esi
cmp edi, ebx
jl 0x102af730
mov esi, dword [esp + 0x44]
mov edx, dword [ebp + 0x10]
inc ecx
movss xmm0, dword [esp + 0x78]
movss xmm1, dword [esp + 0x48]
mov dword [esp + 0x2c], ecx
lea eax, [edx*8]
add esi, eax
mov dword [esp + 0x44], esi
cmp ecx, dword [esp + 0x74]
jl 0x102af640
mov ecx, dword [esp + 0x58]
movss xmm3, dword [0x10388100]
add ecx, 0xa0
sub dword [esp + 0x5c], 1
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x58], ecx
jne 0x102af510
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret