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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xf0
mov edx, dword [ebp + 0x20]
mov ecx, dword [ebp + 8]
mov eax, dword [0x10258d1c]
xor eax, ebp
mov dword [esp + 0xe8], eax
mov eax, ecx
and eax, 0xfffffffe
mov dword [esp + 0x44], eax
cmp eax, 4
sete byte [esp + 0x20]
xor edx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x1c]
xor esi, dword [ebp + 0x14]
mov eax, esi
or eax, edx
movss xmm0, dword [ebp + 0x28]
setne byte [esp + 0x40]
ucomiss xmm0, dword [0x101a6280]
movss xmm3, dword [ebp + 0x10]
xorps xmm0, xmm0
setp byte [esp + 0x80]
setne byte [esp + 0x60]
ucomiss xmm3, xmm0
mov edi, dword [ebp + 0x2c]
mov ebx, dword [0x10258f60]
jne 0x10077713
jp 0x10077713
mov eax, esi
or eax, edx
je 0x10077713
mov eax, dword [ebp + 0x1c]
sub eax, dword [ebp + 0x14]
movd xmm0, eax
mov eax, dword [ebp + 0x20]
sbb eax, dword [ebp + 0x18]
movd xmm1, eax
punpckldq xmm0, xmm1
movq qword [esp + 0xd8], xmm0
fild qword [esp + 0xd8]
fnstcw word [esp + 0x1e]
movzx ecx, word [esp + 0x1e]
or ecx, 0x300
mov word [esp + 0x4e], cx
fldcw word [esp + 0x4e]
shr eax, 0x1f
fadd dword [eax*4 + 0x101a6288]
fldcw word [esp + 0x1e]
fstp dword [esp + 0x9c]
movss xmm3, dword [ebx + 0x2c60]
mulss xmm3, dword [esp + 0x9c]
and edi, 1
mov eax, dword [ebx + 0x1a34]
cmp eax, 1
mov dword [esp + 0x3c], edx
mov dword [esp + 0x14], esi
movaps xmmword [esp + 0x50], xmm3
jne 0x100777ac
mov esi, edx
mov dword [esp], 0
call fcn.1004db80
test al, al
je 0x1007779b
movss xmm0, dword [ebx + 0x434]
ucomiss xmm0, dword [0x101a6280]
jbe 0x1007779b
mov eax, ebx
movss xmm2, dword [ebx + edi*4 + 0x370]
cmp byte [ebx + 0xfa], 0
je 0x1007776d
mulss xmm2, dword [0x101aeb90]
mov edx, esi
mov esi, dword [esp + 0x14]
movzx eax, byte [esp + 0x20]
mov ah, byte [esp + 0x60]
movaps xmm3, xmmword [esp + 0x50]
cmp byte [ebx + 0xf9], 0
je 0x100778de
mulss xmm2, dword [0x101a79bc]
jmp 0x100778de
mov eax, dword [ebx + 0x1a34]
mov edx, esi
mov esi, dword [esp + 0x14]
movaps xmm3, xmmword [esp + 0x50]
xorps xmm2, xmm2
cmp eax, 2
jne 0x10077811
cmp dword [esp + 0x44], 4
jne 0x1007781f
mov eax, dword [ebp + 0x24]
mov dword [esp], eax
mov dword [esp + 4], 3
call fcn.1007da90
mov esi, eax
movaps xmm0, xmmword [0x101aed10]
movups xmmword [esp + 4], xmm0
lea eax, [esp + 0xe0]
mov dword [esp], eax
call fcn.1005cd30
movss xmm2, dword [esp + edi*4 + 0xe0]
test esi, esi
js 0x10077866
cmp esi, 9
ja 0x10077870
mov edx, dword [esp + 0x3c]
movzx eax, byte [esp + 0x20]
mov ah, byte [esp + 0x60]
movaps xmm3, xmmword [esp + 0x50]
jmp 0x10077857
movzx eax, byte [esp + 0x20]
mov ah, byte [esp + 0x60]
jmp 0x100778de
movaps xmm0, xmmword [0x101aed10]
movups xmmword [esp + 4], xmm0
lea eax, [esp + 0xe0]
mov dword [esp], eax
mov esi, edx
call fcn.1005cd30
movaps xmm3, xmmword [esp + 0x50]
mov edx, esi
movss xmm2, dword [esp + edi*4 + 0xe0]
xor esi, esi
movzx eax, byte [esp + 0x20]
mov ah, byte [esp + 0x60]
movss xmm0, dword [esi*4 + 0x101ae9c4]
mov esi, dword [esp + 0x14]
jmp 0x100778cd
movss xmm0, dword [0x101aed20]
jmp 0x100778b7
neg esi
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
cvtss2sd xmm0, xmm0
movsd qword [esp + 8], xmm0
mov dword [esp + 4], 0x40240000
mov dword [esp], 0
movaps xmmword [esp + 0xa0], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm2, xmmword [esp + 0xa0]
fstp dword [esp + 0x98]
movss xmm0, dword [esp + 0x98]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
movzx eax, byte [esp + 0x20]
mov ah, byte [esp + 0x60]
movaps xmm3, xmmword [esp + 0x50]
movaps xmm1, xmm0
cmpless xmm1, xmm3
andps xmm3, xmm1
andnps xmm1, xmm0
orps xmm3, xmm1
or ah, byte [esp + 0x80]
and al, byte [esp + 0x40]
mulss xmm2, xmm3
test edi, edi
je 0x100778f8
xorps xmm2, xmmword [0x101a77e0]
mov edi, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0xc]
and al, ah
mov byte [esp + 0x20], al
mov eax, esi
or eax, edx
jne 0x1007790e
xor eax, eax
jmp 0x1007793c
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
cmp edx, edi
mov eax, ecx
sbb eax, dword [ebp + 0x20]
jb 0x10077926
mov al, 1
xorps xmm0, xmm0
ucomiss xmm2, xmm0
ja 0x1007793c
cmp dword [ebp + 0x14], edx
mov eax, dword [ebp + 0x18]
sbb eax, ecx
setae cl
xorps xmm0, xmm0
ucomiss xmm0, xmm2
seta al
and al, cl
movzx ecx, byte [ebx + 0x1a14]
cmp byte [esp + 0x20], 0
je 0x10077970
xorps xmm0, xmm0
ucomiss xmm0, xmm2
jbe 0x1007795f
movss xmm1, dword [ebx + 0x2c5c]
ucomiss xmm1, xmm0
ja 0x100779a9
ucomiss xmm2, xmm0
jbe 0x10077970
ucomiss xmm0, dword [ebx + 0x2c5c]
seta dl
jmp 0x10077972
xor edx, edx
test cl, cl
setne cl
or cl, al
jne 0x100779a9
test dl, dl
jne 0x100779a9
xorps xmm0, xmm0
ucomiss xmm2, xmm0
jne 0x10077989
jnp 0x100779bf
movss xmm0, dword [ebx + 0x2c5c]
addss xmm0, xmm2
movss dword [ebx + 0x2c5c], xmm0
mov byte [ebx + 0x2c58], 1
mov eax, dword [ebp + 0xc]
jmp 0x100779cf
mov dword [ebx + 0x2c5c], 0
mov byte [ebx + 0x2c58], 0
jmp 0x10077e09
cmp byte [ebx + 0x2c58], 0
mov eax, dword [ebp + 0xc]
je 0x10077e09
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp byte [esp + 0x20], 0
movaps xmmword [esp + 0xa0], xmm2
je 0x10077c6f
movss xmm0, dword [ebp + 0x28]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0xb0], xmm0
movsd xmm2, qword [0x101aed40]
divsd xmm2, xmm0
mov edx, dword [ebp + 0x14]
sub ecx, edx
mov edx, dword [ebp + 0x18]
sbb eax, edx
movd xmm1, ecx
movd xmm0, eax
punpckldq xmm1, xmm0
movdqa xmm3, xmmword [0x101aed50]
punpckldq xmm1, xmm3
movapd xmm4, xmmword [0x101aed60]
subpd xmm1, xmm4
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
mov esi, ebx
sub edi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x20]
sbb ebx, edx
mov dword [esp + 0x88], edi
movd xmm5, edi
movd xmm1, ebx
punpckldq xmm5, xmm1
movdqa xmmword [esp + 0x20], xmm5
movdqa xmm1, xmm5
punpckldq xmm1, xmm3
subpd xmm1, xmm4
movapd xmm3, xmm1
unpckhpd xmm3, xmm1
addsd xmm3, xmm1
movapd xmmword [esp + 0x60], xmm3
divsd xmm0, xmm3
movsd qword [esp + 0x80], xmm2
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
fstp qword [esp + 0xc0]
movsd xmm1, qword [esp + 0xc0]
movss xmm0, dword [esi + 0x2c5c]
movaps xmm2, xmmword [esp + 0x20]
movlps qword [esp + 0xc8], xmm2
mov eax, ebx
fild qword [esp + 0xc8]
fnstcw word [esp + 0x1c]
movzx ecx, word [esp + 0x1c]
or ecx, 0x300
mov word [esp + 0x4c], cx
fldcw word [esp + 0x4c]
shr eax, 0x1f
fadd dword [eax*4 + 0x101a6288]
fldcw word [esp + 0x1c]
mov dword [esp + 0x20], esi
lea eax, [esi + 0x2c5c]
mov dword [esp + 0x40], eax
fstp dword [esp + 0x90]
divss xmm0, dword [esp + 0x90]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x50], xmm1
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss xmm1, dword [0x101a6280]
minss xmm1, xmm0
xorps xmm2, xmm2
cmpltss xmm0, xmm2
andnps xmm0, xmm1
cvtss2sd xmm0, xmm0
movsd xmm1, qword [esp + 0xb0]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
fstp dword [esp + 0x8c]
movss xmm0, dword [esp + 0x8c]
movss xmm1, dword [0x101aed48]
ucomiss xmm0, xmm1
jae 0x10077b75
xorps xmm1, xmm1
subss xmm0, xmm1
movss dword [esp + 0x70], xmm0
setae al
fld dword [esp + 0x70]
fnstcw word [esp + 0x1a]
movzx ecx, word [esp + 0x1a]
or ecx, 0xc00
mov word [esp + 0x4a], cx
fldcw word [esp + 0x4a]
fistp qword [esp + 0x70]
fldcw word [esp + 0x1a]
movzx ecx, al
shl ecx, 0x1f
xor ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x88]
imul ecx, eax
mul edi
imul ebx, edi
add ebx, edx
add ebx, ecx
mov ecx, dword [ebp + 0x14]
add eax, ecx
mov edi, dword [ebp + 0x18]
adc ebx, edi
mov edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov edx, dword [ebp + 0x24]
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov ebx, ecx
call fcn.100869a0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x20]
mov byte [eax + 0x2c58], 0
mov dword [esp + 0x20], ecx
sub ecx, ebx
movd xmm0, ecx
mov eax, edx
sbb eax, edi
movd xmm1, eax
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x101aed50]
subpd xmm0, xmmword [0x101aed60]
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
divsd xmm1, qword [esp + 0x60]
movsd xmm0, qword [esp + 0x80]
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
fstp qword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb8]
subsd xmm0, qword [esp + 0x50]
cvtsd2ss xmm0, xmm0
mov edx, dword [ebp + 0xc]
jmp 0x10077d34
lea edx, [ebx + 0x2c5c]
mov dword [esp + 0x40], edx
mov edi, ebx
movss xmm0, dword [ebx + 0x2c5c]
movss xmm1, dword [0x101aed48]
ucomiss xmm1, xmm0
mov ebx, dword [ebp + 0x14]
jbe 0x10077c96
xorps xmm1, xmm1
subss xmm0, xmm1
movss dword [esp + 0x78], xmm0
setbe dl
fld dword [esp + 0x78]
fnstcw word [esp + 0x18]
movzx esi, word [esp + 0x18]
or esi, 0xc00
mov word [esp + 0x48], si
fldcw word [esp + 0x48]
fistp qword [esp + 0x78]
fldcw word [esp + 0x18]
movzx edx, dl
shl edx, 0x1f
xor edx, dword [esp + 0x7c]
add ecx, dword [esp + 0x78]
adc eax, edx
mov edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov edx, dword [ebp + 0x24]
mov dword [esp], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.100869a0
mov esi, edx
mov byte [edi + 0x2c58], 0
mov dword [esp + 0x20], eax
mov edx, dword [ebp + 0xc]
sub eax, dword [edx]
mov ecx, esi
sbb ecx, dword [edx + 4]
movd xmm0, eax
movd xmm1, ecx
punpckldq xmm0, xmm1
movq qword [esp + 0xd0], xmm0
fild qword [esp + 0xd0]
fstp dword [esp + 0x94]
movss xmm0, dword [esp + 0x94]
mov eax, dword [esp + 0x14]
or eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
movss xmm1, dword [eax]
subss xmm1, xmm0
movss dword [eax], xmm1
mov eax, dword [edx]
mov ecx, dword [edx + 4]
movaps xmm1, xmmword [esp + 0xa0]
je 0x10077df3
mov dword [esp + 0x14], eax
mov edx, eax
mov eax, esi
mov esi, dword [esp + 0x20]
xor edx, esi
mov edi, ecx
xor edi, eax
or edi, edx
je 0x10077df9
cmp esi, ebx
mov edx, eax
mov ebx, dword [ebp + 0x18]
sbb edx, ebx
mov edx, dword [ebp + 0x1c]
jb 0x10077db7
mov edi, eax
cmp dword [esp + 0x44], 4
je 0x10077e2f
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x20]
mov edx, ecx
sbb edx, edi
jae 0x10077e37
xorps xmm0, xmm0
ucomiss xmm0, xmm1
mov esi, dword [esp + 0x20]
mov eax, edi
mov edx, dword [ebp + 0x1c]
jbe 0x10077dbc
mov esi, dword [ebp + 0x14]
mov eax, ebx
cmp edx, esi
mov ebx, edx
mov edi, dword [ebp + 0x20]
mov edx, edi
sbb edx, eax
mov edx, ebx
mov ebx, esi
mov esi, eax
mov eax, dword [esp + 0x14]
jb 0x10077ded
cmp dword [esp + 0x44], 4
je 0x10077e01
cmp ebx, eax
mov edx, esi
sbb edx, ecx
jae 0x10077e01
xorps xmm0, xmm0
ucomiss xmm1, xmm0
mov edx, dword [ebp + 0x1c]
jbe 0x10077e01
mov ebx, edx
mov esi, edi
jmp 0x10077e01
mov ebx, dword [esp + 0x20]
jmp 0x10077e01
mov ebx, esi
mov esi, eax
mov eax, dword [esp + 0x14]
xor eax, ebx
xor ecx, esi
or ecx, eax
jne 0x10077e23
xor ebx, ebx
mov ecx, dword [esp + 0xe8]
xor ecx, ebp
call fcn.10155ad1
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
mov dword [eax + 4], esi
mov bl, 1
jmp 0x10077e0b
mov esi, dword [esp + 0x20]
mov eax, edi
jmp 0x10077dbc
mov esi, dword [esp + 0x20]
mov eax, edi
mov edx, dword [ebp + 0x1c]
jmp 0x10077dbc