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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xd0
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x10]
shr eax, 0x14
and eax, 1
and ecx, 0xfffffffe
mov dword [esp + 0x50], ecx
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebx]
cmp edi, esi
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebx + 4]
sbb edx, ecx
mov edx, esi
cmovl edx, edi
mov edi, ecx
cmovl edi, dword [ebp + 0x24]
cmp esi, dword [ebp + 0x18]
mov esi, dword [ebp + 0x1c]
sbb ecx, esi
cmovl edi, esi
mov ecx, dword [ebp + 0x18]
cmovl edx, ecx
mov ecx, dword [0x1042dd60]
mov dword [esp + 0x38], ecx
mov dword [ebx], edx
mov dword [ebx + 4], edi
mov ecx, dword [ebp + 8]
movss xmm5, dword [ecx + eax*4]
mov dword [esp + 0x30], eax
movss xmm3, dword [ecx + eax*4 + 8]
movaps xmm2, xmm3
subss xmm2, xmm5
addss xmm2, dword [0x1035885c]
mov eax, dword [ebp + 0x20]
mov ecx, eax
mov ebx, dword [ebp + 0x18]
sub ecx, ebx
mov edi, dword [ebp + 0x24]
mov edx, edi
sbb edx, esi
sub ebx, eax
sbb esi, edi
mov edi, esi
mov dword [esp + 0x74], edx
cmovl edi, edx
mov esi, dword [esp + 0x38]
movss xmm4, dword [esi + 0x1588]
mov dword [esp + 0x78], ecx
cmovl ebx, ecx
cmp dword [esp + 0x50], 8
mov dword [esp + 0x40], ebx
je 0x10295d2d
test edi, edi
js 0x10295d2d
mov eax, ebx
add eax, 1
mov ecx, edi
adc ecx, 0
movd xmm0, ecx
movd xmm1, eax
punpckldq xmm1, xmm0
movq qword [esp + 0xc0], xmm1
fild qword [esp + 0xc0]
fstp dword [esp + 0x9c]
movaps xmm0, xmm2
divss xmm0, dword [esp + 0x9c]
maxss xmm4, xmm0
mov ebx, dword [ebp + 0x2c]
minss xmm4, xmm2
movaps xmm1, xmm2
subss xmm1, xmm4
addss xmm5, dword [0x1035735c]
mulss xmm4, dword [0x103574f4]
mov eax, dword [ebp + 0xc]
xorps xmm6, xmm6
xorps xmm7, xmm7
test bl, 0x20
movss dword [esp + 0x4c], xmm3
movss dword [esp + 0x48], xmm4
je 0x10295f0a
movss dword [esp + 0x2c], xmm1
movss dword [esp + 0x3c], xmm2
movss dword [esp + 0x34], xmm5
mov edx, 1
cmp dword [esp + 0x50], 8
jne 0x10295ea2
mov ecx, dword [ebp + 0x28]
jmp 0x10295d9f
movzx eax, byte [ecx + 1]
mov edx, 2
cmp al, 0x25
jne 0x10295db9
add ecx, edx
movzx eax, byte [ecx]
cmp al, 0x25
je 0x10295d90
mov edx, 1
test al, al
jne 0x10295d9d
mov edx, 3
jmp 0x10295ea2
mov edx, eax
add dl, 0xd0
cmp dl, 9
ja 0x10295de1
nop word cs:[eax + eax]
nop dword [eax]
movzx eax, byte [ecx + 2]
add ecx, 1
mov edx, eax
add dl, 0xd0
cmp dl, 0xa
jb 0x10295dd0
mov edx, Ordinal_2
cmp al, 0x2e
jne 0x10295e73
mov al, byte [ecx + 2]
xor edx, edx
mov byte [esp + 0x44], al
cmp al, 0x2d
sete dl
lea eax, [ecx + edx]
add eax, 2
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x6c], edx
cmp byte [ecx + edx + 2], 0x2b
sete al
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x70]
mov al, byte [eax + edx]
mov ah, al
add ah, 0xd0
xor edx, edx
cmp ah, 9
ja 0x10295e5c
mov edx, dword [esp + 0x68]
add edx, dword [esp + 0x6c]
add ecx, edx
add ecx, 3
xor edx, edx
nop word [eax + eax]
movzx eax, al
lea edx, [edx + edx*4]
lea edx, [eax + edx*2]
add edx, 0xffffffd0
movzx eax, byte [ecx]
mov ah, al
add ah, 0xd0
add ecx, 1
cmp ah, 0xa
jb 0x10295e40
mov ecx, edx
neg ecx
cmp byte [esp + 0x44], 0x2d
cmovne ecx, edx
cmp ecx, 0x64
mov edx, 3
cmovb edx, ecx
cmp al, 0x45
je 0x10295e9d
cmp al, 0x65
je 0x10295e9d
cmp al, 0x67
jne 0x10295e89
cmp edx, 0x7fffffff
jne 0x10295ea2
jmp 0x10295e9d
cmp al, 0x47
jne 0x102963de
cmp edx, 0x7fffffff
jne 0x102963de
mov edx, 0xffffffff
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x10362600]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_exp2
fstp dword [esp + 0x98]
movss xmm6, dword [esi + 0x1598]
mulss xmm6, dword [0x103574f4]
movss xmm7, dword [esp + 0x98]
movss xmm0, dword [0x103564b8]
movss xmm1, dword [esp + 0x2c]
maxss xmm0, xmm1
divss xmm6, xmm0
movss xmm4, dword [esp + 0x48]
movss xmm5, dword [esp + 0x34]
movss xmm2, dword [esp + 0x3c]
mov eax, dword [ebp + 0xc]
addss xmm5, xmm4
cmp dword [esi + 0x19f0], eax
jne 0x1029602f
mov eax, dword [esi + 0x1a18]
cmp eax, 2
je 0x10296211
cmp eax, 1
jne 0x1029602f
cmp byte [esi + 0xec], 0
movss dword [esp + 0x34], xmm5
movss dword [esp + 0x3c], xmm2
je 0x10296305
xorps xmm0, xmm0
ucomiss xmm1, xmm0
jbe 0x10295f7a
mov eax, dword [esp + 0x30]
movss xmm0, dword [esi + eax*4 + 0xe4]
subss xmm0, xmm5
divss xmm0, xmm1
minss xmm0, dword [0x103564b8]
xorps xmm1, xmm1
maxss xmm1, xmm0
movaps xmm0, xmm1
test ebx, 0x100000
mov ebx, dword [ebp + 0x14]
je 0x10295f94
movaps xmm1, xmm0
movss xmm0, dword [0x103564b8]
subss xmm0, xmm1
mov eax, dword [ebp + 0x2c]
mov edi, eax
and edi, 0x40
and eax, 0x20
shr eax, 5
movss dword [esp + 0x30], xmm6
movss dword [esp + 0x20], xmm6
movss dword [esp + 0x2c], xmm7
movss dword [esp + 0x1c], xmm7
mov ecx, dword [ebp + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 8], ecx
movss dword [esp + 4], xmm0
mov esi, dword [ebp + 0x10]
mov dword [esp], esi
mov dword [esp + 0x18], eax
call fcn.1029a260
test edi, edi
jne 0x10296006
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov eax, dword [ebp + 0x28]
mov dword [esp], eax
call fcn.102992d0
movss xmm5, dword [esp + 0x34]
mov ecx, dword [ebx]
xor ecx, eax
mov esi, dword [ebx + 4]
xor esi, edx
or esi, ecx
movss xmm2, dword [esp + 0x3c]
movss xmm6, dword [esp + 0x30]
movss xmm7, dword [esp + 0x2c]
jne 0x10296335
xor ebx, ebx
mov esi, dword [ebp + 0x34]
mov edi, dword [ebp + 0x30]
ucomiss xmm2, dword [0x103564b8]
jae 0x10296055
mov eax, dword [ebp + 8]
movdqu xmm0, xmmword [eax]
pshufd xmm0, xmm0, 0x44
movdqu xmmword [edi], xmm0
jmp 0x1029617d
movss dword [esp + 0x34], xmm5
mov esi, dword [ebp + 0x2c]
mov eax, esi
and eax, 0x20
shr eax, 5
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
movss dword [esp + 0x24], xmm6
movss dword [esp + 0x20], xmm7
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
call fcn.10299d60
fstp dword [esp + 0x88]
movss xmm0, dword [esp + 0x88]
test esi, 0x100000
je 0x102960d4
movss xmm1, dword [0x103564b8]
subss xmm1, xmm0
movaps xmm0, xmm1
movss xmm3, dword [esp + 0x4c]
movss xmm4, dword [esp + 0x48]
movss xmm2, dword [esp + 0x34]
addss xmm3, dword [0x103598a0]
movaps xmm1, xmm4
addss xmm1, xmm2
subss xmm3, xmm1
mulss xmm3, xmm0
addss xmm3, xmm2
mov esi, dword [ebp + 0x34]
jne 0x10296143
mov eax, dword [ebp + 8]
movss xmm0, dword [eax + 4]
movss xmm1, dword [eax + 0xc]
addss xmm1, dword [0x103598a0]
movaps xmm2, xmm3
addss xmm2, xmm4
addss xmm0, dword [0x1035735c]
subss xmm3, xmm4
movss dword [edi], xmm3
movss dword [edi + 4], xmm0
movss dword [edi + 8], xmm2
movss dword [edi + 0xc], xmm1
jmp 0x1029617d
movaps xmm0, xmm3
addss xmm0, xmm4
mov eax, dword [ebp + 8]
movss xmm1, dword [eax + 8]
addss xmm1, dword [0x103598a0]
movss xmm2, dword [eax]
subss xmm3, xmm4
addss xmm2, dword [0x1035735c]
movss dword [edi], xmm2
movss dword [edi + 4], xmm3
movss dword [edi + 8], xmm1
movss dword [edi + 0xc], xmm0
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
sub eax, dword [ebp + 0x18]
movd xmm0, eax
mov eax, dword [ecx + 4]
sbb eax, dword [ebp + 0x1c]
movd xmm1, eax
movss xmm2, dword [esp + 0x78]
movss xmm3, dword [esp + 0x74]
punpckldq xmm0, xmm1
movq qword [esp + 0xb0], xmm0
fild qword [esp + 0xb0]
fstp dword [esp + 0x84]
movss xmm0, dword [esp + 0x84]
unpcklps xmm2, xmm3
movlps qword [esp + 0xa8], xmm2
fild qword [esp + 0xa8]
fstp dword [esp + 0x80]
mulss xmm0, dword [0x10357350]
divss xmm0, dword [esp + 0x80]
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp dword [esp + 0x7c]
cvttss2si eax, dword [esp + 0x7c]
mov dword [esi], eax
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movss dword [esp + 0x2c], xmm7
movss dword [esp + 0x30], xmm6
movss dword [esp + 0x3c], xmm2
movss dword [esp + 0x34], xmm5
cmp byte [esi + 0x19fc], 0
je 0x10296243
mov dword [esi + 0x19d4], 0
mov byte [esi + 0x19d8], 0
movaps xmm0, xmmword [0x10362610]
movups xmmword [esp + 4], xmm0
lea eax, [esp + 0xa0]
mov dword [esp], eax
call fcn.10253a20
test ebx, 0x100000
je 0x10296278
movss xmm0, dword [esp + 0xa4]
xorps xmm0, xmmword [0x10357340]
jmp 0x10296281
movss xmm0, dword [esp + 0xa0]
movss xmm5, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
movss xmm6, dword [esp + 0x30]
movss xmm7, dword [esp + 0x2c]
mov ebx, dword [esp + 0x40]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
je 0x10296341
cmp dword [esp + 0x50], 8
jne 0x10296446
mov ecx, dword [ebp + 0x28]
jmp 0x102962d3
movzx eax, byte [ecx + 1]
mov edx, 2
cmp al, 0x25
jne 0x10296351
add ecx, edx
movzx eax, byte [ecx]
cmp al, 0x25
je 0x102962c0
mov edx, 1
test al, al
jne 0x102962d1
mov eax, dword [0x1042dd60]
xorps xmm1, xmm1
xor ecx, ecx
ucomiss xmm1, dword [eax + 0x338]
setb cl
mulss xmm0, dword [ecx*4 + 0x10362620]
jmp 0x102964b8
movss dword [esp + 0x30], xmm6
movss dword [esp + 0x2c], xmm7
call fcn.1023c720
movss xmm7, dword [esp + 0x2c]
movss xmm6, dword [esp + 0x30]
movss xmm2, dword [esp + 0x3c]
movss xmm5, dword [esp + 0x34]
xor ebx, ebx
jmp 0x10296031
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov bl, 1
jmp 0x10296031
movss xmm2, dword [ecx + 0x19d4]
mov ebx, dword [ebp + 0x14]
jmp 0x102964f7
mov edx, eax
add dl, 0xd0
cmp dl, 9
ja 0x10296371
nop dword [eax + eax]
movzx eax, byte [ecx + 2]
add ecx, 1
mov edx, eax
add dl, 0xd0
cmp dl, 0xa
jb 0x10296360
mov edx, Ordinal_2
cmp al, 0x2e
jne 0x1029640c
mov al, byte [ecx + 2]
xor ebx, ebx
mov byte [esp + 0x50], al
cmp al, 0x2d
sete bl
lea esi, [ecx + ebx]
add esi, 2
xor edx, edx
cmp byte [ecx + ebx + 2], 0x2b
sete dl
mov al, byte [edx + esi]
mov ah, al
add ah, 0xd0
xor esi, esi
cmp ah, 9
ja 0x102963f1
add edx, ebx
add ecx, edx
add ecx, 3
xor esi, esi
mov ebx, dword [esp + 0x40]
nop dword [eax + eax]
movzx eax, al
lea edx, [esi + esi*4]
lea esi, [eax + edx*2]
add esi, 0xffffffd0
movzx eax, byte [ecx]
mov edx, eax
add dl, 0xd0
add ecx, 1
cmp dl, 0xa
jb 0x102963c0
jmp 0x102963f5
cmp edx, 0x7fffffff
mov eax, 3
cmove edx, eax
jmp 0x10295ea2
mov ebx, dword [esp + 0x40]
mov ecx, esi
neg ecx
cmp byte [esp + 0x50], 0x2d
cmovne ecx, esi
cmp ecx, 0x64
mov edx, 3
cmovb edx, ecx
cmp al, 0x45
je 0x10296446
cmp al, 0x65
je 0x10296446
cmp al, 0x67
jne 0x10296429
add edx, 0xffffffff
cmp edx, 0x7ffffffd
jbe 0x102962e3
jmp 0x10296446
cmp al, 0x47
setne al
cmp edx, 0x7fffffff
setne cl
or cl, al
cmp cl, 1
jne 0x10296446
test edx, edx
jg 0x102962e3
movd xmm1, ebx
movd xmm2, edi
punpckldq xmm1, xmm2
movq qword [esp + 0xb8], xmm1
fild qword [esp + 0xb8]
fstp dword [esp + 0x94]
movss xmm1, dword [esp + 0x94]
add ebx, 0x64
adc edi, 0
cmp ebx, 0xc9
sbb edi, 0
mov eax, dword [0x1042dd60]
jb 0x10296495
pxor xmm2, xmm2
ucomiss xmm2, dword [eax + 0x338]
jae 0x102964b0
pxor xmm2, xmm2
xor ecx, ecx
ucomiss xmm0, xmm2
setb cl
movss xmm0, dword [ecx*4 + 0x10360dd8]
divss xmm0, xmm1
jmp 0x102964b8
mulss xmm0, dword [0x10357354]
mov ebx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x38]
movss xmm1, dword [0x10357330]
xorps xmm2, xmm2
cmpltss xmm2, dword [eax + 0x33c]
mulss xmm1, xmm0
andps xmm1, xmm2
andnps xmm2, xmm0
orps xmm2, xmm1
addss xmm2, dword [ecx + 0x19d4]
movss dword [ecx + 0x19d4], xmm2
mov byte [ecx + 0x19d8], 1
mov eax, dword [ebp + 0xc]
cmp dword [ecx + 0x1ae4], eax
jne 0x1029650f
cmp byte [ecx + 0x19fc], 0
je 0x102965d5
cmp byte [ecx + 0x19d8], 0
je 0x102965ec
mov esi, dword [ebp + 0x2c]
and esi, 0x20
shr esi, 5
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
movss dword [esp + 0x24], xmm6
movss dword [esp + 0x20], xmm7
mov dword [esp + 0x1c], esi
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
movaps xmmword [esp + 0x50], xmm2
call fcn.10299d60
movaps xmm1, xmmword [esp + 0x50]
fstp dword [esp + 0x90]
movss xmm2, dword [esp + 0x90]
ucomiss xmm2, dword [0x103564b8]
jb 0x10296594
xorps xmm0, xmm0
ucomiss xmm1, xmm0
ja 0x102965a1
xorps xmm0, xmm0
ucomiss xmm2, xmm0
ja 0x102965f9
ucomiss xmm1, xmm0
jae 0x102965f9
mov eax, dword [esp + 0x38]
mov dword [eax + 0x19d4], 0
mov byte [eax + 0x19d8], 0
xor ebx, ebx
movss xmm5, dword [esp + 0x34]
movss xmm2, dword [esp + 0x3c]
movss xmm6, dword [esp + 0x30]
movss xmm7, dword [esp + 0x2c]
jmp 0x10296031
call fcn.1023c720
movss xmm7, dword [esp + 0x2c]
movss xmm6, dword [esp + 0x30]
movss xmm5, dword [esp + 0x34]
xor ebx, ebx
movss xmm2, dword [esp + 0x3c]
jmp 0x10296031
movss dword [esp + 0x44], xmm2
addss xmm2, xmm1
minss xmm2, dword [0x103564b8]
maxss xmm2, xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [esp + 0x1c], xmm0
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov dword [esp + 0x18], esi
movss dword [esp + 0x40], xmm2
movss dword [esp + 4], xmm2
call fcn.1029a260
mov edi, dword [ebp + 0x2c]
and edi, 0x40
jne 0x10296680
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x28]
mov dword [esp], eax
call fcn.102992d0
mov ecx, dword [ebp + 0x10]
movss xmm0, dword [esp + 0x30]
movss xmm1, dword [esp + 0x2c]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp + 0x1c], esi
movss dword [esp + 0x24], xmm0
movss dword [esp + 0x20], xmm1
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp], ecx
call fcn.10299d60
movss xmm7, dword [esp + 0x2c]
movss xmm6, dword [esp + 0x30]
fstp dword [esp + 0x8c]
movss xmm0, dword [esp + 0x8c]
subss xmm0, dword [esp + 0x44]
movaps xmm1, xmm0
movaps xmm3, xmmword [esp + 0x50]
maxss xmm1, xmm3
minss xmm0, xmm3
xorps xmm2, xmm2
cmpltss xmm2, xmm3
andps xmm0, xmm2
andnps xmm2, xmm1
orps xmm2, xmm0
mov eax, dword [esp + 0x38]
movss xmm0, dword [eax + 0x19d4]
subss xmm0, xmm2
movss dword [eax + 0x19d4], xmm0
mov byte [eax + 0x19d8], 0
mov eax, dword [ebp + 0x2c]
movss xmm0, dword [esp + 0x40]
jmp 0x10295f9c