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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1c30
call fcn.100563c0
mov eax, dword [0x100c39bc]
push ebx
push ebp
mov ebp, 1
push esi
push edi
mov dword [esp + 0x18], ebp
cmp dword [eax + 0x18], ebp
jl 0x100082cb
xor ebx, ebx
nop dword [eax]
mov ecx, dword [0x100c39c0]
mov eax, dword [ecx]
call dword [eax + 0x30]
cmp ebp, eax
je 0x100082d7
mov ecx, dword [0x100c39c4]
push ebp
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebp, eax
test ebp, ebp
je 0x100082d3
mov edx, dword [ebp + 8]
lea ecx, [ebp + 8]
call dword [edx + 0x28]
test eax, eax
jle 0x100082d3
mov ecx, dword [0x100c39bc]
cmp eax, dword [ecx + 0x18]
jg 0x100082b6
mov eax, dword [ebp]
mov ecx, ebp
mov eax, dword [eax + 0x260]
call eax
test al, al
je 0x100082d3
mov ecx, ebp
call fcn.10052970
test al, al
je 0x100082d3
mov eax, dword [ebp + 8]
lea ecx, [ebp + 8]
mov eax, dword [eax + 0x24]
call eax
test al, al
jne 0x100082d3
mov eax, dword [ebp + 0x3874]
mov dword [esp + 0x40], eax
test eax, eax
je 0x100082d3
cmp dword [ebx + 0x100c7760], 0
je 0x1000796b
mov esi, dword [ebx + 0x100c7758]
mov ecx, ebp
mov eax, dword [ebx + 0x100c7754]
dec esi
and esi, dword [ebx + 0x100c775c]
mov esi, dword [eax + esi*4]
call fcn.10006a20
movss xmm0, dword [esi + 4]
mov byte [esp + 0x17], 0
ucomiss xmm0, dword [eax]
lahf
test ah, 0x44
jnp 0x10007970
mov byte [esp + 0x17], 1
cmp dword [ebx + 0x100c7760], 0
je 0x100079e3
mov ecx, dword [ebx + 0x100c7758]
mov eax, dword [ebx + 0x100c7754]
dec ecx
and ecx, dword [ebx + 0x100c775c]
mov esi, dword [eax + ecx*4]
mov ecx, ebp
call fcn.10006a20
movss xmm0, dword [esi + 4]
comiss xmm0, dword [eax]
jbe 0x100079a8
movss dword [ebx + 0x100c3a50], xmm0
mov eax, dword [ebp + 0x2970]
movss xmm0, dword [eax + 0x294]
ucomiss xmm0, dword [esi + 0x374]
lahf
test ah, 0x44
jp 0x100079e3
movss xmm0, dword [esi + 4]
mov ecx, ebp
movss dword [esp + 0x20], xmm0
call fcn.10006a20
movss xmm0, dword [esp + 0x20]
movss dword [eax], xmm0
xor al, al
jmp 0x100079e7
mov al, byte [esp + 0x17]
test al, al
je 0x100082d3
push ebp
lea ecx, [esp + 0x88]
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
call fcn.10006e40
mov eax, dword [ebx + 0x100c7760]
mov ecx, dword [ebx + 0x100c7758]
inc eax
cmp ecx, eax
ja 0x10007b27
push ecx
lea ecx, [ebx + 0x100c7750]
call fcn.10008330
mov ecx, dword [ebx + 0x100c7758]
lea eax, [ecx - 1]
mov esi, eax
and esi, dword [ebx + 0x100c775c]
mov dword [ebx + 0x100c775c], esi
cmove esi, ecx
lea edi, [esi - 1]
and edi, eax
mov eax, dword [ebx + 0x100c7754]
cmp dword [eax + edi*4], 0
jne 0x10007b79
push 0x1bdf
call fcn.10055035
add esp, 4
test eax, eax
je 0x100082df
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
mov eax, dword [ebx + 0x100c7754]
mov dword [eax + edi*4], ecx
mov eax, dword [ebx + 0x100c7754]
push 0x1bbc
lea ecx, [esp + 0x88]
push ecx
push dword [eax + edi*4]
call fcn.10056e20
inc dword [ebx + 0x100c7760]
lea eax, [esi - 1]
mov dword [ebx + 0x100c775c], eax
add esp, 0xc
mov ecx, dword [ebx + 0x100c7758]
dec ecx
and ecx, eax
cmp dword [ebx + 0x100c7760], 2
mov eax, dword [ebx + 0x100c7754]
mov edi, dword [eax + ecx*4]
jb 0x10007be5
mov eax, dword [ebx + 0x100c7750]
test eax, eax
je 0x10007bd5
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, esi
mov esi, dword [eax + ecx*4]
jmp 0x10007be7
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, esi
mov esi, dword [eax + ecx*4]
jmp 0x10007be7
xor esi, esi
mov ecx, ebp
mov dword [esp + 0x20], esi
call fcn.10006b90
mov ecx, ebp
mov eax, dword [eax]
mov dword [esp + 0x48], eax
mov eax, dword [ebp]
call dword [eax + 0x28]
mov ecx, ebp
movq xmm0, qword [eax]
movq qword [esp + 0x78], xmm0
mov eax, dword [eax + 8]
mov dword [esp + 0x80], eax
call fcn.10006da0
mov ecx, ebp
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0x54], xmm0
mov dword [esp + 0x5c], eax
call fcn.10006730
mov ecx, ebp
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0x60], xmm0
mov dword [esp + 0x68], eax
call fcn.10006c30
push ebp
mov ecx, edi
movss xmm0, dword [eax]
mov eax, dword [0x100c39bc]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [eax + 0x10]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [eax + 0x14]
movss dword [esp + 0x54], xmm0
call fcn.10006e40
movss xmm4, dword [edi + 4]
comiss xmm4, dword [ebx + 0x100c3a50]
seta al
mov byte [edi + 0x1bb8], al
test esi, esi
je 0x10008157
movss xmm3, dword [edi + 0x24]
movss xmm1, dword [edi + 0x28]
movaps xmm2, xmm3
subss xmm1, dword [esi + 0x28]
subss xmm2, dword [esi + 0x24]
movss xmm0, dword [edi + 0x2c]
subss xmm0, dword [esi + 0x2c]
mulss xmm1, xmm1
mulss xmm2, xmm2
mulss xmm0, xmm0
addss xmm1, xmm2
addss xmm1, xmm0
comiss xmm1, dword [0x100b9b9c]
jbe 0x10007d1c
mov edx, dword [ebx + 0x100c775c]
mov eax, dword [ebx + 0x100c7760]
add eax, edx
mov dword [esp + 0x1c], eax
cmp edx, eax
je 0x10007d1c
mov esi, eax
nop dword [eax + eax]
mov ecx, dword [ebx + 0x100c7758]
mov eax, dword [ebx + 0x100c7754]
dec ecx
and ecx, edx
inc edx
mov eax, dword [eax + ecx*4]
mov byte [eax + 0x1bb8], 0
cmp edx, esi
jne 0x10007cf0
mov esi, dword [esp + 0x20]
movss xmm4, dword [edi + 4]
movss xmm3, dword [edi + 0x24]
movss xmm0, dword [esi + 4]
mov edx, 1
mov ecx, dword [0x100c39bc]
addss xmm0, dword [ecx + 0x20]
movss dword [edi + 8], xmm0
subss xmm4, dword [esi + 4]
divss xmm4, dword [ecx + 0x20]
addss xmm4, dword [0x100b9a18]
cvttss2si eax, xmm4
cmp eax, 1
cmovl eax, edx
mov dword [edi + 0xdc], eax
subss xmm3, dword [esi + 0x24]
movss xmm2, dword [edi + 0x28]
subss xmm2, dword [esi + 0x28]
movss xmm1, dword [edi + 0x2c]
subss xmm1, dword [esi + 0x2c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [ecx + 0x20]
divss xmm3, xmm0
divss xmm2, xmm0
divss xmm1, xmm0
movss dword [edi + 0xc], xmm3
addss xmm3, dword [edi + 0x30]
movss dword [edi + 0x10], xmm2
addss xmm2, dword [edi + 0x34]
movss dword [edi + 0x14], xmm1
addss xmm1, dword [edi + 0x38]
movss dword [edi + 0x30], xmm3
movss dword [edi + 0x34], xmm2
movss dword [edi + 0x38], xmm1
movd xmm0, dword [edi + 0xdc]
subss xmm3, dword [esi + 0x30]
subss xmm2, dword [esi + 0x34]
subss xmm1, dword [esi + 0x38]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [ecx + 0x20]
mov ecx, ebp
divss xmm3, xmm0
divss xmm2, xmm0
divss xmm1, xmm0
movss dword [edi + 0x18], xmm3
movss dword [edi + 0x1c], xmm2
movss dword [edi + 0x20], xmm1
call fcn.10006b90
and dword [eax], 0x1000
mov ecx, dword [edi + 0xdc]
cmp ecx, 1
jle 0x10008164
movq xmm0, qword [edi + 0x18]
mov eax, dword [edi + 0x20]
movq qword [esp + 0x28], xmm0
movq xmm0, qword [edi + 0xc]
movss xmm2, dword [esp + 0x28]
subss xmm2, dword [esi + 0x18]
movss xmm1, dword [esp + 0x2c]
subss xmm1, dword [esi + 0x1c]
movq qword [esp + 0x34], xmm0
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x14]
movd xmm0, ecx
mov ecx, edi
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x3c], eax
mov eax, dword [0x100c39bc]
movss xmm6, dword [esp + 0x30]
mulss xmm0, dword [eax + 0x20]
subss xmm6, dword [esi + 0x20]
movss xmm3, dword [esp + 0x34]
divss xmm2, xmm0
divss xmm1, xmm0
subss xmm3, dword [esi + 0xc]
movss dword [esp + 0x1c], xmm2
movss xmm2, dword [esp + 0x38]
subss xmm2, dword [esi + 0x10]
movss dword [esp + 0x24], xmm1
movss xmm1, dword [esp + 0x3c]
subss xmm1, dword [esi + 0x14]
divss xmm6, xmm0
divss xmm3, xmm0
addss xmm6, dword [esi + 0x20]
divss xmm2, xmm0
divss xmm1, xmm0
movss xmm0, dword [esp + 0x1c]
addss xmm0, dword [esi + 0x18]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x24]
addss xmm0, dword [esi + 0x1c]
movss xmm4, dword [esp + 0x1c]
movss dword [edi + 0x18], xmm4
movss dword [edi + 0x20], xmm6
movss dword [edi + 0x1c], xmm0
addss xmm3, dword [esi + 0xc]
addss xmm2, dword [esi + 0x10]
addss xmm1, dword [esi + 0x14]
movss dword [edi + 0xc], xmm3
movss dword [edi + 0x10], xmm2
movss dword [edi + 0x14], xmm1
call fcn.10007170
movd xmm0, dword [edi + 0xdc]
mov ecx, ebp
mov eax, dword [0x100c39bc]
movss xmm2, dword [edi + 0x6c]
subss xmm2, dword [esi + 0x6c]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
divss xmm2, xmm0
addss xmm2, dword [esi + 0x6c]
movss dword [esp + 0x24], xmm2
call fcn.10006c30
movss xmm0, dword [esp + 0x24]
mov ecx, ebp
movss dword [eax], xmm0
call fcn.10006da0
mov ecx, dword [edi + 0x18]
mov dword [eax], ecx
mov ecx, dword [edi + 0x1c]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 0x20]
mov dword [eax + 8], ecx
mov ecx, ebp
call fcn.10006730
mov ecx, dword [edi + 0xc]
mov edx, esi
mov dword [eax], ecx
mov ecx, dword [edi + 0x10]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 0x14]
mov dword [eax + 8], ecx
mov ecx, edi
call fcn.10007670
mov ecx, dword [edi]
add ecx, 8
mov eax, dword [ecx]
call dword [eax + 0x28]
movd xmm0, dword [edi + 0xdc]
mov esi, eax
mov eax, dword [0x100c39bc]
sub esp, 0xc
movss xmm3, dword [0x100b9a58]
mov ecx, esp
cvtdq2ps xmm0, xmm0
sub esp, 0xc
mulss xmm0, dword [eax + 0x20]
mov eax, dword [edi + 0x20]
divss xmm3, xmm0
movq xmm0, qword [edi + 0x18]
mulss xmm3, dword [0x100b9b8c]
movq qword [ecx], xmm0
movq xmm0, qword [edi + 0xc]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [edi + 0x14]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea ecx, [esp + 0x84]
call fcn.10011460
movss xmm1, dword [esp + 0x88]
lea esi, [esi + esi*4]
movss xmm0, dword [esp + 0x84]
add esp, 0x18
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10003db0
comiss xmm0, dword [0x100b99a8]
jb 0x1000804b
movss xmm0, dword [edi + 8]
addss xmm0, dword [0x100b99f8]
mov dword [esi*4 + 0x100c3a4c], 0
mov dword [esi*4 + 0x100c3a48], 0
movss dword [esi*4 + 0x100c3a44], xmm0
movss xmm0, dword [edi + 0x70]
jmp 0x1000810e
mov eax, dword [esp + 0x20]
movss xmm0, dword [edi + 0x70]
movss xmm1, dword [eax + 0x70]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100080d7
mov eax, dword [esi*4 + 0x100c3a4c]
test eax, eax
jne 0x100080b2
movss xmm2, dword [0x100b9bf8]
subss xmm0, xmm1
movss xmm1, dword [0x100b9b68]
comiss xmm2, xmm0
jbe 0x1000808f
addss xmm0, xmm1
comiss xmm2, xmm0
ja 0x10008086
movss xmm2, dword [0x100b9b58]
comiss xmm0, xmm2
jbe 0x100080a9
nop dword [eax]
subss xmm0, xmm1
comiss xmm0, xmm2
ja 0x100080a0
movss dword [esi*4 + 0x100c3a48], xmm0
movss xmm0, dword [edi + 8]
inc eax
addss xmm0, dword [0x100b9a5c]
mov dword [esi*4 + 0x100c3a4c], eax
movss dword [esi*4 + 0x100c3a44], xmm0
movss xmm0, dword [edi + 0x70]
jmp 0x1000810e
movss xmm1, dword [edi + 8]
comiss xmm1, dword [esi*4 + 0x100c3a44]
jb 0x10008105
addss xmm1, dword [0x100b9a5c]
inc dword [esi*4 + 0x100c3a4c]
movss dword [esi*4 + 0x100c3a44], xmm1
movss xmm0, dword [edi + 0x70]
jmp 0x1000810e
subss xmm0, dword [esi*4 + 0x100c3a48]
movss dword [edi + 0x40], xmm0
movss xmm0, dword [esp + 0x28]
movss dword [edi + 0x18], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [edi + 0x1c], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [edi + 0x20], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [edi + 0xc], xmm0
movss xmm0, dword [esp + 0x38]
movss dword [edi + 0x10], xmm0
movss xmm0, dword [esp + 0x3c]
movss dword [edi + 0x14], xmm0
jmp 0x10008164
mov ecx, ebp
call fcn.10006b90
and dword [eax], 0x1000
mov edx, dword [esp + 0x40]
mov ecx, dword [0x100c39bc]
mov eax, dword [edx + 0x70]
cmp eax, dword [ecx + 4]
jne 0x1000817a
dec eax
mov dword [edx + 0x70], eax
mov eax, dword [edi + 8]
mov dword [ecx + 0x10], eax
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x14], eax
mov ecx, ebp
call fcn.100062f0
mov ecx, dword [edi + 0x3c]
mov dword [eax], ecx
mov ecx, dword [edi + 0x40]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 0x44]
mov dword [eax + 8], ecx
mov ecx, ebp
call dword [0x100c3f64]
lea eax, [edi + 0x74]
mov ecx, ebp
push eax
call fcn.10052590
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x2c]
mov ecx, dword [eax]
mov dword [edi + 0x48], ecx
mov ecx, dword [eax + 4]
mov dword [edi + 0x4c], ecx
mov ecx, ebp
mov eax, dword [eax + 8]
mov dword [edi + 0x50], eax
lea eax, [edi + 0x24]
push eax
call fcn.10004550
lea eax, [edi + 0xe0]
mov ecx, ebp
push eax
call fcn.10052920
movss xmm0, dword [edi + 4]
lea edx, [edi + 0x3b8]
sub esp, 0xc
mov ecx, ebp
movss dword [esp + 8], xmm0
call fcn.10015f20
add esp, 0xc
mov ecx, ebp
call fcn.10006c30
movss xmm0, dword [esp + 0x44]
mov ecx, dword [0x100c2ee8]
movss dword [eax], xmm0
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x100c39f4]
cmp eax, dword [ecx + 4]
jg 0x100082e4
lea eax, [esp + 0x78]
mov ecx, ebp
push eax
call dword [0x100c3a04]
mov ecx, ebp
call fcn.10006da0
movss xmm0, dword [esp + 0x54]
mov ecx, ebp
movss dword [eax], xmm0
movss xmm0, dword [esp + 0x58]
movss dword [eax + 4], xmm0
movss xmm0, dword [esp + 0x5c]
movss dword [eax + 8], xmm0
call fcn.10006730
movss xmm0, dword [esp + 0x60]
mov ecx, ebp
movss dword [eax], xmm0
movss xmm0, dword [esp + 0x64]
movss dword [eax + 4], xmm0
movss xmm0, dword [esp + 0x68]
movss dword [eax + 8], xmm0
call fcn.10006b90
mov ecx, dword [esp + 0x48]
movss xmm0, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [0x100c39bc]
movss dword [ecx + 0x10], xmm0
movss xmm0, dword [esp + 0x50]
movss dword [ecx + 0x14], xmm0
mov ebp, dword [esp + 0x18]
inc ebp
add ebx, 0x14
mov dword [esp + 0x18], ebp
cmp ebp, dword [ecx + 0x18]
jle 0x100078a0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ebp, dword [esp + 0x18]
mov ecx, dword [0x100c39bc]
jmp 0x100082ba
call fcn.10059ddf
push 0x100c39f4
call fcn.1005566c
add esp, 4
cmp dword [0x100c39f4], 0xffffffff
jne 0x10008232
mov edx, str.55_8B_EC_83_E4_F8_51_53_56_57_8B_F1_E8
mov ecx, 0x100b75f8
call fcn.100121d0
push 0x100c39f4
mov dword [0x100c3a04], eax
call fcn.10055622
add esp, 4
jmp 0x10008232