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

Disassembly:
sub esp, 0xac
mov eax, dword [0x1036900c]
xor eax, esp
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xb0]
push ebx
mov ebx, dword [esp + 0xbc]
push ebp
mov ebp, dword [esp + 0xc4]
push esi
push edi
mov edi, dword [esp + 0xc4]
mov esi, ecx
mov dword [esp + 0x50], eax
call fcn.10194ae0
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x36]
mov dword [esp + 0x30], 0xffffffff
mov al, 2
mov word [esp + 0x34], 0
xchg byte [ecx], al
mov eax, dword [esi]
lea ecx, [esp + 0x2c]
push ecx
push dword [esp + 0x54]
mov ecx, esi
mov byte [esp + 0x3f], 0
call dword [eax + 0x10]
test byte [esi + 0x36], 0x10
je 0x101a2504
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x1c]
mov edx, ecx
shr ecx, 0x18
and ecx, 3
shr edx, 0xc
shl ecx, 0xe
and edx, 0xfc000
mov eax, ecx
or eax, edx
je 0x101a2504
movd xmm2, edx
xorps xmm0, xmm0
cvtdq2ps xmm2, xmm2
movd xmm1, ecx
mulss xmm2, dword [0x102fef90]
cvtdq2ps xmm1, xmm1
ucomiss xmm2, xmm0
mulss xmm1, dword [0x102fef90]
lahf
test ah, 0x44
jp 0x101a249c
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x101a249c
lea ecx, [esp + 0x64]
call fcn.10165d90
jmp 0x101a24f1
movss dword [esp + 0x6c], xmm2
movss dword [esp + 0x78], xmm1
mov dword [esp + 0x84], 0x3f800000
mov dword [esp + 0x74], 0x3f800000
mov dword [esp + 0x64], 0x3f800000
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x88], 0x11
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x34]
call fcn.10157250
movss xmm0, dword [esi + 0x24]
xorps xmm1, xmm1
comiss xmm0, xmm1
ja 0x101a2559
cmp dword [esi + 0x3c], 0
jne 0x101a2559
test ebp, ebp
je 0x101a2522
mov ecx, ebp
call fcn.10165d90
test ebx, ebx
je 0x101a2540
lea eax, [esp + 0x2c]
mov ecx, ebx
push eax
test edi, edi
jne 0x101a253b
call fcn.10154270
jmp 0x101a2830
call fcn.101541d0
test edi, edi
je 0x101a2830
lea eax, [esp + 0x2c]
mov ecx, edi
push eax
call fcn.10154270
jmp 0x101a2830
call fcn.10194ae0
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x2a]
mov dword [esp + 0x24], 0xffffffff
mov al, 2
mov word [esp + 0x28], 0
xchg byte [ecx], al
movss xmm0, dword [esi + 0x14]
lea ecx, [esp + 0x64]
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esi + 0x18]
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esi + 0x1c]
movss dword [esp + 0x70], xmm0
movss xmm0, dword [esi + 0x20]
movss dword [esp + 0x74], xmm0
movaps xmm0, xmmword [0x102ff800]
mov byte [esp + 0x2b], 0
mov dword [esp + 0x6c], 0
movups xmmword [esp + 0x78], xmm0
mov dword [esp + 0x88], 0x80
call fcn.10165e20
movzx eax, al
mov dword [esp + 0x88], eax
test al, 0xf
jne 0x101a28a9
lea ecx, [esp + 0x8c]
call fcn.10165d90
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x34]
call fcn.10157250
movss xmm2, dword [esi + 0x24]
xor cl, cl
movss xmm1, dword [0x102ff400]
xorps xmm0, xmm0
comiss xmm2, xmm0
mov dword [esp + 0x38], 0x3f800000
mov dword [esp + 0x40], 0x40800000
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov byte [esp + 0x4c], cl
movss dword [esp + 0x3c], xmm1
jbe 0x101a2679
mov al, byte [esi + 0x36]
and al, 1
je 0x101a2657
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x101a2666
movaps xmm1, xmm2
mov cl, al
movss dword [esp + 0x3c], xmm1
mov byte [esp + 0x4c], cl
movzx eax, byte [esi + 0x35]
movss xmm0, dword [esi + 0x28]
mov dword [esp + 0x48], eax
movss dword [esp + 0x40], xmm0
cmp dword [esi + 0x3c], 0
je 0x101a26f7
call fcn.10194ae0
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x1e]
mov dword [esp + 0x18], 0xffffffff
mov al, 2
mov word [esp + 0x1c], 0
xchg byte [ecx], al
mov ecx, dword [esi + 0x3c]
lea edx, [esp + 0x38]
push 0
push edx
mov byte [esp + 0x27], 0
lea edx, [esp + 0x28]
mov eax, dword [ecx]
push edx
lea edx, [esp + 0x20]
push edx
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x101a26d1
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
call fcn.10154270
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x101a26ed
lea eax, [ecx + 4]
or edx, 0xffffffff
lock xadd dword [eax], edx
cmp edx, 1
jne 0x101a26ed
mov eax, dword [ecx]
call dword [eax + 4]
movss xmm1, dword [esp + 0x3c]
mov cl, byte [esp + 0x4c]
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x101a27cd
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x101a27cd
xor eax, eax
test cl, cl
setne al
add eax, 2
test cl, cl
je 0x101a2727
cmp eax, 3
jne 0x101a27cd
call fcn.10194ae0
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x1e]
mov dword [esp + 0x18], 0xffffffff
mov al, 2
mov word [esp + 0x1c], 0
xchg byte [ecx], al
movss xmm2, dword [esp + 0x3c]
xorps xmm1, xmm1
comiss xmm1, xmm2
mov byte [esp + 0x1f], 0
jae 0x101a27b1
mov al, byte [esp + 0x44]
lea ecx, [esp + 0x54]
movss xmm0, dword [esp + 0x40]
mov byte [esp + 0x60], al
mov al, byte [esp + 0x48]
mov byte [esp + 0x61], al
mov al, byte [esp + 0x4c]
mov byte [esp + 0x62], al
lea eax, [esp + 0x14]
push eax
movss dword [esp + 0x5c], xmm0
lea eax, [esp + 0x24]
movss xmm0, dword [esp + 0x3c]
push eax
movss dword [esp + 0x5c], xmm2
movss dword [esp + 0x64], xmm0
call fcn.101c7470
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
call fcn.10154270
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x101a27cd
lea eax, [ecx + 4]
or edx, 0xffffffff
lock xadd dword [eax], edx
cmp edx, 1
jne 0x101a27cd
mov eax, dword [ecx]
call dword [eax + 4]
test ebp, ebp
je 0x101a27f1
movups xmm0, xmmword [esp + 0x64]
movups xmmword [ebp], xmm0
movups xmm0, xmmword [esp + 0x74]
movups xmmword [ebp + 0x10], xmm0
movq xmm0, qword [esp + 0x84]
movq qword [ebp + 0x20], xmm0
test ebx, ebx
je 0x101a2804
push ebx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x28]
call fcn.10157250
test edi, edi
je 0x101a2814
lea eax, [esp + 0x20]
mov ecx, edi
push eax
call fcn.10154270
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x101a2830
lea eax, [ecx + 4]
or edx, 0xffffffff
lock xadd dword [eax], edx
cmp edx, 1
jne 0x101a2830
mov eax, dword [ecx]
call dword [eax + 4]
test ebx, ebx
je 0x101a2851
mov esi, dword [ebx]
cmp byte [esi + 0x18], 0
je 0x101a2851
push dword [esi + 0x28]
lea ecx, [esi + 8]
push dword [esi + 0x1c]
call fcn.10187700
mov byte [esi + 0x19], al
mov byte [esi + 0x18], 0
test edi, edi
je 0x101a2872
mov esi, dword [edi]
cmp byte [esi + 0x18], 0
je 0x101a2872
push dword [esi + 0x28]
lea ecx, [esi + 8]
push dword [esi + 0x1c]
call fcn.10187700
mov byte [esi + 0x19], al
mov byte [esi + 0x18], 0
or ebx, 0xffffffff
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x101a288e
lea eax, [ecx + 4]
lock xadd dword [eax], ebx
cmp ebx, 1
jne 0x101a288e
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0xb4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.102af895
add esp, 0xac
ret 0x10
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x68]
call fcn.101670c0
test al, al
jne 0x101a25f0
mov ecx, dword [esp + 0x20]
or ebx, 0xffffffff
test ecx, ecx
je 0x101a2875
lea eax, [ecx + 4]
mov edx, ebx
lock xadd dword [eax], edx
cmp edx, 1
jne 0x101a2875
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x101a2875