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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xbc
mov edx, dword [esp + 0xd0]
xor eax, eax
test edx, edx
je 0x1017258c
mov ebx, dword [esp + 0xd8]
test ebx, ebx
je 0x1017258c
mov esi, dword [esp + 0xd4]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x94], ecx
mov edx, dword [edx + 0x10]
mov ecx, dword [ebx + 0xc]
mov ebp, dword [esp + 0xdc]
mov edi, dword [ebx + 0x10]
test esi, esi
mov dword [esp + 0xc], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
je 0x10172322
test ebp, ebp
je 0x10172322
movss xmm0, dword [esi + 8]
mov ecx, dword [ebp]
movss xmm1, dword [esi + 0xc]
mov edx, dword [ebp + 4]
ucomiss xmm0, dword [esi]
seta al
cmp ecx, dword [ebp + 8]
setl bl
xor bl, al
ucomiss xmm1, dword [esi + 4]
seta al
cmp edx, dword [ebp + 0xc]
setl dl
xor dl, al
jmp 0x1017235b
test esi, esi
je 0x1017233f
movss xmm0, dword [esi]
movss xmm1, dword [esi + 4]
ucomiss xmm0, dword [esi + 8]
seta bl
ucomiss xmm1, dword [esi + 0xc]
seta dl
jmp 0x1017235b
test ebp, ebp
je 0x10172357
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
cmp eax, dword [ebp + 8]
setg bl
cmp ecx, dword [ebp + 0xc]
setg dl
jmp 0x1017235b
xor edx, edx
xor ebx, ebx
xor eax, eax
test esi, esi
mov dword [esp + 0x60], ebx
mov dword [esp + 0x74], eax
mov dword [esp + 0x3c], eax
je 0x101723d4
movdqu xmm1, xmmword [esi]
mov ebp, edx
movdqu xmmword [esp + 0x64], xmm1
pshufd xmm2, xmm1, 0x4e
mov eax, dword [esi + 0x10]
movd edx, xmm2
movd xmm2, edx
mov dword [esp + 0x74], eax
movd eax, xmm1
movd xmm0, eax
ucomiss xmm0, xmm2
pshufd xmm0, xmm1, 0xe5
pshufd xmm1, xmm1, 0xe7
movd ecx, xmm0
movd ebx, xmm1
movd xmm0, ecx
movd xmm1, ebx
jbe 0x101723bc
mov dword [esp + 0x64], edx
mov dword [esp + 0x6c], eax
mov edx, ebp
mov ebp, dword [esp + 0xdc]
ucomiss xmm0, xmm1
jbe 0x101723fa
mov dword [esp + 0x68], ebx
mov dword [esp + 0x70], ecx
jmp 0x101723fa
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esp + 4]
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [esp + 0xc]
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], eax
movd dword [esp + 0x70], xmm0
movd dword [esp + 0x6c], xmm1
test ebp, ebp
mov dword [esp + 0x28], edi
je 0x1017244d
movq xmm0, qword [ebp]
movq xmm1, qword [ebp + 8]
movq qword [esp + 0x2c], xmm0
movq qword [esp + 0x34], xmm1
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jle 0x10172433
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0xc]
cmp eax, ecx
jle 0x10172467
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
jmp 0x10172467
xor eax, eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 4]
movzx ebx, byte [esp + 0x60]
xor esi, esi
lea eax, [esp + 0xac]
lea ebp, [esp + 0x2c]
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], edi
movzx edi, dl
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0x64]
push edi
push ebx
push eax
push ebp
push ecx
mov dword [esp + 0xac], edx
call fcn.10172b24
add esp, 0x14
mov edx, ebp
mov ecx, dword [esp + 8]
mov ebp, dword [esp + 0x28]
lea eax, [esp + 0x9c]
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebp
push edi
push ebx
push eax
push edx
lea esi, [esp + 0x74]
push esi
call fcn.10172d3e
mov eax, esi
add esp, 0x14
movss xmm3, dword [esi + 8]
movss xmm1, dword [esi]
pxor xmm0, xmm0
mov al, 1
movaps xmm5, xmm3
subss xmm5, xmm1
ucomiss xmm5, xmm0
jne 0x101724f3
jnp 0x1017258c
movss xmm4, dword [esp + 0x70]
movss xmm2, dword [esp + 0x68]
movaps xmm6, xmm4
subss xmm6, xmm2
ucomiss xmm6, xmm0
jne 0x1017250d
jnp 0x1017258c
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
cmp edx, ecx
je 0x1017258c
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
cmp esi, ebp
mov dword [esp + 0x24], esi
je 0x1017258c
xor eax, eax
ucomiss xmm1, xmm3
jae 0x1017258c
ucomiss xmm2, xmm4
jae 0x1017258c
mov esi, dword [esp + 0xd0]
mov dword [esp + 0x5c], edx
sub edx, ecx
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], ebx
jle 0x1017258c
mov edi, dword [esp + 0x24]
xor eax, eax
sub edi, ebp
jle 0x1017258c
mov dword [esp + 0x20], ebp
mov ebp, ecx
mov dword [esp + 0x80], edi
mov ecx, dword [esp + 0x20]
or ecx, ebp
js 0x1017258c
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x5c]
cmp ecx, dword [eax + 0xc]
jg 0x1017258a
mov ecx, dword [esp + 0x24]
cmp ecx, dword [eax + 0x10]
jle 0x10172599
xor eax, eax
add esp, 0xbc
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
movzx ecx, byte [esp + 0xe0]
mov edi, edx
movss dword [esp + 0x1c], xmm1
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x58], xmm3
movss dword [esp + 0x54], xmm4
movss dword [esp + 0x14], xmm5
movss dword [esp + 0x7c], xmm6
test cl, 4
mov dword [esp + 0x40], ecx
jne 0x101725da
mov dword [esp + 0x50], 0
jmp 0x101725ef
movzx eax, byte [esi + 0x64]
push eax
call fcn.100cccce
mov ecx, dword [esp + 0x44]
add esp, 4
mov dword [esp + 0x50], eax
test cl, 8
jne 0x101725f8
xor edx, edx
jmp 0x1017260b
movzx eax, byte [esi + 0x64]
push eax
call fcn.100c66c2
mov ecx, dword [esp + 0x44]
add esp, 4
mov edx, eax
mov eax, ecx
movss xmm1, dword [esp + 0x1c]
movss xmm2, dword [esp + 0x18]
movss xmm3, dword [esp + 0x58]
movss xmm4, dword [esp + 0x54]
movss xmm5, dword [esp + 0x14]
movss xmm6, dword [esp + 0x7c]
and eax, 2
shr eax, 1
or al, byte [esp + 0x50]
jne 0x10172646
test dl, dl
mov al, 1
je 0x1017258c
test dl, dl
mov dword [esp + 0x48], edi
mov dword [esp + 0x78], edx
je 0x10172677
lea eax, [esi + 0x90]
lea ecx, [esi + 0x88]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xd8]
lea edx, [eax + 0x90]
lea eax, [eax + 0x88]
jmp 0x1017268e
lea eax, [esi + 0x5c]
lea ecx, [esi + 0x54]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xd8]
lea edx, [eax + 0x5c]
lea eax, [eax + 0x54]
mov eax, dword [eax]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 4]
cvtsi2ss xmm7, dword [esp + 0xc]
pxor xmm0, xmm0
ucomiss xmm0, xmm1
mov dword [esp + 0x44], eax
mov eax, dword [edx]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0x90], eax
mov eax, dword [ecx]
mov cl, 1
mov dword [esp + 0x10], eax
mov al, 1
ja 0x101726e3
ucomiss xmm0, xmm2
mov cl, 1
ja 0x101726e3
ucomiss xmm3, xmm7
mov cl, 1
ja 0x101726e3
xorps xmm0, xmm0
cvtsi2ss xmm0, edi
ucomiss xmm4, xmm0
seta cl
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esp + 0x48]
mov byte [esp + 3], cl
mov ecx, dword [esp + 0xd8]
movss dword [esp + 0x8c], xmm7
ucomiss xmm5, xmm0
jne 0x1017271f
jp 0x1017271f
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esp + 0x80]
cmpneqss xmm6, xmm0
movd eax, xmm6
and eax, 1
mov dword [esp + 4], eax
movzx eax, byte [esi + 0x64]
mov byte [esp + 0x14], 1
cmp al, byte [ecx + 0x64]
sete byte [esp + 0xc]
push eax
call fcn.100ce9ea
add esp, 4
test al, al
jne 0x10172759
mov eax, dword [esp + 0xd8]
movzx eax, byte [eax + 0x64]
push eax
call fcn.100ce9ea
add esp, 4
mov byte [esp + 0x14], al
movss xmm1, dword [esp + 0x1c]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
movss xmm1, dword [esp + 0x18]
setnp al
sete cl
ucomiss xmm1, xmm0
movss xmm0, dword [esp + 0x58]
movss xmm1, dword [esp + 0x54]
setnp dl
sete ah
and ah, dl
mov edx, dword [esp + 0x20]
and ah, al
or edx, ebp
sete al
and al, ah
ucomiss xmm0, dword [esp + 0x8c]
xorps xmm0, xmm0
cvtsi2ss xmm0, edi
mov edi, dword [esi + 0xc]
setnp dl
sete ah
and ah, dl
and ah, al
ucomiss xmm1, xmm0
setnp al
sete dl
and dl, al
and dl, ah
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 8]
sete al
and al, dl
cmp dword [esp + 0x24], ebx
sete dl
and dl, al
movzx eax, byte [esi + 0x64]
and dl, cl
mov byte [esp + 8], dl
push eax
call fcn.100c62aa
add esp, 4
mov cl, byte [esi + 0x64]
imul eax, edi
add eax, 0x10
cmp cl, 0x12
je 0x10172817
movd xmm0, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x18]
cmp cl, 0x13
jne 0x10172813
mov ecx, dword [esp + 0xd8]
cmp byte [ecx + 0x64], 0x12
je 0x10172830
xor ebx, ebx
jmp 0x10172837
mov ecx, dword [esp + 0xd8]
movd xmm0, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x18]
cmp byte [ecx + 0x64], 0x13
jne 0x10172813
mov bl, 1
mov byte [esp + 0xc], 1
cmp dword [esp + 0x10], eax
mov edx, dword [esp + 0x90]
mov ch, byte [esp + 3]
mov dword [esp + 0x28], ebx
setg al
cmp edx, dword [esp + 0x4c]
mov dl, byte [esp + 8]
mov dh, byte [esp + 0xc]
setne cl
xor dl, 1
or dl, byte [esp + 4]
or dl, ch
test dh, dh
sete ah
or ah, bl
mov ebx, dword [esp + 0x98]
or ah, cl
or ah, al
mov al, 1
or ah, dl
or ah, byte [esp + 0x60]
or ah, bl
test ah, al
je 0x1017292e
mov ah, ch
mov ecx, dword [esp + 0x50]
test dh, dh
sete al
xor cl, 1
or cl, byte [esp + 4]
or cl, ah
or cl, al
mov al, byte [esp + 0x14]
or cl, al
je 0x1017297b
test dh, dh
mov ch, al
sete al
test byte [esp + 0x40], 2
sete cl
or cl, byte [esp + 4]
or ah, cl
or ah, al
or ch, ah
je 0x10172a47
cmp byte [esp + 0x60], 0
je 0x101728dd
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], ebp
test bl, bl
je 0x101728f1
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x40]
movzx eax, byte [esp + 0x78]
and cl, byte [esp + 4]
movzx edx, cl
mov ecx, dword [esp + 0x94]
push 1
push eax
push edx
lea eax, [esp + 0x38]
push eax
push dword [esp + 0xe8]
lea eax, [esp + 0x78]
push eax
push dword [esp + 0xe8]
call fcn.100bda16
jmp 0x10172b1d
cmp byte [esp + 0x78], 0
je 0x10172a00
xor ebp, ebp
mov ecx, esi
push ebp
push ebp
push ebp
push ebp
call fcn.100ccc3e
mov edi, dword [esp + 0xd8]
mov ebx, eax
mov ecx, edi
push ebp
push ebp
push ebp
push ebp
call fcn.100ccc3e
push dword [esp + 0x4c]
push ebx
push eax
call fcn.1019f110
add esp, 0xc
mov ecx, esi
call fcn.100cccbc
mov ecx, edi
call fcn.100cccbc
jmp 0x10172b1d
mov ebx, dword [esi]
cvttss2si eax, xmm1
xor edi, edi
mov ecx, esi
cvttss2si edx, xmm0
push edi
push 1
push edi
push eax
push edx
call dword [ebx + 4]
mov ebx, dword [esp + 0xd8]
mov dword [esp + 4], eax
movzx eax, byte [esp + 8]
mov edx, dword [ebx]
lea eax, [eax + eax + 2]
mov ecx, ebx
push edi
push eax
push edi
push dword [esp + 0x2c]
push ebp
call dword [edx + 4]
mov edi, eax
movzx eax, byte [esi + 0x64]
push eax
call fcn.100c62aa
add esp, 4
push dword [esp + 0x84]
push dword [esp + 0x8c]
push eax
push dword [esp + 0x50]
push dword [esp + 0x20]
push dword [esp + 0x94]
push dword [esp + 0x60]
push edi
push dword [esp + 0x24]
call fcn.101720da
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
mov eax, dword [ebx]
mov ecx, ebx
jmp 0x10172b1a
mov eax, dword [esi]
xor ebp, ebp
mov ecx, esi
push ebp
push 1
push ebp
push ebp
push ebp
call dword [eax + 4]
mov edi, dword [esp + 0xd8]
mov ebx, eax
mov edx, 4
mov eax, dword [edi]
mov ecx, edi
push ebp
push edx
push ebp
push ebp
push ebp
call dword [eax + 4]
push dword [esp + 0x4c]
push ebx
push eax
call fcn.1019f110
add esp, 0xc
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
mov eax, dword [edi]
mov ecx, edi
jmp 0x10172b1a
mov ebx, dword [esi]
cvttss2si edx, xmm0
xor edi, edi
cvttss2si eax, xmm1
mov ecx, esi
push edi
push 1
mov esi, dword [esp + 0xdc]
push dword [esi + 0x10]
push eax
push edx
call dword [ebx + 4]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 4], eax
movzx eax, byte [esp + 8]
mov edx, dword [ecx]
lea eax, [eax + eax + 2]
push edi
push eax
mov eax, dword [esp + 0xe4]
push dword [eax + 0x10]
mov ebx, dword [esp + 0x2c]
push ebx
push ebp
call dword [edx + 4]
mov esi, eax
mov eax, dword [esp + 0xd0]
movzx eax, byte [eax + 0x64]
push eax
call fcn.100c62aa
add esp, 4
mov ecx, dword [esp + 0x24]
sub ecx, ebx
sete byte [esp + 8]
push dword [esp + 0x84]
push dword [esp + 0x8c]
push eax
push dword [esp + 0x50]
push dword [esp + 0x20]
mov ebx, ecx
push ecx
mov ebp, dword [esp + 0x60]
push ebp
push esi
push dword [esp + 0x24]
call fcn.101720da
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x28]
xor al, 1
or al, byte [esp + 8]
jne 0x10172b05
mov ecx, ebp
test ecx, ecx
je 0x10172afe
xor eax, eax
mov byte [esi + eax*4 + 3], 0xff
inc eax
cmp ecx, eax
jne 0x10172af4
inc edi
add esi, edx
cmp edi, ebx
jne 0x10172aee
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx]
call dword [eax + 8]
mov al, 1
jmp 0x1017258c