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

Disassembly:
sub esp, 0xa8
push ebp
mov ebp, dword [esp + 0xb0]
test ebp, ebp
jne 0x109f14be
xor eax, eax
pop ebp
add esp, 0xa8
ret 8
mov eax, dword [edi]
push ebx
push esi
mov ecx, edi
call dword [eax + 0x13c]
mov ebx, eax
mov ecx, dword [ebx + 0x80]
mov dword [esp + 0x40], ecx
mov edx, dword [ebx + 0x84]
mov dword [esp + 0x44], edx
mov eax, dword [ebx + 0x88]
mov dword [esp + 0x48], eax
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
cmp ebx, eax
jne 0x109f1502
fld dword [esp + 0x48]
fadd dword [eax + 0x3f4]
fstp dword [esp + 0x48]
push 0
push 0x3f800000
lea ecx, [esp + 0x84]
call fcn.109927b0
cmp ebp, dword [edi + reloc.ole32.dll_CoCreateGuid]
lea esi, [ebp + 0x80]
jne 0x109f169b
mov ecx, dword [0x10ccacc0]
push ecx
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
push 0x286
lea edx, [esp + 0x48]
push edx
push esi
push edi
lea eax, [esp + 0x90]
push eax
call fcn.10a1d200
mov eax, dword [esp + 0x80]
test eax, eax
je 0x109f1620
cmp eax, ebp
je 0x109f15bb
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
fld dword [eax + 0x3f4]
mov edx, dword [0x10ccacc0]
fld dword [eax + 0x84]
mov ecx, dword [eax + 0x80]
push edx
fstp dword [esp + 0x1c]
push 0x286
fadd dword [eax + 0x88]
mov dword [esp + 0x1c], ecx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
push edi
lea edx, [esp + 0x90]
fstp dword [esp + 0x30]
push edx
call fcn.10a1d200
mov eax, dword [esp + 0x80]
test eax, eax
je 0x109f1620
cmp eax, ebp
je 0x109f1620
fld dword [esi]
fsub dword [ebx + 0x80]
fld dword [esi + 4]
fsub dword [ebx + 0x84]
fld dword [esi + 8]
fsub dword [ebx + 0x88]
fld dword [ebp + 0x268]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
fld st(4)
fmul st(5)
faddp st(1)
fld st(5)
fmul st(6)
faddp st(1)
fdivp st(1)
fcomp dword [0x10c10b08]
fstp st(0)
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 5
fstp st(0)
jp 0x109f17f5
pop esi
pop ebx
xor eax, eax
pop ebp
add esp, 0xa8
ret 8
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
mov ecx, dword [eax + reloc.ole32.dll_CoCreateGuid]
mov edx, dword [edi]
mov dword [edi + reloc.ole32.dll_CoCreateGuid], ecx
mov ecx, edi
call dword [edx + 0x13c]
add eax, 0x80
mov edx, dword [eax]
lea ecx, reloc.ole32.dll_CoCreateGuid
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
add ecx, 0x80
mov eax, dword [ecx]
lea edx, reloc.ole32.dll_CoCreateGuid
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [edi + reloc.ole32.dll_CoCreateGuid]
mov ecx, dword [ecx + 8]
or eax, 0x100
mov dword [edx + 8], ecx
mov dword [edi + reloc.ole32.dll_CoCreateGuid], eax
pop esi
pop ebx
mov eax, 1
pop ebp
add esp, 0xa8
ret 8
mov edx, dword [0x10ccacc0]
push edx
push 0x286
lea eax, [esp + 0x48]
push eax
push esi
push edi
lea ecx, [esp + 0x90]
push ecx
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
call fcn.10a1d200
mov eax, dword [esp + 0x80]
test eax, eax
je 0x109f168a
cmp eax, ebp
je 0x109f168a
fld dword [esi]
fsub dword [ebx + 0x80]
fld dword [esi + 4]
fsub dword [ebx + 0x84]
fld dword [esi + 8]
fsub dword [ebx + 0x88]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp dword [esp + 0x10]
fstp st(0)
fstp st(0)
fstp st(0)
fld dword [esp + 0x10]
fcomp dword [0x10c10eb0]
fnstsw ax
test ah, 0x41
je 0x109f1612
mov ebx, dword [edi + reloc.ole32.dll_CoCreateGuid]
test bl, 1
je 0x109f1734
push 0x10cc1568
mov ecx, ebp
call fcn.10992b40
test eax, eax
jne 0x109f1749
fld dword [esp + 0x10]
fcomp dword [0x10c10eac]
fnstsw ax
test ah, 0x41
je 0x109f1612
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x109f1759
test bl, 4
jne 0x109f17bc
mov ecx, dword [0x10ccacc0]
fld dword [esi + 8]
mov edx, dword [esi]
fld dword [ebp + 0x26c]
mov eax, dword [esi + 4]
fmul dword [0x10c10c54]
push ecx
push 0x286
mov dword [esp + 0x1c], edx
lea edx, [esp + 0x48]
push edx
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
push eax
faddp st(1)
push edi
lea ecx, [esp + 0x90]
push ecx
fstp dword [esp + 0x34]
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
call fcn.10a1d200
mov eax, dword [esp + 0x80]
test eax, eax
je 0x109f168a
cmp eax, ebp
je 0x109f168a
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x109f17d4
test byte [edi + 0x310], 4
je 0x109f1612
fld dword [ebp + 0x268]
fld dword [esp + 0x10]
fdivr st(1)
fmul st(1)
fcomp dword [0x10c10ea8]
fnstsw ax
fstp st(0)
test ah, 5
jnp 0x109f1a42
push fcn.10968f30
push 4
push 0xc
lea edx, [esp + 0x58]
push edx
call fcn.10904bf0
fld dword [ebp + 0x268]
fld dword [ebp + 0x268]
fld st(1)
fadd dword [esi]
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x58], eax
fld st(0)
fadd dword [esi + 4]
fstp dword [esp + 0x2c]
fld dword [esi + 8]
mov ecx, dword [esp + 0x2c]
fstp dword [esp + 0x30]
fld dword [esi]
mov edx, dword [esp + 0x30]
fsub st(2)
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
fstp dword [esp + 0x34]
mov eax, dword [esp + 0x34]
fld dword [esi + 4]
mov dword [esp + 0x64], eax
fsub st(1)
fstp dword [esp + 0x38]
fld dword [esi + 8]
mov ecx, dword [esp + 0x38]
fstp dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
fchs
mov dword [esp + 0x68], ecx
fld dword [esi]
mov dword [esp + 0x6c], edx
fsub st(2)
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
fld dword [esi + 4]
mov dword [esp + 0x4c], eax
fsub st(1)
fstp dword [esp + 0x18]
fld dword [esi + 8]
mov ecx, dword [esp + 0x18]
fstp dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
fxch st(1)
fadd dword [esi]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x70], eax
fadd dword [esi + 4]
lea eax, [esp + 0x4c]
fstp dword [esp + 0x18]
fld dword [esi + 8]
mov ecx, dword [esp + 0x18]
fstp dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
xor esi, esi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], esi
call fcn.10940780
fst dword [esp + 0x20]
fld dword [esp + 0x30]
fmul dword [esp + 0x30]
fld dword [esp + 0x2c]
fmul dword [esp + 0x2c]
faddp st(1)
fld dword [esp + 0x28]
fmul dword [esp + 0x28]
faddp st(1)
fst dword [esp + 0xc]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 0x41
jne 0x109f1926
fstp st(0)
mov dword [esp + 0x10], 1
fld dword [esp + 0xc]
jmp 0x109f1945
fld dword [esp + 0xc]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 5
jp 0x109f1945
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 1
fld dword [esp + 0x3c]
fmul dword [esp + 0x3c]
fld dword [esp + 0x38]
fmul dword [esp + 0x38]
faddp st(1)
fld dword [esp + 0x34]
fmul dword [esp + 0x34]
faddp st(1)
fst dword [esp + 0xc]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x109f197e
fstp st(0)
mov dword [esp + 0x10], 2
fld dword [esp + 0xc]
jmp 0x109f199d
fld dword [esp + 0xc]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 5
jp 0x109f199d
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 2
fld dword [esp + 0x1c]
fmul dword [esp + 0x1c]
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
faddp st(1)
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fst dword [esp + 0xc]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x109f19d2
mov dword [esp + 0x10], 3
jmp 0x109f19e9
fld dword [esp + 0xc]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 5
jp 0x109f19e9
mov dword [esp + 0x24], 3
lea ebx, [esp + 0x4c]
lea ecx, [ecx]
cmp esi, dword [esp + 0x24]
je 0x109f1a39
cmp esi, dword [esp + 0x10]
je 0x109f1a39
mov edx, dword [0x10ccacc0]
push edx
push 0x286
lea eax, [esp + 0x48]
push eax
push ebx
push edi
lea ecx, [esp + 0x90]
push ecx
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
call fcn.10a1d200
mov eax, dword [esp + 0x80]
test eax, eax
je 0x109f168a
cmp eax, ebp
je 0x109f168a
inc esi
add ebx, 0xc
cmp esi, 3
jl 0x109f19f0
pop esi
pop ebx
xor eax, eax
pop ebp
add esp, 0xa8
ret 8