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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [0x102d944c]
xor eax, esp
mov dword [esp + 0x94], eax
push esi
mov esi, dword [0x103f64e8]
push edi
mov byte [esp + 0x12], dl
mov dword [esp + 0x24], ecx
mov eax, dword [esi + 0x1c48]
mov dword [esp + 0x28], esi
mov byte [eax + 0xc5], 1
mov edi, dword [esi + 0x1c48]
mov dword [esp + 0x34], edi
cmp byte [edi + 0xc8], 0
jne 0x10150d23
mov ecx, dword [edi + 0xfc]
xor edx, edx
mov eax, dword [edi + 0x104]
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x28]
call fcn.10111d40
add esp, 4
mov dword [esp + 0x20], eax
cmp dword [esi + 0x1c84], eax
jne 0x101504f2
mov dword [esi + 0x1c88], eax
cmp dword [esi + 0x1cbc], eax
jne 0x10150501
mov byte [esi + 0x1cc0], 1
mov eax, dword [esp + 0x24]
mov ecx, eax
cmp eax, 0xffffffff
jae 0x10150526
nop dword [eax]
mov dl, byte [ecx]
test dl, dl
je 0x10150526
cmp dl, 0x23
jne 0x10150520
cmp byte [ecx + 1], dl
je 0x10150526
inc ecx
cmp ecx, 0xffffffff
jb 0x10150510
movss xmm4, dword [esi + 0x19d8]
xorps xmm1, xmm1
movss dword [esp + 0x30], xmm4
cmp eax, ecx
jne 0x10150540
xorps xmm2, xmm2
jmp 0x1015058f
movss xmm3, dword [0x102c1704]
movaps xmm2, xmm4
push 0
push ecx
push eax
push ecx
mov ecx, dword [esi + 0x19d4]
lea eax, [esp + 0x48]
mov dword [esp], 0xbf800000
push eax
call fcn.1013bf80
movss xmm0, dword [esp + 0x38]
xorps xmm1, xmm1
addss xmm0, dword [0x102c13c8]
movss xmm4, dword [esp + 0x3c]
movss dword [esp + 0x30], xmm4
cvttss2si eax, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mov ecx, dword [ebp + 0xc]
movss dword [esp + 0x2c], xmm2
movss xmm0, dword [ecx + 4]
ucomiss xmm0, xmm1
movss dword [esp + 0x88], xmm0
lahf
test ah, 0x44
jp 0x101505bb
movaps xmm0, xmm4
movss dword [esp + 0x88], xmm4
movss xmm7, dword [ecx]
ucomiss xmm7, xmm1
lahf
test ah, 0x44
jp 0x101505cb
movaps xmm7, xmm2
movss dword [esp + 0x3c], xmm0
lea ecx, [esp + 0x38]
movss xmm0, dword [edi + 0x108]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [edi + 0x10c]
addss xmm0, dword [edi + 0x140]
movss dword [esp + 0x38], xmm7
movss dword [esp + 0x14], xmm0
call fcn.1011e700
mov edx, dword [ebp + 8]
mov ecx, edx
movss xmm2, dword [esp + 0x1c]
shr ecx, 1
and cl, 1
mov dword [esp + 0x68], ecx
je 0x1015062c
movss xmm6, dword [edi + 0x258]
movss xmm1, dword [edi + 0x260]
jmp 0x10150637
movss xmm1, dword [edi + 0x250]
movaps xmm6, xmm2
mov eax, dword [ebp + 0xc]
xorps xmm5, xmm5
movss xmm0, dword [eax]
ucomiss xmm0, xmm5
lahf
test ah, 0x44
jnp 0x10150652
test edx, 0x800000
je 0x10150660
movss xmm7, dword [esp + 0x2c]
subss xmm1, xmm6
maxss xmm7, xmm1
movss xmm0, dword [esp + 0x14]
addss xmm7, xmm6
movss dword [esp + 0x94], xmm2
movaps xmm4, xmm0
movss dword [esp + 0x98], xmm0
movss dword [esp + 0x70], xmm6
movss dword [esp + 0x74], xmm0
movss dword [esp + 0x60], xmm7
movss dword [esp + 0x78], xmm7
addss xmm4, dword [esp + 0x88]
movss dword [esp + 0x38], xmm4
movss dword [esp + 0x7c], xmm4
test edx, 0x4000000
jne 0x1015072a
test cl, cl
jne 0x101506c0
movss xmm5, dword [esi + 0x15e0]
movss xmm3, dword [esi + 0x15e4]
movaps xmm0, xmm5
mulss xmm0, dword [0x102c137c]
movss xmm1, dword [esp + 0x14]
cvttss2si eax, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x102c137c]
movd xmm2, eax
cvttss2si eax, xmm0
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm5, xmm2
subss xmm3, xmm0
subss xmm6, xmm2
subss xmm1, xmm0
addss xmm5, xmm7
addss xmm3, xmm4
movss dword [esp + 0x70], xmm6
movss dword [esp + 0x74], xmm1
movss dword [esp + 0x78], xmm5
movss dword [esp + 0x7c], xmm3
movss xmm0, dword [edi + 0x268]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [edi + 0x270]
movss dword [esp + 0x88], xmm0
test cl, cl
je 0x10150765
mov eax, dword [edi + 0x258]
mov dword [edi + 0x268], eax
mov eax, dword [edi + 0x260]
mov dword [edi + 0x270], eax
mov eax, edx
lea ecx, [esp + 0x70]
mov edx, dword [esp + 0x20]
and eax, 8
push 0
mov dword [esp + 0x20], eax
push 0
je 0x101507a4
mov esi, dword [esi + 0x1c6c]
mov eax, esi
mov edi, dword [esp + 0x30]
or eax, 0x14
mov dword [edi + 0x1c6c], eax
call fcn.1011e830
mov dword [edi + 0x1c6c], esi
mov esi, edi
mov edi, dword [esp + 0x3c]
jmp 0x101507a9
call fcn.1011e830
add esp, 8
cmp byte [esp + 0x68], 0
je 0x101507d2
movss xmm0, dword [esp + 0x14]
movss dword [edi + 0x268], xmm0
movss xmm0, dword [esp + 0x88]
movss dword [edi + 0x270], xmm0
test al, al
je 0x10150d23
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 8]
mov eax, edi
shr ecx, 3
and ecx, 0x20000
mov edx, ecx
or edx, 0x10
test dword [ebp + 8], 0x200000
cmove edx, ecx
mov ecx, edx
or ecx, 0x80
test edi, 0x400000
cmove ecx, edx
mov edx, ecx
or edx, 0x4000
cmp dword [esp + 0x1c], 0
cmove edx, ecx
mov ecx, edx
or ecx, 0x120
test al, 4
movzx eax, byte [esp + 0x12]
cmove ecx, edx
mov edx, edi
and edx, 0x10
mov edi, 0
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x68], edx
cmove edi, eax
mov eax, ecx
or eax, 0x1000
mov dword [esp + 0x88], edi
test edx, edx
mov edx, dword [esp + 0x20]
cmove eax, ecx
lea ecx, [esp + 0x70]
push eax
lea eax, [esp + 0x17]
push eax
lea eax, [esp + 0x23]
push eax
call fcn.10140b80
mov edi, dword [0x103f64e8]
mov ch, al
mov cl, byte [esp + 0x27]
add esp, 0xc
mov byte [esp + 0x12], ch
test ch, ch
jne 0x1015089c
mov edx, dword [ebp + 8]
test cl, cl
je 0x1015097f
test edx, 0x2000000
je 0x1015097f
cmp byte [esi + 0x1e6b], 0
jne 0x10150962
mov eax, dword [esp + 0x34]
cmp dword [esi + 0x1e18], eax
jne 0x10150962
mov edx, dword [eax + 0x17c]
mov dword [esp + 0x14], edx
cmp dword [esi + 0x1e60], edx
jne 0x10150962
movss xmm0, dword [esp + 0x74]
subss xmm0, dword [eax + 0x48]
movss xmm4, dword [esp + 0x78]
subss xmm4, dword [eax + 0x44]
movss xmm3, dword [esp + 0x7c]
subss xmm3, dword [eax + 0x48]
movss xmm1, dword [esp + 0x70]
subss xmm1, dword [eax + 0x44]
mov eax, dword [eax + 0x184]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov dword [edi + 0x1e20], eax
mov eax, dword [edi + 0x1e18]
mov dword [edi + 0x1e1c], edx
mov dword [edi + 0x1e60], esi
movss dword [esp + 0x40], xmm1
mov dword [eax + esi*4 + 0x370], edx
mov edx, esi
mov eax, dword [edi + 0x1e18]
add edx, edx
mov esi, dword [esp + 0x28]
movss dword [esp + 0x44], xmm0
movss dword [esp + 0x48], xmm4
movss dword [esp + 0x4c], xmm3
movups xmm0, xmmword [esp + 0x40]
movups xmmword [eax + edx*8 + 0x378], xmm0
mov byte [esi + 0x1e6a], 1
mov edx, dword [ebp + 8]
test ch, ch
je 0x1015097f
mov eax, dword [edi + 0x1c48]
mov word [edi + 0x1c94], 0x101
or dword [eax + 0x158], 4
cmp dword [esp + 0x68], 0
je 0x101509b0
mov eax, dword [edi + 0x1c48]
mov eax, dword [eax + 0x154]
cmp dword [edi + 0x1c70], eax
jne 0x101509a1
mov byte [edi + 0x1c78], 1
cmp dword [edi + 0x1c84], eax
jne 0x101509b0
mov byte [edi + 0x1c91], 1
mov al, byte [esp + 0x13]
test al, al
je 0x101509c4
test edx, 0x1000000
je 0x101509c4
mov cl, 1
jmp 0x101509d5
test cl, cl
jne 0x101509d5
cmp byte [esp + 0x88], cl
je 0x10150a6d
test al, al
je 0x101509e7
test cl, cl
je 0x101509e7
mov dword [esp + 0x14], 0x1a
jmp 0x101509f5
xor eax, eax
test cl, cl
setne al
add eax, 0x18
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
movss xmm1, dword [0x102c13d0]
push 0
push ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x94], edx
mov edx, dword [edi + 0x1c48]
mov dword [esp + 0x90], eax
mov dword [esp], 0
call fcn.10112760
mov ecx, dword [edx + 0x2c4]
push eax
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x98]
push eax
call fcn.10138120
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x70]
push 0xa
call fcn.101134e0
mov edi, dword [0x103f64e8]
add esp, 4
cmp dword [esp + 0x1c], 0
je 0x10150aac
movups xmm0, xmmword [edi + 0x165c]
lea eax, [esp + 0x40]
mov dword [esp + 0x40], 0
push eax
lea ecx, [edi + 0x1d70]
movups xmmword [esp + 0x48], xmm0
call fcn.1010c480
movups xmm0, xmmword [esi + 0x166c]
movups xmmword [edi + 0x165c], xmm0
mov edi, dword [0x103f64e8]
mov edx, dword [esp + 0x24]
mov esi, edx
cmp edx, 0xffffffff
jae 0x10150acd
mov cl, byte [esi]
test cl, cl
je 0x10150acd
cmp cl, 0x23
jne 0x10150ac7
cmp byte [esi + 1], cl
je 0x10150acd
inc esi
cmp esi, 0xffffffff
jb 0x10150ab7
mov eax, esi
sub eax, edx
je 0x10150c22
movss xmm2, dword [esp + 0x94]
movss xmm4, dword [esp + 0x2c]
movaps xmm0, xmm2
mov eax, dword [edi + 0x1c48]
addss xmm0, xmm4
movss xmm1, dword [esp + 0x98]
movss xmm5, dword [esp + 0x30]
movss dword [esp + 0x68], xmm2
mov eax, dword [eax + 0x2c4]
comiss xmm0, dword [esp + 0x78]
mov dword [esp + 0x14], eax
movss dword [esp + 0x6c], xmm1
jae 0x10150b31
movaps xmm0, xmm1
addss xmm0, xmm5
comiss xmm0, dword [esp + 0x7c]
jae 0x10150b31
xor al, al
jmp 0x10150b33
mov al, 1
movss xmm0, dword [esp + 0x70]
comiss xmm0, xmm2
ja 0x10150b4d
movss xmm0, dword [esp + 0x74]
comiss xmm0, xmm1
ja 0x10150b4d
xor cl, cl
jmp 0x10150b4f
mov cl, 1
or al, cl
xorps xmm7, xmm7
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x28]
movss xmm3, dword [eax + 0x1634]
comiss xmm3, xmm7
jbe 0x10150b8a
movss xmm0, dword [esp + 0x60]
subss xmm0, xmm2
subss xmm0, xmm4
mulss xmm0, xmm3
addss xmm0, xmm2
comiss xmm2, xmm0
jae 0x10150b8a
movss dword [esp + 0x68], xmm0
movss xmm2, dword [eax + 0x1638]
comiss xmm2, xmm7
jbe 0x10150bb8
movss xmm0, dword [esp + 0x38]
subss xmm0, xmm1
subss xmm0, xmm5
mulss xmm0, xmm2
addss xmm0, xmm1
comiss xmm1, xmm0
jae 0x10150bb8
movss dword [esp + 0x6c], xmm0
movss xmm1, dword [0x102c13d0]
xor ecx, ecx
call fcn.10112760
cmp byte [esp + 0x13], 0
xorps xmm2, xmm2
je 0x10150be2
movaps xmm0, xmmword [esp + 0x70]
lea ecx, [esp + 0x40]
movaps xmmword [esp + 0x40], xmm0
push ecx
jmp 0x10150be4
push 0
push ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp], 0
push esi
push edx
push eax
lea eax, [esp + 0x7c]
push eax
push 0
call fcn.10138790
cmp byte [edi + 0x3028], 0
je 0x10150c1c
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x94]
push esi
call fcn.10123ae0
add esp, 4
mov edi, dword [0x103f64e8]
cmp dword [esp + 0x1c], 0
je 0x10150c33
mov ecx, 1
call fcn.10112910
mov dl, byte [esp + 0x12]
test dl, dl
je 0x10150d0d
mov eax, dword [esp + 0x34]
test dword [eax + 8], 0x4000000
je 0x10150d0d
test byte [ebp + 8], 1
jne 0x10150d0d
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c6c], 0x20
jne 0x10150d0d
mov ecx, dword [edi + 0x1dc4]
sub ecx, 1
js 0x10150d0d
cmp ecx, dword [edi + 0x1db8]
jge 0x10150d0d
mov eax, dword [edi + 0x1dcc]
lea edx, [ecx + ecx*8]
mov esi, dword [edi + 0x1dc0]
mov eax, dword [eax + edx*4]
cmp eax, dword [esi + edx*4]
jne 0x10150d09
test ecx, ecx
jle 0x10150cd7
lea eax, [edx*4 - 0x20]
add eax, esi
nop word [eax + eax]
mov esi, dword [eax + 0x24]
mov edx, dword [eax]
test esi, esi
je 0x10150cd7
test dword [esi + 8], 0x10000000
je 0x10150cd7
test edx, edx
je 0x10150ccf
test dword [edx + 8], 0x8000000
jne 0x10150cd7
dec ecx
sub eax, 0x24
test ecx, ecx
jg 0x10150cb0
mov dl, 1
call fcn.1011fb10
mov eax, dword [edi + 0x1e18]
mov dl, byte [esp + 0x12]
test eax, eax
je 0x10150d0d
mov byte [eax + 0x188], 1
mov al, dl
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.101fae3a
mov esp, ebp
pop ebp
ret
mov dl, byte [esp + 0x12]
mov al, dl
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.101fae3a
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x9c]
xor al, al
pop edi
pop esi
xor ecx, esp
call fcn.101fae3a
mov esp, ebp
pop ebp
ret