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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov edi, edx
mov eax, dword [0x1043db14]
xor eax, ebp
mov dword [esp + 0x78], eax
xor eax, eax
dec eax
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x10], eax
pcmpeqd xmm0, xmm0
movdqu xmmword [ecx], xmm0
mov dword [esp + 0xc], ecx
call fcn.10188680
mov ebx, dword [edi]
mov eax, dword [edi + 4]
sub eax, ebx
je 0x1009641e
sar eax, 2
imul esi, eax, 0xaaaaaaab
mov ecx, dword [ebp + 8]
lea eax, [esi - 1]
mov dword [esp + 0x18], eax
xor edi, edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
lea esi, [edi + edi*2]
movss xmm7, dword [ebx + esi*4]
movss dword [esp + 0x70], xmm7
movss xmm0, dword [ebx + esi*4 + 4]
movss dword [esp + 0x74], xmm0
test ecx, ecx
je 0x100960f0
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.100058f8
movsd xmm7, qword [esp + 0x38]
jmp 0x100960f3
unpcklps xmm7, xmm0
movaps xmm0, xmmword [0x1028aa50]
minps xmm0, xmm7
movaps xmm1, xmmword [0x1028aa40]
cmpltps xmm7, xmm1
andps xmm1, xmm7
andnps xmm7, xmm0
orps xmm7, xmm1
movlps qword [esp + 0x70], xmm7
movzx eax, byte [ebx + esi*4 + 8]
test eax, eax
je 0x10096165
cmp eax, 2
jne 0x1009620c
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx]
mov esi, eax
shr esi, 8
cmp esi, dword [ebx + 4]
jb 0x1009614c
mov ecx, ebx
push esi
movaps xmmword [esp + 0x24], xmm7
call fcn.10188696
movaps xmm7, xmmword [esp + 0x20]
mov eax, dword [ebx]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov ecx, dword [ecx + esi*4]
mov edx, dword [edx + esi*4]
movzx eax, al
mov byte [edx + eax], 1
movlps qword [ecx + eax*8], xmm7
jmp 0x100961d6
movaps xmm1, xmm7
test edi, edi
je 0x10096184
lea eax, [edi - 1]
lea eax, [eax + eax*2]
cmp byte [ebx + eax*4 + 8], 2
jne 0x10096184
cmp byte [ebx + eax*4 + 9], 0
je 0x100962ea
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx]
mov esi, eax
shr esi, 8
cmp esi, dword [ebx + 4]
jb 0x100961b4
mov ecx, ebx
push esi
movaps xmmword [esp + 0x24], xmm7
movss dword [esp + 0x20], xmm1
call fcn.10188696
movss xmm1, dword [esp + 0x1c]
movaps xmm7, xmmword [esp + 0x20]
mov eax, dword [ebx]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov ecx, dword [ecx + esi*4]
mov edx, dword [edx + esi*4]
movzx eax, al
mov byte [edx + eax], 2
movss dword [ecx + eax*8], xmm1
movshdup xmm0, xmm7
movss dword [ecx + eax*8 + 4], xmm0
inc dword [ebx]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
cmp esi, edi
jbe 0x10096435
lea eax, [edi + edi*2]
cmp byte [ebx + eax*4 + 9], 0
je 0x100961fb
mov ecx, dword [esp + 0xc]
call fcn.10188756
inc edi
cmp edi, esi
mov ecx, dword [ebp + 8]
jb 0x100960bb
jmp 0x1009641e
test edi, edi
je 0x100961dc
cmp al, 1
jne 0x100961dc
lea ecx, [edi + 2]
mov eax, dword [esp + 0x10]
cmp ecx, eax
jae 0x100961dc
movss xmm0, dword [ebx + esi*4 - 0xc]
movss dword [esp + 0x68], xmm0
movss xmm3, dword [ebx + esi*4 - 8]
movss dword [esp + 0x6c], xmm3
pcmpeqd xmm1, xmm1
movq qword [esp + 0x60], xmm1
inc edi
cmp eax, edi
jbe 0x10096438
lea eax, [edi + edi*2]
movss xmm1, dword [ebx + eax*4]
movss dword [esp + 0x60], xmm1
movss xmm4, dword [ebx + eax*4 + 4]
movss dword [esp + 0x64], xmm4
mov dword [esp + 0x20], ecx
lea eax, [ecx + ecx*2]
movss xmm2, dword [ebx + eax*4]
movss dword [esp + 0x58], xmm2
movss xmm5, dword [ebx + eax*4 + 4]
movss dword [esp + 0x5c], xmm5
mov ecx, dword [ebp + 8]
test ecx, ecx
lea esi, [esp + 0x38]
je 0x10096335
lea eax, [esp + 0x68]
push eax
push esi
mov edi, ecx
call fcn.100058f8
movsd xmm0, qword [esp + 0x38]
movsd qword [esp + 0x68], xmm0
mov ecx, edi
lea eax, [esp + 0x60]
push eax
push esi
call fcn.100058f8
movsd xmm0, qword [esp + 0x38]
movsd qword [esp + 0x60], xmm0
mov ecx, edi
lea eax, [esp + 0x58]
push eax
push esi
call fcn.100058f8
movsd xmm2, qword [esp + 0x38]
movsd xmm0, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x60]
movsd xmm7, qword [esp + 0x70]
jmp 0x1009633e
cmp edi, dword [esp + 0x18]
jne 0x100963f7
lea ecx, [ebx + esi*4]
lea eax, [ebx + eax*4]
movss xmm0, dword [ecx]
ucomiss xmm0, dword [eax]
jne 0x10096184
jp 0x10096184
movss xmm0, dword [ecx + 4]
ucomiss xmm0, dword [eax + 4]
jne 0x10096184
jp 0x10096184
addss xmm1, dword [0x10265c58]
movss dword [esp + 0x70], xmm1
jmp 0x10096184
unpcklps xmm0, xmm3
unpcklps xmm1, xmm4
unpcklps xmm2, xmm5
movaps xmm6, xmmword [0x1028aa50]
movaps xmm3, xmm6
minps xmm3, xmm0
movaps xmm5, xmmword [0x1028aa40]
cmpltps xmm0, xmm5
movaps xmm4, xmm5
andps xmm4, xmm0
andnps xmm0, xmm3
orps xmm0, xmm4
movlps qword [esp + 0x68], xmm0
movaps xmm3, xmm6
minps xmm3, xmm1
cmpltps xmm1, xmm5
movaps xmm4, xmm5
andps xmm4, xmm1
andnps xmm1, xmm3
orps xmm1, xmm4
movlps qword [esp + 0x60], xmm1
movaps xmm3, xmm6
minps xmm3, xmm2
cmpltps xmm2, xmm5
movaps xmm4, xmm5
andps xmm4, xmm2
andnps xmm2, xmm3
orps xmm2, xmm4
movlps qword [esp + 0x58], xmm2
xor eax, eax
dec eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x40]
xor edi, edi
mov dword [eax + 0x10], edi
xorps xmm3, xmm3
movups xmmword [eax], xmm3
mov dword [esp + 0x54], 0x40
movlhps xmm1, xmm2
sub esp, 0x20
movups xmmword [esp + 0x10], xmm1
movlhps xmm0, xmm7
movups xmmword [esp], xmm0
mov ecx, esi
call fcn.1018818c
mov ecx, dword [esp + 0xc]
push 1
push edi
push esi
call fcn.10098f10
lea ecx, [esp + 0x44]
call fcn.10098fd2
mov edi, dword [esp + 0x20]
jmp 0x100961dc
lea ecx, [edi + 1]
cmp dword [esp + 0x10], ecx
jbe 0x1009643b
lea ecx, [ecx + ecx*2]
cmp byte [ebx + ecx*4 + 8], 2
jne 0x10096184
cmp byte [ebx + ecx*4 + 9], 0
jne 0x10096184
jmp 0x100962f4
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.102377e8
mov eax, dword [esp + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
int3
int3