Function at 0x10a8f500
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, dword fs:[0]
mov edx, dword [esp + 0xc]
push 0xffffffffffffffff
push 0x10bd45a8
push eax
mov eax, dword [esp + 0x20]
mov dword fs:[0], esp
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
mov ebp, ecx
mov ecx, dword [esp + 0x30]
push ecx
push edx
push eax
push edi
mov ecx, ebp
call fcn.10988610
mov esi, eax
cmp byte [ebp + 0x2de], 4
mov dword [esp + 0x28], esi
jne 0x10a8f73b
mov eax, dword [ebp + reloc.ole32.dll_CoCreateGuid]
or ebx, reloc.ole32.dll_CoCreateGuid
test eax, eax
jns 0x10a8f5b8
mov cl, byte [ebp + 0x2e0]
cmp cl, byte [edi + 0x2e0]
je 0x10a8f5b8
test byte [0x10d512d8], 1
jne 0x10a8f5a5
or dword [0x10d512d8], 1
xor edx, edx
push edx
mov eax, 0x7e567
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x30], ecx
call fcn.10917720
add esp, 0x18
mov dword [0x10d512d4], eax
mov dword [esp + 0x18], ebx
mov edx, dword [0x10d512d4]
movzx eax, word [edx + 0x56]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x28], esi
mov ecx, dword [edi + reloc.ole32.dll_CoCreateGuid]
xor ecx, dword [ebp + reloc.ole32.dll_CoCreateGuid]
test cl, 0x40
je 0x10a8f61c
test byte [0x10d512d8], 2
jne 0x10a8f609
or dword [0x10d512d8], 2
xor edx, edx
push edx
mov eax, 0xa90ca
push eax
xor ecx, ecx
push ecx
push edx
push 0x10ca1ad0
push 0x10cc8610
mov dword [esp + 0x30], 1
call fcn.10917720
add esp, 0x18
mov dword [0x10d512d0], eax
mov dword [esp + 0x18], ebx
mov edx, dword [0x10d512d0]
movzx eax, word [edx + 0x56]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x28], esi
mov esi, dword [edi + reloc.ole32.dll_CoCreateGuid]
mov edi, dword [ebp + reloc.ole32.dll_CoCreateGuid]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
push edi
call dword [edx + 0x58]
test eax, eax
je 0x10a8f63c
xor eax, eax
cmp edi, esi
jmp 0x10a8f648
mov eax, dword [esp + 0x30]
mov byte [eax + 0x7e], 1
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x10a8f6a4
test byte [0x10d512d8], 4
jne 0x10a8f68f
or dword [0x10d512d8], 4
xor edx, edx
push edx
mov eax, 0x7b6a9
push eax
xor ecx, ecx
push ecx
push edx
push 0x10ca1ad0
push 0x10cc8610
mov dword [esp + 0x30], 2
call fcn.10917720
add esp, 0x18
mov dword [0x10d512cc], eax
mov dword [esp + 0x18], ebx
mov ecx, dword [0x10d512cc]
movzx edx, word [ecx + 0x56]
mov ebx, dword [esp + 0x28]
mov dword [ebx], edx
add ebx, 4
jmp 0x10a8f6a8
mov ebx, dword [esp + 0x28]
cmp byte [ebp + 0x2d9], 8
jne 0x10a8f737
mov edi, dword [ebp + reloc.ole32.dll_CoCreateGuid]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx]
mov esi, dword [eax + reloc.ole32.dll_CoCreateGuid]
push edi
call dword [edx + 0x58]
test eax, eax
je 0x10a8f6d9
xor eax, eax
cmp edi, esi
jmp 0x10a8f6e5
mov eax, dword [esp + 0x30]
mov byte [eax + 0x7e], 1
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x10a8f737
test byte [0x10d512d8], 8
jne 0x10a8f728
or dword [0x10d512d8], 8
xor edx, edx
push edx
mov eax, 0x92
push eax
xor ecx, ecx
push ecx
push edx
push 0x10cc52a8
push 0x10cc8610
mov dword [esp + 0x30], 3
call fcn.10917720
add esp, 0x18
mov dword [0x10d512c8], eax
mov ecx, dword [0x10d512c8]
movzx edx, word [ecx + 0x56]
mov dword [ebx], edx
add ebx, 4
mov eax, ebx
jmp 0x10a8f73d
mov eax, esi
mov ecx, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xc
ret 0x14