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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14c
mov eax, dword [0x100d4710]
xor eax, esp
mov dword [esp + 0x148], eax
movss xmm0, dword [0x100d1010]
mulss xmm0, dword [0x100555dc]
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
divss xmm0, dword [0x100555d4]
push esi
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
push edi
mov dword [esp + 0x74], eax
xor edi, edi
call fcn.10052610
mov edx, dword [0x100d5464]
mov dword [esp + 0x14], eax
mov ecx, dword [edx]
mov ecx, dword [ecx + 0x754]
mov dword [esp + 0xc], ecx
mov ecx, edx
call dword [esp + 0xc]
mov ecx, dword [0x100d5464]
fstp dword [esp + 0x28]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6dc]
mov dword [esp + 0xc], eax
call dword [esp + 0xc]
mov eax, dword [0x100d5474]
mov ecx, dword [ebx + 0x44]
movq xmm0, qword [0x100d546c]
add ecx, 4
mov dword [esp + 0xa4], eax
mov eax, dword [0x100d5440]
movq qword [esp + 0x9c], xmm0
fstp dword [esp + 0x24]
mov esi, dword [eax + 0x1a8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
mov ecx, dword [esi]
push eax
mov edx, dword [ecx + 0x78]
mov ecx, esi
call edx
mov edx, eax
test edx, edx
jne 0x1000bde3
xor bl, bl
jmp 0x1000c401
mov eax, dword [0x100d5448]
mov ecx, dword [eax + 0xc4]
mov eax, dword [ebx + 0x44]
mov eax, dword [ecx + eax]
cmp eax, dword [edx + 0xac]
jle 0x1000be00
xor esi, esi
jmp 0x1000be0e
lea ecx, [eax + eax*2]
mov eax, dword [edx + 0xb0]
lea esi, [eax + ecx*4]
add esi, edx
lea ecx, [esp + 0x118]
call fcn.10051cc0
lea ecx, [esp + 0x10c]
call fcn.10051cc0
mov ecx, dword [esp + 0x74]
mov eax, dword [ecx + 0x10]
test eax, eax
js 0x1000c3e7
cmp eax, dword [esi + 4]
jge 0x1000c3e7
mov ecx, eax
shl ecx, 4
add ecx, eax
mov eax, dword [esi + 8]
lea ebx, [eax + ecx*4]
add ebx, esi
je 0x1000c3e7
movss xmm0, dword [ebx + 0x30]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x1000c3e7
mov eax, dword [ebx]
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0x10]
shl ecx, 4
add ecx, dword [eax]
movups xmm0, xmmword [ecx]
movups xmmword [esp + 0xd0], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [esp + 0xe0], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [esp + 0xf0], xmm0
ucomiss xmm1, dword [ebx + 0x24]
lahf
test ah, 0x44
jp 0x1000beb6
ucomiss xmm1, dword [ebx + 0x28]
lahf
test ah, 0x44
jp 0x1000beb6
ucomiss xmm1, dword [ebx + 0x2c]
lahf
test ah, 0x44
jnp 0x1000bf3a
movq xmm0, qword [ebx + 0x24]
lea eax, [esp + 0x124]
push eax
mov eax, dword [ebx + 0x2c]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.1002db50
movups xmm0, xmmword [esp + 0x134]
add esp, 0x10
lea eax, [esp + 0xd0]
push eax
sub esp, 0x30
mov eax, esp
sub esp, 0x30
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x198]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [esp + 0x1a8]
movups xmmword [eax + 0x20], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0x134]
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x144]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [esp + 0x154]
movups xmmword [eax + 0x20], xmm0
call fcn.1002dcc0
add esp, 0x64
lea ecx, [esp + 0xc0]
call fcn.10051cc0
lea ecx, [esp + 0xb4]
call fcn.10051cc0
movq xmm0, qword [ebx + 8]
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0xd4]
push eax
mov eax, dword [ebx + 0x10]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.1002e420
movq xmm0, qword [ebx + 0x14]
lea eax, [esp + 0xc8]
add esp, 0x14
push eax
lea eax, [esp + 0xd4]
push eax
mov eax, dword [ebx + 0x1c]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.1002e420
add esp, 0x14
lea ecx, [esp + 0x90]
call fcn.10051cc0
lea ecx, [esp + 0x84]
call fcn.10051cc0
lea ecx, [esp + 0x78]
call fcn.10051cc0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x98]
push eax
call fcn.10051d90
lea ecx, [esp + 0x100]
call fcn.10051cc0
xor esi, esi
nop word [eax + eax]
movss xmm0, dword [esp + 0x24]
lea eax, [esp + 0x5c]
push 0
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esp], xmm0
push esi
push dword [0x100d5464]
push eax
call fcn.1002e6b0
movss xmm1, dword [esp + 0x74]
lea ecx, [esp + 0x5c]
movss xmm0, dword [esp + 0xa4]
add esp, 0xc
mulss xmm0, xmm1
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x94]
mulss xmm0, xmm1
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x90]
mulss xmm0, xmm1
movss dword [esp], xmm0
call fcn.10051c90
movss xmm0, dword [esp + 0x4c]
lea ecx, [esp + 0x38]
addss xmm0, dword [esp + 0x98]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x54]
addss xmm0, dword [esp + 0xa0]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x50]
addss xmm0, dword [esp + 0x9c]
movss dword [esp], xmm0
call fcn.10051c90
movss xmm1, dword [esp + 0x60]
lea ecx, [esp + 0x2c]
movss xmm0, dword [esp + 0x80]
sub esp, 0xc
mulss xmm0, xmm1
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x88]
mulss xmm0, xmm1
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x84]
mulss xmm0, xmm1
movss dword [esp], xmm0
call fcn.10051c90
movss xmm0, dword [esp + 0x34]
lea ecx, [esp + 0x18]
addss xmm0, dword [esp + 0x40]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x3c]
addss xmm0, dword [esp + 0x48]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x38]
addss xmm0, dword [esp + 0x44]
movss dword [esp], xmm0
call fcn.10051c90
movss xmm0, dword [esp + 0x18]
xorps xmm2, xmm2
movss xmm1, dword [esp + 0x1c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x20]
mulss xmm0, xmm0
addss xmm1, xmm0
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x1000c183
xorps xmm1, xmm1
jmp 0x1000c1a4
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1000c195
sqrtsd xmm0, xmm0
jmp 0x1000c19a
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
xorps xmm1, xmm1
xorps xmm2, xmm2
cvtsd2ss xmm1, xmm0
movss dword [esp + 0xc], xmm1
fld dword [esp + 0xc]
fstp dword [esp + 0x10]
movss xmm0, dword [esp + 0x10]
ucomiss xmm0, xmm0
setp al
cmp al, 1
je 0x1000c20c
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jnp 0x1000c20c
lea ecx, [esp + 0x68]
call fcn.10051cc0
movss xmm1, dword [esp + 0xc]
movss xmm0, dword [esp + 0x18]
divss xmm0, xmm1
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x1c]
divss xmm0, xmm1
movss dword [esp + 0x6c], xmm0
movss xmm0, dword [esp + 0x20]
divss xmm0, xmm1
movss dword [esp + 0x70], xmm0
jmp 0x1000c22f
sub esp, 0xc
lea ecx, [esp + 0x74]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.10051c90
lea ecx, [esp + 0x18]
call fcn.1001b690
lea ecx, [esp + 0x2c]
call fcn.1001b690
lea ecx, [esp + 0x38]
call fcn.1001b690
lea ecx, [esp + 0x44]
call fcn.1001b690
mov eax, dword [0x100d5468]
lea ecx, [esp + 0x50]
movss xmm0, dword [esp + 0x70]
sub esp, 0xc
movss xmm1, dword [eax + 0x104]
mulss xmm0, xmm1
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x78]
mulss xmm0, xmm1
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x74]
mulss xmm0, xmm1
movss dword [esp], xmm0
call fcn.10051c90
movss xmm0, dword [esp + 0x58]
lea ecx, [esp + 0xa8]
addss xmm0, dword [esp + 0xa4]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x60]
addss xmm0, dword [esp + 0xac]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x5c]
addss xmm0, dword [esp + 0xa8]
movss dword [esp], xmm0
call fcn.10051c90
lea ecx, [esp + 0x50]
call fcn.1001b690
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0xb8]
push eax
push 0x100d546c
call fcn.1002f080
movss xmm0, dword [ebx + 0x30]
add esp, 0x18
mulss xmm0, xmm0
fstp dword [esp + 0x10]
comiss xmm0, dword [esp + 0x10]
jb 0x1000c33e
inc edi
cmp edi, dword [esp + 0x14]
jae 0x1000c37c
mov eax, edi
sub eax, esi
add eax, 0xff
cmp eax, dword [esp + 0x14]
jb 0x1000c380
lea ecx, [esp + 0xa8]
call fcn.1001b690
lea ecx, [esp + 0x68]
call fcn.1001b690
lea ecx, [esp + 0x5c]
call fcn.1001b690
inc esi
cmp esi, 0xff
jl 0x1000c000
xor bl, bl
jmp 0x1000c3a0
mov bl, 1
jmp 0x1000c382
xor bl, bl
lea ecx, [esp + 0xa8]
call fcn.1001b690
lea ecx, [esp + 0x68]
call fcn.1001b690
lea ecx, [esp + 0x5c]
call fcn.1001b690
lea ecx, [esp + 0x100]
call fcn.1001b690
lea ecx, [esp + 0x78]
call fcn.1001b690
lea ecx, [esp + 0x84]
call fcn.1001b690
lea ecx, [esp + 0x90]
call fcn.1001b690
lea ecx, [esp + 0xb4]
call fcn.1001b690
lea ecx, [esp + 0xc0]
call fcn.1001b690
jmp 0x1000c3e9
xor bl, bl
lea ecx, [esp + 0x10c]
call fcn.1001b690
lea ecx, [esp + 0x118]
call fcn.1001b690
lea ecx, [esp + 0x9c]
call fcn.1001b690
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x1000c435
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x1000c435
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x1000c435
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov ecx, dword [esp + 0x154]
mov al, bl
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100525c5
mov esp, ebp
pop ebp
ret 0x14